@resourcexjs/type 2.2.0 → 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +98 -31
- package/dist/index.js.map +4 -4
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -1059,9 +1059,81 @@ async function unpackTar(archive, options = {}) {
|
|
|
1059
1059
|
var gzipAsync = promisify(gzip);
|
|
1060
1060
|
var gunzipAsync = promisify(gunzip);
|
|
1061
1061
|
|
|
1062
|
-
class
|
|
1062
|
+
class RXPImpl {
|
|
1063
|
+
_files;
|
|
1064
|
+
_pathsCache = null;
|
|
1065
|
+
_treeCache = null;
|
|
1066
|
+
constructor(files) {
|
|
1067
|
+
this._files = files;
|
|
1068
|
+
}
|
|
1069
|
+
paths() {
|
|
1070
|
+
if (this._pathsCache) {
|
|
1071
|
+
return this._pathsCache;
|
|
1072
|
+
}
|
|
1073
|
+
this._pathsCache = Array.from(this._files.keys()).sort();
|
|
1074
|
+
return this._pathsCache;
|
|
1075
|
+
}
|
|
1076
|
+
tree() {
|
|
1077
|
+
if (this._treeCache) {
|
|
1078
|
+
return this._treeCache;
|
|
1079
|
+
}
|
|
1080
|
+
const root = new Map;
|
|
1081
|
+
for (const path of this._files.keys()) {
|
|
1082
|
+
const parts = path.split("/");
|
|
1083
|
+
let currentLevel = root;
|
|
1084
|
+
for (let i = 0;i < parts.length; i++) {
|
|
1085
|
+
const part = parts[i];
|
|
1086
|
+
const isFile = i === parts.length - 1;
|
|
1087
|
+
if (!currentLevel.has(part)) {
|
|
1088
|
+
const treeNode2 = {
|
|
1089
|
+
node: {
|
|
1090
|
+
name: part,
|
|
1091
|
+
type: isFile ? "file" : "directory",
|
|
1092
|
+
children: isFile ? undefined : []
|
|
1093
|
+
},
|
|
1094
|
+
children: new Map
|
|
1095
|
+
};
|
|
1096
|
+
currentLevel.set(part, treeNode2);
|
|
1097
|
+
}
|
|
1098
|
+
const treeNode = currentLevel.get(part);
|
|
1099
|
+
if (!isFile) {
|
|
1100
|
+
currentLevel = treeNode.children;
|
|
1101
|
+
}
|
|
1102
|
+
}
|
|
1103
|
+
}
|
|
1104
|
+
const convertToPathNodes = (level) => {
|
|
1105
|
+
return Array.from(level.values()).map((treeNode) => {
|
|
1106
|
+
if (treeNode.node.type === "directory" && treeNode.children.size > 0) {
|
|
1107
|
+
treeNode.node.children = convertToPathNodes(treeNode.children);
|
|
1108
|
+
}
|
|
1109
|
+
return treeNode.node;
|
|
1110
|
+
});
|
|
1111
|
+
};
|
|
1112
|
+
this._treeCache = convertToPathNodes(root);
|
|
1113
|
+
return this._treeCache;
|
|
1114
|
+
}
|
|
1115
|
+
async file(path) {
|
|
1116
|
+
const content = this._files.get(path);
|
|
1117
|
+
if (!content) {
|
|
1118
|
+
throw new ContentError(`file not found: ${path}`);
|
|
1119
|
+
}
|
|
1120
|
+
return content;
|
|
1121
|
+
}
|
|
1122
|
+
async files() {
|
|
1123
|
+
return new Map(this._files);
|
|
1124
|
+
}
|
|
1125
|
+
async pack() {
|
|
1126
|
+
const filesRecord = {};
|
|
1127
|
+
for (const [path, content] of this._files) {
|
|
1128
|
+
filesRecord[path] = content;
|
|
1129
|
+
}
|
|
1130
|
+
return createRXA(filesRecord);
|
|
1131
|
+
}
|
|
1132
|
+
}
|
|
1133
|
+
|
|
1134
|
+
class RXAImpl {
|
|
1063
1135
|
_buffer;
|
|
1064
|
-
|
|
1136
|
+
_rxpCache = null;
|
|
1065
1137
|
constructor(buffer) {
|
|
1066
1138
|
this._buffer = buffer;
|
|
1067
1139
|
}
|
|
@@ -1077,17 +1149,9 @@ class RXCImpl {
|
|
|
1077
1149
|
async buffer() {
|
|
1078
1150
|
return this._buffer;
|
|
1079
1151
|
}
|
|
1080
|
-
async
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
if (!content) {
|
|
1084
|
-
throw new ContentError(`file not found: ${path}`);
|
|
1085
|
-
}
|
|
1086
|
-
return content;
|
|
1087
|
-
}
|
|
1088
|
-
async files() {
|
|
1089
|
-
if (this._filesCache) {
|
|
1090
|
-
return this._filesCache;
|
|
1152
|
+
async extract() {
|
|
1153
|
+
if (this._rxpCache) {
|
|
1154
|
+
return this._rxpCache;
|
|
1091
1155
|
}
|
|
1092
1156
|
const tarBuffer = await gunzipAsync(this._buffer);
|
|
1093
1157
|
const entries = await unpackTar(tarBuffer);
|
|
@@ -1097,16 +1161,16 @@ class RXCImpl {
|
|
|
1097
1161
|
filesMap.set(entry.header.name, Buffer.from(entry.data));
|
|
1098
1162
|
}
|
|
1099
1163
|
}
|
|
1100
|
-
this.
|
|
1101
|
-
return
|
|
1164
|
+
this._rxpCache = new RXPImpl(filesMap);
|
|
1165
|
+
return this._rxpCache;
|
|
1102
1166
|
}
|
|
1103
1167
|
}
|
|
1104
|
-
function
|
|
1105
|
-
return "
|
|
1168
|
+
function isBufferInput(input) {
|
|
1169
|
+
return "buffer" in input && Buffer.isBuffer(input.buffer);
|
|
1106
1170
|
}
|
|
1107
|
-
async function
|
|
1108
|
-
if (
|
|
1109
|
-
return new
|
|
1171
|
+
async function createRXA(input) {
|
|
1172
|
+
if (isBufferInput(input)) {
|
|
1173
|
+
return new RXAImpl(input.buffer);
|
|
1110
1174
|
}
|
|
1111
1175
|
const entries = Object.entries(input).map(([name, content]) => {
|
|
1112
1176
|
const body = typeof content === "string" ? content : content instanceof Uint8Array ? content : new Uint8Array(content);
|
|
@@ -1118,7 +1182,7 @@ async function createRXC(input) {
|
|
|
1118
1182
|
});
|
|
1119
1183
|
const tarBuffer = await packTar(entries);
|
|
1120
1184
|
const gzipBuffer = await gzipAsync(Buffer.from(tarBuffer));
|
|
1121
|
-
return new
|
|
1185
|
+
return new RXAImpl(gzipBuffer);
|
|
1122
1186
|
}
|
|
1123
1187
|
|
|
1124
1188
|
// src/errors.ts
|
|
@@ -1131,13 +1195,13 @@ class ResourceTypeError extends ResourceXError {
|
|
|
1131
1195
|
// src/builtinTypes.ts
|
|
1132
1196
|
var textSerializer = {
|
|
1133
1197
|
async serialize(rxr) {
|
|
1134
|
-
return rxr.
|
|
1198
|
+
return rxr.archive.buffer();
|
|
1135
1199
|
},
|
|
1136
1200
|
async deserialize(data, manifest) {
|
|
1137
1201
|
return {
|
|
1138
1202
|
locator: parseRXL(manifest.toLocator()),
|
|
1139
1203
|
manifest,
|
|
1140
|
-
|
|
1204
|
+
archive: await createRXA({ buffer: data })
|
|
1141
1205
|
};
|
|
1142
1206
|
}
|
|
1143
1207
|
};
|
|
@@ -1148,7 +1212,8 @@ var textResolver = {
|
|
|
1148
1212
|
resource: rxr,
|
|
1149
1213
|
schema: undefined,
|
|
1150
1214
|
execute: async () => {
|
|
1151
|
-
const
|
|
1215
|
+
const pkg = await rxr.archive.extract();
|
|
1216
|
+
const buffer = await pkg.file("content");
|
|
1152
1217
|
return buffer.toString("utf-8");
|
|
1153
1218
|
}
|
|
1154
1219
|
};
|
|
@@ -1163,13 +1228,13 @@ var textType = {
|
|
|
1163
1228
|
};
|
|
1164
1229
|
var jsonSerializer = {
|
|
1165
1230
|
async serialize(rxr) {
|
|
1166
|
-
return rxr.
|
|
1231
|
+
return rxr.archive.buffer();
|
|
1167
1232
|
},
|
|
1168
1233
|
async deserialize(data, manifest) {
|
|
1169
1234
|
return {
|
|
1170
1235
|
locator: parseRXL(manifest.toLocator()),
|
|
1171
1236
|
manifest,
|
|
1172
|
-
|
|
1237
|
+
archive: await createRXA({ buffer: data })
|
|
1173
1238
|
};
|
|
1174
1239
|
}
|
|
1175
1240
|
};
|
|
@@ -1180,7 +1245,8 @@ var jsonResolver = {
|
|
|
1180
1245
|
resource: rxr,
|
|
1181
1246
|
schema: undefined,
|
|
1182
1247
|
execute: async () => {
|
|
1183
|
-
const
|
|
1248
|
+
const pkg = await rxr.archive.extract();
|
|
1249
|
+
const buffer = await pkg.file("content");
|
|
1184
1250
|
return JSON.parse(buffer.toString("utf-8"));
|
|
1185
1251
|
}
|
|
1186
1252
|
};
|
|
@@ -1195,13 +1261,13 @@ var jsonType = {
|
|
|
1195
1261
|
};
|
|
1196
1262
|
var binarySerializer = {
|
|
1197
1263
|
async serialize(rxr) {
|
|
1198
|
-
return rxr.
|
|
1264
|
+
return rxr.archive.buffer();
|
|
1199
1265
|
},
|
|
1200
1266
|
async deserialize(data, manifest) {
|
|
1201
1267
|
return {
|
|
1202
1268
|
locator: parseRXL(manifest.toLocator()),
|
|
1203
1269
|
manifest,
|
|
1204
|
-
|
|
1270
|
+
archive: await createRXA({ buffer: data })
|
|
1205
1271
|
};
|
|
1206
1272
|
}
|
|
1207
1273
|
};
|
|
@@ -1212,7 +1278,8 @@ var binaryResolver = {
|
|
|
1212
1278
|
resource: rxr,
|
|
1213
1279
|
schema: undefined,
|
|
1214
1280
|
execute: async () => {
|
|
1215
|
-
|
|
1281
|
+
const pkg = await rxr.archive.extract();
|
|
1282
|
+
return pkg.file("content");
|
|
1216
1283
|
}
|
|
1217
1284
|
};
|
|
1218
1285
|
}
|
|
@@ -1307,4 +1374,4 @@ export {
|
|
|
1307
1374
|
ResourceTypeError
|
|
1308
1375
|
};
|
|
1309
1376
|
|
|
1310
|
-
//# debugId=
|
|
1377
|
+
//# debugId=B5634954AD5377ED64756E2164756E21
|
package/dist/index.js.map
CHANGED
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../core/dist/index.js", "../src/errors.ts", "../src/builtinTypes.ts", "../src/TypeHandlerChain.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
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// src/locator/parseRXL.ts\nclass RXLImpl {\n domain;\n path;\n name;\n type;\n version;\n constructor(parts) {\n this.domain = parts.domain;\n this.path = parts.path;\n this.name = parts.name;\n this.type = parts.type;\n this.version = parts.version;\n }\n toString() {\n let result = \"\";\n if (this.domain) {\n result += this.domain + \"/\";\n if (this.path) {\n result += this.path + \"/\";\n }\n }\n result += this.name;\n if (this.type) {\n result += \".\" + this.type;\n }\n if (this.version) {\n result += \"@\" + this.version;\n }\n return result;\n }\n}\nfunction isDomain(str) {\n if (str === \"localhost\")\n return true;\n return str.includes(\".\");\n}\nfunction parseRXL(locator) {\n let remaining = locator;\n let version;\n let type;\n let domain;\n let path;\n let name;\n const atIndex = remaining.indexOf(\"@\");\n if (atIndex !== -1) {\n version = remaining.slice(atIndex + 1);\n remaining = remaining.slice(0, atIndex);\n }\n const segments = remaining.split(\"/\");\n if (segments.length > 1 && isDomain(segments[0])) {\n domain = segments[0];\n const lastSegment = segments[segments.length - 1];\n if (segments.length > 2) {\n path = segments.slice(1, -1).join(\"/\");\n }\n remaining = lastSegment;\n } else {\n remaining = segments.join(\"/\");\n }\n const dotIndex = remaining.lastIndexOf(\".\");\n if (dotIndex !== -1) {\n type = remaining.slice(dotIndex + 1);\n name = remaining.slice(0, dotIndex);\n } else {\n name = remaining;\n }\n return new RXLImpl({ domain, path, name, type, version });\n}\n// src/manifest/createRXM.ts\nclass RXMImpl {\n domain;\n path;\n name;\n type;\n version;\n constructor(data) {\n this.domain = data.domain;\n this.path = data.path;\n this.name = data.name;\n this.type = data.type;\n this.version = data.version;\n }\n toLocator() {\n let result = this.domain + \"/\";\n if (this.path) {\n result += this.path + \"/\";\n }\n result += this.name;\n result += \".\" + this.type;\n result += \"@\" + this.version;\n return result;\n }\n toJSON() {\n const json = {\n domain: this.domain,\n name: this.name,\n type: this.type,\n version: this.version\n };\n if (this.path !== undefined) {\n json.path = this.path;\n }\n return json;\n }\n}\nfunction createRXM(data) {\n if (!data.domain) {\n throw new ManifestError(\"domain is required\");\n }\n if (!data.name) {\n throw new ManifestError(\"name is required\");\n }\n if (!data.type) {\n throw new ManifestError(\"type is required\");\n }\n if (!data.version) {\n throw new ManifestError(\"version is required\");\n }\n return new RXMImpl({\n domain: data.domain,\n path: data.path,\n name: data.name,\n type: data.type,\n version: data.version\n });\n}\n// src/content/createRXC.ts\nimport { gzip, gunzip } 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/content/createRXC.ts\nvar gzipAsync = promisify(gzip);\nvar gunzipAsync = promisify(gunzip);\n\nclass RXCImpl {\n _buffer;\n _filesCache = null;\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 async file(path) {\n const filesMap = await this.files();\n const content = filesMap.get(path);\n if (!content) {\n throw new ContentError(`file not found: ${path}`);\n }\n return content;\n }\n async files() {\n if (this._filesCache) {\n return this._filesCache;\n }\n const tarBuffer = await gunzipAsync(this._buffer);\n const entries = await unpackTar(tarBuffer);\n const filesMap = new Map;\n for (const entry of entries) {\n if ((entry.header.type === \"file\" || entry.header.type === undefined) && entry.data) {\n filesMap.set(entry.header.name, Buffer.from(entry.data));\n }\n }\n this._filesCache = filesMap;\n return filesMap;\n }\n}\nfunction isArchiveInput(input) {\n return \"archive\" in input && Buffer.isBuffer(input.archive);\n}\nasync function createRXC(input) {\n if (isArchiveInput(input)) {\n return new RXCImpl(input.archive);\n }\n const entries = Object.entries(input).map(([name, content]) => {\n const body = typeof content === \"string\" ? content : content instanceof Uint8Array ? content : new Uint8Array(content);\n const size = typeof content === \"string\" ? Buffer.byteLength(content) : content.length;\n return {\n header: { name, size, type: \"file\" },\n body\n };\n });\n const tarBuffer = await packTar(entries);\n const gzipBuffer = await gzipAsync(Buffer.from(tarBuffer));\n return new RXCImpl(gzipBuffer);\n}\nexport {\n parseRXL,\n createRXM,\n createRXC,\n ResourceXError,\n ManifestError,\n LocatorError,\n ContentError\n};\n\n//# debugId=3D46BAF324E7BC5864756E2164756E21\n",
|
|
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// src/locator/parseRXL.ts\nclass RXLImpl {\n domain;\n path;\n name;\n type;\n version;\n constructor(parts) {\n this.domain = parts.domain;\n this.path = parts.path;\n this.name = parts.name;\n this.type = parts.type;\n this.version = parts.version;\n }\n toString() {\n let result = \"\";\n if (this.domain) {\n result += this.domain + \"/\";\n if (this.path) {\n result += this.path + \"/\";\n }\n }\n result += this.name;\n if (this.type) {\n result += \".\" + this.type;\n }\n if (this.version) {\n result += \"@\" + this.version;\n }\n return result;\n }\n}\nfunction isDomain(str) {\n if (str === \"localhost\")\n return true;\n return str.includes(\".\");\n}\nfunction parseRXL(locator) {\n let remaining = locator;\n let version;\n let type;\n let domain;\n let path;\n let name;\n const atIndex = remaining.indexOf(\"@\");\n if (atIndex !== -1) {\n version = remaining.slice(atIndex + 1);\n remaining = remaining.slice(0, atIndex);\n }\n const segments = remaining.split(\"/\");\n if (segments.length > 1 && isDomain(segments[0])) {\n domain = segments[0];\n const lastSegment = segments[segments.length - 1];\n if (segments.length > 2) {\n path = segments.slice(1, -1).join(\"/\");\n }\n remaining = lastSegment;\n } else {\n remaining = segments.join(\"/\");\n }\n const dotIndex = remaining.lastIndexOf(\".\");\n if (dotIndex !== -1) {\n type = remaining.slice(dotIndex + 1);\n name = remaining.slice(0, dotIndex);\n } else {\n name = remaining;\n }\n return new RXLImpl({ domain, path, name, type, version });\n}\n// src/manifest/createRXM.ts\nclass RXMImpl {\n domain;\n path;\n name;\n type;\n version;\n constructor(data) {\n this.domain = data.domain;\n this.path = data.path;\n this.name = data.name;\n this.type = data.type;\n this.version = data.version;\n }\n toLocator() {\n let result = this.domain + \"/\";\n if (this.path) {\n result += this.path + \"/\";\n }\n result += this.name;\n result += \".\" + this.type;\n result += \"@\" + this.version;\n return result;\n }\n toJSON() {\n const json = {\n domain: this.domain,\n name: this.name,\n type: this.type,\n version: this.version\n };\n if (this.path !== undefined) {\n json.path = this.path;\n }\n return json;\n }\n}\nfunction createRXM(data) {\n if (!data.domain) {\n throw new ManifestError(\"domain is required\");\n }\n if (!data.name) {\n throw new ManifestError(\"name is required\");\n }\n if (!data.type) {\n throw new ManifestError(\"type is required\");\n }\n if (!data.version) {\n throw new ManifestError(\"version is required\");\n }\n return new RXMImpl({\n domain: data.domain,\n path: data.path,\n name: data.name,\n type: data.type,\n version: data.version\n });\n}\n// src/archive/createRXA.ts\nimport { gzip, gunzip } 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/archive/createRXA.ts\nvar gzipAsync = promisify(gzip);\nvar gunzipAsync = promisify(gunzip);\n\nclass RXPImpl {\n _files;\n _pathsCache = null;\n _treeCache = null;\n constructor(files) {\n this._files = files;\n }\n paths() {\n if (this._pathsCache) {\n return this._pathsCache;\n }\n this._pathsCache = Array.from(this._files.keys()).sort();\n return this._pathsCache;\n }\n tree() {\n if (this._treeCache) {\n return this._treeCache;\n }\n const root = new Map;\n for (const path of this._files.keys()) {\n const parts = path.split(\"/\");\n let currentLevel = root;\n for (let i = 0;i < parts.length; i++) {\n const part = parts[i];\n const isFile = i === parts.length - 1;\n if (!currentLevel.has(part)) {\n const treeNode2 = {\n node: {\n name: part,\n type: isFile ? \"file\" : \"directory\",\n children: isFile ? undefined : []\n },\n children: new Map\n };\n currentLevel.set(part, treeNode2);\n }\n const treeNode = currentLevel.get(part);\n if (!isFile) {\n currentLevel = treeNode.children;\n }\n }\n }\n const convertToPathNodes = (level) => {\n return Array.from(level.values()).map((treeNode) => {\n if (treeNode.node.type === \"directory\" && treeNode.children.size > 0) {\n treeNode.node.children = convertToPathNodes(treeNode.children);\n }\n return treeNode.node;\n });\n };\n this._treeCache = convertToPathNodes(root);\n return this._treeCache;\n }\n async file(path) {\n const content = this._files.get(path);\n if (!content) {\n throw new ContentError(`file not found: ${path}`);\n }\n return content;\n }\n async files() {\n return new Map(this._files);\n }\n async pack() {\n const filesRecord = {};\n for (const [path, content] of this._files) {\n filesRecord[path] = content;\n }\n return createRXA(filesRecord);\n }\n}\n\nclass RXAImpl {\n _buffer;\n _rxpCache = null;\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 async extract() {\n if (this._rxpCache) {\n return this._rxpCache;\n }\n const tarBuffer = await gunzipAsync(this._buffer);\n const entries = await unpackTar(tarBuffer);\n const filesMap = new Map;\n for (const entry of entries) {\n if ((entry.header.type === \"file\" || entry.header.type === undefined) && entry.data) {\n filesMap.set(entry.header.name, Buffer.from(entry.data));\n }\n }\n this._rxpCache = new RXPImpl(filesMap);\n return this._rxpCache;\n }\n}\nfunction isBufferInput(input) {\n return \"buffer\" in input && Buffer.isBuffer(input.buffer);\n}\nasync function createRXA(input) {\n if (isBufferInput(input)) {\n return new RXAImpl(input.buffer);\n }\n const entries = Object.entries(input).map(([name, content]) => {\n const body = typeof content === \"string\" ? content : content instanceof Uint8Array ? content : new Uint8Array(content);\n const size = typeof content === \"string\" ? Buffer.byteLength(content) : content.length;\n return {\n header: { name, size, type: \"file\" },\n body\n };\n });\n const tarBuffer = await packTar(entries);\n const gzipBuffer = await gzipAsync(Buffer.from(tarBuffer));\n return new RXAImpl(gzipBuffer);\n}\nexport {\n parseRXL,\n createRXM,\n createRXA,\n ResourceXError,\n ManifestError,\n LocatorError,\n ContentError\n};\n\n//# debugId=AFABB314B72836D164756E2164756E21\n",
|
|
6
6
|
"import { ResourceXError } from \"@resourcexjs/core\";\n\n/**\n * Resource type related error.\n */\nexport class ResourceTypeError extends ResourceXError {\n constructor(message: string) {\n super(message);\n this.name = \"ResourceTypeError\";\n }\n}\n",
|
|
7
|
-
"import type {\n ResourceType,\n ResourceSerializer,\n ResourceResolver,\n ResolvedResource,\n} from \"./types.js\";\nimport type { RXR, RXM } from \"@resourcexjs/core\";\nimport {
|
|
7
|
+
"import type {\n ResourceType,\n ResourceSerializer,\n ResourceResolver,\n ResolvedResource,\n} from \"./types.js\";\nimport type { RXR, RXM } from \"@resourcexjs/core\";\nimport { createRXA, parseRXL } from \"@resourcexjs/core\";\n\n/**\n * Text serializer - stores RXA archive as-is\n */\nconst textSerializer: ResourceSerializer = {\n async serialize(rxr: RXR): Promise<Buffer> {\n return rxr.archive.buffer();\n },\n\n async deserialize(data: Buffer, manifest: RXM): Promise<RXR> {\n return {\n locator: parseRXL(manifest.toLocator()),\n manifest,\n archive: await createRXA({ buffer: data }),\n };\n },\n};\n\n/**\n * Text resolver - returns structured result with execute function (lazy)\n */\nconst textResolver: ResourceResolver<void, string> = {\n schema: undefined,\n async resolve(rxr: RXR): Promise<ResolvedResource<void, string>> {\n return {\n resource: rxr,\n schema: undefined,\n execute: async () => {\n const pkg = await rxr.archive.extract();\n const buffer = await pkg.file(\"content\");\n return buffer.toString(\"utf-8\");\n },\n };\n },\n};\n\n/**\n * Text resource type\n */\nexport const textType: ResourceType<void, string> = {\n name: \"text\",\n aliases: [\"txt\", \"plaintext\"],\n description: \"Plain text content\",\n serializer: textSerializer,\n resolver: textResolver,\n};\n\n/**\n * JSON serializer - stores RXA archive as-is\n */\nconst jsonSerializer: ResourceSerializer = {\n async serialize(rxr: RXR): Promise<Buffer> {\n return rxr.archive.buffer();\n },\n\n async deserialize(data: Buffer, manifest: RXM): Promise<RXR> {\n return {\n locator: parseRXL(manifest.toLocator()),\n manifest,\n archive: await createRXA({ buffer: data }),\n };\n },\n};\n\n/**\n * JSON resolver - returns structured result with execute function (lazy)\n */\nconst jsonResolver: ResourceResolver<void, unknown> = {\n schema: undefined,\n async resolve(rxr: RXR): Promise<ResolvedResource<void, unknown>> {\n return {\n resource: rxr,\n schema: undefined,\n execute: async () => {\n const pkg = await rxr.archive.extract();\n const buffer = await pkg.file(\"content\");\n return JSON.parse(buffer.toString(\"utf-8\"));\n },\n };\n },\n};\n\n/**\n * JSON resource type\n */\nexport const jsonType: ResourceType<void, unknown> = {\n name: \"json\",\n aliases: [\"config\", \"manifest\"],\n description: \"JSON content\",\n serializer: jsonSerializer,\n resolver: jsonResolver,\n};\n\n/**\n * Binary serializer - stores RXA archive as-is\n */\nconst binarySerializer: ResourceSerializer = {\n async serialize(rxr: RXR): Promise<Buffer> {\n return rxr.archive.buffer();\n },\n\n async deserialize(data: Buffer, manifest: RXM): Promise<RXR> {\n return {\n locator: parseRXL(manifest.toLocator()),\n manifest,\n archive: await createRXA({ buffer: data }),\n };\n },\n};\n\n/**\n * Binary resolver - returns structured result with execute function (lazy)\n */\nconst binaryResolver: ResourceResolver<void, Buffer> = {\n schema: undefined,\n async resolve(rxr: RXR): Promise<ResolvedResource<void, Buffer>> {\n return {\n resource: rxr,\n schema: undefined,\n execute: async () => {\n const pkg = await rxr.archive.extract();\n return pkg.file(\"content\");\n },\n };\n },\n};\n\n/**\n * Binary resource type\n */\nexport const binaryType: ResourceType<void, Buffer> = {\n name: \"binary\",\n aliases: [\"bin\", \"blob\", \"raw\"],\n description: \"Binary content\",\n serializer: binarySerializer,\n resolver: binaryResolver,\n};\n\n/**\n * All built-in types\n */\nexport const builtinTypes: ResourceType<void, unknown>[] = [textType, jsonType, binaryType];\n",
|
|
8
8
|
"import type { ResourceType, ResolvedResource } from \"./types.js\";\nimport type { RXR, RXM } from \"@resourcexjs/core\";\nimport { ResourceTypeError } from \"./errors.js\";\nimport { builtinTypes } from \"./builtinTypes.js\";\n\n/**\n * TypeHandlerChain - Manages type registration and delegates serialization/deserialization.\n * Use TypeHandlerChain.create() to create a new instance.\n */\nexport class TypeHandlerChain {\n private handlers: Map<string, ResourceType> = new Map();\n\n private constructor() {\n // Auto-register builtin types\n for (const type of builtinTypes) {\n this.registerBuiltin(type);\n }\n }\n\n /**\n * Create a new TypeHandlerChain instance.\n * Each instance includes all builtin types (text, json, binary).\n */\n static create(): TypeHandlerChain {\n return new TypeHandlerChain();\n }\n\n /**\n * Register a builtin type (private, called during initialization).\n */\n private registerBuiltin(type: ResourceType): void {\n this.handlers.set(type.name, type);\n if (type.aliases) {\n for (const alias of type.aliases) {\n this.handlers.set(alias, type);\n }\n }\n }\n\n /**\n * Register an extension type (public, for user-defined types).\n * @throws ResourceTypeError if type is already registered\n */\n register(type: ResourceType): void {\n if (this.handlers.has(type.name)) {\n throw new ResourceTypeError(`Type '${type.name}' is already registered`);\n }\n this.handlers.set(type.name, type);\n if (type.aliases) {\n for (const alias of type.aliases) {\n if (this.handlers.has(alias)) {\n throw new ResourceTypeError(`Alias '${alias}' conflicts with existing type or alias`);\n }\n this.handlers.set(alias, type);\n }\n }\n }\n\n /**\n * Check if a type is supported.\n */\n canHandle(typeName: string): boolean {\n return this.handlers.has(typeName);\n }\n\n /**\n * Get handler for a type.\n */\n getHandler(typeName: string): ResourceType | undefined {\n return this.handlers.get(typeName);\n }\n\n /**\n * Get all supported type names (including aliases).\n */\n getSupportedTypes(): string[] {\n return Array.from(this.handlers.keys());\n }\n\n /**\n * Serialize RXR content using the appropriate type handler.\n * @throws ResourceTypeError if type is not supported\n */\n async serialize(rxr: RXR): Promise<Buffer> {\n const typeName = rxr.manifest.type;\n const handler = this.handlers.get(typeName);\n\n if (!handler) {\n throw new ResourceTypeError(`Unsupported resource type: ${typeName}`);\n }\n\n return handler.serializer.serialize(rxr);\n }\n\n /**\n * Deserialize content into RXR using the appropriate type handler.\n * @throws ResourceTypeError if type is not supported\n */\n async deserialize(data: Buffer, manifest: RXM): Promise<RXR> {\n const typeName = manifest.type;\n const handler = this.handlers.get(typeName);\n\n if (!handler) {\n throw new ResourceTypeError(`Unsupported resource type: ${typeName}`);\n }\n\n return handler.serializer.deserialize(data, manifest);\n }\n\n /**\n * Resolve RXR content into structured result object using the appropriate type handler.\n * Returns an object with execute function and optional schema.\n * @throws ResourceTypeError if type is not supported\n */\n async resolve<TArgs = void, TResult = unknown>(\n rxr: RXR\n ): Promise<ResolvedResource<TArgs, TResult>> {\n const typeName = rxr.manifest.type;\n const handler = this.handlers.get(typeName);\n\n if (!handler) {\n throw new ResourceTypeError(`Unsupported resource type: ${typeName}`);\n }\n\n return handler.resolver.resolve(rxr) as Promise<ResolvedResource<TArgs, TResult>>;\n }\n\n /**\n * Clear all extension types (for testing).\n * Keeps builtin types intact.\n */\n clearExtensions(): void {\n this.handlers.clear();\n for (const type of builtinTypes) {\n this.registerBuiltin(type);\n }\n }\n}\n"
|
|
9
9
|
],
|
|
10
|
-
"mappings": "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",
|
|
11
|
-
"debugId": "
|
|
10
|
+
"mappings": "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",
|
|
11
|
+
"debugId": "B5634954AD5377ED64756E2164756E21",
|
|
12
12
|
"names": []
|
|
13
13
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@resourcexjs/type",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.3.0",
|
|
4
4
|
"description": "ResourceX Type System - Type handlers and serialization",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"resourcex",
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
"clean": "rm -rf dist"
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
|
-
"@resourcexjs/core": "^2.
|
|
41
|
+
"@resourcexjs/core": "^2.3.0"
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {},
|
|
44
44
|
"publishConfig": {
|