@resourcexjs/core 0.1.0 → 0.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/README.md CHANGED
@@ -30,19 +30,56 @@ import { resolve } from "@resourcexjs/core";
30
30
 
31
31
  const resource = await resolve("arp:text:https://example.com/file.txt");
32
32
  // { type: "text", content: "...", meta: { ... } }
33
+
34
+ const binary = await resolve("arp:binary:file://./image.png");
35
+ // { type: "binary", content: Buffer, meta: { ... } }
36
+ ```
37
+
38
+ ### Deposit Resources
39
+
40
+ ```typescript
41
+ import { deposit } from "@resourcexjs/core";
42
+
43
+ await deposit("arp:text:file://./data/config.txt", "hello world");
44
+ await deposit("arp:binary:file://./data/image.png", buffer);
45
+ ```
46
+
47
+ ### Check Existence & Delete
48
+
49
+ ```typescript
50
+ import { resourceExists, resourceDelete } from "@resourcexjs/core";
51
+
52
+ const exists = await resourceExists("arp:text:file://./data/config.txt");
53
+ await resourceDelete("arp:text:file://./data/config.txt");
33
54
  ```
34
55
 
35
56
  ### Custom Transport Handler
36
57
 
58
+ Transport provides I/O primitives (read/write/list/exists/delete):
59
+
37
60
  ```typescript
38
61
  import { registerTransportHandler, type TransportHandler } from "@resourcexjs/core";
39
62
 
