@nexusts/drive 0.9.6 → 0.9.7
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/drive.service.d.ts +6 -2
- package/dist/index.js +29 -10
- package/dist/index.js.map +4 -4
- package/dist/types.d.ts +0 -1
- package/package.json +2 -2
package/dist/drive.service.d.ts
CHANGED
|
@@ -2,10 +2,14 @@ import type { DriveConfig, FileContent, FileMetadata, ListOptions, ListResult, P
|
|
|
2
2
|
export declare class DriveService {
|
|
3
3
|
/** DI token. */
|
|
4
4
|
static readonly TOKEN: unique symbol;
|
|
5
|
+
/** Drive configuration — injected by DI container. */
|
|
6
|
+
private readonly config;
|
|
5
7
|
private _driver;
|
|
8
|
+
private _signedUrlBuilder;
|
|
6
9
|
defaultVisibility: NonNullable<DriveConfig["defaultVisibility"]>;
|
|
7
|
-
|
|
8
|
-
|
|
10
|
+
constructor(directConfig?: DriveConfig);
|
|
11
|
+
/** Ensure driver and builder are initialized from config. */
|
|
12
|
+
private ensureInit;
|
|
9
13
|
/** Direct access to the underlying driver (for advanced use). */
|
|
10
14
|
get driver(): import("./types.js").StorageDriver;
|
|
11
15
|
put(key: string, body: FileContent, opts?: PutOptions): Promise<void>;
|
package/dist/index.js
CHANGED
|
@@ -25,7 +25,6 @@ var __legacyDecorateClassTS = function(decorators, target, key, desc) {
|
|
|
25
25
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
26
26
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
27
27
|
};
|
|
28
|
-
var __legacyDecorateParamTS = (index, decorator) => (target, key) => decorator(target, key, index);
|
|
29
28
|
var __legacyMetadataTS = (k, v) => {
|
|
30
29
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
31
30
|
return Reflect.metadata(k, v);
|
|
@@ -396,47 +395,67 @@ import { Inject, Injectable } from "@nexusts/core";
|
|
|
396
395
|
class DriveService {
|
|
397
396
|
static TOKEN = Symbol.for("nexus:DriveService");
|
|
398
397
|
_driver;
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
constructor(
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
398
|
+
_signedUrlBuilder;
|
|
399
|
+
defaultVisibility = "private";
|
|
400
|
+
constructor(directConfig) {
|
|
401
|
+
if (directConfig !== undefined) {
|
|
402
|
+
this.config = directConfig;
|
|
403
|
+
}
|
|
404
|
+
}
|
|
405
|
+
ensureInit() {
|
|
406
|
+
if (this._driver)
|
|
407
|
+
return;
|
|
408
|
+
const cfg = this.config ?? {};
|
|
409
|
+
this._driver = cfg.driver ?? new MemoryDriver;
|
|
410
|
+
this.defaultVisibility = cfg.defaultVisibility ?? "private";
|
|
411
|
+
this._signedUrlBuilder = cfg.signedUrlBuilder ?? (async (key, opts) => this._driver.getSignedUrl(key, opts));
|
|
405
412
|
}
|
|
406
413
|
get driver() {
|
|
414
|
+
this.ensureInit();
|
|
407
415
|
return this._driver;
|
|
408
416
|
}
|
|
409
417
|
async put(key, body, opts) {
|
|
418
|
+
this.ensureInit();
|
|
410
419
|
return this._driver.put(key, body, opts);
|
|
411
420
|
}
|
|
412
421
|
async get(key) {
|
|
422
|
+
this.ensureInit();
|
|
413
423
|
return this._driver.get(key);
|
|
414
424
|
}
|
|
415
425
|
async delete(key) {
|
|
426
|
+
this.ensureInit();
|
|
416
427
|
return this._driver.delete(key);
|
|
417
428
|
}
|
|
418
429
|
async exists(key) {
|
|
430
|
+
this.ensureInit();
|
|
419
431
|
return this._driver.exists(key);
|
|
420
432
|
}
|
|
421
433
|
async head(key) {
|
|
434
|
+
this.ensureInit();
|
|
422
435
|
return this._driver.head(key);
|
|
423
436
|
}
|
|
424
437
|
async list(opts) {
|
|
438
|
+
this.ensureInit();
|
|
425
439
|
return this._driver.list(opts);
|
|
426
440
|
}
|
|
427
441
|
async getSignedUrl(key, opts) {
|
|
428
|
-
|
|
442
|
+
this.ensureInit();
|
|
443
|
+
return this._signedUrlBuilder(key, opts);
|
|
429
444
|
}
|
|
430
445
|
async copy(src, dest) {
|
|
446
|
+
this.ensureInit();
|
|
431
447
|
return this._driver.copy(src, dest);
|
|
432
448
|
}
|
|
433
449
|
async move(src, dest) {
|
|
450
|
+
this.ensureInit();
|
|
434
451
|
return this._driver.move(src, dest);
|
|
435
452
|
}
|
|
436
453
|
}
|
|
454
|
+
__legacyDecorateClassTS([
|
|
455
|
+
Inject("DRIVE_CONFIG")
|
|
456
|
+
], DriveService.prototype, "config", undefined);
|
|
437
457
|
DriveService = __legacyDecorateClassTS([
|
|
438
458
|
Injectable(),
|
|
439
|
-
__legacyDecorateParamTS(0, Inject("DRIVE_CONFIG")),
|
|
440
459
|
__legacyMetadataTS("design:paramtypes", [
|
|
441
460
|
typeof DriveConfig === "undefined" ? Object : DriveConfig
|
|
442
461
|
])
|
|
@@ -485,5 +504,5 @@ export {
|
|
|
485
504
|
DriveModule
|
|
486
505
|
};
|
|
487
506
|
|
|
488
|
-
//# debugId=
|
|
507
|
+
//# debugId=F7ED3CCF4CDF271B64756E2164756E21
|
|
489
508
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -5,10 +5,10 @@
|
|
|
5
5
|
"/**\n * In-memory storage driver. Useful for tests, ephemeral state, and\n * single-process deploys that need a quick KV-like store.\n */\nimport type {\n\tFileContent,\n\tFileMetadata,\n\tListOptions,\n\tListResult,\n\tPutOptions,\n\tSignedUrlOptions,\n\tStorageDriver,\n} from \"../types.js\";\n\ninterface MemEntry {\n\tbody: Buffer;\n\tmeta: FileMetadata;\n}\n\nexport class MemoryDriver implements StorageDriver {\n\treadonly kind = \"memory\";\n\tprivate data = new Map<string, MemEntry>();\n\n\tasync put(\n\t\tkey: string,\n\t\tbody: FileContent,\n\t\topts: PutOptions = {},\n\t): Promise<void> {\n\t\tconst buf = toBuffer(body);\n\t\tconst contentType = opts.contentType ?? \"application/octet-stream\";\n\t\tthis.data.set(key, {\n\t\t\tbody: buf,\n\t\t\tmeta: {\n\t\t\t\tkey,\n\t\t\t\tsize: buf.length,\n\t\t\t\tcontentType,\n\t\t\t\tlastModified: Date.now(),\n\t\t\t\tetag: simpleEtag(buf),\n\t\t\t\tmetadata: opts.metadata,\n\t\t\t},\n\t\t});\n\t}\n\n\tasync get(key: string): Promise<Buffer> {\n\t\tconst e = this.data.get(key);\n\t\tif (!e) throw new Error(`File not found: ${key}`);\n\t\treturn e.body;\n\t}\n\n\tasync delete(key: string): Promise<boolean> {\n\t\treturn this.data.delete(key);\n\t}\n\n\tasync exists(key: string): Promise<boolean> {\n\t\treturn this.data.has(key);\n\t}\n\n\tasync head(key: string): Promise<FileMetadata> {\n\t\tconst e = this.data.get(key);\n\t\tif (!e) throw new Error(`File not found: ${key}`);\n\t\treturn { ...e.meta };\n\t}\n\n\tasync list(opts: ListOptions = {}): Promise<ListResult> {\n\t\tconst all = [...this.data.keys()].sort();\n\t\tconst prefix = opts.prefix ?? \"\";\n\t\tconst filtered = prefix ? all.filter((k) => k.startsWith(prefix)) : all;\n\t\tconst limit = opts.limit ?? 1000;\n\t\tconst startIdx = opts.cursor ? Number(opts.cursor) : 0;\n\t\tconst endIdx = Math.min(startIdx + limit, filtered.length);\n\t\tconst slice = filtered.slice(startIdx, endIdx);\n\t\treturn {\n\t\t\tkeys: slice,\n\t\t\thasMore: endIdx < filtered.length,\n\t\t\tcursor: endIdx < filtered.length ? String(endIdx) : undefined,\n\t\t};\n\t}\n\n\tasync getSignedUrl(\n\t\tkey: string,\n\t\t_opts: SignedUrlOptions = {},\n\t): Promise<string> {\n\t\tif (!this.data.has(key)) throw new Error(`File not found: ${key}`);\n\t\t// No signing in-memory; return a sentinel URL.\n\t\treturn `memory://${encodeURIComponent(key)}`;\n\t}\n\n\tasync copy(src: string, dest: string): Promise<void> {\n\t\tconst e = this.data.get(src);\n\t\tif (!e) throw new Error(`File not found: ${src}`);\n\t\tthis.data.set(dest, {\n\t\t\tbody: e.body,\n\t\t\tmeta: { ...e.meta, key: dest, lastModified: Date.now() },\n\t\t});\n\t}\n\n\tasync move(src: string, dest: string): Promise<void> {\n\t\tawait this.copy(src, dest);\n\t\tthis.data.delete(src);\n\t}\n}\n\nfunction toBuffer(body: FileContent): Buffer {\n\tif (typeof body === \"string\") return Buffer.from(body, \"utf-8\");\n\treturn Buffer.isBuffer(body) ? body : Buffer.from(body);\n}\n\nfunction simpleEtag(buf: Buffer): string {\n\t// Not cryptographic; just a stable hash for cache invalidation.\n\tlet h = 5381;\n\tfor (let i = 0; i < buf.length; i++) h = ((h << 5) + h + buf[i]) | 0;\n\treturn `\"${(h >>> 0).toString(16)}\"`;\n}\n",
|
|
6
6
|
"/**\n * Local-filesystem driver. Stores files under a `root` directory.\n *\n * - Path traversal is rejected (`..`, absolute paths).\n * - Creates intermediate directories on write.\n * - Uses node:fs/promises for portability with Node and Bun.\n */\nimport {\n\tmkdir,\n\treadFile,\n\tstat,\n\tunlink,\n\twriteFile,\n\treaddir,\n\trename,\n} from \"node:fs/promises\";\nimport { dirname, join, normalize, resolve, sep } from \"node:path\";\nimport type {\n\tFileContent,\n\tFileMetadata,\n\tListOptions,\n\tListResult,\n\tPutOptions,\n\tSignedUrlOptions,\n\tStorageDriver,\n} from \"../types.js\";\n\nexport interface LocalDriverOptions {\n\t/** Root directory for this driver. */\n\troot: string;\n\t/** Public URL prefix used for `getSignedUrl`. Default: '/files'. */\n\tpublicUrlPrefix?: string;\n}\n\nexport class LocalDriver implements StorageDriver {\n\treadonly kind = \"local\";\n\tprivate readonly root: string;\n\tprivate readonly publicUrlPrefix: string;\n\n\tconstructor(opts: LocalDriverOptions) {\n\t\tthis.root = resolve(opts.root);\n\t\tthis.publicUrlPrefix = opts.publicUrlPrefix ?? \"/files\";\n\t}\n\n\tprivate resolveKey(key: string): string {\n\t\tconst safe = normalize(key).replace(/^[/\\\\]+/, \"\");\n\t\tconst full = resolve(this.root, safe);\n\t\t// Ensure the resolved path is inside `root`.\n\t\tif (!full.startsWith(this.root + sep) && full !== this.root) {\n\t\t\tthrow new Error(`Path traversal blocked: ${key}`);\n\t\t}\n\t\treturn full;\n\t}\n\n\tasync put(\n\t\tkey: string,\n\t\tbody: FileContent,\n\t\t_opts: PutOptions = {},\n\t): Promise<void> {\n\t\tconst path = this.resolveKey(key);\n\t\tawait mkdir(dirname(path), { recursive: true });\n\t\tconst buf =\n\t\t\ttypeof body === \"string\" ? Buffer.from(body, \"utf-8\") : Buffer.from(body);\n\t\tawait writeFile(path, buf);\n\t}\n\n\tasync get(key: string): Promise<Buffer> {\n\t\tconst path = this.resolveKey(key);\n\t\ttry {\n\t\t\treturn await readFile(path);\n\t\t} catch (err) {\n\t\t\tif ((err as NodeJS.ErrnoException).code === \"ENOENT\") {\n\t\t\t\tthrow new Error(`File not found: ${key}`);\n\t\t\t}\n\t\t\tthrow err;\n\t\t}\n\t}\n\n\tasync delete(key: string): Promise<boolean> {\n\t\tconst path = this.resolveKey(key);\n\t\ttry {\n\t\t\tawait unlink(path);\n\t\t\treturn true;\n\t\t} catch (err) {\n\t\t\tif ((err as NodeJS.ErrnoException).code === \"ENOENT\") return false;\n\t\t\tthrow err;\n\t\t}\n\t}\n\n\tasync exists(key: string): Promise<boolean> {\n\t\ttry {\n\t\t\tawait stat(this.resolveKey(key));\n\t\t\treturn true;\n\t\t} catch {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\tasync head(key: string): Promise<FileMetadata> {\n\t\tconst path = this.resolveKey(key);\n\t\ttry {\n\t\t\tconst s = await stat(path);\n\t\t\treturn {\n\t\t\t\tkey,\n\t\t\t\tsize: s.size,\n\t\t\t\tlastModified: s.mtimeMs,\n\t\t\t};\n\t\t} catch (err) {\n\t\t\tif ((err as NodeJS.ErrnoException).code === \"ENOENT\") {\n\t\t\t\tthrow new Error(`File not found: ${key}`);\n\t\t\t}\n\t\t\tthrow err;\n\t\t}\n\t}\n\n\tasync list(opts: ListOptions = {}): Promise<ListResult> {\n\t\tconst root = this.root;\n\t\tconst prefix = opts.prefix ?? \"\";\n\t\tconst all = await walk(root, \"\", prefix);\n\t\tall.sort();\n\t\tconst limit = opts.limit ?? 1000;\n\t\tconst startIdx = opts.cursor ? Number(opts.cursor) : 0;\n\t\tconst endIdx = Math.min(startIdx + limit, all.length);\n\t\tconst slice = all.slice(startIdx, endIdx);\n\t\treturn {\n\t\t\tkeys: slice,\n\t\t\thasMore: endIdx < all.length,\n\t\t\tcursor: endIdx < all.length ? String(endIdx) : undefined,\n\t\t};\n\t}\n\n\tasync getSignedUrl(\n\t\tkey: string,\n\t\t_opts: SignedUrlOptions = {},\n\t): Promise<string> {\n\t\t// Local driver: serve via a public prefix. Real signing would require\n\t\t// an upstream reverse proxy with signature verification.\n\t\treturn `${this.publicUrlPrefix}/${key}`;\n\t}\n\n\tasync copy(src: string, dest: string): Promise<void> {\n\t\tconst buf = await this.get(src);\n\t\tawait this.put(dest, buf);\n\t}\n\n\tasync move(src: string, dest: string): Promise<void> {\n\t\tconst from = this.resolveKey(src);\n\t\tconst to = this.resolveKey(dest);\n\t\tawait mkdir(dirname(to), { recursive: true });\n\t\tawait rename(from, to);\n\t}\n}\n\nasync function walk(\n\troot: string,\n\tdir: string,\n\tprefix: string,\n): Promise<string[]> {\n\tconst out: string[] = [];\n\tconst full = join(root, dir);\n\tlet entries;\n\ttry {\n\t\tentries = await readdir(full, { withFileTypes: true });\n\t} catch {\n\t\treturn out;\n\t}\n\tfor (const e of entries) {\n\t\tconst rel = dir ? `${dir}/${e.name}` : e.name;\n\t\tif (e.isDirectory()) {\n\t\t\t// Recurse if this directory is on the prefix path\n\t\t\t// (e.g. searching for 'a/1' should walk into 'a').\n\t\t\tif (\n\t\t\t\t!prefix ||\n\t\t\t\trel === prefix.slice(0, -1) ||\n\t\t\t\trel.startsWith(prefix) ||\n\t\t\t\tprefix.startsWith(`${rel}/`)\n\t\t\t) {\n\t\t\t\tconst sub = await walk(root, rel, prefix);\n\t\t\t\tout.push(...sub);\n\t\t\t}\n\t\t} else {\n\t\t\tif (!prefix || rel.startsWith(prefix)) {\n\t\t\t\tout.push(rel);\n\t\t\t}\n\t\t}\n\t}\n\treturn out;\n}\n",
|
|
7
7
|
"/**\n * S3-compatible driver. Works with AWS S3, Cloudflare R2, MinIO, etc.\n *\n * Implementation strategy: we keep the driver thin and use the\n * `@aws-sdk/client-s3` + `@aws-sdk/s3-request-presigner` packages\n * dynamically. They are listed as `peerDependenciesMeta.optional`\n * so they don't bloat the bundle for users not using S3.\n *\n * const driver = new S3Driver({\n * bucket: 'my-bucket',\n * region: 'us-east-1',\n * credentials: { accessKeyId, secretAccessKey },\n * });\n * const drive = new DriveService({ driver });\n */\nimport type {\n\tFileContent,\n\tFileMetadata,\n\tListOptions,\n\tListResult,\n\tPutOptions,\n\tSignedUrlOptions,\n\tStorageDriver,\n} from \"../types.js\";\n\nexport interface S3DriverOptions {\n\tbucket: string;\n\tregion: string;\n\tendpoint?: string;\n\taccessKeyId?: string;\n\tsecretAccessKey?: string;\n\t/** Optional public URL prefix override. */\n\tpublicUrlPrefix?: string;\n}\n\nexport class S3Driver implements StorageDriver {\n\treadonly kind = \"s3\";\n\tprivate opts: S3DriverOptions;\n\t// Lazily resolved at runtime to avoid bundling aws-sdk unless used.\n\tprivate _client: any = null;\n\tprivate _presigner: any = null;\n\n\tconstructor(opts: S3DriverOptions) {\n\t\tthis.opts = opts;\n\t}\n\n\tprivate async client() {\n\t\tif (this._client) return this._client;\n\t\ttry {\n\t\t\tconst mod = await import(\"@aws-sdk/client-s3\");\n\t\t\tconst ctor = mod.S3Client;\n\t\t\tthis._client = new ctor({\n\t\t\t\tregion: this.opts.region,\n\t\t\t\tendpoint: this.opts.endpoint,\n\t\t\t\tcredentials: this.opts.accessKeyId\n\t\t\t\t\t? {\n\t\t\t\t\t\t\taccessKeyId: this.opts.accessKeyId,\n\t\t\t\t\t\t\tsecretAccessKey: this.opts.secretAccessKey ?? \"\",\n\t\t\t\t\t\t}\n\t\t\t\t\t: undefined,\n\t\t\t});\n\t\t} catch (err) {\n\t\t\tthrow new Error(\n\t\t\t\t\"S3Driver requires @aws-sdk/client-s3. Install it with: bun add @aws-sdk/client-s3\",\n\t\t\t);\n\t\t}\n\t\treturn this._client;\n\t}\n\n\tprivate async presigner() {\n\t\tif (this._presigner) return this._presigner;\n\t\ttry {\n\t\t\tconst mod = await import(\"@aws-sdk/s3-request-presigner\");\n\t\t\tthis._presigner = mod.getSignedUrl;\n\t\t} catch {\n\t\t\tthrow new Error(\n\t\t\t\t\"S3Driver signed URLs require @aws-sdk/s3-request-presigner. Install it with: bun add @aws-sdk/s3-request-presigner\",\n\t\t\t);\n\t\t}\n\t\treturn this._presigner;\n\t}\n\n\tasync put(\n\t\tkey: string,\n\t\tbody: FileContent,\n\t\topts: PutOptions = {},\n\t): Promise<void> {\n\t\tconst client = await this.client();\n\t\tconst mod = await import(\"@aws-sdk/client-s3\");\n\t\tconst buf =\n\t\t\ttypeof body === \"string\" ? Buffer.from(body, \"utf-8\") : Buffer.from(body);\n\t\tconst command = new mod.PutObjectCommand({\n\t\t\tBucket: this.opts.bucket,\n\t\t\tKey: key,\n\t\t\tBody: buf,\n\t\t\tContentType: opts.contentType,\n\t\t\tCacheControl: opts.cacheControl,\n\t\t\tACL: opts.acl,\n\t\t\tMetadata: opts.metadata,\n\t\t});\n\t\tawait client.send(command);\n\t}\n\n\tasync get(key: string): Promise<Buffer> {\n\t\tconst client = await this.client();\n\t\tconst mod = await import(\"@aws-sdk/client-s3\");\n\t\tconst command = new mod.GetObjectCommand({\n\t\t\tBucket: this.opts.bucket,\n\t\t\tKey: key,\n\t\t});\n\t\tconst res = await client.send(command);\n\t\tconst chunks: Uint8Array[] = [];\n\t\tfor await (const chunk of res.Body as AsyncIterable<Uint8Array>)\n\t\t\tchunks.push(chunk);\n\t\treturn Buffer.concat(chunks);\n\t}\n\n\tasync delete(key: string): Promise<boolean> {\n\t\tconst client = await this.client();\n\t\tconst mod = await import(\"@aws-sdk/client-s3\");\n\t\tconst command = new mod.DeleteObjectCommand({\n\t\t\tBucket: this.opts.bucket,\n\t\t\tKey: key,\n\t\t});\n\t\tawait client.send(command);\n\t\treturn true;\n\t}\n\n\tasync exists(key: string): Promise<boolean> {\n\t\ttry {\n\t\t\tawait this.head(key);\n\t\t\treturn true;\n\t\t} catch {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\tasync head(key: string): Promise<FileMetadata> {\n\t\tconst client = await this.client();\n\t\tconst mod = await import(\"@aws-sdk/client-s3\");\n\t\tconst command = new mod.HeadObjectCommand({\n\t\t\tBucket: this.opts.bucket,\n\t\t\tKey: key,\n\t\t});\n\t\tconst res = await client.send(command);\n\t\treturn {\n\t\t\tkey,\n\t\t\tsize: res.ContentLength ?? 0,\n\t\t\tcontentType: res.ContentType,\n\t\t\tlastModified: res.LastModified?.getTime() ?? Date.now(),\n\t\t\tetag: res.ETag,\n\t\t};\n\t}\n\n\tasync list(opts: ListOptions = {}): Promise<ListResult> {\n\t\tconst client = await this.client();\n\t\tconst mod = await import(\"@aws-sdk/client-s3\");\n\t\tconst command = new mod.ListObjectsV2Command({\n\t\t\tBucket: this.opts.bucket,\n\t\t\tPrefix: opts.prefix,\n\t\t\tMaxKeys: opts.limit,\n\t\t\tContinuationToken: opts.cursor,\n\t\t});\n\t\tconst res = await client.send(command);\n\t\tconst keys = (res.Contents ?? []).map((o: any) => o.Key as string);\n\t\treturn {\n\t\t\tkeys,\n\t\t\thasMore: Boolean(res.IsTruncated),\n\t\t\tcursor: res.NextContinuationToken,\n\t\t};\n\t}\n\n\tasync getSignedUrl(\n\t\tkey: string,\n\t\topts: SignedUrlOptions = {},\n\t): Promise<string> {\n\t\tconst client = await this.client();\n\t\tconst mod = await import(\"@aws-sdk/client-s3\");\n\t\tconst presigner = await this.presigner();\n\t\tconst expiresIn = opts.expiresIn ?? 3600;\n\t\tconst command = new mod.GetObjectCommand({\n\t\t\tBucket: this.opts.bucket,\n\t\t\tKey: key,\n\t\t\tResponseContentDisposition: opts.asAttachment\n\t\t\t\t? `attachment; filename=\"${opts.asAttachment}\"`\n\t\t\t\t: undefined,\n\t\t\tResponseContentType: opts.contentType,\n\t\t});\n\t\treturn presigner(client, command, { expiresIn });\n\t}\n\n\tasync copy(src: string, dest: string): Promise<void> {\n\t\tconst client = await this.client();\n\t\tconst mod = await import(\"@aws-sdk/client-s3\");\n\t\tconst command = new mod.CopyObjectCommand({\n\t\t\tBucket: this.opts.bucket,\n\t\t\tKey: dest,\n\t\t\tCopySource: `${this.opts.bucket}/${src}`,\n\t\t});\n\t\tawait client.send(command);\n\t}\n\n\tasync move(src: string, dest: string): Promise<void> {\n\t\tawait this.copy(src, dest);\n\t\tawait this.delete(src);\n\t}\n}\n",
|
|
8
|
-
"/**\n * `DriveService` — public façade.\n *\n * const drive = new DriveService({ driver: new LocalDriver({ root: '/data' }) });\n * await drive.put('a.txt', 'hello');\n * const body = await drive.get('a.txt');\n */\nimport { Inject, Injectable } from \"@nexusts/core\";\nimport { MemoryDriver } from \"./drivers/memory.js\";\nimport type {\n\tDriveConfig,\n\tFileContent,\n\tFileMetadata,\n\tListOptions,\n\tListResult,\n\tPutOptions,\n\tSignedUrlOptions,\n} from \"./types.js\";\n\n@Injectable()\nexport class DriveService {\n\t/** DI token. */\n\tstatic readonly TOKEN = Symbol.for(\"nexus:DriveService\");\n\n\tprivate _driver
|
|
9
|
-
"/**\n * `DriveModule` — drop-in file storage.\n *\n * @Module({\n * imports: [\n * DriveModule.forRoot({\n * driver: new LocalDriver({ root: '/var/data' }),\n * }),\n * ],\n * })\n * export class AppModule {}\n */\nimport { Module } from \"@nexusts/core\";\nimport { DriveService } from \"./drive.service.js\";\nimport { MemoryDriver } from \"./drivers/memory.js\";\nimport type { DriveConfig } from \"./types.js\";\
|
|
8
|
+
"/**\n * `DriveService` — public façade.\n *\n * const drive = new DriveService({ driver: new LocalDriver({ root: '/data' }) });\n * await drive.put('a.txt', 'hello');\n * const body = await drive.get('a.txt');\n */\nimport { Inject, Injectable } from \"@nexusts/core\";\nimport { MemoryDriver } from \"./drivers/memory.js\";\nimport type {\n\tDriveConfig,\n\tFileContent,\n\tFileMetadata,\n\tListOptions,\n\tListResult,\n\tPutOptions,\n\tSignedUrlOptions,\n} from \"./types.js\";\n\n@Injectable()\nexport class DriveService {\n\t/** DI token. */\n\tstatic readonly TOKEN = Symbol.for(\"nexus:DriveService\");\n\n\t/** Drive configuration — injected by DI container. */\n\t@Inject(\"DRIVE_CONFIG\") declare private readonly config: DriveConfig;\n\n\tprivate _driver!: import(\"./types.js\").StorageDriver;\n\tprivate _signedUrlBuilder!: (key: string, opts?: SignedUrlOptions) => Promise<string>;\n\tdefaultVisibility: NonNullable<DriveConfig[\"defaultVisibility\"]> = \"private\";\n\n\tconstructor(directConfig?: DriveConfig) {\n\t\t// Support direct instantiation (non-DI): store config immediately.\n\t\t// When using DI, @Inject(\"DRIVE_CONFIG\") sets this.config after construction.\n\t\tif (directConfig !== undefined) {\n\t\t\t(this as any).config = directConfig;\n\t\t}\n\t}\n\n\t/** Ensure driver and builder are initialized from config. */\n\tprivate ensureInit(): void {\n\t\tif (this._driver) return;\n\t\tconst cfg = this.config ?? {};\n\t\tthis._driver = cfg.driver ?? new MemoryDriver();\n\t\tthis.defaultVisibility = cfg.defaultVisibility ?? \"private\";\n\t\tthis._signedUrlBuilder =\n\t\t\tcfg.signedUrlBuilder ??\n\t\t\t(async (key: string, opts?: SignedUrlOptions) =>\n\t\t\t\tthis._driver.getSignedUrl(key, opts));\n\t}\n\n\t/** Direct access to the underlying driver (for advanced use). */\n\tget driver(): import(\"./types.js\").StorageDriver {\n\t\tthis.ensureInit();\n\t\treturn this._driver;\n\t}\n\n\tasync put(key: string, body: FileContent, opts?: PutOptions): Promise<void> {\n\t\tthis.ensureInit();\n\t\treturn this._driver.put(key, body, opts);\n\t}\n\n\tasync get(key: string): Promise<Buffer> {\n\t\tthis.ensureInit();\n\t\treturn this._driver.get(key);\n\t}\n\n\tasync delete(key: string): Promise<boolean> {\n\t\tthis.ensureInit();\n\t\treturn this._driver.delete(key);\n\t}\n\n\tasync exists(key: string): Promise<boolean> {\n\t\tthis.ensureInit();\n\t\treturn this._driver.exists(key);\n\t}\n\n\tasync head(key: string): Promise<FileMetadata> {\n\t\tthis.ensureInit();\n\t\treturn this._driver.head(key);\n\t}\n\n\tasync list(opts?: ListOptions): Promise<ListResult> {\n\t\tthis.ensureInit();\n\t\treturn this._driver.list(opts);\n\t}\n\n\tasync getSignedUrl(key: string, opts?: SignedUrlOptions): Promise<string> {\n\t\tthis.ensureInit();\n\t\treturn this._signedUrlBuilder(key, opts);\n\t}\n\n\tasync copy(src: string, dest: string): Promise<void> {\n\t\tthis.ensureInit();\n\t\treturn this._driver.copy(src, dest);\n\t}\n\n\tasync move(src: string, dest: string): Promise<void> {\n\t\tthis.ensureInit();\n\t\treturn this._driver.move(src, dest);\n\t}\n}\n",
|
|
9
|
+
"/**\n * `DriveModule` — drop-in file storage.\n *\n * @Module({\n * imports: [\n * DriveModule.forRoot({\n * driver: new LocalDriver({ root: '/var/data' }),\n * }),\n * ],\n * })\n * export class AppModule {}\n */\nimport { Module } from \"@nexusts/core\";\nimport { DriveService } from \"./drive.service.js\";\nimport { MemoryDriver } from \"./drivers/memory.js\";\nimport type { DriveConfig } from \"./types.js\";\n\n@Module({\n\tproviders: [\n\t\tDriveService,\n\t\t{ provide: DriveService.TOKEN, useExisting: DriveService },\n\t],\n\texports: [DriveService, DriveService.TOKEN],\n})\nexport class DriveModule {\n\tstatic forRoot(config: DriveConfig = {}) {\n\t\tconst cfg: DriveConfig = {\n\t\t\tdriver: new MemoryDriver(),\n\t\t\t...config,\n\t\t};\n\t\t@Module({\n\t\t\tproviders: [\n\t\t\t\tDriveService,\n\t\t\t\t{ provide: DriveService.TOKEN, useExisting: DriveService },\n\t\t\t\t{ provide: \"DRIVE_CONFIG\", useValue: cfg },\n\t\t\t],\n\t\t\texports: [DriveService, DriveService.TOKEN],\n\t\t})\n\t\tclass ConfiguredDriveModule {}\n\t\tObject.defineProperty(ConfiguredDriveModule, \"name\", {\n\t\t\tvalue: \"ConfiguredDriveModule\",\n\t\t});\n\t\treturn ConfiguredDriveModule;\n\t}\n}\n"
|
|
10
10
|
],
|
|
11
|
-
"mappings": "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",
|
|
12
|
-
"debugId": "
|
|
11
|
+
"mappings": "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",
|
|
12
|
+
"debugId": "F7ED3CCF4CDF271B64756E2164756E21",
|
|
13
13
|
"names": []
|
|
14
14
|
}
|
package/dist/types.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nexusts/drive",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.7",
|
|
4
4
|
"description": "File storage abstraction (Local / S3 / R2 / memory)",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
],
|
|
27
27
|
"license": "MIT",
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"@nexusts/core": "^0.9.
|
|
29
|
+
"@nexusts/core": "^0.9.7"
|
|
30
30
|
},
|
|
31
31
|
"repository": {
|
|
32
32
|
"type": "git",
|