@resourcexjs/core 1.0.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js.map CHANGED
@@ -1,14 +1,15 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../src/errors.ts", "../src/locator/parseRXL.ts", "../src/manifest/createRXM.ts", "../src/content/createRXC.ts", "../src/content/loadRXC.ts"],
3
+ "sources": ["../src/errors.ts", "../src/locator/parseRXL.ts", "../src/manifest/createRXM.ts", "../src/content/createRXC.ts", "../../../node_modules/.bun/modern-tar@0.7.3/node_modules/modern-tar/dist/unpacker-BpPBxY8N.js", "../../../node_modules/.bun/modern-tar@0.7.3/node_modules/modern-tar/dist/web/index.js"],
4
4
  "sourcesContent": [
5
5
  "/**\n * ResourceX Error hierarchy\n */\n\nexport class ResourceXError extends Error {\n constructor(message: string, options?: ErrorOptions) {\n super(message, options);\n this.name = \"ResourceXError\";\n }\n}\n\nexport class LocatorError extends ResourceXError {\n constructor(\n message: string,\n public readonly locator?: string\n ) {\n super(message);\n this.name = \"LocatorError\";\n }\n}\n\nexport class ManifestError extends ResourceXError {\n constructor(message: string) {\n super(message);\n this.name = \"ManifestError\";\n }\n}\n\nexport class ContentError extends ResourceXError {\n constructor(message: string) {\n super(message);\n this.name = \"ContentError\";\n }\n}\n",
6
6
  "import type { RXL } from \"./types.js\";\n\nclass RXLImpl implements RXL {\n readonly domain?: string;\n readonly path?: string;\n readonly name: string;\n readonly type?: string;\n readonly version?: string;\n\n constructor(parts: {\n domain?: string;\n path?: string;\n name: string;\n type?: string;\n version?: string;\n }) {\n this.domain = parts.domain;\n this.path = parts.path;\n this.name = parts.name;\n this.type = parts.type;\n this.version = parts.version;\n }\n\n toString(): string {\n let result = \"\";\n if (this.domain) {\n result += this.domain + \"/\";\n if (this.path) {\n result += this.path + \"/\";\n }\n }\n result += this.name;\n if (this.type) {\n result += \".\" + this.type;\n }\n if (this.version) {\n result += \"@\" + this.version;\n }\n return result;\n }\n}\n\nfunction isDomain(str: string): boolean {\n if (str === \"localhost\") return true;\n return str.includes(\".\");\n}\n\n/**\n * Parse a resource locator string into RXL object.\n *\n * Format: [domain/path/]name[.type][@version]\n */\nexport function parseRXL(locator: string): RXL {\n let remaining = locator;\n let version: string | undefined;\n let type: string | undefined;\n let domain: string | undefined;\n let path: string | undefined;\n let name: string;\n\n // 1. Extract version (after @)\n const atIndex = remaining.indexOf(\"@\");\n if (atIndex !== -1) {\n version = remaining.slice(atIndex + 1);\n remaining = remaining.slice(0, atIndex);\n }\n\n // 2. Split by / to get segments\n const segments = remaining.split(\"/\");\n\n // 3. Handle domain and path\n if (segments.length > 1 && isDomain(segments[0])) {\n domain = segments[0];\n const lastSegment = segments[segments.length - 1];\n if (segments.length > 2) {\n path = segments.slice(1, -1).join(\"/\");\n }\n remaining = lastSegment;\n } else {\n remaining = segments.join(\"/\");\n }\n\n // 4. Extract type (after last .)\n const dotIndex = remaining.lastIndexOf(\".\");\n if (dotIndex !== -1) {\n type = remaining.slice(dotIndex + 1);\n name = remaining.slice(0, dotIndex);\n } else {\n name = remaining;\n }\n\n return new RXLImpl({ domain, path, name, type, version });\n}\n",
7
7
  "import type { RXM, ManifestData } from \"./types.js\";\nimport { ManifestError } from \"~/errors.js\";\n\nclass RXMImpl implements RXM {\n readonly domain: string;\n readonly path?: string;\n readonly name: string;\n readonly type: string;\n readonly version: string;\n\n constructor(data: {\n domain: string;\n path?: string;\n name: string;\n type: string;\n version: string;\n }) {\n this.domain = data.domain;\n this.path = data.path;\n this.name = data.name;\n this.type = data.type;\n this.version = data.version;\n }\n\n toLocator(): string {\n let result = this.domain + \"/\";\n if (this.path) {\n result += this.path + \"/\";\n }\n result += this.name;\n result += \".\" + this.type;\n result += \"@\" + this.version;\n return result;\n }\n\n toJSON(): ManifestData {\n const json: ManifestData = {\n domain: this.domain,\n name: this.name,\n type: this.type,\n version: this.version,\n };\n if (this.path !== undefined) {\n json.path = this.path;\n }\n return json;\n }\n}\n\n/**\n * Create a manifest from data object.\n */\nexport function createRXM(data: ManifestData): RXM {\n if (!data.domain) {\n throw new ManifestError(\"domain is required\");\n }\n if (!data.name) {\n throw new ManifestError(\"name is required\");\n }\n if (!data.type) {\n throw new ManifestError(\"type is required\");\n }\n if (!data.version) {\n throw new ManifestError(\"version is required\");\n }\n\n return new RXMImpl({\n domain: data.domain,\n path: data.path,\n name: data.name,\n type: data.type,\n version: data.version,\n });\n}\n",
8
- "import type { RXC } from \"./types.js\";\nimport { ContentError } from \"~/errors.js\";\n\nclass RXCImpl implements RXC {\n private _stream: ReadableStream<Uint8Array>;\n private _consumed = false;\n\n constructor(stream: ReadableStream<Uint8Array>) {\n this._stream = stream;\n }\n\n get stream(): ReadableStream<Uint8Array> {\n if (this._consumed) {\n throw new ContentError(\"Content has already been consumed\");\n }\n this._consumed = true;\n return this._stream;\n }\n\n async text(): Promise<string> {\n const buffer = await this.buffer();\n return buffer.toString(\"utf-8\");\n }\n\n async buffer(): Promise<Buffer> {\n if (this._consumed) {\n throw new ContentError(\"Content has already been consumed\");\n }\n this._consumed = true;\n\n const reader = this._stream.getReader();\n const chunks: Uint8Array[] = [];\n\n while (true) {\n const { done, value } = await reader.read();\n if (done) break;\n chunks.push(value);\n }\n\n return Buffer.concat(chunks);\n }\n\n async json<T>(): Promise<T> {\n const text = await this.text();\n return JSON.parse(text) as T;\n }\n}\n\n/**\n * Create RXC from string, Buffer, or ReadableStream.\n */\nexport function createRXC(data: string | Buffer | ReadableStream<Uint8Array>): RXC {\n let stream: ReadableStream<Uint8Array>;\n\n if (typeof data === \"string\") {\n const encoded = new TextEncoder().encode(data);\n stream = new ReadableStream({\n start(controller) {\n controller.enqueue(encoded);\n controller.close();\n },\n });\n } else if (Buffer.isBuffer(data)) {\n stream = new ReadableStream({\n start(controller) {\n controller.enqueue(new Uint8Array(data));\n controller.close();\n },\n });\n } else {\n // Already a ReadableStream\n stream = data;\n }\n\n return new RXCImpl(stream);\n}\n",
9
- "import { createReadStream } from \"node:fs\";\nimport { Readable } from \"node:stream\";\nimport type { RXC } from \"./types.js\";\nimport { createRXC } from \"./createRXC.js\";\n\n/**\n * Load RXC from file path or URL.\n */\nexport async function loadRXC(source: string): Promise<RXC> {\n // Check if it's a URL\n if (source.startsWith(\"http://\") || source.startsWith(\"https://\")) {\n const response = await fetch(source);\n if (!response.ok) {\n throw new Error(`Failed to fetch ${source}: ${response.statusText}`);\n }\n if (!response.body) {\n throw new Error(`No body in response from ${source}`);\n }\n return createRXC(response.body);\n }\n\n // Otherwise, treat as file path\n const nodeStream = createReadStream(source);\n const webStream = Readable.toWeb(nodeStream) as ReadableStream<Uint8Array>;\n return createRXC(webStream);\n}\n"
8
+ "import { gzip, gunzip } from \"node:zlib\";\nimport { promisify } from \"node:util\";\nimport { packTar, unpackTar } from \"modern-tar\";\nimport type { RXC, RXCInput } from \"./types.js\";\nimport { ContentError } from \"~/errors.js\";\n\nconst gzipAsync = promisify(gzip);\nconst gunzipAsync = promisify(gunzip);\n\nclass RXCImpl implements RXC {\n private _buffer: Buffer;\n private _filesCache: Map<string, Buffer> | null = null;\n\n constructor(buffer: Buffer) {\n this._buffer = buffer;\n }\n\n get stream(): ReadableStream<Uint8Array> {\n const buffer = this._buffer;\n return new ReadableStream({\n start(controller) {\n controller.enqueue(new Uint8Array(buffer));\n controller.close();\n },\n });\n }\n\n async buffer(): Promise<Buffer> {\n return this._buffer;\n }\n\n async file(path: string): Promise<Buffer> {\n const filesMap = await this.files();\n const content = filesMap.get(path);\n if (!content) {\n throw new ContentError(`file not found: ${path}`);\n }\n return content;\n }\n\n async files(): Promise<Map<string, Buffer>> {\n if (this._filesCache) {\n return this._filesCache;\n }\n\n // Decompress gzip\n const tarBuffer = await gunzipAsync(this._buffer);\n\n // Unpack tar\n const entries = await unpackTar(tarBuffer);\n\n const filesMap = new Map<string, Buffer>();\n for (const entry of entries) {\n if ((entry.header.type === \"file\" || entry.header.type === undefined) && entry.data) {\n filesMap.set(entry.header.name, Buffer.from(entry.data));\n }\n }\n\n this._filesCache = filesMap;\n return filesMap;\n }\n}\n\n/**\n * Create RXC from a record of file paths to their content.\n *\n * @example\n * ```typescript\n * // Single file\n * const content = await createRXC({ 'content': Buffer.from('Hello') });\n *\n * // Multiple files\n * const content = await createRXC({\n * 'index.ts': Buffer.from('export default 1'),\n * 'styles.css': Buffer.from('body {}'),\n * });\n *\n * // Nested directories\n * const content = await createRXC({\n * 'src/index.ts': Buffer.from('main'),\n * 'src/utils/helper.ts': Buffer.from('helper'),\n * });\n * ```\n */\n/**\n * Check if input is an archive input\n */\nfunction isArchiveInput(input: RXCInput): input is { archive: Buffer } {\n return \"archive\" in input && Buffer.isBuffer(input.archive);\n}\n\nexport async function createRXC(input: RXCInput): Promise<RXC> {\n // If archive buffer provided, use it directly\n if (isArchiveInput(input)) {\n return new RXCImpl(input.archive);\n }\n\n // Otherwise, pack files into tar.gz\n const entries = Object.entries(input).map(([name, content]) => {\n const body =\n typeof content === \"string\"\n ? content\n : content instanceof Uint8Array\n ? content\n : new Uint8Array(content);\n\n const size = typeof content === \"string\" ? Buffer.byteLength(content) : content.length;\n\n return {\n header: { name, size, type: \"file\" as const },\n body,\n };\n });\n\n // Pack to tar\n const tarBuffer = await packTar(entries);\n\n // Compress with gzip\n const gzipBuffer = await gzipAsync(Buffer.from(tarBuffer));\n\n return new RXCImpl(gzipBuffer);\n}\n",
9
+ "//#region src/tar/constants.ts\nconst BLOCK_SIZE = 512;\nconst BLOCK_SIZE_MASK = 511;\nconst DEFAULT_FILE_MODE = 420;\nconst DEFAULT_DIR_MODE = 493;\nconst USTAR_NAME_OFFSET = 0;\nconst USTAR_NAME_SIZE = 100;\nconst USTAR_MODE_OFFSET = 100;\nconst USTAR_MODE_SIZE = 8;\nconst USTAR_UID_OFFSET = 108;\nconst USTAR_UID_SIZE = 8;\nconst USTAR_GID_OFFSET = 116;\nconst USTAR_GID_SIZE = 8;\nconst USTAR_SIZE_OFFSET = 124;\nconst USTAR_SIZE_SIZE = 12;\nconst USTAR_MTIME_OFFSET = 136;\nconst USTAR_MTIME_SIZE = 12;\nconst USTAR_CHECKSUM_OFFSET = 148;\nconst USTAR_CHECKSUM_SIZE = 8;\nconst USTAR_TYPEFLAG_OFFSET = 156;\nconst USTAR_TYPEFLAG_SIZE = 1;\nconst USTAR_LINKNAME_OFFSET = 157;\nconst USTAR_LINKNAME_SIZE = 100;\nconst USTAR_MAGIC_OFFSET = 257;\nconst USTAR_MAGIC_SIZE = 6;\nconst USTAR_VERSION_OFFSET = 263;\nconst USTAR_VERSION_SIZE = 2;\nconst USTAR_UNAME_OFFSET = 265;\nconst USTAR_UNAME_SIZE = 32;\nconst USTAR_GNAME_OFFSET = 297;\nconst USTAR_GNAME_SIZE = 32;\nconst USTAR_PREFIX_OFFSET = 345;\nconst USTAR_PREFIX_SIZE = 155;\nconst USTAR_VERSION = \"00\";\nconst USTAR_MAX_UID_GID = 2097151;\nconst USTAR_MAX_SIZE = 8589934591;\nconst 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 = new Uint8Array(BLOCK_SIZE);\nconst EMPTY = new Uint8Array(0);\n\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) encoder.encodeInto(value, view.subarray(offset, offset + size));\n}\nfunction writeOctal(view, offset, size, value) {\n\tif (value === void 0) return;\n\tconst octalString = value.toString(8).padStart(size - 1, \"0\");\n\tencoder.encodeInto(octalString, view.subarray(offset, offset + size - 1));\n}\nfunction readString(view, offset, size) {\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\n//#endregion\n//#region src/tar/body.ts\nconst isBodyless = (header) => header.type === DIRECTORY || header.type === SYMLINK || header.type === LINK;\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\n//#endregion\n//#region src/tar/options.ts\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 components = h.name.split(\"/\").filter(Boolean);\n\t\tif (strip >= components.length) return null;\n\t\tconst newName = components.slice(strip).join(\"/\");\n\t\th.name = h.type === DIRECTORY && !newName.endsWith(\"/\") ? `${newName}/` : newName;\n\t\tif (h.linkname?.startsWith(\"/\")) {\n\t\t\tconst linkComponents = h.linkname.split(\"/\").filter(Boolean);\n\t\t\th.linkname = strip >= linkComponents.length ? \"/\" : `/${linkComponents.slice(strip).join(\"/\")}`;\n\t\t}\n\t}\n\tif (filter?.(h) === false) return null;\n\tconst result = map ? map(h) : h;\n\tif (result && (!result.name || !result.name.trim() || result.name === \".\" || result.name === \"/\")) return null;\n\treturn result;\n}\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, USTAR_CHECKSUM_OFFSET, USTAR_CHECKSUM_SIZE);\n\tlet sum = 0;\n\tfor (let i = 0; i < block.length; i++) if (i >= USTAR_CHECKSUM_OFFSET && i < USTAR_CHECKSUM_OFFSET + USTAR_CHECKSUM_SIZE) sum += CHECKSUM_SPACE;\n\telse sum += block[i];\n\treturn stored === sum;\n}\nfunction writeChecksum(block) {\n\tblock.fill(CHECKSUM_SPACE, USTAR_CHECKSUM_OFFSET, USTAR_CHECKSUM_OFFSET + USTAR_CHECKSUM_SIZE);\n\tlet checksum = 0;\n\tfor (const byte of block) checksum += byte;\n\tfor (let i = USTAR_CHECKSUM_OFFSET + 6 - 1; i >= USTAR_CHECKSUM_OFFSET; i--) {\n\t\tblock[i] = (checksum & 7) + ASCII_ZERO;\n\t\tchecksum >>= 3;\n\t}\n\tblock[USTAR_CHECKSUM_OFFSET + 6] = 0;\n\tblock[USTAR_CHECKSUM_OFFSET + 7] = CHECKSUM_SPACE;\n}\n\n//#endregion\n//#region src/tar/pax.ts\nfunction generatePax(header) {\n\tconst paxRecords = {};\n\tif (header.name.length > USTAR_NAME_SIZE) {\n\t\tif (findUstarSplit(header.name) === null) paxRecords.path = header.name;\n\t}\n\tif (header.linkname && header.linkname.length > USTAR_NAME_SIZE) paxRecords.linkpath = header.linkname;\n\tif (header.uname && header.uname.length > USTAR_UNAME_SIZE) paxRecords.uname = header.uname;\n\tif (header.gname && header.gname.length > USTAR_GNAME_SIZE) paxRecords.gname = header.gname;\n\tif (header.uid != null && header.uid > USTAR_MAX_UID_GID) paxRecords.uid = String(header.uid);\n\tif (header.gid != null && header.gid > USTAR_MAX_UID_GID) paxRecords.gid = String(header.gid);\n\tif (header.size != null && header.size > USTAR_MAX_SIZE) 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 (path.length <= USTAR_NAME_SIZE) return null;\n\tconst minSlashIndex = path.length - USTAR_NAME_SIZE - 1;\n\tconst slashIndex = path.lastIndexOf(\"/\", USTAR_PREFIX_SIZE);\n\tif (slashIndex > 0 && slashIndex >= minSlashIndex) return {\n\t\tprefix: path.slice(0, slashIndex),\n\t\tname: path.slice(slashIndex + 1)\n\t};\n\treturn null;\n}\n\n//#endregion\n//#region src/tar/header.ts\nfunction createTarHeader(header) {\n\tconst view = new Uint8Array(BLOCK_SIZE);\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, USTAR_NAME_OFFSET, USTAR_NAME_SIZE, name);\n\twriteOctal(view, USTAR_MODE_OFFSET, USTAR_MODE_SIZE, header.mode ?? (header.type === DIRECTORY ? DEFAULT_DIR_MODE : DEFAULT_FILE_MODE));\n\twriteOctal(view, USTAR_UID_OFFSET, USTAR_UID_SIZE, header.uid ?? 0);\n\twriteOctal(view, USTAR_GID_OFFSET, USTAR_GID_SIZE, header.gid ?? 0);\n\twriteOctal(view, USTAR_SIZE_OFFSET, USTAR_SIZE_SIZE, size);\n\twriteOctal(view, USTAR_MTIME_OFFSET, USTAR_MTIME_SIZE, Math.floor((header.mtime?.getTime() ?? Date.now()) / 1e3));\n\twriteString(view, USTAR_TYPEFLAG_OFFSET, USTAR_TYPEFLAG_SIZE, TYPEFLAG[header.type ?? FILE]);\n\twriteString(view, USTAR_LINKNAME_OFFSET, USTAR_LINKNAME_SIZE, header.linkname);\n\twriteString(view, USTAR_MAGIC_OFFSET, USTAR_MAGIC_SIZE, \"ustar\\0\");\n\twriteString(view, USTAR_VERSION_OFFSET, USTAR_VERSION_SIZE, USTAR_VERSION);\n\twriteString(view, USTAR_UNAME_OFFSET, USTAR_UNAME_SIZE, header.uname);\n\twriteString(view, USTAR_GNAME_OFFSET, USTAR_GNAME_SIZE, header.gname);\n\twriteString(view, USTAR_PREFIX_OFFSET, USTAR_PREFIX_SIZE, 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, USTAR_TYPEFLAG_OFFSET, USTAR_TYPEFLAG_SIZE);\n\tconst header = {\n\t\tname: readString(block, USTAR_NAME_OFFSET, USTAR_NAME_SIZE),\n\t\tmode: readOctal(block, USTAR_MODE_OFFSET, USTAR_MODE_SIZE),\n\t\tuid: readNumeric(block, USTAR_UID_OFFSET, USTAR_UID_SIZE),\n\t\tgid: readNumeric(block, USTAR_GID_OFFSET, USTAR_GID_SIZE),\n\t\tsize: readNumeric(block, USTAR_SIZE_OFFSET, USTAR_SIZE_SIZE),\n\t\tmtime: /* @__PURE__ */ new Date(readNumeric(block, USTAR_MTIME_OFFSET, USTAR_MTIME_SIZE) * 1e3),\n\t\ttype: FLAGTYPE[typeflag] || FILE,\n\t\tlinkname: readString(block, USTAR_LINKNAME_OFFSET, USTAR_LINKNAME_SIZE)\n\t};\n\tconst magic = readString(block, USTAR_MAGIC_OFFSET, USTAR_MAGIC_SIZE);\n\tif (magic.trim() === \"ustar\") {\n\t\theader.uname = readString(block, USTAR_UNAME_OFFSET, USTAR_UNAME_SIZE);\n\t\theader.gname = readString(block, USTAR_GNAME_OFFSET, USTAR_GNAME_SIZE);\n\t}\n\tif (magic === \"ustar\") header.prefix = readString(block, USTAR_PREFIX_OFFSET, USTAR_PREFIX_SIZE);\n\treturn header;\n}\nconst PAX_MAPPING = {\n\tpath: [\"name\", (v) => v],\n\tlinkpath: [\"linkname\", (v) => v],\n\tsize: [\"size\", (v) => parseInt(v, 10)],\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 decoder$1 = new TextDecoder(\"utf-8\");\n\tconst overrides = {};\n\tconst pax = {};\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$1.decode(buffer.subarray(offset, spaceIndex)), 10);\n\t\tif (Number.isNaN(length) || length === 0) break;\n\t\tconst recordEnd = offset + length;\n\t\tconst [key, value] = decoder$1.decode(buffer.subarray(spaceIndex + 1, recordEnd - 1)).split(\"=\", 2);\n\t\tif (key && value !== void 0) {\n\t\t\tpax[key] = value;\n\t\t\tconst mapping = PAX_MAPPING[key];\n\t\t\tif (mapping) {\n\t\t\t\tconst [targetKey, parser] = mapping;\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 (Object.keys(pax).length > 0) 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 & BLOCK_SIZE_MASK;\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\n//#endregion\n//#region src/tar/packer.ts\nconst EOF_BUFFER = new Uint8Array(BLOCK_SIZE * 2);\nfunction createTarPacker(onData, onError, onFinalize) {\n\tlet currentHeader = null;\n\tlet bytesWritten = 0;\n\tlet finalized = false;\n\treturn {\n\t\tadd(header) {\n\t\t\tif (finalized) {\n\t\t\t\tconst error = /* @__PURE__ */ new Error(\"No new tar entries after finalize.\");\n\t\t\t\tonError(error);\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t\tif (currentHeader !== null) {\n\t\t\t\tconst error = /* @__PURE__ */ new Error(\"Previous entry must be completed before adding a new one\");\n\t\t\t\tonError(error);\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tconst size = isBodyless(header) ? 0 : header.size ?? 0;\n\t\t\t\tconst headerBlocks = getHeaderBlocks({\n\t\t\t\t\t...header,\n\t\t\t\t\tsize\n\t\t\t\t});\n\t\t\t\tfor (const block of headerBlocks) onData(block);\n\t\t\t\tcurrentHeader = {\n\t\t\t\t\t...header,\n\t\t\t\t\tsize\n\t\t\t\t};\n\t\t\t\tbytesWritten = 0;\n\t\t\t} catch (error) {\n\t\t\t\tonError(error);\n\t\t\t}\n\t\t},\n\t\twrite(chunk) {\n\t\t\tif (!currentHeader) {\n\t\t\t\tconst error = /* @__PURE__ */ new Error(\"No active tar entry.\");\n\t\t\t\tonError(error);\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t\tif (finalized) {\n\t\t\t\tconst error = /* @__PURE__ */ new Error(\"Cannot write data after finalize.\");\n\t\t\t\tonError(error);\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t\tconst newTotal = bytesWritten + chunk.length;\n\t\t\tif (newTotal > currentHeader.size) {\n\t\t\t\tconst error = /* @__PURE__ */ new Error(`\"${currentHeader.name}\" exceeds given size of ${currentHeader.size} bytes.`);\n\t\t\t\tonError(error);\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tbytesWritten = newTotal;\n\t\t\t\tonData(chunk);\n\t\t\t} catch (error) {\n\t\t\t\tonError(error);\n\t\t\t}\n\t\t},\n\t\tendEntry() {\n\t\t\tif (!currentHeader) {\n\t\t\t\tconst error = /* @__PURE__ */ new Error(\"No active entry to end.\");\n\t\t\t\tonError(error);\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t\tif (finalized) {\n\t\t\t\tconst error = /* @__PURE__ */ new Error(\"Cannot end entry after finalize.\");\n\t\t\t\tonError(error);\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tif (bytesWritten !== currentHeader.size) {\n\t\t\t\t\tconst error = /* @__PURE__ */ new Error(`Size mismatch for \"${currentHeader.name}\".`);\n\t\t\t\t\tonError(error);\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\t\t\t\tconst paddingSize = -currentHeader.size & BLOCK_SIZE_MASK;\n\t\t\t\tif (paddingSize > 0) onData(new Uint8Array(paddingSize));\n\t\t\t\tcurrentHeader = null;\n\t\t\t\tbytesWritten = 0;\n\t\t\t} catch (error) {\n\t\t\t\tonError(error);\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t},\n\t\tfinalize() {\n\t\t\tif (finalized) {\n\t\t\t\tconst error = /* @__PURE__ */ new Error(\"Archive has already been finalized\");\n\t\t\t\tonError(error);\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t\tif (currentHeader !== null) {\n\t\t\t\tconst error = /* @__PURE__ */ new Error(\"Cannot finalize while an entry is still active\");\n\t\t\t\tonError(error);\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tonData(EOF_BUFFER);\n\t\t\t\tfinalized = true;\n\t\t\t\tif (onFinalize) onFinalize();\n\t\t\t} catch (error) {\n\t\t\t\tonError(error);\n\t\t\t}\n\t\t}\n\t};\n}\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 = INITIAL_CAPACITY - 1;\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$1 = Math.min(bytes, totalAvailable);\n\t\t\twhile (remaining$1 > 0) {\n\t\t\t\tconst chunk = chunks[head];\n\t\t\t\tconst toFeed = Math.min(remaining$1, 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$1 -= 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 {\n\t\tpush: (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 if (count > 0) {\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},\n\t\tavailable: () => totalAvailable,\n\t\tpeek: (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},\n\t\tdiscard: (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\n//#endregion\n//#region src/tar/unpacker.ts\nconst STATE_HEADER = 0;\nconst STATE_BODY = 1;\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,\n\t\tisBodyComplete: () => !currentEntry || currentEntry.remaining === 0,\n\t\twrite(chunk) {\n\t\t\tif (ended) throw new Error(\"Archive already ended.\");\n\t\t\tpush(chunk);\n\t\t},\n\t\tend() {\n\t\t\tended = true;\n\t\t},\n\t\treadHeader() {\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() < BLOCK_SIZE) {\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(BLOCK_SIZE);\n\t\t\t\tif (isZeroBlock(headerBlock)) {\n\t\t\t\t\tif (available() < BLOCK_SIZE * 2) {\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(BLOCK_SIZE * 2).subarray(BLOCK_SIZE))) {\n\t\t\t\t\t\tdiscard(BLOCK_SIZE * 2);\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(BLOCK_SIZE);\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(BLOCK_SIZE);\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\tconst paddedSize = internalHeader.size + BLOCK_SIZE_MASK & ~BLOCK_SIZE_MASK;\n\t\t\t\t\tif (available() < BLOCK_SIZE + 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(BLOCK_SIZE);\n\t\t\t\t\tconst overrides = metaParser(pull(paddedSize).subarray(0, internalHeader.size));\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(BLOCK_SIZE);\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\tnextEntryOverrides = {};\n\t\t\t\tcurrentEntry = {\n\t\t\t\t\theader,\n\t\t\t\t\tremaining: header.size,\n\t\t\t\t\tpadding: -header.size & BLOCK_SIZE_MASK\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},\n\t\tstreamBody(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},\n\t\tskipPadding() {\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},\n\t\tskipEntry() {\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.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\n//#endregion\nexport { normalizeBody as a, LINK as c, isBodyless as i, SYMLINK as l, createTarPacker as n, DIRECTORY as o, transformHeader as r, FILE as s, createUnpacker as t };",
10
+ "import { a as normalizeBody, i as isBodyless, n as createTarPacker$1, r as transformHeader, t as createUnpacker } from \"../unpacker-BpPBxY8N.js\";\n\n//#region src/web/compression.ts\nfunction createGzipEncoder() {\n\treturn new CompressionStream(\"gzip\");\n}\nfunction createGzipDecoder() {\n\treturn new DecompressionStream(\"gzip\");\n}\n\n//#endregion\n//#region src/web/pack.ts\nfunction createTarPacker() {\n\tlet streamController;\n\tlet packer;\n\treturn {\n\t\treadable: new ReadableStream({ start(controller) {\n\t\t\tstreamController = controller;\n\t\t\tpacker = createTarPacker$1(controller.enqueue.bind(controller), controller.error.bind(controller), controller.close.bind(controller));\n\t\t} }),\n\t\tcontroller: {\n\t\t\tadd(header) {\n\t\t\t\tconst bodyless = isBodyless(header);\n\t\t\t\tconst h = { ...header };\n\t\t\t\tif (bodyless) h.size = 0;\n\t\t\t\tpacker.add(h);\n\t\t\t\tif (bodyless) packer.endEntry();\n\t\t\t\treturn new WritableStream({\n\t\t\t\t\twrite(chunk) {\n\t\t\t\t\t\tpacker.write(chunk);\n\t\t\t\t\t},\n\t\t\t\t\tclose() {\n\t\t\t\t\t\tif (!bodyless) packer.endEntry();\n\t\t\t\t\t},\n\t\t\t\t\tabort(reason) {\n\t\t\t\t\t\tstreamController.error(reason);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t},\n\t\t\tfinalize() {\n\t\t\t\tpacker.finalize();\n\t\t\t},\n\t\t\terror(err) {\n\t\t\t\tstreamController.error(err);\n\t\t\t}\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/web/stream-utils.ts\nasync function streamToBuffer(stream) {\n\tconst chunks = [];\n\tconst reader = stream.getReader();\n\tlet totalLength = 0;\n\ttry {\n\t\twhile (true) {\n\t\t\tconst { done, value } = await reader.read();\n\t\t\tif (done) break;\n\t\t\tchunks.push(value);\n\t\t\ttotalLength += value.length;\n\t\t}\n\t\tconst result = new Uint8Array(totalLength);\n\t\tlet offset = 0;\n\t\tfor (const chunk of chunks) {\n\t\t\tresult.set(chunk, offset);\n\t\t\toffset += chunk.length;\n\t\t}\n\t\treturn result;\n\t} finally {\n\t\treader.releaseLock();\n\t}\n}\nconst drain = (stream) => stream.pipeTo(new WritableStream());\n\n//#endregion\n//#region src/web/unpack.ts\nfunction createTarDecoder(options = {}) {\n\tconst unpacker = createUnpacker(options);\n\tlet bodyController = null;\n\tlet pumping = false;\n\tconst pump = (controller) => {\n\t\tif (pumping) return;\n\t\tpumping = true;\n\t\ttry {\n\t\t\twhile (true) if (unpacker.isEntryActive()) {\n\t\t\t\tif (bodyController) {\n\t\t\t\t\tif (unpacker.streamBody((c) => (bodyController.enqueue(c), true)) === 0 && !unpacker.isBodyComplete()) break;\n\t\t\t\t} else if (!unpacker.skipEntry()) break;\n\t\t\t\tif (unpacker.isBodyComplete()) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tbodyController?.close();\n\t\t\t\t\t} catch {}\n\t\t\t\t\tbodyController = null;\n\t\t\t\t\tif (!unpacker.skipPadding()) break;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst header = unpacker.readHeader();\n\t\t\t\tif (header === null || header === void 0) break;\n\t\t\t\tcontroller.enqueue({\n\t\t\t\t\theader,\n\t\t\t\t\tbody: new ReadableStream({\n\t\t\t\t\t\tstart(c) {\n\t\t\t\t\t\t\tif (header.size === 0) c.close();\n\t\t\t\t\t\t\telse bodyController = c;\n\t\t\t\t\t\t},\n\t\t\t\t\t\tpull: () => pump(controller),\n\t\t\t\t\t\tcancel() {\n\t\t\t\t\t\t\tbodyController = null;\n\t\t\t\t\t\t\tpump(controller);\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t});\n\t\t\t}\n\t\t} catch (error) {\n\t\t\ttry {\n\t\t\t\tbodyController?.error(error);\n\t\t\t} catch {}\n\t\t\tbodyController = null;\n\t\t\tthrow error;\n\t\t} finally {\n\t\t\tpumping = false;\n\t\t}\n\t};\n\treturn new TransformStream({\n\t\ttransform(chunk, controller) {\n\t\t\ttry {\n\t\t\t\tunpacker.write(chunk);\n\t\t\t\tpump(controller);\n\t\t\t} catch (error) {\n\t\t\t\ttry {\n\t\t\t\t\tbodyController?.error(error);\n\t\t\t\t} catch {}\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t},\n\t\tflush(controller) {\n\t\t\ttry {\n\t\t\t\tunpacker.end();\n\t\t\t\tpump(controller);\n\t\t\t\tunpacker.validateEOF();\n\t\t\t\tif (unpacker.isEntryActive() && !unpacker.isBodyComplete()) try {\n\t\t\t\t\tbodyController?.close();\n\t\t\t\t} catch {}\n\t\t\t} catch (error) {\n\t\t\t\ttry {\n\t\t\t\t\tbodyController?.error(error);\n\t\t\t\t} catch {}\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t}\n\t}, void 0, { highWaterMark: 1 });\n}\n\n//#endregion\n//#region src/web/helpers.ts\nasync function packTar(entries) {\n\tconst { readable, controller } = createTarPacker();\n\tawait (async () => {\n\t\tfor (const entry of entries) {\n\t\t\tconst entryStream = controller.add(entry.header);\n\t\t\tconst body = \"body\" in entry ? entry.body : entry.data;\n\t\t\tif (!body) {\n\t\t\t\tawait entryStream.close();\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (body instanceof ReadableStream) await body.pipeTo(entryStream);\n\t\t\telse if (body instanceof Blob) await body.stream().pipeTo(entryStream);\n\t\t\telse try {\n\t\t\t\tconst chunk = await normalizeBody(body);\n\t\t\t\tif (chunk.length > 0) {\n\t\t\t\t\tconst writer = entryStream.getWriter();\n\t\t\t\t\tawait writer.write(chunk);\n\t\t\t\t\tawait writer.close();\n\t\t\t\t} else await entryStream.close();\n\t\t\t} catch {\n\t\t\t\tthrow new TypeError(`Unsupported content type for entry \"${entry.header.name}\".`);\n\t\t\t}\n\t\t}\n\t})().then(() => controller.finalize()).catch((err) => controller.error(err));\n\treturn new Uint8Array(await streamToBuffer(readable));\n}\nasync function unpackTar(archive, options = {}) {\n\tconst sourceStream = archive instanceof ReadableStream ? archive : new ReadableStream({ start(controller) {\n\t\tcontroller.enqueue(archive instanceof Uint8Array ? archive : new Uint8Array(archive));\n\t\tcontroller.close();\n\t} });\n\tconst results = [];\n\tconst entryStream = sourceStream.pipeThrough(createTarDecoder(options));\n\tfor await (const entry of entryStream) {\n\t\tlet processedHeader;\n\t\ttry {\n\t\t\tprocessedHeader = transformHeader(entry.header, options);\n\t\t} catch (error) {\n\t\t\tawait entry.body.cancel();\n\t\t\tthrow error;\n\t\t}\n\t\tif (processedHeader === null) {\n\t\t\tawait drain(entry.body);\n\t\t\tcontinue;\n\t\t}\n\t\tif (isBodyless(processedHeader)) {\n\t\t\tawait drain(entry.body);\n\t\t\tresults.push({ header: processedHeader });\n\t\t} else results.push({\n\t\t\theader: processedHeader,\n\t\t\tdata: await streamToBuffer(entry.body)\n\t\t});\n\t}\n\treturn results;\n}\n\n//#endregion\nexport { createGzipDecoder, createGzipEncoder, createTarDecoder, createTarPacker, packTar, unpackTar };"
10
11
  ],
11
- "mappings": "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",
12
- "debugId": "2AAEFC45892A016E64756E2164756E21",
12
+ "mappings": "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",
13
+ "debugId": "3D46BAF324E7BC5864756E2164756E21",
13
14
  "names": []
14
15
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@resourcexjs/core",
3
- "version": "1.0.0",
3
+ "version": "1.2.0",
4
4
  "description": "ResourceX Core - Resource management layer",
5
5
  "keywords": [
6
6
  "resourcex",
@@ -37,7 +37,8 @@
37
37
  "clean": "rm -rf dist"
38
38
  },
39
39
  "dependencies": {
40
- "@resourcexjs/arp": "^1.0.0"
40
+ "@resourcexjs/arp": "^1.2.0",
41
+ "modern-tar": "^0.7.3"
41
42
  },
42
43
  "devDependencies": {},
43
44
  "publishConfig": {