40
63
  const s3Handler: TransportHandler = {
41
- protocol: "s3",
42
- async fetch(location: string): Promise<Buffer> {
43
- // fetch from S3...
64
+ name: "s3",
65
+ capabilities: {
66
+ canRead: true,
67
+ canWrite: true,
68
+ canList: true,
69
+ canDelete: true,
70
+ canStat: false,
71
+ },
72
+ async read(location: string): Promise<Buffer> {
73
+ // read from S3...
44
74
  return buffer;
45
75
  },
76
+ async write(location: string, content: Buffer): Promise<void> {
77
+ // write to S3...
78
+ },
79
+ async list(location: string): Promise<string[]> {
80
+ // list S3 objects...
81
+ return keys;
82
+ },
46
83
  };
47
84
 
48
85
  registerTransportHandler(s3Handler);
@@ -50,20 +87,33 @@ registerTransportHandler(s3Handler);
50
87
 
51
88
  ### Custom Semantic Handler
52
89
 
90
+ Semantic orchestrates Transport primitives to handle resource logic:
91
+
53
92
  ```typescript
54
93
  import { registerSemanticHandler, type SemanticHandler, type Resource } from "@resourcexjs/core";
55
94
 
56
95
  const jsonHandler: SemanticHandler = {
57
- type: "json",
58
- parse(content: Buffer, context): Resource {
96
+ name: "json",
97
+ async resolve(transport, location, context): Promise<Resource> {
98
+ const buffer = await transport.read(location);
59
99
  return {
60
100
  type: "json",
61
- content: JSON.parse(content.toString("utf-8")),
101
+ content: JSON.parse(buffer.toString("utf-8")),
62
102
  meta: {
63
- /* ... */
103
+ url: context.url,
104
+ semantic: context.semantic,
105
+ transport: context.transport,
106
+ location: context.location,
107
+ size: buffer.length,
108
+ resolvedAt: context.timestamp.toISOString(),
64
109
  },
65
110
  };
66
111
  },
112
+ async deposit(transport, location, data, context): Promise<void> {
113
+ if (!transport.write) throw new Error("Transport does not support write");
114
+ const buffer = Buffer.from(JSON.stringify(data), "utf-8");
115
+ await transport.write(location, buffer);
116
+ },
67
117
  };
68
118
 
69
119
  registerSemanticHandler(jsonHandler);
@@ -75,22 +125,27 @@ registerSemanticHandler(jsonHandler);
75
125
 
76
126
  - `parseARP(url)` - Parse ARP URL string
77
127
  - `resolve(url)` - Resolve ARP URL to resource
78
- - `getTransportHandler(protocol)` - Get registered transport handler
128
+ - `deposit(url, data)` - Deposit data to ARP URL
129
+ - `resourceExists(url)` - Check if resource exists
130
+ - `resourceDelete(url)` - Delete resource
131
+ - `getTransportHandler(name)` - Get registered transport handler
79
132
  - `registerTransportHandler(handler)` - Register custom transport
80
- - `getSemanticHandler(type)` - Get registered semantic handler
133
+ - `getSemanticHandler(name)` - Get registered semantic handler
81
134
  - `registerSemanticHandler(handler)` - Register custom semantic
135
+ - `createResourceRegistry()` - Create a resource definition registry
82
136
 
83
137
  ### Built-in Handlers
84
138
 
85
139
  **Transport:**
86
140
 
87
- - `httpsHandler` - HTTPS protocol
88
- - `httpHandler` - HTTP protocol
89
- - `fileHandler` - Local file system
141
+ - `httpsHandler` - HTTPS protocol (read-only)
142
+ - `httpHandler` - HTTP protocol (read-only)
143
+ - `fileHandler` - Local file system (read/write/list/delete)
90
144
 
91
145
  **Semantic:**
92
146
 
93
- - `textHandler` - Plain text
147
+ - `textHandler` - Plain text (UTF-8 encoding)
148
+ - `binaryHandler` - Raw binary (Buffer passthrough)
94
149
 
95
150
  ### Error Classes
96
151
 
@@ -110,10 +165,16 @@ import type {
110
165
  ParsedARP,
111
166
  Resource,
112
167
  ResourceMeta,
113
- ParseContext,
168
+ SemanticContext,
114
169
  TransportHandler,
170
+ TransportCapabilities,
171
+ ResourceStat,
115
172
  SemanticHandler,
116
173
  TextResource,
174
+ BinaryResource,
175
+ BinaryInput,
176
+ ResourceDefinition,
177
+ ResourceRegistry,
117
178
  } from "@resourcexjs/core";
118
179
  ```
119
180
 
package/dist/index.d.ts CHANGED
@@ -233,6 +233,22 @@ declare class TextSemanticHandler implements SemanticHandler<string> {
233
233
  delete(transport: TransportHandler, location: string, _context: SemanticContext): Promise<void>;
234
234
  }
235
235
  declare const textHandler: TextSemanticHandler;
236
+ interface BinaryResource extends Resource<Buffer> {
237
+ type: "binary";
238
+ content: Buffer;
239
+ }
240
+ /**
241
+ * Supported binary input types for deposit
242
+ */
243
+ type BinaryInput = Buffer | Uint8Array | ArrayBuffer | number[];
244
+ declare class BinarySemanticHandler implements SemanticHandler<Buffer> {
245
+ readonly name = "binary";
246
+ resolve(transport: TransportHandler, location: string, context: SemanticContext): Promise<BinaryResource>;
247
+ deposit(transport: TransportHandler, location: string, data: BinaryInput, _context: SemanticContext): Promise<void>;
248
+ exists(transport: TransportHandler, location: string, _context: SemanticContext): Promise<boolean>;
249
+ delete(transport: TransportHandler, location: string, _context: SemanticContext): Promise<void>;
250
+ }
251
+ declare const binaryHandler: BinarySemanticHandler;
236
252
  /**
237
253
  * Get semantic handler by name
238
254
  */
@@ -270,5 +286,43 @@ declare function resourceExists(url: string): Promise<boolean>;
270
286
  * await resourceDelete("arp:text:file://./data/config.txt");
271
287
  */
272
288
  declare function resourceDelete(url: string): Promise<void>;
289
+ /**
290
+ * Resource Definition Types
291
+ */
292
+ /**
293
+ * Definition of a custom resource (shortcut for ARP URL)
294
+ */
295
+ interface ResourceDefinition {
296
+ /** Unique name for the resource (used in URL: name://location) */
297
+ readonly name: string;
298
+ /** Semantic type (e.g., "text", "json", "binary") */
299
+ readonly semantic: string;
300
+ /** Transport type (e.g., "file", "https") */
301
+ readonly transport: string;
302
+ /** Base path prepended to location (optional) */
303
+ readonly basePath?: string;
304
+ }
305
+ /**
306
+ * Create a new resource registry (isolated instance)
307
+ */
308
+ declare function createResourceRegistry(): {
309
+ /**
310
+ * Register a resource definition
311
+ */
312
+ register(definition: ResourceDefinition): void
313
+ /**
314
+ * Get a resource definition by name
315
+ */
316
+ get(name: string): ResourceDefinition | undefined
317
+ /**
318
+ * Check if a resource is registered
319
+ */
320
+ has(name: string): boolean
321
+ /**
322
+ * Clear all registered resources
323
+ */
324
+ clear(): void
325
+ };
326
+ type ResourceRegistry = ReturnType<typeof createResourceRegistry>;
273
327
  declare const VERSION: string;
274
- export { textHandler, resourceExists, resourceDelete, resolve, registerTransportHandler, registerSemanticHandler, parseARP, httpsHandler, httpHandler, getTransportHandler, getSemanticHandler, fileHandler, deposit, VERSION, TransportHandler, TransportError, TransportCapabilities, TextResource, SemanticHandler, SemanticError, SemanticContext, ResourceXError, ResourceStat, ResourceMeta, Resource, ParsedARP, ParseError };
328
+ export { textHandler, resourceExists, resourceDelete, resolve, registerTransportHandler, registerSemanticHandler, parseARP, httpsHandler, httpHandler, getTransportHandler, getSemanticHandler, fileHandler, deposit, createResourceRegistry, binaryHandler, VERSION, TransportHandler, TransportError, TransportCapabilities, TextResource, SemanticHandler, SemanticError, SemanticContext, ResourceXError, ResourceStat, ResourceRegistry, ResourceMeta, ResourceDefinition, Resource, ParsedARP, ParseError, BinaryResource, BinaryInput };
package/dist/index.js CHANGED
@@ -259,8 +259,72 @@ class TextSemanticHandler {
259
259
  }
260
260
  }
