@resourcexjs/server 2.5.7 → 2.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -250,10 +250,12 @@ import { CASRegistry as CASRegistry2 } from "@resourcexjs/core";
250
250
  // ../node-provider/dist/index.js
251
251
  import { homedir } from "node:os";
252
252
  import { FolderLoader } from "@resourcexjs/core";
253
- import { mkdir, readFile, writeFile, unlink, readdir, stat } from "node:fs/promises";
253
+ import { mkdir, writeFile, unlink, readdir, stat } from "node:fs/promises";
254
+ import { createReadStream } from "node:fs";
255
+ import { createHash } from "node:crypto";
254
256
  import { join } from "node:path";
255
- import { computeDigest, RegistryError } from "@resourcexjs/core";
256
- import { mkdir as mkdir2, readFile as readFile2, writeFile as writeFile2, unlink as unlink2, readdir as readdir2, stat as stat2, rm } from "node:fs/promises";
257
+ import { computeDigest, isValidDigest, RegistryError } from "@resourcexjs/core";
258
+ import { mkdir as mkdir2, readFile, writeFile as writeFile2, unlink as unlink2, readdir as readdir2, stat as stat2, rm } from "node:fs/promises";
257
259
  import { join as join2 } from "node:path";
258
260
 
259
261
  class FileSystemRXAStore {
@@ -266,12 +268,26 @@ class FileSystemRXAStore {
266
268
  return join(this.basePath, prefix, digest);
267
269
  }
268
270
  async get(digest) {
271
+ if (!isValidDigest(digest)) {
272
+ throw new RegistryError(`Invalid digest format: ${digest}`);
273
+ }
269
274
  const path = this.getPath(digest);
270
- try {
271
- return await readFile(path);
272
- } catch (error) {
273
- throw new RegistryError(`Blob not found: ${digest}`);
275
+ const chunks = [];
276
+ const hash = createHash("sha256");
277
+ const readStream = createReadStream(path);
278
+ await new Promise((resolve, reject) => {
279
+ readStream.on("data", (chunk) => {
280
+ chunks.push(chunk);
281
+ hash.update(chunk);
282
+ });
283
+ readStream.on("end", resolve);
284
+ readStream.on("error", () => reject(new RegistryError(`Blob not found: ${digest}`)));
285
+ });
286
+ const actualDigest = `sha256:${hash.digest("hex")}`;
287
+ if (actualDigest !== digest) {
288
+ throw new RegistryError(`Content integrity check failed: expected ${digest}, got ${actualDigest}`);
274
289
  }
290
+ return Buffer.concat(chunks);
275
291
  }
276
292
  async put(data) {
277
293
  const digest = computeDigest(data);
@@ -335,7 +351,7 @@ class FileSystemRXMStore {
335
351
  async get(name, tag, registry) {
336
352
  const path = this.getPath(name, tag, registry);
337
353
  try {
338
- const data = await readFile2(path, "utf-8");
354
+ const data = await readFile(path, "utf-8");
339
355
  return JSON.parse(data);
340
356
  } catch {
341
357
  return null;
@@ -424,7 +440,7 @@ class FileSystemRXMStore {
424
440
  for (const file of files) {
425
441
  if (file.endsWith(".json")) {
426
442
  const filePath = join2(namePath, file);
427
- const data = await readFile2(filePath, "utf-8");
443
+ const data = await readFile(filePath, "utf-8");
428
444
  const manifest2 = JSON.parse(data);
429
445
  results.push(manifest2);
430
446
  }
@@ -471,4 +487,4 @@ export {
471
487
  API_PREFIX
472
488
  };
473
489
 
474
- //# debugId=3D890F83600C8C7E64756E2164756E21
490
+ //# debugId=9EB02FBE92FA96C564756E2164756E21
package/dist/index.js.map CHANGED
@@ -6,9 +6,9 @@
6
6
  "/**\n * ResourceX Registry Handlers\n *\n * Handler functions for Next.js Route Handler or any other framework.\n */\n\nimport { parse, format, manifest, wrap, resource } from \"@resourcexjs/core\";\nimport type { Registry } from \"@resourcexjs/core\";\nimport {\n PUBLISH_FIELDS,\n ERROR_CODES,\n type PublishResponse,\n type GetResourceResponse,\n type SearchResponse,\n type ErrorResponse,\n} from \"./protocol.js\";\n\n// ============================================\n// Helper Functions\n// ============================================\n\nfunction jsonResponse<T>(data: T, status = 200): Response {\n return new Response(JSON.stringify(data), {\n status,\n headers: { \"Content-Type\": \"application/json\" },\n });\n}\n\nfunction errorResponse(error: string, code: string, status: number): Response {\n const body: ErrorResponse = { error, code };\n return new Response(JSON.stringify(body), {\n status,\n headers: { \"Content-Type\": \"application/json\" },\n });\n}\n\n// ============================================\n// Handler Functions\n// ============================================\n\n/**\n * Handle POST /publish\n */\nexport async function handlePublish(request: Request, registry: Registry): Promise<Response> {\n try {\n const formData = await request.formData();\n\n const locatorStr = formData.get(PUBLISH_FIELDS.locator);\n if (!locatorStr || typeof locatorStr !== \"string\") {\n return errorResponse(\"Missing locator field\", ERROR_CODES.LOCATOR_REQUIRED, 400);\n }\n\n const manifestFile = formData.get(PUBLISH_FIELDS.manifest);\n if (!manifestFile || typeof manifestFile === \"string\") {\n return errorResponse(\"Missing manifest file\", ERROR_CODES.MANIFEST_REQUIRED, 400);\n }\n\n const contentFile = formData.get(PUBLISH_FIELDS.content);\n if (!contentFile || typeof contentFile === \"string\") {\n return errorResponse(\"Missing content file\", ERROR_CODES.CONTENT_REQUIRED, 400);\n }\n\n const rxl = parse(locatorStr);\n const manifestText = await manifestFile.text();\n const manifestData = JSON.parse(manifestText);\n\n // Server stores resources WITHOUT registry prefix\n // The registry is implicit - resources are stored ON this server\n const rxm = manifest({\n registry: undefined, // Do not store registry - this IS the registry\n path: manifestData.path ?? rxl.path,\n name: manifestData.name ?? rxl.name,\n type: manifestData.type, // Type must come from manifest, not locator\n tag: manifestData.tag ?? rxl.tag ?? \"latest\",\n files: manifestData.files,\n });\n\n const contentBuffer = Buffer.from(await contentFile.arrayBuffer());\n const rxa = wrap(contentBuffer);\n const rxr = resource(rxm, rxa);\n\n await registry.put(rxr);\n\n const response: PublishResponse = { locator: format(rxr.locator) };\n return jsonResponse(response, 201);\n } catch (error) {\n const message = error instanceof Error ? error.message : \"Unknown error\";\n return errorResponse(message, ERROR_CODES.INTERNAL_ERROR, 500);\n }\n}\n\n/**\n * Handle GET /resource/:locator\n */\nexport async function handleGetResource(locator: string, registry: Registry): Promise<Response> {\n try {\n const rxl = parse(locator);\n // Server lookup without registry - resources stored locally don't have registry prefix\n const localRxl = { ...rxl, registry: undefined };\n const rxr = await registry.get(localRxl);\n\n const response: GetResourceResponse = {\n registry: rxr.manifest.registry,\n path: rxr.manifest.path,\n name: rxr.manifest.name,\n type: rxr.manifest.type,\n tag: rxr.manifest.tag,\n };\n return jsonResponse(response);\n } catch (error) {\n const message = error instanceof Error ? error.message : \"Unknown error\";\n if (message.includes(\"not found\")) {\n return errorResponse(\"Resource not found\", ERROR_CODES.RESOURCE_NOT_FOUND, 404);\n }\n return errorResponse(message, ERROR_CODES.INTERNAL_ERROR, 500);\n }\n}\n\n/**\n * Handle HEAD /resource/:locator\n */\nexport async function handleHeadResource(locator: string, registry: Registry): Promise<Response> {\n try {\n const rxl = parse(locator);\n const localRxl = { ...rxl, registry: undefined };\n const exists = await registry.has(localRxl);\n return new Response(null, { status: exists ? 200 : 404 });\n } catch {\n return new Response(null, { status: 500 });\n }\n}\n\n/**\n * Handle DELETE /resource/:locator\n */\nexport async function handleDeleteResource(locator: string, registry: Registry): Promise<Response> {\n try {\n const rxl = parse(locator);\n const localRxl = { ...rxl, registry: undefined };\n const exists = await registry.has(localRxl);\n\n if (!exists) {\n return errorResponse(\"Resource not found\", ERROR_CODES.RESOURCE_NOT_FOUND, 404);\n }\n\n await registry.remove(localRxl);\n return new Response(null, { status: 204 });\n } catch (error) {\n const message = error instanceof Error ? error.message : \"Unknown error\";\n return errorResponse(message, ERROR_CODES.INTERNAL_ERROR, 500);\n }\n}\n\n/**\n * Handle GET /content/:locator\n */\nexport async function handleGetContent(locator: string, registry: Registry): Promise<Response> {\n try {\n const rxl = parse(locator);\n const localRxl = { ...rxl, registry: undefined };\n const rxr = await registry.get(localRxl);\n const buffer = await rxr.archive.buffer();\n\n return new Response(buffer, {\n status: 200,\n headers: {\n \"Content-Type\": \"application/gzip\",\n \"Content-Disposition\": `attachment; filename=\"archive.tar.gz\"`,\n \"Content-Length\": buffer.byteLength.toString(),\n },\n });\n } catch (error) {\n const message = error instanceof Error ? error.message : \"Unknown error\";\n if (message.includes(\"not found\")) {\n return errorResponse(\"Resource not found\", ERROR_CODES.RESOURCE_NOT_FOUND, 404);\n }\n return errorResponse(message, ERROR_CODES.INTERNAL_ERROR, 500);\n }\n}\n\n/**\n * Handle GET /search\n */\nexport async function handleSearch(\n query: string | undefined,\n limit: number,\n offset: number,\n registry: Registry\n): Promise<Response> {\n try {\n const results = await registry.list({\n query: query || undefined,\n limit,\n offset,\n });\n\n const response: SearchResponse = {\n results: results.map((rxl) => ({\n locator: format(rxl),\n registry: rxl.registry,\n path: rxl.path,\n name: rxl.name,\n type: \"\", // Type not in RXL anymore, would need to read manifest\n tag: rxl.tag ?? \"latest\",\n })),\n total: results.length,\n };\n return jsonResponse(response);\n } catch (error) {\n const message = error instanceof Error ? error.message : \"Unknown error\";\n return errorResponse(message, ERROR_CODES.INTERNAL_ERROR, 500);\n }\n}\n",
7
7
  "/**\n * ResourceX Registry Hono Server\n *\n * Ready-to-use Hono app implementing the ResourceX Registry Protocol.\n */\n\nimport { Hono } from \"hono\";\nimport { cors } from \"hono/cors\";\nimport type { RXAStore, RXMStore } from \"@resourcexjs/core\";\nimport { CASRegistry } from \"@resourcexjs/core\";\nimport {\n handlePublish,\n handleGetResource,\n handleHeadResource,\n handleDeleteResource,\n handleGetContent,\n handleSearch,\n} from \"./handlers.js\";\nimport { ENDPOINTS } from \"./protocol.js\";\n\nexport interface RegistryServerConfig {\n /**\n * RXA Store (blob storage).\n */\n rxaStore: RXAStore;\n\n /**\n * RXM Store (manifest storage).\n */\n rxmStore: RXMStore;\n\n /**\n * Base path for API routes.\n * @default \"\"\n */\n basePath?: string;\n\n /**\n * Enable CORS.\n * @default true\n */\n cors?: boolean;\n}\n\n/**\n * Create a registry server Hono app.\n */\nexport function createRegistryServer(config: RegistryServerConfig): Hono {\n const basePath = config.basePath ?? \"\";\n const enableCors = config.cors ?? true;\n\n const registry = new CASRegistry(config.rxaStore, config.rxmStore);\n\n const app = new Hono().basePath(basePath);\n\n if (enableCors) {\n app.use(\"*\", cors());\n }\n\n // Health check\n app.get(ENDPOINTS.health, (c) => c.json({ status: \"ok\" }));\n\n // POST /publish\n app.post(ENDPOINTS.publish, async (c) => {\n return handlePublish(c.req.raw, registry);\n });\n\n // GET /resource/:locator\n app.get(`${ENDPOINTS.resource}/:locator`, async (c) => {\n const locator = decodeURIComponent(c.req.param(\"locator\"));\n return handleGetResource(locator, registry);\n });\n\n // HEAD /resource/:locator\n app.on(\"HEAD\", `${ENDPOINTS.resource}/:locator`, async (c) => {\n const locator = decodeURIComponent(c.req.param(\"locator\"));\n return handleHeadResource(locator, registry);\n });\n\n // DELETE /resource/:locator\n app.delete(`${ENDPOINTS.resource}/:locator`, async (c) => {\n const locator = decodeURIComponent(c.req.param(\"locator\"));\n return handleDeleteResource(locator, registry);\n });\n\n // GET /content/:locator\n app.get(`${ENDPOINTS.content}/:locator`, async (c) => {\n const locator = decodeURIComponent(c.req.param(\"locator\"));\n return handleGetContent(locator, registry);\n });\n\n // GET /search\n app.get(ENDPOINTS.search, async (c) => {\n const query = c.req.query(\"q\");\n const limit = parseInt(c.req.query(\"limit\") ?? \"100\", 10);\n const offset = parseInt(c.req.query(\"offset\") ?? \"0\", 10);\n return handleSearch(query, limit, offset, registry);\n });\n\n return app;\n}\n",
8
8
  "/**\n * @resourcexjs/server\n *\n * ResourceX Registry Server - Protocol, Handlers, and Hono Server\n *\n * @example\n * ```typescript\n * import { createRegistryServer } from \"@resourcexjs/server\";\n * import { FileSystemRXAStore, FileSystemRXMStore } from \"@resourcexjs/node-provider\";\n *\n * const server = createRegistryServer({\n * rxaStore: new FileSystemRXAStore(\"./data/blobs\"),\n * rxmStore: new FileSystemRXMStore(\"./data/manifests\"),\n * });\n *\n * Bun.serve({ fetch: server.fetch, port: 3000 });\n * ```\n *\n * @packageDocumentation\n */\n\n// Protocol\nexport {\n API_VERSION,\n API_PREFIX,\n ENDPOINTS,\n CONTENT_TYPES,\n PUBLISH_FIELDS,\n ERROR_CODES,\n ERROR_STATUS,\n buildResourceUrl,\n buildContentUrl,\n buildPublishUrl,\n buildSearchUrl,\n type ManifestData,\n type SearchQuery,\n type PublishResponse,\n type GetResourceResponse,\n type SearchResultItem,\n type SearchResponse,\n type ErrorResponse,\n type ErrorCode,\n} from \"./protocol.js\";\n\n// Handlers\nexport {\n handlePublish,\n handleGetResource,\n handleHeadResource,\n handleDeleteResource,\n handleGetContent,\n handleSearch,\n} from \"./handlers.js\";\n\n// Hono Server\nexport { createRegistryServer, type RegistryServerConfig } from \"./hono.js\";\n\n// Re-export core types for convenience\nexport { CASRegistry } from \"@resourcexjs/core\";\nexport type { RXAStore, RXMStore, Registry } from \"@resourcexjs/core\";\n\n// Re-export node-provider stores for convenience\nexport { FileSystemRXAStore, FileSystemRXMStore } from \"@resourcexjs/node-provider\";\n",
9
- "// src/NodeProvider.ts\nimport { homedir } from \"node:os\";\nimport { join as join3 } from \"node:path\";\nimport { FolderLoader } from \"@resourcexjs/core\";\n\n// src/FileSystemRXAStore.ts\nimport { mkdir, readFile, writeFile, unlink, readdir, stat } from \"node:fs/promises\";\nimport { join } from \"node:path\";\nimport { computeDigest, RegistryError } from \"@resourcexjs/core\";\n\nclass FileSystemRXAStore {\n basePath;\n constructor(basePath) {\n this.basePath = basePath;\n }\n getPath(digest) {\n const prefix = digest.substring(7, 9);\n return join(this.basePath, prefix, digest);\n }\n async get(digest) {\n const path = this.getPath(digest);\n try {\n return await readFile(path);\n } catch (error) {\n throw new RegistryError(`Blob not found: ${digest}`);\n }\n }\n async put(data) {\n const digest = computeDigest(data);\n const path = this.getPath(digest);\n if (await this.has(digest)) {\n return digest;\n }\n const dir = join(path, \"..\");\n await mkdir(dir, { recursive: true });\n await writeFile(path, data);\n return digest;\n }\n async has(digest) {\n const path = this.getPath(digest);\n try {\n await stat(path);\n return true;\n } catch {\n return false;\n }\n }\n async delete(digest) {\n const path = this.getPath(digest);\n try {\n await unlink(path);\n } catch {}\n }\n async list() {\n const digests = [];\n try {\n const prefixes = await readdir(this.basePath);\n for (const prefix of prefixes) {\n const prefixPath = join(this.basePath, prefix);\n try {\n const files = await readdir(prefixPath);\n for (const file of files) {\n if (file.startsWith(\"sha256:\")) {\n digests.push(file);\n }\n }\n } catch {}\n }\n } catch {}\n return digests;\n }\n}\n\n// src/FileSystemRXMStore.ts\nimport { mkdir as mkdir2, readFile as readFile2, writeFile as writeFile2, unlink as unlink2, readdir as readdir2, stat as stat2, rm } from \"node:fs/promises\";\nimport { join as join2 } from \"node:path\";\nvar LOCAL_DIR = \"_local\";\n\nclass FileSystemRXMStore {\n basePath;\n constructor(basePath) {\n this.basePath = basePath;\n }\n getDir(name, registry) {\n const registryDir = registry ?? LOCAL_DIR;\n return join2(this.basePath, registryDir, name);\n }\n getPath(name, tag, registry) {\n return join2(this.getDir(name, registry), `${tag}.json`);\n }\n async get(name, tag, registry) {\n const path = this.getPath(name, tag, registry);\n try {\n const data = await readFile2(path, \"utf-8\");\n return JSON.parse(data);\n } catch {\n return null;\n }\n }\n async put(manifest) {\n const path = this.getPath(manifest.name, manifest.tag, manifest.registry);\n const dir = join2(path, \"..\");\n await mkdir2(dir, { recursive: true });\n await writeFile2(path, JSON.stringify(manifest, null, 2), \"utf-8\");\n }\n async has(name, tag, registry) {\n const path = this.getPath(name, tag, registry);\n try {\n await stat2(path);\n return true;\n } catch {\n return false;\n }\n }\n async delete(name, tag, registry) {\n const path = this.getPath(name, tag, registry);\n try {\n await unlink2(path);\n } catch {}\n }\n async listTags(name, registry) {\n const dir = this.getDir(name, registry);\n const tags = [];\n try {\n const files = await readdir2(dir);\n for (const file of files) {\n if (file.endsWith(\".json\")) {\n tags.push(file.replace(\".json\", \"\"));\n }\n }\n } catch {}\n return tags;\n }\n async listNames(registry, query) {\n const registryDir = registry ?? LOCAL_DIR;\n const basePath = join2(this.basePath, registryDir);\n const names = [];\n try {\n const entries = await readdir2(basePath);\n for (const entry of entries) {\n const entryPath = join2(basePath, entry);\n try {\n const entryStat = await stat2(entryPath);\n if (entryStat.isDirectory()) {\n if (!query || entry.toLowerCase().includes(query.toLowerCase())) {\n names.push(entry);\n }\n }\n } catch {}\n }\n } catch {}\n return names;\n }\n async search(options) {\n const { registry, query, limit, offset = 0 } = options ?? {};\n const results = [];\n let registryDirs = [];\n if (registry === null) {\n registryDirs = [LOCAL_DIR];\n } else if (registry !== undefined) {\n registryDirs = [registry];\n } else {\n try {\n registryDirs = await readdir2(this.basePath);\n } catch {\n return [];\n }\n }\n for (const regDir of registryDirs) {\n const regPath = join2(this.basePath, regDir);\n try {\n const names = await readdir2(regPath);\n for (const name of names) {\n if (query && !name.toLowerCase().includes(query.toLowerCase())) {\n continue;\n }\n const namePath = join2(regPath, name);\n try {\n const files = await readdir2(namePath);\n for (const file of files) {\n if (file.endsWith(\".json\")) {\n const filePath = join2(namePath, file);\n const data = await readFile2(filePath, \"utf-8\");\n const manifest = JSON.parse(data);\n results.push(manifest);\n }\n }\n } catch {}\n }\n } catch {}\n }\n let paginated = results.slice(offset);\n if (limit !== undefined) {\n paginated = paginated.slice(0, limit);\n }\n return paginated;\n }\n async deleteByRegistry(registry) {\n const regPath = join2(this.basePath, registry);\n try {\n await rm(regPath, { recursive: true });\n } catch {}\n }\n}\n\n// src/NodeProvider.ts\nvar DEFAULT_BASE_PATH = `${homedir()}/.resourcex`;\n\nclass NodeProvider {\n platform = \"node\";\n createStores(config) {\n const basePath = config.path ?? DEFAULT_BASE_PATH;\n return {\n rxaStore: new FileSystemRXAStore(join3(basePath, \"blobs\")),\n rxmStore: new FileSystemRXMStore(join3(basePath, \"manifests\"))\n };\n }\n createLoader(_config) {\n return new FolderLoader;\n }\n}\nexport {\n NodeProvider,\n FileSystemRXMStore,\n FileSystemRXAStore\n};\n\n//# debugId=4D70AA91122D166964756E2164756E21\n"
9
+ "// src/NodeProvider.ts\nimport { homedir } from \"node:os\";\nimport { join as join3 } from \"node:path\";\nimport { FolderLoader } from \"@resourcexjs/core\";\n\n// src/FileSystemRXAStore.ts\nimport { mkdir, writeFile, unlink, readdir, stat } from \"node:fs/promises\";\nimport { createReadStream } from \"node:fs\";\nimport { createHash } from \"node:crypto\";\nimport { join } from \"node:path\";\nimport { computeDigest, isValidDigest, RegistryError } from \"@resourcexjs/core\";\n\nclass FileSystemRXAStore {\n basePath;\n constructor(basePath) {\n this.basePath = basePath;\n }\n getPath(digest) {\n const prefix = digest.substring(7, 9);\n return join(this.basePath, prefix, digest);\n }\n async get(digest) {\n if (!isValidDigest(digest)) {\n throw new RegistryError(`Invalid digest format: ${digest}`);\n }\n const path = this.getPath(digest);\n const chunks = [];\n const hash = createHash(\"sha256\");\n const readStream = createReadStream(path);\n await new Promise((resolve, reject) => {\n readStream.on(\"data\", (chunk) => {\n chunks.push(chunk);\n hash.update(chunk);\n });\n readStream.on(\"end\", resolve);\n readStream.on(\"error\", () => reject(new RegistryError(`Blob not found: ${digest}`)));\n });\n const actualDigest = `sha256:${hash.digest(\"hex\")}`;\n if (actualDigest !== digest) {\n throw new RegistryError(`Content integrity check failed: expected ${digest}, got ${actualDigest}`);\n }\n return Buffer.concat(chunks);\n }\n async put(data) {\n const digest = computeDigest(data);\n const path = this.getPath(digest);\n if (await this.has(digest)) {\n return digest;\n }\n const dir = join(path, \"..\");\n await mkdir(dir, { recursive: true });\n await writeFile(path, data);\n return digest;\n }\n async has(digest) {\n const path = this.getPath(digest);\n try {\n await stat(path);\n return true;\n } catch {\n return false;\n }\n }\n async delete(digest) {\n const path = this.getPath(digest);\n try {\n await unlink(path);\n } catch {}\n }\n async list() {\n const digests = [];\n try {\n const prefixes = await readdir(this.basePath);\n for (const prefix of prefixes) {\n const prefixPath = join(this.basePath, prefix);\n try {\n const files = await readdir(prefixPath);\n for (const file of files) {\n if (file.startsWith(\"sha256:\")) {\n digests.push(file);\n }\n }\n } catch {}\n }\n } catch {}\n return digests;\n }\n}\n\n// src/FileSystemRXMStore.ts\nimport { mkdir as mkdir2, readFile, writeFile as writeFile2, unlink as unlink2, readdir as readdir2, stat as stat2, rm } from \"node:fs/promises\";\nimport { join as join2 } from \"node:path\";\nvar LOCAL_DIR = \"_local\";\n\nclass FileSystemRXMStore {\n basePath;\n constructor(basePath) {\n this.basePath = basePath;\n }\n getDir(name, registry) {\n const registryDir = registry ?? LOCAL_DIR;\n return join2(this.basePath, registryDir, name);\n }\n getPath(name, tag, registry) {\n return join2(this.getDir(name, registry), `${tag}.json`);\n }\n async get(name, tag, registry) {\n const path = this.getPath(name, tag, registry);\n try {\n const data = await readFile(path, \"utf-8\");\n return JSON.parse(data);\n } catch {\n return null;\n }\n }\n async put(manifest) {\n const path = this.getPath(manifest.name, manifest.tag, manifest.registry);\n const dir = join2(path, \"..\");\n await mkdir2(dir, { recursive: true });\n await writeFile2(path, JSON.stringify(manifest, null, 2), \"utf-8\");\n }\n async has(name, tag, registry) {\n const path = this.getPath(name, tag, registry);\n try {\n await stat2(path);\n return true;\n } catch {\n return false;\n }\n }\n async delete(name, tag, registry) {\n const path = this.getPath(name, tag, registry);\n try {\n await unlink2(path);\n } catch {}\n }\n async listTags(name, registry) {\n const dir = this.getDir(name, registry);\n const tags = [];\n try {\n const files = await readdir2(dir);\n for (const file of files) {\n if (file.endsWith(\".json\")) {\n tags.push(file.replace(\".json\", \"\"));\n }\n }\n } catch {}\n return tags;\n }\n async listNames(registry, query) {\n const registryDir = registry ?? LOCAL_DIR;\n const basePath = join2(this.basePath, registryDir);\n const names = [];\n try {\n const entries = await readdir2(basePath);\n for (const entry of entries) {\n const entryPath = join2(basePath, entry);\n try {\n const entryStat = await stat2(entryPath);\n if (entryStat.isDirectory()) {\n if (!query || entry.toLowerCase().includes(query.toLowerCase())) {\n names.push(entry);\n }\n }\n } catch {}\n }\n } catch {}\n return names;\n }\n async search(options) {\n const { registry, query, limit, offset = 0 } = options ?? {};\n const results = [];\n let registryDirs = [];\n if (registry === null) {\n registryDirs = [LOCAL_DIR];\n } else if (registry !== undefined) {\n registryDirs = [registry];\n } else {\n try {\n registryDirs = await readdir2(this.basePath);\n } catch {\n return [];\n }\n }\n for (const regDir of registryDirs) {\n const regPath = join2(this.basePath, regDir);\n try {\n const names = await readdir2(regPath);\n for (const name of names) {\n if (query && !name.toLowerCase().includes(query.toLowerCase())) {\n continue;\n }\n const namePath = join2(regPath, name);\n try {\n const files = await readdir2(namePath);\n for (const file of files) {\n if (file.endsWith(\".json\")) {\n const filePath = join2(namePath, file);\n const data = await readFile(filePath, \"utf-8\");\n const manifest = JSON.parse(data);\n results.push(manifest);\n }\n }\n } catch {}\n }\n } catch {}\n }\n let paginated = results.slice(offset);\n if (limit !== undefined) {\n paginated = paginated.slice(0, limit);\n }\n return paginated;\n }\n async deleteByRegistry(registry) {\n const regPath = join2(this.basePath, registry);\n try {\n await rm(regPath, { recursive: true });\n } catch {}\n }\n}\n\n// src/NodeProvider.ts\nvar DEFAULT_BASE_PATH = `${homedir()}/.resourcex`;\n\nclass NodeProvider {\n platform = \"node\";\n createStores(config) {\n const basePath = config.path ?? DEFAULT_BASE_PATH;\n return {\n rxaStore: new FileSystemRXAStore(join3(basePath, \"blobs\")),\n rxmStore: new FileSystemRXMStore(join3(basePath, \"manifests\"))\n };\n }\n createLoader(_config) {\n return new FolderLoader;\n }\n}\nexport {\n NodeProvider,\n FileSystemRXMStore,\n FileSystemRXAStore\n};\n\n//# debugId=E49394B309EA286264756E2164756E21\n"
10
10
  ],
11
- "mappings": "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",
12
- "debugId": "3D890F83600C8C7E64756E2164756E21",
11
+ "mappings": "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",
12
+ "debugId": "9EB02FBE92FA96C564756E2164756E21",
13
13
  "names": []
14
14
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@resourcexjs/server",
3
- "version": "2.5.7",
3
+ "version": "2.7.0",
4
4
  "description": "ResourceX Registry Server - Protocol, Handlers, and Hono Server",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -21,8 +21,8 @@
21
21
  "clean": "rm -rf dist"
22
22
  },
23
23
  "dependencies": {
24
- "@resourcexjs/core": "^2.5.7",
25
- "@resourcexjs/node-provider": "^2.5.7",
24
+ "@resourcexjs/core": "^2.7.0",
25
+ "@resourcexjs/node-provider": "^2.7.0",
26
26
  "hono": "^4.7.10"
27
27
  },
28
28
  "devDependencies": {},