@delofarag/base-utils 1.1.1 → 1.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/file-utils.d.ts +9 -10
- package/dist/file-utils.d.ts.map +1 -1
- package/dist/file-utils.js +11 -22
- package/dist/file-utils.js.map +1 -1
- package/dist/heart/cli.d.ts +7 -0
- package/dist/heart/cli.d.ts.map +1 -0
- package/dist/heart/cli.js +47 -0
- package/dist/heart/cli.js.map +1 -0
- package/dist/heart/file-utils.d.ts +12 -0
- package/dist/heart/file-utils.d.ts.map +1 -0
- package/dist/heart/file-utils.js +139 -0
- package/dist/heart/file-utils.js.map +1 -0
- package/dist/heart/load_envs.d.ts +2 -0
- package/dist/heart/load_envs.d.ts.map +1 -0
- package/dist/heart/load_envs.js +9 -0
- package/dist/heart/load_envs.js.map +1 -0
- package/dist/heart/mail.d.ts +9 -0
- package/dist/heart/mail.d.ts.map +1 -0
- package/dist/heart/mail.js +28 -0
- package/dist/heart/mail.js.map +1 -0
- package/dist/heart/pino-logger.d.ts +3 -0
- package/dist/heart/pino-logger.d.ts.map +1 -0
- package/dist/heart/pino-logger.js +19 -0
- package/dist/heart/pino-logger.js.map +1 -0
- package/dist/index.d.ts +2 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -5
- package/dist/index.js.map +1 -1
- package/dist/rule.d.ts +49 -0
- package/dist/rule.d.ts.map +1 -0
- package/dist/rule.js +96 -0
- package/dist/rule.js.map +1 -0
- package/dist/server/cli.d.ts +7 -0
- package/dist/server/cli.d.ts.map +1 -0
- package/dist/server/cli.js +47 -0
- package/dist/server/cli.js.map +1 -0
- package/dist/server/file-utils.d.ts +12 -0
- package/dist/server/file-utils.d.ts.map +1 -0
- package/dist/server/file-utils.js +139 -0
- package/dist/server/file-utils.js.map +1 -0
- package/dist/server/index.d.ts +5 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +5 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/mail.d.ts +19 -0
- package/dist/server/mail.d.ts.map +1 -0
- package/dist/server/mail.js +45 -0
- package/dist/server/mail.js.map +1 -0
- package/dist/server/pino-logger.d.ts +3 -0
- package/dist/server/pino-logger.d.ts.map +1 -0
- package/dist/server/pino-logger.js +19 -0
- package/dist/server/pino-logger.js.map +1 -0
- package/dist/util-funcs.d.ts +10 -0
- package/dist/util-funcs.d.ts.map +1 -0
- package/dist/util-funcs.js +54 -0
- package/dist/util-funcs.js.map +1 -0
- package/package.json +14 -15
package/dist/file-utils.d.ts
CHANGED
|
@@ -1,13 +1,12 @@
|
|
|
1
|
-
export declare function
|
|
2
|
-
export declare function
|
|
3
|
-
export declare function
|
|
4
|
-
export declare function
|
|
5
|
-
export declare function
|
|
6
|
-
export declare function
|
|
7
|
-
export declare function
|
|
8
|
-
export declare function write_n_run(file: string, content: string, interpreter: string, is_subfile?: boolean,
|
|
1
|
+
export declare function createFile(file: string, content: string): Promise<boolean>;
|
|
2
|
+
export declare function createSubFile(pathStr: string, content: string): Promise<boolean>;
|
|
3
|
+
export declare function readFile(file: string): Promise<string>;
|
|
4
|
+
export declare function readAllFilesInDir(dir: string): Promise<string[]>;
|
|
5
|
+
export declare function readFileLines(file: string): Promise<string[]>;
|
|
6
|
+
export declare function addToFile(file: string, content: string): Promise<boolean>;
|
|
7
|
+
export declare function doesFileExist(file: string): Promise<boolean>;
|
|
8
|
+
export declare function write_n_run(file: string, content: string, interpreter: string, is_subfile?: boolean, ausführen?: boolean): Promise<string>;
|
|
9
9
|
export declare function write_n_run_py(file: string, content: string, is_subfile?: boolean, aus_führen?: boolean): Promise<string>;
|
|
10
10
|
export declare function write_n_run_js(file: string, content: string, is_subfile?: boolean, aus_führen?: boolean): Promise<string>;
|
|
11
|
-
export declare function
|
|
12
|
-
export declare function remove_empty_dir(dir: string): Promise<boolean>;
|
|
11
|
+
export declare function removeFile(file: string): Promise<boolean>;
|
|
13
12
|
//# sourceMappingURL=file-utils.d.ts.map
|
package/dist/file-utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-utils.d.ts","sourceRoot":"","sources":["../src/file-utils.ts"],"names":[],"mappings":"AAYA,wBAAsB,
|
|
1
|
+
{"version":3,"file":"file-utils.d.ts","sourceRoot":"","sources":["../src/file-utils.ts"],"names":[],"mappings":"AAYA,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAShF;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAWtF;AAED,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAuB5D;AAED,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAuBtE;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAKnE;AAED,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAS/E;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CASlE;AAGD,wBAAsB,WAAW,CAC7B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,UAAU,GAAE,OAAe,EAC3B,SAAS,GAAE,OAAe,GAC3B,OAAO,CAAC,MAAM,CAAC,CAiBjB;AAED,wBAAsB,cAAc,CAChC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,UAAU,GAAE,OAAe,EAC3B,UAAU,GAAE,OAAe,GAC5B,OAAO,CAAC,MAAM,CAAC,CAEjB;AAED,wBAAsB,cAAc,CAChC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,UAAU,GAAE,OAAe,EAC3B,UAAU,GAAE,OAAe,GAC5B,OAAO,CAAC,MAAM,CAAC,CAEjB;AAGD,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAU/D"}
|
package/dist/file-utils.js
CHANGED
|
@@ -7,7 +7,7 @@ function getProjectRoot() {
|
|
|
7
7
|
return path.resolve(__dirname, '../../../..');
|
|
8
8
|
}
|
|
9
9
|
// creating and reading
|
|
10
|
-
export async function
|
|
10
|
+
export async function createFile(file, content) {
|
|
11
11
|
try {
|
|
12
12
|
await fs.writeFile(file, content, 'utf-8');
|
|
13
13
|
console.log(`die Datei: '${file}' wurde erstellt`);
|
|
@@ -18,7 +18,7 @@ export async function create_file(file, content) {
|
|
|
18
18
|
return false;
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
|
-
export async function
|
|
21
|
+
export async function createSubFile(pathStr, content) {
|
|
22
22
|
const dir = path.dirname(pathStr);
|
|
23
23
|
try {
|
|
24
24
|
await fs.mkdir(dir, { recursive: true });
|
|
@@ -31,7 +31,7 @@ export async function create_sub_file(pathStr, content) {
|
|
|
31
31
|
return false;
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
|
-
export async function
|
|
34
|
+
export async function readFile(file) {
|
|
35
35
|
let filePath = path.resolve(file);
|
|
36
36
|
if (!path.isAbsolute(file)) {
|
|
37
37
|
const projectRoot = getProjectRoot();
|
|
@@ -53,7 +53,7 @@ export async function read_file(file) {
|
|
|
53
53
|
console.log(`die Datei: '${filePath}' wurde ausgelesen`);
|
|
54
54
|
return content;
|
|
55
55
|
}
|
|
56
|
-
export async function
|
|
56
|
+
export async function readAllFilesInDir(dir) {
|
|
57
57
|
const dirPath = path.join(getProjectRoot(), dir);
|
|
58
58
|
const files = [];
|
|
59
59
|
async function readDir(currentPath) {
|
|
@@ -74,13 +74,13 @@ export async function read_all_files_in_dir(dir) {
|
|
|
74
74
|
console.log(`der ordner: ${dir} wurde vollständig ausgelesen`);
|
|
75
75
|
return files;
|
|
76
76
|
}
|
|
77
|
-
export async function
|
|
77
|
+
export async function readFileLines(file) {
|
|
78
78
|
const content = await fs.readFile(file, 'utf-8');
|
|
79
79
|
const lines = content.split('\n');
|
|
80
80
|
console.log(`die Datei: '${file}' wurde Zeile für Zeile ausgelesen und in ein array gepackt`);
|
|
81
81
|
return lines;
|
|
82
82
|
}
|
|
83
|
-
export async function
|
|
83
|
+
export async function addToFile(file, content) {
|
|
84
84
|
try {
|
|
85
85
|
await fs.appendFile(file, `\n${content}`, 'utf-8');
|
|
86
86
|
console.log(`in Datei: '${file}' wurde Inhalt: '${content}' hinzugefügt`);
|
|
@@ -91,7 +91,7 @@ export async function add_to_file(file, content) {
|
|
|
91
91
|
return false;
|
|
92
92
|
}
|
|
93
93
|
}
|
|
94
|
-
export async function
|
|
94
|
+
export async function doesFileExist(file) {
|
|
95
95
|
try {
|
|
96
96
|
await fs.access(file);
|
|
97
97
|
console.log(`die Datei: '${file}' exestiert`);
|
|
@@ -103,15 +103,15 @@ export async function does_file_exist(file) {
|
|
|
103
103
|
}
|
|
104
104
|
}
|
|
105
105
|
// running code
|
|
106
|
-
export async function write_n_run(file, content, interpreter, is_subfile = false,
|
|
106
|
+
export async function write_n_run(file, content, interpreter, is_subfile = false, ausführen = false) {
|
|
107
107
|
const filePath = path.resolve(file);
|
|
108
108
|
if (is_subfile) {
|
|
109
109
|
const dir = path.dirname(filePath);
|
|
110
110
|
await fs.mkdir(dir, { recursive: true });
|
|
111
111
|
}
|
|
112
112
|
await fs.writeFile(filePath, content, 'utf-8');
|
|
113
|
-
console.log(`
|
|
114
|
-
if (
|
|
113
|
+
console.log(`die ${interpreter} Code-Datei: '${file}' wurde erstellt`);
|
|
114
|
+
if (ausführen) {
|
|
115
115
|
await execAsync(`${interpreter} ${filePath}`);
|
|
116
116
|
console.log(`die ${interpreter} Code-Datei: '${file}' wird ausgeführt`);
|
|
117
117
|
}
|
|
@@ -124,7 +124,7 @@ export async function write_n_run_js(file, content, is_subfile = false, aus_füh
|
|
|
124
124
|
return write_n_run(file, content, 'node', is_subfile, aus_führen);
|
|
125
125
|
}
|
|
126
126
|
// removing
|
|
127
|
-
export async function
|
|
127
|
+
export async function removeFile(file) {
|
|
128
128
|
try {
|
|
129
129
|
await fs.unlink(file);
|
|
130
130
|
console.log(`die Datei: '${file}' wurde gelöscht`);
|
|
@@ -136,15 +136,4 @@ export async function remove_file(file) {
|
|
|
136
136
|
return false;
|
|
137
137
|
}
|
|
138
138
|
}
|
|
139
|
-
export async function remove_empty_dir(dir) {
|
|
140
|
-
try {
|
|
141
|
-
await fs.rmdir(dir);
|
|
142
|
-
console.log(`der leere Ordner: '${dir}' wird entfernt`);
|
|
143
|
-
return true;
|
|
144
|
-
}
|
|
145
|
-
catch (e) {
|
|
146
|
-
console.error(`Fehler beim Entfernen des leeren Ordners: '${dir}': ${e}`);
|
|
147
|
-
return false;
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
139
|
//# sourceMappingURL=file-utils.js.map
|
package/dist/file-utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-utils.js","sourceRoot":"","sources":["../src/file-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,aAAa,CAAA;AACjC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAA;AAC5B,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAA;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAA;AAEhC,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAA;AAEjC,SAAS,cAAc;IACnB,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,aAAa,CAAC,CAAA;AACjD,CAAC;AAED,uBAAuB;AACvB,MAAM,CAAC,KAAK,UAAU,
|
|
1
|
+
{"version":3,"file":"file-utils.js","sourceRoot":"","sources":["../src/file-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export declare function input(prompt?: string): Promise<string>;
|
|
2
|
+
export declare const terminal: {
|
|
3
|
+
exec: (command: string) => Promise<string>;
|
|
4
|
+
run: (command: string) => Promise<number>;
|
|
5
|
+
exists: (command: string) => Promise<boolean>;
|
|
6
|
+
};
|
|
7
|
+
//# sourceMappingURL=cli.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/heart/cli.ts"],"names":[],"mappings":"AAGA,wBAAgB,KAAK,CAAC,MAAM,GAAE,MAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAY1D;AAED,eAAO,MAAM,QAAQ;oBAEY,MAAM,KAAE,OAAO,CAAC,MAAM,CAAC;mBAYxB,MAAM,KAAE,OAAO,CAAC,MAAM,CAAC;sBAYpB,MAAM,KAAE,OAAO,CAAC,OAAO,CAAC;CAQ1D,CAAA"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import * as readline from 'readline';
|
|
2
|
+
import { exec, spawn } from 'child_process';
|
|
3
|
+
export function input(prompt = '') {
|
|
4
|
+
const rl = readline.createInterface({
|
|
5
|
+
input: process.stdin,
|
|
6
|
+
output: process.stdout
|
|
7
|
+
});
|
|
8
|
+
return new Promise((resolve) => {
|
|
9
|
+
rl.question(prompt, (answer) => {
|
|
10
|
+
rl.close();
|
|
11
|
+
resolve(answer);
|
|
12
|
+
});
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
export const terminal = {
|
|
16
|
+
exec: async function (command) {
|
|
17
|
+
return new Promise((resolve, reject) => {
|
|
18
|
+
exec(command, (error, stdout, stderr) => {
|
|
19
|
+
if (error) {
|
|
20
|
+
reject(stderr || error);
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
resolve(stdout);
|
|
24
|
+
});
|
|
25
|
+
});
|
|
26
|
+
},
|
|
27
|
+
run: async function (command) {
|
|
28
|
+
return new Promise((resolve, reject) => {
|
|
29
|
+
const proc = spawn(command, {
|
|
30
|
+
shell: true,
|
|
31
|
+
stdio: "inherit", // live output
|
|
32
|
+
});
|
|
33
|
+
proc.on("close", code => resolve(code ?? 0));
|
|
34
|
+
proc.on("error", err => reject(err));
|
|
35
|
+
});
|
|
36
|
+
},
|
|
37
|
+
exists: async function (command) {
|
|
38
|
+
try {
|
|
39
|
+
await this.exec(`command -v ${command}`);
|
|
40
|
+
return true;
|
|
41
|
+
}
|
|
42
|
+
catch {
|
|
43
|
+
return false;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
//# sourceMappingURL=cli.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/heart/cli.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAE5C,MAAM,UAAU,KAAK,CAAC,SAAiB,EAAE;IACrC,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;QAChC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;KACzB,CAAC,CAAC;IAEH,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC3B,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE;YAC3B,EAAE,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,MAAM,CAAC,CAAC;QACpB,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC;AAED,MAAM,CAAC,MAAM,QAAQ,GAAG;IAEpB,IAAI,EAAE,KAAK,WAAU,OAAc;QAC/B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACnC,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;gBACtC,IAAI,KAAK,EAAE,CAAC;oBACV,MAAM,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC;oBACxB,OAAO;gBACT,CAAC;gBACD,OAAO,CAAC,MAAM,CAAC,CAAC;YAClB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACT,CAAC;IAED,GAAG,EAAE,KAAK,WAAU,OAAc;QAC9B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACnC,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,EAAE;gBAC1B,KAAK,EAAE,IAAI;gBACX,KAAK,EAAE,SAAS,EAAE,cAAc;aACjC,CAAC,CAAC;YAEH,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;YAC7C,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;IACT,CAAC;IAED,MAAM,EAAE,KAAK,WAAU,OAAc;QACjC,IAAI,CAAC;YACD,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,OAAO,EAAE,CAAC,CAAC;YACzC,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACP,CAAC;CACJ,CAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare function createFile(file: string, content: string): Promise<boolean>;
|
|
2
|
+
export declare function createSubFile(pathStr: string, content: string): Promise<boolean>;
|
|
3
|
+
export declare function readFile(file: string): Promise<string>;
|
|
4
|
+
export declare function readAllFilesInDir(dir: string): Promise<string[]>;
|
|
5
|
+
export declare function readFileLines(file: string): Promise<string[]>;
|
|
6
|
+
export declare function addToFile(file: string, content: string): Promise<boolean>;
|
|
7
|
+
export declare function doesFileExist(file: string): Promise<boolean>;
|
|
8
|
+
export declare function write_n_run(file: string, content: string, interpreter: string, is_subfile?: boolean, ausführen?: boolean): Promise<string>;
|
|
9
|
+
export declare function write_n_run_py(file: string, content: string, is_subfile?: boolean, aus_führen?: boolean): Promise<string>;
|
|
10
|
+
export declare function write_n_run_js(file: string, content: string, is_subfile?: boolean, aus_führen?: boolean): Promise<string>;
|
|
11
|
+
export declare function removeFile(file: string): Promise<boolean>;
|
|
12
|
+
//# sourceMappingURL=file-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-utils.d.ts","sourceRoot":"","sources":["../../src/heart/file-utils.ts"],"names":[],"mappings":"AAYA,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAShF;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAWtF;AAED,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAuB5D;AAED,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAuBtE;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAKnE;AAED,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAS/E;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CASlE;AAGD,wBAAsB,WAAW,CAC7B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,UAAU,GAAE,OAAe,EAC3B,SAAS,GAAE,OAAe,GAC3B,OAAO,CAAC,MAAM,CAAC,CAiBjB;AAED,wBAAsB,cAAc,CAChC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,UAAU,GAAE,OAAe,EAC3B,UAAU,GAAE,OAAe,GAC5B,OAAO,CAAC,MAAM,CAAC,CAEjB;AAED,wBAAsB,cAAc,CAChC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,UAAU,GAAE,OAAe,EAC3B,UAAU,GAAE,OAAe,GAC5B,OAAO,CAAC,MAAM,CAAC,CAEjB;AAGD,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAU/D"}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import * as fs from 'fs/promises';
|
|
2
|
+
import * as path from 'path';
|
|
3
|
+
import { exec } from 'child_process';
|
|
4
|
+
import { promisify } from 'util';
|
|
5
|
+
const execAsync = promisify(exec);
|
|
6
|
+
function getProjectRoot() {
|
|
7
|
+
return path.resolve(__dirname, '../../../..');
|
|
8
|
+
}
|
|
9
|
+
// creating and reading
|
|
10
|
+
export async function createFile(file, content) {
|
|
11
|
+
try {
|
|
12
|
+
await fs.writeFile(file, content, 'utf-8');
|
|
13
|
+
console.log(`die Datei: '${file}' wurde erstellt`);
|
|
14
|
+
return true;
|
|
15
|
+
}
|
|
16
|
+
catch (e) {
|
|
17
|
+
console.error(`Fehler beim Erstellen der Datei: '${file}': ${e}`);
|
|
18
|
+
return false;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
export async function createSubFile(pathStr, content) {
|
|
22
|
+
const dir = path.dirname(pathStr);
|
|
23
|
+
try {
|
|
24
|
+
await fs.mkdir(dir, { recursive: true });
|
|
25
|
+
await fs.writeFile(pathStr, content, 'utf-8');
|
|
26
|
+
console.log(`der Tree: '${pathStr}' wurde erstellt`);
|
|
27
|
+
return true;
|
|
28
|
+
}
|
|
29
|
+
catch (e) {
|
|
30
|
+
console.error(`Fehler beim Erstellen der Datei: '${pathStr}': ${e}`);
|
|
31
|
+
return false;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
export async function readFile(file) {
|
|
35
|
+
let filePath = path.resolve(file);
|
|
36
|
+
if (!path.isAbsolute(file)) {
|
|
37
|
+
const projectRoot = getProjectRoot();
|
|
38
|
+
filePath = path.join(projectRoot, file);
|
|
39
|
+
try {
|
|
40
|
+
await fs.access(filePath);
|
|
41
|
+
}
|
|
42
|
+
catch {
|
|
43
|
+
filePath = path.resolve(file);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
try {
|
|
47
|
+
await fs.access(filePath);
|
|
48
|
+
}
|
|
49
|
+
catch {
|
|
50
|
+
throw new Error(`Datei nicht gefunden: ${file}`);
|
|
51
|
+
}
|
|
52
|
+
const content = await fs.readFile(filePath, 'utf-8');
|
|
53
|
+
console.log(`die Datei: '${filePath}' wurde ausgelesen`);
|
|
54
|
+
return content;
|
|
55
|
+
}
|
|
56
|
+
export async function readAllFilesInDir(dir) {
|
|
57
|
+
const dirPath = path.join(getProjectRoot(), dir);
|
|
58
|
+
const files = [];
|
|
59
|
+
async function readDir(currentPath) {
|
|
60
|
+
const entries = await fs.readdir(currentPath, { withFileTypes: true });
|
|
61
|
+
for (const entry of entries) {
|
|
62
|
+
const fullPath = path.join(currentPath, entry.name);
|
|
63
|
+
if (entry.isFile()) {
|
|
64
|
+
const content = await fs.readFile(fullPath, 'utf-8');
|
|
65
|
+
files.push(content);
|
|
66
|
+
console.log(`die Datei: '${fullPath}' wurde ausgelesen`);
|
|
67
|
+
}
|
|
68
|
+
else if (entry.isDirectory()) {
|
|
69
|
+
await readDir(fullPath);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
await readDir(dirPath);
|
|
74
|
+
console.log(`der ordner: ${dir} wurde vollständig ausgelesen`);
|
|
75
|
+
return files;
|
|
76
|
+
}
|
|
77
|
+
export async function readFileLines(file) {
|
|
78
|
+
const content = await fs.readFile(file, 'utf-8');
|
|
79
|
+
const lines = content.split('\n');
|
|
80
|
+
console.log(`die Datei: '${file}' wurde Zeile für Zeile ausgelesen und in ein array gepackt`);
|
|
81
|
+
return lines;
|
|
82
|
+
}
|
|
83
|
+
export async function addToFile(file, content) {
|
|
84
|
+
try {
|
|
85
|
+
await fs.appendFile(file, `\n${content}`, 'utf-8');
|
|
86
|
+
console.log(`in Datei: '${file}' wurde Inhalt: '${content}' hinzugefügt`);
|
|
87
|
+
return true;
|
|
88
|
+
}
|
|
89
|
+
catch (e) {
|
|
90
|
+
console.error(`Fehler beim Hinzufügen des Inhalts zu der Datei: '${file}': ${e}`);
|
|
91
|
+
return false;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
export async function doesFileExist(file) {
|
|
95
|
+
try {
|
|
96
|
+
await fs.access(file);
|
|
97
|
+
console.log(`die Datei: '${file}' exestiert`);
|
|
98
|
+
return true;
|
|
99
|
+
}
|
|
100
|
+
catch {
|
|
101
|
+
console.log(`die Datei: '${file}' exestiert nicht`);
|
|
102
|
+
return false;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
// running code
|
|
106
|
+
export async function write_n_run(file, content, interpreter, is_subfile = false, ausführen = false) {
|
|
107
|
+
const filePath = path.resolve(file);
|
|
108
|
+
if (is_subfile) {
|
|
109
|
+
const dir = path.dirname(filePath);
|
|
110
|
+
await fs.mkdir(dir, { recursive: true });
|
|
111
|
+
}
|
|
112
|
+
await fs.writeFile(filePath, content, 'utf-8');
|
|
113
|
+
console.log(`die ${interpreter} Code-Datei: '${file}' wurde erstellt`);
|
|
114
|
+
if (ausführen) {
|
|
115
|
+
await execAsync(`${interpreter} ${filePath}`);
|
|
116
|
+
console.log(`die ${interpreter} Code-Datei: '${file}' wird ausgeführt`);
|
|
117
|
+
}
|
|
118
|
+
return filePath;
|
|
119
|
+
}
|
|
120
|
+
export async function write_n_run_py(file, content, is_subfile = false, aus_führen = false) {
|
|
121
|
+
return write_n_run(file, content, 'python3', is_subfile, aus_führen);
|
|
122
|
+
}
|
|
123
|
+
export async function write_n_run_js(file, content, is_subfile = false, aus_führen = false) {
|
|
124
|
+
return write_n_run(file, content, 'node', is_subfile, aus_führen);
|
|
125
|
+
}
|
|
126
|
+
// removing
|
|
127
|
+
export async function removeFile(file) {
|
|
128
|
+
try {
|
|
129
|
+
await fs.unlink(file);
|
|
130
|
+
console.log(`die Datei: '${file}' wurde gelöscht`);
|
|
131
|
+
return true;
|
|
132
|
+
}
|
|
133
|
+
catch (e) {
|
|
134
|
+
// Datei existiert nicht oder kann nicht gelöscht werden
|
|
135
|
+
console.error(`Fehler beim Löschen der Datei: '${file}': ${e}`);
|
|
136
|
+
return false;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
//# sourceMappingURL=file-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-utils.js","sourceRoot":"","sources":["../../src/heart/file-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"load_envs.d.ts","sourceRoot":"","sources":["../../src/heart/load_envs.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,OAAO,UAAU,gBAAgB,SAIvC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import dotenv from "dotenv";
|
|
2
|
+
import { resolve, dirname } from "path";
|
|
3
|
+
import { fileURLToPath } from "url";
|
|
4
|
+
export default function global_load_envs() {
|
|
5
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
6
|
+
const __dirname = dirname(__filename);
|
|
7
|
+
dotenv.config({ path: resolve(__dirname, "../.env") });
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=load_envs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"load_envs.js","sourceRoot":"","sources":["../../src/heart/load_envs.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,MAAM,CAAC,OAAO,UAAU,gBAAgB;IACpC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACtC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC,CAAA;AAC1D,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export default function sendMailToMe({ subject, text, attachments }: {
|
|
2
|
+
subject: string;
|
|
3
|
+
text: string;
|
|
4
|
+
attachments?: {
|
|
5
|
+
filename: string;
|
|
6
|
+
content: string | Buffer;
|
|
7
|
+
}[];
|
|
8
|
+
}): Promise<import("nodemailer/lib/smtp-transport").SentMessageInfo>;
|
|
9
|
+
//# sourceMappingURL=mail.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mail.d.ts","sourceRoot":"","sources":["../../src/heart/mail.ts"],"names":[],"mappings":"AAYE,wBAA8B,YAAY,CAAC,EAAC,OAAO,EAAE,IAAI,EAAE,WAAW,EAAC,EAAE;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,EAAE,CAAA;CAAC,oEAevK"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import nodemailer from "nodemailer";
|
|
2
|
+
const transporter = nodemailer.createTransport({
|
|
3
|
+
host: "smtp.zoho.eu",
|
|
4
|
+
port: 465,
|
|
5
|
+
secure: true,
|
|
6
|
+
auth: {
|
|
7
|
+
user: "delo@recruitvoiceai.de",
|
|
8
|
+
pass: process.env.MAIL_PASS
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
export default async function sendMailToMe({ subject, text, attachments }) {
|
|
12
|
+
try {
|
|
13
|
+
const info = await transporter.sendMail({
|
|
14
|
+
from: `"RecruitAI" <delo@recruitvoiceai.de>`,
|
|
15
|
+
to: `faragdelo@gmail.com`,
|
|
16
|
+
subject,
|
|
17
|
+
text,
|
|
18
|
+
attachments
|
|
19
|
+
});
|
|
20
|
+
console.log("Mail sent:", info.messageId);
|
|
21
|
+
return info;
|
|
22
|
+
}
|
|
23
|
+
catch (err) {
|
|
24
|
+
console.error("Error sending mail:", err);
|
|
25
|
+
throw err;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=mail.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mail.js","sourceRoot":"","sources":["../../src/heart/mail.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,YAAY,CAAA;AAEnC,MAAM,WAAW,GAAG,UAAU,CAAC,eAAe,CAAC;IAC3C,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,GAAG;IACT,MAAM,EAAE,IAAI;IACZ,IAAI,EAAE;QACJ,IAAI,EAAE,wBAAwB;QAC9B,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS;KAC5B;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,YAAY,CAAC,EAAC,OAAO,EAAE,IAAI,EAAE,WAAW,EAAkG;IACtK,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,QAAQ,CAAC;YACtC,IAAI,EAAE,sCAAsC;YAC5C,EAAE,EAAE,qBAAqB;YACzB,OAAO;YACP,IAAI;YACJ,WAAW;SACZ,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,GAAG,CAAC,CAAC;QAC1C,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pino-logger.d.ts","sourceRoot":"","sources":["../../src/heart/pino-logger.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AAIxB,eAAO,MAAM,MAAM,6BAeb,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import pino from "pino";
|
|
2
|
+
const isDevelopment = process.env.NODE_ENV === "development" || process.env.NODE_ENV === undefined;
|
|
3
|
+
export const logger = isDevelopment
|
|
4
|
+
? pino({
|
|
5
|
+
transport: {
|
|
6
|
+
target: "pino-pretty",
|
|
7
|
+
options: {
|
|
8
|
+
colorize: true,
|
|
9
|
+
translateTime: "HH:MM:ss",
|
|
10
|
+
ignore: "pid,hostname",
|
|
11
|
+
destination: 1, // stdout
|
|
12
|
+
},
|
|
13
|
+
},
|
|
14
|
+
level: "debug",
|
|
15
|
+
})
|
|
16
|
+
: pino({
|
|
17
|
+
level: "info",
|
|
18
|
+
});
|
|
19
|
+
//# sourceMappingURL=pino-logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pino-logger.js","sourceRoot":"","sources":["../../src/heart/pino-logger.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAA;AAElG,MAAM,CAAC,MAAM,MAAM,GAAG,aAAa;IACjC,CAAC,CAAC,IAAI,CAAC;QACH,SAAS,EAAE;YACT,MAAM,EAAE,aAAa;YACrB,OAAO,EAAE;gBACP,QAAQ,EAAE,IAAI;gBACd,aAAa,EAAE,UAAU;gBACzB,MAAM,EAAE,cAAc;gBACtB,WAAW,EAAE,CAAC,EAAE,SAAS;aAC1B;SACF;QACD,KAAK,EAAE,OAAO;KACf,CAAC;IACJ,CAAC,CAAC,IAAI,CAAC;QACH,KAAK,EAAE,MAAM;KACd,CAAC,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
export * from "./cli";
|
|
2
|
-
export * from "./file-utils";
|
|
3
|
-
export * from "./pino-logger";
|
|
4
|
-
export * from "./stackLog";
|
|
5
1
|
export * from "./pipe";
|
|
6
|
-
export * from "./
|
|
2
|
+
export * from "./util-funcs";
|
|
3
|
+
export * from "./rule";
|
|
7
4
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAA;AACtB,cAAc,cAAc,CAAA;AAC5B,cAAc,QAAQ,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
export * from "./cli";
|
|
2
|
-
export * from "./file-utils";
|
|
3
|
-
export * from "./pino-logger";
|
|
4
|
-
export * from "./stackLog";
|
|
5
1
|
export * from "./pipe";
|
|
6
|
-
export * from "./
|
|
2
|
+
export * from "./util-funcs";
|
|
3
|
+
export * from "./rule";
|
|
7
4
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAA;AACtB,cAAc,cAAc,CAAA;AAC5B,cAAc,QAAQ,CAAA"}
|
package/dist/rule.d.ts
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WICHTIG: die "Rules" folgen dem (BASE-REGEL) OR (AUSNAHMEN) prinzip, also eher policy + ausnahme anstatt "strenge boolsche Logik",
|
|
3
|
+
* hier in so einer Form:(root && and1 && and2 && ...) || (or1 || or2 || ...), also wenn auch nur ein .or() rule true ergibt, ist die
|
|
4
|
+
* gesammte rule bei .allows(input) true.
|
|
5
|
+
* @example
|
|
6
|
+
* interface User {
|
|
7
|
+
name:string,
|
|
8
|
+
age:number,
|
|
9
|
+
email:`${string}@${string}.${string}`
|
|
10
|
+
is_admin:boolean
|
|
11
|
+
has_payed:boolean
|
|
12
|
+
tier: "free" | "pro" | "enterprise"
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
const user:User = {
|
|
16
|
+
name: "John Doe",
|
|
17
|
+
age: 20,
|
|
18
|
+
email: "john.doe@exampl.com",
|
|
19
|
+
is_admin: false,
|
|
20
|
+
has_payed: false,
|
|
21
|
+
tier: "free"
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
* const rule = Rule
|
|
25
|
+
.is(user => user.age > 18) //man kann hier auch mit "is<User>(user => ...)" typisieren
|
|
26
|
+
.and(user => !user.is_admin)
|
|
27
|
+
.and(user => user.has_payed)
|
|
28
|
+
.or(Rule
|
|
29
|
+
.is(user => user.tier === "free")
|
|
30
|
+
.and(user => !user.has_payed)
|
|
31
|
+
.and(user => user.age === 21))
|
|
32
|
+
.or(Rule
|
|
33
|
+
.is(user => user.name === "John Doe")
|
|
34
|
+
.and(user => user.age === 20)
|
|
35
|
+
.and(user => user.email === "john.doe@exampl.com"))
|
|
36
|
+
|
|
37
|
+
console.log(rule.allows(user)) // returned true
|
|
38
|
+
*/
|
|
39
|
+
export declare class Rule<T = any> {
|
|
40
|
+
private root;
|
|
41
|
+
private and_rules;
|
|
42
|
+
private or_rules;
|
|
43
|
+
private constructor();
|
|
44
|
+
static is<T = any>(root: (input: T) => boolean): Rule<T>;
|
|
45
|
+
and(fn: (input: T) => boolean): this;
|
|
46
|
+
or(rule: Rule): this;
|
|
47
|
+
allows(input: T): boolean;
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=rule.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rule.d.ts","sourceRoot":"","sources":["../src/rule.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,qBAAa,IAAI,CAAC,CAAC,GAAG,GAAG;IACrB,OAAO,CAAC,IAAI,CAAO;IACnB,OAAO,CAAC,SAAS,CAAc;IAC/B,OAAO,CAAC,QAAQ,CAAY;IAE5B,OAAO;WAGO,EAAE,CAAC,CAAC,GAAG,GAAG,EAAE,IAAI,EAAC,CAAC,KAAK,EAAC,CAAC,KAAK,OAAO;IAG5C,GAAG,CAAC,EAAE,EAAC,CAAC,KAAK,EAAC,CAAC,KAAK,OAAO;IAI3B,EAAE,CAAC,IAAI,EAAC,IAAI;IAIZ,MAAM,CAAC,KAAK,EAAC,CAAC,GAAE,OAAO;CAmBjC"}
|
package/dist/rule.js
ADDED
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WICHTIG: die "Rules" folgen dem (BASE-REGEL) OR (AUSNAHMEN) prinzip, also eher policy + ausnahme anstatt "strenge boolsche Logik",
|
|
3
|
+
* hier in so einer Form:(root && and1 && and2 && ...) || (or1 || or2 || ...), also wenn auch nur ein .or() rule true ergibt, ist die
|
|
4
|
+
* gesammte rule bei .allows(input) true.
|
|
5
|
+
* @example
|
|
6
|
+
* interface User {
|
|
7
|
+
name:string,
|
|
8
|
+
age:number,
|
|
9
|
+
email:`${string}@${string}.${string}`
|
|
10
|
+
is_admin:boolean
|
|
11
|
+
has_payed:boolean
|
|
12
|
+
tier: "free" | "pro" | "enterprise"
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
const user:User = {
|
|
16
|
+
name: "John Doe",
|
|
17
|
+
age: 20,
|
|
18
|
+
email: "john.doe@exampl.com",
|
|
19
|
+
is_admin: false,
|
|
20
|
+
has_payed: false,
|
|
21
|
+
tier: "free"
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
* const rule = Rule
|
|
25
|
+
.is(user => user.age > 18) //man kann hier auch mit "is<User>(user => ...)" typisieren
|
|
26
|
+
.and(user => !user.is_admin)
|
|
27
|
+
.and(user => user.has_payed)
|
|
28
|
+
.or(Rule
|
|
29
|
+
.is(user => user.tier === "free")
|
|
30
|
+
.and(user => !user.has_payed)
|
|
31
|
+
.and(user => user.age === 21))
|
|
32
|
+
.or(Rule
|
|
33
|
+
.is(user => user.name === "John Doe")
|
|
34
|
+
.and(user => user.age === 20)
|
|
35
|
+
.and(user => user.email === "john.doe@exampl.com"))
|
|
36
|
+
|
|
37
|
+
console.log(rule.allows(user)) // returned true
|
|
38
|
+
*/
|
|
39
|
+
export class Rule {
|
|
40
|
+
root;
|
|
41
|
+
and_rules = [];
|
|
42
|
+
or_rules = [];
|
|
43
|
+
constructor(root) {
|
|
44
|
+
this.root = root;
|
|
45
|
+
}
|
|
46
|
+
static is(root) {
|
|
47
|
+
return new Rule(root);
|
|
48
|
+
}
|
|
49
|
+
and(fn) {
|
|
50
|
+
this.and_rules.push(fn);
|
|
51
|
+
return this;
|
|
52
|
+
}
|
|
53
|
+
or(rule) {
|
|
54
|
+
this.or_rules.push(rule);
|
|
55
|
+
return this;
|
|
56
|
+
}
|
|
57
|
+
allows(input) {
|
|
58
|
+
let result;
|
|
59
|
+
result = this.root(input);
|
|
60
|
+
for (const and_rule of this.and_rules) {
|
|
61
|
+
if (!and_rule(input)) {
|
|
62
|
+
result = false;
|
|
63
|
+
break;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
for (const or_rule of this.or_rules) {
|
|
67
|
+
if (or_rule.allows(input)) {
|
|
68
|
+
result = true;
|
|
69
|
+
break;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return result;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
const user = {
|
|
76
|
+
name: "John Doe",
|
|
77
|
+
age: 20,
|
|
78
|
+
email: "john.doe@example.com",
|
|
79
|
+
is_admin: false,
|
|
80
|
+
has_payed: false,
|
|
81
|
+
tier: "free"
|
|
82
|
+
};
|
|
83
|
+
const rule = Rule
|
|
84
|
+
.is(user => user.age > 18)
|
|
85
|
+
.and(user => !user.is_admin)
|
|
86
|
+
.and(user => user.has_payed)
|
|
87
|
+
.or(Rule
|
|
88
|
+
.is(user => user.tier === "free")
|
|
89
|
+
.and(user => !user.has_payed)
|
|
90
|
+
.and(user => user.age === 21))
|
|
91
|
+
.or(Rule
|
|
92
|
+
.is(user => user.name === "John Doe")
|
|
93
|
+
.and(user => user.age === 20)
|
|
94
|
+
.and(user => user.email === "john.doe@example.com"));
|
|
95
|
+
console.log(rule.allows(user));
|
|
96
|
+
//# sourceMappingURL=rule.js.map
|
package/dist/rule.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rule.js","sourceRoot":"","sources":["../src/rule.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,MAAM,OAAO,IAAI;IACL,IAAI,CAAO;IACX,SAAS,GAAY,EAAE,CAAA;IACvB,QAAQ,GAAU,EAAE,CAAA;IAE5B,YAAoB,IAAyB;QACzC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IACpB,CAAC;IACM,MAAM,CAAC,EAAE,CAAU,IAAyB;QAC/C,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,CAAA;IACzB,CAAC;IACM,GAAG,CAAC,EAAuB;QAC9B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACvB,OAAO,IAAI,CAAA;IACf,CAAC;IACM,EAAE,CAAC,IAAS;QACf,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACxB,OAAO,IAAI,CAAA;IACf,CAAC;IACM,MAAM,CAAC,KAAO;QACjB,IAAI,MAAM,CAAC;QACX,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAEzB,KAAI,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAC,CAAC;YAClC,IAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBAClB,MAAM,GAAG,KAAK,CAAA;gBACd,MAAK;YACT,CAAC;QACL,CAAC;QAED,KAAI,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAC,CAAC;YAChC,IAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;gBACvB,MAAM,GAAG,IAAI,CAAA;gBACb,MAAK;YACT,CAAC;QACL,CAAC;QACD,OAAO,MAAM,CAAA;IACjB,CAAC;CACJ;AAaD,MAAM,IAAI,GAAQ;IACd,IAAI,EAAE,UAAU;IAChB,GAAG,EAAE,EAAE;IACP,KAAK,EAAE,sBAAsB;IAC7B,QAAQ,EAAE,KAAK;IACf,SAAS,EAAE,KAAK;IAChB,IAAI,EAAE,MAAM;CACf,CAAA;AAED,MAAM,IAAI,GAAG,IAAI;KACZ,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;KACzB,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;KAC3B,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;KAC3B,EAAE,CAAC,IAAI;KACH,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC;KAChC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;KAC5B,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC;KACjC,EAAE,CAAC,IAAI;KACH,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC;KACpC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC;KAC5B,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,sBAAsB,CAAC,CAAC,CAAA;AAG5D,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export declare function input(prompt?: string): Promise<string>;
|
|
2
|
+
export declare const terminal: {
|
|
3
|
+
exec: (command: string) => Promise<string>;
|
|
4
|
+
run: (command: string) => Promise<number>;
|
|
5
|
+
exists: (command: string) => Promise<boolean>;
|
|
6
|
+
};
|
|
7
|
+
//# sourceMappingURL=cli.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/server/cli.ts"],"names":[],"mappings":"AAGA,wBAAgB,KAAK,CAAC,MAAM,GAAE,MAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAY1D;AAED,eAAO,MAAM,QAAQ;oBAEY,MAAM,KAAE,OAAO,CAAC,MAAM,CAAC;mBAYxB,MAAM,KAAE,OAAO,CAAC,MAAM,CAAC;sBAYpB,MAAM,KAAE,OAAO,CAAC,OAAO,CAAC;CAQ1D,CAAA"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import * as readline from 'readline';
|
|
2
|
+
import { exec, spawn } from 'child_process';
|
|
3
|
+
export function input(prompt = '') {
|
|
4
|
+
const rl = readline.createInterface({
|
|
5
|
+
input: process.stdin,
|
|
6
|
+
output: process.stdout
|
|
7
|
+
});
|
|
8
|
+
return new Promise((resolve) => {
|
|
9
|
+
rl.question(prompt, (answer) => {
|
|
10
|
+
rl.close();
|
|
11
|
+
resolve(answer);
|
|
12
|
+
});
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
export const terminal = {
|
|
16
|
+
exec: async function (command) {
|
|
17
|
+
return new Promise((resolve, reject) => {
|
|
18
|
+
exec(command, (error, stdout, stderr) => {
|
|
19
|
+
if (error) {
|
|
20
|
+
reject(stderr || error);
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
resolve(stdout);
|
|
24
|
+
});
|
|
25
|
+
});
|
|
26
|
+
},
|
|
27
|
+
run: async function (command) {
|
|
28
|
+
return new Promise((resolve, reject) => {
|
|
29
|
+
const proc = spawn(command, {
|
|
30
|
+
shell: true,
|
|
31
|
+
stdio: "inherit", // live output
|
|
32
|
+
});
|
|
33
|
+
proc.on("close", code => resolve(code ?? 0));
|
|
34
|
+
proc.on("error", err => reject(err));
|
|
35
|
+
});
|
|
36
|
+
},
|
|
37
|
+
exists: async function (command) {
|
|
38
|
+
try {
|
|
39
|
+
await this.exec(`command -v ${command}`);
|
|
40
|
+
return true;
|
|
41
|
+
}
|
|
42
|
+
catch {
|
|
43
|
+
return false;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
//# sourceMappingURL=cli.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/server/cli.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAE5C,MAAM,UAAU,KAAK,CAAC,SAAiB,EAAE;IACrC,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;QAChC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;KACzB,CAAC,CAAC;IAEH,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC3B,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE;YAC3B,EAAE,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,MAAM,CAAC,CAAC;QACpB,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC;AAED,MAAM,CAAC,MAAM,QAAQ,GAAG;IAEpB,IAAI,EAAE,KAAK,WAAU,OAAc;QAC/B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACnC,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;gBACtC,IAAI,KAAK,EAAE,CAAC;oBACV,MAAM,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC;oBACxB,OAAO;gBACT,CAAC;gBACD,OAAO,CAAC,MAAM,CAAC,CAAC;YAClB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACT,CAAC;IAED,GAAG,EAAE,KAAK,WAAU,OAAc;QAC9B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACnC,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,EAAE;gBAC1B,KAAK,EAAE,IAAI;gBACX,KAAK,EAAE,SAAS,EAAE,cAAc;aACjC,CAAC,CAAC;YAEH,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;YAC7C,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;IACT,CAAC;IAED,MAAM,EAAE,KAAK,WAAU,OAAc;QACjC,IAAI,CAAC;YACD,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,OAAO,EAAE,CAAC,CAAC;YACzC,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACP,CAAC;CACJ,CAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare function createFile(file: string, content: string): Promise<boolean>;
|
|
2
|
+
export declare function createSubFile(pathStr: string, content: string): Promise<boolean>;
|
|
3
|
+
export declare function readFile(file: string): Promise<string>;
|
|
4
|
+
export declare function readAllFilesInDir(dir: string): Promise<string[]>;
|
|
5
|
+
export declare function readFileLines(file: string): Promise<string[]>;
|
|
6
|
+
export declare function addToFile(file: string, content: string): Promise<boolean>;
|
|
7
|
+
export declare function doesFileExist(file: string): Promise<boolean>;
|
|
8
|
+
export declare function write_n_run(file: string, content: string, interpreter: string, is_subfile?: boolean, ausführen?: boolean): Promise<string>;
|
|
9
|
+
export declare function write_n_run_py(file: string, content: string, is_subfile?: boolean, aus_führen?: boolean): Promise<string>;
|
|
10
|
+
export declare function write_n_run_js(file: string, content: string, is_subfile?: boolean, aus_führen?: boolean): Promise<string>;
|
|
11
|
+
export declare function removeFile(file: string): Promise<boolean>;
|
|
12
|
+
//# sourceMappingURL=file-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-utils.d.ts","sourceRoot":"","sources":["../../src/server/file-utils.ts"],"names":[],"mappings":"AAYA,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAShF;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAWtF;AAED,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAuB5D;AAED,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAuBtE;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAKnE;AAED,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAS/E;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CASlE;AAGD,wBAAsB,WAAW,CAC7B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,UAAU,GAAE,OAAe,EAC3B,SAAS,GAAE,OAAe,GAC3B,OAAO,CAAC,MAAM,CAAC,CAiBjB;AAED,wBAAsB,cAAc,CAChC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,UAAU,GAAE,OAAe,EAC3B,UAAU,GAAE,OAAe,GAC5B,OAAO,CAAC,MAAM,CAAC,CAEjB;AAED,wBAAsB,cAAc,CAChC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,UAAU,GAAE,OAAe,EAC3B,UAAU,GAAE,OAAe,GAC5B,OAAO,CAAC,MAAM,CAAC,CAEjB;AAGD,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAU/D"}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import * as fs from 'fs/promises';
|
|
2
|
+
import * as path from 'path';
|
|
3
|
+
import { exec } from 'child_process';
|
|
4
|
+
import { promisify } from 'util';
|
|
5
|
+
const execAsync = promisify(exec);
|
|
6
|
+
function getProjectRoot() {
|
|
7
|
+
return path.resolve(__dirname, '../../../..');
|
|
8
|
+
}
|
|
9
|
+
// creating and reading
|
|
10
|
+
export async function createFile(file, content) {
|
|
11
|
+
try {
|
|
12
|
+
await fs.writeFile(file, content, 'utf-8');
|
|
13
|
+
console.log(`die Datei: '${file}' wurde erstellt`);
|
|
14
|
+
return true;
|
|
15
|
+
}
|
|
16
|
+
catch (e) {
|
|
17
|
+
console.error(`Fehler beim Erstellen der Datei: '${file}': ${e}`);
|
|
18
|
+
return false;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
export async function createSubFile(pathStr, content) {
|
|
22
|
+
const dir = path.dirname(pathStr);
|
|
23
|
+
try {
|
|
24
|
+
await fs.mkdir(dir, { recursive: true });
|
|
25
|
+
await fs.writeFile(pathStr, content, 'utf-8');
|
|
26
|
+
console.log(`der Tree: '${pathStr}' wurde erstellt`);
|
|
27
|
+
return true;
|
|
28
|
+
}
|
|
29
|
+
catch (e) {
|
|
30
|
+
console.error(`Fehler beim Erstellen der Datei: '${pathStr}': ${e}`);
|
|
31
|
+
return false;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
export async function readFile(file) {
|
|
35
|
+
let filePath = path.resolve(file);
|
|
36
|
+
if (!path.isAbsolute(file)) {
|
|
37
|
+
const projectRoot = getProjectRoot();
|
|
38
|
+
filePath = path.join(projectRoot, file);
|
|
39
|
+
try {
|
|
40
|
+
await fs.access(filePath);
|
|
41
|
+
}
|
|
42
|
+
catch {
|
|
43
|
+
filePath = path.resolve(file);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
try {
|
|
47
|
+
await fs.access(filePath);
|
|
48
|
+
}
|
|
49
|
+
catch {
|
|
50
|
+
throw new Error(`Datei nicht gefunden: ${file}`);
|
|
51
|
+
}
|
|
52
|
+
const content = await fs.readFile(filePath, 'utf-8');
|
|
53
|
+
console.log(`die Datei: '${filePath}' wurde ausgelesen`);
|
|
54
|
+
return content;
|
|
55
|
+
}
|
|
56
|
+
export async function readAllFilesInDir(dir) {
|
|
57
|
+
const dirPath = path.join(getProjectRoot(), dir);
|
|
58
|
+
const files = [];
|
|
59
|
+
async function readDir(currentPath) {
|
|
60
|
+
const entries = await fs.readdir(currentPath, { withFileTypes: true });
|
|
61
|
+
for (const entry of entries) {
|
|
62
|
+
const fullPath = path.join(currentPath, entry.name);
|
|
63
|
+
if (entry.isFile()) {
|
|
64
|
+
const content = await fs.readFile(fullPath, 'utf-8');
|
|
65
|
+
files.push(content);
|
|
66
|
+
console.log(`die Datei: '${fullPath}' wurde ausgelesen`);
|
|
67
|
+
}
|
|
68
|
+
else if (entry.isDirectory()) {
|
|
69
|
+
await readDir(fullPath);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
await readDir(dirPath);
|
|
74
|
+
console.log(`der ordner: ${dir} wurde vollständig ausgelesen`);
|
|
75
|
+
return files;
|
|
76
|
+
}
|
|
77
|
+
export async function readFileLines(file) {
|
|
78
|
+
const content = await fs.readFile(file, 'utf-8');
|
|
79
|
+
const lines = content.split('\n');
|
|
80
|
+
console.log(`die Datei: '${file}' wurde Zeile für Zeile ausgelesen und in ein array gepackt`);
|
|
81
|
+
return lines;
|
|
82
|
+
}
|
|
83
|
+
export async function addToFile(file, content) {
|
|
84
|
+
try {
|
|
85
|
+
await fs.appendFile(file, `\n${content}`, 'utf-8');
|
|
86
|
+
console.log(`in Datei: '${file}' wurde Inhalt: '${content}' hinzugefügt`);
|
|
87
|
+
return true;
|
|
88
|
+
}
|
|
89
|
+
catch (e) {
|
|
90
|
+
console.error(`Fehler beim Hinzufügen des Inhalts zu der Datei: '${file}': ${e}`);
|
|
91
|
+
return false;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
export async function doesFileExist(file) {
|
|
95
|
+
try {
|
|
96
|
+
await fs.access(file);
|
|
97
|
+
console.log(`die Datei: '${file}' exestiert`);
|
|
98
|
+
return true;
|
|
99
|
+
}
|
|
100
|
+
catch {
|
|
101
|
+
console.log(`die Datei: '${file}' exestiert nicht`);
|
|
102
|
+
return false;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
// running code
|
|
106
|
+
export async function write_n_run(file, content, interpreter, is_subfile = false, ausführen = false) {
|
|
107
|
+
const filePath = path.resolve(file);
|
|
108
|
+
if (is_subfile) {
|
|
109
|
+
const dir = path.dirname(filePath);
|
|
110
|
+
await fs.mkdir(dir, { recursive: true });
|
|
111
|
+
}
|
|
112
|
+
await fs.writeFile(filePath, content, 'utf-8');
|
|
113
|
+
console.log(`die ${interpreter} Code-Datei: '${file}' wurde erstellt`);
|
|
114
|
+
if (ausführen) {
|
|
115
|
+
await execAsync(`${interpreter} ${filePath}`);
|
|
116
|
+
console.log(`die ${interpreter} Code-Datei: '${file}' wird ausgeführt`);
|
|
117
|
+
}
|
|
118
|
+
return filePath;
|
|
119
|
+
}
|
|
120
|
+
export async function write_n_run_py(file, content, is_subfile = false, aus_führen = false) {
|
|
121
|
+
return write_n_run(file, content, 'python3', is_subfile, aus_führen);
|
|
122
|
+
}
|
|
123
|
+
export async function write_n_run_js(file, content, is_subfile = false, aus_führen = false) {
|
|
124
|
+
return write_n_run(file, content, 'node', is_subfile, aus_führen);
|
|
125
|
+
}
|
|
126
|
+
// removing
|
|
127
|
+
export async function removeFile(file) {
|
|
128
|
+
try {
|
|
129
|
+
await fs.unlink(file);
|
|
130
|
+
console.log(`die Datei: '${file}' wurde gelöscht`);
|
|
131
|
+
return true;
|
|
132
|
+
}
|
|
133
|
+
catch (e) {
|
|
134
|
+
// Datei existiert nicht oder kann nicht gelöscht werden
|
|
135
|
+
console.error(`Fehler beim Löschen der Datei: '${file}': ${e}`);
|
|
136
|
+
return false;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
//# sourceMappingURL=file-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-utils.js","sourceRoot":"","sources":["../../src/server/file-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAA;AACrB,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,QAAQ,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAA;AACrB,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,QAAQ,CAAA"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export declare function sendEmail({ to, from, subject, text, attachments }: {
|
|
2
|
+
to: string;
|
|
3
|
+
from: string;
|
|
4
|
+
subject: string;
|
|
5
|
+
text: string;
|
|
6
|
+
attachments?: {
|
|
7
|
+
filename: string;
|
|
8
|
+
content: string | Buffer;
|
|
9
|
+
}[];
|
|
10
|
+
}): Promise<import("nodemailer/lib/smtp-transport").SentMessageInfo>;
|
|
11
|
+
export declare function emailMe({ subject, text, attachments }: {
|
|
12
|
+
subject: string;
|
|
13
|
+
text: string;
|
|
14
|
+
attachments?: {
|
|
15
|
+
filename: string;
|
|
16
|
+
content: string | Buffer;
|
|
17
|
+
}[];
|
|
18
|
+
}): Promise<import("nodemailer/lib/smtp-transport").SentMessageInfo>;
|
|
19
|
+
//# sourceMappingURL=mail.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mail.d.ts","sourceRoot":"","sources":["../../src/server/mail.ts"],"names":[],"mappings":"AAYA,wBAAsB,SAAS,CAAC,EAAC,EAAE,EAAC,IAAI,EAAC,OAAO,EAAC,IAAI,EAAC,WAAW,EAAC,EAAE;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,EAAE,CAAA;CAAC,oEAgB5L;AAED,wBAAsB,OAAO,CAAC,EAAC,OAAO,EAAE,IAAI,EAAE,WAAW,EAAC,EAAE;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,EAAE,CAAA;CAAC,oEAexJ"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import nodemailer from "nodemailer";
|
|
2
|
+
const transporter = nodemailer.createTransport({
|
|
3
|
+
host: "smtp.zoho.eu",
|
|
4
|
+
port: 465,
|
|
5
|
+
secure: true,
|
|
6
|
+
auth: {
|
|
7
|
+
user: "delo@recruitvoiceai.de",
|
|
8
|
+
pass: process.env.MAIL_PASS
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
export async function sendEmail({ to, from, subject, text, attachments }) {
|
|
12
|
+
try {
|
|
13
|
+
const info = await transporter.sendMail({
|
|
14
|
+
from,
|
|
15
|
+
to,
|
|
16
|
+
subject,
|
|
17
|
+
text,
|
|
18
|
+
attachments
|
|
19
|
+
});
|
|
20
|
+
console.log("Mail sent:", info.messageId);
|
|
21
|
+
return info;
|
|
22
|
+
}
|
|
23
|
+
catch (err) {
|
|
24
|
+
console.error("Error sending mail:", err);
|
|
25
|
+
throw err;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
export async function emailMe({ subject, text, attachments }) {
|
|
29
|
+
try {
|
|
30
|
+
const info = await transporter.sendMail({
|
|
31
|
+
from: `"RecruitAI" <delo@recruitvoiceai.de>`,
|
|
32
|
+
to: `faragdelo@gmail.com`,
|
|
33
|
+
subject,
|
|
34
|
+
text,
|
|
35
|
+
attachments
|
|
36
|
+
});
|
|
37
|
+
console.log("Mail sent:", info.messageId);
|
|
38
|
+
return info;
|
|
39
|
+
}
|
|
40
|
+
catch (err) {
|
|
41
|
+
console.error("Error sending mail:", err);
|
|
42
|
+
throw err;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=mail.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mail.js","sourceRoot":"","sources":["../../src/server/mail.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,YAAY,CAAA;AAEnC,MAAM,WAAW,GAAG,UAAU,CAAC,eAAe,CAAC;IAC7C,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,GAAG;IACT,MAAM,EAAE,IAAI;IACZ,IAAI,EAAE;QACJ,IAAI,EAAE,wBAAwB;QAC9B,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS;KAC5B;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,EAAC,EAAE,EAAC,IAAI,EAAC,OAAO,EAAC,IAAI,EAAC,WAAW,EAA4H;IAC3L,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,QAAQ,CAAC;YACtC,IAAI;YACJ,EAAE;YACF,OAAO;YACP,IAAI;YACJ,WAAW;SACZ,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,GAAG,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,GAAG,CAAC,CAAC;QAC1C,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,EAAC,OAAO,EAAE,IAAI,EAAE,WAAW,EAAkG;IACvJ,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,QAAQ,CAAC;YACtC,IAAI,EAAE,sCAAsC;YAC5C,EAAE,EAAE,qBAAqB;YACzB,OAAO;YACP,IAAI;YACJ,WAAW;SACZ,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAC1C,OAAO,IAAI,CAAC;IAChB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,GAAG,CAAC,CAAC;QAC1C,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pino-logger.d.ts","sourceRoot":"","sources":["../../src/server/pino-logger.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AAIxB,eAAO,MAAM,MAAM,6BAeb,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import pino from "pino";
|
|
2
|
+
const isDevelopment = process.env.NODE_ENV === "development" || process.env.NODE_ENV === undefined;
|
|
3
|
+
export const logger = isDevelopment
|
|
4
|
+
? pino({
|
|
5
|
+
transport: {
|
|
6
|
+
target: "pino-pretty",
|
|
7
|
+
options: {
|
|
8
|
+
colorize: true,
|
|
9
|
+
translateTime: "HH:MM:ss",
|
|
10
|
+
ignore: "pid,hostname",
|
|
11
|
+
destination: 1, // stdout
|
|
12
|
+
},
|
|
13
|
+
},
|
|
14
|
+
level: "debug",
|
|
15
|
+
})
|
|
16
|
+
: pino({
|
|
17
|
+
level: "info",
|
|
18
|
+
});
|
|
19
|
+
//# sourceMappingURL=pino-logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pino-logger.js","sourceRoot":"","sources":["../../src/server/pino-logger.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAA;AAElG,MAAM,CAAC,MAAM,MAAM,GAAG,aAAa;IACjC,CAAC,CAAC,IAAI,CAAC;QACH,SAAS,EAAE;YACT,MAAM,EAAE,aAAa;YACrB,OAAO,EAAE;gBACP,QAAQ,EAAE,IAAI;gBACd,aAAa,EAAE,UAAU;gBACzB,MAAM,EAAE,cAAc;gBACtB,WAAW,EAAE,CAAC,EAAE,SAAS;aAC1B;SACF;QACD,KAAK,EAAE,OAAO;KACf,CAAC;IACJ,CAAC,CAAC,IAAI,CAAC;QACH,KAAK,EAAE,MAAM;KACd,CAAC,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare function enumerate<T>(arr: Iterable<T>, starting_index?: number): Generator<readonly [number, T], void, unknown>;
|
|
2
|
+
export declare function zip<T extends readonly Iterable<any>[]>(...iterables: T): Generator<{
|
|
3
|
+
[K in keyof T]: T[K] extends Iterable<infer U> ? U : never;
|
|
4
|
+
}>;
|
|
5
|
+
export declare function range(start: number, end?: number, step?: number): Generator<number, void, unknown>;
|
|
6
|
+
export declare function pick<T extends Record<PropertyKey, any>, const K extends readonly (keyof T)[]>(obj: T, keys: K): Pick<T, K[number]>;
|
|
7
|
+
export declare function omit<T extends Record<PropertyKey, any>, const K extends readonly (keyof T)[]>(obj: T, keys: K): Omit<T, K[number]>;
|
|
8
|
+
export declare function array<T>(iter: Iterable<T>): Array<T>;
|
|
9
|
+
export declare function object<T extends readonly [PropertyKey, any][]>(arr: T): Record<PropertyKey, any>;
|
|
10
|
+
//# sourceMappingURL=util-funcs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util-funcs.d.ts","sourceRoot":"","sources":["../src/util-funcs.ts"],"names":[],"mappings":"AAAA,wBAAiB,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAC,cAAc,GAAC,MAAU,kDAKvE;AAED,wBAAiB,GAAG,CAAC,CAAC,SAAS,SAAS,QAAQ,CAAC,GAAG,CAAC,EAAE,EACnD,GAAG,SAAS,EAAE,CAAC,GACd,SAAS,CACV;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK;CAAE,CAC/D,CAUF;AAED,wBAAiB,KAAK,CAClB,KAAK,EAAE,MAAM,EACb,GAAG,CAAC,EAAE,MAAM,EACZ,IAAI,SAAI,oCASX;AAED,wBAAgB,IAAI,CAClB,CAAC,SAAS,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC,EAClC,KAAK,CAAC,CAAC,SAAS,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,EAEpC,GAAG,EAAE,CAAC,EACN,IAAI,EAAE,CAAC,GACN,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAMpB;AAGD,wBAAgB,IAAI,CAClB,CAAC,SAAS,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC,EAClC,KAAK,CAAC,CAAC,SAAS,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,EAEpC,GAAG,EAAE,CAAC,EACN,IAAI,EAAE,CAAC,GACN,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAMpB;AAGD,wBAAgB,KAAK,CAAC,CAAC,EAAE,IAAI,EAAC,QAAQ,CAAC,CAAC,CAAC,GAAE,KAAK,CAAC,CAAC,CAAC,CAMlD;AAED,wBAAgB,MAAM,CAAC,CAAC,SAAS,SAAS,CAAC,WAAW,EAAC,GAAG,CAAC,EAAE,EAAE,GAAG,EAAC,CAAC,4BAMnE"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
export function* enumerate(arr, starting_index = 0) {
|
|
2
|
+
let i = starting_index;
|
|
3
|
+
for (const item of arr) {
|
|
4
|
+
yield [i++, item];
|
|
5
|
+
}
|
|
6
|
+
}
|
|
7
|
+
export function* zip(...iterables) {
|
|
8
|
+
const iterators = iterables.map(it => it[Symbol.iterator]());
|
|
9
|
+
while (true) {
|
|
10
|
+
const results = iterators.map(it => it.next());
|
|
11
|
+
if (results.some(r => r.done))
|
|
12
|
+
return;
|
|
13
|
+
yield results.map(r => r.value);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
export function* range(start, end, step = 1) {
|
|
17
|
+
if (end === undefined) {
|
|
18
|
+
end = start;
|
|
19
|
+
start = 0;
|
|
20
|
+
}
|
|
21
|
+
for (let i = start; i < end; i += step) {
|
|
22
|
+
yield i;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
export function pick(obj, keys) {
|
|
26
|
+
const out = {};
|
|
27
|
+
for (const k of keys) {
|
|
28
|
+
if (k in obj)
|
|
29
|
+
out[k] = obj[k];
|
|
30
|
+
}
|
|
31
|
+
return out;
|
|
32
|
+
}
|
|
33
|
+
export function omit(obj, keys) {
|
|
34
|
+
const out = { ...obj };
|
|
35
|
+
for (const k of keys) {
|
|
36
|
+
delete out[k];
|
|
37
|
+
}
|
|
38
|
+
return out;
|
|
39
|
+
}
|
|
40
|
+
export function array(iter) {
|
|
41
|
+
const arr = [];
|
|
42
|
+
for (const item of iter) {
|
|
43
|
+
arr.push(item);
|
|
44
|
+
}
|
|
45
|
+
return arr;
|
|
46
|
+
}
|
|
47
|
+
export function object(arr) {
|
|
48
|
+
const obj = {};
|
|
49
|
+
for (const [k, v] of arr) {
|
|
50
|
+
obj[k] = v;
|
|
51
|
+
}
|
|
52
|
+
return obj;
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=util-funcs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util-funcs.js","sourceRoot":"","sources":["../src/util-funcs.ts"],"names":[],"mappings":"AAAA,MAAM,SAAU,CAAC,CAAA,SAAS,CAAI,GAAgB,EAAC,iBAAwB,CAAC;IACpE,IAAI,CAAC,GAAG,cAAc,CAAA;IACtB,KAAK,MAAM,IAAI,IAAI,GAAG,EAAE,CAAC;QACvB,MAAM,CAAC,CAAC,EAAE,EAAE,IAAI,CAAU,CAAA;IAC5B,CAAC;AACL,CAAC;AAED,MAAM,SAAS,CAAC,CAAC,GAAG,CAChB,GAAG,SAAY;IAIf,MAAM,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;IAE5D,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAA;QAE9C,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YAAE,OAAM;QAErC,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAQ,CAAA;IACxC,CAAC;AACL,CAAC;AAED,MAAM,SAAU,CAAC,CAAA,KAAK,CAClB,KAAa,EACb,GAAY,EACZ,IAAI,GAAG,CAAC;IAER,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,GAAG,GAAG,KAAK,CAAA;QACX,KAAK,GAAG,CAAC,CAAA;IACX,CAAC;IACD,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC;QACvC,MAAM,CAAC,CAAA;IACT,CAAC;AACL,CAAC;AAED,MAAM,UAAU,IAAI,CAIlB,GAAM,EACN,IAAO;IAEP,MAAM,GAAG,GAAG,EAAwB,CAAA;IACpC,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG;YAAE,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;IAC/B,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAGD,MAAM,UAAU,IAAI,CAIlB,GAAM,EACN,IAAO;IAEP,MAAM,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,CAAA;IACtB,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACrB,OAAO,GAAG,CAAC,CAAC,CAAC,CAAA;IACf,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAGD,MAAM,UAAU,KAAK,CAAI,IAAgB;IACrC,MAAM,GAAG,GAAG,EAAE,CAAA;IACd,KAAI,MAAM,IAAI,IAAI,IAAI,EAAC,CAAC;QACpB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAClB,CAAC;IACD,OAAO,GAAG,CAAA;AACd,CAAC;AAED,MAAM,UAAU,MAAM,CAAyC,GAAK;IAChE,MAAM,GAAG,GAA2B,EAAE,CAAA;IACtC,KAAI,MAAM,CAAC,CAAC,EAAC,CAAC,CAAC,IAAI,GAAG,EAAC,CAAC;QACpB,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;IACd,CAAC;IACD,OAAO,GAAG,CAAA;AACd,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,22 +1,21 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@delofarag/base-utils",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.3.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
7
|
-
"
|
|
8
|
-
"
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
"
|
|
7
|
+
"exports": {
|
|
8
|
+
".": {
|
|
9
|
+
"types": "./dist/index.d.ts",
|
|
10
|
+
"default": "./dist/index.js"
|
|
11
|
+
},
|
|
12
|
+
"./server": {
|
|
13
|
+
"types": "./dist/server/index.d.ts",
|
|
14
|
+
"default": "./dist/server/index.js"
|
|
15
|
+
}
|
|
13
16
|
},
|
|
14
|
-
"
|
|
15
|
-
|
|
16
|
-
},
|
|
17
|
-
"devDependencies": {
|
|
18
|
-
"@types/node": "^20.0.0",
|
|
19
|
-
"typescript": "^5.0.0"
|
|
20
|
-
}
|
|
17
|
+
"files": ["dist", "README.md"],
|
|
18
|
+
"scripts": {"build": "tsc"},
|
|
19
|
+
"dependencies": {"dotenv": "^17.2.3", "nodemailer": "^7.0.13", "readline": "^1.3.0"},
|
|
20
|
+
"devDependencies": {"@types/node": "^20.0.0", "@types/nodemailer": "^7.0.9", "typescript": "^5.0.0"}
|
|
21
21
|
}
|
|
22
|
-
|