261
261
  var textHandler = new TextSemanticHandler;
262
+ // src/semantic/binary.ts
263
+ function toBuffer(data) {
264
+ if (Buffer.isBuffer(data)) {
265
+ return data;
266
+ }
267
+ if (data instanceof Uint8Array) {
268
+ return Buffer.from(data);
269
+ }
270
+ if (data instanceof ArrayBuffer) {
271
+ return Buffer.from(data);
272
+ }
273
+ if (Array.isArray(data)) {
274
+ return Buffer.from(data);
275
+ }
276
+ throw new SemanticError(`Unsupported binary input type`, "binary");
277
+ }
278
+
279
+ class BinarySemanticHandler {
280
+ name = "binary";
281
+ async resolve(transport, location, context) {
282
+ const buffer = await transport.read(location);
283
+ const meta = {
284
+ url: context.url,
285
+ semantic: context.semantic,
286
+ transport: context.transport,
287
+ location: context.location,
288
+ size: buffer.length,
289
+ resolvedAt: context.timestamp.toISOString()
290
+ };
291
+ return {
292
+ type: "binary",
293
+ content: buffer,
294
+ meta
295
+ };
296
+ }
297
+ async deposit(transport, location, data, _context) {
298
+ if (!transport.write) {
299
+ throw new SemanticError(`Transport "${transport.name}" does not support write operation`, this.name);
300
+ }
301
+ const buffer = toBuffer(data);
302
+ await transport.write(location, buffer);
303
+ }
304
+ async exists(transport, location, _context) {
305
+ if (transport.exists) {
306
+ return transport.exists(location);
307
+ }
308
+ try {
309
+ await transport.read(location);
310
+ return true;
311
+ } catch {
312
+ return false;
313
+ }
314
+ }
315
+ async delete(transport, location, _context) {
316
+ if (!transport.delete) {
317
+ throw new SemanticError(`Transport "${transport.name}" does not support delete operation`, this.name);
318
+ }
319
+ await transport.delete(location);
320
+ }
321
+ }
322
+ var binaryHandler = new BinarySemanticHandler;
262
323
  // src/semantic/index.ts
