@typetron/framework 0.5.31 → 0.5.32
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/Framework/Readme.md +8 -3
- package/Storage/Readme.md +137 -32
- package/build/Cache/Stores/FileStore.d.ts +3 -3
- package/build/Cache/Stores/FileStore.d.ts.map +1 -1
- package/build/Cache/Stores/FileStore.js.map +1 -1
- package/build/Database/List.d.ts +1 -1
- package/build/Database/Migrations/Migrator.d.ts +3 -3
- package/build/Database/Migrations/Migrator.d.ts.map +1 -1
- package/build/Database/Migrations/Migrator.js.map +1 -1
- package/build/Database/Seeders/SeederManager.d.ts +3 -3
- package/build/Database/Seeders/SeederManager.d.ts.map +1 -1
- package/build/Database/Seeders/SeederManager.js +3 -3
- package/build/Database/Seeders/SeederManager.js.map +1 -1
- package/build/Framework/Application.js +1 -1
- package/build/Framework/Application.js.map +1 -1
- package/build/Framework/Config/StorageConfig.d.ts +7 -0
- package/build/Framework/Config/StorageConfig.d.ts.map +1 -0
- package/build/Framework/Config/StorageConfig.js +15 -0
- package/build/Framework/Config/StorageConfig.js.map +1 -0
- package/build/Framework/Config/index.d.ts +1 -0
- package/build/Framework/Config/index.d.ts.map +1 -1
- package/build/Framework/Config/index.js +1 -0
- package/build/Framework/Config/index.js.map +1 -1
- package/build/Framework/Middleware/StaticAssetsMiddleware.d.ts +2 -2
- package/build/Framework/Middleware/StaticAssetsMiddleware.d.ts.map +1 -1
- package/build/Framework/Middleware/StaticAssetsMiddleware.js +1 -1
- package/build/Framework/Middleware/StaticAssetsMiddleware.js.map +1 -1
- package/build/Framework/Providers/CacheProvider.js +1 -1
- package/build/Framework/Providers/CacheProvider.js.map +1 -1
- package/build/Framework/Providers/DatabaseProvider.d.ts +2 -2
- package/build/Framework/Providers/DatabaseProvider.d.ts.map +1 -1
- package/build/Framework/Providers/DatabaseProvider.js +1 -1
- package/build/Framework/Providers/DatabaseProvider.js.map +1 -1
- package/build/Framework/Providers/StorageProvider.d.ts +7 -0
- package/build/Framework/Providers/StorageProvider.d.ts.map +1 -0
- package/build/Framework/Providers/StorageProvider.js +28 -0
- package/build/Framework/Providers/StorageProvider.js.map +1 -0
- package/build/Framework/Providers/WebsocketsProvider.d.ts.map +1 -1
- package/build/Framework/Providers/WebsocketsProvider.js +13 -0
- package/build/Framework/Providers/WebsocketsProvider.js.map +1 -1
- package/build/Framework/index.d.ts +1 -0
- package/build/Framework/index.d.ts.map +1 -1
- package/build/Framework/index.js +1 -0
- package/build/Framework/index.js.map +1 -1
- package/build/Router/Http/Request.d.ts.map +1 -1
- package/build/Router/Http/Request.js +3 -4
- package/build/Router/Http/Request.js.map +1 -1
- package/build/Router/Router.js +1 -1
- package/build/Router/Router.js.map +1 -1
- package/build/Router/Servers/uNetworking.d.ts.map +1 -1
- package/build/Router/Servers/uNetworking.js +3 -4
- package/build/Router/Servers/uNetworking.js.map +1 -1
- package/build/Storage/Drivers/LocalDriver.d.ts +26 -0
- package/build/Storage/Drivers/LocalDriver.d.ts.map +1 -0
- package/build/Storage/Drivers/LocalDriver.js +209 -0
- package/build/Storage/Drivers/LocalDriver.js.map +1 -0
- package/build/Storage/Drivers/MemoryDriver.d.ts +25 -0
- package/build/Storage/Drivers/MemoryDriver.d.ts.map +1 -0
- package/build/Storage/Drivers/MemoryDriver.js +108 -0
- package/build/Storage/Drivers/MemoryDriver.js.map +1 -0
- package/build/Storage/Drivers/ReadOnlyDriver.d.ts +22 -0
- package/build/Storage/Drivers/ReadOnlyDriver.d.ts.map +1 -0
- package/build/Storage/Drivers/ReadOnlyDriver.js +38 -0
- package/build/Storage/Drivers/ReadOnlyDriver.js.map +1 -0
- package/build/Storage/Drivers/S3Driver.d.ts +32 -0
- package/build/Storage/Drivers/S3Driver.d.ts.map +1 -0
- package/build/Storage/Drivers/S3Driver.js +248 -0
- package/build/Storage/Drivers/S3Driver.js.map +1 -0
- package/build/Storage/Drivers/ScopedDriver.d.ts +24 -0
- package/build/Storage/Drivers/ScopedDriver.d.ts.map +1 -0
- package/build/Storage/Drivers/ScopedDriver.js +50 -0
- package/build/Storage/Drivers/ScopedDriver.js.map +1 -0
- package/build/Storage/File.d.ts +14 -4
- package/build/Storage/File.d.ts.map +1 -1
- package/build/Storage/File.js +29 -47
- package/build/Storage/File.js.map +1 -1
- package/build/Storage/Filesystem.d.ts +31 -0
- package/build/Storage/Filesystem.d.ts.map +1 -0
- package/build/Storage/Filesystem.js +121 -0
- package/build/Storage/Filesystem.js.map +1 -0
- package/build/Storage/PathPrefixer.d.ts +9 -0
- package/build/Storage/PathPrefixer.d.ts.map +1 -0
- package/build/Storage/PathPrefixer.js +53 -0
- package/build/Storage/PathPrefixer.js.map +1 -0
- package/build/Storage/Storage.d.ts +37 -9
- package/build/Storage/Storage.d.ts.map +1 -1
- package/build/Storage/Storage.js +85 -101
- package/build/Storage/Storage.js.map +1 -1
- package/build/Storage/StorageDisk.d.ts +34 -0
- package/build/Storage/StorageDisk.d.ts.map +1 -0
- package/build/Storage/StorageDisk.js +104 -0
- package/build/Storage/StorageDisk.js.map +1 -0
- package/build/Storage/StorageDriver.d.ts +19 -0
- package/build/Storage/StorageDriver.d.ts.map +1 -0
- package/build/Storage/StorageDriver.js +7 -0
- package/build/Storage/StorageDriver.js.map +1 -0
- package/build/Storage/UploadedFile.d.ts +9 -0
- package/build/Storage/UploadedFile.d.ts.map +1 -0
- package/build/Storage/UploadedFile.js +22 -0
- package/build/Storage/UploadedFile.js.map +1 -0
- package/build/Storage/errors.d.ts +21 -0
- package/build/Storage/errors.d.ts.map +1 -0
- package/build/Storage/errors.js +43 -0
- package/build/Storage/errors.js.map +1 -0
- package/build/Storage/index.d.ts +12 -0
- package/build/Storage/index.d.ts.map +1 -1
- package/build/Storage/index.js +12 -0
- package/build/Storage/index.js.map +1 -1
- package/build/Storage/types.d.ts +73 -0
- package/build/Storage/types.d.ts.map +1 -0
- package/build/Storage/types.js +3 -0
- package/build/Storage/types.js.map +1 -0
- package/package.json +16 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Storage.js","sourceRoot":"","sources":["../../Storage/Storage.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Storage.js","sourceRoot":"","sources":["../../Storage/Storage.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { File } from './File';
|
|
2
|
+
import { UploadedFile } from './UploadedFile';
|
|
3
|
+
import { StorageDriver } from './StorageDriver';
|
|
4
|
+
import { ListOptions, StorageContent, StorageEntry, TemporaryUrlOptions, Visibility, WriteOptions } from './types';
|
|
5
|
+
export declare class StorageDisk {
|
|
6
|
+
readonly name: string;
|
|
7
|
+
private readonly storageDriver;
|
|
8
|
+
constructor(name: string, storageDriver: StorageDriver);
|
|
9
|
+
driver<T extends StorageDriver = StorageDriver>(): T;
|
|
10
|
+
put(key: string, content: StorageContent, options?: WriteOptions): Promise<File>;
|
|
11
|
+
putFile(key: string, file: UploadedFile, options?: WriteOptions): Promise<File>;
|
|
12
|
+
read(key: string): Promise<Buffer>;
|
|
13
|
+
get(key: string): Promise<Buffer>;
|
|
14
|
+
readStream(key: string): Promise<import("node:stream").Readable>;
|
|
15
|
+
json<T>(key: string): Promise<T>;
|
|
16
|
+
exists(key: string): Promise<boolean>;
|
|
17
|
+
missing(key: string): Promise<boolean>;
|
|
18
|
+
stat(key: string): Promise<File>;
|
|
19
|
+
list(prefix?: string, options?: ListOptions): AsyncIterable<StorageEntry>;
|
|
20
|
+
files(prefix?: string, options?: ListOptions): Promise<File[]>;
|
|
21
|
+
directories(prefix?: string): Promise<string[]>;
|
|
22
|
+
delete(key: string): Promise<void>;
|
|
23
|
+
deleteDirectory(prefix: string): Promise<void>;
|
|
24
|
+
copy(source: string, destination: string): Promise<File>;
|
|
25
|
+
move(source: string, destination: string): Promise<File>;
|
|
26
|
+
visibility(key: string): Promise<Visibility>;
|
|
27
|
+
setVisibility(key: string, visibility: Visibility): Promise<void>;
|
|
28
|
+
url(key: string): string;
|
|
29
|
+
temporaryUrl(key: string, expiresInSeconds: number, options?: TemporaryUrlOptions): Promise<string>;
|
|
30
|
+
assertExists(key: string): Promise<void>;
|
|
31
|
+
assertMissing(key: string): Promise<void>;
|
|
32
|
+
assertCount(prefix: string, count: number, recursively?: boolean): Promise<void>;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=StorageDisk.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StorageDisk.d.ts","sourceRoot":"","sources":["../../Storage/StorageDisk.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAE/C,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,YAAY,EAAE,mBAAmB,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAElH,qBAAa,WAAW;aACQ,IAAI,EAAE,MAAM;IAAE,OAAO,CAAC,QAAQ,CAAC,aAAa;gBAA5C,IAAI,EAAE,MAAM,EAAmB,aAAa,EAAE,aAAa;IAEvF,MAAM,CAAC,CAAC,SAAS,aAAa,GAAG,aAAa,KAAK,CAAC;IAI9C,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAK1F,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAInF,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAClC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IACjC,UAAU,CAAC,GAAG,EAAE,MAAM;IAEhB,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAItC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAC/B,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAEtC,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAItC,IAAI,CAAC,MAAM,SAAK,EAAE,OAAO,GAAE,WAAgB,GAAG,aAAa,CAAC,YAAY,CAAC;IAInE,KAAK,CAAC,MAAM,SAAK,EAAE,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAiB9D,WAAW,CAAC,MAAM,SAAK,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAUjD,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAClC,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAExC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKxD,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK9D,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAC5C,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAEjE,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAOxB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC;IAO7F,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMxC,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMzC,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;CAMvF"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.StorageDisk = void 0;
|
|
4
|
+
const File_1 = require("./File");
|
|
5
|
+
const errors_1 = require("./errors");
|
|
6
|
+
class StorageDisk {
|
|
7
|
+
name;
|
|
8
|
+
storageDriver;
|
|
9
|
+
constructor(name, storageDriver) {
|
|
10
|
+
this.name = name;
|
|
11
|
+
this.storageDriver = storageDriver;
|
|
12
|
+
}
|
|
13
|
+
driver() {
|
|
14
|
+
return this.storageDriver;
|
|
15
|
+
}
|
|
16
|
+
async put(key, content, options = {}) {
|
|
17
|
+
await this.storageDriver.write(key, content, options);
|
|
18
|
+
return new File_1.File(key, this.name, { mimeType: options.mimeType, metadata: options.metadata, visibility: options.visibility });
|
|
19
|
+
}
|
|
20
|
+
putFile(key, file, options = {}) {
|
|
21
|
+
return this.put(key, file.stream(), { mimeType: file.mimeType, ...options });
|
|
22
|
+
}
|
|
23
|
+
read(key) { return this.storageDriver.read(key); }
|
|
24
|
+
get(key) { return this.read(key); }
|
|
25
|
+
readStream(key) { return this.storageDriver.readStream(key); }
|
|
26
|
+
async json(key) {
|
|
27
|
+
return JSON.parse((await this.read(key)).toString());
|
|
28
|
+
}
|
|
29
|
+
exists(key) { return this.storageDriver.exists(key); }
|
|
30
|
+
async missing(key) { return !(await this.exists(key)); }
|
|
31
|
+
async stat(key) {
|
|
32
|
+
return new File_1.File(key, this.name, await this.storageDriver.metadata(key));
|
|
33
|
+
}
|
|
34
|
+
list(prefix = '', options = {}) {
|
|
35
|
+
return this.storageDriver.list(prefix, options);
|
|
36
|
+
}
|
|
37
|
+
async files(prefix = '', options = {}) {
|
|
38
|
+
const files = [];
|
|
39
|
+
for await (const entry of this.list(prefix, options)) {
|
|
40
|
+
if (entry.type === 'file') {
|
|
41
|
+
files.push(new File_1.File(entry.key, this.name, {
|
|
42
|
+
size: entry.size,
|
|
43
|
+
lastModified: entry.lastModified,
|
|
44
|
+
mimeType: entry.mimeType,
|
|
45
|
+
etag: entry.etag,
|
|
46
|
+
metadata: entry.metadata,
|
|
47
|
+
visibility: entry.visibility,
|
|
48
|
+
}));
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return files;
|
|
52
|
+
}
|
|
53
|
+
async directories(prefix = '') {
|
|
54
|
+
const directories = [];
|
|
55
|
+
for await (const entry of this.list(prefix)) {
|
|
56
|
+
if (entry.type === 'directory') {
|
|
57
|
+
directories.push(entry.key);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
return directories;
|
|
61
|
+
}
|
|
62
|
+
delete(key) { return this.storageDriver.delete(key); }
|
|
63
|
+
deleteDirectory(prefix) { return this.storageDriver.deleteDirectory(prefix); }
|
|
64
|
+
async copy(source, destination) {
|
|
65
|
+
await this.storageDriver.copy(source, destination);
|
|
66
|
+
return new File_1.File(destination, this.name);
|
|
67
|
+
}
|
|
68
|
+
async move(source, destination) {
|
|
69
|
+
await this.storageDriver.move(source, destination);
|
|
70
|
+
return new File_1.File(destination, this.name);
|
|
71
|
+
}
|
|
72
|
+
visibility(key) { return this.storageDriver.visibility(key); }
|
|
73
|
+
setVisibility(key, visibility) { return this.storageDriver.setVisibility(key, visibility); }
|
|
74
|
+
url(key) {
|
|
75
|
+
if (!this.storageDriver.url) {
|
|
76
|
+
throw new errors_1.UnsupportedStorageOperation('url');
|
|
77
|
+
}
|
|
78
|
+
return this.storageDriver.url(key);
|
|
79
|
+
}
|
|
80
|
+
temporaryUrl(key, expiresInSeconds, options) {
|
|
81
|
+
if (!this.storageDriver.temporaryUrl) {
|
|
82
|
+
throw new errors_1.UnsupportedStorageOperation('temporaryUrl');
|
|
83
|
+
}
|
|
84
|
+
return this.storageDriver.temporaryUrl(key, expiresInSeconds, options);
|
|
85
|
+
}
|
|
86
|
+
async assertExists(key) {
|
|
87
|
+
if (!(await this.exists(key))) {
|
|
88
|
+
throw new Error(`Expected storage file '${key}' to exist.`);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
async assertMissing(key) {
|
|
92
|
+
if (await this.exists(key)) {
|
|
93
|
+
throw new Error(`Expected storage file '${key}' to be missing.`);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
async assertCount(prefix, count, recursively = false) {
|
|
97
|
+
const files = await this.files(prefix, { recursive: recursively });
|
|
98
|
+
if (files.length !== count) {
|
|
99
|
+
throw new Error(`Expected ${count} storage files below '${prefix}', found ${files.length}.`);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
exports.StorageDisk = StorageDisk;
|
|
104
|
+
//# sourceMappingURL=StorageDisk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StorageDisk.js","sourceRoot":"","sources":["../../Storage/StorageDisk.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Readable } from 'node:stream';
|
|
2
|
+
import { FileMetadata, ListOptions, StorageContent, StorageEntry, TemporaryUrlOptions, Visibility, WriteOptions } from './types';
|
|
3
|
+
export declare abstract class StorageDriver {
|
|
4
|
+
abstract write(key: string, content: StorageContent, options?: WriteOptions): Promise<void>;
|
|
5
|
+
abstract read(key: string): Promise<Buffer>;
|
|
6
|
+
abstract readStream(key: string): Promise<Readable>;
|
|
7
|
+
abstract exists(key: string): Promise<boolean>;
|
|
8
|
+
abstract metadata(key: string): Promise<FileMetadata>;
|
|
9
|
+
abstract list(prefix?: string, options?: ListOptions): AsyncIterable<StorageEntry>;
|
|
10
|
+
abstract delete(key: string): Promise<void>;
|
|
11
|
+
abstract deleteDirectory(prefix: string): Promise<void>;
|
|
12
|
+
abstract copy(source: string, destination: string): Promise<void>;
|
|
13
|
+
abstract move(source: string, destination: string): Promise<void>;
|
|
14
|
+
abstract visibility(key: string): Promise<Visibility>;
|
|
15
|
+
abstract setVisibility(key: string, visibility: Visibility): Promise<void>;
|
|
16
|
+
url?(key: string): string;
|
|
17
|
+
temporaryUrl?(key: string, expiresInSeconds: number, options?: TemporaryUrlOptions): Promise<string>;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=StorageDriver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StorageDriver.d.ts","sourceRoot":"","sources":["../../Storage/StorageDriver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,YAAY,EAAE,mBAAmB,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAEhI,8BAAsB,aAAa;IAC/B,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAC3F,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC3C,QAAQ,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IACnD,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAC9C,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IACrD,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,aAAa,CAAC,YAAY,CAAC;IAClF,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAC3C,QAAQ,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IACvD,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IACjE,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IACjE,QAAQ,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IACrD,QAAQ,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAE1E,GAAG,CAAC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IACzB,YAAY,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC;CACvG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StorageDriver.js","sourceRoot":"","sources":["../../Storage/StorageDriver.ts"],"names":[],"mappings":";;;AAGA,MAAsB,aAAa;CAgBlC;AAhBD,sCAgBC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Readable } from 'node:stream';
|
|
2
|
+
import { File } from './File';
|
|
3
|
+
export declare class UploadedFile extends File {
|
|
4
|
+
temporaryPath: string;
|
|
5
|
+
uploadMimeType?: string | undefined;
|
|
6
|
+
constructor(temporaryPath: string, originalName: string, uploadMimeType?: string | undefined);
|
|
7
|
+
stream(): Readable;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=UploadedFile.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UploadedFile.d.ts","sourceRoot":"","sources":["../../Storage/UploadedFile.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAE7B,qBAAa,YAAa,SAAQ,IAAI;IAEvB,aAAa,EAAE,MAAM;IAErB,cAAc,CAAC,EAAE,MAAM;gBAFvB,aAAa,EAAE,MAAM,EAC5B,YAAY,EAAE,MAAM,EACb,cAAc,CAAC,EAAE,MAAM,YAAA;IAQlC,MAAM,IAAI,QAAQ;CAGrB"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.UploadedFile = void 0;
|
|
4
|
+
const node_fs_1 = require("node:fs");
|
|
5
|
+
const File_1 = require("./File");
|
|
6
|
+
class UploadedFile extends File_1.File {
|
|
7
|
+
temporaryPath;
|
|
8
|
+
uploadMimeType;
|
|
9
|
+
constructor(temporaryPath, originalName, uploadMimeType) {
|
|
10
|
+
super(temporaryPath);
|
|
11
|
+
this.temporaryPath = temporaryPath;
|
|
12
|
+
this.uploadMimeType = uploadMimeType;
|
|
13
|
+
this.originalName = originalName;
|
|
14
|
+
this.mimeType = uploadMimeType;
|
|
15
|
+
this.saved = true;
|
|
16
|
+
}
|
|
17
|
+
stream() {
|
|
18
|
+
return (0, node_fs_1.createReadStream)(this.temporaryPath);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
exports.UploadedFile = UploadedFile;
|
|
22
|
+
//# sourceMappingURL=UploadedFile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UploadedFile.js","sourceRoot":"","sources":["../../Storage/UploadedFile.ts"],"names":[],"mappings":";;;AAAA,qCAA0C;AAE1C,iCAA6B;AAE7B,MAAa,YAAa,SAAQ,WAAI;IAEvB;IAEA;IAHX,YACW,aAAqB,EAC5B,YAAoB,EACb,cAAuB;QAE9B,KAAK,CAAC,aAAa,CAAC,CAAA;QAJb,kBAAa,GAAb,aAAa,CAAQ;QAErB,mBAAc,GAAd,cAAc,CAAS;QAG9B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;QAChC,IAAI,CAAC,QAAQ,GAAG,cAAc,CAAA;QAC9B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;IACrB,CAAC;IAED,MAAM;QACF,OAAO,IAAA,0BAAgB,EAAC,IAAI,CAAC,aAAa,CAAC,CAAA;IAC/C,CAAC;CACJ;AAfD,oCAeC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export declare class StorageError extends Error {
|
|
2
|
+
}
|
|
3
|
+
export declare class StorageDiskNotFound extends StorageError {
|
|
4
|
+
constructor(name: string);
|
|
5
|
+
}
|
|
6
|
+
export declare class StorageDriverNotSupported extends StorageError {
|
|
7
|
+
constructor(name: string);
|
|
8
|
+
}
|
|
9
|
+
export declare class StorageFileNotFound extends StorageError {
|
|
10
|
+
constructor(key: string);
|
|
11
|
+
}
|
|
12
|
+
export declare class InvalidStorageKey extends StorageError {
|
|
13
|
+
constructor(key: string);
|
|
14
|
+
}
|
|
15
|
+
export declare class UnsupportedStorageOperation extends StorageError {
|
|
16
|
+
constructor(operation: string);
|
|
17
|
+
}
|
|
18
|
+
export declare class ReadOnlyStorage extends StorageError {
|
|
19
|
+
constructor();
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../Storage/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,YAAa,SAAQ,KAAK;CAAG;AAE1C,qBAAa,mBAAoB,SAAQ,YAAY;gBACrC,IAAI,EAAE,MAAM;CAG3B;AAED,qBAAa,yBAA0B,SAAQ,YAAY;gBAC3C,IAAI,EAAE,MAAM;CAG3B;AAED,qBAAa,mBAAoB,SAAQ,YAAY;gBACrC,GAAG,EAAE,MAAM;CAG1B;AAED,qBAAa,iBAAkB,SAAQ,YAAY;gBACnC,GAAG,EAAE,MAAM;CAG1B;AAED,qBAAa,2BAA4B,SAAQ,YAAY;gBAC7C,SAAS,EAAE,MAAM;CAGhC;AAED,qBAAa,eAAgB,SAAQ,YAAY;;CAIhD"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ReadOnlyStorage = exports.UnsupportedStorageOperation = exports.InvalidStorageKey = exports.StorageFileNotFound = exports.StorageDriverNotSupported = exports.StorageDiskNotFound = exports.StorageError = void 0;
|
|
4
|
+
class StorageError extends Error {
|
|
5
|
+
}
|
|
6
|
+
exports.StorageError = StorageError;
|
|
7
|
+
class StorageDiskNotFound extends StorageError {
|
|
8
|
+
constructor(name) {
|
|
9
|
+
super(`Storage disk '${name}' is not configured.`);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
exports.StorageDiskNotFound = StorageDiskNotFound;
|
|
13
|
+
class StorageDriverNotSupported extends StorageError {
|
|
14
|
+
constructor(name) {
|
|
15
|
+
super(`Storage driver '${name}' is not supported.`);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
exports.StorageDriverNotSupported = StorageDriverNotSupported;
|
|
19
|
+
class StorageFileNotFound extends StorageError {
|
|
20
|
+
constructor(key) {
|
|
21
|
+
super(`Storage file '${key}' was not found.`);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
exports.StorageFileNotFound = StorageFileNotFound;
|
|
25
|
+
class InvalidStorageKey extends StorageError {
|
|
26
|
+
constructor(key) {
|
|
27
|
+
super(`Storage key '${key}' is invalid.`);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
exports.InvalidStorageKey = InvalidStorageKey;
|
|
31
|
+
class UnsupportedStorageOperation extends StorageError {
|
|
32
|
+
constructor(operation) {
|
|
33
|
+
super(`The storage driver does not support '${operation}'.`);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
exports.UnsupportedStorageOperation = UnsupportedStorageOperation;
|
|
37
|
+
class ReadOnlyStorage extends StorageError {
|
|
38
|
+
constructor() {
|
|
39
|
+
super('The storage disk is read-only.');
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
exports.ReadOnlyStorage = ReadOnlyStorage;
|
|
43
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../Storage/errors.ts"],"names":[],"mappings":";;;AAAA,MAAa,YAAa,SAAQ,KAAK;CAAG;AAA1C,oCAA0C;AAE1C,MAAa,mBAAoB,SAAQ,YAAY;IACjD,YAAY,IAAY;QACpB,KAAK,CAAC,iBAAiB,IAAI,sBAAsB,CAAC,CAAA;IACtD,CAAC;CACJ;AAJD,kDAIC;AAED,MAAa,yBAA0B,SAAQ,YAAY;IACvD,YAAY,IAAY;QACpB,KAAK,CAAC,mBAAmB,IAAI,qBAAqB,CAAC,CAAA;IACvD,CAAC;CACJ;AAJD,8DAIC;AAED,MAAa,mBAAoB,SAAQ,YAAY;IACjD,YAAY,GAAW;QACnB,KAAK,CAAC,iBAAiB,GAAG,kBAAkB,CAAC,CAAA;IACjD,CAAC;CACJ;AAJD,kDAIC;AAED,MAAa,iBAAkB,SAAQ,YAAY;IAC/C,YAAY,GAAW;QACnB,KAAK,CAAC,gBAAgB,GAAG,eAAe,CAAC,CAAA;IAC7C,CAAC;CACJ;AAJD,8CAIC;AAED,MAAa,2BAA4B,SAAQ,YAAY;IACzD,YAAY,SAAiB;QACzB,KAAK,CAAC,wCAAwC,SAAS,IAAI,CAAC,CAAA;IAChE,CAAC;CACJ;AAJD,kEAIC;AAED,MAAa,eAAgB,SAAQ,YAAY;IAC7C;QACI,KAAK,CAAC,gCAAgC,CAAC,CAAA;IAC3C,CAAC;CACJ;AAJD,0CAIC"}
|
package/build/Storage/index.d.ts
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
export * from './File';
|
|
2
|
+
export * from './UploadedFile';
|
|
2
3
|
export * from './Storage';
|
|
4
|
+
export * from './StorageDisk';
|
|
5
|
+
export * from './StorageDriver';
|
|
6
|
+
export * from './Filesystem';
|
|
7
|
+
export * from './PathPrefixer';
|
|
8
|
+
export * from './types';
|
|
9
|
+
export * from './errors';
|
|
10
|
+
export * from './Drivers/LocalDriver';
|
|
11
|
+
export * from './Drivers/MemoryDriver';
|
|
12
|
+
export * from './Drivers/S3Driver';
|
|
13
|
+
export * from './Drivers/ScopedDriver';
|
|
14
|
+
export * from './Drivers/ReadOnlyDriver';
|
|
3
15
|
export * from './Image';
|
|
4
16
|
export * from './utils';
|
|
5
17
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../Storage/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAA;AACtB,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA;AACvB,cAAc,SAAS,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../Storage/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAA;AACtB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,WAAW,CAAA;AACzB,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,uBAAuB,CAAA;AACrC,cAAc,wBAAwB,CAAA;AACtC,cAAc,oBAAoB,CAAA;AAClC,cAAc,wBAAwB,CAAA;AACtC,cAAc,0BAA0B,CAAA;AACxC,cAAc,SAAS,CAAA;AACvB,cAAc,SAAS,CAAA"}
|
package/build/Storage/index.js
CHANGED
|
@@ -15,7 +15,19 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./File"), exports);
|
|
18
|
+
__exportStar(require("./UploadedFile"), exports);
|
|
18
19
|
__exportStar(require("./Storage"), exports);
|
|
20
|
+
__exportStar(require("./StorageDisk"), exports);
|
|
21
|
+
__exportStar(require("./StorageDriver"), exports);
|
|
22
|
+
__exportStar(require("./Filesystem"), exports);
|
|
23
|
+
__exportStar(require("./PathPrefixer"), exports);
|
|
24
|
+
__exportStar(require("./types"), exports);
|
|
25
|
+
__exportStar(require("./errors"), exports);
|
|
26
|
+
__exportStar(require("./Drivers/LocalDriver"), exports);
|
|
27
|
+
__exportStar(require("./Drivers/MemoryDriver"), exports);
|
|
28
|
+
__exportStar(require("./Drivers/S3Driver"), exports);
|
|
29
|
+
__exportStar(require("./Drivers/ScopedDriver"), exports);
|
|
30
|
+
__exportStar(require("./Drivers/ReadOnlyDriver"), exports);
|
|
19
31
|
__exportStar(require("./Image"), exports);
|
|
20
32
|
__exportStar(require("./utils"), exports);
|
|
21
33
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../Storage/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yCAAsB;AACtB,4CAAyB;AACzB,0CAAuB;AACvB,0CAAuB"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../Storage/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yCAAsB;AACtB,iDAA8B;AAC9B,4CAAyB;AACzB,gDAA6B;AAC7B,kDAA+B;AAC/B,+CAA4B;AAC5B,iDAA8B;AAC9B,0CAAuB;AACvB,2CAAwB;AACxB,wDAAqC;AACrC,yDAAsC;AACtC,qDAAkC;AAClC,yDAAsC;AACtC,2DAAwC;AACxC,0CAAuB;AACvB,0CAAuB"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { Readable } from 'node:stream';
|
|
2
|
+
export type StorageContent = string | Buffer | Readable;
|
|
3
|
+
export type Visibility = 'private' | 'public';
|
|
4
|
+
export interface FileMetadata {
|
|
5
|
+
size?: number;
|
|
6
|
+
lastModified?: Date;
|
|
7
|
+
mimeType?: string;
|
|
8
|
+
etag?: string;
|
|
9
|
+
metadata?: Record<string, string>;
|
|
10
|
+
visibility?: Visibility;
|
|
11
|
+
}
|
|
12
|
+
export interface StorageEntry extends FileMetadata {
|
|
13
|
+
key: string;
|
|
14
|
+
type: 'file' | 'directory';
|
|
15
|
+
}
|
|
16
|
+
export interface WriteOptions {
|
|
17
|
+
visibility?: Visibility;
|
|
18
|
+
mimeType?: string;
|
|
19
|
+
metadata?: Record<string, string>;
|
|
20
|
+
cacheControl?: string;
|
|
21
|
+
contentDisposition?: string;
|
|
22
|
+
}
|
|
23
|
+
export interface ListOptions {
|
|
24
|
+
recursive?: boolean;
|
|
25
|
+
}
|
|
26
|
+
export interface TemporaryUrlOptions {
|
|
27
|
+
responseContentType?: string;
|
|
28
|
+
responseContentDisposition?: string;
|
|
29
|
+
}
|
|
30
|
+
export interface LocalDiskConfig {
|
|
31
|
+
driver: 'local';
|
|
32
|
+
root: string;
|
|
33
|
+
url?: string;
|
|
34
|
+
visibility?: Visibility;
|
|
35
|
+
}
|
|
36
|
+
export interface S3DiskConfig {
|
|
37
|
+
driver: 's3';
|
|
38
|
+
bucket: string;
|
|
39
|
+
region: string;
|
|
40
|
+
endpoint?: string;
|
|
41
|
+
forcePathStyle?: boolean;
|
|
42
|
+
prefix?: string;
|
|
43
|
+
url?: string;
|
|
44
|
+
visibility?: Visibility;
|
|
45
|
+
credentials?: {
|
|
46
|
+
accessKeyId: string;
|
|
47
|
+
secretAccessKey: string;
|
|
48
|
+
sessionToken?: string;
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
export interface MemoryDiskConfig {
|
|
52
|
+
driver: 'memory';
|
|
53
|
+
visibility?: Visibility;
|
|
54
|
+
}
|
|
55
|
+
export interface ScopedDiskConfig {
|
|
56
|
+
driver: 'scoped';
|
|
57
|
+
disk: string;
|
|
58
|
+
prefix: string;
|
|
59
|
+
}
|
|
60
|
+
export interface ReadOnlyDiskConfig {
|
|
61
|
+
driver: 'read-only';
|
|
62
|
+
disk: string;
|
|
63
|
+
}
|
|
64
|
+
export interface CustomDiskConfig {
|
|
65
|
+
driver: string;
|
|
66
|
+
[option: string]: unknown;
|
|
67
|
+
}
|
|
68
|
+
export type StorageDiskConfig = LocalDiskConfig | S3DiskConfig | MemoryDiskConfig | ScopedDiskConfig | ReadOnlyDiskConfig | CustomDiskConfig;
|
|
69
|
+
export interface StorageConfiguration {
|
|
70
|
+
default: string;
|
|
71
|
+
disks: Record<string, StorageDiskConfig>;
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../Storage/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAEtC,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAA;AACvD,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,QAAQ,CAAA;AAE7C,MAAM,WAAW,YAAY;IACzB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,YAAY,CAAC,EAAE,IAAI,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACjC,UAAU,CAAC,EAAE,UAAU,CAAA;CAC1B;AAED,MAAM,WAAW,YAAa,SAAQ,YAAY;IAC9C,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,GAAG,WAAW,CAAA;CAC7B;AAED,MAAM,WAAW,YAAY;IACzB,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACjC,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,kBAAkB,CAAC,EAAE,MAAM,CAAA;CAC9B;AAED,MAAM,WAAW,WAAW;IACxB,SAAS,CAAC,EAAE,OAAO,CAAA;CACtB;AAED,MAAM,WAAW,mBAAmB;IAChC,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,0BAA0B,CAAC,EAAE,MAAM,CAAA;CACtC;AAED,MAAM,WAAW,eAAe;IAC5B,MAAM,EAAE,OAAO,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,UAAU,CAAC,EAAE,UAAU,CAAA;CAC1B;AAED,MAAM,WAAW,YAAY;IACzB,MAAM,EAAE,IAAI,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,WAAW,CAAC,EAAE;QACV,WAAW,EAAE,MAAM,CAAA;QACnB,eAAe,EAAE,MAAM,CAAA;QACvB,YAAY,CAAC,EAAE,MAAM,CAAA;KACxB,CAAA;CACJ;AAED,MAAM,WAAW,gBAAgB;IAC7B,MAAM,EAAE,QAAQ,CAAA;IAChB,UAAU,CAAC,EAAE,UAAU,CAAA;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC7B,MAAM,EAAE,QAAQ,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,kBAAkB;IAC/B,MAAM,EAAE,WAAW,CAAA;IACnB,IAAI,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,gBAAgB;IAC7B,MAAM,EAAE,MAAM,CAAA;IACd,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAA;CAC5B;AAED,MAAM,MAAM,iBAAiB,GACvB,eAAe,GACf,YAAY,GACZ,gBAAgB,GAChB,gBAAgB,GAChB,kBAAkB,GAClB,gBAAgB,CAAA;AAEtB,MAAM,WAAW,oBAAoB;IACjC,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAA;CAC3C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../Storage/types.ts"],"names":[],"mappings":""}
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@typetron/framework",
|
|
3
3
|
"description": "Modern Node.js framework for modern apps written in Typescript",
|
|
4
4
|
"license": "MIT",
|
|
5
|
-
"version": "0.5.
|
|
5
|
+
"version": "0.5.32",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"typetron",
|
|
8
8
|
"framework",
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
"lint": "eslint ."
|
|
33
33
|
},
|
|
34
34
|
"engines": {
|
|
35
|
-
"node": ">=
|
|
35
|
+
"node": ">=20.0.0"
|
|
36
36
|
},
|
|
37
37
|
"dependencies": {
|
|
38
38
|
"@sendgrid/mail": "^8.1.6",
|
|
@@ -46,6 +46,8 @@
|
|
|
46
46
|
"uWebSockets.js": "github:uNetworking/uWebSockets.js#v20.68.0"
|
|
47
47
|
},
|
|
48
48
|
"devDependencies": {
|
|
49
|
+
"@aws-sdk/client-s3": "^3.1121.0",
|
|
50
|
+
"@aws-sdk/s3-request-presigner": "^3.1121.0",
|
|
49
51
|
"@eslint/js": "^10.0.1",
|
|
50
52
|
"@testdeck/mocha": "^0.3.3",
|
|
51
53
|
"@types/bcryptjs": "^3.0.0",
|
|
@@ -68,6 +70,18 @@
|
|
|
68
70
|
"tsconfig-paths": "^4.2.0",
|
|
69
71
|
"typescript": "6.0.3"
|
|
70
72
|
},
|
|
73
|
+
"peerDependencies": {
|
|
74
|
+
"@aws-sdk/client-s3": "^3.1121.0",
|
|
75
|
+
"@aws-sdk/s3-request-presigner": "^3.1121.0"
|
|
76
|
+
},
|
|
77
|
+
"peerDependenciesMeta": {
|
|
78
|
+
"@aws-sdk/client-s3": {
|
|
79
|
+
"optional": true
|
|
80
|
+
},
|
|
81
|
+
"@aws-sdk/s3-request-presigner": {
|
|
82
|
+
"optional": true
|
|
83
|
+
}
|
|
84
|
+
},
|
|
71
85
|
"repository": {
|
|
72
86
|
"type": "git",
|
|
73
87
|
"url": "https://github.com/typetron/framework.git"
|