@typetron/framework 0.5.30 → 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.
Files changed (128) hide show
  1. package/AGENTS.md +31 -0
  2. package/CLAUDE.md +1 -0
  3. package/Cache/Readme.md +63 -0
  4. package/Container/Readme.md +95 -0
  5. package/Database/Readme.md +139 -0
  6. package/Encryption/Readme.md +54 -0
  7. package/Forms/Readme.md +79 -0
  8. package/Framework/Readme.md +143 -0
  9. package/Frontend/Angular/Readme.md +68 -0
  10. package/Frontend/Websockets/Readme.md +96 -0
  11. package/Mail/Readme.md +99 -0
  12. package/Models/Readme.md +85 -0
  13. package/Router/Readme.md +145 -0
  14. package/Storage/Readme.md +188 -0
  15. package/Support/Readme.md +71 -0
  16. package/Testing/Readme.md +80 -0
  17. package/Validation/Readme.md +91 -0
  18. package/build/Cache/Stores/FileStore.d.ts +3 -3
  19. package/build/Cache/Stores/FileStore.d.ts.map +1 -1
  20. package/build/Cache/Stores/FileStore.js.map +1 -1
  21. package/build/Database/List.d.ts +1 -1
  22. package/build/Database/Migrations/Migrator.d.ts +3 -3
  23. package/build/Database/Migrations/Migrator.d.ts.map +1 -1
  24. package/build/Database/Migrations/Migrator.js.map +1 -1
  25. package/build/Database/Seeders/SeederManager.d.ts +3 -3
  26. package/build/Database/Seeders/SeederManager.d.ts.map +1 -1
  27. package/build/Database/Seeders/SeederManager.js +3 -3
  28. package/build/Database/Seeders/SeederManager.js.map +1 -1
  29. package/build/Framework/Application.js +1 -1
  30. package/build/Framework/Application.js.map +1 -1
  31. package/build/Framework/Config/StorageConfig.d.ts +7 -0
  32. package/build/Framework/Config/StorageConfig.d.ts.map +1 -0
  33. package/build/Framework/Config/StorageConfig.js +15 -0
  34. package/build/Framework/Config/StorageConfig.js.map +1 -0
  35. package/build/Framework/Config/index.d.ts +1 -0
  36. package/build/Framework/Config/index.d.ts.map +1 -1
  37. package/build/Framework/Config/index.js +1 -0
  38. package/build/Framework/Config/index.js.map +1 -1
  39. package/build/Framework/Middleware/StaticAssetsMiddleware.d.ts +2 -2
  40. package/build/Framework/Middleware/StaticAssetsMiddleware.d.ts.map +1 -1
  41. package/build/Framework/Middleware/StaticAssetsMiddleware.js +1 -1
  42. package/build/Framework/Middleware/StaticAssetsMiddleware.js.map +1 -1
  43. package/build/Framework/Providers/CacheProvider.js +1 -1
  44. package/build/Framework/Providers/CacheProvider.js.map +1 -1
  45. package/build/Framework/Providers/DatabaseProvider.d.ts +2 -2
  46. package/build/Framework/Providers/DatabaseProvider.d.ts.map +1 -1
  47. package/build/Framework/Providers/DatabaseProvider.js +1 -1
  48. package/build/Framework/Providers/DatabaseProvider.js.map +1 -1
  49. package/build/Framework/Providers/StorageProvider.d.ts +7 -0
  50. package/build/Framework/Providers/StorageProvider.d.ts.map +1 -0
  51. package/build/Framework/Providers/StorageProvider.js +28 -0
  52. package/build/Framework/Providers/StorageProvider.js.map +1 -0
  53. package/build/Framework/Providers/WebsocketsProvider.d.ts.map +1 -1
  54. package/build/Framework/Providers/WebsocketsProvider.js +13 -0
  55. package/build/Framework/Providers/WebsocketsProvider.js.map +1 -1
  56. package/build/Framework/index.d.ts +1 -0
  57. package/build/Framework/index.d.ts.map +1 -1
  58. package/build/Framework/index.js +1 -0
  59. package/build/Framework/index.js.map +1 -1
  60. package/build/Router/Http/Request.d.ts.map +1 -1
  61. package/build/Router/Http/Request.js +3 -4
  62. package/build/Router/Http/Request.js.map +1 -1
  63. package/build/Router/Router.js +1 -1
  64. package/build/Router/Router.js.map +1 -1
  65. package/build/Router/Servers/uNetworking.d.ts.map +1 -1
  66. package/build/Router/Servers/uNetworking.js +3 -4
  67. package/build/Router/Servers/uNetworking.js.map +1 -1
  68. package/build/Storage/Drivers/LocalDriver.d.ts +26 -0
  69. package/build/Storage/Drivers/LocalDriver.d.ts.map +1 -0
  70. package/build/Storage/Drivers/LocalDriver.js +209 -0
  71. package/build/Storage/Drivers/LocalDriver.js.map +1 -0
  72. package/build/Storage/Drivers/MemoryDriver.d.ts +25 -0
  73. package/build/Storage/Drivers/MemoryDriver.d.ts.map +1 -0
  74. package/build/Storage/Drivers/MemoryDriver.js +108 -0
  75. package/build/Storage/Drivers/MemoryDriver.js.map +1 -0
  76. package/build/Storage/Drivers/ReadOnlyDriver.d.ts +22 -0
  77. package/build/Storage/Drivers/ReadOnlyDriver.d.ts.map +1 -0
  78. package/build/Storage/Drivers/ReadOnlyDriver.js +38 -0
  79. package/build/Storage/Drivers/ReadOnlyDriver.js.map +1 -0
  80. package/build/Storage/Drivers/S3Driver.d.ts +32 -0
  81. package/build/Storage/Drivers/S3Driver.d.ts.map +1 -0
  82. package/build/Storage/Drivers/S3Driver.js +248 -0
  83. package/build/Storage/Drivers/S3Driver.js.map +1 -0
  84. package/build/Storage/Drivers/ScopedDriver.d.ts +24 -0
  85. package/build/Storage/Drivers/ScopedDriver.d.ts.map +1 -0
  86. package/build/Storage/Drivers/ScopedDriver.js +50 -0
  87. package/build/Storage/Drivers/ScopedDriver.js.map +1 -0
  88. package/build/Storage/File.d.ts +14 -4
  89. package/build/Storage/File.d.ts.map +1 -1
  90. package/build/Storage/File.js +29 -47
  91. package/build/Storage/File.js.map +1 -1
  92. package/build/Storage/Filesystem.d.ts +31 -0
  93. package/build/Storage/Filesystem.d.ts.map +1 -0
  94. package/build/Storage/Filesystem.js +121 -0
  95. package/build/Storage/Filesystem.js.map +1 -0
  96. package/build/Storage/PathPrefixer.d.ts +9 -0
  97. package/build/Storage/PathPrefixer.d.ts.map +1 -0
  98. package/build/Storage/PathPrefixer.js +53 -0
  99. package/build/Storage/PathPrefixer.js.map +1 -0
  100. package/build/Storage/Storage.d.ts +37 -9
  101. package/build/Storage/Storage.d.ts.map +1 -1
  102. package/build/Storage/Storage.js +85 -101
  103. package/build/Storage/Storage.js.map +1 -1
  104. package/build/Storage/StorageDisk.d.ts +34 -0
  105. package/build/Storage/StorageDisk.d.ts.map +1 -0
  106. package/build/Storage/StorageDisk.js +104 -0
  107. package/build/Storage/StorageDisk.js.map +1 -0
  108. package/build/Storage/StorageDriver.d.ts +19 -0
  109. package/build/Storage/StorageDriver.d.ts.map +1 -0
  110. package/build/Storage/StorageDriver.js +7 -0
  111. package/build/Storage/StorageDriver.js.map +1 -0
  112. package/build/Storage/UploadedFile.d.ts +9 -0
  113. package/build/Storage/UploadedFile.d.ts.map +1 -0
  114. package/build/Storage/UploadedFile.js +22 -0
  115. package/build/Storage/UploadedFile.js.map +1 -0
  116. package/build/Storage/errors.d.ts +21 -0
  117. package/build/Storage/errors.d.ts.map +1 -0
  118. package/build/Storage/errors.js +43 -0
  119. package/build/Storage/errors.js.map +1 -0
  120. package/build/Storage/index.d.ts +12 -0
  121. package/build/Storage/index.d.ts.map +1 -1
  122. package/build/Storage/index.js +12 -0
  123. package/build/Storage/index.js.map +1 -1
  124. package/build/Storage/types.d.ts +73 -0
  125. package/build/Storage/types.d.ts.map +1 -0
  126. package/build/Storage/types.js +3 -0
  127. package/build/Storage/types.js.map +1 -0
  128. package/package.json +35 -3
@@ -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,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StorageDriver = void 0;
4
+ class StorageDriver {
5
+ }
6
+ exports.StorageDriver = StorageDriver;
7
+ //# sourceMappingURL=StorageDriver.js.map
@@ -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"}
@@ -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"}
@@ -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,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -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.30",
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": ">= 12.13.0"
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,11 +70,41 @@
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"
74
88
  },
75
89
  "files": [
76
- "build"
90
+ "build",
91
+ "AGENTS.md",
92
+ "CLAUDE.md",
93
+ "Readme.md",
94
+ "Cache/Readme.md",
95
+ "Container/Readme.md",
96
+ "Database/Readme.md",
97
+ "Encryption/Readme.md",
98
+ "Forms/Readme.md",
99
+ "Framework/Readme.md",
100
+ "Mail/Readme.md",
101
+ "Models/Readme.md",
102
+ "Router/Readme.md",
103
+ "Storage/Readme.md",
104
+ "Support/Readme.md",
105
+ "Testing/Readme.md",
106
+ "Validation/Readme.md",
107
+ "Frontend/Angular/Readme.md",
108
+ "Frontend/Websockets/Readme.md"
77
109
  ]
78
110
  }