263
- var handlers2 = new Map([["text", textHandler]]);
324
+ var handlers2 = new Map([
325
+ ["text", textHandler],
326
+ ["binary", binaryHandler]
327
+ ]);
264
328
  function getSemanticHandler(name) {
265
329
  const handler = handlers2.get(name);
266
330
  if (!handler) {
@@ -329,9 +393,31 @@ async function resourceDelete(url) {
329
393
  }
330
394
  await transport.delete(parsed.location);
331
395
  }
332
-
396
+ // src/resource/registry.ts
397
+ function createResourceRegistry() {
398
+ const registry = new Map;
399
+ return {
400
+ register(definition) {
401
+ if (!/^[a-z][a-z0-9-]*$/.test(definition.name)) {
402
+ throw new ParseError(`Invalid resource name: "${definition.name}". Must start with lowercase letter and contain only lowercase letters, numbers, and hyphens.`, definition.name);
403
+ }
404
+ getSemanticHandler(definition.semantic);
405
+ getTransportHandler(definition.transport);
406
+ registry.set(definition.name, definition);
407
+ },
408
+ get(name) {
409
+ return registry.get(name);
410
+ },
411
+ has(name) {
412
+ return registry.has(name);
413
+ },
414
+ clear() {
415
+ registry.clear();
416
+ }
417
+ };
418
+ }
333
419
  // src/index.ts
334
- var VERSION = "0.1.0";
420
+ var VERSION = "0.3.0";
335
421
  export {
336
422
  textHandler,
337
423
  resourceExists,
@@ -346,6 +432,8 @@ export {
346
432
  getSemanticHandler,
347
433
  fileHandler,
348
434
  deposit,
435
+ createResourceRegistry,
436
+ binaryHandler,
349
437
  VERSION,
350
438
  TransportError,
351
439
  SemanticError,
@@ -353,4 +441,4 @@ export {
353
441
  ParseError
354
442
  };
355
443
 
356
- //# debugId=2B4D80A207905AF464756E2164756E21
444
+ //# debugId=3CCC29CAAC2626B164756E2164756E21
package/dist/index.js.map CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../src/errors.ts", "../src/parser.ts", "../src/transport/http.ts", "../src/transport/file.ts", "../src/transport/index.ts", "../src/semantic/text.ts", "../src/semantic/index.ts", "../src/resolve.ts", "../src/index.ts"],
3
+ "sources": ["../src/errors.ts", "../src/parser.ts", "../src/transport/http.ts", "../src/transport/file.ts", "../src/transport/index.ts", "../src/semantic/text.ts", "../src/semantic/binary.ts", "../src/semantic/index.ts", "../src/resolve.ts", "../src/resource/registry.ts", "../src/index.ts"],
4
4
  "sourcesContent": [
5
5
  "/**\n * ResourceX Error Types\n */\n\n/**\n * Base error class for all ResourceX errors\n */\nexport class ResourceXError extends Error {\n constructor(message: string, options?: ErrorOptions) {\n super(message, options);\n this.name = \"ResourceXError\";\n }\n}\n\n/**\n * Error thrown when ARP URL parsing fails\n */\nexport class ParseError extends ResourceXError {\n constructor(\n message: string,\n public readonly url?: string\n ) {\n super(message);\n this.name = \"ParseError\";\n }\n}\n\n/**\n * Error thrown when transport layer fails\n */\nexport class TransportError extends ResourceXError {\n constructor(\n message: string,\n public readonly transport?: string,\n options?: ErrorOptions\n ) {\n super(message, options);\n this.name = \"TransportError\";\n }\n}\n\n/**\n * Error thrown when semantic layer fails\n */\nexport class SemanticError extends ResourceXError {\n constructor(\n message: string,\n public readonly semantic?: string,\n options?: ErrorOptions\n ) {\n super(message, options);\n this.name = \"SemanticError\";\n }\n}\n",
6
6
  "/**\n * ARP URL Parser\n * Format: arp:{semantic}:{transport}://{location}\n */\n\nimport { ParseError } from \"./errors.js\";\n\nexport interface ParsedARP {\n semantic: string;\n transport: string;\n location: string;\n}\n\n/**\n * Parse an ARP URL into its components\n *\n * @example\n * parseARP(\"arp:text:https://example.com/file.txt\")\n * // { semantic: \"text\", transport: \"https\", location: \"example.com/file.txt\" }\n */\nexport function parseARP(url: string): ParsedARP {\n // 1. Check protocol prefix\n if (!url.startsWith(\"arp:\")) {\n throw new ParseError(`Invalid ARP URL: must start with \"arp:\"`, url);\n }\n\n const content = url.substring(4); // Remove \"arp:\"\n\n // 2. Find :// separator\n const separatorIndex = content.indexOf(\"://\");\n if (separatorIndex === -1) {\n throw new ParseError(`Invalid ARP URL: missing \"://\"`, url);\n }\n\n const typePart = content.substring(0, separatorIndex);\n const location = content.substring(separatorIndex + 3);\n\n // 3. Split type part by :\n const colonIndex = typePart.indexOf(\":\");\n if (colonIndex === -1) {\n throw new ParseError(`Invalid ARP URL: must have exactly 2 types (semantic:transport)`, url);\n }\n\n const semantic = typePart.substring(0, colonIndex);\n const transport = typePart.substring(colonIndex + 1);\n\n // 4. Validate non-empty\n if (!semantic) {\n throw new ParseError(`Invalid ARP URL: semantic type cannot be empty`, url);\n }\n if (!transport) {\n throw new ParseError(`Invalid ARP URL: transport type cannot be empty`, url);\n }\n if (!location) {\n throw new ParseError(`Invalid ARP URL: location cannot be empty`, url);\n }\n\n return { semantic, transport, location };\n}\n",
@@ -8,11 +8,13 @@
8
8
  "/**\n * File Transport Handler\n * Provides I/O primitives for local filesystem\n */\n\nimport { readFile, writeFile, readdir, mkdir, rm, access, stat as fsStat } from \"node:fs/promises\";\nimport { resolve, dirname } from \"node:path\";\nimport { TransportError } from \"../errors.js\";\nimport type { TransportHandler, TransportCapabilities, ResourceStat } from \"./types.js\";\n\nexport class FileTransportHandler implements TransportHandler {\n readonly name = \"file\";\n\n readonly capabilities: TransportCapabilities = {\n canRead: true,\n canWrite: true,\n canList: true,\n canDelete: true,\n canStat: true,\n };\n\n private resolvePath(location: string): string {\n return resolve(process.cwd(), location);\n }\n\n async read(location: string): Promise<Buffer> {\n const filePath = this.resolvePath(location);\n\n try {\n return await readFile(filePath);\n } catch (error) {\n const err = error as Error & { code?: string };\n throw new TransportError(`File read error: ${err.code} - ${filePath}`, this.name, {\n cause: err,\n });\n }\n }\n\n async write(location: string, content: Buffer): Promise<void> {\n const filePath = this.resolvePath(location);\n\n try {\n // Ensure directory exists\n await mkdir(dirname(filePath), { recursive: true });\n await writeFile(filePath, content);\n } catch (error) {\n const err = error as Error & { code?: string };\n throw new TransportError(`File write error: ${err.code} - ${filePath}`, this.name, {\n cause: err,\n });\n }\n }\n\n async list(location: string): Promise<string[]> {\n const dirPath = this.resolvePath(location);\n\n try {\n return await readdir(dirPath);\n } catch (error) {\n const err = error as Error & { code?: string };\n throw new TransportError(`Directory list error: ${err.code} - ${dirPath}`, this.name, {\n cause: err,\n });\n }\n }\n\n async mkdir(location: string): Promise<void> {\n const dirPath = this.resolvePath(location);\n\n try {\n await mkdir(dirPath, { recursive: true });\n } catch (error) {\n const err = error as Error & { code?: string };\n throw new TransportError(`Directory create error: ${err.code} - ${dirPath}`, this.name, {\n cause: err,\n });\n }\n }\n\n async exists(location: string): Promise<boolean> {\n const filePath = this.resolvePath(location);\n\n try {\n await access(filePath);\n return true;\n } catch {\n return false;\n }\n }\n\n async stat(location: string): Promise<ResourceStat> {\n const filePath = this.resolvePath(location);\n\n try {\n const stats = await fsStat(filePath);\n return {\n size: stats.size,\n modifiedAt: stats.mtime,\n isDirectory: stats.isDirectory(),\n };\n } catch (error) {\n const err = error as Error & { code?: string };\n throw new TransportError(`File stat error: ${err.code} - ${filePath}`, this.name, {\n cause: err,\n });\n }\n }\n\n async delete(location: string): Promise<void> {\n const filePath = this.resolvePath(location);\n\n try {\n await rm(filePath, { recursive: true });\n } catch (error) {\n const err = error as Error & { code?: string };\n throw new TransportError(`File delete error: ${err.code} - ${filePath}`, this.name, {\n cause: err,\n });\n }\n }\n}\n\nexport const fileHandler: FileTransportHandler = new FileTransportHandler();\n",
9
9
  "/**\n * Transport Handlers Registry\n */\n\nimport { TransportError } from \"../errors.js\";\n\nexport type { TransportHandler, TransportCapabilities, ResourceStat } from \"./types.js\";\nexport { HttpTransportHandler, httpsHandler, httpHandler } from \"./http.js\";\nexport { FileTransportHandler, fileHandler } from \"./file.js\";\n\nimport type { TransportHandler } from \"./types.js\";\nimport { httpsHandler, httpHandler } from \"./http.js\";\nimport { fileHandler } from \"./file.js\";\n\nconst handlers = new Map<string, TransportHandler>([\n [\"https\", httpsHandler],\n [\"http\", httpHandler],\n [\"file\", fileHandler],\n]);\n\n/**\n * Get transport handler by name\n */\nexport function getTransportHandler(name: string): TransportHandler {\n const handler = handlers.get(name);\n if (!handler) {\n throw new TransportError(`Unsupported transport type: ${name}`, name);\n }\n return handler;\n}\n\n/**\n * Register a custom transport handler\n */\nexport function registerTransportHandler(handler: TransportHandler): void {\n handlers.set(handler.name, handler);\n}\n",
10
10
  "/**\n * Text Semantic Handler\n * Handles plain text resources\n */\n\nimport { SemanticError } from \"../errors.js\";\nimport type { TransportHandler } from \"../transport/types.js\";\nimport type { Resource, SemanticHandler, SemanticContext, ResourceMeta } from \"./types.js\";\n\nexport interface TextResource extends Resource<string> {\n type: \"text\";\n content: string;\n}\n\nexport class TextSemanticHandler implements SemanticHandler<string> {\n readonly name = \"text\";\n\n async resolve(\n transport: TransportHandler,\n location: string,\n context: SemanticContext\n ): Promise<TextResource> {\n const buffer = await transport.read(location);\n const text = buffer.toString(\"utf-8\");\n\n const meta: ResourceMeta = {\n url: context.url,\n semantic: context.semantic,\n transport: context.transport,\n location: context.location,\n size: buffer.length,\n encoding: \"utf-8\",\n mimeType: \"text/plain\",\n resolvedAt: context.timestamp.toISOString(),\n };\n\n return {\n type: \"text\",\n content: text,\n meta,\n };\n }\n\n async deposit(\n transport: TransportHandler,\n location: string,\n data: string,\n _context: SemanticContext\n ): Promise<void> {\n if (!transport.write) {\n throw new SemanticError(\n `Transport \"${transport.name}\" does not support write operation`,\n this.name\n );\n }\n\n const buffer = Buffer.from(data, \"utf-8\");\n await transport.write(location, buffer);\n }\n\n async exists(\n transport: TransportHandler,\n location: string,\n _context: SemanticContext\n ): Promise<boolean> {\n if (transport.exists) {\n return transport.exists(location);\n }\n\n // Fallback: try to read\n try {\n await transport.read(location);\n return true;\n } catch {\n return false;\n }\n }\n\n async delete(\n transport: TransportHandler,\n location: string,\n _context: SemanticContext\n ): Promise<void> {\n if (!transport.delete) {\n throw new SemanticError(\n `Transport \"${transport.name}\" does not support delete operation`,\n this.name\n );\n }\n\n await transport.delete(location);\n }\n}\n\nexport const textHandler: TextSemanticHandler = new TextSemanticHandler();\n",
11
- "/**\n * Semantic Handlers Registry\n */\n\nimport { SemanticError } from \"../errors.js\";\n\nexport type { Resource, SemanticHandler, ResourceMeta, SemanticContext } from \"./types.js\";\nexport type { TextResource } from \"./text.js\";\nexport { TextSemanticHandler, textHandler } from \"./text.js\";\n\nimport type { SemanticHandler } from \"./types.js\";\nimport { textHandler } from \"./text.js\";\n\nconst handlers: Map<string, SemanticHandler> = new Map([[\"text\", textHandler]]);\n\n/**\n * Get semantic handler by name\n */\nexport function getSemanticHandler(name: string): SemanticHandler {\n const handler = handlers.get(name);\n if (!handler) {\n throw new SemanticError(`Unsupported semantic type: ${name}`, name);\n }\n return handler;\n}\n\n/**\n * Register a custom semantic handler\n */\nexport function registerSemanticHandler(handler: SemanticHandler): void {\n handlers.set(handler.name, handler);\n}\n",
11
+ "/**\n * Binary Semantic Handler\n * Handles raw binary resources without any transformation\n */\n\nimport { SemanticError } from \"../errors.js\";\nimport type { TransportHandler } from \"../transport/types.js\";\nimport type { Resource, SemanticHandler, SemanticContext, ResourceMeta } from \"./types.js\";\n\nexport interface BinaryResource extends Resource<Buffer> {\n type: \"binary\";\n content: Buffer;\n}\n\n/**\n * Supported binary input types for deposit\n */\nexport type BinaryInput = Buffer | Uint8Array | ArrayBuffer | number[];\n\n/**\n * Convert various binary input types to Buffer\n */\nfunction toBuffer(data: BinaryInput): Buffer {\n if (Buffer.isBuffer(data)) {\n return data;\n }\n if (data instanceof Uint8Array) {\n return Buffer.from(data);\n }\n if (data instanceof ArrayBuffer) {\n return Buffer.from(data);\n }\n if (Array.isArray(data)) {\n return Buffer.from(data);\n }\n throw new SemanticError(`Unsupported binary input type`, \"binary\");\n}\n\nexport class BinarySemanticHandler implements SemanticHandler<Buffer> {\n readonly name = \"binary\";\n\n async resolve(\n transport: TransportHandler,\n location: string,\n context: SemanticContext\n ): Promise<BinaryResource> {\n const buffer = await transport.read(location);\n\n const meta: ResourceMeta = {\n url: context.url,\n semantic: context.semantic,\n transport: context.transport,\n location: context.location,\n size: buffer.length,\n resolvedAt: context.timestamp.toISOString(),\n };\n\n return {\n type: \"binary\",\n content: buffer,\n meta,\n };\n }\n\n async deposit(\n transport: TransportHandler,\n location: string,\n data: BinaryInput,\n _context: SemanticContext\n ): Promise<void> {\n if (!transport.write) {\n throw new SemanticError(\n `Transport \"${transport.name}\" does not support write operation`,\n this.name\n );\n }\n\n const buffer = toBuffer(data);\n await transport.write(location, buffer);\n }\n\n async exists(\n transport: TransportHandler,\n location: string,\n _context: SemanticContext\n ): Promise<boolean> {\n if (transport.exists) {\n return transport.exists(location);\n }\n\n // Fallback: try to read\n try {\n await transport.read(location);\n return true;\n } catch {\n return false;\n }\n }\n\n async delete(\n transport: TransportHandler,\n location: string,\n _context: SemanticContext\n ): Promise<void> {\n if (!transport.delete) {\n throw new SemanticError(\n `Transport \"${transport.name}\" does not support delete operation`,\n this.name\n );\n }\n\n await transport.delete(location);\n }\n}\n\nexport const binaryHandler: BinarySemanticHandler = new BinarySemanticHandler();\n",
12
+ "/**\n * Semantic Handlers Registry\n */\n\nimport { SemanticError } from \"../errors.js\";\n\nexport type { Resource, SemanticHandler, ResourceMeta, SemanticContext } from \"./types.js\";\nexport type { TextResource } from \"./text.js\";\nexport type { BinaryResource, BinaryInput } from \"./binary.js\";\nexport { TextSemanticHandler, textHandler } from \"./text.js\";\nexport { BinarySemanticHandler, binaryHandler } from \"./binary.js\";\n\nimport type { SemanticHandler } from \"./types.js\";\nimport { textHandler } from \"./text.js\";\nimport { binaryHandler } from \"./binary.js\";\n\nconst handlers = new Map<string, SemanticHandler>([\n [\"text\", textHandler],\n [\"binary\", binaryHandler],\n]);\n\n/**\n * Get semantic handler by name\n */\nexport function getSemanticHandler(name: string): SemanticHandler {\n const handler = handlers.get(name);\n if (!handler) {\n throw new SemanticError(`Unsupported semantic type: ${name}`, name);\n }\n return handler;\n}\n\n/**\n * Register a custom semantic handler\n */\nexport function registerSemanticHandler(handler: SemanticHandler): void {\n handlers.set(handler.name, handler);\n}\n",
12
13
  "/**\n * Resource Operations\n * End-to-end flows for resolve/deposit/exists/delete\n *\n * New Architecture:\n * - Transport provides I/O primitives (read/write/list/exists/delete)\n * - Semantic orchestrates Transport primitives to handle resource semantics\n * - This module coordinates Transport + Semantic based on parsed URL\n */\n\nimport { parseARP } from \"./parser.js\";\nimport { getTransportHandler } from \"./transport/index.js\";\nimport { getSemanticHandler, type Resource, type SemanticContext } from \"./semantic/index.js\";\nimport { SemanticError } from \"./errors.js\";\n\n/**\n * Create semantic context from parsed URL\n */\nfunction createContext(\n url: string,\n semantic: string,\n transport: string,\n location: string\n): SemanticContext {\n return {\n url,\n semantic,\n transport,\n location,\n timestamp: new Date(),\n };\n}\n\n/**\n * Resolve an ARP URL to a resource\n *\n * @example\n * const resource = await resolve(\"arp:text:https://example.com/file.txt\");\n * // { type: \"text\", content: \"...\", meta: { ... } }\n */\nexport async function resolve(url: string): Promise<Resource> {\n const parsed = parseARP(url);\n\n const transport = getTransportHandler(parsed.transport);\n const semantic = getSemanticHandler(parsed.semantic);\n\n const context = createContext(url, parsed.semantic, parsed.transport, parsed.location);\n\n // Semantic controls the resolve flow\n return semantic.resolve(transport, parsed.location, context);\n}\n\n/**\n * Deposit data to an ARP URL\n *\n * @example\n * await deposit(\"arp:text:file://./data/config.txt\", \"hello world\");\n */\nexport async function deposit(url: string, data: unknown): Promise<void> {\n const parsed = parseARP(url);\n\n const transport = getTransportHandler(parsed.transport);\n const semantic = getSemanticHandler(parsed.semantic);\n\n if (!semantic.deposit) {\n throw new SemanticError(\n `Semantic \"${semantic.name}\" does not support deposit operation`,\n parsed.semantic\n );\n }\n\n const context = createContext(url, parsed.semantic, parsed.transport, parsed.location);\n\n // Semantic controls the deposit flow\n await semantic.deposit(transport, parsed.location, data, context);\n}\n\n/**\n * Check if resource exists at ARP URL\n *\n * @example\n * const exists = await resourceExists(\"arp:text:file://./data/config.txt\");\n */\nexport async function resourceExists(url: string): Promise<boolean> {\n const parsed = parseARP(url);\n\n const transport = getTransportHandler(parsed.transport);\n const semantic = getSemanticHandler(parsed.semantic);\n\n const context = createContext(url, parsed.semantic, parsed.transport, parsed.location);\n\n if (semantic.exists) {\n return semantic.exists(transport, parsed.location, context);\n }\n\n // Fallback to transport exists if semantic doesn't implement it\n if (transport.exists) {\n return transport.exists(parsed.location);\n }\n\n // Fallback: try to read\n try {\n await transport.read(parsed.location);\n return true;\n } catch {\n return false;\n }\n}\n\n/**\n * Delete resource at ARP URL\n *\n * @example\n * await resourceDelete(\"arp:text:file://./data/config.txt\");\n */\nexport async function resourceDelete(url: string): Promise<void> {\n const parsed = parseARP(url);\n\n const transport = getTransportHandler(parsed.transport);\n const semantic = getSemanticHandler(parsed.semantic);\n\n const context = createContext(url, parsed.semantic, parsed.transport, parsed.location);\n\n if (semantic.delete) {\n return semantic.delete(transport, parsed.location, context);\n }\n\n // Fallback to transport delete\n if (!transport.delete) {\n throw new SemanticError(\n `Neither semantic \"${semantic.name}\" nor transport \"${transport.name}\" supports delete operation`,\n parsed.semantic\n );\n }\n\n await transport.delete(parsed.location);\n}\n",
13
- "/**\n * @resourcexjs/core\n * ARP (Agent Resource Protocol) implementation\n */\n\ndeclare const __VERSION__: string;\nexport const VERSION: string = __VERSION__;\n\n// Errors\nexport { ResourceXError, ParseError, TransportError, SemanticError } from \"./errors.js\";\n\n// Parser\nexport { parseARP, type ParsedARP } from \"./parser.js\";\n\n// Transport\nexport {\n type TransportHandler,\n type TransportCapabilities,\n type ResourceStat,\n getTransportHandler,\n registerTransportHandler,\n httpsHandler,\n httpHandler,\n fileHandler,\n} from \"./transport/index.js\";\n\n// Semantic\nexport {\n type Resource,\n type SemanticHandler,\n type ResourceMeta,\n type SemanticContext,\n type TextResource,\n getSemanticHandler,\n registerSemanticHandler,\n textHandler,\n} from \"./semantic/index.js\";\n\n// Resource Operations\nexport { resolve, deposit, resourceExists, resourceDelete } from \"./resolve.js\";\n"
14
+ "/**\n * Resource Registry\n */\n\nimport { ParseError } from \"../errors.js\";\nimport { getSemanticHandler } from \"../semantic/index.js\";\nimport { getTransportHandler } from \"../transport/index.js\";\nimport type { ResourceDefinition } from \"./types.js\";\n\n/**\n * Create a new resource registry (isolated instance)\n */\nexport function createResourceRegistry() {\n const registry = new Map<string, ResourceDefinition>();\n\n return {\n /**\n * Register a resource definition\n */\n register(definition: ResourceDefinition): void {\n // Validate name format\n if (!/^[a-z][a-z0-9-]*$/.test(definition.name)) {\n throw new ParseError(\n `Invalid resource name: \"${definition.name}\". Must start with lowercase letter and contain only lowercase letters, numbers, and hyphens.`,\n definition.name\n );\n }\n\n // Validate semantic exists\n getSemanticHandler(definition.semantic);\n\n // Validate transport exists\n getTransportHandler(definition.transport);\n\n registry.set(definition.name, definition);\n },\n\n /**\n * Get a resource definition by name\n */\n get(name: string): ResourceDefinition | undefined {\n return registry.get(name);\n },\n\n /**\n * Check if a resource is registered\n */\n has(name: string): boolean {\n return registry.has(name);\n },\n\n /**\n * Clear all registered resources\n */\n clear(): void {\n registry.clear();\n },\n };\n}\n\nexport type ResourceRegistry = ReturnType<typeof createResourceRegistry>;\n",
15
+ "/**\n * @resourcexjs/core\n * ARP (Agent Resource Protocol) implementation\n */\n\ndeclare const __VERSION__: string;\nexport const VERSION: string = __VERSION__;\n\n// Errors\nexport { ResourceXError, ParseError, TransportError, SemanticError } from \"./errors.js\";\n\n// Parser\nexport { parseARP, type ParsedARP } from \"./parser.js\";\n\n// Transport\nexport {\n type TransportHandler,\n type TransportCapabilities,\n type ResourceStat,\n getTransportHandler,\n registerTransportHandler,\n httpsHandler,\n httpHandler,\n fileHandler,\n} from \"./transport/index.js\";\n\n// Semantic\nexport {\n type Resource,\n type SemanticHandler,\n type ResourceMeta,\n type SemanticContext,\n type TextResource,\n type BinaryResource,\n type BinaryInput,\n getSemanticHandler,\n registerSemanticHandler,\n textHandler,\n binaryHandler,\n} from \"./semantic/index.js\";\n\n// Resource Operations\nexport { resolve, deposit, resourceExists, resourceDelete } from \"./resolve.js\";\n\n// Resource Definition\nexport {\n type ResourceDefinition,\n type ResourceRegistry,\n createResourceRegistry,\n} from \"./resource/index.js\";\n"
14
16
  ],
15
- "mappings": "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",
16
- "debugId": "2B4D80A207905AF464756E2164756E21",
17
+ "mappings": "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",
18
+ "debugId": "3CCC29CAAC2626B164756E2164756E21",
17
19
  "names": []
18
20
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@resourcexjs/core",
3
- "version": "0.1.0",
3
+ "version": "0.3.0",
4
4
  "description": "ResourceX Core - ARP (Agent Resource Protocol) implementation",
5
5
  "keywords": [
6
6
  "resourcex",