@ereactthohir/core 1.3.1 → 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +16 -22
- package/dist/database/Schema.d.ts +20 -0
- package/dist/database/Schema.d.ts.map +1 -0
- package/dist/database/Schema.js +73 -0
- package/dist/database/Schema.js.map +1 -0
- package/dist/foundation/Application.js +1 -1
- package/dist/foundation/Backup.d.ts +11 -0
- package/dist/foundation/Backup.d.ts.map +1 -0
- package/dist/foundation/Backup.js +48 -0
- package/dist/foundation/Backup.js.map +1 -0
- package/dist/foundation/Events.d.ts +9 -3
- package/dist/foundation/Events.d.ts.map +1 -1
- package/dist/foundation/Events.js +31 -7
- package/dist/foundation/Events.js.map +1 -1
- package/dist/foundation/Health.d.ts +20 -0
- package/dist/foundation/Health.d.ts.map +1 -0
- package/dist/foundation/Health.js +31 -0
- package/dist/foundation/Health.js.map +1 -0
- package/dist/foundation/Lang.d.ts +21 -0
- package/dist/foundation/Lang.d.ts.map +1 -0
- package/dist/foundation/Lang.js +37 -0
- package/dist/foundation/Lang.js.map +1 -0
- package/dist/foundation/Logger.d.ts +3 -0
- package/dist/foundation/Logger.d.ts.map +1 -1
- package/dist/foundation/Logger.js +21 -3
- package/dist/foundation/Logger.js.map +1 -1
- package/dist/foundation/Mail.d.ts +14 -0
- package/dist/foundation/Mail.d.ts.map +1 -0
- package/dist/foundation/Mail.js +26 -0
- package/dist/foundation/Mail.js.map +1 -0
- package/dist/foundation/Storage.d.ts +8 -0
- package/dist/foundation/Storage.d.ts.map +1 -0
- package/dist/foundation/Storage.js +35 -0
- package/dist/foundation/Storage.js.map +1 -0
- package/dist/http/ApiResponse.d.ts +9 -0
- package/dist/http/ApiResponse.d.ts.map +1 -1
- package/dist/http/ApiResponse.js +23 -1
- package/dist/http/ApiResponse.js.map +1 -1
- package/dist/http/Controller.d.ts +24 -0
- package/dist/http/Controller.d.ts.map +1 -1
- package/dist/http/Controller.js +50 -0
- package/dist/http/Controller.js.map +1 -1
- package/dist/http/ExceptionHandler.d.ts.map +1 -1
- package/dist/http/ExceptionHandler.js +25 -9
- package/dist/http/ExceptionHandler.js.map +1 -1
- package/dist/http/Middleware/SetLocale.d.ts +12 -0
- package/dist/http/Middleware/SetLocale.d.ts.map +1 -0
- package/dist/http/Middleware/SetLocale.js +20 -0
- package/dist/http/Middleware/SetLocale.js.map +1 -0
- package/dist/http/Request.d.ts +1 -1
- package/dist/http/Request.d.ts.map +1 -1
- package/dist/http/Request.js +9 -20
- package/dist/http/Request.js.map +1 -1
- package/dist/http/Resource.d.ts +23 -0
- package/dist/http/Resource.d.ts.map +1 -0
- package/dist/http/Resource.js +29 -0
- package/dist/http/Resource.js.map +1 -0
- package/dist/http/Router.d.ts +4 -0
- package/dist/http/Router.d.ts.map +1 -1
- package/dist/http/Router.js +35 -0
- package/dist/http/Router.js.map +1 -1
- package/dist/index.d.ts +16 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +16 -3
- package/dist/index.js.map +1 -1
- package/dist/security/Encryption.d.ts +14 -0
- package/dist/security/Encryption.d.ts.map +1 -0
- package/dist/security/Encryption.js +36 -0
- package/dist/security/Encryption.js.map +1 -0
- package/dist/security/Hash.d.ts +16 -0
- package/dist/security/Hash.d.ts.map +1 -0
- package/dist/security/Hash.js +30 -0
- package/dist/security/Hash.js.map +1 -0
- package/dist/services/Ai.d.ts +26 -0
- package/dist/services/Ai.d.ts.map +1 -0
- package/dist/services/Ai.js +30 -0
- package/dist/services/Ai.js.map +1 -0
- package/dist/services/Broadcast.d.ts +12 -0
- package/dist/services/Broadcast.d.ts.map +1 -0
- package/dist/services/Broadcast.js +26 -0
- package/dist/services/Broadcast.js.map +1 -0
- package/dist/services/Payment.d.ts +41 -0
- package/dist/services/Payment.d.ts.map +1 -0
- package/dist/services/Payment.js +49 -0
- package/dist/services/Payment.js.map +1 -0
- package/dist/services/Search.d.ts +14 -0
- package/dist/services/Search.d.ts.map +1 -0
- package/dist/services/Search.js +25 -0
- package/dist/services/Search.js.map +1 -0
- package/dist/services/Validator.d.ts.map +1 -1
- package/dist/services/Validator.js +19 -0
- package/dist/services/Validator.js.map +1 -1
- package/dist/services/ai/GeminiDriver.d.ts +12 -0
- package/dist/services/ai/GeminiDriver.d.ts.map +1 -0
- package/dist/services/ai/GeminiDriver.js +23 -0
- package/dist/services/ai/GeminiDriver.js.map +1 -0
- package/dist/services/ai/OllamaDriver.d.ts +12 -0
- package/dist/services/ai/OllamaDriver.d.ts.map +1 -0
- package/dist/services/ai/OllamaDriver.js +22 -0
- package/dist/services/ai/OllamaDriver.js.map +1 -0
- package/dist/services/ai/OpenAiDriver.d.ts +12 -0
- package/dist/services/ai/OpenAiDriver.d.ts.map +1 -0
- package/dist/services/ai/OpenAiDriver.js +22 -0
- package/dist/services/ai/OpenAiDriver.js.map +1 -0
- package/dist/services/ai/index.d.ts +4 -0
- package/dist/services/ai/index.d.ts.map +1 -0
- package/dist/services/ai/index.js +20 -0
- package/dist/services/ai/index.js.map +1 -0
- package/dist/services/payments/DuitkuDriver.d.ts +14 -0
- package/dist/services/payments/DuitkuDriver.d.ts.map +1 -0
- package/dist/services/payments/DuitkuDriver.js +28 -0
- package/dist/services/payments/DuitkuDriver.js.map +1 -0
- package/dist/services/payments/DurianpayDriver.d.ts +12 -0
- package/dist/services/payments/DurianpayDriver.d.ts.map +1 -0
- package/dist/services/payments/DurianpayDriver.js +25 -0
- package/dist/services/payments/DurianpayDriver.js.map +1 -0
- package/dist/services/payments/MidtransDriver.d.ts +14 -0
- package/dist/services/payments/MidtransDriver.d.ts.map +1 -0
- package/dist/services/payments/MidtransDriver.js +31 -0
- package/dist/services/payments/MidtransDriver.js.map +1 -0
- package/dist/services/payments/StripeDriver.d.ts +12 -0
- package/dist/services/payments/StripeDriver.d.ts.map +1 -0
- package/dist/services/payments/StripeDriver.js +28 -0
- package/dist/services/payments/StripeDriver.js.map +1 -0
- package/dist/services/payments/index.d.ts +5 -0
- package/dist/services/payments/index.d.ts.map +1 -0
- package/dist/services/payments/index.js +21 -0
- package/dist/services/payments/index.js.map +1 -0
- package/package.json +6 -1
package/README.md
CHANGED
|
@@ -1,15 +1,14 @@
|
|
|
1
|
-
# @ereactthohir/core
|
|
1
|
+
# @ereactthohir/core 🏛️
|
|
2
2
|
|
|
3
|
-
The core
|
|
3
|
+
The core foundation of the **EreactThohir** framework.
|
|
4
4
|
|
|
5
|
-
## 🚀
|
|
5
|
+
## 🚀 Features
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
-
|
|
9
|
-
-
|
|
10
|
-
-
|
|
11
|
-
-
|
|
12
|
-
- Validation & Security
|
|
7
|
+
- **High Performance Kernel**: Efficient request/response handling.
|
|
8
|
+
- **Advanced Routing**: Express-like routing with middleware support.
|
|
9
|
+
- **Dependency Injection**: Modular service providers.
|
|
10
|
+
- **Built-in Security**: Helmet, CORS, and CSRF support.
|
|
11
|
+
- **Typed Core**: Fully written in TypeScript for the best DX.
|
|
13
12
|
|
|
14
13
|
## 📦 Installation
|
|
15
14
|
|
|
@@ -17,23 +16,18 @@ The core framework for **EreactThohir**, providing the foundation for enterprise
|
|
|
17
16
|
npm install @ereactthohir/core
|
|
18
17
|
```
|
|
19
18
|
|
|
20
|
-
##
|
|
19
|
+
## 🛠️ Usage
|
|
21
20
|
|
|
22
|
-
```
|
|
23
|
-
import {
|
|
21
|
+
```ts
|
|
22
|
+
import { Kernel, Route } from '@ereactthohir/core';
|
|
24
23
|
|
|
25
|
-
|
|
26
|
-
static table = 'users';
|
|
27
|
-
}
|
|
24
|
+
Route.get('/', (req, res) => res.json({ hello: 'world' }));
|
|
28
25
|
|
|
29
|
-
|
|
30
|
-
|
|
26
|
+
const kernel = new Kernel();
|
|
27
|
+
kernel.handle();
|
|
28
|
+
kernel.listen(3000);
|
|
31
29
|
```
|
|
32
30
|
|
|
33
|
-
## 👤 Author
|
|
34
|
-
|
|
35
|
-
**KangPCode (Dhafa Nazula Permadi)**
|
|
36
|
-
|
|
37
31
|
## 📄 License
|
|
38
32
|
|
|
39
|
-
MIT
|
|
33
|
+
Licensed under the [MIT License](../../LICENSE).
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export declare class Blueprint {
|
|
2
|
+
private commands;
|
|
3
|
+
private table;
|
|
4
|
+
constructor(table: string);
|
|
5
|
+
increments(column: string): this;
|
|
6
|
+
string(column: string, length?: number): this;
|
|
7
|
+
text(column: string): this;
|
|
8
|
+
integer(column: string): this;
|
|
9
|
+
boolean(column: string): this;
|
|
10
|
+
timestamps(): this;
|
|
11
|
+
nullable(): this;
|
|
12
|
+
unique(): this;
|
|
13
|
+
default(value: any): this;
|
|
14
|
+
toString(): string;
|
|
15
|
+
}
|
|
16
|
+
export declare class Schema {
|
|
17
|
+
static create(table: string, callback: (table: Blueprint) => void): Promise<void>;
|
|
18
|
+
static dropIfExists(table: string): Promise<void>;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=Schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Schema.d.ts","sourceRoot":"","sources":["../../src/database/Schema.ts"],"names":[],"mappings":"AAAA,qBAAa,SAAS;IAClB,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,KAAK,CAAS;gBAEV,KAAK,EAAE,MAAM;IAIlB,UAAU,CAAC,MAAM,EAAE,MAAM;IAKzB,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,GAAE,MAAY;IAK3C,IAAI,CAAC,MAAM,EAAE,MAAM;IAKnB,OAAO,CAAC,MAAM,EAAE,MAAM;IAKtB,OAAO,CAAC,MAAM,EAAE,MAAM;IAKtB,UAAU;IAMV,QAAQ;IAOR,MAAM;IAON,OAAO,CAAC,KAAK,EAAE,GAAG;IAQlB,QAAQ,IAAI,MAAM;CAG5B;AAED,qBAAa,MAAM;WACF,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI;WAS1D,YAAY,CAAC,KAAK,EAAE,MAAM;CAI1C"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Schema = exports.Blueprint = void 0;
|
|
4
|
+
class Blueprint {
|
|
5
|
+
constructor(table) {
|
|
6
|
+
this.commands = [];
|
|
7
|
+
this.table = table;
|
|
8
|
+
}
|
|
9
|
+
increments(column) {
|
|
10
|
+
this.commands.push(`\`${column}\` INT AUTO_INCREMENT PRIMARY KEY`);
|
|
11
|
+
return this;
|
|
12
|
+
}
|
|
13
|
+
string(column, length = 255) {
|
|
14
|
+
this.commands.push(`\`${column}\` VARCHAR(${length})`);
|
|
15
|
+
return this;
|
|
16
|
+
}
|
|
17
|
+
text(column) {
|
|
18
|
+
this.commands.push(`\`${column}\` TEXT`);
|
|
19
|
+
return this;
|
|
20
|
+
}
|
|
21
|
+
integer(column) {
|
|
22
|
+
this.commands.push(`\`${column}\` INT`);
|
|
23
|
+
return this;
|
|
24
|
+
}
|
|
25
|
+
boolean(column) {
|
|
26
|
+
this.commands.push(`\`${column}\` TINYINT(1)`);
|
|
27
|
+
return this;
|
|
28
|
+
}
|
|
29
|
+
timestamps() {
|
|
30
|
+
this.commands.push(`\`created_at\` TIMESTAMP DEFAULT CURRENT_TIMESTAMP`);
|
|
31
|
+
this.commands.push(`\`updated_at\` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP`);
|
|
32
|
+
return this;
|
|
33
|
+
}
|
|
34
|
+
nullable() {
|
|
35
|
+
if (this.commands.length > 0) {
|
|
36
|
+
this.commands[this.commands.length - 1] += ' NULL';
|
|
37
|
+
}
|
|
38
|
+
return this;
|
|
39
|
+
}
|
|
40
|
+
unique() {
|
|
41
|
+
if (this.commands.length > 0) {
|
|
42
|
+
this.commands[this.commands.length - 1] += ' UNIQUE';
|
|
43
|
+
}
|
|
44
|
+
return this;
|
|
45
|
+
}
|
|
46
|
+
default(value) {
|
|
47
|
+
if (this.commands.length > 0) {
|
|
48
|
+
const formattedValue = typeof value === 'string' ? `'${value}'` : value;
|
|
49
|
+
this.commands[this.commands.length - 1] += ` DEFAULT ${formattedValue}`;
|
|
50
|
+
}
|
|
51
|
+
return this;
|
|
52
|
+
}
|
|
53
|
+
toString() {
|
|
54
|
+
return `CREATE TABLE IF NOT EXISTS \`${this.table}\` (\n ${this.commands.join(',\n ')}\n);`;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
exports.Blueprint = Blueprint;
|
|
58
|
+
class Schema {
|
|
59
|
+
static async create(table, callback) {
|
|
60
|
+
const blueprint = new Blueprint(table);
|
|
61
|
+
callback(blueprint);
|
|
62
|
+
const sql = blueprint.toString();
|
|
63
|
+
console.log(`[Schema] Creating table: ${table}`);
|
|
64
|
+
console.log(sql);
|
|
65
|
+
// Link to database driver here
|
|
66
|
+
}
|
|
67
|
+
static async dropIfExists(table) {
|
|
68
|
+
console.log(`[Schema] Dropping table: ${table}`);
|
|
69
|
+
console.log(`DROP TABLE IF EXISTS \`${table}\``);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
exports.Schema = Schema;
|
|
73
|
+
//# sourceMappingURL=Schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Schema.js","sourceRoot":"","sources":["../../src/database/Schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,7 +14,7 @@ class Application extends Container_1.Container {
|
|
|
14
14
|
super();
|
|
15
15
|
this.providers = [];
|
|
16
16
|
this.isBooted = false;
|
|
17
|
-
this.version = '1.
|
|
17
|
+
this.version = '1.4.0';
|
|
18
18
|
this.basePath = basePath;
|
|
19
19
|
this.config = new Config_1.Config();
|
|
20
20
|
this.hooks = new Hooks_1.Hooks();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Backup.d.ts","sourceRoot":"","sources":["../../src/foundation/Backup.ts"],"names":[],"mappings":"AAKA,qBAAa,MAAM;IACf;;OAEG;WACiB,GAAG;IAyBvB;;OAEG;WACiB,IAAI;CAO3B"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.Backup = void 0;
|
|
7
|
+
const Storage_1 = require("./Storage");
|
|
8
|
+
const Logger_1 = require("./Logger");
|
|
9
|
+
const path_1 = __importDefault(require("path"));
|
|
10
|
+
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
11
|
+
class Backup {
|
|
12
|
+
/**
|
|
13
|
+
* Run the backup process
|
|
14
|
+
*/
|
|
15
|
+
static async run() {
|
|
16
|
+
const timestamp = new Date().toISOString().replace(/[:.]/g, '-');
|
|
17
|
+
const backupName = `backup-${timestamp}.json`;
|
|
18
|
+
Logger_1.Logger.info('Starting system backup...');
|
|
19
|
+
try {
|
|
20
|
+
// Simplified: In real app, this would dump database and zip storage
|
|
21
|
+
const data = {
|
|
22
|
+
version: '1.4.0',
|
|
23
|
+
timestamp: new Date().toISOString(),
|
|
24
|
+
tables: ['users', 'products', 'orders'],
|
|
25
|
+
disk_usage: '45MB'
|
|
26
|
+
};
|
|
27
|
+
await Storage_1.Storage.put(`backups/${backupName}`, JSON.stringify(data, null, 2));
|
|
28
|
+
Logger_1.Logger.success(`Backup completed: backups/${backupName}`);
|
|
29
|
+
return backupName;
|
|
30
|
+
}
|
|
31
|
+
catch (error) {
|
|
32
|
+
Logger_1.Logger.error('Backup failed:', error);
|
|
33
|
+
throw error;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* List all available backups
|
|
38
|
+
*/
|
|
39
|
+
static async list() {
|
|
40
|
+
const backupDir = path_1.default.join(process.cwd(), 'storage/app/backups');
|
|
41
|
+
if (await fs_extra_1.default.pathExists(backupDir)) {
|
|
42
|
+
return await fs_extra_1.default.readdir(backupDir);
|
|
43
|
+
}
|
|
44
|
+
return [];
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
exports.Backup = Backup;
|
|
48
|
+
//# sourceMappingURL=Backup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Backup.js","sourceRoot":"","sources":["../../src/foundation/Backup.ts"],"names":[],"mappings":";;;;;;AAAA,uCAAoC;AACpC,qCAAkC;AAClC,gDAAwB;AACxB,wDAA0B;AAE1B,MAAa,MAAM;IACf;;OAEG;IACI,MAAM,CAAC,KAAK,CAAC,GAAG;QACnB,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACjE,MAAM,UAAU,GAAG,UAAU,SAAS,OAAO,CAAC;QAE9C,eAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QAEzC,IAAI,CAAC;YACD,oEAAoE;YACpE,MAAM,IAAI,GAAG;gBACT,OAAO,EAAE,OAAO;gBAChB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACnC,MAAM,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAC;gBACvC,UAAU,EAAE,MAAM;aACrB,CAAC;YAEF,MAAM,iBAAO,CAAC,GAAG,CAAC,WAAW,UAAU,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAE1E,eAAM,CAAC,OAAO,CAAC,6BAA6B,UAAU,EAAE,CAAC,CAAC;YAC1D,OAAO,UAAU,CAAC;QACtB,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YAClB,eAAM,CAAC,KAAK,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;YACtC,MAAM,KAAK,CAAC;QAChB,CAAC;IACL,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,KAAK,CAAC,IAAI;QACpB,MAAM,SAAS,GAAG,cAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,qBAAqB,CAAC,CAAC;QAClE,IAAI,MAAM,kBAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YACjC,OAAO,MAAM,kBAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACvC,CAAC;QACD,OAAO,EAAE,CAAC;IACd,CAAC;CACJ;AAvCD,wBAuCC"}
|
|
@@ -1,8 +1,14 @@
|
|
|
1
|
-
type Listener = (data: any) => void
|
|
1
|
+
type Listener = (data: any) => void | Promise<void>;
|
|
2
2
|
export declare class EventDispatcher {
|
|
3
3
|
private listeners;
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
/**
|
|
5
|
+
* Register an event listener.
|
|
6
|
+
*/
|
|
7
|
+
listen(event: string | any, listener: Listener): void;
|
|
8
|
+
/**
|
|
9
|
+
* Dispatch an event.
|
|
10
|
+
*/
|
|
11
|
+
dispatch(event: string | any, data?: any): Promise<void>;
|
|
6
12
|
}
|
|
7
13
|
export declare const Events: EventDispatcher;
|
|
8
14
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Events.d.ts","sourceRoot":"","sources":["../../src/foundation/Events.ts"],"names":[],"mappings":"AAAA,KAAK,QAAQ,GAAG,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"Events.d.ts","sourceRoot":"","sources":["../../src/foundation/Events.ts"],"names":[],"mappings":"AAAA,KAAK,QAAQ,GAAG,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAEpD,qBAAa,eAAe;IACxB,OAAO,CAAC,SAAS,CAAsC;IAEvD;;OAEG;IACI,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,EAAE,QAAQ,EAAE,QAAQ;IAQrD;;OAEG;IACU,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG;CAuBxD;AAED,eAAO,MAAM,MAAM,iBAAwB,CAAC"}
|
|
@@ -5,16 +5,40 @@ class EventDispatcher {
|
|
|
5
5
|
constructor() {
|
|
6
6
|
this.listeners = new Map();
|
|
7
7
|
}
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
/**
|
|
9
|
+
* Register an event listener.
|
|
10
|
+
*/
|
|
11
|
+
listen(event, listener) {
|
|
12
|
+
const eventName = typeof event === 'string' ? event : event.name;
|
|
13
|
+
if (!this.listeners.has(eventName)) {
|
|
14
|
+
this.listeners.set(eventName, []);
|
|
11
15
|
}
|
|
12
|
-
this.listeners.get(
|
|
16
|
+
this.listeners.get(eventName).push(listener);
|
|
13
17
|
}
|
|
14
|
-
|
|
15
|
-
|
|
18
|
+
/**
|
|
19
|
+
* Dispatch an event.
|
|
20
|
+
*/
|
|
21
|
+
async dispatch(event, data) {
|
|
22
|
+
let eventName;
|
|
23
|
+
let eventData;
|
|
24
|
+
if (typeof event === 'string') {
|
|
25
|
+
eventName = event;
|
|
26
|
+
eventData = data;
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
eventName = event.constructor.name;
|
|
30
|
+
eventData = event;
|
|
31
|
+
}
|
|
32
|
+
const eventListeners = this.listeners.get(eventName);
|
|
16
33
|
if (eventListeners) {
|
|
17
|
-
eventListeners.
|
|
34
|
+
await Promise.all(eventListeners.map(listener => {
|
|
35
|
+
try {
|
|
36
|
+
return Promise.resolve(listener(eventData));
|
|
37
|
+
}
|
|
38
|
+
catch (error) {
|
|
39
|
+
console.error(`Error in event listener for ${eventName}:`, error);
|
|
40
|
+
}
|
|
41
|
+
}));
|
|
18
42
|
}
|
|
19
43
|
}
|
|
20
44
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Events.js","sourceRoot":"","sources":["../../src/foundation/Events.ts"],"names":[],"mappings":";;;AAEA,MAAa,eAAe;IAA5B;QACY,cAAS,GAA4B,IAAI,GAAG,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"Events.js","sourceRoot":"","sources":["../../src/foundation/Events.ts"],"names":[],"mappings":";;;AAEA,MAAa,eAAe;IAA5B;QACY,cAAS,GAA4B,IAAI,GAAG,EAAE,CAAC;IAuC3D,CAAC;IArCG;;OAEG;IACI,MAAM,CAAC,KAAmB,EAAE,QAAkB;QACjD,MAAM,SAAS,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;QACjE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YACjC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QACtC,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAClD,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,QAAQ,CAAC,KAAmB,EAAE,IAAU;QACjD,IAAI,SAAiB,CAAC;QACtB,IAAI,SAAc,CAAC;QAEnB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC5B,SAAS,GAAG,KAAK,CAAC;YAClB,SAAS,GAAG,IAAI,CAAC;QACrB,CAAC;aAAM,CAAC;YACJ,SAAS,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC;YACnC,SAAS,GAAG,KAAK,CAAC;QACtB,CAAC;QAED,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACrD,IAAI,cAAc,EAAE,CAAC;YACjB,MAAM,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;gBAC5C,IAAI,CAAC;oBACD,OAAO,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;gBAChD,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACb,OAAO,CAAC,KAAK,CAAC,+BAA+B,SAAS,GAAG,EAAE,KAAK,CAAC,CAAC;gBACtE,CAAC;YACL,CAAC,CAAC,CAAC,CAAC;QACR,CAAC;IACL,CAAC;CACJ;AAxCD,0CAwCC;AAEY,QAAA,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export interface HealthResult {
|
|
2
|
+
status: 'ok' | 'warning' | 'error';
|
|
3
|
+
details: Record<string, {
|
|
4
|
+
status: 'ok' | 'error';
|
|
5
|
+
message?: string;
|
|
6
|
+
meta?: any;
|
|
7
|
+
}>;
|
|
8
|
+
}
|
|
9
|
+
export type HealthChecker = () => Promise<{
|
|
10
|
+
status: 'ok' | 'error';
|
|
11
|
+
message?: string;
|
|
12
|
+
meta?: any;
|
|
13
|
+
}>;
|
|
14
|
+
export declare class Health {
|
|
15
|
+
private checkers;
|
|
16
|
+
check(name: string, checker: HealthChecker): void;
|
|
17
|
+
run(): Promise<HealthResult>;
|
|
18
|
+
}
|
|
19
|
+
export declare const HealthCheck: Health;
|
|
20
|
+
//# sourceMappingURL=Health.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Health.d.ts","sourceRoot":"","sources":["../../src/foundation/Health.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IACzB,MAAM,EAAE,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC;IACnC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,IAAI,GAAG,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,GAAG,CAAA;KAAE,CAAC,CAAC;CACrF;AAED,MAAM,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC;IAAE,MAAM,EAAE,IAAI,GAAG,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,GAAG,CAAA;CAAE,CAAC,CAAC;AAEpG,qBAAa,MAAM;IACf,OAAO,CAAC,QAAQ,CAAyC;IAElD,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa;IAIpC,GAAG,IAAI,OAAO,CAAC,YAAY,CAAC;CAiB5C;AAED,eAAO,MAAM,WAAW,QAAe,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.HealthCheck = exports.Health = void 0;
|
|
4
|
+
class Health {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.checkers = new Map();
|
|
7
|
+
}
|
|
8
|
+
check(name, checker) {
|
|
9
|
+
this.checkers.set(name, checker);
|
|
10
|
+
}
|
|
11
|
+
async run() {
|
|
12
|
+
const details = {};
|
|
13
|
+
let overallStatus = 'ok';
|
|
14
|
+
for (const [name, checker] of this.checkers) {
|
|
15
|
+
try {
|
|
16
|
+
const result = await checker();
|
|
17
|
+
details[name] = result;
|
|
18
|
+
if (result.status === 'error')
|
|
19
|
+
overallStatus = 'error';
|
|
20
|
+
}
|
|
21
|
+
catch (err) {
|
|
22
|
+
details[name] = { status: 'error', message: err.message };
|
|
23
|
+
overallStatus = 'error';
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
return { status: overallStatus, details };
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
exports.Health = Health;
|
|
30
|
+
exports.HealthCheck = new Health();
|
|
31
|
+
//# sourceMappingURL=Health.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Health.js","sourceRoot":"","sources":["../../src/foundation/Health.ts"],"names":[],"mappings":";;;AAOA,MAAa,MAAM;IAAnB;QACY,aAAQ,GAA+B,IAAI,GAAG,EAAE,CAAC;IAuB7D,CAAC;IArBU,KAAK,CAAC,IAAY,EAAE,OAAsB;QAC7C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACrC,CAAC;IAEM,KAAK,CAAC,GAAG;QACZ,MAAM,OAAO,GAA4B,EAAE,CAAC;QAC5C,IAAI,aAAa,GAA2B,IAAI,CAAC;QAEjD,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC1C,IAAI,CAAC;gBACD,MAAM,MAAM,GAAG,MAAM,OAAO,EAAE,CAAC;gBAC/B,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;gBACvB,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO;oBAAE,aAAa,GAAG,OAAO,CAAC;YAC3D,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAChB,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC;gBAC1D,aAAa,GAAG,OAAO,CAAC;YAC5B,CAAC;QACL,CAAC;QAED,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC;IAC9C,CAAC;CACJ;AAxBD,wBAwBC;AAEY,QAAA,WAAW,GAAG,IAAI,MAAM,EAAE,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export declare class Lang {
|
|
2
|
+
private static locales;
|
|
3
|
+
private static currentLocale;
|
|
4
|
+
/**
|
|
5
|
+
* Set the current locale.
|
|
6
|
+
*/
|
|
7
|
+
static setLocale(locale: string): void;
|
|
8
|
+
/**
|
|
9
|
+
* Add translations for a locale.
|
|
10
|
+
*/
|
|
11
|
+
static add(locale: string, translations: Record<string, string>): void;
|
|
12
|
+
/**
|
|
13
|
+
* Get the translation for a key.
|
|
14
|
+
*/
|
|
15
|
+
static get(key: string, replacements?: Record<string, string>): string;
|
|
16
|
+
/**
|
|
17
|
+
* Shortcut for get.
|
|
18
|
+
*/
|
|
19
|
+
static __(key: string, replacements?: Record<string, string>): string;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=Lang.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Lang.d.ts","sourceRoot":"","sources":["../../src/foundation/Lang.ts"],"names":[],"mappings":"AAAA,qBAAa,IAAI;IACb,OAAO,CAAC,MAAM,CAAC,OAAO,CAA8C;IACpE,OAAO,CAAC,MAAM,CAAC,aAAa,CAAgB;IAE5C;;OAEG;IACH,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM;IAI/B;;OAEG;IACH,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAI/D;;OAEG;IACH,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GAAG,MAAM;IAU1E;;OAEG;IACH,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GAAG,MAAM;CAG5E"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Lang = void 0;
|
|
4
|
+
class Lang {
|
|
5
|
+
/**
|
|
6
|
+
* Set the current locale.
|
|
7
|
+
*/
|
|
8
|
+
static setLocale(locale) {
|
|
9
|
+
this.currentLocale = locale;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Add translations for a locale.
|
|
13
|
+
*/
|
|
14
|
+
static add(locale, translations) {
|
|
15
|
+
this.locales[locale] = { ...this.locales[locale], ...translations };
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Get the translation for a key.
|
|
19
|
+
*/
|
|
20
|
+
static get(key, replacements = {}) {
|
|
21
|
+
let line = this.locales[this.currentLocale]?.[key] || key;
|
|
22
|
+
Object.entries(replacements).forEach(([k, v]) => {
|
|
23
|
+
line = line.replace(`:${k}`, v);
|
|
24
|
+
});
|
|
25
|
+
return line;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Shortcut for get.
|
|
29
|
+
*/
|
|
30
|
+
static __(key, replacements = {}) {
|
|
31
|
+
return this.get(key, replacements);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
exports.Lang = Lang;
|
|
35
|
+
Lang.locales = {};
|
|
36
|
+
Lang.currentLocale = 'en';
|
|
37
|
+
//# sourceMappingURL=Lang.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Lang.js","sourceRoot":"","sources":["../../src/foundation/Lang.ts"],"names":[],"mappings":";;;AAAA,MAAa,IAAI;IAIb;;OAEG;IACH,MAAM,CAAC,SAAS,CAAC,MAAc;QAC3B,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,GAAG,CAAC,MAAc,EAAE,YAAoC;QAC3D,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,GAAG,YAAY,EAAE,CAAC;IACxE,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,GAAG,CAAC,GAAW,EAAE,eAAuC,EAAE;QAC7D,IAAI,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC;QAE1D,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;YAC5C,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,EAAE,CAAC,GAAW,EAAE,eAAuC,EAAE;QAC5D,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IACvC,CAAC;;AApCL,oBAqCC;AApCkB,YAAO,GAA2C,EAAE,CAAC;AACrD,kBAAa,GAAW,IAAI,CAAC"}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
export declare class Logger {
|
|
2
|
+
private static getTime;
|
|
2
3
|
static info(message: string): void;
|
|
4
|
+
static success(message: string): void;
|
|
3
5
|
static error(message: string, error?: any): void;
|
|
4
6
|
static warn(message: string): void;
|
|
7
|
+
static debug(message: string): void;
|
|
5
8
|
}
|
|
6
9
|
//# sourceMappingURL=Logger.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Logger.d.ts","sourceRoot":"","sources":["../../src/foundation/Logger.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Logger.d.ts","sourceRoot":"","sources":["../../src/foundation/Logger.ts"],"names":[],"mappings":"AAEA,qBAAa,MAAM;IACf,OAAO,CAAC,MAAM,CAAC,OAAO;IAItB,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM;IAI3B,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM;IAI9B,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,GAAG;IAOzC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM;IAI3B,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM;CAK/B"}
|
|
@@ -1,15 +1,33 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.Logger = void 0;
|
|
7
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
4
8
|
class Logger {
|
|
9
|
+
static getTime() {
|
|
10
|
+
return new Date().toISOString();
|
|
11
|
+
}
|
|
5
12
|
static info(message) {
|
|
6
|
-
console.log(
|
|
13
|
+
console.log(`${chalk_1.default.blue('[INFO]')} [${this.getTime()}] ${message}`);
|
|
14
|
+
}
|
|
15
|
+
static success(message) {
|
|
16
|
+
console.log(`${chalk_1.default.green('[SUCCESS]')} [${this.getTime()}] ${message}`);
|
|
7
17
|
}
|
|
8
18
|
static error(message, error) {
|
|
9
|
-
console.error(
|
|
19
|
+
console.error(`${chalk_1.default.red('[ERROR]')} [${this.getTime()}] ${message}`);
|
|
20
|
+
if (error) {
|
|
21
|
+
console.error(error);
|
|
22
|
+
}
|
|
10
23
|
}
|
|
11
24
|
static warn(message) {
|
|
12
|
-
console.warn(
|
|
25
|
+
console.warn(`${chalk_1.default.yellow('[WARN]')} [${this.getTime()}] ${message}`);
|
|
26
|
+
}
|
|
27
|
+
static debug(message) {
|
|
28
|
+
if (process.env.APP_DEBUG === 'true') {
|
|
29
|
+
console.log(`${chalk_1.default.magenta('[DEBUG]')} [${this.getTime()}] ${message}`);
|
|
30
|
+
}
|
|
13
31
|
}
|
|
14
32
|
}
|
|
15
33
|
exports.Logger = Logger;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Logger.js","sourceRoot":"","sources":["../../src/foundation/Logger.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Logger.js","sourceRoot":"","sources":["../../src/foundation/Logger.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAE1B,MAAa,MAAM;IACP,MAAM,CAAC,OAAO;QAClB,OAAO,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACpC,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,OAAe;QACvB,OAAO,CAAC,GAAG,CAAC,GAAG,eAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,OAAO,EAAE,KAAK,OAAO,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,OAAe;QAC1B,OAAO,CAAC,GAAG,CAAC,GAAG,eAAK,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC,OAAO,EAAE,KAAK,OAAO,EAAE,CAAC,CAAC;IAC9E,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,OAAe,EAAE,KAAW;QACrC,OAAO,CAAC,KAAK,CAAC,GAAG,eAAK,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC,OAAO,EAAE,KAAK,OAAO,EAAE,CAAC,CAAC;QACxE,IAAI,KAAK,EAAE,CAAC;YACR,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;IACL,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,OAAe;QACvB,OAAO,CAAC,IAAI,CAAC,GAAG,eAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,OAAO,EAAE,KAAK,OAAO,EAAE,CAAC,CAAC;IAC7E,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,OAAe;QACxB,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,KAAK,MAAM,EAAE,CAAC;YACnC,OAAO,CAAC,GAAG,CAAC,GAAG,eAAK,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC,OAAO,EAAE,KAAK,OAAO,EAAE,CAAC,CAAC;QAC9E,CAAC;IACL,CAAC;CACJ;AA7BD,wBA6BC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export interface MailConfig {
|
|
2
|
+
driver: 'smtp' | 'log' | 'ses';
|
|
3
|
+
host?: string;
|
|
4
|
+
port?: number;
|
|
5
|
+
user?: string;
|
|
6
|
+
pass?: string;
|
|
7
|
+
from: string;
|
|
8
|
+
}
|
|
9
|
+
export declare class Mail {
|
|
10
|
+
private static config;
|
|
11
|
+
static setConfig(config: MailConfig): void;
|
|
12
|
+
static send(to: string, subject: string, body: string): Promise<boolean>;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=Mail.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Mail.d.ts","sourceRoot":"","sources":["../../src/foundation/Mail.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,UAAU;IACvB,MAAM,EAAE,MAAM,GAAG,KAAK,GAAG,KAAK,CAAC;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,IAAI;IACb,OAAO,CAAC,MAAM,CAAC,MAAM,CAGnB;IAEF,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,UAAU;WAItB,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;CAY9D"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Mail = void 0;
|
|
4
|
+
const Logger_1 = require("./Logger");
|
|
5
|
+
class Mail {
|
|
6
|
+
static setConfig(config) {
|
|
7
|
+
this.config = config;
|
|
8
|
+
}
|
|
9
|
+
static async send(to, subject, body) {
|
|
10
|
+
if (this.config.driver === 'log') {
|
|
11
|
+
Logger_1.Logger.info(`Mailing to: ${to}`);
|
|
12
|
+
Logger_1.Logger.info(`Subject: ${subject}`);
|
|
13
|
+
Logger_1.Logger.info(`Body: ${body}`);
|
|
14
|
+
return true;
|
|
15
|
+
}
|
|
16
|
+
// TODO: Implement SMTP/SES drivers
|
|
17
|
+
Logger_1.Logger.warn('Mail driver not fully implemented. Falling back to log.');
|
|
18
|
+
return true;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
exports.Mail = Mail;
|
|
22
|
+
Mail.config = {
|
|
23
|
+
driver: 'log',
|
|
24
|
+
from: 'noreply@ereactthohir.com'
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=Mail.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Mail.js","sourceRoot":"","sources":["../../src/foundation/Mail.ts"],"names":[],"mappings":";;;AAAA,qCAAkC;AAWlC,MAAa,IAAI;IAMb,MAAM,CAAC,SAAS,CAAC,MAAkB;QAC/B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAU,EAAE,OAAe,EAAE,IAAY;QACvD,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;YAC/B,eAAM,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;YACjC,eAAM,CAAC,IAAI,CAAC,YAAY,OAAO,EAAE,CAAC,CAAC;YACnC,eAAM,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;YAC7B,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,mCAAmC;QACnC,eAAM,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;QACvE,OAAO,IAAI,CAAC;IAChB,CAAC;;AArBL,oBAsBC;AArBkB,WAAM,GAAe;IAChC,MAAM,EAAE,KAAK;IACb,IAAI,EAAE,0BAA0B;CACnC,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare class Storage {
|
|
2
|
+
private static root;
|
|
3
|
+
static put(filePath: string, content: string | Buffer): Promise<void>;
|
|
4
|
+
static get(filePath: string): Promise<NonSharedBuffer | null>;
|
|
5
|
+
static delete(filePath: string): Promise<void>;
|
|
6
|
+
static exists(filePath: string): Promise<boolean>;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=Storage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Storage.d.ts","sourceRoot":"","sources":["../../src/foundation/Storage.ts"],"names":[],"mappings":"AAIA,qBAAa,OAAO;IAChB,OAAO,CAAC,MAAM,CAAC,IAAI,CAA2C;WAEjD,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM;WAO9C,GAAG,CAAC,QAAQ,EAAE,MAAM;WAQpB,MAAM,CAAC,QAAQ,EAAE,MAAM;WAMvB,MAAM,CAAC,QAAQ,EAAE,MAAM;CAGvC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.Storage = void 0;
|
|
7
|
+
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
9
|
+
const Logger_1 = require("./Logger");
|
|
10
|
+
class Storage {
|
|
11
|
+
static async put(filePath, content) {
|
|
12
|
+
const fullPath = path_1.default.join(this.root, filePath);
|
|
13
|
+
await fs_extra_1.default.ensureDir(path_1.default.dirname(fullPath));
|
|
14
|
+
await fs_extra_1.default.writeFile(fullPath, content);
|
|
15
|
+
Logger_1.Logger.success(`File stored: ${filePath}`);
|
|
16
|
+
}
|
|
17
|
+
static async get(filePath) {
|
|
18
|
+
const fullPath = path_1.default.join(this.root, filePath);
|
|
19
|
+
if (await fs_extra_1.default.pathExists(fullPath)) {
|
|
20
|
+
return await fs_extra_1.default.readFile(fullPath);
|
|
21
|
+
}
|
|
22
|
+
return null;
|
|
23
|
+
}
|
|
24
|
+
static async delete(filePath) {
|
|
25
|
+
const fullPath = path_1.default.join(this.root, filePath);
|
|
26
|
+
await fs_extra_1.default.remove(fullPath);
|
|
27
|
+
Logger_1.Logger.info(`File deleted: ${filePath}`);
|
|
28
|
+
}
|
|
29
|
+
static async exists(filePath) {
|
|
30
|
+
return await fs_extra_1.default.pathExists(path_1.default.join(this.root, filePath));
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
exports.Storage = Storage;
|
|
34
|
+
Storage.root = path_1.default.join(process.cwd(), 'storage/app');
|
|
35
|
+
//# sourceMappingURL=Storage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Storage.js","sourceRoot":"","sources":["../../src/foundation/Storage.ts"],"names":[],"mappings":";;;;;;AAAA,wDAA0B;AAC1B,gDAAwB;AACxB,qCAAkC;AAElC,MAAa,OAAO;IAGhB,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,QAAgB,EAAE,OAAwB;QACvD,MAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAChD,MAAM,kBAAE,CAAC,SAAS,CAAC,cAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC3C,MAAM,kBAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACtC,eAAM,CAAC,OAAO,CAAC,gBAAgB,QAAQ,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,QAAgB;QAC7B,MAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAChD,IAAI,MAAM,kBAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAChC,OAAO,MAAM,kBAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACvC,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,QAAgB;QAChC,MAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAChD,MAAM,kBAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC1B,eAAM,CAAC,IAAI,CAAC,iBAAiB,QAAQ,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,QAAgB;QAChC,OAAO,MAAM,kBAAE,CAAC,UAAU,CAAC,cAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC/D,CAAC;;AA1BL,0BA2BC;AA1BkB,YAAI,GAAG,cAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,CAAC,CAAC"}
|