@holydeck/cli 2026.9.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +234 -0
- package/dist/BrowserWebSocketTransport-H3D6MINS.js +12 -0
- package/dist/BrowserWebSocketTransport-H3D6MINS.js.map +1 -0
- package/dist/LaunchOptions-42ZS55HH.js +12 -0
- package/dist/LaunchOptions-42ZS55HH.js.map +1 -0
- package/dist/NodeWebSocketTransport-BXHQGXRM.js +15 -0
- package/dist/NodeWebSocketTransport-BXHQGXRM.js.map +1 -0
- package/dist/bidi-25S23FWJ.js +18358 -0
- package/dist/bidi-25S23FWJ.js.map +1 -0
- package/dist/chunk-2BLOYUSF.js +795 -0
- package/dist/chunk-2BLOYUSF.js.map +1 -0
- package/dist/chunk-43CZTS57.js +38 -0
- package/dist/chunk-43CZTS57.js.map +1 -0
- package/dist/chunk-DIBLSFAG.js +34 -0
- package/dist/chunk-DIBLSFAG.js.map +1 -0
- package/dist/chunk-IEJ3OX3N.js +52 -0
- package/dist/chunk-IEJ3OX3N.js.map +1 -0
- package/dist/chunk-JM4YIWBN.js +3796 -0
- package/dist/chunk-JM4YIWBN.js.map +1 -0
- package/dist/chunk-NP3DTWF7.js +23282 -0
- package/dist/chunk-NP3DTWF7.js.map +1 -0
- package/dist/chunk-SWG4X375.js +51 -0
- package/dist/chunk-SWG4X375.js.map +1 -0
- package/dist/chunk-UC6TFXMD.js +2821 -0
- package/dist/chunk-UC6TFXMD.js.map +1 -0
- package/dist/chunk-V4BIHFVZ.js +2287 -0
- package/dist/chunk-V4BIHFVZ.js.map +1 -0
- package/dist/chunk-V77AQPDK.js +20 -0
- package/dist/chunk-V77AQPDK.js.map +1 -0
- package/dist/chunk-XAENXL52.js +101 -0
- package/dist/chunk-XAENXL52.js.map +1 -0
- package/dist/cli.js +64101 -0
- package/dist/cli.js.map +1 -0
- package/dist/dist-3ZE2HBJQ.js +20447 -0
- package/dist/dist-3ZE2HBJQ.js.map +1 -0
- package/dist/dist-575AQY5L.js +1161 -0
- package/dist/dist-575AQY5L.js.map +1 -0
- package/dist/dist-DL5M2SDJ.js +117 -0
- package/dist/dist-DL5M2SDJ.js.map +1 -0
- package/dist/dist-OMWR53J4.js +4713 -0
- package/dist/dist-OMWR53J4.js.map +1 -0
- package/dist/dist-UT6HKKCD.js +281 -0
- package/dist/dist-UT6HKKCD.js.map +1 -0
- package/dist/fs-P6GYHPGZ.js +1685 -0
- package/dist/fs-P6GYHPGZ.js.map +1 -0
- package/dist/helpers-64DWIL6C.js +21 -0
- package/dist/helpers-64DWIL6C.js.map +1 -0
- package/dist/main-IQ64YDOJ.js +61 -0
- package/dist/main-IQ64YDOJ.js.map +1 -0
- package/dist/puppeteer-RDWY6FSG.js +2386 -0
- package/dist/puppeteer-RDWY6FSG.js.map +1 -0
- package/dist/yargs-KMQWKLG6.js +3264 -0
- package/dist/yargs-KMQWKLG6.js.map +1 -0
- package/dist/yauzl-7KG7KPPF.js +1355 -0
- package/dist/yauzl-7KG7KPPF.js.map +1 -0
- package/package.json +44 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../node_modules/.pnpm/modern-tar@0.8.5/node_modules/modern-tar/dist/packer-kJPaRbFA.js","../../../node_modules/.pnpm/modern-tar@0.8.5/node_modules/modern-tar/dist/fs/index.js"],"sourcesContent":["const FILE = \"file\";\nconst LINK = \"link\";\nconst SYMLINK = \"symlink\";\nconst DIRECTORY = \"directory\";\nconst TYPEFLAG = {\n\tfile: \"0\",\n\tlink: \"1\",\n\tsymlink: \"2\",\n\t\"character-device\": \"3\",\n\t\"block-device\": \"4\",\n\tdirectory: \"5\",\n\tfifo: \"6\",\n\t\"pax-header\": \"x\",\n\t\"pax-global-header\": \"g\",\n\t\"gnu-long-name\": \"L\",\n\t\"gnu-long-link-name\": \"K\"\n};\nconst FLAGTYPE = {\n\t\"0\": FILE,\n\t\"1\": LINK,\n\t\"2\": SYMLINK,\n\t\"3\": \"character-device\",\n\t\"4\": \"block-device\",\n\t\"5\": DIRECTORY,\n\t\"6\": \"fifo\",\n\tx: \"pax-header\",\n\tg: \"pax-global-header\",\n\tL: \"gnu-long-name\",\n\tK: \"gnu-long-link-name\"\n};\nconst ZERO_BLOCK = /* @__PURE__ */ new Uint8Array(512);\nconst EMPTY = /* @__PURE__ */ new Uint8Array(0);\n//#endregion\n//#region src/tar/encoding.ts\nconst encoder = new TextEncoder();\nconst decoder = new TextDecoder();\nfunction writeString(view, offset, size, value) {\n\tif (!value) return;\n\tfor (let i = 0; i < value.length && i < size; i++) {\n\t\tconst charCode = value.charCodeAt(i);\n\t\tif (charCode > 127) {\n\t\t\tencoder.encodeInto(value, view.subarray(offset, offset + size));\n\t\t\treturn;\n\t\t}\n\t\tview[offset + i] = charCode;\n\t}\n}\nfunction writeOctal(view, offset, size, value) {\n\tif (value === void 0) return;\n\tlet remaining = value;\n\tfor (let i = offset + size - 2; i >= offset; i--) {\n\t\tview[i] = 48 + remaining % 8;\n\t\tremaining = Math.floor(remaining / 8);\n\t}\n\tif (remaining === 0 && value % 1 === 0) return;\n\tencoder.encodeInto(value.toString(8).padStart(size - 1, \"0\"), view.subarray(offset, offset + size - 1));\n}\nfunction readString(view, offset, size) {\n\tif (view[offset] === 0) return \"\";\n\tconst end = view.indexOf(0, offset);\n\tconst sliceEnd = end === -1 || end > offset + size ? offset + size : end;\n\treturn decoder.decode(view.subarray(offset, sliceEnd));\n}\nfunction readOctal(view, offset, size) {\n\tlet value = 0;\n\tconst end = offset + size;\n\tfor (let i = offset; i < end; i++) {\n\t\tconst charCode = view[i];\n\t\tif (charCode === 0) break;\n\t\tif (charCode === 32) continue;\n\t\tvalue = value * 8 + (charCode - 48);\n\t}\n\treturn value;\n}\nfunction readNumeric(view, offset, size) {\n\tif (view[offset] & 128) {\n\t\tlet result = 0;\n\t\tresult = view[offset] & 127;\n\t\tfor (let i = 1; i < size; i++) result = result * 256 + view[offset + i];\n\t\tif (!Number.isSafeInteger(result)) throw new Error(\"TAR number too large\");\n\t\treturn result;\n\t}\n\treturn readOctal(view, offset, size);\n}\n//#endregion\n//#region src/tar/body.ts\nconst isBodyless = (header) => header.type === \"directory\" || header.type === \"symlink\" || header.type === \"link\" || header.type === \"character-device\" || header.type === \"block-device\" || header.type === \"fifo\";\nasync function normalizeBody(body) {\n\tif (body === null || body === void 0) return EMPTY;\n\tif (body instanceof Uint8Array) return body;\n\tif (typeof body === \"string\") return encoder.encode(body);\n\tif (body instanceof ArrayBuffer) return new Uint8Array(body);\n\tif (body instanceof Blob) return new Uint8Array(await body.arrayBuffer());\n\tthrow new TypeError(\"Unsupported content type for entry body.\");\n}\n//#endregion\n//#region src/tar/options.ts\nconst stripPath = (p, n) => {\n\tconst parts = p.split(\"/\").filter(Boolean);\n\treturn n >= parts.length ? \"\" : parts.slice(n).join(\"/\");\n};\nfunction transformHeader(header, options) {\n\tconst { strip, filter, map } = options;\n\tif (!strip && !filter && !map) return header;\n\tconst h = { ...header };\n\tif (strip && strip > 0) {\n\t\tconst newName = stripPath(h.name, strip);\n\t\tif (!newName) return null;\n\t\th.name = h.type === \"directory\" && !newName.endsWith(\"/\") ? `${newName}/` : newName;\n\t\tif (h.linkname) {\n\t\t\tconst isAbsolute = h.linkname.startsWith(\"/\");\n\t\t\tif (isAbsolute || h.type === \"link\") {\n\t\t\t\tconst stripped = stripPath(h.linkname, strip);\n\t\t\t\th.linkname = isAbsolute ? `/${stripped}` || \"/\" : stripped;\n\t\t\t}\n\t\t}\n\t}\n\tif (filter?.(h) === false) return null;\n\tconst result = map ? map(h) : h;\n\tif (result && (!result.name?.trim() || result.name === \".\" || result.name === \"/\")) return null;\n\treturn result;\n}\n//#endregion\n//#region src/tar/chunk-queue.ts\nconst INITIAL_CAPACITY = 256;\nfunction createChunkQueue() {\n\tlet chunks = new Array(INITIAL_CAPACITY);\n\tlet capacityMask = chunks.length - 1;\n\tlet head = 0;\n\tlet tail = 0;\n\tlet totalAvailable = 0;\n\tconst consumeFromHead = (count) => {\n\t\tconst chunk = chunks[head];\n\t\tif (count === chunk.length) {\n\t\t\tchunks[head] = EMPTY;\n\t\t\thead = head + 1 & capacityMask;\n\t\t} else chunks[head] = chunk.subarray(count);\n\t\ttotalAvailable -= count;\n\t\tif (totalAvailable === 0 && chunks.length > INITIAL_CAPACITY) {\n\t\t\tchunks = new Array(INITIAL_CAPACITY);\n\t\t\tcapacityMask = 255;\n\t\t\thead = 0;\n\t\t\ttail = 0;\n\t\t}\n\t};\n\tfunction pull(bytes, callback) {\n\t\tif (callback) {\n\t\t\tlet fed = 0;\n\t\t\tlet remaining = Math.min(bytes, totalAvailable);\n\t\t\twhile (remaining > 0) {\n\t\t\t\tconst chunk = chunks[head];\n\t\t\t\tconst toFeed = Math.min(remaining, chunk.length);\n\t\t\t\tconst segment = toFeed === chunk.length ? chunk : chunk.subarray(0, toFeed);\n\t\t\t\tconsumeFromHead(toFeed);\n\t\t\t\tremaining -= toFeed;\n\t\t\t\tfed += toFeed;\n\t\t\t\tif (!callback(segment)) break;\n\t\t\t}\n\t\t\treturn fed;\n\t\t}\n\t\tif (totalAvailable < bytes) return null;\n\t\tif (bytes === 0) return EMPTY;\n\t\tconst firstChunk = chunks[head];\n\t\tif (firstChunk.length >= bytes) {\n\t\t\tconst view = firstChunk.length === bytes ? firstChunk : firstChunk.subarray(0, bytes);\n\t\t\tconsumeFromHead(bytes);\n\t\t\treturn view;\n\t\t}\n\t\tconst result = new Uint8Array(bytes);\n\t\tlet copied = 0;\n\t\tlet remaining = bytes;\n\t\twhile (remaining > 0) {\n\t\t\tconst chunk = chunks[head];\n\t\t\tconst toCopy = Math.min(remaining, chunk.length);\n\t\t\tresult.set(toCopy === chunk.length ? chunk : chunk.subarray(0, toCopy), copied);\n\t\t\tcopied += toCopy;\n\t\t\tremaining -= toCopy;\n\t\t\tconsumeFromHead(toCopy);\n\t\t}\n\t\treturn result;\n\t}\n\treturn {\npush: (chunk) => {\n\t\t\tif (chunk.length === 0) return;\n\t\t\tlet nextTail = tail + 1 & capacityMask;\n\t\t\tif (nextTail === head) {\n\t\t\t\tconst oldLen = chunks.length;\n\t\t\t\tconst newLen = oldLen * 2;\n\t\t\t\tconst newChunks = new Array(newLen);\n\t\t\t\tconst count = tail - head + oldLen & oldLen - 1;\n\t\t\t\tif (head < tail) for (let i = 0; i < count; i++) newChunks[i] = chunks[head + i];\n\t\t\t\telse {\n\t\t\t\t\tconst firstPart = oldLen - head;\n\t\t\t\t\tfor (let i = 0; i < firstPart; i++) newChunks[i] = chunks[head + i];\n\t\t\t\t\tfor (let i = 0; i < tail; i++) newChunks[firstPart + i] = chunks[i];\n\t\t\t\t}\n\t\t\t\tchunks = newChunks;\n\t\t\t\tcapacityMask = newLen - 1;\n\t\t\t\thead = 0;\n\t\t\t\ttail = count;\n\t\t\t\tnextTail = tail + 1 & capacityMask;\n\t\t\t}\n\t\t\tchunks[tail] = chunk;\n\t\t\ttail = nextTail;\n\t\t\ttotalAvailable += chunk.length;\n\t\t},\navailable: () => totalAvailable,\npeek: (bytes) => {\n\t\t\tif (totalAvailable < bytes) return null;\n\t\t\tif (bytes === 0) return EMPTY;\n\t\t\tconst firstChunk = chunks[head];\n\t\t\tif (firstChunk.length >= bytes) return firstChunk.length === bytes ? firstChunk : firstChunk.subarray(0, bytes);\n\t\t\tconst result = new Uint8Array(bytes);\n\t\t\tlet copied = 0;\n\t\t\tlet index = head;\n\t\t\twhile (copied < bytes) {\n\t\t\t\tconst chunk = chunks[index];\n\t\t\t\tconst toCopy = Math.min(bytes - copied, chunk.length);\n\t\t\t\tif (toCopy === chunk.length) result.set(chunk, copied);\n\t\t\t\telse result.set(chunk.subarray(0, toCopy), copied);\n\t\t\t\tcopied += toCopy;\n\t\t\t\tindex = index + 1 & capacityMask;\n\t\t\t}\n\t\t\treturn result;\n\t\t},\ndiscard: (bytes) => {\n\t\t\tif (bytes > totalAvailable) throw new Error(\"Too many bytes consumed\");\n\t\t\tif (bytes === 0) return;\n\t\t\tlet remaining = bytes;\n\t\t\twhile (remaining > 0) {\n\t\t\t\tconst chunk = chunks[head];\n\t\t\t\tconst toConsume = Math.min(remaining, chunk.length);\n\t\t\t\tconsumeFromHead(toConsume);\n\t\t\t\tremaining -= toConsume;\n\t\t\t}\n\t\t},\n\t\tpull\n\t};\n}\n//#endregion\n//#region src/tar/checksum.ts\nconst CHECKSUM_SPACE = 32;\nconst ASCII_ZERO = 48;\nfunction validateChecksum(block) {\n\tconst stored = readOctal(block, 148, 8);\n\tlet sum = 0;\n\tfor (let i = 0; i < block.length; i++) if (i >= 148 && i < 156) sum += CHECKSUM_SPACE;\n\telse sum += block[i];\n\treturn stored === sum;\n}\nfunction writeChecksum(block) {\n\tblock.fill(CHECKSUM_SPACE, 148, 156);\n\tlet checksum = 0;\n\tfor (let i = block.length; i > 0;) checksum += block[--i];\n\tfor (let i = 153; i >= 148; i--) {\n\t\tblock[i] = (checksum & 7) + ASCII_ZERO;\n\t\tchecksum >>= 3;\n\t}\n\tblock[154] = 0;\n\tblock[155] = CHECKSUM_SPACE;\n}\n//#endregion\n//#region src/tar/pax.ts\nconst USTAR_SPLIT_MAX_SIZE = 256;\nconst NON_ASCII = /[^\\x00-\\x7f]/;\nfunction isUtf8TooLong(value, limit) {\n\tif (value.length * 3 <= limit) return false;\n\tif (value.length > limit) return true;\n\tif (!NON_ASCII.test(value)) return false;\n\treturn encoder.encode(value).length > limit;\n}\nfunction generatePax(header) {\n\tconst paxRecords = {};\n\tif (isUtf8TooLong(header.name, 100)) {\n\t\tif (findUstarSplit(header.name) === null) paxRecords.path = header.name;\n\t}\n\tif (header.linkname && isUtf8TooLong(header.linkname, 100)) paxRecords.linkpath = header.linkname;\n\tif (header.uname && isUtf8TooLong(header.uname, 32)) paxRecords.uname = header.uname;\n\tif (header.gname && isUtf8TooLong(header.gname, 32)) paxRecords.gname = header.gname;\n\tif (header.uid != null && header.uid > 2097151) paxRecords.uid = String(header.uid);\n\tif (header.gid != null && header.gid > 2097151) paxRecords.gid = String(header.gid);\n\tif (header.size != null && header.size > 8589934591) paxRecords.size = String(header.size);\n\tif (header.pax) Object.assign(paxRecords, header.pax);\n\tconst paxEntries = Object.entries(paxRecords);\n\tif (paxEntries.length === 0) return null;\n\tconst paxBody = encoder.encode(paxEntries.map(([key, value]) => {\n\t\tconst record = `${key}=${value}\\n`;\n\t\tconst partLength = encoder.encode(record).length + 1;\n\t\tlet totalLength = partLength + String(partLength).length;\n\t\ttotalLength = partLength + String(totalLength).length;\n\t\treturn `${totalLength} ${record}`;\n\t}).join(\"\"));\n\treturn {\n\t\tpaxHeader: createTarHeader({\n\t\t\tname: decoder.decode(encoder.encode(`PaxHeader/${header.name}`).slice(0, 100)),\n\t\t\tsize: paxBody.length,\n\t\t\ttype: \"pax-header\",\n\t\t\tmode: 420,\n\t\t\tmtime: header.mtime,\n\t\t\tuname: header.uname,\n\t\t\tgname: header.gname,\n\t\t\tuid: header.uid,\n\t\t\tgid: header.gid\n\t\t}),\n\t\tpaxBody\n\t};\n}\nfunction findUstarSplit(path) {\n\tif (!isUtf8TooLong(path, 100) || isUtf8TooLong(path, USTAR_SPLIT_MAX_SIZE)) return null;\n\tfor (let i = path.length - 1; i > 0; i--) {\n\t\tif (path[i] !== \"/\") continue;\n\t\tconst prefix = path.slice(0, i);\n\t\tconst name = path.slice(i + 1);\n\t\tif (!isUtf8TooLong(prefix, 155) && !isUtf8TooLong(name, 100)) return {\n\t\t\tprefix,\n\t\t\tname\n\t\t};\n\t}\n\treturn null;\n}\n//#endregion\n//#region src/tar/header.ts\nfunction createTarHeader(header) {\n\tconst view = /* @__PURE__ */ new Uint8Array(512);\n\tconst size = isBodyless(header) ? 0 : header.size ?? 0;\n\tlet name = header.name;\n\tlet prefix = \"\";\n\tif (!header.pax?.path) {\n\t\tconst split = findUstarSplit(name);\n\t\tif (split) {\n\t\t\tname = split.name;\n\t\t\tprefix = split.prefix;\n\t\t}\n\t}\n\twriteString(view, 0, 100, name);\n\twriteOctal(view, 100, 8, header.mode ?? (header.type === \"directory\" ? 493 : 420));\n\twriteOctal(view, 108, 8, header.uid ?? 0);\n\twriteOctal(view, 116, 8, header.gid ?? 0);\n\twriteOctal(view, 124, 12, size);\n\twriteOctal(view, 136, 12, Math.floor((header.mtime?.getTime() ?? Date.now()) / 1e3));\n\twriteString(view, 156, 1, TYPEFLAG[header.type ?? \"file\"]);\n\twriteString(view, 157, 100, header.linkname);\n\twriteString(view, 257, 6, \"ustar\\0\");\n\twriteString(view, 263, 2, \"00\");\n\twriteString(view, 265, 32, header.uname);\n\twriteString(view, 297, 32, header.gname);\n\twriteString(view, 345, 155, prefix);\n\twriteChecksum(view);\n\treturn view;\n}\nfunction parseUstarHeader(block, strict) {\n\tif (strict && !validateChecksum(block)) throw new Error(\"Invalid tar header checksum.\");\n\tconst typeflag = readString(block, 156, 1);\n\tconst header = {\n\t\tname: readString(block, 0, 100),\n\t\tmode: readOctal(block, 100, 8),\n\t\tuid: readNumeric(block, 108, 8),\n\t\tgid: readNumeric(block, 116, 8),\n\t\tsize: readNumeric(block, 124, 12),\n\t\tmtime: /* @__PURE__ */ new Date(readNumeric(block, 136, 12) * 1e3),\n\t\ttype: FLAGTYPE[typeflag] || \"file\",\n\t\tlinkname: readString(block, 157, 100)\n\t};\n\tconst magic = readString(block, 257, 6);\n\tif (magic.trim() === \"ustar\") {\n\t\theader.uname = readString(block, 265, 32);\n\t\theader.gname = readString(block, 297, 32);\n\t}\n\tif (magic === \"ustar\") header.prefix = readString(block, 345, 155);\n\treturn header;\n}\nconst PAX_MAPPING = {\n\tpath: [\"name\", (v) => v],\n\tlinkpath: [\"linkname\", (v) => v],\n\tsize: [\"size\", (v) => /^\\d+$/.test(v) && Number.isSafeInteger(+v) ? +v : NaN],\n\tmtime: [\"mtime\", parseFloat],\n\tuid: [\"uid\", (v) => parseInt(v, 10)],\n\tgid: [\"gid\", (v) => parseInt(v, 10)],\n\tuname: [\"uname\", (v) => v],\n\tgname: [\"gname\", (v) => v]\n};\nfunction parsePax(buffer) {\n\tconst overrides = Object.create(null);\n\tconst pax = Object.create(null);\n\tlet isPax = false;\n\tlet offset = 0;\n\twhile (offset < buffer.length) {\n\t\tconst spaceIndex = buffer.indexOf(32, offset);\n\t\tif (spaceIndex === -1) break;\n\t\tconst length = parseInt(decoder.decode(buffer.subarray(offset, spaceIndex)), 10);\n\t\tif (!(length > 0)) break;\n\t\tconst recordEnd = offset + length;\n\t\tconst recordStr = decoder.decode(buffer.subarray(spaceIndex + 1, recordEnd - 1));\n\t\tconst equalsIndex = recordStr.indexOf(\"=\");\n\t\tif (equalsIndex > 0) {\n\t\t\tconst key = recordStr.slice(0, equalsIndex);\n\t\t\tconst value = recordStr.slice(equalsIndex + 1);\n\t\t\tpax[key] = value;\n\t\t\tisPax = true;\n\t\t\tif (Object.hasOwn(PAX_MAPPING, key)) {\n\t\t\t\tconst [targetKey, parser] = PAX_MAPPING[key];\n\t\t\t\tconst parsedValue = parser(value);\n\t\t\t\tif (typeof parsedValue === \"string\" || !Number.isNaN(parsedValue)) overrides[targetKey] = parsedValue;\n\t\t\t}\n\t\t}\n\t\toffset = recordEnd;\n\t}\n\tif (isPax) overrides.pax = pax;\n\treturn overrides;\n}\nfunction applyOverrides(header, overrides) {\n\tif (overrides.name !== void 0) header.name = overrides.name;\n\tif (overrides.linkname !== void 0) header.linkname = overrides.linkname;\n\tif (overrides.size !== void 0) header.size = overrides.size;\n\tif (overrides.mtime !== void 0) header.mtime = /* @__PURE__ */ new Date(overrides.mtime * 1e3);\n\tif (overrides.uid !== void 0) header.uid = overrides.uid;\n\tif (overrides.gid !== void 0) header.gid = overrides.gid;\n\tif (overrides.uname !== void 0) header.uname = overrides.uname;\n\tif (overrides.gname !== void 0) header.gname = overrides.gname;\n\tif (overrides.pax) header.pax = Object.assign({}, header.pax ?? {}, overrides.pax);\n}\nfunction getMetaParser(type) {\n\tswitch (type) {\n\t\tcase \"pax-global-header\":\n\t\tcase \"pax-header\": return parsePax;\n\t\tcase \"gnu-long-name\": return (data) => ({ name: readString(data, 0, data.length) });\n\t\tcase \"gnu-long-link-name\": return (data) => ({ linkname: readString(data, 0, data.length) });\n\t\tdefault: return;\n\t}\n}\nfunction getHeaderBlocks(header) {\n\tconst base = createTarHeader(header);\n\tconst pax = generatePax(header);\n\tif (!pax) return [base];\n\tconst paxPadding = -pax.paxBody.length & 511;\n\tconst paddingBlocks = paxPadding > 0 ? [ZERO_BLOCK.subarray(0, paxPadding)] : [];\n\treturn [\n\t\tpax.paxHeader,\n\t\tpax.paxBody,\n\t\t...paddingBlocks,\n\t\tbase\n\t];\n}\n//#endregion\n//#region src/tar/unpacker.ts\nconst STATE_HEADER = 0;\nconst STATE_BODY = 1;\nconst MAX_META_SIZE = 8388608;\nconst truncateErr = /* @__PURE__ */ new Error(\"Tar archive is truncated.\");\nfunction createUnpacker(options = {}) {\n\tconst strict = options.strict ?? false;\n\tconst { available, peek, push, discard, pull } = createChunkQueue();\n\tlet state = STATE_HEADER;\n\tlet ended = false;\n\tlet done = false;\n\tlet eof = false;\n\tlet currentEntry = null;\n\tconst paxGlobals = {};\n\tlet nextEntryOverrides = {};\n\tconst unpacker = {\n\t\tisEntryActive: () => state === STATE_BODY,\nisBodyComplete: () => !currentEntry || currentEntry.remaining === 0,\ncanFinish: () => !currentEntry || available() >= currentEntry.remaining + currentEntry.padding,\n\t\tbodyBytes: () => currentEntry && currentEntry.remaining > 0 ? Math.min(currentEntry.remaining, available()) : 0,\navailable,\nwrite(chunk) {\n\t\t\tif (ended) throw new Error(\"Archive already ended.\");\n\t\t\tpush(chunk);\n\t\t},\nend() {\n\t\t\tended = true;\n\t\t},\nreadHeader() {\n\t\t\tif (state !== STATE_HEADER) throw new Error(\"Cannot read header while an entry is active\");\n\t\t\tif (done) return void 0;\n\t\t\twhile (!done) {\n\t\t\t\tif (available() < 512) {\n\t\t\t\t\tif (ended) {\n\t\t\t\t\t\tif (available() > 0 && strict) throw truncateErr;\n\t\t\t\t\t\tdone = true;\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t\tconst headerBlock = peek(512);\n\t\t\t\tif (isZeroBlock(headerBlock)) {\n\t\t\t\t\tif (available() < 1024) {\n\t\t\t\t\t\tif (ended) {\n\t\t\t\t\t\t\tif (strict) throw truncateErr;\n\t\t\t\t\t\t\tdone = true;\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\t\t\t\t\tif (isZeroBlock(peek(1024).subarray(512))) {\n\t\t\t\t\t\tdiscard(1024);\n\t\t\t\t\t\tdone = true;\n\t\t\t\t\t\teof = true;\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tif (strict) throw new Error(\"Invalid tar header.\");\n\t\t\t\t\tdiscard(512);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tlet internalHeader;\n\t\t\t\ttry {\n\t\t\t\t\tinternalHeader = parseUstarHeader(headerBlock, strict);\n\t\t\t\t} catch (err) {\n\t\t\t\t\tif (strict) throw err;\n\t\t\t\t\tdiscard(512);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tconst metaParser = getMetaParser(internalHeader.type);\n\t\t\t\tif (metaParser) {\n\t\t\t\t\tif (internalHeader.size > MAX_META_SIZE) throw new Error(\"Tar metadata entry exceeds maximum size.\");\n\t\t\t\t\tconst paddedSize = internalHeader.size + (-internalHeader.size & 511);\n\t\t\t\t\tif (available() < 512 + paddedSize) {\n\t\t\t\t\t\tif (ended && strict) throw truncateErr;\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\t\t\t\t\tdiscard(512);\n\t\t\t\t\tconst overrides = metaParser(pull(paddedSize).subarray(0, internalHeader.size));\n\t\t\t\t\tif (nextEntryOverrides.pax) nextEntryOverrides = {};\n\t\t\t\t\tconst target = internalHeader.type === \"pax-global-header\" ? paxGlobals : nextEntryOverrides;\n\t\t\t\t\tfor (const key in overrides) target[key] = overrides[key];\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tdiscard(512);\n\t\t\t\tconst header = internalHeader;\n\t\t\t\tif (internalHeader.prefix) header.name = `${internalHeader.prefix}/${header.name}`;\n\t\t\t\tapplyOverrides(header, paxGlobals);\n\t\t\t\tapplyOverrides(header, nextEntryOverrides);\n\t\t\t\tlet archiveSize = header.size;\n\t\t\t\tif (isBodyless(header)) {\n\t\t\t\t\tarchiveSize = 0;\n\t\t\t\t\theader.size = 0;\n\t\t\t\t} else if (header.name.endsWith(\"/\") && header.type === \"file\") {\n\t\t\t\t\theader.type = DIRECTORY;\n\t\t\t\t\theader.size = 0;\n\t\t\t\t}\n\t\t\t\tnextEntryOverrides = {};\n\t\t\t\tcurrentEntry = {\n\t\t\t\t\theader,\n\t\t\t\t\tremaining: archiveSize,\n\t\t\t\t\tpadding: -archiveSize & 511\n\t\t\t\t};\n\t\t\t\tstate = STATE_BODY;\n\t\t\t\treturn header;\n\t\t\t}\n\t\t},\nstreamBody(callback) {\n\t\t\tif (state !== STATE_BODY || !currentEntry || currentEntry.remaining === 0) return 0;\n\t\t\tconst bytesToFeed = Math.min(currentEntry.remaining, available());\n\t\t\tif (bytesToFeed === 0) return 0;\n\t\t\tconst fed = pull(bytesToFeed, callback);\n\t\t\tcurrentEntry.remaining -= fed;\n\t\t\treturn fed;\n\t\t},\nskipPadding() {\n\t\t\tif (state !== STATE_BODY || !currentEntry) return true;\n\t\t\tif (currentEntry.remaining > 0) throw new Error(\"Body not fully consumed\");\n\t\t\tif (available() < currentEntry.padding) return false;\n\t\t\tdiscard(currentEntry.padding);\n\t\t\tcurrentEntry = null;\n\t\t\tstate = STATE_HEADER;\n\t\t\treturn true;\n\t\t},\nskipEntry() {\n\t\t\tif (state !== STATE_BODY || !currentEntry) return true;\n\t\t\tconst toDiscard = Math.min(currentEntry.remaining, available());\n\t\t\tif (toDiscard > 0) {\n\t\t\t\tdiscard(toDiscard);\n\t\t\t\tcurrentEntry.remaining -= toDiscard;\n\t\t\t}\n\t\t\tif (currentEntry.remaining > 0) return false;\n\t\t\treturn unpacker.skipPadding();\n\t\t},\n\t\tvalidateEOF() {\n\t\t\tif (strict) {\n\t\t\t\tif (!eof) throw truncateErr;\n\t\t\t\tif (available() > 0) {\n\t\t\t\t\tif (pull(available()).some((byte) => byte !== 0)) throw new Error(\"Invalid EOF.\");\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\treturn unpacker;\n}\nfunction isZeroBlock(block) {\n\tif (block[0] !== 0) return false;\n\tif (block.byteOffset % 8 === 0) {\n\t\tconst view = new BigUint64Array(block.buffer, block.byteOffset, block.length / 8);\n\t\tfor (let i = 0; i < view.length; i++) if (view[i] !== 0n) return false;\n\t\treturn true;\n\t}\n\tfor (let i = 0; i < block.length; i++) if (block[i] !== 0) return false;\n\treturn true;\n}\n//#endregion\n//#region src/tar/packer.ts\nconst EOF_BUFFER = /* @__PURE__ */ new Uint8Array(1024);\nfunction createTarPacker(onData) {\n\tlet currentHeader = null;\n\tlet bytesWritten = 0;\n\tlet finalized = false;\n\tconst fail = (message) => {\n\t\tthrow new Error(message);\n\t};\n\treturn {\n\t\tadd(header) {\n\t\t\tif (finalized) fail(\"No new tar entries after finalize.\");\n\t\t\tif (currentHeader !== null) fail(\"Previous entry must be completed before adding a new one\");\n\t\t\tconst size = isBodyless(header) ? 0 : header.size;\n\t\t\tif (!Number.isSafeInteger(size) || size < 0) fail(\"Invalid tar entry size.\");\n\t\t\tconst headerBlocks = getHeaderBlocks({\n\t\t\t\t...header,\n\t\t\t\tsize\n\t\t\t});\n\t\t\tfor (const block of headerBlocks) onData(block);\n\t\t\tcurrentHeader = {\n\t\t\t\t...header,\n\t\t\t\tsize\n\t\t\t};\n\t\t\tbytesWritten = 0;\n\t\t},\n\t\twrite(chunk) {\n\t\t\tif (!currentHeader) fail(\"No active tar entry.\");\n\t\t\tif (finalized) fail(\"Cannot write data after finalize.\");\n\t\t\tconst newTotal = bytesWritten + chunk.length;\n\t\t\tif (newTotal > currentHeader.size) fail(`\"${currentHeader.name}\" exceeds given size of ${currentHeader.size} bytes.`);\n\t\t\tbytesWritten = newTotal;\n\t\t\tonData(chunk);\n\t\t},\n\t\tendEntry() {\n\t\t\tif (!currentHeader) fail(\"No active entry to end.\");\n\t\t\tif (finalized) fail(\"Cannot end entry after finalize.\");\n\t\t\tif (bytesWritten !== currentHeader.size) fail(`Size mismatch for \"${currentHeader.name}\".`);\n\t\t\tconst paddingSize = -currentHeader.size & 511;\n\t\t\tif (paddingSize > 0) onData(new Uint8Array(paddingSize));\n\t\t\tcurrentHeader = null;\n\t\t\tbytesWritten = 0;\n\t\t},\n\t\tfinalize() {\n\t\t\tif (finalized) fail(\"Archive has already been finalized\");\n\t\t\tif (currentHeader !== null) fail(\"Cannot finalize while an entry is still active\");\n\t\t\tonData(EOF_BUFFER);\n\t\t\tfinalized = true;\n\t\t}\n\t};\n}\n//#endregion\nexport { normalizeBody as a, LINK as c, isBodyless as i, SYMLINK as l, createUnpacker as n, DIRECTORY as o, transformHeader as r, FILE as s, createTarPacker as t };\n","import { a as normalizeBody, c as LINK, l as SYMLINK, n as createUnpacker, o as DIRECTORY, r as transformHeader, s as FILE, t as createTarPacker } from \"../packer-kJPaRbFA.js\";\nimport * as fs from \"node:fs\";\nimport * as fsp from \"node:fs/promises\";\nimport { cpus } from \"node:os\";\nimport * as path from \"node:path\";\nimport { Readable, Writable } from \"node:stream\";\n//#region src/fs/path.ts\nfunction validateBounds(targetPath, destDir, errorMessage) {\n\tconst target = path.resolve(targetPath);\n\tconst dest = path.resolve(destDir);\n\tif (target !== dest && !target.startsWith(dest + path.sep)) throw new Error(errorMessage);\n}\nconst win32Reserved = {\n\t\":\": \"\",\n\t\"<\": \"\",\n\t\">\": \"\",\n\t\"|\": \"\",\n\t\"?\": \"\",\n\t\"*\": \"\",\n\t\"\\\"\": \"\"\n};\nconst pathAlias = /\\/\\/|(?:^|\\/)\\.(?:\\/|$)/;\nfunction normalizeName(name) {\n\tconst path = name.replace(/\\\\/g, \"/\");\n\tif (path.split(\"/\").includes(\"..\") || /^[a-zA-Z]:\\.\\./.test(path)) throw new Error(`${name} points outside extraction directory`);\n\tlet relative = path;\n\tif (/^[a-zA-Z]:/.test(relative)) relative = relative.replace(/^[a-zA-Z]:[/\\\\]?/, \"\");\n\telse if (relative.startsWith(\"/\")) relative = relative.replace(/^\\/+/, \"\");\n\tif (process.platform === \"win32\") return relative.replace(/[<>:\"|?*]/g, (char) => win32Reserved[char]);\n\treturn relative;\n}\nconst normalizeHeaderName = (s) => {\n\tconst name = normalizeName(s.replace(/[\\\\/]+$/, \"\"));\n\treturn pathAlias.test(name) ? path.posix.normalize(name) : name;\n};\n//#endregion\n//#region src/fs/pack.ts\nconst BIGINT_STAT = { bigint: true };\nconst WITH_FILE_TYPES = { withFileTypes: true };\nconst packTarSources = packTar;\nfunction packTar(sources, options = {}) {\n\tconst results = /* @__PURE__ */ new Map();\n\tconst fileHandles = /* @__PURE__ */ new Map();\n\tconst bodyStreams = /* @__PURE__ */ new Set();\n\tlet resume = null;\n\tlet drain = null;\n\tlet resumeWriter = null;\n\tlet cancelError;\n\tconst unblock = () => {\n\t\tconst resolve = resume;\n\t\tresume = null;\n\t\tdrain = null;\n\t\tresolve?.();\n\t};\n\tconst wakeWriter = () => {\n\t\tresumeWriter?.();\n\t\tresumeWriter = null;\n\t};\n\tconst destroyBody = (body, reason) => {\n\t\tbodyStreams.delete(body);\n\t\tbody.destroy(reason);\n\t};\n\tconst closeHandle = (handle) => {\n\t\tconst closing = fileHandles.get(handle);\n\t\tif (closing !== null) return closing;\n\t\tconst promise = handle.close().finally(() => fileHandles.delete(handle));\n\t\tfileHandles.set(handle, promise);\n\t\treturn promise;\n\t};\n\tconst stop = async (reason) => {\n\t\tfor (const body of bodyStreams) destroyBody(body, reason);\n\t\tconst closing = Promise.allSettled([...fileHandles.keys()].map(closeHandle));\n\t\tresults.clear();\n\t\twakeWriter();\n\t\tfor (const result of await closing) if (result.status === \"rejected\") throw result.reason;\n\t};\n\tconst stream = new Readable({\n\t\thighWaterMark: 8388608,\n\t\tread: unblock,\n\t\tdestroy(error, callback) {\n\t\t\tcancelError = error ?? AbortSignal.abort().reason;\n\t\t\tunblock();\n\t\t\tstop(cancelError).then(() => callback(error), (closeError) => callback(error ?? closeError));\n\t\t}\n\t});\n\tconst onError = (error) => stream.destroy(error);\n\tconst packer = createTarPacker((chunk) => {\n\t\tif (stream.destroyed) throw cancelError;\n\t\tif (!stream.push(Buffer.from(chunk)) && !drain) drain = new Promise((resolve) => {\n\t\t\tresume = resolve;\n\t\t});\n\t});\n\t(async () => {\n\t\tconst { dereference = false, filter, map, baseDir, concurrency = cpus().length || 8 } = options;\n\t\tlet directoryPath;\n\t\tlet realBaseDir;\n\t\tlet jobs;\n\t\tif (typeof sources === \"string\") {\n\t\t\tconst source = path.resolve(sources);\n\t\t\tdirectoryPath = source;\n\t\t\tconst before = await fsp.stat(source, BIGINT_STAT);\n\t\t\tif (stream.destroyed) return;\n\t\t\tconst entries = await fsp.readdir(source, WITH_FILE_TYPES);\n\t\t\tif (stream.destroyed) return;\n\t\t\tconst after = await fsp.stat(source, BIGINT_STAT);\n\t\t\tif (stream.destroyed) return;\n\t\t\tjobs = before.dev === after.dev && before.ino === after.ino ? entries.map((entry) => ({\n\t\t\t\ttype: entry.isDirectory() ? DIRECTORY : FILE,\n\t\t\t\tsource: path.join(source, entry.name),\n\t\t\t\ttarget: entry.name\n\t\t\t})) : [];\n\t\t} else jobs = sources.map((source) => ({ ...source }));\n\t\tconst seenHardlinks = /* @__PURE__ */ new Map();\n\t\tlet jobIndex = 0;\n\t\tlet writeIndex = 0;\n\t\tlet activeWorkers = 0;\n\t\tlet allJobsQueued = false;\n\t\tconst writeStreamBody = async (body) => {\n\t\t\ttry {\n\t\t\t\tfor await (const chunk of body) {\n\t\t\t\t\tif (stream.destroyed) return;\n\t\t\t\t\tpacker.write(chunk instanceof Uint8Array ? chunk : Buffer.from(chunk));\n\t\t\t\t\tif (drain) await drain;\n\t\t\t\t}\n\t\t\t} finally {\n\t\t\t\tbody.off(\"error\", onError);\n\t\t\t\tbodyStreams.delete(body);\n\t\t\t}\n\t\t};\n\t\tconst writer = async () => {\n\t\t\tconst readBufferSmall = Buffer.alloc(65536);\n\t\t\tlet readBufferLarge = null;\n\t\t\twhile (true) {\n\t\t\t\tif (stream.destroyed) return;\n\t\t\t\tif (allJobsQueued && writeIndex >= jobs.length) break;\n\t\t\t\tif (!results.has(writeIndex)) {\n\t\t\t\t\tawait new Promise((resolve) => {\n\t\t\t\t\t\tresumeWriter = resolve;\n\t\t\t\t\t});\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tconst result = results.get(writeIndex);\n\t\t\t\tresults.delete(writeIndex);\n\t\t\t\tif (!result) {\n\t\t\t\t\twriteIndex++;\n\t\t\t\t\tcontroller();\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (result.hardlinkId) {\n\t\t\t\t\tconst originalName = result.header.name;\n\t\t\t\t\tconst hardlinkTarget = seenHardlinks.get(result.hardlinkId);\n\t\t\t\t\tif (hardlinkTarget) {\n\t\t\t\t\t\tif (result.body && !(result.body instanceof Uint8Array) && !(result.body instanceof Readable)) await closeHandle(result.body.handle);\n\t\t\t\t\t\tresult.body = void 0;\n\t\t\t\t\t\tresult.header.type = LINK;\n\t\t\t\t\t\tresult.header.linkname = hardlinkTarget.originalName;\n\t\t\t\t\t\tresult.header.size = 0;\n\t\t\t\t\t}\n\t\t\t\t\tif (map) result.header = map(result.header);\n\t\t\t\t\tif (hardlinkTarget) {\n\t\t\t\t\t\tif (result.header.linkname === hardlinkTarget.originalName) result.header.linkname = hardlinkTarget.mappedName;\n\t\t\t\t\t} else seenHardlinks.set(result.hardlinkId, {\n\t\t\t\t\t\toriginalName,\n\t\t\t\t\t\tmappedName: result.header.name\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tpacker.add(result.header);\n\t\t\t\tif (drain) await drain;\n\t\t\t\tif (stream.destroyed) return;\n\t\t\t\tif (result.body) if (result.body instanceof Uint8Array) {\n\t\t\t\t\tif (result.body.length > 0) {\n\t\t\t\t\t\tpacker.write(result.body);\n\t\t\t\t\t\tif (drain) await drain;\n\t\t\t\t\t}\n\t\t\t\t} else if (result.body instanceof Readable) await writeStreamBody(result.body);\n\t\t\t\telse {\n\t\t\t\t\tconst { handle, size } = result.body;\n\t\t\t\t\tconst readBuffer = size > 1048576 ? readBufferLarge ??= Buffer.alloc(1048576) : readBufferSmall;\n\t\t\t\t\ttry {\n\t\t\t\t\t\tlet bytesLeft = size;\n\t\t\t\t\t\twhile (bytesLeft > 0 && !stream.destroyed) {\n\t\t\t\t\t\t\tconst { bytesRead } = await handle.read(readBuffer, 0, Math.min(bytesLeft, readBuffer.length), null);\n\t\t\t\t\t\t\tif (bytesRead === 0) break;\n\t\t\t\t\t\t\tpacker.write(readBuffer.subarray(0, bytesRead));\n\t\t\t\t\t\t\tbytesLeft -= bytesRead;\n\t\t\t\t\t\t\tif (drain) await drain;\n\t\t\t\t\t\t}\n\t\t\t\t\t} finally {\n\t\t\t\t\t\tawait closeHandle(handle);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (stream.destroyed) return;\n\t\t\t\tpacker.endEntry();\n\t\t\t\tif (drain) await drain;\n\t\t\t\twriteIndex++;\n\t\t\t\tcontroller();\n\t\t\t}\n\t\t};\n\t\tconst controller = () => {\n\t\t\tif (stream.destroyed || allJobsQueued) return;\n\t\t\twhile (activeWorkers < concurrency && jobIndex < jobs.length && jobIndex - writeIndex < concurrency) {\n\t\t\t\tactiveWorkers++;\n\t\t\t\tconst currentIndex = jobIndex++;\n\t\t\t\tprocessJob(jobs[currentIndex], currentIndex).catch(onError).finally(() => {\n\t\t\t\t\tactiveWorkers--;\n\t\t\t\t\tcontroller();\n\t\t\t\t});\n\t\t\t}\n\t\t\tif (activeWorkers === 0 && jobIndex >= jobs.length) {\n\t\t\t\tallJobsQueued = true;\n\t\t\t\twakeWriter();\n\t\t\t}\n\t\t};\n\t\tconst processJob = async (job, index) => {\n\t\t\tlet jobResult = null;\n\t\t\tconst target = normalizeName(job.target);\n\t\t\ttry {\n\t\t\t\tif (job.type === \"content\" || job.type === \"stream\") {\n\t\t\t\t\tlet body;\n\t\t\t\t\tlet size;\n\t\t\t\t\tconst isDir = target.endsWith(\"/\");\n\t\t\t\t\tif (job.type === \"stream\") {\n\t\t\t\t\t\tif (!isDir && job.size <= 0 || isDir && job.size !== 0) throw new Error(isDir ? \"Streams for directories must have size 0.\" : \"Streams require a positive size.\");\n\t\t\t\t\t\tsize = job.size;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst content = await normalizeBody(job.content);\n\t\t\t\t\t\tsize = content.length;\n\t\t\t\t\t\tbody = content;\n\t\t\t\t\t}\n\t\t\t\t\tconst stat = {\n\t\t\t\t\t\tsize: isDir ? 0 : size,\n\t\t\t\t\t\tisFile: () => !isDir,\n\t\t\t\t\t\tisDirectory: () => isDir,\n\t\t\t\t\t\tisSymbolicLink: () => false,\n\t\t\t\t\t\tmode: job.mode,\n\t\t\t\t\t\tmtime: job.mtime ?? /* @__PURE__ */ new Date(),\n\t\t\t\t\t\tuid: job.uid ?? 0,\n\t\t\t\t\t\tgid: job.gid ?? 0\n\t\t\t\t\t};\n\t\t\t\t\tif (stream.destroyed) return;\n\t\t\t\t\tif (filter && !filter(target, stat)) return;\n\t\t\t\t\tif (stream.destroyed) return;\n\t\t\t\t\tlet header = {\n\t\t\t\t\t\tname: target,\n\t\t\t\t\t\ttype: isDir ? DIRECTORY : FILE,\n\t\t\t\t\t\tsize: isDir ? 0 : size,\n\t\t\t\t\t\tmode: stat.mode,\n\t\t\t\t\t\tmtime: stat.mtime,\n\t\t\t\t\t\tuid: stat.uid,\n\t\t\t\t\t\tgid: stat.gid,\n\t\t\t\t\t\tuname: job.uname,\n\t\t\t\t\t\tgname: job.gname\n\t\t\t\t\t};\n\t\t\t\t\tif (map) header = map(header);\n\t\t\t\t\tif (stream.destroyed) return;\n\t\t\t\t\tif (!isDir && job.type === \"stream\") {\n\t\t\t\t\t\tbody = job.content instanceof Readable ? job.content : Readable.fromWeb(job.content);\n\t\t\t\t\t\tbody.once(\"error\", onError);\n\t\t\t\t\t\tbodyStreams.add(body);\n\t\t\t\t\t}\n\t\t\t\t\tjobResult = {\n\t\t\t\t\t\theader,\n\t\t\t\t\t\tbody: isDir ? void 0 : body\n\t\t\t\t\t};\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tlet source = job.source;\n\t\t\t\tlet stat = await fsp.lstat(source, BIGINT_STAT);\n\t\t\t\tif (stream.destroyed) return;\n\t\t\t\tif (dereference && stat.isSymbolicLink()) {\n\t\t\t\t\tsource = await fsp.realpath(source);\n\t\t\t\t\tif (stream.destroyed) return;\n\t\t\t\t\trealBaseDir ??= await fsp.realpath(baseDir ?? directoryPath ?? process.cwd());\n\t\t\t\t\tif (stream.destroyed) return;\n\t\t\t\t\tconst relativeToBase = path.relative(realBaseDir, source);\n\t\t\t\t\tif (relativeToBase === \"..\" || relativeToBase.startsWith(\"..\" + path.sep) || path.isAbsolute(relativeToBase)) return;\n\t\t\t\t\tstat = await fsp.lstat(source, BIGINT_STAT);\n\t\t\t\t\tif (stat.isSymbolicLink()) return;\n\t\t\t\t}\n\t\t\t\tif (stream.destroyed) return;\n\t\t\t\tif (filter && !filter(job.source, stat)) return;\n\t\t\t\tif (stream.destroyed) return;\n\t\t\t\tlet header = {\n\t\t\t\t\tname: target,\n\t\t\t\t\tsize: 0,\n\t\t\t\t\tmode: (job.mode ?? Number(stat.mode)) & 4095,\n\t\t\t\t\tmtime: job.mtime === void 0 ? stat.mtime : new Date(job.mtime.getTime()),\n\t\t\t\t\tuid: job.uid ?? Number(stat.uid),\n\t\t\t\t\tgid: job.gid ?? Number(stat.gid),\n\t\t\t\t\tuname: job.uname,\n\t\t\t\t\tgname: job.gname,\n\t\t\t\t\ttype: FILE\n\t\t\t\t};\n\t\t\t\tlet body;\n\t\t\t\tlet hardlinkId;\n\t\t\t\tif (stat.isDirectory()) {\n\t\t\t\t\theader.type = DIRECTORY;\n\t\t\t\t\theader.name = target.endsWith(\"/\") ? target : `${target}/`;\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst entries = await fsp.readdir(source, WITH_FILE_TYPES);\n\t\t\t\t\t\tif (stream.destroyed) return;\n\t\t\t\t\t\tconst after = await fsp.lstat(source, BIGINT_STAT);\n\t\t\t\t\t\tif (stream.destroyed || !after.isDirectory() || stat.dev !== after.dev || stat.ino !== after.ino) return;\n\t\t\t\t\t\tfor (const d of entries) jobs.push({\n\t\t\t\t\t\t\ttype: d.isDirectory() ? DIRECTORY : FILE,\n\t\t\t\t\t\t\tsource: path.join(source, d.name),\n\t\t\t\t\t\t\ttarget: `${header.name}${d.name}`,\n\t\t\t\t\t\t\tmtime: job.mtime,\n\t\t\t\t\t\t\tuid: job.uid,\n\t\t\t\t\t\t\tgid: job.gid,\n\t\t\t\t\t\t\tuname: job.uname,\n\t\t\t\t\t\t\tgname: job.gname,\n\t\t\t\t\t\t\tmode: job.mode\n\t\t\t\t\t\t});\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\tconst code = error.code;\n\t\t\t\t\t\tif (code !== \"ENOENT\" && code !== \"ENOTDIR\") throw error;\n\t\t\t\t\t}\n\t\t\t\t} else if (stat.isSymbolicLink()) {\n\t\t\t\t\theader.type = SYMLINK;\n\t\t\t\t\theader.linkname = await fsp.readlink(job.source);\n\t\t\t\t} else if (stat.isFile()) {\n\t\t\t\t\theader.size = Number(stat.size);\n\t\t\t\t\tlet handleToClose;\n\t\t\t\t\tif (stat.nlink > 1n && (process.platform !== \"win32\" || stat.dev !== 0n && stat.ino !== -1n)) hardlinkId = `${stat.dev}:${stat.ino}`;\n\t\t\t\t\ttry {\n\t\t\t\t\t\tlet after;\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tif (header.size === 0) after = await fsp.lstat(source, BIGINT_STAT);\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\thandleToClose = await fsp.open(source, fs.constants.O_NOFOLLOW ?? 0);\n\t\t\t\t\t\t\t\tfileHandles.set(handleToClose, null);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t\tconst code = error.code;\n\t\t\t\t\t\t\tif (code === \"ELOOP\" || code === \"ENOENT\") return;\n\t\t\t\t\t\t\tthrow error;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (stream.destroyed) return;\n\t\t\t\t\t\tif (after) {\n\t\t\t\t\t\t\tif (!after.isFile() || stat.dev !== after.dev || stat.ino !== after.ino) return;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst { dev, ino } = await handleToClose.stat(BIGINT_STAT);\n\t\t\t\t\t\t\tif (stream.destroyed) return;\n\t\t\t\t\t\t\tif (stat.dev !== dev || stat.ino !== ino) return;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (header.size > 0) {\n\t\t\t\t\t\t\tconst handle = handleToClose;\n\t\t\t\t\t\t\tif (header.size < 32768) {\n\t\t\t\t\t\t\t\tconst buffer = Buffer.allocUnsafe(header.size);\n\t\t\t\t\t\t\t\tlet offset = 0;\n\t\t\t\t\t\t\t\twhile (offset < buffer.length && !stream.destroyed) {\n\t\t\t\t\t\t\t\t\tconst { bytesRead } = await handle.read(buffer, offset, buffer.length - offset, offset);\n\t\t\t\t\t\t\t\t\tif (bytesRead === 0) break;\n\t\t\t\t\t\t\t\t\toffset += bytesRead;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbody = offset === buffer.length ? buffer : buffer.subarray(0, offset);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tbody = {\n\t\t\t\t\t\t\t\t\thandle,\n\t\t\t\t\t\t\t\t\tsize: header.size\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\thandleToClose = void 0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} finally {\n\t\t\t\t\t\tif (handleToClose) await closeHandle(handleToClose);\n\t\t\t\t\t}\n\t\t\t\t} else return;\n\t\t\t\tif (stream.destroyed) return;\n\t\t\t\tif (hardlinkId) jobResult = {\n\t\t\t\t\theader,\n\t\t\t\t\tbody,\n\t\t\t\t\thardlinkId\n\t\t\t\t};\n\t\t\t\telse {\n\t\t\t\t\tif (map) header = map(header);\n\t\t\t\t\tjobResult = {\n\t\t\t\t\t\theader,\n\t\t\t\t\t\tbody\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t} finally {\n\t\t\t\tif (stream.destroyed) {\n\t\t\t\t\tif (jobResult?.body instanceof Readable) destroyBody(jobResult.body, cancelError);\n\t\t\t\t\telse if (jobResult?.body && !(jobResult.body instanceof Uint8Array)) await closeHandle(jobResult.body.handle);\n\t\t\t\t} else {\n\t\t\t\t\tresults.set(index, jobResult);\n\t\t\t\t\tif (index === writeIndex) wakeWriter();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\tcontroller();\n\t\tawait writer();\n\t\tif (!stream.destroyed) {\n\t\t\tpacker.finalize();\n\t\t\tstream.push(null);\n\t\t}\n\t})().catch(onError);\n\treturn stream;\n}\n//#endregion\n//#region src/fs/concurrency.ts\nconst createOperationQueue = (concurrency) => {\n\tlet active = 0;\n\tconst tasks = [];\n\tlet head = 0;\n\tlet idle = null;\n\tlet resolveIdle = null;\n\tconst ensureIdle = () => idle ??= new Promise((resolve) => resolveIdle = resolve);\n\tconst flush = () => {\n\t\twhile (active < concurrency && head < tasks.length) {\n\t\t\tconst task = tasks[head++];\n\t\t\tactive++;\n\t\t\ttask().finally(() => {\n\t\t\t\tactive--;\n\t\t\t\tflush();\n\t\t\t});\n\t\t}\n\t\tif (head === tasks.length) {\n\t\t\ttasks.length = 0;\n\t\t\thead = 0;\n\t\t\tif (active === 0 && resolveIdle) {\n\t\t\t\tresolveIdle();\n\t\t\t\tidle = null;\n\t\t\t\tresolveIdle = null;\n\t\t\t}\n\t\t}\n\t};\n\treturn {\nadd(op) {\n\t\t\tconst wasIdle = active === 0 && head === tasks.length;\n\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\ttasks.push(() => Promise.resolve().then(op).then(resolve, reject));\n\t\t\t\tif (wasIdle) ensureIdle();\n\t\t\t\tflush();\n\t\t\t});\n\t\t},\n\t\tonIdle() {\n\t\t\treturn active === 0 && head === tasks.length ? Promise.resolve() : ensureIdle();\n\t\t}\n\t};\n};\n//#endregion\n//#region src/fs/file-sink.ts\nconst BATCH_BYTES = 262144;\nconst BUFFER_LIMIT = 8388608;\nconst MAX_WRITE_VECTORS = 1024;\nconst CREATE_FLAGS = fs.constants.O_WRONLY | fs.constants.O_CREAT | fs.constants.O_TRUNC | (fs.constants.O_NOFOLLOW ?? 0) | fs.constants.O_EXCL;\nconst STATE_OPENING = 1;\nconst STATE_OPEN = 2;\nconst STATE_CLOSED = 3;\nconst STATE_FAILED = 4;\nconst DRAINED_PROMISE = Promise.resolve();\nconst discardFile = (fd) => fs.ftruncate(fd, 0, () => fs.close(fd));\nfunction createFileSink(path, { mode = 438, mtime } = {}, onError) {\n\tlet state = STATE_OPENING;\n\tlet flushing = false;\n\tlet fd = null;\n\tlet queue = [];\n\tlet spare = [];\n\tlet bytes = 0;\n\tlet storedError = null;\n\tlet failedFd = null;\n\tlet endPromise = null;\n\tlet endResolve = null;\n\tlet endReject = null;\n\tlet drainPromise = null;\n\tlet drainResolve = null;\n\tlet drainReject = null;\n\tconst settleDrain = (error) => {\n\t\tif (!drainPromise) return;\n\t\tconst resolve = drainResolve;\n\t\tconst reject = drainReject;\n\t\tdrainPromise = null;\n\t\tdrainResolve = null;\n\t\tdrainReject = null;\n\t\tif (error) reject?.(error);\n\t\telse resolve?.();\n\t};\n\tconst resetBuffers = () => {\n\t\tbytes = 0;\n\t\tqueue.length = 0;\n\t\tspare.length = 0;\n\t};\n\tconst finish = () => {\n\t\tif (state === STATE_FAILED) return;\n\t\tstate = STATE_CLOSED;\n\t\tendResolve?.();\n\t\tsettleDrain();\n\t};\n\tconst fail = (error) => {\n\t\tif (storedError) return;\n\t\tstoredError = error;\n\t\tstate = STATE_FAILED;\n\t\tconst writePending = flushing;\n\t\tresetBuffers();\n\t\tconst fdToClose = fd;\n\t\tfd = null;\n\t\tif (fdToClose !== null) if (writePending) failedFd = fdToClose;\n\t\telse discardFile(fdToClose);\n\t\tflushing = false;\n\t\tif (endReject) endReject(error);\n\t\telse onError?.(error);\n\t\tsettleDrain(error);\n\t};\n\tconst close = () => {\n\t\tif (fd === null) {\n\t\t\tfinish();\n\t\t\treturn;\n\t\t}\n\t\tconst fdToClose = fd;\n\t\tfd = null;\n\t\tif (mtime) fs.futimes(fdToClose, mtime, mtime, (err) => {\n\t\t\tif (state !== STATE_OPEN) {\n\t\t\t\tfs.close(fdToClose);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (err) {\n\t\t\t\tfs.close(fdToClose, () => fail(err));\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tfs.close(fdToClose, (closeErr) => {\n\t\t\t\tif (state !== STATE_OPEN) return;\n\t\t\t\tif (closeErr) fail(closeErr);\n\t\t\t\telse finish();\n\t\t\t});\n\t\t});\n\t\telse fs.close(fdToClose, (err) => {\n\t\t\tif (state !== STATE_OPEN) return;\n\t\t\tif (err) fail(err);\n\t\t\telse finish();\n\t\t});\n\t};\n\tconst flush = () => {\n\t\tif (flushing || queue.length === 0 || state !== STATE_OPEN) return;\n\t\tflushing = true;\n\t\tlet bufs = queue;\n\t\tqueue = spare;\n\t\tspare = bufs;\n\t\tqueue.length = 0;\n\t\tlet pendingBytes = bytes;\n\t\tconst onDone = (err, written = 0) => {\n\t\t\tif (state !== STATE_OPEN) {\n\t\t\t\tif (failedFd !== null) {\n\t\t\t\t\tconst fdToClose = failedFd;\n\t\t\t\t\tfailedFd = null;\n\t\t\t\t\tdiscardFile(fdToClose);\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (err) {\n\t\t\t\tflushing = false;\n\t\t\t\tfail(err);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (written <= 0 || written > pendingBytes) {\n\t\t\t\tflushing = false;\n\t\t\t\tfail(/* @__PURE__ */ new Error(\"File write made no progress.\"));\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tbytes -= written;\n\t\t\tpendingBytes -= written;\n\t\t\tif (pendingBytes > 0) {\n\t\t\t\tlet skipped = written;\n\t\t\t\tlet index = 0;\n\t\t\t\twhile (skipped >= bufs[index].length) skipped -= bufs[index++].length;\n\t\t\t\tbufs = bufs.slice(index);\n\t\t\t\tif (skipped > 0) bufs[0] = bufs[0].subarray(skipped);\n\t\t\t\tif (bufs.length === 1) {\n\t\t\t\t\tconst buf = bufs[0];\n\t\t\t\t\tfs.write(fd, buf, 0, buf.length, null, onDone);\n\t\t\t\t} else fs.writev(fd, bufs, onDone);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tflushing = false;\n\t\t\tspare.length = 0;\n\t\t\tif (bytes < BUFFER_LIMIT) settleDrain();\n\t\t\tif (queue.length > 0) flush();\n\t\t\telse if (endResolve) close();\n\t\t};\n\t\tif (bufs.length === 1) {\n\t\t\tconst buf = bufs[0];\n\t\t\tfs.write(fd, buf, 0, buf.length, null, onDone);\n\t\t} else fs.writev(fd, bufs, onDone);\n\t};\n\tconst onOpen = (err, openFd) => {\n\t\tif (err) return fail(err);\n\t\tif (state >= STATE_CLOSED) {\n\t\t\tfs.close(openFd);\n\t\t\treturn;\n\t\t}\n\t\tfd = openFd;\n\t\tstate = STATE_OPEN;\n\t\tif (endResolve) if (queue.length > 0) flush();\n\t\telse close();\n\t\telse if (bytes >= BATCH_BYTES || queue.length >= MAX_WRITE_VECTORS) flush();\n\t\telse settleDrain();\n\t};\n\tconst write = (chunk) => {\n\t\tif (state >= STATE_CLOSED || endResolve) return false;\n\t\tqueue.push(chunk);\n\t\tbytes += chunk.length;\n\t\tif (state === STATE_OPEN && !flushing && (bytes >= BATCH_BYTES || queue.length >= MAX_WRITE_VECTORS)) flush();\n\t\treturn bytes < BUFFER_LIMIT && queue.length < MAX_WRITE_VECTORS;\n\t};\n\tconst waitDrain = () => {\n\t\tif (storedError) return Promise.reject(storedError);\n\t\tif (state === STATE_OPENING || state === STATE_OPEN && (bytes >= BUFFER_LIMIT || queue.length >= MAX_WRITE_VECTORS)) return drainPromise ??= new Promise((resolve, reject) => {\n\t\t\tdrainResolve = resolve;\n\t\t\tdrainReject = reject;\n\t\t});\n\t\treturn DRAINED_PROMISE;\n\t};\n\tconst end = () => {\n\t\tif (storedError) return Promise.reject(storedError);\n\t\tif (state >= STATE_CLOSED) return DRAINED_PROMISE;\n\t\tif (endPromise) return endPromise;\n\t\tendPromise = new Promise((resolve, reject) => {\n\t\t\tendResolve = resolve;\n\t\t\tendReject = reject;\n\t\t\tif (state === STATE_OPEN && !flushing) if (queue.length > 0) flush();\n\t\t\telse close();\n\t\t});\n\t\treturn endPromise;\n\t};\n\tconst destroy = (error) => {\n\t\tif (error) {\n\t\t\tfail(error);\n\t\t\treturn;\n\t\t}\n\t\tif (state >= STATE_CLOSED) return;\n\t\tresetBuffers();\n\t\tflushing = false;\n\t\tif (fd !== null) {\n\t\t\tconst fdToClose = fd;\n\t\t\tfd = null;\n\t\t\tfs.close(fdToClose);\n\t\t}\n\t\tfinish();\n\t};\n\tfs.open(path, CREATE_FLAGS, mode, (err, openFd) => {\n\t\tif (err?.code !== \"EEXIST\") return onOpen(err, openFd);\n\t\tif (state !== STATE_OPENING) return;\n\t\tfs.rm(path, { force: true }, (rmErr) => {\n\t\t\tif (rmErr) return fail(rmErr);\n\t\t\tif (state !== STATE_OPENING) return;\n\t\t\tfs.open(path, CREATE_FLAGS, mode, onOpen);\n\t\t});\n\t});\n\treturn {\n\t\twrite,\n\t\tend,\n\t\tdestroy,\n\t\twaitDrain\n\t};\n}\n//#endregion\n//#region src/fs/cache.ts\nconst createCache = () => {\n\tconst m = /* @__PURE__ */ new Map();\n\treturn {\nget(k) {\n\t\t\tconst v = m.get(k);\n\t\t\tif (m.delete(k)) m.set(k, v);\n\t\t\treturn v;\n\t\t},\nset(k, v) {\n\t\t\tif (m.set(k, v).size > 1e4) m.delete(m.keys().next().value);\n\t\t},\n\t\tclear() {\n\t\t\tm.clear();\n\t\t}\n\t};\n};\n//#endregion\n//#region src/fs/path-cache.ts\nconst ENOENT = \"ENOENT\";\nconst MAX_SYMLINKS = 64;\nconst linkSep = process.platform === \"win32\" ? /[/\\\\]/ : \"/\";\nconst linkParts = (linkname) => linkname.split(linkSep).filter((part) => part && part !== \".\");\nconst createPathCache = (destDirPath, options, opQueue, concurrency) => {\n\tconst { maxDepth = 1024, dmode } = options;\n\tconst dirPromises = createCache();\n\tconst pathConflicts = /* @__PURE__ */ new Map();\n\tconst deferredLinks = [];\n\tlet symlinks;\n\tconst realDirCache = createCache();\n\tconst initializeDestDir = async (destDirPath) => {\n\t\tconst symbolic = path.resolve(destDirPath);\n\t\ttry {\n\t\t\tawait fsp.mkdir(symbolic, { recursive: true });\n\t\t} catch (err) {\n\t\t\tif (err.code === ENOENT) {\n\t\t\t\tconst parentDir = path.dirname(symbolic);\n\t\t\t\tif (parentDir === symbolic) throw err;\n\t\t\t\tawait fsp.mkdir(parentDir, { recursive: true });\n\t\t\t\tawait fsp.mkdir(symbolic, { recursive: true });\n\t\t\t} else throw err;\n\t\t}\n\t\ttry {\n\t\t\treturn {\n\t\t\t\tsymbolic,\n\t\t\t\treal: await fsp.realpath(symbolic)\n\t\t\t};\n\t\t} catch (err) {\n\t\t\tif (err.code === ENOENT) return {\n\t\t\t\tsymbolic,\n\t\t\t\treal: symbolic\n\t\t\t};\n\t\t\tthrow err;\n\t\t}\n\t};\n\tconst destDirPromise = initializeDestDir(destDirPath);\n\tdestDirPromise.catch(() => {});\n\tconst getRealDir = async (dirPath, errorMessage) => {\n\t\tconst destDir = await destDirPromise;\n\t\tif (dirPath === destDir.symbolic) return destDir.real;\n\t\tlet promise = realDirCache.get(dirPath);\n\t\tif (!promise) {\n\t\t\tpromise = fsp.realpath(dirPath).then((realPath) => {\n\t\t\t\tvalidateBounds(realPath, destDir.real, errorMessage);\n\t\t\t\treturn realPath;\n\t\t\t});\n\t\t\trealDirCache.set(dirPath, promise);\n\t\t}\n\t\treturn promise;\n\t};\n\tconst prepareDirectory = async (dirPath, mode) => {\n\t\tlet promise = dirPromises.get(dirPath);\n\t\tif (promise) return promise;\n\t\tpromise = (async () => {\n\t\t\tif (dirPath === (await destDirPromise).symbolic) return;\n\t\t\tawait prepareDirectory(path.dirname(dirPath));\n\t\t\ttry {\n\t\t\t\tconst stat = await fsp.lstat(dirPath);\n\t\t\t\tif (stat.isDirectory()) return;\n\t\t\t\tif (stat.isSymbolicLink()) try {\n\t\t\t\t\tconst realPath = await getRealDir(dirPath, `Symlink \"${dirPath}\" points outside the extraction directory.`);\n\t\t\t\t\tif ((await fsp.stat(realPath)).isDirectory()) return;\n\t\t\t\t} catch (err) {\n\t\t\t\t\tif (err.code === ENOENT) throw new Error(`Symlink \"${dirPath}\" points outside the extraction directory.`);\n\t\t\t\t\tthrow err;\n\t\t\t\t}\n\t\t\t\tthrow new Error(`\"${dirPath}\" is not a valid directory component.`);\n\t\t\t} catch (err) {\n\t\t\t\tif (err.code === ENOENT) {\n\t\t\t\t\tawait fsp.mkdir(dirPath, { mode: mode ?? options.dmode });\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthrow err;\n\t\t\t}\n\t\t})();\n\t\tdirPromises.set(dirPath, promise);\n\t\treturn promise;\n\t};\n\treturn {\nasync ready() {\n\t\t\tawait destDirPromise;\n\t\t},\nasync preparePath(header) {\n\t\t\tconst { name, linkname, type, mode, mtime } = header;\n\t\t\tconst normalizedName = normalizeHeaderName(name);\n\t\t\tconst destDir = await destDirPromise;\n\t\t\tconst outPath = path.join(destDir.symbolic, normalizedName);\n\t\t\tif (maxDepth !== Infinity) {\n\t\t\t\tlet depth = 1;\n\t\t\t\tfor (const char of normalizedName) if (char === \"/\" && ++depth > maxDepth) throw new Error(\"Tar exceeds max specified depth.\");\n\t\t\t}\n\t\t\tconst prevOp = pathConflicts.get(normalizedName);\n\t\t\tif (prevOp) {\n\t\t\t\tif (prevOp === \"directory\" && type !== \"directory\" || prevOp !== \"directory\" && type === \"directory\") throw new Error(`Path conflict ${type} over existing ${prevOp} at \"${name}\"`);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst parentDir = path.dirname(outPath);\n\t\t\tswitch (type) {\n\t\t\t\tcase DIRECTORY: {\n\t\t\t\t\tpathConflicts.set(normalizedName, DIRECTORY);\n\t\t\t\t\tconst safeMode = mode === void 0 ? void 0 : mode & 511;\n\t\t\t\t\tawait prepareDirectory(outPath, dmode ?? safeMode);\n\t\t\t\t\tif (mtime) await fsp.lutimes(outPath, mtime, mtime).catch(() => {});\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tcase FILE:\n\t\t\t\t\tpathConflicts.set(normalizedName, FILE);\n\t\t\t\t\tawait prepareDirectory(parentDir);\n\t\t\t\t\treturn path.join(await getRealDir(parentDir, `File \"${name}\" points outside the extraction directory.`), path.basename(outPath));\n\t\t\t\tcase SYMLINK: {\n\t\t\t\t\tpathConflicts.set(normalizedName, SYMLINK);\n\t\t\t\t\tif (!linkname) return;\n\t\t\t\t\tvalidateBounds(path.resolve(parentDir, linkname), destDir.symbolic, `Symlink \"${linkname}\" points outside the extraction directory.`);\n\t\t\t\t\tawait prepareDirectory(parentDir);\n\t\t\t\t\tconst realParentDir = await fsp.realpath(parentDir);\n\t\t\t\t\tvalidateBounds(realParentDir, destDir.real, \"Symlink parent changed.\");\n\t\t\t\t\tvalidateBounds(path.resolve(realParentDir, linkname), destDir.real, `Symlink \"${linkname}\" points outside the extraction directory.`);\n\t\t\t\t\tconst realOutPath = path.join(realParentDir, path.basename(outPath));\n\t\t\t\t\ttry {\n\t\t\t\t\t\tawait fsp.symlink(linkname, realOutPath);\n\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\tif (err.code !== \"EEXIST\") throw err;\n\t\t\t\t\t\tawait fsp.rm(realOutPath, { force: true });\n\t\t\t\t\t\tif (await fsp.realpath(parentDir) !== realParentDir) throw new Error(\"Symlink parent changed.\");\n\t\t\t\t\t\tawait fsp.symlink(linkname, realOutPath);\n\t\t\t\t\t}\n\t\t\t\t\t(symlinks ??= []).push([normalizedName, linkname]);\n\t\t\t\t\tdirPromises.clear();\n\t\t\t\t\trealDirCache.clear();\n\t\t\t\t\tif (mtime) await fsp.lutimes(outPath, mtime, mtime).catch(() => {});\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tcase LINK: {\n\t\t\t\t\tpathConflicts.set(normalizedName, LINK);\n\t\t\t\t\tif (!linkname) return;\n\t\t\t\t\tif (path.isAbsolute(linkname)) throw new Error(`Hardlink \"${linkname}\" points outside the extraction directory.`);\n\t\t\t\t\tconst linkTarget = path.join(destDir.symbolic, linkname);\n\t\t\t\t\tvalidateBounds(linkTarget, destDir.symbolic, `Hardlink \"${linkname}\" points outside the extraction directory.`);\n\t\t\t\t\tawait prepareDirectory(parentDir);\n\t\t\t\t\tif (linkTarget !== outPath) deferredLinks.push({\n\t\t\t\t\t\tlinkTarget,\n\t\t\t\t\t\toutPath\n\t\t\t\t\t});\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tdefault: return;\n\t\t\t}\n\t\t},\nasync checkSymlinks() {\n\t\t\tif (!symlinks) return;\n\t\t\tconst { symbolic: dest, real } = await destDirPromise;\n\t\t\tconst realPrefix = real + path.sep;\n\t\t\tconst root = path.parse(real).root;\n\t\t\tconst depth = linkParts(real.slice(root.length)).length;\n\t\t\tconst targetParts = (linkname, resolvedParts, message) => {\n\t\t\t\tif (!path.isAbsolute(linkname)) return linkParts(linkname);\n\t\t\t\tvalidateBounds(linkname, real, message);\n\t\t\t\tresolvedParts.length = 0;\n\t\t\t\tconst parts = linkParts(linkname.slice(root.length));\n\t\t\t\tparts.splice(0, depth);\n\t\t\t\treturn parts;\n\t\t\t};\n\t\t\tconst getSymlinkError = async ([name, storedLinkname]) => {\n\t\t\t\tconst outPath = path.join(dest, name);\n\t\t\t\ttry {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst resolved = await fsp.realpath(outPath);\n\t\t\t\t\t\tif (resolved !== real && !resolved.startsWith(realPrefix)) throw new Error(`Symlink \"${storedLinkname}\" points outside the extraction directory.`);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\tif (err.code !== ENOENT) throw err;\n\t\t\t\t\t}\n\t\t\t\t\tif (!(await fsp.lstat(outPath)).isSymbolicLink()) return;\n\t\t\t\t\tconst linkname = await fsp.readlink(outPath);\n\t\t\t\t\tconst message = `Symlink \"${linkname}\" points outside the extraction directory.`;\n\t\t\t\t\tconst realParent = await fsp.realpath(path.dirname(outPath));\n\t\t\t\t\tvalidateBounds(realParent, real, message);\n\t\t\t\t\tconst resolvedParts = linkParts(path.relative(real, realParent));\n\t\t\t\t\tconst pendingParts = targetParts(linkname, resolvedParts, message);\n\t\t\t\t\tlet followedSymlinks = 0;\n\t\t\t\t\tfor (let i = 0; i < pendingParts.length; i++) {\n\t\t\t\t\t\tconst part = pendingParts[i];\n\t\t\t\t\t\tif (part === \"..\") {\n\t\t\t\t\t\t\tif (!resolvedParts.length) throw new Error(message);\n\t\t\t\t\t\t\tresolvedParts.pop();\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tresolvedParts.push(part);\n\t\t\t\t\t\tconst nextPath = path.join(real, ...resolvedParts);\n\t\t\t\t\t\tlet nextStat;\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tnextStat = await fsp.lstat(nextPath);\n\t\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\t\tif (err.code === ENOENT) continue;\n\t\t\t\t\t\t\tthrow err;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!nextStat.isSymbolicLink()) continue;\n\t\t\t\t\t\tif (++followedSymlinks > MAX_SYMLINKS) throw new Error(message);\n\t\t\t\t\t\tconst nextLink = await fsp.readlink(nextPath);\n\t\t\t\t\t\tresolvedParts.pop();\n\t\t\t\t\t\tpendingParts.splice(i + 1, 0, ...targetParts(nextLink, resolvedParts, message));\n\t\t\t\t\t}\n\t\t\t\t} catch (err) {\n\t\t\t\t\tif (err.code !== ENOENT) return err;\n\t\t\t\t}\n\t\t\t};\n\t\t\tfor (let start = 0; start < symlinks.length; start += concurrency) {\n\t\t\t\tconst batch = symlinks.slice(start, start + concurrency);\n\t\t\t\tconst errors = await Promise.all(batch.map((symlink) => opQueue.add(() => getSymlinkError(symlink))));\n\t\t\t\tfor (const [i, error] of errors.entries()) {\n\t\t\t\t\tif (error === void 0) continue;\n\t\t\t\t\tawait fsp.rm(path.join(dest, batch[i][0]), { force: true });\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\t\t\t}\n\t\t},\nasync applyLinks() {\n\t\t\tconst destRoot = (await destDirPromise).real;\n\t\t\tfor (const { linkTarget, outPath } of deferredLinks) try {\n\t\t\t\tconst realTargetDir = await fsp.realpath(path.dirname(linkTarget));\n\t\t\t\tvalidateBounds(realTargetDir, destRoot, `Hardlink \"${linkTarget}\" points outside the extraction directory.`);\n\t\t\t\tconst realTarget = path.join(realTargetDir, path.basename(linkTarget));\n\t\t\t\tconst [targetResult, outDirResult] = await Promise.allSettled([opQueue.add(() => fsp.lstat(realTarget)), opQueue.add(() => fsp.realpath(path.dirname(outPath)))]);\n\t\t\t\tif (targetResult.status === \"rejected\") throw targetResult.reason;\n\t\t\t\tconst targetStat = targetResult.value;\n\t\t\t\tif (targetStat.isSymbolicLink()) throw new Error(`Hardlink \"${linkTarget}\" is a symlink.`);\n\t\t\t\tif (outDirResult.status === \"rejected\") throw outDirResult.reason;\n\t\t\t\tconst realOutDir = outDirResult.value;\n\t\t\t\tvalidateBounds(realOutDir, destRoot, `Hardlink \"${outPath}\" points outside the extraction directory.`);\n\t\t\t\tconst realOutPath = path.join(realOutDir, path.basename(outPath));\n\t\t\t\ttry {\n\t\t\t\t\tawait fsp.link(realTarget, realOutPath);\n\t\t\t\t} catch (err) {\n\t\t\t\t\tconst code = err.code;\n\t\t\t\t\tif (code !== \"EEXIST\" && code !== ENOENT) throw err;\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst outStat = await fsp.lstat(realOutPath);\n\t\t\t\t\t\tif (outStat.dev === targetStat.dev && outStat.ino === targetStat.ino) continue;\n\t\t\t\t\t\tawait fsp.rm(realOutPath, { force: true });\n\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\tif (err.code !== ENOENT) throw err;\n\t\t\t\t\t}\n\t\t\t\t\tawait fsp.link(realTarget, realOutPath);\n\t\t\t\t}\n\t\t\t\tconst linkStat = await fsp.lstat(realOutPath);\n\t\t\t\tif (linkStat.dev !== targetStat.dev || linkStat.ino !== targetStat.ino) {\n\t\t\t\t\tawait fsp.rm(realOutPath, { force: true });\n\t\t\t\t\tthrow new Error(`Hardlink target \"${linkTarget}\" changed during creation for link at \"${outPath}\".`);\n\t\t\t\t}\n\t\t\t} catch (err) {\n\t\t\t\tif (err.code === ENOENT) throw new Error(`Hardlink target \"${linkTarget}\" does not exist for link at \"${outPath}\".`);\n\t\t\t\tthrow err;\n\t\t\t}\n\t\t}\n\t};\n};\n//#endregion\n//#region src/fs/unpack.ts\nfunction unpackTar(directoryPath, options = {}) {\n\tconst unpacker = createUnpacker(options);\n\tconst concurrency = options.concurrency || cpus().length || 8;\n\tconst opQueue = createOperationQueue(concurrency);\n\tlet cancelError;\n\tconst pathCache = createPathCache(directoryPath, options, opQueue, concurrency);\n\tlet currentFileStream = null;\n\tconst fileStreams = /* @__PURE__ */ new Set();\n\tlet needsDrain = false;\n\tconst writeCurrent = (chunk) => {\n\t\tconst writeOk = currentFileStream.write(chunk);\n\t\tif (!writeOk) needsDrain = true;\n\t\treturn writeOk;\n\t};\n\tconst onFileError = (err) => {\n\t\tif (!writable.destroyed) writable.destroy(err);\n\t};\n\tconst closeCurrent = () => {\n\t\tconst stream = currentFileStream;\n\t\tcurrentFileStream = null;\n\t\topQueue.add(() => stream.end()).then(() => fileStreams.delete(stream), (err) => {\n\t\t\tfileStreams.delete(stream);\n\t\t\tonFileError(err);\n\t\t});\n\t};\n\tconst writable = new Writable({\n\t\tasync write(chunk, _, cb) {\n\t\t\tlet pendingFileOpens;\n\t\t\tlet writeError;\n\t\t\ttry {\n\t\t\t\tunpacker.write(chunk);\n\t\t\t\tif (unpacker.isEntryActive()) {\n\t\t\t\t\tif (currentFileStream) {\n\t\t\t\t\t\twhile (!unpacker.isBodyComplete()) {\n\t\t\t\t\t\t\tneedsDrain = false;\n\t\t\t\t\t\t\tconst fed = unpacker.streamBody(writeCurrent);\n\t\t\t\t\t\t\tif (needsDrain) await currentFileStream.waitDrain();\n\t\t\t\t\t\t\telse if (fed === 0) return;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!unpacker.skipPadding()) return;\n\t\t\t\t\t\tcloseCurrent();\n\t\t\t\t\t} else if (!unpacker.skipEntry()) return;\n\t\t\t\t}\n\t\t\t\twhile (true) {\n\t\t\t\t\tconst header = unpacker.readHeader();\n\t\t\t\t\tif (header === void 0 || header === null) return;\n\t\t\t\t\tconst transformedHeader = transformHeader(header, options);\n\t\t\t\t\tif (!transformedHeader) {\n\t\t\t\t\t\tif (!unpacker.skipEntry()) return;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tconst outPath = await opQueue.add(() => pathCache.preparePath(transformedHeader));\n\t\t\t\t\tif (cancelError) throw cancelError;\n\t\t\t\t\tif (outPath) {\n\t\t\t\t\t\tconst safeMode = transformedHeader.mode === void 0 ? void 0 : transformedHeader.mode & 511;\n\t\t\t\t\t\tcurrentFileStream = createFileSink(outPath, {\n\t\t\t\t\t\t\tmode: options.fmode ?? safeMode,\n\t\t\t\t\t\t\tmtime: transformedHeader.mtime ?? void 0\n\t\t\t\t\t\t}, onFileError);\n\t\t\t\t\t\tfileStreams.add(currentFileStream);\n\t\t\t\t\t\t(pendingFileOpens ??= []).push(currentFileStream.waitDrain().catch((error) => error));\n\t\t\t\t\t\twhile (!unpacker.isBodyComplete()) {\n\t\t\t\t\t\t\tneedsDrain = false;\n\t\t\t\t\t\t\tconst fed = unpacker.streamBody(writeCurrent);\n\t\t\t\t\t\t\tif (needsDrain) await currentFileStream.waitDrain();\n\t\t\t\t\t\t\telse if (fed === 0) return;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!unpacker.skipPadding()) return;\n\t\t\t\t\t\tcloseCurrent();\n\t\t\t\t\t} else if (!unpacker.skipEntry()) return;\n\t\t\t\t}\n\t\t\t} catch (err) {\n\t\t\t\twriteError = err;\n\t\t\t} finally {\n\t\t\t\tconst openError = pendingFileOpens ? (await Promise.all(pendingFileOpens)).find((error) => error) : void 0;\n\t\t\t\tcb(cancelError ?? openError ?? writeError);\n\t\t\t}\n\t\t},\n\t\tasync final(cb) {\n\t\t\ttry {\n\t\t\t\tunpacker.end();\n\t\t\t\tunpacker.validateEOF();\n\t\t\t\tif (currentFileStream) closeCurrent();\n\t\t\t\tawait pathCache.ready();\n\t\t\t\tawait opQueue.onIdle();\n\t\t\t\tif (cancelError) throw cancelError;\n\t\t\t\tawait pathCache.checkSymlinks();\n\t\t\t\tawait pathCache.applyLinks();\n\t\t\t\tcb();\n\t\t\t} catch (err) {\n\t\t\t\tcb(err);\n\t\t\t}\n\t\t},\n\t\tdestroy(error, callback) {\n\t\t\tconst hasWork = fileStreams.size > 0 || writable.writableLength > 0 || writable.writableEnded && !writable.writableFinished;\n\t\t\tif (!error && !hasWork) {\n\t\t\t\tcallback(null);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tcancelError = error ?? AbortSignal.abort().reason;\n\t\t\tfor (const stream of fileStreams) stream.destroy(cancelError);\n\t\t\tfileStreams.clear();\n\t\t\tcurrentFileStream = null;\n\t\t\tcallback(cancelError);\n\t\t}\n\t});\n\treturn writable;\n}\n//#endregion\nexport { packTar, packTarSources, unpackTar };\n"],"mappings":"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","names":["isAbsolute","remaining","path","path","relative","resolve","body","stat","header","close","write","destDirPath","symlink","err"]}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { createRequire as __holydeckCreateRequire } from 'node:module';
|
|
3
|
+
const require = __holydeckCreateRequire(import.meta.url);
|
|
4
|
+
import {
|
|
5
|
+
applyExtends,
|
|
6
|
+
esm_default,
|
|
7
|
+
hideBin,
|
|
8
|
+
lib_default
|
|
9
|
+
} from "./chunk-V4BIHFVZ.js";
|
|
10
|
+
import "./chunk-IEJ3OX3N.js";
|
|
11
|
+
|
|
12
|
+
// ../../node_modules/.pnpm/yargs@18.1.0/node_modules/yargs/helpers/helpers.mjs
|
|
13
|
+
var applyExtends2 = (config, cwd, mergeExtends) => {
|
|
14
|
+
return applyExtends(config, cwd, mergeExtends, esm_default);
|
|
15
|
+
};
|
|
16
|
+
export {
|
|
17
|
+
lib_default as Parser,
|
|
18
|
+
applyExtends2 as applyExtends,
|
|
19
|
+
hideBin
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=helpers-64DWIL6C.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../node_modules/.pnpm/yargs@18.1.0/node_modules/yargs/helpers/helpers.mjs"],"sourcesContent":["import {applyExtends as _applyExtends} from '../build/lib/utils/apply-extends.js';\nimport {hideBin} from '../build/lib/utils/process-argv.js';\nimport Parser from 'yargs-parser';\nimport shim from '../lib/platform-shims/esm.mjs';\n\nconst applyExtends = (config, cwd, mergeExtends) => {\n return _applyExtends(config, cwd, mergeExtends, shim);\n};\n\nexport {applyExtends, hideBin, Parser};\n"],"mappings":";;;;;;;;;;;;AAKA,IAAMA,gBAAe,CAAC,QAAQ,KAAK,iBAAiB;AAClD,SAAO,aAAc,QAAQ,KAAK,cAAc,WAAI;AACtD;","names":["applyExtends"]}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { createRequire as __holydeckCreateRequire } from 'node:module';
|
|
3
|
+
const require = __holydeckCreateRequire(import.meta.url);
|
|
4
|
+
import {
|
|
5
|
+
Browser,
|
|
6
|
+
BrowserPlatform,
|
|
7
|
+
BrowserTag,
|
|
8
|
+
CDP_WEBSOCKET_ENDPOINT_REGEX,
|
|
9
|
+
CLI,
|
|
10
|
+
Cache,
|
|
11
|
+
ChromeReleaseChannel,
|
|
12
|
+
DefaultProvider,
|
|
13
|
+
InstalledBrowser,
|
|
14
|
+
Process,
|
|
15
|
+
TimeoutError,
|
|
16
|
+
WEBDRIVER_BIDI_WEBSOCKET_ENDPOINT_REGEX,
|
|
17
|
+
buildArchiveFilename,
|
|
18
|
+
canDownload,
|
|
19
|
+
computeExecutablePath,
|
|
20
|
+
computeSystemExecutablePath,
|
|
21
|
+
createProfile,
|
|
22
|
+
detectBrowserPlatform,
|
|
23
|
+
getDownloadUrl,
|
|
24
|
+
getInstalledBrowsers,
|
|
25
|
+
getVersionComparator,
|
|
26
|
+
install,
|
|
27
|
+
launch,
|
|
28
|
+
resolveBuildId,
|
|
29
|
+
resolveDefaultUserDataDir,
|
|
30
|
+
uninstall
|
|
31
|
+
} from "./chunk-UC6TFXMD.js";
|
|
32
|
+
import "./chunk-IEJ3OX3N.js";
|
|
33
|
+
export {
|
|
34
|
+
Browser,
|
|
35
|
+
BrowserPlatform,
|
|
36
|
+
BrowserTag,
|
|
37
|
+
CDP_WEBSOCKET_ENDPOINT_REGEX,
|
|
38
|
+
CLI,
|
|
39
|
+
Cache,
|
|
40
|
+
ChromeReleaseChannel,
|
|
41
|
+
DefaultProvider,
|
|
42
|
+
InstalledBrowser,
|
|
43
|
+
Process,
|
|
44
|
+
TimeoutError,
|
|
45
|
+
WEBDRIVER_BIDI_WEBSOCKET_ENDPOINT_REGEX,
|
|
46
|
+
buildArchiveFilename,
|
|
47
|
+
canDownload,
|
|
48
|
+
computeExecutablePath,
|
|
49
|
+
computeSystemExecutablePath,
|
|
50
|
+
createProfile,
|
|
51
|
+
detectBrowserPlatform,
|
|
52
|
+
getDownloadUrl,
|
|
53
|
+
getInstalledBrowsers,
|
|
54
|
+
getVersionComparator,
|
|
55
|
+
install,
|
|
56
|
+
launch,
|
|
57
|
+
resolveBuildId,
|
|
58
|
+
resolveDefaultUserDataDir,
|
|
59
|
+
uninstall
|
|
60
|
+
};
|
|
61
|
+
//# sourceMappingURL=main-IQ64YDOJ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|