@resourcexjs/core 2.5.0 → 2.5.1
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/README.md +279 -178
- package/dist/index.d.ts +33 -10
- package/dist/index.js +71 -42
- package/dist/index.js.map +7 -7
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# @resourcexjs/core
|
|
2
2
|
|
|
3
|
-
Core
|
|
3
|
+
Core primitives and types for ResourceX - the resource management protocol for AI Agents.
|
|
4
4
|
|
|
5
|
-
> **Note**: For most use cases, use the main [`resourcexjs`](https://www.npmjs.com/package/resourcexjs) package. This package is for
|
|
5
|
+
> **Note**: For most use cases, use the main [`resourcexjs`](https://www.npmjs.com/package/resourcexjs) package. This package is for low-level operations.
|
|
6
6
|
|
|
7
7
|
## Installation
|
|
8
8
|
|
|
@@ -12,269 +12,370 @@ npm install @resourcexjs/core
|
|
|
12
12
|
bun add @resourcexjs/core
|
|
13
13
|
```
|
|
14
14
|
|
|
15
|
-
##
|
|
15
|
+
## Core Concepts
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
ResourceX uses a layered architecture with five core primitives:
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
19
|
+
| Primitive | Description |
|
|
20
|
+
| --------- | -------------------------------------------------------- |
|
|
21
|
+
| **RXD** | Resource Definition - content of `resource.json` |
|
|
22
|
+
| **RXL** | Resource Locator - unique identifier for a resource |
|
|
23
|
+
| **RXM** | Resource Manifest - metadata stored within the resource |
|
|
24
|
+
| **RXA** | Resource Archive - tar.gz container for storage/transfer |
|
|
25
|
+
| **RXR** | Resource - complete resource (RXL + RXM + RXA) |
|
|
26
|
+
|
|
27
|
+
### Locator Format
|
|
28
|
+
|
|
29
|
+
Docker-style format: `[registry/][path/]name[:tag]`
|
|
30
|
+
|
|
31
|
+
```
|
|
32
|
+
hello -> name=hello, tag=latest
|
|
33
|
+
hello:1.0.0 -> name=hello, tag=1.0.0
|
|
34
|
+
prompts/hello:stable -> path=prompts, name=hello, tag=stable
|
|
35
|
+
localhost:3098/hello:1.0.0 -> registry=localhost:3098, name=hello, tag=1.0.0
|
|
36
|
+
registry.example.com/org/hello -> registry=registry.example.com, path=org, name=hello, tag=latest
|
|
37
|
+
```
|
|
25
38
|
|
|
26
39
|
## API
|
|
27
40
|
|
|
28
|
-
###
|
|
41
|
+
### `parse(locator: string): RXL`
|
|
29
42
|
|
|
30
|
-
Parse
|
|
43
|
+
Parse a locator string into an RXL object.
|
|
31
44
|
|
|
32
45
|
```typescript
|
|
33
|
-
import {
|
|
46
|
+
import { parse } from "@resourcexjs/core";
|
|
47
|
+
|
|
48
|
+
const rxl = parse("registry.example.com/prompts/hello:1.0.0");
|
|
49
|
+
// {
|
|
50
|
+
// registry: "registry.example.com",
|
|
51
|
+
// path: "prompts",
|
|
52
|
+
// name: "hello",
|
|
53
|
+
// tag: "1.0.0"
|
|
54
|
+
// }
|
|
55
|
+
|
|
56
|
+
const simple = parse("hello");
|
|
57
|
+
// { registry: undefined, path: undefined, name: "hello", tag: "latest" }
|
|
58
|
+
```
|
|
34
59
|
|
|
35
|
-
|
|
60
|
+
### `format(rxl: RXL): string`
|
|
36
61
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
62
|
+
Format an RXL object back to a locator string.
|
|
63
|
+
|
|
64
|
+
```typescript
|
|
65
|
+
import { format } from "@resourcexjs/core";
|
|
66
|
+
|
|
67
|
+
format({ name: "hello", tag: "latest" });
|
|
68
|
+
// "hello"
|
|
69
|
+
|
|
70
|
+
format({ name: "hello", tag: "1.0.0" });
|
|
71
|
+
// "hello:1.0.0"
|
|
72
|
+
|
|
73
|
+
format({ registry: "localhost:3098", name: "hello", tag: "1.0.0" });
|
|
74
|
+
// "localhost:3098/hello:1.0.0"
|
|
43
75
|
```
|
|
44
76
|
|
|
45
|
-
|
|
77
|
+
### `define(input: unknown): RXD`
|
|
78
|
+
|
|
79
|
+
Parse and validate a resource definition (from `resource.json`).
|
|
46
80
|
|
|
47
81
|
```typescript
|
|
48
|
-
|
|
49
|
-
|
|
82
|
+
import { define } from "@resourcexjs/core";
|
|
83
|
+
|
|
84
|
+
const rxd = define({
|
|
85
|
+
name: "my-prompt",
|
|
86
|
+
type: "text",
|
|
87
|
+
tag: "1.0.0",
|
|
88
|
+
description: "A helpful prompt",
|
|
89
|
+
author: "Alice",
|
|
90
|
+
});
|
|
91
|
+
// {
|
|
92
|
+
// name: "my-prompt",
|
|
93
|
+
// type: "text",
|
|
94
|
+
// tag: "1.0.0",
|
|
95
|
+
// description: "A helpful prompt",
|
|
96
|
+
// author: "Alice"
|
|
97
|
+
// }
|
|
50
98
|
```
|
|
51
99
|
|
|
52
|
-
|
|
100
|
+
**Required fields**: `name`, `type`
|
|
101
|
+
|
|
102
|
+
**Optional fields**: `tag` (defaults to "latest"), `registry`, `path`, `description`, `author`, `license`, `keywords`, `repository`
|
|
103
|
+
|
|
104
|
+
> Note: `version` is accepted as an alias for `tag` for backward compatibility.
|
|
53
105
|
|
|
54
|
-
|
|
106
|
+
### `manifest(rxd: RXD): RXM`
|
|
107
|
+
|
|
108
|
+
Create a manifest from a definition. Extracts core metadata fields.
|
|
55
109
|
|
|
56
110
|
```typescript
|
|
57
|
-
import {
|
|
58
|
-
|
|
59
|
-
const
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
version: "1.0.0",
|
|
65
|
-
description: "Optional description", // optional
|
|
66
|
-
tags: ["optional", "tags"], // optional
|
|
111
|
+
import { define, manifest } from "@resourcexjs/core";
|
|
112
|
+
|
|
113
|
+
const rxd = define({
|
|
114
|
+
name: "my-prompt",
|
|
115
|
+
type: "text",
|
|
116
|
+
tag: "1.0.0",
|
|
117
|
+
description: "A helpful prompt", // not included in manifest
|
|
67
118
|
});
|
|
68
119
|
|
|
69
|
-
manifest
|
|
70
|
-
|
|
120
|
+
const rxm = manifest(rxd);
|
|
121
|
+
// { name: "my-prompt", type: "text", tag: "1.0.0" }
|
|
71
122
|
```
|
|
72
123
|
|
|
73
|
-
|
|
124
|
+
### `locate(rxm: RXM): RXL`
|
|
74
125
|
|
|
75
|
-
|
|
126
|
+
Create a locator from a manifest.
|
|
76
127
|
|
|
77
|
-
|
|
128
|
+
```typescript
|
|
129
|
+
import { locate } from "@resourcexjs/core";
|
|
130
|
+
|
|
131
|
+
const rxl = locate({
|
|
132
|
+
registry: "example.com",
|
|
133
|
+
path: "prompts",
|
|
134
|
+
name: "hello",
|
|
135
|
+
type: "text",
|
|
136
|
+
tag: "1.0.0",
|
|
137
|
+
});
|
|
138
|
+
// { registry: "example.com", path: "prompts", name: "hello", tag: "1.0.0" }
|
|
139
|
+
```
|
|
78
140
|
|
|
79
|
-
|
|
141
|
+
### `archive(files: Record<string, Buffer>): Promise<RXA>`
|
|
142
|
+
|
|
143
|
+
Create an archive from files. Output is in tar.gz format.
|
|
80
144
|
|
|
81
145
|
```typescript
|
|
82
|
-
import {
|
|
146
|
+
import { archive } from "@resourcexjs/core";
|
|
83
147
|
|
|
84
148
|
// Single file
|
|
85
|
-
const
|
|
149
|
+
const rxa = await archive({
|
|
150
|
+
content: Buffer.from("Hello, World!"),
|
|
151
|
+
});
|
|
86
152
|
|
|
87
153
|
// Multiple files
|
|
88
|
-
const
|
|
89
|
-
"
|
|
90
|
-
"
|
|
154
|
+
const rxa = await archive({
|
|
155
|
+
"prompt.md": Buffer.from("# System Prompt\nYou are..."),
|
|
156
|
+
"config.json": Buffer.from('{"temperature": 0.7}'),
|
|
91
157
|
});
|
|
92
158
|
|
|
93
159
|
// Nested directories
|
|
94
|
-
const
|
|
95
|
-
"src/index.ts": "main code",
|
|
96
|
-
"src/utils/helper.ts": "helper code",
|
|
160
|
+
const rxa = await archive({
|
|
161
|
+
"src/index.ts": Buffer.from("main code"),
|
|
162
|
+
"src/utils/helper.ts": Buffer.from("helper code"),
|
|
97
163
|
});
|
|
98
164
|
|
|
99
|
-
//
|
|
100
|
-
const
|
|
101
|
-
|
|
102
|
-
// Extract to package for file access
|
|
103
|
-
const pkg = await content.extract();
|
|
104
|
-
const buffer = await pkg.file("content"); // → Buffer
|
|
105
|
-
const buffer = await pkg.file("src/index.ts"); // → Buffer
|
|
106
|
-
const files = await pkg.files(); // → Map<string, Buffer>
|
|
107
|
-
const paths = pkg.paths(); // → string[]
|
|
108
|
-
const tree = pkg.tree(); // → PathNode[]
|
|
109
|
-
|
|
110
|
-
// Archive methods
|
|
111
|
-
const archiveBuffer = await content.buffer(); // → raw tar.gz Buffer
|
|
112
|
-
const stream = content.stream; // → ReadableStream (tar.gz)
|
|
165
|
+
// Access raw archive data
|
|
166
|
+
const buffer = await rxa.buffer(); // tar.gz Buffer
|
|
167
|
+
const stream = rxa.stream; // ReadableStream<Uint8Array>
|
|
113
168
|
```
|
|
114
169
|
|
|
115
|
-
###
|
|
170
|
+
### `extract(rxa: RXA): Promise<Record<string, Buffer>>`
|
|
116
171
|
|
|
117
|
-
|
|
172
|
+
Extract files from an archive.
|
|
118
173
|
|
|
119
174
|
```typescript
|
|
120
|
-
import
|
|
175
|
+
import { archive, extract } from "@resourcexjs/core";
|
|
121
176
|
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
}
|
|
177
|
+
const rxa = await archive({
|
|
178
|
+
"hello.txt": Buffer.from("Hello!"),
|
|
179
|
+
"world.txt": Buffer.from("World!"),
|
|
180
|
+
});
|
|
127
181
|
|
|
128
|
-
|
|
129
|
-
|
|
182
|
+
const files = await extract(rxa);
|
|
183
|
+
// {
|
|
184
|
+
// "hello.txt": Buffer<...>,
|
|
185
|
+
// "world.txt": Buffer<...>
|
|
186
|
+
// }
|
|
130
187
|
```
|
|
131
188
|
|
|
132
|
-
|
|
189
|
+
### `wrap(buffer: Buffer): RXA`
|
|
133
190
|
|
|
134
|
-
|
|
191
|
+
Wrap an existing tar.gz buffer as an RXA. Useful for deserializing archives.
|
|
135
192
|
|
|
136
193
|
```typescript
|
|
137
|
-
import {
|
|
194
|
+
import { wrap, extract } from "@resourcexjs/core";
|
|
138
195
|
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
} catch (error) {
|
|
142
|
-
if (error instanceof LocatorError) {
|
|
143
|
-
console.error("Invalid locator format");
|
|
144
|
-
}
|
|
145
|
-
}
|
|
196
|
+
// From storage or network
|
|
197
|
+
const tarGzBuffer = await fetchFromStorage();
|
|
146
198
|
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
} catch (error) {
|
|
150
|
-
if (error instanceof ManifestError) {
|
|
151
|
-
console.error("Invalid manifest");
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
try {
|
|
156
|
-
const pkg = await archive.extract();
|
|
157
|
-
await pkg.file("nonexistent");
|
|
158
|
-
} catch (error) {
|
|
159
|
-
if (error instanceof ContentError) {
|
|
160
|
-
console.error("File not found in archive");
|
|
161
|
-
}
|
|
162
|
-
}
|
|
199
|
+
const rxa = wrap(tarGzBuffer);
|
|
200
|
+
const files = await extract(rxa);
|
|
163
201
|
```
|
|
164
202
|
|
|
165
|
-
###
|
|
203
|
+
### `resource(rxm: RXM, rxa: RXA): RXR`
|
|
166
204
|
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
205
|
+
Create a complete resource from manifest and archive.
|
|
206
|
+
|
|
207
|
+
```typescript
|
|
208
|
+
import { define, manifest, archive, resource } from "@resourcexjs/core";
|
|
209
|
+
|
|
210
|
+
const rxd = define({ name: "hello", type: "text", tag: "1.0.0" });
|
|
211
|
+
const rxm = manifest(rxd);
|
|
212
|
+
const rxa = await archive({ content: Buffer.from("Hello!") });
|
|
213
|
+
const rxr = resource(rxm, rxa);
|
|
214
|
+
// {
|
|
215
|
+
// locator: { name: "hello", tag: "1.0.0" },
|
|
216
|
+
// manifest: { name: "hello", type: "text", tag: "1.0.0" },
|
|
217
|
+
// archive: RXA
|
|
218
|
+
// }
|
|
172
219
|
```
|
|
173
220
|
|
|
174
|
-
##
|
|
221
|
+
## Types
|
|
175
222
|
|
|
176
|
-
###
|
|
223
|
+
### RXD - Resource Definition
|
|
177
224
|
|
|
178
|
-
|
|
179
|
-
import { parseRXL, createRXM, createRXA } from "@resourcexjs/core";
|
|
180
|
-
import type { RXR } from "@resourcexjs/core";
|
|
225
|
+
The content of `resource.json` file. Contains all metadata for a resource in development.
|
|
181
226
|
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
227
|
+
```typescript
|
|
228
|
+
interface RXD {
|
|
229
|
+
readonly name: string; // Required
|
|
230
|
+
readonly type: string; // Required
|
|
231
|
+
readonly tag?: string; // Optional (defaults to "latest")
|
|
232
|
+
readonly registry?: string;
|
|
233
|
+
readonly path?: string;
|
|
234
|
+
readonly description?: string;
|
|
235
|
+
readonly author?: string;
|
|
236
|
+
readonly license?: string;
|
|
237
|
+
readonly keywords?: string[];
|
|
238
|
+
readonly repository?: string;
|
|
239
|
+
readonly [key: string]: unknown; // Additional fields allowed
|
|
240
|
+
}
|
|
241
|
+
```
|
|
189
242
|
|
|
190
|
-
|
|
191
|
-
const locator = parseRXL(manifest.toLocator());
|
|
243
|
+
### RXL - Resource Locator
|
|
192
244
|
|
|
193
|
-
|
|
194
|
-
const archive = await createRXA({ content: "You are a helpful assistant." });
|
|
245
|
+
Unique identifier for a resource.
|
|
195
246
|
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
247
|
+
```typescript
|
|
248
|
+
interface RXL {
|
|
249
|
+
readonly registry?: string; // e.g., "localhost:3098", "registry.example.com"
|
|
250
|
+
readonly path?: string; // e.g., "org", "prompts"
|
|
251
|
+
readonly name: string; // Resource name
|
|
252
|
+
readonly tag: string; // Tag (defaults to "latest")
|
|
253
|
+
}
|
|
202
254
|
```
|
|
203
255
|
|
|
204
|
-
###
|
|
256
|
+
### RXM - Resource Manifest
|
|
257
|
+
|
|
258
|
+
Resource metadata stored within the resource.
|
|
205
259
|
|
|
206
260
|
```typescript
|
|
207
|
-
|
|
261
|
+
interface RXM {
|
|
262
|
+
readonly registry?: string;
|
|
263
|
+
readonly path?: string;
|
|
264
|
+
readonly name: string;
|
|
265
|
+
readonly type: string;
|
|
266
|
+
readonly tag: string;
|
|
267
|
+
readonly files?: string[]; // Package file structure
|
|
268
|
+
}
|
|
269
|
+
```
|
|
208
270
|
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
271
|
+
### RXA - Resource Archive
|
|
272
|
+
|
|
273
|
+
Archive container (tar.gz format) for storage and transfer.
|
|
274
|
+
|
|
275
|
+
```typescript
|
|
276
|
+
interface RXA {
|
|
277
|
+
readonly stream: ReadableStream<Uint8Array>;
|
|
278
|
+
buffer(): Promise<Buffer>;
|
|
279
|
+
}
|
|
280
|
+
```
|
|
214
281
|
|
|
215
|
-
|
|
216
|
-
const pkg = await archive.extract();
|
|
282
|
+
### RXR - Resource
|
|
217
283
|
|
|
218
|
-
|
|
219
|
-
const promptBuffer = await pkg.file("prompt.md");
|
|
220
|
-
const configBuffer = await pkg.file("config.json");
|
|
284
|
+
Complete resource object combining locator, manifest, and archive.
|
|
221
285
|
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
286
|
+
```typescript
|
|
287
|
+
interface RXR {
|
|
288
|
+
readonly locator: RXL;
|
|
289
|
+
readonly manifest: RXM;
|
|
290
|
+
readonly archive: RXA;
|
|
226
291
|
}
|
|
227
292
|
```
|
|
228
293
|
|
|
229
|
-
|
|
294
|
+
## Error Handling
|
|
230
295
|
|
|
231
296
|
```typescript
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
297
|
+
import {
|
|
298
|
+
ResourceXError,
|
|
299
|
+
LocatorError,
|
|
300
|
+
ManifestError,
|
|
301
|
+
ContentError,
|
|
302
|
+
DefinitionError,
|
|
303
|
+
} from "@resourcexjs/core";
|
|
237
304
|
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
{
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
"version": "1.0.0"
|
|
305
|
+
try {
|
|
306
|
+
parse("invalid@locator");
|
|
307
|
+
} catch (error) {
|
|
308
|
+
if (error instanceof LocatorError) {
|
|
309
|
+
console.error("Invalid locator format:", error.message);
|
|
310
|
+
console.error("Locator:", error.locator);
|
|
311
|
+
}
|
|
246
312
|
}
|
|
247
|
-
*/
|
|
248
313
|
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
314
|
+
try {
|
|
315
|
+
define({ name: "test" }); // Missing required 'type' field
|
|
316
|
+
} catch (error) {
|
|
317
|
+
if (error instanceof DefinitionError) {
|
|
318
|
+
console.error("Invalid definition:", error.message);
|
|
319
|
+
}
|
|
320
|
+
}
|
|
252
321
|
```
|
|
253
322
|
|
|
254
|
-
|
|
323
|
+
### Error Hierarchy
|
|
255
324
|
|
|
256
|
-
|
|
325
|
+
```
|
|
326
|
+
ResourceXError (base)
|
|
327
|
+
├── LocatorError - RXL parsing errors
|
|
328
|
+
├── ManifestError - RXM validation errors
|
|
329
|
+
├── ContentError - RXA operations errors
|
|
330
|
+
└── DefinitionError - RXD validation errors
|
|
331
|
+
```
|
|
332
|
+
|
|
333
|
+
## Complete Example
|
|
257
334
|
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
- **[@resourcexjs/arp](../arp)** - Low-level I/O
|
|
262
|
-
- **[resourcexjs](../resourcex)** - Main package (all-in-one)
|
|
335
|
+
```typescript
|
|
336
|
+
import { define, manifest, archive, resource, extract, format, parse } from "@resourcexjs/core";
|
|
337
|
+
import type { RXR } from "@resourcexjs/core";
|
|
263
338
|
|
|
264
|
-
|
|
339
|
+
// 1. Define resource metadata
|
|
340
|
+
const rxd = define({
|
|
341
|
+
name: "assistant-prompt",
|
|
342
|
+
type: "text",
|
|
343
|
+
tag: "1.0.0",
|
|
344
|
+
description: "A helpful AI assistant prompt",
|
|
345
|
+
author: "Example Team",
|
|
346
|
+
});
|
|
265
347
|
|
|
266
|
-
|
|
348
|
+
// 2. Create manifest from definition
|
|
349
|
+
const rxm = manifest(rxd);
|
|
267
350
|
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
351
|
+
// 3. Create archive from files
|
|
352
|
+
const rxa = await archive({
|
|
353
|
+
content: Buffer.from("You are a helpful AI assistant."),
|
|
354
|
+
});
|
|
355
|
+
|
|
356
|
+
// 4. Combine into complete resource
|
|
357
|
+
const rxr: RXR = resource(rxm, rxa);
|
|
358
|
+
|
|
359
|
+
// 5. Access locator string
|
|
360
|
+
const locatorStr = format(rxr.locator);
|
|
361
|
+
console.log(locatorStr); // "assistant-prompt:1.0.0"
|
|
271
362
|
|
|
272
|
-
|
|
273
|
-
const
|
|
274
|
-
|
|
275
|
-
const resource: RXR = { locator, manifest, archive };
|
|
363
|
+
// 6. Extract files when needed
|
|
364
|
+
const files = await extract(rxr.archive);
|
|
365
|
+
console.log(files.content.toString()); // "You are a helpful AI assistant."
|
|
276
366
|
```
|
|
277
367
|
|
|
368
|
+
## Related Packages
|
|
369
|
+
|
|
370
|
+
| Package | Description |
|
|
371
|
+
| ---------------------------------------------------------------------------- | -------------------------- |
|
|
372
|
+
| [resourcexjs](https://www.npmjs.com/package/resourcexjs) | Main package (recommended) |
|
|
373
|
+
| [@resourcexjs/storage](https://www.npmjs.com/package/@resourcexjs/storage) | Storage layer |
|
|
374
|
+
| [@resourcexjs/registry](https://www.npmjs.com/package/@resourcexjs/registry) | Registry layer |
|
|
375
|
+
| [@resourcexjs/type](https://www.npmjs.com/package/@resourcexjs/type) | Type system |
|
|
376
|
+
| [@resourcexjs/loader](https://www.npmjs.com/package/@resourcexjs/loader) | Resource loading |
|
|
377
|
+
| [@resourcexjs/arp](https://www.npmjs.com/package/@resourcexjs/arp) | Low-level I/O |
|
|
378
|
+
|
|
278
379
|
## License
|
|
279
380
|
|
|
280
|
-
|
|
381
|
+
Apache-2.0
|
package/dist/index.d.ts
CHANGED
|
@@ -26,8 +26,8 @@ declare class DefinitionError extends ResourceXError {
|
|
|
26
26
|
interface RXD {
|
|
27
27
|
readonly name: string;
|
|
28
28
|
readonly type: string;
|
|
29
|
-
readonly
|
|
30
|
-
readonly
|
|
29
|
+
readonly tag?: string;
|
|
30
|
+
readonly registry?: string;
|
|
31
31
|
readonly path?: string;
|
|
32
32
|
readonly description?: string;
|
|
33
33
|
readonly author?: string;
|
|
@@ -40,14 +40,26 @@ interface RXD {
|
|
|
40
40
|
* RXL - ResourceX Locator
|
|
41
41
|
*
|
|
42
42
|
* Unique identifier for a resource (pure data object).
|
|
43
|
-
*
|
|
43
|
+
* Docker-style format with optional tag.
|
|
44
|
+
*
|
|
45
|
+
* Format: [registry/][path/]name[:tag]
|
|
46
|
+
*
|
|
47
|
+
* Examples:
|
|
48
|
+
* - hello → name=hello, tag=latest (default)
|
|
49
|
+
* - hello:1.0.0 → name=hello, tag=1.0.0
|
|
50
|
+
* - prompts/hello:stable → path=prompts, name=hello, tag=stable
|
|
51
|
+
* - localhost:3098/hello:1.0.0 → registry=localhost:3098, name=hello, tag=1.0.0
|
|
52
|
+
* - registry.example.com/org/hello:latest → registry=registry.example.com, path=org, name=hello, tag=latest
|
|
44
53
|
*/
|
|
45
54
|
interface RXL {
|
|
46
|
-
|
|
55
|
+
/** Registry host:port (e.g., "localhost:3098", "registry.example.com") */
|
|
56
|
+
readonly registry?: string;
|
|
57
|
+
/** Path within registry (e.g., "org", "prompts") */
|
|
47
58
|
readonly path?: string;
|
|
59
|
+
/** Resource name */
|
|
48
60
|
readonly name: string;
|
|
49
|
-
|
|
50
|
-
readonly
|
|
61
|
+
/** Tag (version or label). Defaults to "latest" if not specified. */
|
|
62
|
+
readonly tag: string;
|
|
51
63
|
}
|
|
52
64
|
/**
|
|
53
65
|
* RXM - ResourceX Manifest
|
|
@@ -55,11 +67,11 @@ interface RXL {
|
|
|
55
67
|
* Resource metadata stored within the resource (pure data object).
|
|
56
68
|
*/
|
|
57
69
|
interface RXM {
|
|
58
|
-
readonly
|
|
70
|
+
readonly registry?: string;
|
|
59
71
|
readonly path?: string;
|
|
60
72
|
readonly name: string;
|
|
61
73
|
readonly type: string;
|
|
62
|
-
readonly
|
|
74
|
+
readonly tag: string;
|
|
63
75
|
readonly files?: string[];
|
|
64
76
|
}
|
|
65
77
|
/**
|
|
@@ -131,7 +143,12 @@ declare function extract(rxa: RXA): Promise<Record<string, Buffer>>;
|
|
|
131
143
|
/**
|
|
132
144
|
* Format RXL to locator string.
|
|
133
145
|
*
|
|
134
|
-
*
|
|
146
|
+
* Docker-style format: [registry/][path/]name[:tag]
|
|
147
|
+
*
|
|
148
|
+
* Examples:
|
|
149
|
+
* - { name: "hello", tag: "latest" } → "hello" (omit :latest)
|
|
150
|
+
* - { name: "hello", tag: "1.0.0" } → "hello:1.0.0"
|
|
151
|
+
* - { registry: "localhost:3098", name: "hello", tag: "1.0.0" } → "localhost:3098/hello:1.0.0"
|
|
135
152
|
*
|
|
136
153
|
* @param rxl - Resource locator
|
|
137
154
|
* @returns Locator string
|
|
@@ -140,7 +157,13 @@ declare function format(rxl: RXL): string;
|
|
|
140
157
|
/**
|
|
141
158
|
* Parse locator string to RXL.
|
|
142
159
|
*
|
|
143
|
-
*
|
|
160
|
+
* Docker-style format: [registry/][path/]name[:tag]
|
|
161
|
+
*
|
|
162
|
+
* Examples:
|
|
163
|
+
* - hello → name=hello, tag=latest
|
|
164
|
+
* - hello:1.0.0 → name=hello, tag=1.0.0
|
|
165
|
+
* - prompts/hello:stable → path=prompts, name=hello, tag=stable
|
|
166
|
+
* - localhost:3098/hello:1.0.0 → registry=localhost:3098, name=hello, tag=1.0.0
|
|
144
167
|
*
|
|
145
168
|
* @param locator - Locator string
|
|
146
169
|
* @returns RXL object
|
package/dist/index.js
CHANGED
|
@@ -47,15 +47,16 @@ function define(input) {
|
|
|
47
47
|
if (!obj.type || typeof obj.type !== "string") {
|
|
48
48
|
throw new DefinitionError("type is required");
|
|
49
49
|
}
|
|
50
|
-
|
|
51
|
-
|
|
50
|
+
const tagValue = obj.tag ?? obj.version;
|
|
51
|
+
if (tagValue !== undefined && typeof tagValue !== "string") {
|
|
52
|
+
throw new DefinitionError("tag must be a string");
|
|
52
53
|
}
|
|
53
54
|
const rxd = {
|
|
54
55
|
...obj,
|
|
55
56
|
name: obj.name,
|
|
56
57
|
type: obj.type,
|
|
57
|
-
|
|
58
|
-
|
|
58
|
+
tag: typeof tagValue === "string" ? tagValue : undefined,
|
|
59
|
+
registry: typeof obj.registry === "string" ? obj.registry : undefined,
|
|
59
60
|
path: typeof obj.path === "string" ? obj.path : undefined,
|
|
60
61
|
description: typeof obj.description === "string" ? obj.description : undefined,
|
|
61
62
|
author: typeof obj.author === "string" ? obj.author : undefined,
|
|
@@ -68,11 +69,11 @@ function define(input) {
|
|
|
68
69
|
// src/primitives/manifest.ts
|
|
69
70
|
function manifest(rxd) {
|
|
70
71
|
return {
|
|
71
|
-
|
|
72
|
+
registry: rxd.registry,
|
|
72
73
|
path: rxd.path,
|
|
73
74
|
name: rxd.name,
|
|
74
75
|
type: rxd.type,
|
|
75
|
-
|
|
76
|
+
tag: rxd.tag ?? "latest"
|
|
76
77
|
};
|
|
77
78
|
}
|
|
78
79
|
// src/primitives/archive.ts
|
|
@@ -1091,11 +1092,10 @@ async function archive(files) {
|
|
|
1091
1092
|
// src/primitives/locate.ts
|
|
1092
1093
|
function locate(rxm) {
|
|
1093
1094
|
return {
|
|
1094
|
-
|
|
1095
|
+
registry: rxm.registry,
|
|
1095
1096
|
path: rxm.path,
|
|
1096
1097
|
name: rxm.name,
|
|
1097
|
-
|
|
1098
|
-
version: rxm.version
|
|
1098
|
+
tag: rxm.tag
|
|
1099
1099
|
};
|
|
1100
1100
|
}
|
|
1101
1101
|
// src/primitives/resource.ts
|
|
@@ -1125,57 +1125,86 @@ async function extract(rxa) {
|
|
|
1125
1125
|
}
|
|
1126
1126
|
// src/primitives/format.ts
|
|
1127
1127
|
function format(rxl) {
|
|
1128
|
-
let result =
|
|
1128
|
+
let result = "";
|
|
1129
|
+
if (rxl.registry) {
|
|
1130
|
+
result += rxl.registry + "/";
|
|
1131
|
+
}
|
|
1129
1132
|
if (rxl.path) {
|
|
1130
1133
|
result += rxl.path + "/";
|
|
1131
1134
|
}
|
|
1132
1135
|
result += rxl.name;
|
|
1133
|
-
|
|
1134
|
-
|
|
1136
|
+
if (rxl.tag && rxl.tag !== "latest") {
|
|
1137
|
+
result += ":" + rxl.tag;
|
|
1138
|
+
}
|
|
1135
1139
|
return result;
|
|
1136
1140
|
}
|
|
1137
1141
|
// src/primitives/parse.ts
|
|
1142
|
+
function looksLikeRegistry(str) {
|
|
1143
|
+
if (str.includes(":") && !str.includes("/")) {
|
|
1144
|
+
return true;
|
|
1145
|
+
}
|
|
1146
|
+
if (str.includes(".")) {
|
|
1147
|
+
return true;
|
|
1148
|
+
}
|
|
1149
|
+
if (str === "localhost") {
|
|
1150
|
+
return true;
|
|
1151
|
+
}
|
|
1152
|
+
return false;
|
|
1153
|
+
}
|
|
1138
1154
|
function parse(locator) {
|
|
1139
1155
|
if (!locator || typeof locator !== "string") {
|
|
1140
|
-
throw new LocatorError("
|
|
1156
|
+
throw new LocatorError("Locator must be a non-empty string", locator);
|
|
1141
1157
|
}
|
|
1142
|
-
|
|
1143
|
-
|
|
1144
|
-
throw new LocatorError("locator must contain version (@)", locator);
|
|
1158
|
+
if (locator.includes("@")) {
|
|
1159
|
+
throw new LocatorError("Invalid locator format. Use name:tag instead of name@version", locator);
|
|
1145
1160
|
}
|
|
1146
|
-
const
|
|
1147
|
-
|
|
1148
|
-
|
|
1149
|
-
|
|
1161
|
+
const lastSlashIndex = locator.lastIndexOf("/");
|
|
1162
|
+
let beforeSlash = "";
|
|
1163
|
+
let afterSlash = locator;
|
|
1164
|
+
if (lastSlashIndex !== -1) {
|
|
1165
|
+
beforeSlash = locator.substring(0, lastSlashIndex);
|
|
1166
|
+
afterSlash = locator.substring(lastSlashIndex + 1);
|
|
1150
1167
|
}
|
|
1151
|
-
const
|
|
1152
|
-
|
|
1153
|
-
|
|
1168
|
+
const colonIndex = afterSlash.lastIndexOf(":");
|
|
1169
|
+
let name;
|
|
1170
|
+
let tag;
|
|
1171
|
+
if (colonIndex === -1) {
|
|
1172
|
+
name = afterSlash;
|
|
1173
|
+
tag = "latest";
|
|
1174
|
+
} else {
|
|
1175
|
+
name = afterSlash.substring(0, colonIndex);
|
|
1176
|
+
tag = afterSlash.substring(colonIndex + 1);
|
|
1154
1177
|
}
|
|
1155
|
-
|
|
1156
|
-
|
|
1157
|
-
if (!type) {
|
|
1158
|
-
throw new LocatorError("type is required", locator);
|
|
1178
|
+
if (!name) {
|
|
1179
|
+
throw new LocatorError("Name is required", locator);
|
|
1159
1180
|
}
|
|
1160
|
-
|
|
1161
|
-
|
|
1162
|
-
throw new LocatorError("locator must contain domain", locator);
|
|
1181
|
+
if (!tag) {
|
|
1182
|
+
throw new LocatorError("Tag cannot be empty. Use name:tag format or omit tag for :latest", locator);
|
|
1163
1183
|
}
|
|
1164
|
-
|
|
1165
|
-
|
|
1166
|
-
|
|
1167
|
-
|
|
1168
|
-
|
|
1184
|
+
if (lastSlashIndex === -1) {
|
|
1185
|
+
return {
|
|
1186
|
+
registry: undefined,
|
|
1187
|
+
path: undefined,
|
|
1188
|
+
name,
|
|
1189
|
+
tag
|
|
1190
|
+
};
|
|
1169
1191
|
}
|
|
1170
|
-
|
|
1171
|
-
|
|
1192
|
+
const parts = beforeSlash.split("/");
|
|
1193
|
+
if (looksLikeRegistry(parts[0])) {
|
|
1194
|
+
const registry = parts[0];
|
|
1195
|
+
const path = parts.length > 1 ? parts.slice(1).join("/") : undefined;
|
|
1196
|
+
return {
|
|
1197
|
+
registry,
|
|
1198
|
+
path,
|
|
1199
|
+
name,
|
|
1200
|
+
tag
|
|
1201
|
+
};
|
|
1172
1202
|
}
|
|
1173
1203
|
return {
|
|
1174
|
-
|
|
1175
|
-
path,
|
|
1204
|
+
registry: undefined,
|
|
1205
|
+
path: beforeSlash,
|
|
1176
1206
|
name,
|
|
1177
|
-
|
|
1178
|
-
version
|
|
1207
|
+
tag
|
|
1179
1208
|
};
|
|
1180
1209
|
}
|
|
1181
1210
|
// src/primitives/wrap.ts
|
|
@@ -1217,4 +1246,4 @@ export {
|
|
|
1217
1246
|
ContentError
|
|
1218
1247
|
};
|
|
1219
1248
|
|
|
1220
|
-
//# debugId=
|
|
1249
|
+
//# debugId=E36D0778C816F02964756E2164756E21
|
package/dist/index.js.map
CHANGED
|
@@ -3,19 +3,19 @@
|
|
|
3
3
|
"sources": ["../src/errors.ts", "../src/primitives/define.ts", "../src/primitives/manifest.ts", "../src/primitives/archive.ts", "../../../node_modules/.bun/modern-tar@0.7.3/node_modules/modern-tar/dist/unpacker-BpPBxY8N.js", "../../../node_modules/.bun/modern-tar@0.7.3/node_modules/modern-tar/dist/web/index.js", "../src/primitives/locate.ts", "../src/primitives/resource.ts", "../src/primitives/extract.ts", "../src/primitives/format.ts", "../src/primitives/parse.ts", "../src/primitives/wrap.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
5
|
"/**\n * ResourceX Error hierarchy\n */\n\nexport class ResourceXError extends Error {\n constructor(message: string, options?: ErrorOptions) {\n super(message, options);\n this.name = \"ResourceXError\";\n }\n}\n\nexport class LocatorError extends ResourceXError {\n constructor(\n message: string,\n public readonly locator?: string\n ) {\n super(message);\n this.name = \"LocatorError\";\n }\n}\n\nexport class ManifestError extends ResourceXError {\n constructor(message: string) {\n super(message);\n this.name = \"ManifestError\";\n }\n}\n\nexport class ContentError extends ResourceXError {\n constructor(message: string) {\n super(message);\n this.name = \"ContentError\";\n }\n}\n\nexport class DefinitionError extends ResourceXError {\n constructor(message: string) {\n super(message);\n this.name = \"DefinitionError\";\n }\n}\n",
|
|
6
|
-
"import type { RXD } from \"~/types/index.js\";\nimport { DefinitionError } from \"~/errors.js\";\n\n/**\n * Parse and validate a resource definition (resource.json content).\n *\n * @param input - The raw JSON object to parse\n * @returns A validated RXD object\n * @throws DefinitionError if validation fails\n */\nexport function define(input: unknown): RXD {\n if (input === null || typeof input !== \"object\") {\n throw new DefinitionError(\"definition must be an object\");\n }\n\n const obj = input as Record<string, unknown>;\n\n if (!obj.name || typeof obj.name !== \"string\") {\n throw new DefinitionError(\"name is required\");\n }\n\n if (!obj.type || typeof obj.type !== \"string\") {\n throw new DefinitionError(\"type is required\");\n }\n\n
|
|
7
|
-
"import type { RXD, RXM } from \"~/types/index.js\";\n\n/**\n * Create RXM from RXD.\n * Extracts only the core metadata fields (pure data object).\n *\n * @param rxd - Resource definition\n * @returns RXM manifest object\n */\nexport function manifest(rxd: RXD): RXM {\n return {\n
|
|
6
|
+
"import type { RXD } from \"~/types/index.js\";\nimport { DefinitionError } from \"~/errors.js\";\n\n/**\n * Parse and validate a resource definition (resource.json content).\n *\n * @param input - The raw JSON object to parse\n * @returns A validated RXD object\n * @throws DefinitionError if validation fails\n */\nexport function define(input: unknown): RXD {\n if (input === null || typeof input !== \"object\") {\n throw new DefinitionError(\"definition must be an object\");\n }\n\n const obj = input as Record<string, unknown>;\n\n if (!obj.name || typeof obj.name !== \"string\") {\n throw new DefinitionError(\"name is required\");\n }\n\n if (!obj.type || typeof obj.type !== \"string\") {\n throw new DefinitionError(\"type is required\");\n }\n\n // tag is optional, defaults to \"latest\"\n // Also accept \"version\" as alias for backward compatibility\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\n // Build RXD with defaults\n const rxd: 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\n return rxd;\n}\n",
|
|
7
|
+
"import type { RXD, RXM } from \"~/types/index.js\";\n\n/**\n * Create RXM from RXD.\n * Extracts only the core metadata fields (pure data object).\n *\n * @param rxd - Resource definition\n * @returns RXM manifest object\n */\nexport function manifest(rxd: RXD): RXM {\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",
|
|
8
8
|
"import { gzip } from \"node:zlib\";\nimport { promisify } from \"node:util\";\nimport { packTar } from \"modern-tar\";\nimport type { RXA } from \"~/types/index.js\";\n\nconst gzipAsync = promisify(gzip);\n\n/**\n * RXA Implementation for primitives\n */\nclass RXAImpl implements RXA {\n private readonly _buffer: Buffer;\n\n constructor(buffer: Buffer) {\n this._buffer = buffer;\n }\n\n get stream(): ReadableStream<Uint8Array> {\n const buffer = this._buffer;\n return new ReadableStream({\n start(controller) {\n controller.enqueue(new Uint8Array(buffer));\n controller.close();\n },\n });\n }\n\n async buffer(): Promise<Buffer> {\n return this._buffer;\n }\n}\n\n/**\n * Create RXA from files.\n *\n * @param files - Record of file paths to Buffer contents\n * @returns RXA archive object\n */\nexport async function archive(files: Record<string, Buffer>): Promise<RXA> {\n const entries = Object.entries(files).map(([name, content]) => {\n return {\n header: { name, size: content.length, type: \"file\" as const },\n body: new Uint8Array(content),\n };\n });\n\n // Pack to tar\n const tarBuffer = await packTar(entries);\n\n // Compress with gzip\n const gzipBuffer = await gzipAsync(Buffer.from(tarBuffer));\n\n return new RXAImpl(gzipBuffer);\n}\n",
|
|
9
9
|
"//#region src/tar/constants.ts\nconst BLOCK_SIZE = 512;\nconst BLOCK_SIZE_MASK = 511;\nconst DEFAULT_FILE_MODE = 420;\nconst DEFAULT_DIR_MODE = 493;\nconst USTAR_NAME_OFFSET = 0;\nconst USTAR_NAME_SIZE = 100;\nconst USTAR_MODE_OFFSET = 100;\nconst USTAR_MODE_SIZE = 8;\nconst USTAR_UID_OFFSET = 108;\nconst USTAR_UID_SIZE = 8;\nconst USTAR_GID_OFFSET = 116;\nconst USTAR_GID_SIZE = 8;\nconst USTAR_SIZE_OFFSET = 124;\nconst USTAR_SIZE_SIZE = 12;\nconst USTAR_MTIME_OFFSET = 136;\nconst USTAR_MTIME_SIZE = 12;\nconst USTAR_CHECKSUM_OFFSET = 148;\nconst USTAR_CHECKSUM_SIZE = 8;\nconst USTAR_TYPEFLAG_OFFSET = 156;\nconst USTAR_TYPEFLAG_SIZE = 1;\nconst USTAR_LINKNAME_OFFSET = 157;\nconst USTAR_LINKNAME_SIZE = 100;\nconst USTAR_MAGIC_OFFSET = 257;\nconst USTAR_MAGIC_SIZE = 6;\nconst USTAR_VERSION_OFFSET = 263;\nconst USTAR_VERSION_SIZE = 2;\nconst USTAR_UNAME_OFFSET = 265;\nconst USTAR_UNAME_SIZE = 32;\nconst USTAR_GNAME_OFFSET = 297;\nconst USTAR_GNAME_SIZE = 32;\nconst USTAR_PREFIX_OFFSET = 345;\nconst USTAR_PREFIX_SIZE = 155;\nconst USTAR_VERSION = \"00\";\nconst USTAR_MAX_UID_GID = 2097151;\nconst USTAR_MAX_SIZE = 8589934591;\nconst FILE = \"file\";\nconst LINK = \"link\";\nconst SYMLINK = \"symlink\";\nconst DIRECTORY = \"directory\";\nconst TYPEFLAG = {\n\tfile: \"0\",\n\tlink: \"1\",\n\tsymlink: \"2\",\n\t\"character-device\": \"3\",\n\t\"block-device\": \"4\",\n\tdirectory: \"5\",\n\tfifo: \"6\",\n\t\"pax-header\": \"x\",\n\t\"pax-global-header\": \"g\",\n\t\"gnu-long-name\": \"L\",\n\t\"gnu-long-link-name\": \"K\"\n};\nconst FLAGTYPE = {\n\t\"0\": FILE,\n\t\"1\": LINK,\n\t\"2\": SYMLINK,\n\t\"3\": \"character-device\",\n\t\"4\": \"block-device\",\n\t\"5\": DIRECTORY,\n\t\"6\": \"fifo\",\n\tx: \"pax-header\",\n\tg: \"pax-global-header\",\n\tL: \"gnu-long-name\",\n\tK: \"gnu-long-link-name\"\n};\nconst ZERO_BLOCK = new Uint8Array(BLOCK_SIZE);\nconst EMPTY = new Uint8Array(0);\n\n//#endregion\n//#region src/tar/encoding.ts\nconst encoder = new TextEncoder();\nconst decoder = new TextDecoder();\nfunction writeString(view, offset, size, value) {\n\tif (value) encoder.encodeInto(value, view.subarray(offset, offset + size));\n}\nfunction writeOctal(view, offset, size, value) {\n\tif (value === void 0) return;\n\tconst octalString = value.toString(8).padStart(size - 1, \"0\");\n\tencoder.encodeInto(octalString, view.subarray(offset, offset + size - 1));\n}\nfunction readString(view, offset, size) {\n\tconst end = view.indexOf(0, offset);\n\tconst sliceEnd = end === -1 || end > offset + size ? offset + size : end;\n\treturn decoder.decode(view.subarray(offset, sliceEnd));\n}\nfunction readOctal(view, offset, size) {\n\tlet value = 0;\n\tconst end = offset + size;\n\tfor (let i = offset; i < end; i++) {\n\t\tconst charCode = view[i];\n\t\tif (charCode === 0) break;\n\t\tif (charCode === 32) continue;\n\t\tvalue = value * 8 + (charCode - 48);\n\t}\n\treturn value;\n}\nfunction readNumeric(view, offset, size) {\n\tif (view[offset] & 128) {\n\t\tlet result = 0;\n\t\tresult = view[offset] & 127;\n\t\tfor (let i = 1; i < size; i++) result = result * 256 + view[offset + i];\n\t\tif (!Number.isSafeInteger(result)) throw new Error(\"TAR number too large\");\n\t\treturn result;\n\t}\n\treturn readOctal(view, offset, size);\n}\n\n//#endregion\n//#region src/tar/body.ts\nconst isBodyless = (header) => header.type === DIRECTORY || header.type === SYMLINK || header.type === LINK;\nasync function normalizeBody(body) {\n\tif (body === null || body === void 0) return EMPTY;\n\tif (body instanceof Uint8Array) return body;\n\tif (typeof body === \"string\") return encoder.encode(body);\n\tif (body instanceof ArrayBuffer) return new Uint8Array(body);\n\tif (body instanceof Blob) return new Uint8Array(await body.arrayBuffer());\n\tthrow new TypeError(\"Unsupported content type for entry body.\");\n}\n\n//#endregion\n//#region src/tar/options.ts\nfunction transformHeader(header, options) {\n\tconst { strip, filter, map } = options;\n\tif (!strip && !filter && !map) return header;\n\tconst h = { ...header };\n\tif (strip && strip > 0) {\n\t\tconst components = h.name.split(\"/\").filter(Boolean);\n\t\tif (strip >= components.length) return null;\n\t\tconst newName = components.slice(strip).join(\"/\");\n\t\th.name = h.type === DIRECTORY && !newName.endsWith(\"/\") ? `${newName}/` : newName;\n\t\tif (h.linkname?.startsWith(\"/\")) {\n\t\t\tconst linkComponents = h.linkname.split(\"/\").filter(Boolean);\n\t\t\th.linkname = strip >= linkComponents.length ? \"/\" : `/${linkComponents.slice(strip).join(\"/\")}`;\n\t\t}\n\t}\n\tif (filter?.(h) === false) return null;\n\tconst result = map ? map(h) : h;\n\tif (result && (!result.name || !result.name.trim() || result.name === \".\" || result.name === \"/\")) return null;\n\treturn result;\n}\n\n//#endregion\n//#region src/tar/checksum.ts\nconst CHECKSUM_SPACE = 32;\nconst ASCII_ZERO = 48;\nfunction validateChecksum(block) {\n\tconst stored = readOctal(block, USTAR_CHECKSUM_OFFSET, USTAR_CHECKSUM_SIZE);\n\tlet sum = 0;\n\tfor (let i = 0; i < block.length; i++) if (i >= USTAR_CHECKSUM_OFFSET && i < USTAR_CHECKSUM_OFFSET + USTAR_CHECKSUM_SIZE) sum += CHECKSUM_SPACE;\n\telse sum += block[i];\n\treturn stored === sum;\n}\nfunction writeChecksum(block) {\n\tblock.fill(CHECKSUM_SPACE, USTAR_CHECKSUM_OFFSET, USTAR_CHECKSUM_OFFSET + USTAR_CHECKSUM_SIZE);\n\tlet checksum = 0;\n\tfor (const byte of block) checksum += byte;\n\tfor (let i = USTAR_CHECKSUM_OFFSET + 6 - 1; i >= USTAR_CHECKSUM_OFFSET; i--) {\n\t\tblock[i] = (checksum & 7) + ASCII_ZERO;\n\t\tchecksum >>= 3;\n\t}\n\tblock[USTAR_CHECKSUM_OFFSET + 6] = 0;\n\tblock[USTAR_CHECKSUM_OFFSET + 7] = CHECKSUM_SPACE;\n}\n\n//#endregion\n//#region src/tar/pax.ts\nfunction generatePax(header) {\n\tconst paxRecords = {};\n\tif (header.name.length > USTAR_NAME_SIZE) {\n\t\tif (findUstarSplit(header.name) === null) paxRecords.path = header.name;\n\t}\n\tif (header.linkname && header.linkname.length > USTAR_NAME_SIZE) paxRecords.linkpath = header.linkname;\n\tif (header.uname && header.uname.length > USTAR_UNAME_SIZE) paxRecords.uname = header.uname;\n\tif (header.gname && header.gname.length > USTAR_GNAME_SIZE) paxRecords.gname = header.gname;\n\tif (header.uid != null && header.uid > USTAR_MAX_UID_GID) paxRecords.uid = String(header.uid);\n\tif (header.gid != null && header.gid > USTAR_MAX_UID_GID) paxRecords.gid = String(header.gid);\n\tif (header.size != null && header.size > USTAR_MAX_SIZE) paxRecords.size = String(header.size);\n\tif (header.pax) Object.assign(paxRecords, header.pax);\n\tconst paxEntries = Object.entries(paxRecords);\n\tif (paxEntries.length === 0) return null;\n\tconst paxBody = encoder.encode(paxEntries.map(([key, value]) => {\n\t\tconst record = `${key}=${value}\\n`;\n\t\tconst partLength = encoder.encode(record).length + 1;\n\t\tlet totalLength = partLength + String(partLength).length;\n\t\ttotalLength = partLength + String(totalLength).length;\n\t\treturn `${totalLength} ${record}`;\n\t}).join(\"\"));\n\treturn {\n\t\tpaxHeader: createTarHeader({\n\t\t\tname: decoder.decode(encoder.encode(`PaxHeader/${header.name}`).slice(0, 100)),\n\t\t\tsize: paxBody.length,\n\t\t\ttype: \"pax-header\",\n\t\t\tmode: 420,\n\t\t\tmtime: header.mtime,\n\t\t\tuname: header.uname,\n\t\t\tgname: header.gname,\n\t\t\tuid: header.uid,\n\t\t\tgid: header.gid\n\t\t}),\n\t\tpaxBody\n\t};\n}\nfunction findUstarSplit(path) {\n\tif (path.length <= USTAR_NAME_SIZE) return null;\n\tconst minSlashIndex = path.length - USTAR_NAME_SIZE - 1;\n\tconst slashIndex = path.lastIndexOf(\"/\", USTAR_PREFIX_SIZE);\n\tif (slashIndex > 0 && slashIndex >= minSlashIndex) return {\n\t\tprefix: path.slice(0, slashIndex),\n\t\tname: path.slice(slashIndex + 1)\n\t};\n\treturn null;\n}\n\n//#endregion\n//#region src/tar/header.ts\nfunction createTarHeader(header) {\n\tconst view = new Uint8Array(BLOCK_SIZE);\n\tconst size = isBodyless(header) ? 0 : header.size ?? 0;\n\tlet name = header.name;\n\tlet prefix = \"\";\n\tif (!header.pax?.path) {\n\t\tconst split = findUstarSplit(name);\n\t\tif (split) {\n\t\t\tname = split.name;\n\t\t\tprefix = split.prefix;\n\t\t}\n\t}\n\twriteString(view, USTAR_NAME_OFFSET, USTAR_NAME_SIZE, name);\n\twriteOctal(view, USTAR_MODE_OFFSET, USTAR_MODE_SIZE, header.mode ?? (header.type === DIRECTORY ? DEFAULT_DIR_MODE : DEFAULT_FILE_MODE));\n\twriteOctal(view, USTAR_UID_OFFSET, USTAR_UID_SIZE, header.uid ?? 0);\n\twriteOctal(view, USTAR_GID_OFFSET, USTAR_GID_SIZE, header.gid ?? 0);\n\twriteOctal(view, USTAR_SIZE_OFFSET, USTAR_SIZE_SIZE, size);\n\twriteOctal(view, USTAR_MTIME_OFFSET, USTAR_MTIME_SIZE, Math.floor((header.mtime?.getTime() ?? Date.now()) / 1e3));\n\twriteString(view, USTAR_TYPEFLAG_OFFSET, USTAR_TYPEFLAG_SIZE, TYPEFLAG[header.type ?? FILE]);\n\twriteString(view, USTAR_LINKNAME_OFFSET, USTAR_LINKNAME_SIZE, header.linkname);\n\twriteString(view, USTAR_MAGIC_OFFSET, USTAR_MAGIC_SIZE, \"ustar\\0\");\n\twriteString(view, USTAR_VERSION_OFFSET, USTAR_VERSION_SIZE, USTAR_VERSION);\n\twriteString(view, USTAR_UNAME_OFFSET, USTAR_UNAME_SIZE, header.uname);\n\twriteString(view, USTAR_GNAME_OFFSET, USTAR_GNAME_SIZE, header.gname);\n\twriteString(view, USTAR_PREFIX_OFFSET, USTAR_PREFIX_SIZE, prefix);\n\twriteChecksum(view);\n\treturn view;\n}\nfunction parseUstarHeader(block, strict) {\n\tif (strict && !validateChecksum(block)) throw new Error(\"Invalid tar header checksum.\");\n\tconst typeflag = readString(block, USTAR_TYPEFLAG_OFFSET, USTAR_TYPEFLAG_SIZE);\n\tconst header = {\n\t\tname: readString(block, USTAR_NAME_OFFSET, USTAR_NAME_SIZE),\n\t\tmode: readOctal(block, USTAR_MODE_OFFSET, USTAR_MODE_SIZE),\n\t\tuid: readNumeric(block, USTAR_UID_OFFSET, USTAR_UID_SIZE),\n\t\tgid: readNumeric(block, USTAR_GID_OFFSET, USTAR_GID_SIZE),\n\t\tsize: readNumeric(block, USTAR_SIZE_OFFSET, USTAR_SIZE_SIZE),\n\t\tmtime: /* @__PURE__ */ new Date(readNumeric(block, USTAR_MTIME_OFFSET, USTAR_MTIME_SIZE) * 1e3),\n\t\ttype: FLAGTYPE[typeflag] || FILE,\n\t\tlinkname: readString(block, USTAR_LINKNAME_OFFSET, USTAR_LINKNAME_SIZE)\n\t};\n\tconst magic = readString(block, USTAR_MAGIC_OFFSET, USTAR_MAGIC_SIZE);\n\tif (magic.trim() === \"ustar\") {\n\t\theader.uname = readString(block, USTAR_UNAME_OFFSET, USTAR_UNAME_SIZE);\n\t\theader.gname = readString(block, USTAR_GNAME_OFFSET, USTAR_GNAME_SIZE);\n\t}\n\tif (magic === \"ustar\") header.prefix = readString(block, USTAR_PREFIX_OFFSET, USTAR_PREFIX_SIZE);\n\treturn header;\n}\nconst PAX_MAPPING = {\n\tpath: [\"name\", (v) => v],\n\tlinkpath: [\"linkname\", (v) => v],\n\tsize: [\"size\", (v) => parseInt(v, 10)],\n\tmtime: [\"mtime\", parseFloat],\n\tuid: [\"uid\", (v) => parseInt(v, 10)],\n\tgid: [\"gid\", (v) => parseInt(v, 10)],\n\tuname: [\"uname\", (v) => v],\n\tgname: [\"gname\", (v) => v]\n};\nfunction parsePax(buffer) {\n\tconst decoder$1 = new TextDecoder(\"utf-8\");\n\tconst overrides = {};\n\tconst pax = {};\n\tlet offset = 0;\n\twhile (offset < buffer.length) {\n\t\tconst spaceIndex = buffer.indexOf(32, offset);\n\t\tif (spaceIndex === -1) break;\n\t\tconst length = parseInt(decoder$1.decode(buffer.subarray(offset, spaceIndex)), 10);\n\t\tif (Number.isNaN(length) || length === 0) break;\n\t\tconst recordEnd = offset + length;\n\t\tconst [key, value] = decoder$1.decode(buffer.subarray(spaceIndex + 1, recordEnd - 1)).split(\"=\", 2);\n\t\tif (key && value !== void 0) {\n\t\t\tpax[key] = value;\n\t\t\tconst mapping = PAX_MAPPING[key];\n\t\t\tif (mapping) {\n\t\t\t\tconst [targetKey, parser] = mapping;\n\t\t\t\tconst parsedValue = parser(value);\n\t\t\t\tif (typeof parsedValue === \"string\" || !Number.isNaN(parsedValue)) overrides[targetKey] = parsedValue;\n\t\t\t}\n\t\t}\n\t\toffset = recordEnd;\n\t}\n\tif (Object.keys(pax).length > 0) overrides.pax = pax;\n\treturn overrides;\n}\nfunction applyOverrides(header, overrides) {\n\tif (overrides.name !== void 0) header.name = overrides.name;\n\tif (overrides.linkname !== void 0) header.linkname = overrides.linkname;\n\tif (overrides.size !== void 0) header.size = overrides.size;\n\tif (overrides.mtime !== void 0) header.mtime = /* @__PURE__ */ new Date(overrides.mtime * 1e3);\n\tif (overrides.uid !== void 0) header.uid = overrides.uid;\n\tif (overrides.gid !== void 0) header.gid = overrides.gid;\n\tif (overrides.uname !== void 0) header.uname = overrides.uname;\n\tif (overrides.gname !== void 0) header.gname = overrides.gname;\n\tif (overrides.pax) header.pax = Object.assign({}, header.pax ?? {}, overrides.pax);\n}\nfunction getMetaParser(type) {\n\tswitch (type) {\n\t\tcase \"pax-global-header\":\n\t\tcase \"pax-header\": return parsePax;\n\t\tcase \"gnu-long-name\": return (data) => ({ name: readString(data, 0, data.length) });\n\t\tcase \"gnu-long-link-name\": return (data) => ({ linkname: readString(data, 0, data.length) });\n\t\tdefault: return;\n\t}\n}\nfunction getHeaderBlocks(header) {\n\tconst base = createTarHeader(header);\n\tconst pax = generatePax(header);\n\tif (!pax) return [base];\n\tconst paxPadding = -pax.paxBody.length & BLOCK_SIZE_MASK;\n\tconst paddingBlocks = paxPadding > 0 ? [ZERO_BLOCK.subarray(0, paxPadding)] : [];\n\treturn [\n\t\tpax.paxHeader,\n\t\tpax.paxBody,\n\t\t...paddingBlocks,\n\t\tbase\n\t];\n}\n\n//#endregion\n//#region src/tar/packer.ts\nconst EOF_BUFFER = new Uint8Array(BLOCK_SIZE * 2);\nfunction createTarPacker(onData, onError, onFinalize) {\n\tlet currentHeader = null;\n\tlet bytesWritten = 0;\n\tlet finalized = false;\n\treturn {\n\t\tadd(header) {\n\t\t\tif (finalized) {\n\t\t\t\tconst error = /* @__PURE__ */ new Error(\"No new tar entries after finalize.\");\n\t\t\t\tonError(error);\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t\tif (currentHeader !== null) {\n\t\t\t\tconst error = /* @__PURE__ */ new Error(\"Previous entry must be completed before adding a new one\");\n\t\t\t\tonError(error);\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tconst size = isBodyless(header) ? 0 : header.size ?? 0;\n\t\t\t\tconst headerBlocks = getHeaderBlocks({\n\t\t\t\t\t...header,\n\t\t\t\t\tsize\n\t\t\t\t});\n\t\t\t\tfor (const block of headerBlocks) onData(block);\n\t\t\t\tcurrentHeader = {\n\t\t\t\t\t...header,\n\t\t\t\t\tsize\n\t\t\t\t};\n\t\t\t\tbytesWritten = 0;\n\t\t\t} catch (error) {\n\t\t\t\tonError(error);\n\t\t\t}\n\t\t},\n\t\twrite(chunk) {\n\t\t\tif (!currentHeader) {\n\t\t\t\tconst error = /* @__PURE__ */ new Error(\"No active tar entry.\");\n\t\t\t\tonError(error);\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t\tif (finalized) {\n\t\t\t\tconst error = /* @__PURE__ */ new Error(\"Cannot write data after finalize.\");\n\t\t\t\tonError(error);\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t\tconst newTotal = bytesWritten + chunk.length;\n\t\t\tif (newTotal > currentHeader.size) {\n\t\t\t\tconst error = /* @__PURE__ */ new Error(`\"${currentHeader.name}\" exceeds given size of ${currentHeader.size} bytes.`);\n\t\t\t\tonError(error);\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tbytesWritten = newTotal;\n\t\t\t\tonData(chunk);\n\t\t\t} catch (error) {\n\t\t\t\tonError(error);\n\t\t\t}\n\t\t},\n\t\tendEntry() {\n\t\t\tif (!currentHeader) {\n\t\t\t\tconst error = /* @__PURE__ */ new Error(\"No active entry to end.\");\n\t\t\t\tonError(error);\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t\tif (finalized) {\n\t\t\t\tconst error = /* @__PURE__ */ new Error(\"Cannot end entry after finalize.\");\n\t\t\t\tonError(error);\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tif (bytesWritten !== currentHeader.size) {\n\t\t\t\t\tconst error = /* @__PURE__ */ new Error(`Size mismatch for \"${currentHeader.name}\".`);\n\t\t\t\t\tonError(error);\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\t\t\t\tconst paddingSize = -currentHeader.size & BLOCK_SIZE_MASK;\n\t\t\t\tif (paddingSize > 0) onData(new Uint8Array(paddingSize));\n\t\t\t\tcurrentHeader = null;\n\t\t\t\tbytesWritten = 0;\n\t\t\t} catch (error) {\n\t\t\t\tonError(error);\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t},\n\t\tfinalize() {\n\t\t\tif (finalized) {\n\t\t\t\tconst error = /* @__PURE__ */ new Error(\"Archive has already been finalized\");\n\t\t\t\tonError(error);\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t\tif (currentHeader !== null) {\n\t\t\t\tconst error = /* @__PURE__ */ new Error(\"Cannot finalize while an entry is still active\");\n\t\t\t\tonError(error);\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tonData(EOF_BUFFER);\n\t\t\t\tfinalized = true;\n\t\t\t\tif (onFinalize) onFinalize();\n\t\t\t} catch (error) {\n\t\t\t\tonError(error);\n\t\t\t}\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/tar/chunk-queue.ts\nconst INITIAL_CAPACITY = 256;\nfunction createChunkQueue() {\n\tlet chunks = new Array(INITIAL_CAPACITY);\n\tlet capacityMask = chunks.length - 1;\n\tlet head = 0;\n\tlet tail = 0;\n\tlet totalAvailable = 0;\n\tconst consumeFromHead = (count) => {\n\t\tconst chunk = chunks[head];\n\t\tif (count === chunk.length) {\n\t\t\tchunks[head] = EMPTY;\n\t\t\thead = head + 1 & capacityMask;\n\t\t} else chunks[head] = chunk.subarray(count);\n\t\ttotalAvailable -= count;\n\t\tif (totalAvailable === 0 && chunks.length > INITIAL_CAPACITY) {\n\t\t\tchunks = new Array(INITIAL_CAPACITY);\n\t\t\tcapacityMask = INITIAL_CAPACITY - 1;\n\t\t\thead = 0;\n\t\t\ttail = 0;\n\t\t}\n\t};\n\tfunction pull(bytes, callback) {\n\t\tif (callback) {\n\t\t\tlet fed = 0;\n\t\t\tlet remaining$1 = Math.min(bytes, totalAvailable);\n\t\t\twhile (remaining$1 > 0) {\n\t\t\t\tconst chunk = chunks[head];\n\t\t\t\tconst toFeed = Math.min(remaining$1, chunk.length);\n\t\t\t\tconst segment = toFeed === chunk.length ? chunk : chunk.subarray(0, toFeed);\n\t\t\t\tconsumeFromHead(toFeed);\n\t\t\t\tremaining$1 -= toFeed;\n\t\t\t\tfed += toFeed;\n\t\t\t\tif (!callback(segment)) break;\n\t\t\t}\n\t\t\treturn fed;\n\t\t}\n\t\tif (totalAvailable < bytes) return null;\n\t\tif (bytes === 0) return EMPTY;\n\t\tconst firstChunk = chunks[head];\n\t\tif (firstChunk.length >= bytes) {\n\t\t\tconst view = firstChunk.length === bytes ? firstChunk : firstChunk.subarray(0, bytes);\n\t\t\tconsumeFromHead(bytes);\n\t\t\treturn view;\n\t\t}\n\t\tconst result = new Uint8Array(bytes);\n\t\tlet copied = 0;\n\t\tlet remaining = bytes;\n\t\twhile (remaining > 0) {\n\t\t\tconst chunk = chunks[head];\n\t\t\tconst toCopy = Math.min(remaining, chunk.length);\n\t\t\tresult.set(toCopy === chunk.length ? chunk : chunk.subarray(0, toCopy), copied);\n\t\t\tcopied += toCopy;\n\t\t\tremaining -= toCopy;\n\t\t\tconsumeFromHead(toCopy);\n\t\t}\n\t\treturn result;\n\t}\n\treturn {\n\t\tpush: (chunk) => {\n\t\t\tif (chunk.length === 0) return;\n\t\t\tlet nextTail = tail + 1 & capacityMask;\n\t\t\tif (nextTail === head) {\n\t\t\t\tconst oldLen = chunks.length;\n\t\t\t\tconst newLen = oldLen * 2;\n\t\t\t\tconst newChunks = new Array(newLen);\n\t\t\t\tconst count = tail - head + oldLen & oldLen - 1;\n\t\t\t\tif (head < tail) for (let i = 0; i < count; i++) newChunks[i] = chunks[head + i];\n\t\t\t\telse if (count > 0) {\n\t\t\t\t\tconst firstPart = oldLen - head;\n\t\t\t\t\tfor (let i = 0; i < firstPart; i++) newChunks[i] = chunks[head + i];\n\t\t\t\t\tfor (let i = 0; i < tail; i++) newChunks[firstPart + i] = chunks[i];\n\t\t\t\t}\n\t\t\t\tchunks = newChunks;\n\t\t\t\tcapacityMask = newLen - 1;\n\t\t\t\thead = 0;\n\t\t\t\ttail = count;\n\t\t\t\tnextTail = tail + 1 & capacityMask;\n\t\t\t}\n\t\t\tchunks[tail] = chunk;\n\t\t\ttail = nextTail;\n\t\t\ttotalAvailable += chunk.length;\n\t\t},\n\t\tavailable: () => totalAvailable,\n\t\tpeek: (bytes) => {\n\t\t\tif (totalAvailable < bytes) return null;\n\t\t\tif (bytes === 0) return EMPTY;\n\t\t\tconst firstChunk = chunks[head];\n\t\t\tif (firstChunk.length >= bytes) return firstChunk.length === bytes ? firstChunk : firstChunk.subarray(0, bytes);\n\t\t\tconst result = new Uint8Array(bytes);\n\t\t\tlet copied = 0;\n\t\t\tlet index = head;\n\t\t\twhile (copied < bytes) {\n\t\t\t\tconst chunk = chunks[index];\n\t\t\t\tconst toCopy = Math.min(bytes - copied, chunk.length);\n\t\t\t\tif (toCopy === chunk.length) result.set(chunk, copied);\n\t\t\t\telse result.set(chunk.subarray(0, toCopy), copied);\n\t\t\t\tcopied += toCopy;\n\t\t\t\tindex = index + 1 & capacityMask;\n\t\t\t}\n\t\t\treturn result;\n\t\t},\n\t\tdiscard: (bytes) => {\n\t\t\tif (bytes > totalAvailable) throw new Error(\"Too many bytes consumed\");\n\t\t\tif (bytes === 0) return;\n\t\t\tlet remaining = bytes;\n\t\t\twhile (remaining > 0) {\n\t\t\t\tconst chunk = chunks[head];\n\t\t\t\tconst toConsume = Math.min(remaining, chunk.length);\n\t\t\t\tconsumeFromHead(toConsume);\n\t\t\t\tremaining -= toConsume;\n\t\t\t}\n\t\t},\n\t\tpull\n\t};\n}\n\n//#endregion\n//#region src/tar/unpacker.ts\nconst STATE_HEADER = 0;\nconst STATE_BODY = 1;\nconst truncateErr = /* @__PURE__ */ new Error(\"Tar archive is truncated.\");\nfunction createUnpacker(options = {}) {\n\tconst strict = options.strict ?? false;\n\tconst { available, peek, push, discard, pull } = createChunkQueue();\n\tlet state = STATE_HEADER;\n\tlet ended = false;\n\tlet done = false;\n\tlet eof = false;\n\tlet currentEntry = null;\n\tconst paxGlobals = {};\n\tlet nextEntryOverrides = {};\n\tconst unpacker = {\n\t\tisEntryActive: () => state === STATE_BODY,\n\t\tisBodyComplete: () => !currentEntry || currentEntry.remaining === 0,\n\t\twrite(chunk) {\n\t\t\tif (ended) throw new Error(\"Archive already ended.\");\n\t\t\tpush(chunk);\n\t\t},\n\t\tend() {\n\t\t\tended = true;\n\t\t},\n\t\treadHeader() {\n\t\t\tif (state !== STATE_HEADER) throw new Error(\"Cannot read header while an entry is active\");\n\t\t\tif (done) return void 0;\n\t\t\twhile (!done) {\n\t\t\t\tif (available() < BLOCK_SIZE) {\n\t\t\t\t\tif (ended) {\n\t\t\t\t\t\tif (available() > 0 && strict) throw truncateErr;\n\t\t\t\t\t\tdone = true;\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t\tconst headerBlock = peek(BLOCK_SIZE);\n\t\t\t\tif (isZeroBlock(headerBlock)) {\n\t\t\t\t\tif (available() < BLOCK_SIZE * 2) {\n\t\t\t\t\t\tif (ended) {\n\t\t\t\t\t\t\tif (strict) throw truncateErr;\n\t\t\t\t\t\t\tdone = true;\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\t\t\t\t\tif (isZeroBlock(peek(BLOCK_SIZE * 2).subarray(BLOCK_SIZE))) {\n\t\t\t\t\t\tdiscard(BLOCK_SIZE * 2);\n\t\t\t\t\t\tdone = true;\n\t\t\t\t\t\teof = true;\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tif (strict) throw new Error(\"Invalid tar header.\");\n\t\t\t\t\tdiscard(BLOCK_SIZE);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tlet internalHeader;\n\t\t\t\ttry {\n\t\t\t\t\tinternalHeader = parseUstarHeader(headerBlock, strict);\n\t\t\t\t} catch (err) {\n\t\t\t\t\tif (strict) throw err;\n\t\t\t\t\tdiscard(BLOCK_SIZE);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tconst metaParser = getMetaParser(internalHeader.type);\n\t\t\t\tif (metaParser) {\n\t\t\t\t\tconst paddedSize = internalHeader.size + BLOCK_SIZE_MASK & ~BLOCK_SIZE_MASK;\n\t\t\t\t\tif (available() < BLOCK_SIZE + paddedSize) {\n\t\t\t\t\t\tif (ended && strict) throw truncateErr;\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\t\t\t\t\tdiscard(BLOCK_SIZE);\n\t\t\t\t\tconst overrides = metaParser(pull(paddedSize).subarray(0, internalHeader.size));\n\t\t\t\t\tconst target = internalHeader.type === \"pax-global-header\" ? paxGlobals : nextEntryOverrides;\n\t\t\t\t\tfor (const key in overrides) target[key] = overrides[key];\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tdiscard(BLOCK_SIZE);\n\t\t\t\tconst header = internalHeader;\n\t\t\t\tif (internalHeader.prefix) header.name = `${internalHeader.prefix}/${header.name}`;\n\t\t\t\tapplyOverrides(header, paxGlobals);\n\t\t\t\tapplyOverrides(header, nextEntryOverrides);\n\t\t\t\tnextEntryOverrides = {};\n\t\t\t\tcurrentEntry = {\n\t\t\t\t\theader,\n\t\t\t\t\tremaining: header.size,\n\t\t\t\t\tpadding: -header.size & BLOCK_SIZE_MASK\n\t\t\t\t};\n\t\t\t\tstate = STATE_BODY;\n\t\t\t\treturn header;\n\t\t\t}\n\t\t},\n\t\tstreamBody(callback) {\n\t\t\tif (state !== STATE_BODY || !currentEntry || currentEntry.remaining === 0) return 0;\n\t\t\tconst bytesToFeed = Math.min(currentEntry.remaining, available());\n\t\t\tif (bytesToFeed === 0) return 0;\n\t\t\tconst fed = pull(bytesToFeed, callback);\n\t\t\tcurrentEntry.remaining -= fed;\n\t\t\treturn fed;\n\t\t},\n\t\tskipPadding() {\n\t\t\tif (state !== STATE_BODY || !currentEntry) return true;\n\t\t\tif (currentEntry.remaining > 0) throw new Error(\"Body not fully consumed\");\n\t\t\tif (available() < currentEntry.padding) return false;\n\t\t\tdiscard(currentEntry.padding);\n\t\t\tcurrentEntry = null;\n\t\t\tstate = STATE_HEADER;\n\t\t\treturn true;\n\t\t},\n\t\tskipEntry() {\n\t\t\tif (state !== STATE_BODY || !currentEntry) return true;\n\t\t\tconst toDiscard = Math.min(currentEntry.remaining, available());\n\t\t\tif (toDiscard > 0) {\n\t\t\t\tdiscard(toDiscard);\n\t\t\t\tcurrentEntry.remaining -= toDiscard;\n\t\t\t}\n\t\t\tif (currentEntry.remaining > 0) return false;\n\t\t\treturn unpacker.skipPadding();\n\t\t},\n\t\tvalidateEOF() {\n\t\t\tif (strict) {\n\t\t\t\tif (!eof) throw truncateErr;\n\t\t\t\tif (available() > 0) {\n\t\t\t\t\tif (pull(available()).some((byte) => byte !== 0)) throw new Error(\"Invalid EOF.\");\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\treturn unpacker;\n}\nfunction isZeroBlock(block) {\n\tif (block.byteOffset % 8 === 0) {\n\t\tconst view = new BigUint64Array(block.buffer, block.byteOffset, block.length / 8);\n\t\tfor (let i = 0; i < view.length; i++) if (view[i] !== 0n) return false;\n\t\treturn true;\n\t}\n\tfor (let i = 0; i < block.length; i++) if (block[i] !== 0) return false;\n\treturn true;\n}\n\n//#endregion\nexport { normalizeBody as a, LINK as c, isBodyless as i, SYMLINK as l, createTarPacker as n, DIRECTORY as o, transformHeader as r, FILE as s, createUnpacker as t };",
|
|
10
10
|
"import { a as normalizeBody, i as isBodyless, n as createTarPacker$1, r as transformHeader, t as createUnpacker } from \"../unpacker-BpPBxY8N.js\";\n\n//#region src/web/compression.ts\nfunction createGzipEncoder() {\n\treturn new CompressionStream(\"gzip\");\n}\nfunction createGzipDecoder() {\n\treturn new DecompressionStream(\"gzip\");\n}\n\n//#endregion\n//#region src/web/pack.ts\nfunction createTarPacker() {\n\tlet streamController;\n\tlet packer;\n\treturn {\n\t\treadable: new ReadableStream({ start(controller) {\n\t\t\tstreamController = controller;\n\t\t\tpacker = createTarPacker$1(controller.enqueue.bind(controller), controller.error.bind(controller), controller.close.bind(controller));\n\t\t} }),\n\t\tcontroller: {\n\t\t\tadd(header) {\n\t\t\t\tconst bodyless = isBodyless(header);\n\t\t\t\tconst h = { ...header };\n\t\t\t\tif (bodyless) h.size = 0;\n\t\t\t\tpacker.add(h);\n\t\t\t\tif (bodyless) packer.endEntry();\n\t\t\t\treturn new WritableStream({\n\t\t\t\t\twrite(chunk) {\n\t\t\t\t\t\tpacker.write(chunk);\n\t\t\t\t\t},\n\t\t\t\t\tclose() {\n\t\t\t\t\t\tif (!bodyless) packer.endEntry();\n\t\t\t\t\t},\n\t\t\t\t\tabort(reason) {\n\t\t\t\t\t\tstreamController.error(reason);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t},\n\t\t\tfinalize() {\n\t\t\t\tpacker.finalize();\n\t\t\t},\n\t\t\terror(err) {\n\t\t\t\tstreamController.error(err);\n\t\t\t}\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/web/stream-utils.ts\nasync function streamToBuffer(stream) {\n\tconst chunks = [];\n\tconst reader = stream.getReader();\n\tlet totalLength = 0;\n\ttry {\n\t\twhile (true) {\n\t\t\tconst { done, value } = await reader.read();\n\t\t\tif (done) break;\n\t\t\tchunks.push(value);\n\t\t\ttotalLength += value.length;\n\t\t}\n\t\tconst result = new Uint8Array(totalLength);\n\t\tlet offset = 0;\n\t\tfor (const chunk of chunks) {\n\t\t\tresult.set(chunk, offset);\n\t\t\toffset += chunk.length;\n\t\t}\n\t\treturn result;\n\t} finally {\n\t\treader.releaseLock();\n\t}\n}\nconst drain = (stream) => stream.pipeTo(new WritableStream());\n\n//#endregion\n//#region src/web/unpack.ts\nfunction createTarDecoder(options = {}) {\n\tconst unpacker = createUnpacker(options);\n\tlet bodyController = null;\n\tlet pumping = false;\n\tconst pump = (controller) => {\n\t\tif (pumping) return;\n\t\tpumping = true;\n\t\ttry {\n\t\t\twhile (true) if (unpacker.isEntryActive()) {\n\t\t\t\tif (bodyController) {\n\t\t\t\t\tif (unpacker.streamBody((c) => (bodyController.enqueue(c), true)) === 0 && !unpacker.isBodyComplete()) break;\n\t\t\t\t} else if (!unpacker.skipEntry()) break;\n\t\t\t\tif (unpacker.isBodyComplete()) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tbodyController?.close();\n\t\t\t\t\t} catch {}\n\t\t\t\t\tbodyController = null;\n\t\t\t\t\tif (!unpacker.skipPadding()) break;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst header = unpacker.readHeader();\n\t\t\t\tif (header === null || header === void 0) break;\n\t\t\t\tcontroller.enqueue({\n\t\t\t\t\theader,\n\t\t\t\t\tbody: new ReadableStream({\n\t\t\t\t\t\tstart(c) {\n\t\t\t\t\t\t\tif (header.size === 0) c.close();\n\t\t\t\t\t\t\telse bodyController = c;\n\t\t\t\t\t\t},\n\t\t\t\t\t\tpull: () => pump(controller),\n\t\t\t\t\t\tcancel() {\n\t\t\t\t\t\t\tbodyController = null;\n\t\t\t\t\t\t\tpump(controller);\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t});\n\t\t\t}\n\t\t} catch (error) {\n\t\t\ttry {\n\t\t\t\tbodyController?.error(error);\n\t\t\t} catch {}\n\t\t\tbodyController = null;\n\t\t\tthrow error;\n\t\t} finally {\n\t\t\tpumping = false;\n\t\t}\n\t};\n\treturn new TransformStream({\n\t\ttransform(chunk, controller) {\n\t\t\ttry {\n\t\t\t\tunpacker.write(chunk);\n\t\t\t\tpump(controller);\n\t\t\t} catch (error) {\n\t\t\t\ttry {\n\t\t\t\t\tbodyController?.error(error);\n\t\t\t\t} catch {}\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t},\n\t\tflush(controller) {\n\t\t\ttry {\n\t\t\t\tunpacker.end();\n\t\t\t\tpump(controller);\n\t\t\t\tunpacker.validateEOF();\n\t\t\t\tif (unpacker.isEntryActive() && !unpacker.isBodyComplete()) try {\n\t\t\t\t\tbodyController?.close();\n\t\t\t\t} catch {}\n\t\t\t} catch (error) {\n\t\t\t\ttry {\n\t\t\t\t\tbodyController?.error(error);\n\t\t\t\t} catch {}\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t}\n\t}, void 0, { highWaterMark: 1 });\n}\n\n//#endregion\n//#region src/web/helpers.ts\nasync function packTar(entries) {\n\tconst { readable, controller } = createTarPacker();\n\tawait (async () => {\n\t\tfor (const entry of entries) {\n\t\t\tconst entryStream = controller.add(entry.header);\n\t\t\tconst body = \"body\" in entry ? entry.body : entry.data;\n\t\t\tif (!body) {\n\t\t\t\tawait entryStream.close();\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (body instanceof ReadableStream) await body.pipeTo(entryStream);\n\t\t\telse if (body instanceof Blob) await body.stream().pipeTo(entryStream);\n\t\t\telse try {\n\t\t\t\tconst chunk = await normalizeBody(body);\n\t\t\t\tif (chunk.length > 0) {\n\t\t\t\t\tconst writer = entryStream.getWriter();\n\t\t\t\t\tawait writer.write(chunk);\n\t\t\t\t\tawait writer.close();\n\t\t\t\t} else await entryStream.close();\n\t\t\t} catch {\n\t\t\t\tthrow new TypeError(`Unsupported content type for entry \"${entry.header.name}\".`);\n\t\t\t}\n\t\t}\n\t})().then(() => controller.finalize()).catch((err) => controller.error(err));\n\treturn new Uint8Array(await streamToBuffer(readable));\n}\nasync function unpackTar(archive, options = {}) {\n\tconst sourceStream = archive instanceof ReadableStream ? archive : new ReadableStream({ start(controller) {\n\t\tcontroller.enqueue(archive instanceof Uint8Array ? archive : new Uint8Array(archive));\n\t\tcontroller.close();\n\t} });\n\tconst results = [];\n\tconst entryStream = sourceStream.pipeThrough(createTarDecoder(options));\n\tfor await (const entry of entryStream) {\n\t\tlet processedHeader;\n\t\ttry {\n\t\t\tprocessedHeader = transformHeader(entry.header, options);\n\t\t} catch (error) {\n\t\t\tawait entry.body.cancel();\n\t\t\tthrow error;\n\t\t}\n\t\tif (processedHeader === null) {\n\t\t\tawait drain(entry.body);\n\t\t\tcontinue;\n\t\t}\n\t\tif (isBodyless(processedHeader)) {\n\t\t\tawait drain(entry.body);\n\t\t\tresults.push({ header: processedHeader });\n\t\t} else results.push({\n\t\t\theader: processedHeader,\n\t\t\tdata: await streamToBuffer(entry.body)\n\t\t});\n\t}\n\treturn results;\n}\n\n//#endregion\nexport { createGzipDecoder, createGzipEncoder, createTarDecoder, createTarPacker, packTar, unpackTar };",
|
|
11
|
-
"import type { RXM, RXL } from \"~/types/index.js\";\n\n/**\n * Create RXL from RXM.\n *\n * @param rxm - Resource manifest\n * @returns RXL locator object (pure data)\n */\nexport function locate(rxm: RXM): RXL {\n return {\n
|
|
11
|
+
"import type { RXM, RXL } from \"~/types/index.js\";\n\n/**\n * Create RXL from RXM.\n *\n * @param rxm - Resource manifest\n * @returns RXL locator object (pure data)\n */\nexport function locate(rxm: RXM): RXL {\n return {\n registry: rxm.registry,\n path: rxm.path,\n name: rxm.name,\n tag: rxm.tag,\n };\n}\n",
|
|
12
12
|
"import type { RXM, RXA, RXR } from \"~/types/index.js\";\nimport { locate } from \"./locate.js\";\n\n/**\n * Create RXR from RXM and RXA.\n *\n * @param rxm - Resource manifest\n * @param rxa - Resource archive\n * @returns RXR resource object\n */\nexport function resource(rxm: RXM, rxa: RXA): RXR {\n const rxl = locate(rxm);\n\n return {\n locator: rxl,\n manifest: rxm,\n archive: rxa,\n };\n}\n",
|
|
13
13
|
"import { gunzip } from \"node:zlib\";\nimport { promisify } from \"node:util\";\nimport { unpackTar } from \"modern-tar\";\nimport type { RXA } from \"~/types/index.js\";\n\nconst gunzipAsync = promisify(gunzip);\n\n/**\n * Extract files from RXA.\n *\n * @param rxa - Resource archive\n * @returns Record of file paths to Buffer contents\n */\nexport async function extract(rxa: RXA): Promise<Record<string, Buffer>> {\n const buffer = await rxa.buffer();\n\n // Decompress gzip\n const tarBuffer = await gunzipAsync(buffer);\n\n // Unpack tar\n const entries = await unpackTar(tarBuffer);\n\n const files: Record<string, Buffer> = {};\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\n return files;\n}\n",
|
|
14
|
-
"import type { RXL } from \"~/types/index.js\";\n\n/**\n * Format RXL to locator string.\n *\n *
|
|
15
|
-
"import type { RXL } from \"~/types/index.js\";\nimport { LocatorError } from \"~/errors.js\";\n\n/**\n * Parse locator string to RXL.\n *\n *
|
|
14
|
+
"import type { RXL } from \"~/types/index.js\";\n\n/**\n * Format RXL to locator string.\n *\n * Docker-style format: [registry/][path/]name[:tag]\n *\n * Examples:\n * - { name: \"hello\", tag: \"latest\" } → \"hello\" (omit :latest)\n * - { name: \"hello\", tag: \"1.0.0\" } → \"hello:1.0.0\"\n * - { registry: \"localhost:3098\", name: \"hello\", tag: \"1.0.0\" } → \"localhost:3098/hello:1.0.0\"\n *\n * @param rxl - Resource locator\n * @returns Locator string\n */\nexport function format(rxl: RXL): string {\n let result = \"\";\n\n // Add registry if present\n if (rxl.registry) {\n result += rxl.registry + \"/\";\n }\n\n // Add path if present\n if (rxl.path) {\n result += rxl.path + \"/\";\n }\n\n // Add name\n result += rxl.name;\n\n // Add tag (omit if \"latest\" for cleaner output)\n if (rxl.tag && rxl.tag !== \"latest\") {\n result += \":\" + rxl.tag;\n }\n\n return result;\n}\n",
|
|
15
|
+
"import type { RXL } from \"~/types/index.js\";\nimport { LocatorError } from \"~/errors.js\";\n\n/**\n * Check if a string looks like a registry (contains port or is a domain).\n * Used to distinguish registry from path.\n */\nfunction looksLikeRegistry(str: string): boolean {\n // Contains port (e.g., localhost:3098)\n if (str.includes(\":\") && !str.includes(\"/\")) {\n return true;\n }\n // Contains dot (e.g., registry.example.com)\n if (str.includes(\".\")) {\n return true;\n }\n // localhost without port\n if (str === \"localhost\") {\n return true;\n }\n return false;\n}\n\n/**\n * Parse locator string to RXL.\n *\n * Docker-style format: [registry/][path/]name[:tag]\n *\n * Examples:\n * - hello → name=hello, tag=latest\n * - hello:1.0.0 → name=hello, tag=1.0.0\n * - prompts/hello:stable → path=prompts, name=hello, tag=stable\n * - localhost:3098/hello:1.0.0 → registry=localhost:3098, name=hello, tag=1.0.0\n *\n * @param locator - Locator string\n * @returns RXL object\n * @throws LocatorError if parsing fails\n */\nexport function parse(locator: string): RXL {\n if (!locator || typeof locator !== \"string\") {\n throw new LocatorError(\"Locator must be a non-empty string\", locator);\n }\n\n // Validate no invalid characters\n if (locator.includes(\"@\")) {\n throw new LocatorError(\"Invalid locator format. Use name:tag instead of name@version\", locator);\n }\n\n // Split by last colon to extract tag (but be careful with registry port)\n // Strategy: find the name:tag part first, which is after the last /\n const lastSlashIndex = locator.lastIndexOf(\"/\");\n let beforeSlash = \"\";\n let afterSlash = locator;\n\n if (lastSlashIndex !== -1) {\n beforeSlash = locator.substring(0, lastSlashIndex);\n afterSlash = locator.substring(lastSlashIndex + 1);\n }\n\n // Parse name:tag from afterSlash\n const colonIndex = afterSlash.lastIndexOf(\":\");\n let name: string;\n let tag: string;\n\n if (colonIndex === -1) {\n // No tag specified, default to \"latest\"\n name = afterSlash;\n tag = \"latest\";\n } else {\n name = afterSlash.substring(0, colonIndex);\n tag = afterSlash.substring(colonIndex + 1);\n }\n\n if (!name) {\n throw new LocatorError(\"Name is required\", locator);\n }\n\n if (!tag) {\n throw new LocatorError(\n \"Tag cannot be empty. Use name:tag format or omit tag for :latest\",\n locator\n );\n }\n\n // If no slash, it's a simple local locator\n if (lastSlashIndex === -1) {\n return {\n registry: undefined,\n path: undefined,\n name,\n tag,\n };\n }\n\n // Parse registry and path from beforeSlash\n const parts = beforeSlash.split(\"/\");\n\n // Check if first part looks like a registry\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\n // No registry, everything before last slash is path\n return {\n registry: undefined,\n path: beforeSlash,\n name,\n tag,\n };\n}\n",
|
|
16
16
|
"import type { RXA } from \"~/types/index.js\";\n\n/**\n * RXA Implementation for wrap\n */\nclass RXAImpl implements RXA {\n private readonly _buffer: Buffer;\n\n constructor(buffer: Buffer) {\n this._buffer = buffer;\n }\n\n get stream(): ReadableStream<Uint8Array> {\n const buffer = this._buffer;\n return new ReadableStream({\n start(controller) {\n controller.enqueue(new Uint8Array(buffer));\n controller.close();\n },\n });\n }\n\n async buffer(): Promise<Buffer> {\n return this._buffer;\n }\n}\n\n/**\n * Wrap existing tar.gz buffer as RXA.\n *\n * @param buffer - Existing tar.gz buffer\n * @returns RXA archive object\n */\nexport function wrap(buffer: Buffer): RXA {\n return new RXAImpl(buffer);\n}\n"
|
|
17
17
|
],
|
|
18
|
-
"mappings": "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",
|
|
19
|
-
"debugId": "
|
|
18
|
+
"mappings": "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",
|
|
19
|
+
"debugId": "E36D0778C816F02964756E2164756E21",
|
|
20
20
|
"names": []
|
|
21
21
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@resourcexjs/core",
|
|
3
|
-
"version": "2.5.
|
|
3
|
+
"version": "2.5.1",
|
|
4
4
|
"description": "ResourceX Core - Resource management layer",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"resourcex",
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"url": "git+https://github.com/Deepractice/ResourceX.git",
|
|
13
13
|
"directory": "packages/core"
|
|
14
14
|
},
|
|
15
|
-
"license": "
|
|
15
|
+
"license": "Apache-2.0",
|
|
16
16
|
"engines": {
|
|
17
17
|
"node": ">=22.0.0"
|
|
18
18
|
},
|