resourcexjs 2.5.2 → 2.5.4

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/arp.js CHANGED
@@ -1714,7 +1714,7 @@ class ARP {
1714
1714
  function createARP(config) {
1715
1715
  return new ARP(config);
1716
1716
  }
1717
- var VERSION = "2.5.2";
1717
+ var VERSION = "2.5.4";
1718
1718
 
1719
1719
  // src/transport/rxr.ts
1720
1720
  import { homedir } from "node:os";
@@ -3171,4 +3171,4 @@ export {
3171
3171
  ARP
3172
3172
  };
3173
3173
 
3174
- //# debugId=BB09A0C4B2633AE064756E2164756E21
3174
+ //# debugId=CCFD861F9ACAE11964756E2164756E21
package/dist/arp.js.map CHANGED
@@ -3,13 +3,13 @@
3
3
  "sources": ["../../core/dist/index.js", "../../arp/dist/index.js", "../src/transport/rxr.ts", "../../storage/dist/index.js", "../../registry/dist/index.js", "../src/arp.ts"],
4
4
  "sourcesContent": [
5
5
  "// src/errors.ts\nclass ResourceXError extends Error {\n constructor(message, options) {\n super(message, options);\n this.name = \"ResourceXError\";\n }\n}\n\nclass LocatorError extends ResourceXError {\n locator;\n constructor(message, locator) {\n super(message);\n this.locator = locator;\n this.name = \"LocatorError\";\n }\n}\n\nclass ManifestError extends ResourceXError {\n constructor(message) {\n super(message);\n this.name = \"ManifestError\";\n }\n}\n\nclass ContentError extends ResourceXError {\n constructor(message) {\n super(message);\n this.name = \"ContentError\";\n }\n}\n\nclass DefinitionError extends ResourceXError {\n constructor(message) {\n super(message);\n this.name = \"DefinitionError\";\n }\n}\n// src/primitives/define.ts\nfunction define(input) {\n if (input === null || typeof input !== \"object\") {\n throw new DefinitionError(\"definition must be an object\");\n }\n const obj = input;\n if (!obj.name || typeof obj.name !== \"string\") {\n throw new DefinitionError(\"name is required\");\n }\n if (!obj.type || typeof obj.type !== \"string\") {\n throw new DefinitionError(\"type is required\");\n }\n const tagValue = obj.tag ?? obj.version;\n if (tagValue !== undefined && typeof tagValue !== \"string\") {\n throw new DefinitionError(\"tag must be a string\");\n }\n const rxd = {\n ...obj,\n name: obj.name,\n type: obj.type,\n tag: typeof tagValue === \"string\" ? tagValue : undefined,\n registry: typeof obj.registry === \"string\" ? obj.registry : undefined,\n path: typeof obj.path === \"string\" ? obj.path : undefined,\n description: typeof obj.description === \"string\" ? obj.description : undefined,\n author: typeof obj.author === \"string\" ? obj.author : undefined,\n license: typeof obj.license === \"string\" ? obj.license : undefined,\n keywords: Array.isArray(obj.keywords) ? obj.keywords : undefined,\n repository: typeof obj.repository === \"string\" ? obj.repository : undefined\n };\n return rxd;\n}\n// src/primitives/manifest.ts\nfunction manifest(rxd) {\n return {\n registry: rxd.registry,\n path: rxd.path,\n name: rxd.name,\n type: rxd.type,\n tag: rxd.tag ?? \"latest\"\n };\n}\n// src/primitives/archive.ts\nimport { gzip } from \"node:zlib\";\nimport { promisify } from \"node:util\";\n\n// ../../node_modules/.bun/modern-tar@0.7.3/node_modules/modern-tar/dist/unpacker-BpPBxY8N.js\nvar BLOCK_SIZE = 512;\nvar BLOCK_SIZE_MASK = 511;\nvar DEFAULT_FILE_MODE = 420;\nvar DEFAULT_DIR_MODE = 493;\nvar USTAR_NAME_OFFSET = 0;\nvar USTAR_NAME_SIZE = 100;\nvar USTAR_MODE_OFFSET = 100;\nvar USTAR_MODE_SIZE = 8;\nvar USTAR_UID_OFFSET = 108;\nvar USTAR_UID_SIZE = 8;\nvar USTAR_GID_OFFSET = 116;\nvar USTAR_GID_SIZE = 8;\nvar USTAR_SIZE_OFFSET = 124;\nvar USTAR_SIZE_SIZE = 12;\nvar USTAR_MTIME_OFFSET = 136;\nvar USTAR_MTIME_SIZE = 12;\nvar USTAR_CHECKSUM_OFFSET = 148;\nvar USTAR_CHECKSUM_SIZE = 8;\nvar USTAR_TYPEFLAG_OFFSET = 156;\nvar USTAR_TYPEFLAG_SIZE = 1;\nvar USTAR_LINKNAME_OFFSET = 157;\nvar USTAR_LINKNAME_SIZE = 100;\nvar USTAR_MAGIC_OFFSET = 257;\nvar USTAR_MAGIC_SIZE = 6;\nvar USTAR_VERSION_OFFSET = 263;\nvar USTAR_VERSION_SIZE = 2;\nvar USTAR_UNAME_OFFSET = 265;\nvar USTAR_UNAME_SIZE = 32;\nvar USTAR_GNAME_OFFSET = 297;\nvar USTAR_GNAME_SIZE = 32;\nvar USTAR_PREFIX_OFFSET = 345;\nvar USTAR_PREFIX_SIZE = 155;\nvar USTAR_VERSION = \"00\";\nvar USTAR_MAX_UID_GID = 2097151;\nvar USTAR_MAX_SIZE = 8589934591;\nvar FILE = \"file\";\nvar LINK = \"link\";\nvar SYMLINK = \"symlink\";\nvar DIRECTORY = \"directory\";\nvar TYPEFLAG = {\n file: \"0\",\n link: \"1\",\n symlink: \"2\",\n \"character-device\": \"3\",\n \"block-device\": \"4\",\n directory: \"5\",\n fifo: \"6\",\n \"pax-header\": \"x\",\n \"pax-global-header\": \"g\",\n \"gnu-long-name\": \"L\",\n \"gnu-long-link-name\": \"K\"\n};\nvar FLAGTYPE = {\n \"0\": FILE,\n \"1\": LINK,\n \"2\": SYMLINK,\n \"3\": \"character-device\",\n \"4\": \"block-device\",\n \"5\": DIRECTORY,\n \"6\": \"fifo\",\n x: \"pax-header\",\n g: \"pax-global-header\",\n L: \"gnu-long-name\",\n K: \"gnu-long-link-name\"\n};\nvar ZERO_BLOCK = new Uint8Array(BLOCK_SIZE);\nvar EMPTY = new Uint8Array(0);\nvar encoder = new TextEncoder;\nvar decoder = new TextDecoder;\nfunction writeString(view, offset, size, value) {\n if (value)\n encoder.encodeInto(value, view.subarray(offset, offset + size));\n}\nfunction writeOctal(view, offset, size, value) {\n if (value === undefined)\n return;\n const octalString = value.toString(8).padStart(size - 1, \"0\");\n encoder.encodeInto(octalString, view.subarray(offset, offset + size - 1));\n}\nfunction readString(view, offset, size) {\n const end = view.indexOf(0, offset);\n const sliceEnd = end === -1 || end > offset + size ? offset + size : end;\n return decoder.decode(view.subarray(offset, sliceEnd));\n}\nfunction readOctal(view, offset, size) {\n let value = 0;\n const end = offset + size;\n for (let i = offset;i < end; i++) {\n const charCode = view[i];\n if (charCode === 0)\n break;\n if (charCode === 32)\n continue;\n value = value * 8 + (charCode - 48);\n }\n return value;\n}\nfunction readNumeric(view, offset, size) {\n if (view[offset] & 128) {\n let result = 0;\n result = view[offset] & 127;\n for (let i = 1;i < size; i++)\n result = result * 256 + view[offset + i];\n if (!Number.isSafeInteger(result))\n throw new Error(\"TAR number too large\");\n return result;\n }\n return readOctal(view, offset, size);\n}\nvar isBodyless = (header) => header.type === DIRECTORY || header.type === SYMLINK || header.type === LINK;\nasync function normalizeBody(body) {\n if (body === null || body === undefined)\n return EMPTY;\n if (body instanceof Uint8Array)\n return body;\n if (typeof body === \"string\")\n return encoder.encode(body);\n if (body instanceof ArrayBuffer)\n return new Uint8Array(body);\n if (body instanceof Blob)\n return new Uint8Array(await body.arrayBuffer());\n throw new TypeError(\"Unsupported content type for entry body.\");\n}\nfunction transformHeader(header, options) {\n const { strip, filter, map } = options;\n if (!strip && !filter && !map)\n return header;\n const h = { ...header };\n if (strip && strip > 0) {\n const components = h.name.split(\"/\").filter(Boolean);\n if (strip >= components.length)\n return null;\n const newName = components.slice(strip).join(\"/\");\n h.name = h.type === DIRECTORY && !newName.endsWith(\"/\") ? `${newName}/` : newName;\n if (h.linkname?.startsWith(\"/\")) {\n const linkComponents = h.linkname.split(\"/\").filter(Boolean);\n h.linkname = strip >= linkComponents.length ? \"/\" : `/${linkComponents.slice(strip).join(\"/\")}`;\n }\n }\n if (filter?.(h) === false)\n return null;\n const result = map ? map(h) : h;\n if (result && (!result.name || !result.name.trim() || result.name === \".\" || result.name === \"/\"))\n return null;\n return result;\n}\nvar CHECKSUM_SPACE = 32;\nvar ASCII_ZERO = 48;\nfunction validateChecksum(block) {\n const stored = readOctal(block, USTAR_CHECKSUM_OFFSET, USTAR_CHECKSUM_SIZE);\n let sum = 0;\n for (let i = 0;i < block.length; i++)\n if (i >= USTAR_CHECKSUM_OFFSET && i < USTAR_CHECKSUM_OFFSET + USTAR_CHECKSUM_SIZE)\n sum += CHECKSUM_SPACE;\n else\n sum += block[i];\n return stored === sum;\n}\nfunction writeChecksum(block) {\n block.fill(CHECKSUM_SPACE, USTAR_CHECKSUM_OFFSET, USTAR_CHECKSUM_OFFSET + USTAR_CHECKSUM_SIZE);\n let checksum = 0;\n for (const byte of block)\n checksum += byte;\n for (let i = USTAR_CHECKSUM_OFFSET + 6 - 1;i >= USTAR_CHECKSUM_OFFSET; i--) {\n block[i] = (checksum & 7) + ASCII_ZERO;\n checksum >>= 3;\n }\n block[USTAR_CHECKSUM_OFFSET + 6] = 0;\n block[USTAR_CHECKSUM_OFFSET + 7] = CHECKSUM_SPACE;\n}\nfunction generatePax(header) {\n const paxRecords = {};\n if (header.name.length > USTAR_NAME_SIZE) {\n if (findUstarSplit(header.name) === null)\n paxRecords.path = header.name;\n }\n if (header.linkname && header.linkname.length > USTAR_NAME_SIZE)\n paxRecords.linkpath = header.linkname;\n if (header.uname && header.uname.length > USTAR_UNAME_SIZE)\n paxRecords.uname = header.uname;\n if (header.gname && header.gname.length > USTAR_GNAME_SIZE)\n paxRecords.gname = header.gname;\n if (header.uid != null && header.uid > USTAR_MAX_UID_GID)\n paxRecords.uid = String(header.uid);\n if (header.gid != null && header.gid > USTAR_MAX_UID_GID)\n paxRecords.gid = String(header.gid);\n if (header.size != null && header.size > USTAR_MAX_SIZE)\n paxRecords.size = String(header.size);\n if (header.pax)\n Object.assign(paxRecords, header.pax);\n const paxEntries = Object.entries(paxRecords);\n if (paxEntries.length === 0)\n return null;\n const paxBody = encoder.encode(paxEntries.map(([key, value]) => {\n const record = `${key}=${value}\n`;\n const partLength = encoder.encode(record).length + 1;\n let totalLength = partLength + String(partLength).length;\n totalLength = partLength + String(totalLength).length;\n return `${totalLength} ${record}`;\n }).join(\"\"));\n return {\n paxHeader: createTarHeader({\n name: decoder.decode(encoder.encode(`PaxHeader/${header.name}`).slice(0, 100)),\n size: paxBody.length,\n type: \"pax-header\",\n mode: 420,\n mtime: header.mtime,\n uname: header.uname,\n gname: header.gname,\n uid: header.uid,\n gid: header.gid\n }),\n paxBody\n };\n}\nfunction findUstarSplit(path) {\n if (path.length <= USTAR_NAME_SIZE)\n return null;\n const minSlashIndex = path.length - USTAR_NAME_SIZE - 1;\n const slashIndex = path.lastIndexOf(\"/\", USTAR_PREFIX_SIZE);\n if (slashIndex > 0 && slashIndex >= minSlashIndex)\n return {\n prefix: path.slice(0, slashIndex),\n name: path.slice(slashIndex + 1)\n };\n return null;\n}\nfunction createTarHeader(header) {\n const view = new Uint8Array(BLOCK_SIZE);\n const size = isBodyless(header) ? 0 : header.size ?? 0;\n let name = header.name;\n let prefix = \"\";\n if (!header.pax?.path) {\n const split = findUstarSplit(name);\n if (split) {\n name = split.name;\n prefix = split.prefix;\n }\n }\n writeString(view, USTAR_NAME_OFFSET, USTAR_NAME_SIZE, name);\n writeOctal(view, USTAR_MODE_OFFSET, USTAR_MODE_SIZE, header.mode ?? (header.type === DIRECTORY ? DEFAULT_DIR_MODE : DEFAULT_FILE_MODE));\n writeOctal(view, USTAR_UID_OFFSET, USTAR_UID_SIZE, header.uid ?? 0);\n writeOctal(view, USTAR_GID_OFFSET, USTAR_GID_SIZE, header.gid ?? 0);\n writeOctal(view, USTAR_SIZE_OFFSET, USTAR_SIZE_SIZE, size);\n writeOctal(view, USTAR_MTIME_OFFSET, USTAR_MTIME_SIZE, Math.floor((header.mtime?.getTime() ?? Date.now()) / 1000));\n writeString(view, USTAR_TYPEFLAG_OFFSET, USTAR_TYPEFLAG_SIZE, TYPEFLAG[header.type ?? FILE]);\n writeString(view, USTAR_LINKNAME_OFFSET, USTAR_LINKNAME_SIZE, header.linkname);\n writeString(view, USTAR_MAGIC_OFFSET, USTAR_MAGIC_SIZE, \"ustar\\x00\");\n writeString(view, USTAR_VERSION_OFFSET, USTAR_VERSION_SIZE, USTAR_VERSION);\n writeString(view, USTAR_UNAME_OFFSET, USTAR_UNAME_SIZE, header.uname);\n writeString(view, USTAR_GNAME_OFFSET, USTAR_GNAME_SIZE, header.gname);\n writeString(view, USTAR_PREFIX_OFFSET, USTAR_PREFIX_SIZE, prefix);\n writeChecksum(view);\n return view;\n}\nfunction parseUstarHeader(block, strict) {\n if (strict && !validateChecksum(block))\n throw new Error(\"Invalid tar header checksum.\");\n const typeflag = readString(block, USTAR_TYPEFLAG_OFFSET, USTAR_TYPEFLAG_SIZE);\n const header = {\n name: readString(block, USTAR_NAME_OFFSET, USTAR_NAME_SIZE),\n mode: readOctal(block, USTAR_MODE_OFFSET, USTAR_MODE_SIZE),\n uid: readNumeric(block, USTAR_UID_OFFSET, USTAR_UID_SIZE),\n gid: readNumeric(block, USTAR_GID_OFFSET, USTAR_GID_SIZE),\n size: readNumeric(block, USTAR_SIZE_OFFSET, USTAR_SIZE_SIZE),\n mtime: /* @__PURE__ */ new Date(readNumeric(block, USTAR_MTIME_OFFSET, USTAR_MTIME_SIZE) * 1000),\n type: FLAGTYPE[typeflag] || FILE,\n linkname: readString(block, USTAR_LINKNAME_OFFSET, USTAR_LINKNAME_SIZE)\n };\n const magic = readString(block, USTAR_MAGIC_OFFSET, USTAR_MAGIC_SIZE);\n if (magic.trim() === \"ustar\") {\n header.uname = readString(block, USTAR_UNAME_OFFSET, USTAR_UNAME_SIZE);\n header.gname = readString(block, USTAR_GNAME_OFFSET, USTAR_GNAME_SIZE);\n }\n if (magic === \"ustar\")\n header.prefix = readString(block, USTAR_PREFIX_OFFSET, USTAR_PREFIX_SIZE);\n return header;\n}\nvar PAX_MAPPING = {\n path: [\"name\", (v) => v],\n linkpath: [\"linkname\", (v) => v],\n size: [\"size\", (v) => parseInt(v, 10)],\n mtime: [\"mtime\", parseFloat],\n uid: [\"uid\", (v) => parseInt(v, 10)],\n gid: [\"gid\", (v) => parseInt(v, 10)],\n uname: [\"uname\", (v) => v],\n gname: [\"gname\", (v) => v]\n};\nfunction parsePax(buffer) {\n const decoder$1 = new TextDecoder(\"utf-8\");\n const overrides = {};\n const pax = {};\n let offset = 0;\n while (offset < buffer.length) {\n const spaceIndex = buffer.indexOf(32, offset);\n if (spaceIndex === -1)\n break;\n const length = parseInt(decoder$1.decode(buffer.subarray(offset, spaceIndex)), 10);\n if (Number.isNaN(length) || length === 0)\n break;\n const recordEnd = offset + length;\n const [key, value] = decoder$1.decode(buffer.subarray(spaceIndex + 1, recordEnd - 1)).split(\"=\", 2);\n if (key && value !== undefined) {\n pax[key] = value;\n const mapping = PAX_MAPPING[key];\n if (mapping) {\n const [targetKey, parser] = mapping;\n const parsedValue = parser(value);\n if (typeof parsedValue === \"string\" || !Number.isNaN(parsedValue))\n overrides[targetKey] = parsedValue;\n }\n }\n offset = recordEnd;\n }\n if (Object.keys(pax).length > 0)\n overrides.pax = pax;\n return overrides;\n}\nfunction applyOverrides(header, overrides) {\n if (overrides.name !== undefined)\n header.name = overrides.name;\n if (overrides.linkname !== undefined)\n header.linkname = overrides.linkname;\n if (overrides.size !== undefined)\n header.size = overrides.size;\n if (overrides.mtime !== undefined)\n header.mtime = /* @__PURE__ */ new Date(overrides.mtime * 1000);\n if (overrides.uid !== undefined)\n header.uid = overrides.uid;\n if (overrides.gid !== undefined)\n header.gid = overrides.gid;\n if (overrides.uname !== undefined)\n header.uname = overrides.uname;\n if (overrides.gname !== undefined)\n header.gname = overrides.gname;\n if (overrides.pax)\n header.pax = Object.assign({}, header.pax ?? {}, overrides.pax);\n}\nfunction getMetaParser(type) {\n switch (type) {\n case \"pax-global-header\":\n case \"pax-header\":\n return parsePax;\n case \"gnu-long-name\":\n return (data) => ({ name: readString(data, 0, data.length) });\n case \"gnu-long-link-name\":\n return (data) => ({ linkname: readString(data, 0, data.length) });\n default:\n return;\n }\n}\nfunction getHeaderBlocks(header) {\n const base = createTarHeader(header);\n const pax = generatePax(header);\n if (!pax)\n return [base];\n const paxPadding = -pax.paxBody.length & BLOCK_SIZE_MASK;\n const paddingBlocks = paxPadding > 0 ? [ZERO_BLOCK.subarray(0, paxPadding)] : [];\n return [\n pax.paxHeader,\n pax.paxBody,\n ...paddingBlocks,\n base\n ];\n}\nvar EOF_BUFFER = new Uint8Array(BLOCK_SIZE * 2);\nfunction createTarPacker(onData, onError, onFinalize) {\n let currentHeader = null;\n let bytesWritten = 0;\n let finalized = false;\n return {\n add(header) {\n if (finalized) {\n const error = /* @__PURE__ */ new Error(\"No new tar entries after finalize.\");\n onError(error);\n throw error;\n }\n if (currentHeader !== null) {\n const error = /* @__PURE__ */ new Error(\"Previous entry must be completed before adding a new one\");\n onError(error);\n throw error;\n }\n try {\n const size = isBodyless(header) ? 0 : header.size ?? 0;\n const headerBlocks = getHeaderBlocks({\n ...header,\n size\n });\n for (const block of headerBlocks)\n onData(block);\n currentHeader = {\n ...header,\n size\n };\n bytesWritten = 0;\n } catch (error) {\n onError(error);\n }\n },\n write(chunk) {\n if (!currentHeader) {\n const error = /* @__PURE__ */ new Error(\"No active tar entry.\");\n onError(error);\n throw error;\n }\n if (finalized) {\n const error = /* @__PURE__ */ new Error(\"Cannot write data after finalize.\");\n onError(error);\n throw error;\n }\n const newTotal = bytesWritten + chunk.length;\n if (newTotal > currentHeader.size) {\n const error = /* @__PURE__ */ new Error(`\"${currentHeader.name}\" exceeds given size of ${currentHeader.size} bytes.`);\n onError(error);\n throw error;\n }\n try {\n bytesWritten = newTotal;\n onData(chunk);\n } catch (error) {\n onError(error);\n }\n },\n endEntry() {\n if (!currentHeader) {\n const error = /* @__PURE__ */ new Error(\"No active entry to end.\");\n onError(error);\n throw error;\n }\n if (finalized) {\n const error = /* @__PURE__ */ new Error(\"Cannot end entry after finalize.\");\n onError(error);\n throw error;\n }\n try {\n if (bytesWritten !== currentHeader.size) {\n const error = /* @__PURE__ */ new Error(`Size mismatch for \"${currentHeader.name}\".`);\n onError(error);\n throw error;\n }\n const paddingSize = -currentHeader.size & BLOCK_SIZE_MASK;\n if (paddingSize > 0)\n onData(new Uint8Array(paddingSize));\n currentHeader = null;\n bytesWritten = 0;\n } catch (error) {\n onError(error);\n throw error;\n }\n },\n finalize() {\n if (finalized) {\n const error = /* @__PURE__ */ new Error(\"Archive has already been finalized\");\n onError(error);\n throw error;\n }\n if (currentHeader !== null) {\n const error = /* @__PURE__ */ new Error(\"Cannot finalize while an entry is still active\");\n onError(error);\n throw error;\n }\n try {\n onData(EOF_BUFFER);\n finalized = true;\n if (onFinalize)\n onFinalize();\n } catch (error) {\n onError(error);\n }\n }\n };\n}\nvar INITIAL_CAPACITY = 256;\nfunction createChunkQueue() {\n let chunks = new Array(INITIAL_CAPACITY);\n let capacityMask = chunks.length - 1;\n let head = 0;\n let tail = 0;\n let totalAvailable = 0;\n const consumeFromHead = (count) => {\n const chunk = chunks[head];\n if (count === chunk.length) {\n chunks[head] = EMPTY;\n head = head + 1 & capacityMask;\n } else\n chunks[head] = chunk.subarray(count);\n totalAvailable -= count;\n if (totalAvailable === 0 && chunks.length > INITIAL_CAPACITY) {\n chunks = new Array(INITIAL_CAPACITY);\n capacityMask = INITIAL_CAPACITY - 1;\n head = 0;\n tail = 0;\n }\n };\n function pull(bytes, callback) {\n if (callback) {\n let fed = 0;\n let remaining$1 = Math.min(bytes, totalAvailable);\n while (remaining$1 > 0) {\n const chunk = chunks[head];\n const toFeed = Math.min(remaining$1, chunk.length);\n const segment = toFeed === chunk.length ? chunk : chunk.subarray(0, toFeed);\n consumeFromHead(toFeed);\n remaining$1 -= toFeed;\n fed += toFeed;\n if (!callback(segment))\n break;\n }\n return fed;\n }\n if (totalAvailable < bytes)\n return null;\n if (bytes === 0)\n return EMPTY;\n const firstChunk = chunks[head];\n if (firstChunk.length >= bytes) {\n const view = firstChunk.length === bytes ? firstChunk : firstChunk.subarray(0, bytes);\n consumeFromHead(bytes);\n return view;\n }\n const result = new Uint8Array(bytes);\n let copied = 0;\n let remaining = bytes;\n while (remaining > 0) {\n const chunk = chunks[head];\n const toCopy = Math.min(remaining, chunk.length);\n result.set(toCopy === chunk.length ? chunk : chunk.subarray(0, toCopy), copied);\n copied += toCopy;\n remaining -= toCopy;\n consumeFromHead(toCopy);\n }\n return result;\n }\n return {\n push: (chunk) => {\n if (chunk.length === 0)\n return;\n let nextTail = tail + 1 & capacityMask;\n if (nextTail === head) {\n const oldLen = chunks.length;\n const newLen = oldLen * 2;\n const newChunks = new Array(newLen);\n const count = tail - head + oldLen & oldLen - 1;\n if (head < tail)\n for (let i = 0;i < count; i++)\n newChunks[i] = chunks[head + i];\n else if (count > 0) {\n const firstPart = oldLen - head;\n for (let i = 0;i < firstPart; i++)\n newChunks[i] = chunks[head + i];\n for (let i = 0;i < tail; i++)\n newChunks[firstPart + i] = chunks[i];\n }\n chunks = newChunks;\n capacityMask = newLen - 1;\n head = 0;\n tail = count;\n nextTail = tail + 1 & capacityMask;\n }\n chunks[tail] = chunk;\n tail = nextTail;\n totalAvailable += chunk.length;\n },\n available: () => totalAvailable,\n peek: (bytes) => {\n if (totalAvailable < bytes)\n return null;\n if (bytes === 0)\n return EMPTY;\n const firstChunk = chunks[head];\n if (firstChunk.length >= bytes)\n return firstChunk.length === bytes ? firstChunk : firstChunk.subarray(0, bytes);\n const result = new Uint8Array(bytes);\n let copied = 0;\n let index = head;\n while (copied < bytes) {\n const chunk = chunks[index];\n const toCopy = Math.min(bytes - copied, chunk.length);\n if (toCopy === chunk.length)\n result.set(chunk, copied);\n else\n result.set(chunk.subarray(0, toCopy), copied);\n copied += toCopy;\n index = index + 1 & capacityMask;\n }\n return result;\n },\n discard: (bytes) => {\n if (bytes > totalAvailable)\n throw new Error(\"Too many bytes consumed\");\n if (bytes === 0)\n return;\n let remaining = bytes;\n while (remaining > 0) {\n const chunk = chunks[head];\n const toConsume = Math.min(remaining, chunk.length);\n consumeFromHead(toConsume);\n remaining -= toConsume;\n }\n },\n pull\n };\n}\nvar STATE_HEADER = 0;\nvar STATE_BODY = 1;\nvar truncateErr = /* @__PURE__ */ new Error(\"Tar archive is truncated.\");\nfunction createUnpacker(options = {}) {\n const strict = options.strict ?? false;\n const { available, peek, push, discard, pull } = createChunkQueue();\n let state = STATE_HEADER;\n let ended = false;\n let done = false;\n let eof = false;\n let currentEntry = null;\n const paxGlobals = {};\n let nextEntryOverrides = {};\n const unpacker = {\n isEntryActive: () => state === STATE_BODY,\n isBodyComplete: () => !currentEntry || currentEntry.remaining === 0,\n write(chunk) {\n if (ended)\n throw new Error(\"Archive already ended.\");\n push(chunk);\n },\n end() {\n ended = true;\n },\n readHeader() {\n if (state !== STATE_HEADER)\n throw new Error(\"Cannot read header while an entry is active\");\n if (done)\n return;\n while (!done) {\n if (available() < BLOCK_SIZE) {\n if (ended) {\n if (available() > 0 && strict)\n throw truncateErr;\n done = true;\n return;\n }\n return null;\n }\n const headerBlock = peek(BLOCK_SIZE);\n if (isZeroBlock(headerBlock)) {\n if (available() < BLOCK_SIZE * 2) {\n if (ended) {\n if (strict)\n throw truncateErr;\n done = true;\n return;\n }\n return null;\n }\n if (isZeroBlock(peek(BLOCK_SIZE * 2).subarray(BLOCK_SIZE))) {\n discard(BLOCK_SIZE * 2);\n done = true;\n eof = true;\n return;\n }\n if (strict)\n throw new Error(\"Invalid tar header.\");\n discard(BLOCK_SIZE);\n continue;\n }\n let internalHeader;\n try {\n internalHeader = parseUstarHeader(headerBlock, strict);\n } catch (err) {\n if (strict)\n throw err;\n discard(BLOCK_SIZE);\n continue;\n }\n const metaParser = getMetaParser(internalHeader.type);\n if (metaParser) {\n const paddedSize = internalHeader.size + BLOCK_SIZE_MASK & ~BLOCK_SIZE_MASK;\n if (available() < BLOCK_SIZE + paddedSize) {\n if (ended && strict)\n throw truncateErr;\n return null;\n }\n discard(BLOCK_SIZE);\n const overrides = metaParser(pull(paddedSize).subarray(0, internalHeader.size));\n const target = internalHeader.type === \"pax-global-header\" ? paxGlobals : nextEntryOverrides;\n for (const key in overrides)\n target[key] = overrides[key];\n continue;\n }\n discard(BLOCK_SIZE);\n const header = internalHeader;\n if (internalHeader.prefix)\n header.name = `${internalHeader.prefix}/${header.name}`;\n applyOverrides(header, paxGlobals);\n applyOverrides(header, nextEntryOverrides);\n nextEntryOverrides = {};\n currentEntry = {\n header,\n remaining: header.size,\n padding: -header.size & BLOCK_SIZE_MASK\n };\n state = STATE_BODY;\n return header;\n }\n },\n streamBody(callback) {\n if (state !== STATE_BODY || !currentEntry || currentEntry.remaining === 0)\n return 0;\n const bytesToFeed = Math.min(currentEntry.remaining, available());\n if (bytesToFeed === 0)\n return 0;\n const fed = pull(bytesToFeed, callback);\n currentEntry.remaining -= fed;\n return fed;\n },\n skipPadding() {\n if (state !== STATE_BODY || !currentEntry)\n return true;\n if (currentEntry.remaining > 0)\n throw new Error(\"Body not fully consumed\");\n if (available() < currentEntry.padding)\n return false;\n discard(currentEntry.padding);\n currentEntry = null;\n state = STATE_HEADER;\n return true;\n },\n skipEntry() {\n if (state !== STATE_BODY || !currentEntry)\n return true;\n const toDiscard = Math.min(currentEntry.remaining, available());\n if (toDiscard > 0) {\n discard(toDiscard);\n currentEntry.remaining -= toDiscard;\n }\n if (currentEntry.remaining > 0)\n return false;\n return unpacker.skipPadding();\n },\n validateEOF() {\n if (strict) {\n if (!eof)\n throw truncateErr;\n if (available() > 0) {\n if (pull(available()).some((byte) => byte !== 0))\n throw new Error(\"Invalid EOF.\");\n }\n }\n }\n };\n return unpacker;\n}\nfunction isZeroBlock(block) {\n if (block.byteOffset % 8 === 0) {\n const view = new BigUint64Array(block.buffer, block.byteOffset, block.length / 8);\n for (let i = 0;i < view.length; i++)\n if (view[i] !== 0n)\n return false;\n return true;\n }\n for (let i = 0;i < block.length; i++)\n if (block[i] !== 0)\n return false;\n return true;\n}\n\n// ../../node_modules/.bun/modern-tar@0.7.3/node_modules/modern-tar/dist/web/index.js\nfunction createTarPacker2() {\n let streamController;\n let packer;\n return {\n readable: new ReadableStream({ start(controller) {\n streamController = controller;\n packer = createTarPacker(controller.enqueue.bind(controller), controller.error.bind(controller), controller.close.bind(controller));\n } }),\n controller: {\n add(header) {\n const bodyless = isBodyless(header);\n const h = { ...header };\n if (bodyless)\n h.size = 0;\n packer.add(h);\n if (bodyless)\n packer.endEntry();\n return new WritableStream({\n write(chunk) {\n packer.write(chunk);\n },\n close() {\n if (!bodyless)\n packer.endEntry();\n },\n abort(reason) {\n streamController.error(reason);\n }\n });\n },\n finalize() {\n packer.finalize();\n },\n error(err) {\n streamController.error(err);\n }\n }\n };\n}\nasync function streamToBuffer(stream) {\n const chunks = [];\n const reader = stream.getReader();\n let totalLength = 0;\n try {\n while (true) {\n const { done, value } = await reader.read();\n if (done)\n break;\n chunks.push(value);\n totalLength += value.length;\n }\n const result = new Uint8Array(totalLength);\n let offset = 0;\n for (const chunk of chunks) {\n result.set(chunk, offset);\n offset += chunk.length;\n }\n return result;\n } finally {\n reader.releaseLock();\n }\n}\nvar drain = (stream) => stream.pipeTo(new WritableStream);\nfunction createTarDecoder(options = {}) {\n const unpacker = createUnpacker(options);\n let bodyController = null;\n let pumping = false;\n const pump = (controller) => {\n if (pumping)\n return;\n pumping = true;\n try {\n while (true)\n if (unpacker.isEntryActive()) {\n if (bodyController) {\n if (unpacker.streamBody((c) => (bodyController.enqueue(c), true)) === 0 && !unpacker.isBodyComplete())\n break;\n } else if (!unpacker.skipEntry())\n break;\n if (unpacker.isBodyComplete()) {\n try {\n bodyController?.close();\n } catch {}\n bodyController = null;\n if (!unpacker.skipPadding())\n break;\n }\n } else {\n const header = unpacker.readHeader();\n if (header === null || header === undefined)\n break;\n controller.enqueue({\n header,\n body: new ReadableStream({\n start(c) {\n if (header.size === 0)\n c.close();\n else\n bodyController = c;\n },\n pull: () => pump(controller),\n cancel() {\n bodyController = null;\n pump(controller);\n }\n })\n });\n }\n } catch (error) {\n try {\n bodyController?.error(error);\n } catch {}\n bodyController = null;\n throw error;\n } finally {\n pumping = false;\n }\n };\n return new TransformStream({\n transform(chunk, controller) {\n try {\n unpacker.write(chunk);\n pump(controller);\n } catch (error) {\n try {\n bodyController?.error(error);\n } catch {}\n throw error;\n }\n },\n flush(controller) {\n try {\n unpacker.end();\n pump(controller);\n unpacker.validateEOF();\n if (unpacker.isEntryActive() && !unpacker.isBodyComplete())\n try {\n bodyController?.close();\n } catch {}\n } catch (error) {\n try {\n bodyController?.error(error);\n } catch {}\n throw error;\n }\n }\n }, undefined, { highWaterMark: 1 });\n}\nasync function packTar(entries) {\n const { readable, controller } = createTarPacker2();\n await (async () => {\n for (const entry of entries) {\n const entryStream = controller.add(entry.header);\n const body = \"body\" in entry ? entry.body : entry.data;\n if (!body) {\n await entryStream.close();\n continue;\n }\n if (body instanceof ReadableStream)\n await body.pipeTo(entryStream);\n else if (body instanceof Blob)\n await body.stream().pipeTo(entryStream);\n else\n try {\n const chunk = await normalizeBody(body);\n if (chunk.length > 0) {\n const writer = entryStream.getWriter();\n await writer.write(chunk);\n await writer.close();\n } else\n await entryStream.close();\n } catch {\n throw new TypeError(`Unsupported content type for entry \"${entry.header.name}\".`);\n }\n }\n })().then(() => controller.finalize()).catch((err) => controller.error(err));\n return new Uint8Array(await streamToBuffer(readable));\n}\nasync function unpackTar(archive, options = {}) {\n const sourceStream = archive instanceof ReadableStream ? archive : new ReadableStream({ start(controller) {\n controller.enqueue(archive instanceof Uint8Array ? archive : new Uint8Array(archive));\n controller.close();\n } });\n const results = [];\n const entryStream = sourceStream.pipeThrough(createTarDecoder(options));\n for await (const entry of entryStream) {\n let processedHeader;\n try {\n processedHeader = transformHeader(entry.header, options);\n } catch (error) {\n await entry.body.cancel();\n throw error;\n }\n if (processedHeader === null) {\n await drain(entry.body);\n continue;\n }\n if (isBodyless(processedHeader)) {\n await drain(entry.body);\n results.push({ header: processedHeader });\n } else\n results.push({\n header: processedHeader,\n data: await streamToBuffer(entry.body)\n });\n }\n return results;\n}\n\n// src/primitives/archive.ts\nvar gzipAsync = promisify(gzip);\n\nclass RXAImpl {\n _buffer;\n constructor(buffer) {\n this._buffer = buffer;\n }\n get stream() {\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 async buffer() {\n return this._buffer;\n }\n}\nasync function archive(files) {\n const entries = Object.entries(files).map(([name, content]) => {\n return {\n header: { name, size: content.length, type: \"file\" },\n body: new Uint8Array(content)\n };\n });\n const tarBuffer = await packTar(entries);\n const gzipBuffer = await gzipAsync(Buffer.from(tarBuffer));\n return new RXAImpl(gzipBuffer);\n}\n// src/primitives/locate.ts\nfunction locate(rxm) {\n return {\n registry: rxm.registry,\n path: rxm.path,\n name: rxm.name,\n tag: rxm.tag\n };\n}\n// src/primitives/resource.ts\nfunction resource(rxm, rxa) {\n const rxl = locate(rxm);\n return {\n locator: rxl,\n manifest: rxm,\n archive: rxa\n };\n}\n// src/primitives/extract.ts\nimport { gunzip } from \"node:zlib\";\nimport { promisify as promisify2 } from \"node:util\";\nvar gunzipAsync = promisify2(gunzip);\nasync function extract(rxa) {\n const buffer = await rxa.buffer();\n const tarBuffer = await gunzipAsync(buffer);\n const entries = await unpackTar(tarBuffer);\n const files = {};\n for (const entry of entries) {\n if ((entry.header.type === \"file\" || entry.header.type === undefined) && entry.data) {\n files[entry.header.name] = Buffer.from(entry.data);\n }\n }\n return files;\n}\n// src/primitives/format.ts\nfunction format(rxl) {\n let result = \"\";\n if (rxl.registry) {\n result += rxl.registry + \"/\";\n }\n if (rxl.path) {\n result += rxl.path + \"/\";\n }\n result += rxl.name;\n if (rxl.tag && rxl.tag !== \"latest\") {\n result += \":\" + rxl.tag;\n }\n return result;\n}\n// src/primitives/parse.ts\nfunction looksLikeRegistry(str) {\n if (str.includes(\":\") && !str.includes(\"/\")) {\n return true;\n }\n if (str.includes(\".\")) {\n return true;\n }\n if (str === \"localhost\") {\n return true;\n }\n return false;\n}\nfunction parse(locator) {\n if (!locator || typeof locator !== \"string\") {\n throw new LocatorError(\"Locator must be a non-empty string\", locator);\n }\n if (locator.includes(\"@\")) {\n throw new LocatorError(\"Invalid locator format. Use name:tag instead of name@version\", locator);\n }\n const lastSlashIndex = locator.lastIndexOf(\"/\");\n let beforeSlash = \"\";\n let afterSlash = locator;\n if (lastSlashIndex !== -1) {\n beforeSlash = locator.substring(0, lastSlashIndex);\n afterSlash = locator.substring(lastSlashIndex + 1);\n }\n const colonIndex = afterSlash.lastIndexOf(\":\");\n let name;\n let tag;\n if (colonIndex === -1) {\n name = afterSlash;\n tag = \"latest\";\n } else {\n name = afterSlash.substring(0, colonIndex);\n tag = afterSlash.substring(colonIndex + 1);\n }\n if (!name) {\n throw new LocatorError(\"Name is required\", locator);\n }\n if (!tag) {\n throw new LocatorError(\"Tag cannot be empty. Use name:tag format or omit tag for :latest\", locator);\n }\n if (lastSlashIndex === -1) {\n return {\n registry: undefined,\n path: undefined,\n name,\n tag\n };\n }\n const parts = beforeSlash.split(\"/\");\n if (looksLikeRegistry(parts[0])) {\n const registry = parts[0];\n const path = parts.length > 1 ? parts.slice(1).join(\"/\") : undefined;\n return {\n registry,\n path,\n name,\n tag\n };\n }\n return {\n registry: undefined,\n path: beforeSlash,\n name,\n tag\n };\n}\n// src/primitives/wrap.ts\nclass RXAImpl2 {\n _buffer;\n constructor(buffer) {\n this._buffer = buffer;\n }\n get stream() {\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 async buffer() {\n return this._buffer;\n }\n}\nfunction wrap(buffer) {\n return new RXAImpl2(buffer);\n}\nexport {\n wrap,\n resource,\n parse,\n manifest,\n locate,\n format,\n extract,\n define,\n archive,\n ResourceXError,\n ManifestError,\n LocatorError,\n DefinitionError,\n ContentError\n};\n\n//# debugId=E36D0778C816F02964756E2164756E21\n",
6
- "// src/errors.ts\nclass ARPError extends Error {\n constructor(message, options) {\n super(message, options);\n this.name = \"ARPError\";\n }\n}\n\nclass ParseError extends ARPError {\n url;\n constructor(message, url) {\n super(message);\n this.url = url;\n this.name = \"ParseError\";\n }\n}\n\nclass TransportError extends ARPError {\n transport;\n constructor(message, transport, options) {\n super(message, options);\n this.transport = transport;\n this.name = \"TransportError\";\n }\n}\n\nclass SemanticError extends ARPError {\n semantic;\n constructor(message, semantic, options) {\n super(message, options);\n this.semantic = semantic;\n this.name = \"SemanticError\";\n }\n}\n\n// src/ARL.ts\nclass ARL {\n semantic;\n transport;\n location;\n resolver;\n constructor(semantic, transport, location, resolver) {\n this.semantic = semantic;\n this.transport = transport;\n this.location = location;\n this.resolver = resolver;\n }\n createContext(params) {\n return {\n url: this.toString(),\n semantic: this.semantic,\n transport: this.transport,\n location: this.location,\n timestamp: new Date,\n params\n };\n }\n async resolve(params) {\n const transport = this.resolver.getTransportHandler(this.transport);\n const semantic = this.resolver.getSemanticHandler(this.semantic);\n const context = this.createContext(params);\n return semantic.resolve(transport, this.location, context);\n }\n async deposit(data, params) {\n const transport = this.resolver.getTransportHandler(this.transport);\n const semantic = this.resolver.getSemanticHandler(this.semantic);\n const context = this.createContext(params);\n if (!semantic.deposit) {\n throw new SemanticError(`Semantic \"${semantic.name}\" does not support deposit operation`, this.semantic);\n }\n await semantic.deposit(transport, this.location, data, context);\n }\n async exists() {\n const transport = this.resolver.getTransportHandler(this.transport);\n const semantic = this.resolver.getSemanticHandler(this.semantic);\n const context = this.createContext();\n if (semantic.exists) {\n return semantic.exists(transport, this.location, context);\n }\n return transport.exists(this.location);\n }\n async delete() {\n const transport = this.resolver.getTransportHandler(this.transport);\n const semantic = this.resolver.getSemanticHandler(this.semantic);\n const context = this.createContext();\n if (semantic.delete) {\n return semantic.delete(transport, this.location, context);\n }\n await transport.delete(this.location);\n }\n async list(options) {\n const transport = this.resolver.getTransportHandler(this.transport);\n if (!transport.list) {\n throw new TransportError(`Transport \"${transport.name}\" does not support list operation`, this.transport);\n }\n return transport.list(this.location, options);\n }\n async mkdir() {\n const transport = this.resolver.getTransportHandler(this.transport);\n if (!transport.mkdir) {\n throw new TransportError(`Transport \"${transport.name}\" does not support mkdir operation`, this.transport);\n }\n await transport.mkdir(this.location);\n }\n toString() {\n return `arp:${this.semantic}:${this.transport}://${this.location}`;\n }\n}\n\n// src/transport/file.ts\nimport { readFile, writeFile, readdir, mkdir, rm, access, stat } from \"node:fs/promises\";\nimport { resolve, dirname, join } from \"node:path\";\nclass FileTransportHandler {\n name = \"file\";\n resolvePath(location) {\n return resolve(process.cwd(), location);\n }\n async get(location, params) {\n const filePath = this.resolvePath(location);\n try {\n const stats = await stat(filePath);\n if (stats.isDirectory()) {\n return this.getDirectory(filePath, stats, params);\n } else {\n return this.getFile(filePath, stats);\n }\n } catch (error) {\n const err = error;\n throw new TransportError(`File get error: ${err.code} - ${filePath}`, this.name, {\n cause: err\n });\n }\n }\n async getFile(filePath, stats) {\n const content = await readFile(filePath);\n return {\n content,\n metadata: {\n type: \"file\",\n size: Number(stats.size),\n modifiedAt: stats.mtime\n }\n };\n }\n async getDirectory(dirPath, stats, params) {\n const recursive = params?.recursive === \"true\";\n const pattern = params?.pattern;\n let entries;\n if (recursive) {\n entries = await this.listRecursive(dirPath, dirPath);\n } else {\n entries = await readdir(dirPath);\n }\n if (pattern) {\n entries = this.filterByPattern(entries, pattern);\n }\n const content = Buffer.from(JSON.stringify(entries));\n return {\n content,\n metadata: {\n type: \"directory\",\n modifiedAt: stats.mtime\n }\n };\n }\n async listRecursive(basePath, currentPath) {\n const entries = await readdir(currentPath, { withFileTypes: true });\n const results = [];\n for (const entry of entries) {\n const fullPath = join(currentPath, entry.name);\n const relativePath = fullPath.substring(basePath.length + 1);\n if (entry.isDirectory()) {\n const subEntries = await this.listRecursive(basePath, fullPath);\n results.push(...subEntries);\n } else {\n results.push(relativePath);\n }\n }\n return results;\n }\n filterByPattern(entries, pattern) {\n const regexPattern = pattern.replace(/\\./g, \"\\\\.\").replace(/\\*/g, \".*\").replace(/\\?/g, \".\");\n const regex = new RegExp(`^${regexPattern}$`);\n return entries.filter((entry) => {\n const filename = entry.split(\"/\").pop() || entry;\n return regex.test(filename);\n });\n }\n async set(location, content, _params) {\n const filePath = this.resolvePath(location);\n try {\n await mkdir(dirname(filePath), { recursive: true });\n await writeFile(filePath, content);\n } catch (error) {\n const err = error;\n throw new TransportError(`File set error: ${err.code} - ${filePath}`, this.name, {\n cause: err\n });\n }\n }\n async exists(location) {\n const filePath = this.resolvePath(location);\n try {\n await access(filePath);\n return true;\n } catch {\n return false;\n }\n }\n async delete(location) {\n const filePath = this.resolvePath(location);\n try {\n await rm(filePath, { recursive: true });\n } catch (error) {\n const err = error;\n if (err.code === \"ENOENT\") {\n return;\n }\n throw new TransportError(`File delete error: ${err.code} - ${filePath}`, this.name, {\n cause: err\n });\n }\n }\n async list(location, options) {\n const dirPath = this.resolvePath(location);\n try {\n let entries;\n if (options?.recursive) {\n entries = await this.listRecursive(dirPath, dirPath);\n } else {\n entries = await readdir(dirPath);\n }\n if (options?.pattern) {\n entries = this.filterByPattern(entries, options.pattern);\n }\n return entries;\n } catch (error) {\n const err = error;\n throw new TransportError(`File list error: ${err.code} - ${dirPath}`, this.name, {\n cause: err\n });\n }\n }\n async mkdir(location) {\n const dirPath = this.resolvePath(location);\n try {\n await mkdir(dirPath, { recursive: true });\n } catch (error) {\n const err = error;\n throw new TransportError(`File mkdir error: ${err.code} - ${dirPath}`, this.name, {\n cause: err\n });\n }\n }\n}\nvar fileTransport = new FileTransportHandler;\n// src/transport/http.ts\nclass HttpTransportHandler {\n name;\n protocol;\n constructor(protocol = \"https\") {\n this.protocol = protocol;\n this.name = protocol;\n }\n async get(location, params) {\n const url = this.buildUrl(location, params);\n try {\n const response = await fetch(url);\n if (!response.ok) {\n throw new TransportError(`HTTP ${response.status}: ${response.statusText} - ${url}`, this.name);\n }\n const arrayBuffer = await response.arrayBuffer();\n const content = Buffer.from(arrayBuffer);\n const contentType = response.headers.get(\"content-type\");\n const contentLength = response.headers.get(\"content-length\");\n const lastModified = response.headers.get(\"last-modified\");\n return {\n content,\n metadata: {\n type: \"file\",\n size: contentLength ? parseInt(contentLength, 10) : content.length,\n modifiedAt: lastModified ? new Date(lastModified) : undefined,\n contentType\n }\n };\n } catch (error) {\n if (error instanceof TransportError) {\n throw error;\n }\n throw new TransportError(`Network error: ${url}`, this.name, {\n cause: error\n });\n }\n }\n buildUrl(location, params) {\n const url = new URL(`${this.protocol}://${location}`);\n if (params) {\n for (const [key, value] of Object.entries(params)) {\n url.searchParams.set(key, value);\n }\n }\n return url.toString();\n }\n async set(_location, _content, _params) {\n throw new TransportError(\"HTTP transport is read-only, set not supported\", this.name);\n }\n async exists(location) {\n const url = `${this.protocol}://${location}`;\n try {\n const response = await fetch(url, { method: \"HEAD\" });\n return response.ok;\n } catch {\n return false;\n }\n }\n async delete(_location) {\n throw new TransportError(\"HTTP transport is read-only, delete not supported\", this.name);\n }\n}\nvar httpsTransport = new HttpTransportHandler(\"https\");\nvar httpTransport = new HttpTransportHandler(\"http\");\n// src/semantic/text.ts\nclass TextSemanticHandler {\n name = \"text\";\n async resolve(transport, location, context) {\n const result = await transport.get(location, context.params);\n if (result.metadata?.type === \"directory\") {\n const meta2 = {\n url: context.url,\n semantic: context.semantic,\n transport: context.transport,\n location: context.location,\n size: result.content.length,\n encoding: \"utf-8\",\n mimeType: \"application/json\",\n resolvedAt: context.timestamp.toISOString(),\n type: \"directory\"\n };\n return {\n type: \"text\",\n content: result.content.toString(\"utf-8\"),\n meta: meta2\n };\n }\n const text = result.content.toString(\"utf-8\");\n const meta = {\n url: context.url,\n semantic: context.semantic,\n transport: context.transport,\n location: context.location,\n size: result.metadata?.size ?? result.content.length,\n encoding: \"utf-8\",\n mimeType: \"text/plain\",\n resolvedAt: context.timestamp.toISOString(),\n type: \"file\"\n };\n return {\n type: \"text\",\n content: text,\n meta\n };\n }\n async deposit(transport, location, data, context) {\n const buffer = Buffer.from(data, \"utf-8\");\n try {\n await transport.set(location, buffer, context.params);\n } catch (error) {\n throw new SemanticError(`Failed to deposit text to \"${location}\": ${error.message}`, this.name, { cause: error });\n }\n }\n async exists(transport, location, _context) {\n return transport.exists(location);\n }\n async delete(transport, location, _context) {\n try {\n await transport.delete(location);\n } catch (error) {\n throw new SemanticError(`Failed to delete \"${location}\": ${error.message}`, this.name, { cause: error });\n }\n }\n}\nvar textSemantic = new TextSemanticHandler;\n// src/semantic/binary.ts\nfunction toBuffer(data) {\n if (Buffer.isBuffer(data)) {\n return data;\n }\n if (data instanceof Uint8Array) {\n return Buffer.from(data);\n }\n if (data instanceof ArrayBuffer) {\n return Buffer.from(data);\n }\n if (Array.isArray(data)) {\n return Buffer.from(data);\n }\n throw new SemanticError(`Unsupported binary input type`, \"binary\");\n}\n\nclass BinarySemanticHandler {\n name = \"binary\";\n async resolve(transport, location, context) {\n const result = await transport.get(location, context.params);\n const meta = {\n url: context.url,\n semantic: context.semantic,\n transport: context.transport,\n location: context.location,\n size: result.metadata?.size ?? result.content.length,\n resolvedAt: context.timestamp.toISOString(),\n type: result.metadata?.type\n };\n return {\n type: \"binary\",\n content: result.content,\n meta\n };\n }\n async deposit(transport, location, data, context) {\n const buffer = toBuffer(data);\n try {\n await transport.set(location, buffer, context.params);\n } catch (error) {\n throw new SemanticError(`Failed to deposit binary to \"${location}\": ${error.message}`, this.name, { cause: error });\n }\n }\n async exists(transport, location, _context) {\n return transport.exists(location);\n }\n async delete(transport, location, _context) {\n try {\n await transport.delete(location);\n } catch (error) {\n throw new SemanticError(`Failed to delete \"${location}\": ${error.message}`, this.name, { cause: error });\n }\n }\n}\nvar binarySemantic = new BinarySemanticHandler;\n// src/ARP.ts\nclass ARP {\n transports;\n semantics;\n constructor(config = {}) {\n this.transports = new Map;\n this.semantics = new Map;\n const defaultTransports = [fileTransport, httpTransport, httpsTransport];\n const defaultSemantics = [textSemantic, binarySemantic];\n for (const handler of defaultTransports) {\n this.transports.set(handler.name, handler);\n }\n for (const handler of defaultSemantics) {\n this.semantics.set(handler.name, handler);\n }\n if (config.transports) {\n for (const handler of config.transports) {\n this.transports.set(handler.name, handler);\n }\n }\n if (config.semantics) {\n for (const handler of config.semantics) {\n this.semantics.set(handler.name, handler);\n }\n }\n }\n registerTransport(handler) {\n this.transports.set(handler.name, handler);\n }\n registerSemantic(handler) {\n this.semantics.set(handler.name, handler);\n }\n getTransportHandler(name) {\n const handler = this.transports.get(name);\n if (!handler) {\n throw new TransportError(`Unsupported transport type: ${name}`, name);\n }\n return handler;\n }\n getSemanticHandler(name) {\n const handler = this.semantics.get(name);\n if (!handler) {\n throw new SemanticError(`Unsupported semantic type: ${name}`, name);\n }\n return handler;\n }\n parse(url) {\n if (!url.startsWith(\"arp:\")) {\n throw new ParseError(`Invalid ARP URL: must start with \"arp:\"`, url);\n }\n const content = url.substring(4);\n const separatorIndex = content.indexOf(\"://\");\n if (separatorIndex === -1) {\n throw new ParseError(`Invalid ARP URL: missing \"://\"`, url);\n }\n const typePart = content.substring(0, separatorIndex);\n const location = content.substring(separatorIndex + 3);\n const colonIndex = typePart.indexOf(\":\");\n if (colonIndex === -1) {\n throw new ParseError(`Invalid ARP URL: must have exactly 2 types (semantic:transport)`, url);\n }\n const semantic = typePart.substring(0, colonIndex);\n const transport = typePart.substring(colonIndex + 1);\n if (!semantic) {\n throw new ParseError(`Invalid ARP URL: semantic type cannot be empty`, url);\n }\n if (!transport) {\n throw new ParseError(`Invalid ARP URL: transport type cannot be empty`, url);\n }\n if (!location) {\n throw new ParseError(`Invalid ARP URL: location cannot be empty`, url);\n }\n this.getTransportHandler(transport);\n this.getSemanticHandler(semantic);\n return new ARL(semantic, transport, location, this);\n }\n}\nfunction createARP(config) {\n return new ARP(config);\n}\n\n// src/index.ts\nvar VERSION = \"2.5.2\";\nexport {\n textSemantic,\n httpsTransport,\n httpTransport,\n fileTransport,\n createARP,\n binarySemantic,\n VERSION,\n TransportError,\n TextSemanticHandler,\n SemanticError,\n ParseError,\n HttpTransportHandler,\n FileTransportHandler,\n BinarySemanticHandler,\n ARPError,\n ARP\n};\n\n//# debugId=6E270DB1277FEBD064756E2164756E21\n",
6
+ "// src/errors.ts\nclass ARPError extends Error {\n constructor(message, options) {\n super(message, options);\n this.name = \"ARPError\";\n }\n}\n\nclass ParseError extends ARPError {\n url;\n constructor(message, url) {\n super(message);\n this.url = url;\n this.name = \"ParseError\";\n }\n}\n\nclass TransportError extends ARPError {\n transport;\n constructor(message, transport, options) {\n super(message, options);\n this.transport = transport;\n this.name = \"TransportError\";\n }\n}\n\nclass SemanticError extends ARPError {\n semantic;\n constructor(message, semantic, options) {\n super(message, options);\n this.semantic = semantic;\n this.name = \"SemanticError\";\n }\n}\n\n// src/ARL.ts\nclass ARL {\n semantic;\n transport;\n location;\n resolver;\n constructor(semantic, transport, location, resolver) {\n this.semantic = semantic;\n this.transport = transport;\n this.location = location;\n this.resolver = resolver;\n }\n createContext(params) {\n return {\n url: this.toString(),\n semantic: this.semantic,\n transport: this.transport,\n location: this.location,\n timestamp: new Date,\n params\n };\n }\n async resolve(params) {\n const transport = this.resolver.getTransportHandler(this.transport);\n const semantic = this.resolver.getSemanticHandler(this.semantic);\n const context = this.createContext(params);\n return semantic.resolve(transport, this.location, context);\n }\n async deposit(data, params) {\n const transport = this.resolver.getTransportHandler(this.transport);\n const semantic = this.resolver.getSemanticHandler(this.semantic);\n const context = this.createContext(params);\n if (!semantic.deposit) {\n throw new SemanticError(`Semantic \"${semantic.name}\" does not support deposit operation`, this.semantic);\n }\n await semantic.deposit(transport, this.location, data, context);\n }\n async exists() {\n const transport = this.resolver.getTransportHandler(this.transport);\n const semantic = this.resolver.getSemanticHandler(this.semantic);\n const context = this.createContext();\n if (semantic.exists) {\n return semantic.exists(transport, this.location, context);\n }\n return transport.exists(this.location);\n }\n async delete() {\n const transport = this.resolver.getTransportHandler(this.transport);\n const semantic = this.resolver.getSemanticHandler(this.semantic);\n const context = this.createContext();\n if (semantic.delete) {\n return semantic.delete(transport, this.location, context);\n }\n await transport.delete(this.location);\n }\n async list(options) {\n const transport = this.resolver.getTransportHandler(this.transport);\n if (!transport.list) {\n throw new TransportError(`Transport \"${transport.name}\" does not support list operation`, this.transport);\n }\n return transport.list(this.location, options);\n }\n async mkdir() {\n const transport = this.resolver.getTransportHandler(this.transport);\n if (!transport.mkdir) {\n throw new TransportError(`Transport \"${transport.name}\" does not support mkdir operation`, this.transport);\n }\n await transport.mkdir(this.location);\n }\n toString() {\n return `arp:${this.semantic}:${this.transport}://${this.location}`;\n }\n}\n\n// src/transport/file.ts\nimport { readFile, writeFile, readdir, mkdir, rm, access, stat } from \"node:fs/promises\";\nimport { resolve, dirname, join } from \"node:path\";\nclass FileTransportHandler {\n name = \"file\";\n resolvePath(location) {\n return resolve(process.cwd(), location);\n }\n async get(location, params) {\n const filePath = this.resolvePath(location);\n try {\n const stats = await stat(filePath);\n if (stats.isDirectory()) {\n return this.getDirectory(filePath, stats, params);\n } else {\n return this.getFile(filePath, stats);\n }\n } catch (error) {\n const err = error;\n throw new TransportError(`File get error: ${err.code} - ${filePath}`, this.name, {\n cause: err\n });\n }\n }\n async getFile(filePath, stats) {\n const content = await readFile(filePath);\n return {\n content,\n metadata: {\n type: \"file\",\n size: Number(stats.size),\n modifiedAt: stats.mtime\n }\n };\n }\n async getDirectory(dirPath, stats, params) {\n const recursive = params?.recursive === \"true\";\n const pattern = params?.pattern;\n let entries;\n if (recursive) {\n entries = await this.listRecursive(dirPath, dirPath);\n } else {\n entries = await readdir(dirPath);\n }\n if (pattern) {\n entries = this.filterByPattern(entries, pattern);\n }\n const content = Buffer.from(JSON.stringify(entries));\n return {\n content,\n metadata: {\n type: \"directory\",\n modifiedAt: stats.mtime\n }\n };\n }\n async listRecursive(basePath, currentPath) {\n const entries = await readdir(currentPath, { withFileTypes: true });\n const results = [];\n for (const entry of entries) {\n const fullPath = join(currentPath, entry.name);\n const relativePath = fullPath.substring(basePath.length + 1);\n if (entry.isDirectory()) {\n const subEntries = await this.listRecursive(basePath, fullPath);\n results.push(...subEntries);\n } else {\n results.push(relativePath);\n }\n }\n return results;\n }\n filterByPattern(entries, pattern) {\n const regexPattern = pattern.replace(/\\./g, \"\\\\.\").replace(/\\*/g, \".*\").replace(/\\?/g, \".\");\n const regex = new RegExp(`^${regexPattern}$`);\n return entries.filter((entry) => {\n const filename = entry.split(\"/\").pop() || entry;\n return regex.test(filename);\n });\n }\n async set(location, content, _params) {\n const filePath = this.resolvePath(location);\n try {\n await mkdir(dirname(filePath), { recursive: true });\n await writeFile(filePath, content);\n } catch (error) {\n const err = error;\n throw new TransportError(`File set error: ${err.code} - ${filePath}`, this.name, {\n cause: err\n });\n }\n }\n async exists(location) {\n const filePath = this.resolvePath(location);\n try {\n await access(filePath);\n return true;\n } catch {\n return false;\n }\n }\n async delete(location) {\n const filePath = this.resolvePath(location);\n try {\n await rm(filePath, { recursive: true });\n } catch (error) {\n const err = error;\n if (err.code === \"ENOENT\") {\n return;\n }\n throw new TransportError(`File delete error: ${err.code} - ${filePath}`, this.name, {\n cause: err\n });\n }\n }\n async list(location, options) {\n const dirPath = this.resolvePath(location);\n try {\n let entries;\n if (options?.recursive) {\n entries = await this.listRecursive(dirPath, dirPath);\n } else {\n entries = await readdir(dirPath);\n }\n if (options?.pattern) {\n entries = this.filterByPattern(entries, options.pattern);\n }\n return entries;\n } catch (error) {\n const err = error;\n throw new TransportError(`File list error: ${err.code} - ${dirPath}`, this.name, {\n cause: err\n });\n }\n }\n async mkdir(location) {\n const dirPath = this.resolvePath(location);\n try {\n await mkdir(dirPath, { recursive: true });\n } catch (error) {\n const err = error;\n throw new TransportError(`File mkdir error: ${err.code} - ${dirPath}`, this.name, {\n cause: err\n });\n }\n }\n}\nvar fileTransport = new FileTransportHandler;\n// src/transport/http.ts\nclass HttpTransportHandler {\n name;\n protocol;\n constructor(protocol = \"https\") {\n this.protocol = protocol;\n this.name = protocol;\n }\n async get(location, params) {\n const url = this.buildUrl(location, params);\n try {\n const response = await fetch(url);\n if (!response.ok) {\n throw new TransportError(`HTTP ${response.status}: ${response.statusText} - ${url}`, this.name);\n }\n const arrayBuffer = await response.arrayBuffer();\n const content = Buffer.from(arrayBuffer);\n const contentType = response.headers.get(\"content-type\");\n const contentLength = response.headers.get(\"content-length\");\n const lastModified = response.headers.get(\"last-modified\");\n return {\n content,\n metadata: {\n type: \"file\",\n size: contentLength ? parseInt(contentLength, 10) : content.length,\n modifiedAt: lastModified ? new Date(lastModified) : undefined,\n contentType\n }\n };\n } catch (error) {\n if (error instanceof TransportError) {\n throw error;\n }\n throw new TransportError(`Network error: ${url}`, this.name, {\n cause: error\n });\n }\n }\n buildUrl(location, params) {\n const url = new URL(`${this.protocol}://${location}`);\n if (params) {\n for (const [key, value] of Object.entries(params)) {\n url.searchParams.set(key, value);\n }\n }\n return url.toString();\n }\n async set(_location, _content, _params) {\n throw new TransportError(\"HTTP transport is read-only, set not supported\", this.name);\n }\n async exists(location) {\n const url = `${this.protocol}://${location}`;\n try {\n const response = await fetch(url, { method: \"HEAD\" });\n return response.ok;\n } catch {\n return false;\n }\n }\n async delete(_location) {\n throw new TransportError(\"HTTP transport is read-only, delete not supported\", this.name);\n }\n}\nvar httpsTransport = new HttpTransportHandler(\"https\");\nvar httpTransport = new HttpTransportHandler(\"http\");\n// src/semantic/text.ts\nclass TextSemanticHandler {\n name = \"text\";\n async resolve(transport, location, context) {\n const result = await transport.get(location, context.params);\n if (result.metadata?.type === \"directory\") {\n const meta2 = {\n url: context.url,\n semantic: context.semantic,\n transport: context.transport,\n location: context.location,\n size: result.content.length,\n encoding: \"utf-8\",\n mimeType: \"application/json\",\n resolvedAt: context.timestamp.toISOString(),\n type: \"directory\"\n };\n return {\n type: \"text\",\n content: result.content.toString(\"utf-8\"),\n meta: meta2\n };\n }\n const text = result.content.toString(\"utf-8\");\n const meta = {\n url: context.url,\n semantic: context.semantic,\n transport: context.transport,\n location: context.location,\n size: result.metadata?.size ?? result.content.length,\n encoding: \"utf-8\",\n mimeType: \"text/plain\",\n resolvedAt: context.timestamp.toISOString(),\n type: \"file\"\n };\n return {\n type: \"text\",\n content: text,\n meta\n };\n }\n async deposit(transport, location, data, context) {\n const buffer = Buffer.from(data, \"utf-8\");\n try {\n await transport.set(location, buffer, context.params);\n } catch (error) {\n throw new SemanticError(`Failed to deposit text to \"${location}\": ${error.message}`, this.name, { cause: error });\n }\n }\n async exists(transport, location, _context) {\n return transport.exists(location);\n }\n async delete(transport, location, _context) {\n try {\n await transport.delete(location);\n } catch (error) {\n throw new SemanticError(`Failed to delete \"${location}\": ${error.message}`, this.name, { cause: error });\n }\n }\n}\nvar textSemantic = new TextSemanticHandler;\n// src/semantic/binary.ts\nfunction toBuffer(data) {\n if (Buffer.isBuffer(data)) {\n return data;\n }\n if (data instanceof Uint8Array) {\n return Buffer.from(data);\n }\n if (data instanceof ArrayBuffer) {\n return Buffer.from(data);\n }\n if (Array.isArray(data)) {\n return Buffer.from(data);\n }\n throw new SemanticError(`Unsupported binary input type`, \"binary\");\n}\n\nclass BinarySemanticHandler {\n name = \"binary\";\n async resolve(transport, location, context) {\n const result = await transport.get(location, context.params);\n const meta = {\n url: context.url,\n semantic: context.semantic,\n transport: context.transport,\n location: context.location,\n size: result.metadata?.size ?? result.content.length,\n resolvedAt: context.timestamp.toISOString(),\n type: result.metadata?.type\n };\n return {\n type: \"binary\",\n content: result.content,\n meta\n };\n }\n async deposit(transport, location, data, context) {\n const buffer = toBuffer(data);\n try {\n await transport.set(location, buffer, context.params);\n } catch (error) {\n throw new SemanticError(`Failed to deposit binary to \"${location}\": ${error.message}`, this.name, { cause: error });\n }\n }\n async exists(transport, location, _context) {\n return transport.exists(location);\n }\n async delete(transport, location, _context) {\n try {\n await transport.delete(location);\n } catch (error) {\n throw new SemanticError(`Failed to delete \"${location}\": ${error.message}`, this.name, { cause: error });\n }\n }\n}\nvar binarySemantic = new BinarySemanticHandler;\n// src/ARP.ts\nclass ARP {\n transports;\n semantics;\n constructor(config = {}) {\n this.transports = new Map;\n this.semantics = new Map;\n const defaultTransports = [fileTransport, httpTransport, httpsTransport];\n const defaultSemantics = [textSemantic, binarySemantic];\n for (const handler of defaultTransports) {\n this.transports.set(handler.name, handler);\n }\n for (const handler of defaultSemantics) {\n this.semantics.set(handler.name, handler);\n }\n if (config.transports) {\n for (const handler of config.transports) {\n this.transports.set(handler.name, handler);\n }\n }\n if (config.semantics) {\n for (const handler of config.semantics) {\n this.semantics.set(handler.name, handler);\n }\n }\n }\n registerTransport(handler) {\n this.transports.set(handler.name, handler);\n }\n registerSemantic(handler) {\n this.semantics.set(handler.name, handler);\n }\n getTransportHandler(name) {\n const handler = this.transports.get(name);\n if (!handler) {\n throw new TransportError(`Unsupported transport type: ${name}`, name);\n }\n return handler;\n }\n getSemanticHandler(name) {\n const handler = this.semantics.get(name);\n if (!handler) {\n throw new SemanticError(`Unsupported semantic type: ${name}`, name);\n }\n return handler;\n }\n parse(url) {\n if (!url.startsWith(\"arp:\")) {\n throw new ParseError(`Invalid ARP URL: must start with \"arp:\"`, url);\n }\n const content = url.substring(4);\n const separatorIndex = content.indexOf(\"://\");\n if (separatorIndex === -1) {\n throw new ParseError(`Invalid ARP URL: missing \"://\"`, url);\n }\n const typePart = content.substring(0, separatorIndex);\n const location = content.substring(separatorIndex + 3);\n const colonIndex = typePart.indexOf(\":\");\n if (colonIndex === -1) {\n throw new ParseError(`Invalid ARP URL: must have exactly 2 types (semantic:transport)`, url);\n }\n const semantic = typePart.substring(0, colonIndex);\n const transport = typePart.substring(colonIndex + 1);\n if (!semantic) {\n throw new ParseError(`Invalid ARP URL: semantic type cannot be empty`, url);\n }\n if (!transport) {\n throw new ParseError(`Invalid ARP URL: transport type cannot be empty`, url);\n }\n if (!location) {\n throw new ParseError(`Invalid ARP URL: location cannot be empty`, url);\n }\n this.getTransportHandler(transport);\n this.getSemanticHandler(semantic);\n return new ARL(semantic, transport, location, this);\n }\n}\nfunction createARP(config) {\n return new ARP(config);\n}\n\n// src/index.ts\nvar VERSION = \"2.5.4\";\nexport {\n textSemantic,\n httpsTransport,\n httpTransport,\n fileTransport,\n createARP,\n binarySemantic,\n VERSION,\n TransportError,\n TextSemanticHandler,\n SemanticError,\n ParseError,\n HttpTransportHandler,\n FileTransportHandler,\n BinarySemanticHandler,\n ARPError,\n ARP\n};\n\n//# debugId=B0A14F22FD7913F864756E2164756E21\n",
7
7
  "/**\n * RXR Transport Handler\n * Provides access to files inside a resource via ARP protocol.\n * Format: arp:{semantic}:rxr://{rxl}/{internal-path}\n *\n * This is a read-only transport - set and delete operations are not supported.\n */\n\nimport { homedir } from \"node:os\";\nimport { join } from \"node:path\";\nimport { TransportError } from \"@resourcexjs/arp\";\nimport type { TransportHandler, TransportResult, TransportParams } from \"@resourcexjs/arp\";\nimport { extract, parse } from \"@resourcexjs/core\";\nimport type { RXR } from \"@resourcexjs/core\";\nimport { FileSystemStorage } from \"@resourcexjs/storage\";\nimport { LocalRegistry, MirrorRegistry, LinkedRegistry } from \"@resourcexjs/registry\";\n\nconst DEFAULT_BASE_PATH = `${homedir()}/.resourcex`;\n\n/**\n * Internal registry access for RxrTransport.\n * Uses the same registry structure as ResourceX.\n */\nclass InternalRegistryAccess {\n private readonly local: LocalRegistry;\n private readonly cache: MirrorRegistry;\n private readonly linked: LinkedRegistry;\n\n constructor(basePath: string = DEFAULT_BASE_PATH) {\n const localStorage = new FileSystemStorage(join(basePath, \"local\"));\n const cacheStorage = new FileSystemStorage(join(basePath, \"cache\"));\n\n this.local = new LocalRegistry(localStorage);\n this.cache = new MirrorRegistry(cacheStorage);\n this.linked = new LinkedRegistry(join(basePath, \"linked\"));\n }\n\n async get(locator: string): Promise<RXR> {\n const rxl = parse(locator);\n\n // Check linked first (development priority)\n if (await this.linked.has(rxl)) {\n return this.linked.get(rxl);\n }\n\n // Check local (no registry)\n if (!rxl.registry && (await this.local.has(rxl))) {\n return this.local.get(rxl);\n }\n\n // Check cache (has registry)\n if (rxl.registry && (await this.cache.has(rxl))) {\n return this.cache.get(rxl);\n }\n\n throw new Error(`Resource not found: ${locator}`);\n }\n}\n\n// Singleton registry access\nlet defaultRegistry: InternalRegistryAccess | null = null;\n\n/**\n * RXR Transport - Access files inside a resource.\n *\n * Location format: {rxl}/{internal-path}\n * Example: deepractice.ai/nuwa.role@1.0.0/thought/first-principles.md\n *\n * The RXL portion ends at @version, and the internal path follows.\n */\nexport class RxrTransport implements TransportHandler {\n readonly name = \"rxr\";\n\n constructor(private basePath?: string) {}\n\n /**\n * Get file content from inside a resource.\n */\n async get(location: string, _params?: TransportParams): Promise<TransportResult> {\n const { rxl, internalPath } = this.parseLocation(location);\n\n const registry = this.getRegistry();\n const rxr = await registry.get(rxl);\n const files = await extract(rxr.archive);\n const file = files[internalPath];\n\n if (!file) {\n throw new TransportError(`File not found in resource: ${internalPath}`, this.name);\n }\n\n return {\n content: file,\n metadata: { type: \"file\", size: file.length },\n };\n }\n\n /**\n * Set is not supported - RXR transport is read-only.\n */\n async set(_location: string, _content: Buffer, _params?: TransportParams): Promise<void> {\n throw new TransportError(\"RXR transport is read-only\", this.name);\n }\n\n /**\n * Check if a file exists inside a resource.\n */\n async exists(location: string): Promise<boolean> {\n try {\n const { rxl, internalPath } = this.parseLocation(location);\n const registry = this.getRegistry();\n const rxr = await registry.get(rxl);\n const files = await extract(rxr.archive);\n return internalPath in files;\n } catch {\n return false;\n }\n }\n\n /**\n * Delete is not supported - RXR transport is read-only.\n */\n async delete(_location: string): Promise<void> {\n throw new TransportError(\"RXR transport is read-only\", this.name);\n }\n\n /**\n * Get the registry instance.\n */\n private getRegistry(): InternalRegistryAccess {\n if (this.basePath) {\n return new InternalRegistryAccess(this.basePath);\n }\n\n if (!defaultRegistry) {\n defaultRegistry = new InternalRegistryAccess();\n }\n return defaultRegistry;\n }\n\n /**\n * Parse location into RXL and internal path.\n * Format: {registry}/{path}/{name}.{type}@{version}/{internal-path}\n * Example: deepractice.ai/nuwa.role@1.0.0/thought/first-principles.md\n */\n private parseLocation(location: string): { rxl: string; internalPath: string } {\n // Find @version marker\n const atIndex = location.indexOf(\"@\");\n if (atIndex === -1) {\n throw new TransportError(`Invalid RXR location (missing @version): ${location}`, this.name);\n }\n\n // Find the first / after @version\n const slashAfterVersion = location.indexOf(\"/\", atIndex);\n if (slashAfterVersion === -1) {\n throw new TransportError(\n `Invalid RXR location (missing internal path): ${location}`,\n this.name\n );\n }\n\n return {\n rxl: location.slice(0, slashAfterVersion),\n internalPath: location.slice(slashAfterVersion + 1),\n };\n }\n}\n\n/**\n * Clear the default registry. Useful for testing.\n */\nexport function clearRegistryCache(): void {\n defaultRegistry = null;\n}\n",
8
8
  "// src/Storage.ts\nclass StorageError extends Error {\n code;\n constructor(message, code) {\n super(message);\n this.code = code;\n this.name = \"StorageError\";\n }\n}\n// src/FileSystemStorage.ts\nimport { join, dirname } from \"node:path\";\nimport { readFile, writeFile, rm, access, readdir, mkdir } from \"node:fs/promises\";\nclass FileSystemStorage {\n basePath;\n constructor(basePath) {\n this.basePath = basePath;\n }\n async get(key) {\n const filePath = join(this.basePath, key);\n try {\n return await readFile(filePath);\n } catch (error) {\n if (error.code === \"ENOENT\") {\n throw new StorageError(`Key not found: ${key}`, \"NOT_FOUND\");\n }\n throw new StorageError(`Failed to read: ${key}`, \"READ_ERROR\");\n }\n }\n async put(key, data) {\n const filePath = join(this.basePath, key);\n try {\n await mkdir(dirname(filePath), { recursive: true });\n await writeFile(filePath, data);\n } catch {\n throw new StorageError(`Failed to write: ${key}`, \"WRITE_ERROR\");\n }\n }\n async delete(key) {\n const filePath = join(this.basePath, key);\n try {\n await rm(filePath, { recursive: true, force: true });\n } catch {\n throw new StorageError(`Failed to delete: ${key}`, \"DELETE_ERROR\");\n }\n }\n async exists(key) {\n const filePath = join(this.basePath, key);\n try {\n await access(filePath);\n return true;\n } catch {\n return false;\n }\n }\n async list(prefix) {\n const searchPath = prefix ? join(this.basePath, prefix) : this.basePath;\n const results = [];\n try {\n await this.listRecursive(searchPath, prefix ?? \"\", results);\n } catch {\n return [];\n }\n return results;\n }\n async listRecursive(dirPath, prefix, results) {\n const entries = await readdir(dirPath, { withFileTypes: true });\n for (const entry of entries) {\n const relativePath = prefix ? `${prefix}/${entry.name}` : entry.name;\n if (entry.isDirectory()) {\n await this.listRecursive(join(dirPath, entry.name), relativePath, results);\n } else {\n results.push(relativePath);\n }\n }\n }\n}\n// src/MemoryStorage.ts\nclass MemoryStorage {\n data = new Map;\n async get(key) {\n const value = this.data.get(key);\n if (!value) {\n throw new StorageError(`Key not found: ${key}`, \"NOT_FOUND\");\n }\n return value;\n }\n async put(key, data) {\n this.data.set(key, data);\n }\n async delete(key) {\n for (const k of this.data.keys()) {\n if (k === key || k.startsWith(`${key}/`)) {\n this.data.delete(k);\n }\n }\n }\n async exists(key) {\n return this.data.has(key);\n }\n async list(prefix) {\n const results = [];\n for (const key of this.data.keys()) {\n if (!prefix || key.startsWith(prefix)) {\n results.push(key);\n }\n }\n return results;\n }\n clear() {\n this.data.clear();\n }\n size() {\n return this.data.size;\n }\n}\nexport {\n StorageError,\n MemoryStorage,\n FileSystemStorage\n};\n\n//# debugId=639C5E63B6501FFD64756E2164756E21\n",
9
9
  "// ../core/dist/index.js\nimport { gzip } from \"node:zlib\";\nimport { promisify } from \"node:util\";\nimport { gunzip } from \"node:zlib\";\nimport { promisify as promisify2 } from \"node:util\";\n\nclass ResourceXError extends Error {\n constructor(message, options) {\n super(message, options);\n this.name = \"ResourceXError\";\n }\n}\n\nclass LocatorError extends ResourceXError {\n locator;\n constructor(message, locator) {\n super(message);\n this.locator = locator;\n this.name = \"LocatorError\";\n }\n}\nvar BLOCK_SIZE = 512;\nvar ZERO_BLOCK = new Uint8Array(BLOCK_SIZE);\nvar EMPTY = new Uint8Array(0);\nvar encoder = new TextEncoder;\nvar decoder = new TextDecoder;\nvar EOF_BUFFER = new Uint8Array(BLOCK_SIZE * 2);\nvar gzipAsync = promisify(gzip);\nfunction locate(rxm) {\n return {\n registry: rxm.registry,\n path: rxm.path,\n name: rxm.name,\n tag: rxm.tag\n };\n}\nfunction resource(rxm, rxa) {\n const rxl = locate(rxm);\n return {\n locator: rxl,\n manifest: rxm,\n archive: rxa\n };\n}\nvar gunzipAsync = promisify2(gunzip);\nfunction format(rxl) {\n let result = \"\";\n if (rxl.registry) {\n result += rxl.registry + \"/\";\n }\n if (rxl.path) {\n result += rxl.path + \"/\";\n }\n result += rxl.name;\n if (rxl.tag && rxl.tag !== \"latest\") {\n result += \":\" + rxl.tag;\n }\n return result;\n}\nfunction looksLikeRegistry(str) {\n if (str.includes(\":\") && !str.includes(\"/\")) {\n return true;\n }\n if (str.includes(\".\")) {\n return true;\n }\n if (str === \"localhost\") {\n return true;\n }\n return false;\n}\nfunction parse(locator) {\n if (!locator || typeof locator !== \"string\") {\n throw new LocatorError(\"Locator must be a non-empty string\", locator);\n }\n if (locator.includes(\"@\")) {\n throw new LocatorError(\"Invalid locator format. Use name:tag instead of name@version\", locator);\n }\n const lastSlashIndex = locator.lastIndexOf(\"/\");\n let beforeSlash = \"\";\n let afterSlash = locator;\n if (lastSlashIndex !== -1) {\n beforeSlash = locator.substring(0, lastSlashIndex);\n afterSlash = locator.substring(lastSlashIndex + 1);\n }\n const colonIndex = afterSlash.lastIndexOf(\":\");\n let name;\n let tag;\n if (colonIndex === -1) {\n name = afterSlash;\n tag = \"latest\";\n } else {\n name = afterSlash.substring(0, colonIndex);\n tag = afterSlash.substring(colonIndex + 1);\n }\n if (!name) {\n throw new LocatorError(\"Name is required\", locator);\n }\n if (!tag) {\n throw new LocatorError(\"Tag cannot be empty. Use name:tag format or omit tag for :latest\", locator);\n }\n if (lastSlashIndex === -1) {\n return {\n registry: undefined,\n path: undefined,\n name,\n tag\n };\n }\n const parts = beforeSlash.split(\"/\");\n if (looksLikeRegistry(parts[0])) {\n const registry = parts[0];\n const path = parts.length > 1 ? parts.slice(1).join(\"/\") : undefined;\n return {\n registry,\n path,\n name,\n tag\n };\n }\n return {\n registry: undefined,\n path: beforeSlash,\n name,\n tag\n };\n}\n\nclass RXAImpl2 {\n _buffer;\n constructor(buffer) {\n this._buffer = buffer;\n }\n get stream() {\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 async buffer() {\n return this._buffer;\n }\n}\nfunction wrap(buffer) {\n return new RXAImpl2(buffer);\n}\n\n// src/errors.ts\nclass RegistryError extends ResourceXError {\n constructor(message, options) {\n super(message, options);\n this.name = \"RegistryError\";\n }\n}\n\n// src/registries/LocalRegistry.ts\nclass LocalRegistry {\n storage;\n constructor(storage) {\n this.storage = storage;\n }\n buildKeyPrefix(rxl) {\n const tag = rxl.tag ?? \"latest\";\n let key = rxl.name;\n if (rxl.path) {\n key = `${rxl.path}/${key}`;\n }\n key += `/${tag}`;\n return key;\n }\n async get(rxl) {\n const prefix = this.buildKeyPrefix(rxl);\n const manifestKey = `${prefix}/manifest.json`;\n const archiveKey = `${prefix}/archive.tar.gz`;\n let manifestData;\n try {\n manifestData = await this.storage.get(manifestKey);\n } catch {\n throw new RegistryError(`Resource not found: ${format(rxl)}`);\n }\n const manifestJson = JSON.parse(manifestData.toString(\"utf-8\"));\n const rxm = {\n registry: manifestJson.registry,\n path: manifestJson.path,\n name: manifestJson.name,\n type: manifestJson.type,\n tag: manifestJson.tag,\n files: manifestJson.files\n };\n const archiveData = await this.storage.get(archiveKey);\n const rxa = wrap(archiveData);\n return resource(rxm, rxa);\n }\n async put(rxr) {\n const prefix = this.buildKeyPrefix(rxr.locator);\n const manifestKey = `${prefix}/manifest.json`;\n const archiveKey = `${prefix}/archive.tar.gz`;\n const manifestJson = {\n registry: rxr.manifest.registry,\n path: rxr.manifest.path,\n name: rxr.manifest.name,\n type: rxr.manifest.type,\n tag: rxr.manifest.tag,\n files: rxr.manifest.files\n };\n const manifestData = Buffer.from(JSON.stringify(manifestJson, null, 2), \"utf-8\");\n await this.storage.put(manifestKey, manifestData);\n const archiveData = await rxr.archive.buffer();\n await this.storage.put(archiveKey, archiveData);\n }\n async has(rxl) {\n const prefix = this.buildKeyPrefix(rxl);\n const manifestKey = `${prefix}/manifest.json`;\n return this.storage.exists(manifestKey);\n }\n async remove(rxl) {\n const prefix = this.buildKeyPrefix(rxl);\n await this.storage.delete(prefix);\n }\n async list(options) {\n const { query, limit, offset = 0 } = options ?? {};\n const allKeys = await this.storage.list();\n const locators = [];\n for (const key of allKeys) {\n if (!key.endsWith(\"manifest.json\"))\n continue;\n const rxl = this.parseKeyToRXL(key);\n if (rxl) {\n locators.push(rxl);\n }\n }\n let filtered = locators;\n if (query) {\n const lowerQuery = query.toLowerCase();\n filtered = locators.filter((rxl) => {\n const searchText = `${rxl.path ?? \"\"} ${rxl.name}`.toLowerCase();\n return searchText.includes(lowerQuery);\n });\n }\n let result = filtered.slice(offset);\n if (limit !== undefined) {\n result = result.slice(0, limit);\n }\n return result;\n }\n parseKeyToRXL(key) {\n const dirPath = key.replace(/\\/manifest\\.json$/, \"\");\n const parts = dirPath.split(\"/\");\n if (parts.length < 2) {\n return null;\n }\n const tag = parts.pop();\n const name = parts.pop();\n const path = parts.length > 0 ? parts.join(\"/\") : undefined;\n let locatorStr = \"\";\n if (path)\n locatorStr += `${path}/`;\n locatorStr += name;\n if (tag !== \"latest\")\n locatorStr += `:${tag}`;\n try {\n return parse(locatorStr);\n } catch {\n return null;\n }\n }\n}\n// src/registries/MirrorRegistry.ts\nclass MirrorRegistry {\n storage;\n constructor(storage) {\n this.storage = storage;\n }\n buildKeyPrefix(rxl) {\n const registry = rxl.registry ?? \"localhost\";\n const tag = rxl.tag ?? \"latest\";\n let key = registry;\n if (rxl.path) {\n key += `/${rxl.path}`;\n }\n key += `/${rxl.name}/${tag}`;\n return key;\n }\n async get(rxl) {\n const prefix = this.buildKeyPrefix(rxl);\n const manifestKey = `${prefix}/manifest.json`;\n const archiveKey = `${prefix}/archive.tar.gz`;\n let manifestData;\n try {\n manifestData = await this.storage.get(manifestKey);\n } catch {\n throw new RegistryError(`Resource not found in cache: ${format(rxl)}`);\n }\n const manifestJson = JSON.parse(manifestData.toString(\"utf-8\"));\n const rxm = {\n registry: manifestJson.registry,\n path: manifestJson.path,\n name: manifestJson.name,\n type: manifestJson.type,\n tag: manifestJson.tag,\n files: manifestJson.files\n };\n const archiveData = await this.storage.get(archiveKey);\n const rxa = wrap(archiveData);\n return resource(rxm, rxa);\n }\n async put(rxr) {\n const prefix = this.buildKeyPrefix(rxr.locator);\n const manifestKey = `${prefix}/manifest.json`;\n const archiveKey = `${prefix}/archive.tar.gz`;\n const manifestJson = {\n registry: rxr.manifest.registry,\n path: rxr.manifest.path,\n name: rxr.manifest.name,\n type: rxr.manifest.type,\n tag: rxr.manifest.tag,\n files: rxr.manifest.files\n };\n const manifestData = Buffer.from(JSON.stringify(manifestJson, null, 2), \"utf-8\");\n await this.storage.put(manifestKey, manifestData);\n const archiveData = await rxr.archive.buffer();\n await this.storage.put(archiveKey, archiveData);\n }\n async has(rxl) {\n const prefix = this.buildKeyPrefix(rxl);\n const manifestKey = `${prefix}/manifest.json`;\n return this.storage.exists(manifestKey);\n }\n async remove(rxl) {\n const prefix = this.buildKeyPrefix(rxl);\n await this.storage.delete(prefix);\n }\n async list(options) {\n const { query, limit, offset = 0 } = options ?? {};\n const allKeys = await this.storage.list();\n const locators = [];\n for (const key of allKeys) {\n if (!key.endsWith(\"manifest.json\"))\n continue;\n const rxl = this.parseKeyToRXL(key);\n if (rxl) {\n locators.push(rxl);\n }\n }\n let filtered = locators;\n if (query) {\n const lowerQuery = query.toLowerCase();\n filtered = locators.filter((rxl) => {\n const searchText = `${rxl.registry ?? \"\"} ${rxl.path ?? \"\"} ${rxl.name}`.toLowerCase();\n return searchText.includes(lowerQuery);\n });\n }\n let result = filtered.slice(offset);\n if (limit !== undefined) {\n result = result.slice(0, limit);\n }\n return result;\n }\n async clear(registry) {\n if (registry) {\n await this.storage.delete(registry);\n } else {\n const allKeys = await this.storage.list();\n const registries = new Set;\n for (const key of allKeys) {\n const firstSlash = key.indexOf(\"/\");\n if (firstSlash !== -1) {\n registries.add(key.substring(0, firstSlash));\n } else {\n registries.add(key);\n }\n }\n for (const r of registries) {\n await this.storage.delete(r);\n }\n }\n }\n parseKeyToRXL(key) {\n const dirPath = key.replace(/\\/manifest\\.json$/, \"\");\n const parts = dirPath.split(\"/\");\n if (parts.length < 3) {\n return null;\n }\n const tag = parts.pop();\n const name = parts.pop();\n const registry = parts.shift();\n const path = parts.length > 0 ? parts.join(\"/\") : undefined;\n let locatorStr = registry;\n if (path)\n locatorStr += `/${path}`;\n locatorStr += `/${name}`;\n if (tag !== \"latest\")\n locatorStr += `:${tag}`;\n try {\n return parse(locatorStr);\n } catch {\n return null;\n }\n }\n}\n// src/registries/LinkedRegistry.ts\nimport { join as join2, resolve as resolvePath } from \"node:path\";\nimport { symlink, lstat, readlink, rm, mkdir, readdir as readdir2 } from \"node:fs/promises\";\n\n// ../loader/dist/index.js\nimport { join, relative } from \"node:path\";\nimport { stat, readFile, readdir } from \"node:fs/promises\";\nimport { gzip as gzip2 } from \"node:zlib\";\nimport { promisify as promisify3 } from \"node:util\";\nimport { gunzip as gunzip2 } from \"node:zlib\";\nimport { promisify as promisify22 } from \"node:util\";\n\nclass ResourceXError2 extends Error {\n constructor(message, options) {\n super(message, options);\n this.name = \"ResourceXError\";\n }\n}\n\nclass DefinitionError extends ResourceXError2 {\n constructor(message) {\n super(message);\n this.name = \"DefinitionError\";\n }\n}\nfunction define(input) {\n if (input === null || typeof input !== \"object\") {\n throw new DefinitionError(\"definition must be an object\");\n }\n const obj = input;\n if (!obj.name || typeof obj.name !== \"string\") {\n throw new DefinitionError(\"name is required\");\n }\n if (!obj.type || typeof obj.type !== \"string\") {\n throw new DefinitionError(\"type is required\");\n }\n const tagValue = obj.tag ?? obj.version;\n if (tagValue !== undefined && typeof tagValue !== \"string\") {\n throw new DefinitionError(\"tag must be a string\");\n }\n const rxd = {\n ...obj,\n name: obj.name,\n type: obj.type,\n tag: typeof tagValue === \"string\" ? tagValue : undefined,\n registry: typeof obj.registry === \"string\" ? obj.registry : undefined,\n path: typeof obj.path === \"string\" ? obj.path : undefined,\n description: typeof obj.description === \"string\" ? obj.description : undefined,\n author: typeof obj.author === \"string\" ? obj.author : undefined,\n license: typeof obj.license === \"string\" ? obj.license : undefined,\n keywords: Array.isArray(obj.keywords) ? obj.keywords : undefined,\n repository: typeof obj.repository === \"string\" ? obj.repository : undefined\n };\n return rxd;\n}\nfunction manifest(rxd) {\n return {\n registry: rxd.registry,\n path: rxd.path,\n name: rxd.name,\n type: rxd.type,\n tag: rxd.tag ?? \"latest\"\n };\n}\nvar BLOCK_SIZE2 = 512;\nvar BLOCK_SIZE_MASK = 511;\nvar DEFAULT_FILE_MODE = 420;\nvar DEFAULT_DIR_MODE = 493;\nvar USTAR_NAME_OFFSET = 0;\nvar USTAR_NAME_SIZE = 100;\nvar USTAR_MODE_OFFSET = 100;\nvar USTAR_MODE_SIZE = 8;\nvar USTAR_UID_OFFSET = 108;\nvar USTAR_UID_SIZE = 8;\nvar USTAR_GID_OFFSET = 116;\nvar USTAR_GID_SIZE = 8;\nvar USTAR_SIZE_OFFSET = 124;\nvar USTAR_SIZE_SIZE = 12;\nvar USTAR_MTIME_OFFSET = 136;\nvar USTAR_MTIME_SIZE = 12;\nvar USTAR_CHECKSUM_OFFSET = 148;\nvar USTAR_CHECKSUM_SIZE = 8;\nvar USTAR_TYPEFLAG_OFFSET = 156;\nvar USTAR_TYPEFLAG_SIZE = 1;\nvar USTAR_LINKNAME_OFFSET = 157;\nvar USTAR_LINKNAME_SIZE = 100;\nvar USTAR_MAGIC_OFFSET = 257;\nvar USTAR_MAGIC_SIZE = 6;\nvar USTAR_VERSION_OFFSET = 263;\nvar USTAR_VERSION_SIZE = 2;\nvar USTAR_UNAME_OFFSET = 265;\nvar USTAR_UNAME_SIZE = 32;\nvar USTAR_GNAME_OFFSET = 297;\nvar USTAR_GNAME_SIZE = 32;\nvar USTAR_PREFIX_OFFSET = 345;\nvar USTAR_PREFIX_SIZE = 155;\nvar USTAR_VERSION = \"00\";\nvar USTAR_MAX_UID_GID = 2097151;\nvar USTAR_MAX_SIZE = 8589934591;\nvar FILE = \"file\";\nvar LINK = \"link\";\nvar SYMLINK = \"symlink\";\nvar DIRECTORY = \"directory\";\nvar TYPEFLAG = {\n file: \"0\",\n link: \"1\",\n symlink: \"2\",\n \"character-device\": \"3\",\n \"block-device\": \"4\",\n directory: \"5\",\n fifo: \"6\",\n \"pax-header\": \"x\",\n \"pax-global-header\": \"g\",\n \"gnu-long-name\": \"L\",\n \"gnu-long-link-name\": \"K\"\n};\nvar ZERO_BLOCK2 = new Uint8Array(BLOCK_SIZE2);\nvar EMPTY2 = new Uint8Array(0);\nvar encoder2 = new TextEncoder;\nvar decoder2 = new TextDecoder;\nfunction writeString(view, offset, size, value) {\n if (value)\n encoder2.encodeInto(value, view.subarray(offset, offset + size));\n}\nfunction writeOctal(view, offset, size, value) {\n if (value === undefined)\n return;\n const octalString = value.toString(8).padStart(size - 1, \"0\");\n encoder2.encodeInto(octalString, view.subarray(offset, offset + size - 1));\n}\nvar isBodyless = (header) => header.type === DIRECTORY || header.type === SYMLINK || header.type === LINK;\nasync function normalizeBody(body) {\n if (body === null || body === undefined)\n return EMPTY2;\n if (body instanceof Uint8Array)\n return body;\n if (typeof body === \"string\")\n return encoder2.encode(body);\n if (body instanceof ArrayBuffer)\n return new Uint8Array(body);\n if (body instanceof Blob)\n return new Uint8Array(await body.arrayBuffer());\n throw new TypeError(\"Unsupported content type for entry body.\");\n}\nvar CHECKSUM_SPACE = 32;\nvar ASCII_ZERO = 48;\nfunction writeChecksum(block) {\n block.fill(CHECKSUM_SPACE, USTAR_CHECKSUM_OFFSET, USTAR_CHECKSUM_OFFSET + USTAR_CHECKSUM_SIZE);\n let checksum = 0;\n for (const byte of block)\n checksum += byte;\n for (let i = USTAR_CHECKSUM_OFFSET + 6 - 1;i >= USTAR_CHECKSUM_OFFSET; i--) {\n block[i] = (checksum & 7) + ASCII_ZERO;\n checksum >>= 3;\n }\n block[USTAR_CHECKSUM_OFFSET + 6] = 0;\n block[USTAR_CHECKSUM_OFFSET + 7] = CHECKSUM_SPACE;\n}\nfunction generatePax(header) {\n const paxRecords = {};\n if (header.name.length > USTAR_NAME_SIZE) {\n if (findUstarSplit(header.name) === null)\n paxRecords.path = header.name;\n }\n if (header.linkname && header.linkname.length > USTAR_NAME_SIZE)\n paxRecords.linkpath = header.linkname;\n if (header.uname && header.uname.length > USTAR_UNAME_SIZE)\n paxRecords.uname = header.uname;\n if (header.gname && header.gname.length > USTAR_GNAME_SIZE)\n paxRecords.gname = header.gname;\n if (header.uid != null && header.uid > USTAR_MAX_UID_GID)\n paxRecords.uid = String(header.uid);\n if (header.gid != null && header.gid > USTAR_MAX_UID_GID)\n paxRecords.gid = String(header.gid);\n if (header.size != null && header.size > USTAR_MAX_SIZE)\n paxRecords.size = String(header.size);\n if (header.pax)\n Object.assign(paxRecords, header.pax);\n const paxEntries = Object.entries(paxRecords);\n if (paxEntries.length === 0)\n return null;\n const paxBody = encoder2.encode(paxEntries.map(([key, value]) => {\n const record = `${key}=${value}\n`;\n const partLength = encoder2.encode(record).length + 1;\n let totalLength = partLength + String(partLength).length;\n totalLength = partLength + String(totalLength).length;\n return `${totalLength} ${record}`;\n }).join(\"\"));\n return {\n paxHeader: createTarHeader({\n name: decoder2.decode(encoder2.encode(`PaxHeader/${header.name}`).slice(0, 100)),\n size: paxBody.length,\n type: \"pax-header\",\n mode: 420,\n mtime: header.mtime,\n uname: header.uname,\n gname: header.gname,\n uid: header.uid,\n gid: header.gid\n }),\n paxBody\n };\n}\nfunction findUstarSplit(path) {\n if (path.length <= USTAR_NAME_SIZE)\n return null;\n const minSlashIndex = path.length - USTAR_NAME_SIZE - 1;\n const slashIndex = path.lastIndexOf(\"/\", USTAR_PREFIX_SIZE);\n if (slashIndex > 0 && slashIndex >= minSlashIndex)\n return {\n prefix: path.slice(0, slashIndex),\n name: path.slice(slashIndex + 1)\n };\n return null;\n}\nfunction createTarHeader(header) {\n const view = new Uint8Array(BLOCK_SIZE2);\n const size = isBodyless(header) ? 0 : header.size ?? 0;\n let name = header.name;\n let prefix = \"\";\n if (!header.pax?.path) {\n const split = findUstarSplit(name);\n if (split) {\n name = split.name;\n prefix = split.prefix;\n }\n }\n writeString(view, USTAR_NAME_OFFSET, USTAR_NAME_SIZE, name);\n writeOctal(view, USTAR_MODE_OFFSET, USTAR_MODE_SIZE, header.mode ?? (header.type === DIRECTORY ? DEFAULT_DIR_MODE : DEFAULT_FILE_MODE));\n writeOctal(view, USTAR_UID_OFFSET, USTAR_UID_SIZE, header.uid ?? 0);\n writeOctal(view, USTAR_GID_OFFSET, USTAR_GID_SIZE, header.gid ?? 0);\n writeOctal(view, USTAR_SIZE_OFFSET, USTAR_SIZE_SIZE, size);\n writeOctal(view, USTAR_MTIME_OFFSET, USTAR_MTIME_SIZE, Math.floor((header.mtime?.getTime() ?? Date.now()) / 1000));\n writeString(view, USTAR_TYPEFLAG_OFFSET, USTAR_TYPEFLAG_SIZE, TYPEFLAG[header.type ?? FILE]);\n writeString(view, USTAR_LINKNAME_OFFSET, USTAR_LINKNAME_SIZE, header.linkname);\n writeString(view, USTAR_MAGIC_OFFSET, USTAR_MAGIC_SIZE, \"ustar\\x00\");\n writeString(view, USTAR_VERSION_OFFSET, USTAR_VERSION_SIZE, USTAR_VERSION);\n writeString(view, USTAR_UNAME_OFFSET, USTAR_UNAME_SIZE, header.uname);\n writeString(view, USTAR_GNAME_OFFSET, USTAR_GNAME_SIZE, header.gname);\n writeString(view, USTAR_PREFIX_OFFSET, USTAR_PREFIX_SIZE, prefix);\n writeChecksum(view);\n return view;\n}\nfunction getHeaderBlocks(header) {\n const base = createTarHeader(header);\n const pax = generatePax(header);\n if (!pax)\n return [base];\n const paxPadding = -pax.paxBody.length & BLOCK_SIZE_MASK;\n const paddingBlocks = paxPadding > 0 ? [ZERO_BLOCK2.subarray(0, paxPadding)] : [];\n return [\n pax.paxHeader,\n pax.paxBody,\n ...paddingBlocks,\n base\n ];\n}\nvar EOF_BUFFER2 = new Uint8Array(BLOCK_SIZE2 * 2);\nfunction createTarPacker(onData, onError, onFinalize) {\n let currentHeader = null;\n let bytesWritten = 0;\n let finalized = false;\n return {\n add(header) {\n if (finalized) {\n const error = /* @__PURE__ */ new Error(\"No new tar entries after finalize.\");\n onError(error);\n throw error;\n }\n if (currentHeader !== null) {\n const error = /* @__PURE__ */ new Error(\"Previous entry must be completed before adding a new one\");\n onError(error);\n throw error;\n }\n try {\n const size = isBodyless(header) ? 0 : header.size ?? 0;\n const headerBlocks = getHeaderBlocks({\n ...header,\n size\n });\n for (const block of headerBlocks)\n onData(block);\n currentHeader = {\n ...header,\n size\n };\n bytesWritten = 0;\n } catch (error) {\n onError(error);\n }\n },\n write(chunk) {\n if (!currentHeader) {\n const error = /* @__PURE__ */ new Error(\"No active tar entry.\");\n onError(error);\n throw error;\n }\n if (finalized) {\n const error = /* @__PURE__ */ new Error(\"Cannot write data after finalize.\");\n onError(error);\n throw error;\n }\n const newTotal = bytesWritten + chunk.length;\n if (newTotal > currentHeader.size) {\n const error = /* @__PURE__ */ new Error(`\"${currentHeader.name}\" exceeds given size of ${currentHeader.size} bytes.`);\n onError(error);\n throw error;\n }\n try {\n bytesWritten = newTotal;\n onData(chunk);\n } catch (error) {\n onError(error);\n }\n },\n endEntry() {\n if (!currentHeader) {\n const error = /* @__PURE__ */ new Error(\"No active entry to end.\");\n onError(error);\n throw error;\n }\n if (finalized) {\n const error = /* @__PURE__ */ new Error(\"Cannot end entry after finalize.\");\n onError(error);\n throw error;\n }\n try {\n if (bytesWritten !== currentHeader.size) {\n const error = /* @__PURE__ */ new Error(`Size mismatch for \"${currentHeader.name}\".`);\n onError(error);\n throw error;\n }\n const paddingSize = -currentHeader.size & BLOCK_SIZE_MASK;\n if (paddingSize > 0)\n onData(new Uint8Array(paddingSize));\n currentHeader = null;\n bytesWritten = 0;\n } catch (error) {\n onError(error);\n throw error;\n }\n },\n finalize() {\n if (finalized) {\n const error = /* @__PURE__ */ new Error(\"Archive has already been finalized\");\n onError(error);\n throw error;\n }\n if (currentHeader !== null) {\n const error = /* @__PURE__ */ new Error(\"Cannot finalize while an entry is still active\");\n onError(error);\n throw error;\n }\n try {\n onData(EOF_BUFFER2);\n finalized = true;\n if (onFinalize)\n onFinalize();\n } catch (error) {\n onError(error);\n }\n }\n };\n}\nfunction createTarPacker2() {\n let streamController;\n let packer;\n return {\n readable: new ReadableStream({ start(controller) {\n streamController = controller;\n packer = createTarPacker(controller.enqueue.bind(controller), controller.error.bind(controller), controller.close.bind(controller));\n } }),\n controller: {\n add(header) {\n const bodyless = isBodyless(header);\n const h = { ...header };\n if (bodyless)\n h.size = 0;\n packer.add(h);\n if (bodyless)\n packer.endEntry();\n return new WritableStream({\n write(chunk) {\n packer.write(chunk);\n },\n close() {\n if (!bodyless)\n packer.endEntry();\n },\n abort(reason) {\n streamController.error(reason);\n }\n });\n },\n finalize() {\n packer.finalize();\n },\n error(err) {\n streamController.error(err);\n }\n }\n };\n}\nasync function streamToBuffer(stream) {\n const chunks = [];\n const reader = stream.getReader();\n let totalLength = 0;\n try {\n while (true) {\n const { done, value } = await reader.read();\n if (done)\n break;\n chunks.push(value);\n totalLength += value.length;\n }\n const result = new Uint8Array(totalLength);\n let offset = 0;\n for (const chunk of chunks) {\n result.set(chunk, offset);\n offset += chunk.length;\n }\n return result;\n } finally {\n reader.releaseLock();\n }\n}\nasync function packTar(entries) {\n const { readable, controller } = createTarPacker2();\n await (async () => {\n for (const entry of entries) {\n const entryStream = controller.add(entry.header);\n const body = \"body\" in entry ? entry.body : entry.data;\n if (!body) {\n await entryStream.close();\n continue;\n }\n if (body instanceof ReadableStream)\n await body.pipeTo(entryStream);\n else if (body instanceof Blob)\n await body.stream().pipeTo(entryStream);\n else\n try {\n const chunk = await normalizeBody(body);\n if (chunk.length > 0) {\n const writer = entryStream.getWriter();\n await writer.write(chunk);\n await writer.close();\n } else\n await entryStream.close();\n } catch {\n throw new TypeError(`Unsupported content type for entry \"${entry.header.name}\".`);\n }\n }\n })().then(() => controller.finalize()).catch((err) => controller.error(err));\n return new Uint8Array(await streamToBuffer(readable));\n}\nvar gzipAsync2 = promisify3(gzip2);\n\nclass RXAImpl {\n _buffer;\n constructor(buffer) {\n this._buffer = buffer;\n }\n get stream() {\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 async buffer() {\n return this._buffer;\n }\n}\nasync function archive(files) {\n const entries = Object.entries(files).map(([name, content]) => {\n return {\n header: { name, size: content.length, type: \"file\" },\n body: new Uint8Array(content)\n };\n });\n const tarBuffer = await packTar(entries);\n const gzipBuffer = await gzipAsync2(Buffer.from(tarBuffer));\n return new RXAImpl(gzipBuffer);\n}\nfunction locate2(rxm) {\n return {\n registry: rxm.registry,\n path: rxm.path,\n name: rxm.name,\n tag: rxm.tag\n };\n}\nfunction resource2(rxm, rxa) {\n const rxl = locate2(rxm);\n return {\n locator: rxl,\n manifest: rxm,\n archive: rxa\n };\n}\nvar gunzipAsync2 = promisify22(gunzip2);\n\nclass FolderLoader {\n async canLoad(source) {\n try {\n const stats = await stat(source);\n if (!stats.isDirectory()) {\n return false;\n }\n const manifestPath = join(source, \"resource.json\");\n const manifestStats = await stat(manifestPath);\n return manifestStats.isFile();\n } catch {\n return false;\n }\n }\n async load(folderPath) {\n const resourceJsonPath = join(folderPath, \"resource.json\");\n let resourceJson;\n try {\n resourceJson = await readFile(resourceJsonPath, \"utf-8\");\n } catch (error) {\n throw new ResourceXError2(`Failed to read resource.json: ${error instanceof Error ? error.message : String(error)}`);\n }\n let json;\n try {\n json = JSON.parse(resourceJson);\n } catch (error) {\n throw new ResourceXError2(`Invalid JSON in resource.json: ${error instanceof Error ? error.message : String(error)}`);\n }\n const rxd = define(json);\n const files = await this.readFolderFiles(folderPath);\n if (Object.keys(files).length === 0) {\n throw new ResourceXError2(\"No content files found in resource folder\");\n }\n const rxm = manifest(rxd);\n const rxa = await archive(files);\n return resource2(rxm, rxa);\n }\n async readFolderFiles(folderPath, basePath = folderPath) {\n const files = {};\n const entries = await readdir(folderPath, { withFileTypes: true });\n for (const entry of entries) {\n const fullPath = join(folderPath, entry.name);\n const relativePath = relative(basePath, fullPath);\n if (relativePath === \"resource.json\") {\n continue;\n }\n if (entry.isFile()) {\n files[relativePath] = await readFile(fullPath);\n } else if (entry.isDirectory()) {\n const subFiles = await this.readFolderFiles(fullPath, basePath);\n Object.assign(files, subFiles);\n }\n }\n return files;\n }\n}\nasync function loadResource(source, config) {\n const loader = config?.loader ?? new FolderLoader;\n const canLoad = await loader.canLoad(source);\n if (!canLoad) {\n throw new ResourceXError2(`Cannot load resource from: ${source}`);\n }\n return loader.load(source);\n}\n\n// src/registries/LinkedRegistry.ts\nclass LinkedRegistry {\n basePath;\n constructor(basePath) {\n this.basePath = basePath;\n }\n buildLinkPath(rxl) {\n const registry = rxl.registry ?? \"localhost\";\n const tag = rxl.tag ?? \"latest\";\n let linkPath = join2(this.basePath, registry);\n if (rxl.path) {\n linkPath = join2(linkPath, rxl.path);\n }\n return join2(linkPath, rxl.name, tag);\n }\n async isSymlink(path) {\n try {\n const stats = await lstat(path);\n return stats.isSymbolicLink();\n } catch {\n return false;\n }\n }\n async get(rxl) {\n const linkPath = this.buildLinkPath(rxl);\n if (!await this.isSymlink(linkPath)) {\n throw new RegistryError(`Linked resource not found: ${format(rxl)}`);\n }\n const targetPath = await readlink(linkPath);\n return loadResource(targetPath);\n }\n async put(_rxr) {\n throw new RegistryError(\"LinkedRegistry does not support put(). Use link() instead.\");\n }\n async has(rxl) {\n const linkPath = this.buildLinkPath(rxl);\n return this.isSymlink(linkPath);\n }\n async remove(rxl) {\n const linkPath = this.buildLinkPath(rxl);\n if (await this.isSymlink(linkPath)) {\n await rm(linkPath);\n }\n }\n async list(options) {\n const { query, limit, offset = 0 } = options ?? {};\n const locators = [];\n try {\n await this.scanSymlinks(this.basePath, \"\", locators);\n } catch {\n return [];\n }\n let filtered = locators;\n if (query) {\n const lowerQuery = query.toLowerCase();\n filtered = locators.filter((rxl) => {\n const searchText = `${rxl.registry ?? \"\"} ${rxl.path ?? \"\"} ${rxl.name}`.toLowerCase();\n return searchText.includes(lowerQuery);\n });\n }\n let result = filtered.slice(offset);\n if (limit !== undefined) {\n result = result.slice(0, limit);\n }\n return result;\n }\n async link(devPath) {\n const rxr = await loadResource(devPath);\n const linkPath = this.buildLinkPath(rxr.locator);\n try {\n const stats = await lstat(linkPath);\n if (stats.isSymbolicLink() || stats.isDirectory()) {\n await rm(linkPath, { recursive: true });\n }\n } catch {}\n const parentPath = join2(linkPath, \"..\");\n await mkdir(parentPath, { recursive: true });\n const absolutePath = resolvePath(devPath);\n await symlink(absolutePath, linkPath);\n return rxr.locator;\n }\n async unlink(rxl) {\n return this.remove(rxl);\n }\n async scanSymlinks(dirPath, relativePath, locators) {\n let entries;\n try {\n entries = await readdir2(dirPath);\n } catch {\n return;\n }\n for (const entry of entries) {\n const fullPath = join2(dirPath, entry);\n const relPath = relativePath ? `${relativePath}/${entry}` : entry;\n try {\n const stats = await lstat(fullPath);\n if (stats.isSymbolicLink()) {\n const rxl = this.parsePathToRXL(relPath);\n if (rxl) {\n locators.push(rxl);\n }\n } else if (stats.isDirectory()) {\n await this.scanSymlinks(fullPath, relPath, locators);\n }\n } catch {}\n }\n }\n parsePathToRXL(relPath) {\n const parts = relPath.split(\"/\");\n if (parts.length < 3) {\n return null;\n }\n const tag = parts.pop();\n const name = parts.pop();\n const registry = parts.shift();\n const path = parts.length > 0 ? parts.join(\"/\") : undefined;\n let locatorStr = registry;\n if (path)\n locatorStr += `/${path}`;\n locatorStr += `/${name}`;\n if (tag !== \"latest\")\n locatorStr += `:${tag}`;\n try {\n return parse(locatorStr);\n } catch {\n return null;\n }\n }\n}\n// src/chain/RegistryAccessChain.ts\nclass RegistryAccessChain {\n accessors;\n memCache = new Map;\n useMemCache;\n constructor(accessors, options) {\n this.accessors = accessors;\n this.useMemCache = options?.memCache ?? false;\n }\n async get(rxl) {\n const key = format(rxl);\n if (this.useMemCache && this.memCache.has(key)) {\n return this.memCache.get(key);\n }\n for (const accessor of this.accessors) {\n if (await accessor.canHandle(rxl)) {\n const rxr = await accessor.get(rxl);\n if (this.useMemCache && accessor.name !== \"linked\") {\n this.memCache.set(key, rxr);\n }\n return rxr;\n }\n }\n throw new RegistryError(`Resource not found: ${key}`);\n }\n async has(rxl) {\n const key = format(rxl);\n if (this.useMemCache && this.memCache.has(key)) {\n return true;\n }\n for (const accessor of this.accessors) {\n if (await accessor.canHandle(rxl)) {\n return true;\n }\n }\n return false;\n }\n clearCache() {\n this.memCache.clear();\n }\n invalidate(rxl) {\n this.memCache.delete(format(rxl));\n }\n}\n// src/chain/LinkedAccessor.ts\nclass LinkedAccessor {\n registry;\n name = \"linked\";\n constructor(registry) {\n this.registry = registry;\n }\n async canHandle(rxl) {\n return this.registry.has(rxl);\n }\n async get(rxl) {\n return this.registry.get(rxl);\n }\n}\n// src/chain/LocalAccessor.ts\nclass LocalAccessor {\n registry;\n name = \"local\";\n constructor(registry) {\n this.registry = registry;\n }\n async canHandle(rxl) {\n if (rxl.registry) {\n return false;\n }\n return this.registry.has(rxl);\n }\n async get(rxl) {\n return this.registry.get(rxl);\n }\n}\n// src/chain/CacheAccessor.ts\nclass CacheAccessor {\n registry;\n name = \"cache\";\n constructor(registry) {\n this.registry = registry;\n }\n async canHandle(rxl) {\n if (!rxl.registry) {\n return false;\n }\n return this.registry.has(rxl);\n }\n async get(rxl) {\n return this.registry.get(rxl);\n }\n}\n// src/chain/RemoteAccessor.ts\nclass RemoteAccessor {\n fetcher;\n cache;\n name = \"remote\";\n constructor(fetcher, cache) {\n this.fetcher = fetcher;\n this.cache = cache;\n }\n async canHandle(rxl) {\n return !!rxl.registry;\n }\n async get(rxl) {\n const rxr = await this.fetcher.fetch(rxl);\n await this.cache.put(rxr);\n return rxr;\n }\n}\n// src/discovery.ts\nasync function discoverRegistry(domain) {\n const wellKnownUrl = `https://${domain}/.well-known/resourcex`;\n try {\n const response = await fetch(wellKnownUrl);\n if (!response.ok) {\n throw new RegistryError(`Well-known discovery failed for ${domain}: ${response.statusText}`);\n }\n const data = await response.json();\n if (!data.registries || !Array.isArray(data.registries) || data.registries.length === 0) {\n throw new RegistryError(`Invalid well-known response for ${domain}: missing or empty registries`);\n }\n return {\n domain,\n registries: data.registries\n };\n } catch (error) {\n if (error instanceof RegistryError) {\n throw error;\n }\n throw new RegistryError(`Failed to discover registry for ${domain}: ${error.message}`);\n }\n}\n// src/middleware/RegistryMiddleware.ts\nclass RegistryMiddleware {\n inner;\n constructor(inner) {\n this.inner = inner;\n }\n get(rxl) {\n return this.inner.get(rxl);\n }\n put(rxr) {\n return this.inner.put(rxr);\n }\n has(rxl) {\n return this.inner.has(rxl);\n }\n remove(rxl) {\n return this.inner.remove(rxl);\n }\n list(options) {\n return this.inner.list(options);\n }\n}\n// src/middleware/DomainValidation.ts\nclass RegistryValidation extends RegistryMiddleware {\n trustedRegistry;\n constructor(inner, trustedRegistry) {\n super(inner);\n this.trustedRegistry = trustedRegistry;\n }\n validateRegistry(rxr) {\n if (rxr.manifest.registry !== this.trustedRegistry) {\n throw new RegistryError(`Untrusted registry: resource claims \"${rxr.manifest.registry}\" but registry only trusts \"${this.trustedRegistry}\"`);\n }\n }\n async get(rxl) {\n const rxr = await this.inner.get(rxl);\n this.validateRegistry(rxr);\n return rxr;\n }\n}\nfunction withRegistryValidation(registry, trustedRegistry) {\n return new RegistryValidation(registry, trustedRegistry);\n}\nvar DomainValidation = RegistryValidation;\nvar withDomainValidation = withRegistryValidation;\nexport {\n withDomainValidation,\n discoverRegistry,\n RemoteAccessor,\n RegistryMiddleware,\n RegistryError,\n RegistryAccessChain,\n MirrorRegistry,\n LocalRegistry,\n LocalAccessor,\n LinkedRegistry,\n LinkedAccessor,\n DomainValidation,\n CacheAccessor\n};\n\n//# debugId=94E483D2C901ABA364756E2164756E21\n",
10
10
  "/**\n * ARP (Agent Resource Protocol) - Enhanced for ResourceX\n *\n * This module provides an enhanced version of ARP that includes the RXR transport\n * for accessing files inside ResourceX resources.\n *\n * @example\n * ```typescript\n * import { createARP } from \"resourcexjs/arp\";\n *\n * // createARP() automatically includes rxr transport\n * const arp = createARP();\n *\n * // Access a file inside a resource\n * const arl = arp.parse(\"arp:text:rxr://localhost/my-prompt.text@1.0.0/content\");\n * const resource = await arl.resolve();\n * ```\n *\n * For the base ARP without ResourceX integration, use @resourcexjs/arp directly.\n */\n\nimport { ARP, createARP as createBaseARP, type ARPConfig } from \"@resourcexjs/arp\";\n\nimport { RxrTransport } from \"./transport/rxr.js\";\n\n/**\n * Create an ARP instance with ResourceX integration.\n *\n * This enhanced version automatically registers the RXR transport,\n * which allows accessing files inside ResourceX resources.\n *\n * Default transports: file, http, https, rxr\n * Default semantics: text, binary\n *\n * @example\n * ```typescript\n * const arp = createARP();\n *\n * // Use rxr transport to access resource internals\n * const arl = arp.parse(\"arp:text:rxr://localhost/my-prompt.text@1.0.0/content\");\n * const resource = await arl.resolve();\n * ```\n */\nexport function createARP(config?: ARPConfig): ARP {\n const arp = createBaseARP(config);\n\n // Only auto-register RxrTransport if not already provided in config\n const hasRxrTransport = config?.transports?.some((t) => t.name === \"rxr\");\n if (!hasRxrTransport) {\n arp.registerTransport(new RxrTransport());\n }\n\n return arp;\n}\n\n// Re-export everything from @resourcexjs/arp except createARP\nexport { ARP, type ARPConfig } from \"@resourcexjs/arp\";\nexport { VERSION } from \"@resourcexjs/arp\";\nexport { ARPError, ParseError, TransportError, SemanticError } from \"@resourcexjs/arp\";\n\n// Transport (excluding RxrTransport which is now from local)\nexport {\n type TransportHandler,\n type TransportResult,\n type TransportParams,\n FileTransportHandler,\n fileTransport,\n HttpTransportHandler,\n httpsTransport,\n httpTransport,\n} from \"@resourcexjs/arp\";\n\n// Semantic\nexport {\n type Resource,\n type SemanticHandler,\n type ResourceMeta,\n type SemanticContext,\n type TextResource,\n type BinaryResource,\n type BinaryInput,\n TextSemanticHandler,\n textSemantic,\n BinarySemanticHandler,\n binarySemantic,\n} from \"@resourcexjs/arp\";\n\n// Types\nexport type { ARI, ARL } from \"@resourcexjs/arp\";\n\n// RxrTransport from local (ResourceX-specific)\nexport { RxrTransport, clearRegistryCache } from \"./transport/rxr.js\";\n"
11
11
  ],
12
12
  "mappings": "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",
13
- "debugId": "BB09A0C4B2633AE064756E2164756E21",
13
+ "debugId": "CCFD861F9ACAE11964756E2164756E21",
14
14
  "names": []
15
15
  }
package/dist/index.js CHANGED
@@ -19057,7 +19057,7 @@ function createResourceX2(config2) {
19057
19057
 
19058
19058
  // src/index.ts
19059
19059
  init_dist();
19060
- var VERSION = "2.5.2";
19060
+ var VERSION = "2.5.4";
19061
19061
  export {
19062
19062
  wrap,
19063
19063
  resource,
@@ -19073,4 +19073,4 @@ export {
19073
19073
  RegistryError
19074
19074
  };
19075
19075
 
19076
- //# debugId=D7A402F2FA14E9CA64756E2164756E21
19076
+ //# debugId=2A3A34F59231AA1164756E2164756E21