@webda/core 2.4.2 → 3.0.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/lib/application.d.ts +171 -34
- package/lib/application.js +243 -47
- package/lib/application.js.map +1 -1
- package/lib/application.spec.js +44 -8
- package/lib/application.spec.js.map +1 -1
- package/lib/core.d.ts +113 -54
- package/lib/core.js +222 -135
- package/lib/core.js.map +1 -1
- package/lib/core.spec.js +87 -43
- package/lib/core.spec.js.map +1 -1
- package/lib/errors.d.ts +65 -0
- package/lib/errors.js +113 -0
- package/lib/errors.js.map +1 -0
- package/lib/errors.spec.d.ts +1 -0
- package/lib/errors.spec.js +33 -0
- package/lib/errors.spec.js.map +1 -0
- package/lib/index.d.ts +3 -0
- package/lib/index.js +3 -0
- package/lib/index.js.map +1 -1
- package/lib/models/aclmodel.d.ts +4 -4
- package/lib/models/aclmodel.js +10 -6
- package/lib/models/aclmodel.js.map +1 -1
- package/lib/models/aclmodel.spec.js +33 -24
- package/lib/models/aclmodel.spec.js.map +1 -1
- package/lib/models/coremodel.d.ts +284 -92
- package/lib/models/coremodel.js +403 -103
- package/lib/models/coremodel.js.map +1 -1
- package/lib/models/coremodel.spec.js +162 -24
- package/lib/models/coremodel.spec.js.map +1 -1
- package/lib/models/ident.d.ts +20 -6
- package/lib/models/ident.js.map +1 -1
- package/lib/models/ownermodel.d.ts +13 -23
- package/lib/models/ownermodel.js +24 -51
- package/lib/models/ownermodel.js.map +1 -1
- package/lib/models/ownermodel.spec.js +23 -11
- package/lib/models/ownermodel.spec.js.map +1 -1
- package/lib/models/relations.d.ts +167 -0
- package/lib/models/relations.js +113 -0
- package/lib/models/relations.js.map +1 -0
- package/lib/models/rolemodel.d.ts +3 -3
- package/lib/models/rolemodel.js +6 -6
- package/lib/models/rolemodel.js.map +1 -1
- package/lib/models/rolemodel.spec.js +12 -12
- package/lib/models/rolemodel.spec.js.map +1 -1
- package/lib/models/user.d.ts +40 -24
- package/lib/models/user.js +74 -48
- package/lib/models/user.js.map +1 -1
- package/lib/models/user.spec.js +24 -4
- package/lib/models/user.spec.js.map +1 -1
- package/lib/queues/memoryqueue.spec.js +9 -5
- package/lib/queues/memoryqueue.spec.js.map +1 -1
- package/lib/queues/queueservice.js.map +1 -1
- package/lib/router.d.ts +17 -8
- package/lib/router.js +81 -9
- package/lib/router.js.map +1 -1
- package/lib/router.spec.js +89 -5
- package/lib/router.spec.js.map +1 -1
- package/lib/services/asyncevents.spec.js +4 -4
- package/lib/services/authentication.d.ts +21 -22
- package/lib/services/authentication.js +90 -109
- package/lib/services/authentication.js.map +1 -1
- package/lib/services/authentication.spec.js +51 -65
- package/lib/services/authentication.spec.js.map +1 -1
- package/lib/services/binary.d.ts +132 -31
- package/lib/services/binary.js +257 -72
- package/lib/services/binary.js.map +1 -1
- package/lib/services/binary.spec.d.ts +16 -6
- package/lib/services/binary.spec.js +44 -117
- package/lib/services/binary.spec.js.map +1 -1
- package/lib/services/cloudbinary.d.ts +9 -10
- package/lib/services/cloudbinary.js +14 -15
- package/lib/services/cloudbinary.js.map +1 -1
- package/lib/services/cloudbinary.spec.d.ts +2 -2
- package/lib/services/cloudbinary.spec.js +13 -12
- package/lib/services/cloudbinary.spec.js.map +1 -1
- package/lib/services/configuration.js +9 -9
- package/lib/services/configuration.js.map +1 -1
- package/lib/services/configuration.spec.js +5 -7
- package/lib/services/configuration.spec.js.map +1 -1
- package/lib/services/cron.spec.js +3 -4
- package/lib/services/cron.spec.js.map +1 -1
- package/lib/services/cryptoservice.d.ts +2 -2
- package/lib/services/cryptoservice.js +5 -2
- package/lib/services/cryptoservice.js.map +1 -1
- package/lib/services/domainservice.d.ts +113 -0
- package/lib/services/domainservice.js +357 -0
- package/lib/services/domainservice.js.map +1 -0
- package/lib/services/domainservice.spec.d.ts +1 -0
- package/lib/services/domainservice.spec.js +334 -0
- package/lib/services/domainservice.spec.js.map +1 -0
- package/lib/services/echo.d.ts +2 -2
- package/lib/services/echo.js.map +1 -1
- package/lib/services/echo.spec.js +9 -2
- package/lib/services/echo.spec.js.map +1 -1
- package/lib/services/filebinary.d.ts +13 -14
- package/lib/services/filebinary.js +79 -73
- package/lib/services/filebinary.js.map +1 -1
- package/lib/services/filebinary.spec.d.ts +5 -0
- package/lib/services/filebinary.spec.js +222 -11
- package/lib/services/filebinary.spec.js.map +1 -1
- package/lib/services/fileconfiguration.js +4 -4
- package/lib/services/fileconfiguration.js.map +1 -1
- package/lib/services/fileconfiguration.spec.js +23 -24
- package/lib/services/fileconfiguration.spec.js.map +1 -1
- package/lib/services/invitationservice.d.ts +11 -9
- package/lib/services/invitationservice.js +17 -23
- package/lib/services/invitationservice.js.map +1 -1
- package/lib/services/invitationservice.spec.js +43 -40
- package/lib/services/invitationservice.spec.js.map +1 -1
- package/lib/services/kubernetesconfiguration.js +12 -22
- package/lib/services/kubernetesconfiguration.js.map +1 -1
- package/lib/services/kubernetesconfiguration.spec.js +1 -6
- package/lib/services/kubernetesconfiguration.spec.js.map +1 -1
- package/lib/services/mailer.js +1 -1
- package/lib/services/mailer.js.map +1 -1
- package/lib/services/mailer.spec.js +4 -1
- package/lib/services/mailer.spec.js.map +1 -1
- package/lib/services/oauth.d.ts +17 -9
- package/lib/services/oauth.js +30 -4
- package/lib/services/oauth.js.map +1 -1
- package/lib/services/oauth.spec.js +32 -15
- package/lib/services/oauth.spec.js.map +1 -1
- package/lib/services/prometheus.spec.js.map +1 -1
- package/lib/services/proxy.d.ts +9 -8
- package/lib/services/proxy.js +65 -36
- package/lib/services/proxy.js.map +1 -1
- package/lib/services/proxy.spec.js +28 -2
- package/lib/services/proxy.spec.js.map +1 -1
- package/lib/services/resource.d.ts +3 -3
- package/lib/services/resource.js +4 -3
- package/lib/services/resource.js.map +1 -1
- package/lib/services/resource.spec.js +3 -3
- package/lib/services/resource.spec.js.map +1 -1
- package/lib/services/service.d.ts +10 -13
- package/lib/services/service.js +29 -13
- package/lib/services/service.js.map +1 -1
- package/lib/services/service.spec.js +49 -11
- package/lib/services/service.spec.js.map +1 -1
- package/lib/services/version.d.ts +2 -2
- package/lib/services/version.js.map +1 -1
- package/lib/stores/aggregator.js +1 -0
- package/lib/stores/aggregator.js.map +1 -1
- package/lib/stores/aliasstore.d.ts +2 -2
- package/lib/stores/aliasstore.js +15 -4
- package/lib/stores/aliasstore.js.map +1 -1
- package/lib/stores/aliasstore.spec.js +4 -2
- package/lib/stores/aliasstore.spec.js.map +1 -1
- package/lib/stores/file.d.ts +5 -2
- package/lib/stores/file.js +11 -8
- package/lib/stores/file.js.map +1 -1
- package/lib/stores/file.spec.js +21 -34
- package/lib/stores/file.spec.js.map +1 -1
- package/lib/stores/mapper.d.ts +4 -2
- package/lib/stores/mapper.js +18 -11
- package/lib/stores/mapper.js.map +1 -1
- package/lib/stores/mapper.spec.js +6 -3
- package/lib/stores/mapper.spec.js.map +1 -1
- package/lib/stores/memory.d.ts +5 -2
- package/lib/stores/memory.js +11 -9
- package/lib/stores/memory.js.map +1 -1
- package/lib/stores/memory.spec.d.ts +3 -0
- package/lib/stores/memory.spec.js +100 -11
- package/lib/stores/memory.spec.js.map +1 -1
- package/lib/stores/store.d.ts +177 -87
- package/lib/stores/store.js +312 -141
- package/lib/stores/store.js.map +1 -1
- package/lib/stores/store.spec.d.ts +2 -2
- package/lib/stores/store.spec.js +54 -38
- package/lib/stores/store.spec.js.map +1 -1
- package/lib/stores/webdaql/WebdaQLLexer.d.ts +14 -13
- package/lib/stores/webdaql/WebdaQLLexer.js +121 -112
- package/lib/stores/webdaql/WebdaQLLexer.js.map +1 -1
- package/lib/stores/webdaql/WebdaQLParserLexer.d.ts +14 -13
- package/lib/stores/webdaql/WebdaQLParserLexer.js +121 -112
- package/lib/stores/webdaql/WebdaQLParserLexer.js.map +1 -1
- package/lib/stores/webdaql/WebdaQLParserListener.d.ts +15 -3
- package/lib/stores/webdaql/WebdaQLParserParser.d.ts +23 -13
- package/lib/stores/webdaql/WebdaQLParserParser.js +149 -94
- package/lib/stores/webdaql/WebdaQLParserParser.js.map +1 -1
- package/lib/stores/webdaql/WebdaQLParserVisitor.d.ts +9 -2
- package/lib/stores/webdaql/query.d.ts +6 -2
- package/lib/stores/webdaql/query.js +14 -1
- package/lib/stores/webdaql/query.js.map +1 -1
- package/lib/stores/webdaql/query.spec.js +10 -1
- package/lib/stores/webdaql/query.spec.js.map +1 -1
- package/lib/test.d.ts +48 -19
- package/lib/test.js +171 -63
- package/lib/test.js.map +1 -1
- package/lib/unpackedapplication.d.ts +5 -0
- package/lib/unpackedapplication.js +58 -10
- package/lib/unpackedapplication.js.map +1 -1
- package/lib/utils/context.d.ts +76 -29
- package/lib/utils/context.js +91 -55
- package/lib/utils/context.js.map +1 -1
- package/lib/utils/context.spec.d.ts +9 -1
- package/lib/utils/context.spec.js +73 -8
- package/lib/utils/context.spec.js.map +1 -1
- package/lib/utils/cookie.d.ts +4 -5
- package/lib/utils/cookie.js +1 -2
- package/lib/utils/cookie.js.map +1 -1
- package/lib/utils/cookie.spec.js +5 -3
- package/lib/utils/cookie.spec.js.map +1 -1
- package/lib/utils/httpcontext.spec.js +9 -3
- package/lib/utils/httpcontext.spec.js.map +1 -1
- package/lib/utils/serializers.d.ts +46 -17
- package/lib/utils/serializers.js +116 -2
- package/lib/utils/serializers.js.map +1 -1
- package/lib/utils/serializers.spec.js +84 -20
- package/lib/utils/serializers.spec.js.map +1 -1
- package/lib/utils/session.d.ts +14 -8
- package/lib/utils/session.js +14 -3
- package/lib/utils/session.js.map +1 -1
- package/lib/utils/session.spec.js +6 -1
- package/lib/utils/session.spec.js.map +1 -1
- package/package.json +16 -10
- package/test/cachedapp/webda.config.json +6 -1
- package/test/config-cached.json +5 -0
- package/test/config-file-missing-file.json +5 -7
- package/test/config-file-no-reload.json +5 -7
- package/test/config-file-reload.json +5 -7
- package/test/config-kube-reload.json +5 -11
- package/test/config-reload.json +2 -4
- package/test/config.json +12 -2
- package/test/moddas/voidstore.js +1 -1
- package/test/models/ident.js +6 -4
- package/test/models/task.js +4 -4
- package/webda.module.json +1587 -1266
package/lib/utils/serializers.js
CHANGED
|
@@ -1,10 +1,100 @@
|
|
|
1
|
-
import { existsSync, readFileSync, writeFileSync } from "fs";
|
|
1
|
+
import { createReadStream, createWriteStream, existsSync, lstatSync, readdirSync, readFileSync, realpathSync, unlinkSync, writeFileSync } from "fs";
|
|
2
2
|
import * as jsonc from "jsonc-parser";
|
|
3
|
+
import { join } from "path";
|
|
3
4
|
import * as yaml from "yaml";
|
|
5
|
+
import { Core } from "../core.js";
|
|
4
6
|
/**
|
|
5
7
|
* Allow save/load of yaml or json file
|
|
6
8
|
*/
|
|
7
9
|
export const FileUtils = {
|
|
10
|
+
/**
|
|
11
|
+
* @override
|
|
12
|
+
*/
|
|
13
|
+
getWriteStream: (path) => {
|
|
14
|
+
return createWriteStream(path);
|
|
15
|
+
},
|
|
16
|
+
getReadStream: (path) => {
|
|
17
|
+
return createReadStream(path);
|
|
18
|
+
},
|
|
19
|
+
/**
|
|
20
|
+
* Recursively run a process through all descendant files under a path
|
|
21
|
+
*
|
|
22
|
+
* @param {string} path
|
|
23
|
+
* @param {Function} processor Processing function, eg: (filepath: string) => void
|
|
24
|
+
* @param {string} currentPath Path to dig
|
|
25
|
+
* @param {boolean} options.followSymlinks Follow symlinks which targets a folder
|
|
26
|
+
* @param {boolean} options.includeDir Include folders to results transmitted to the processor function
|
|
27
|
+
* @param {number} options.maxDepth Maximum depth level to investigate, default is 100 to prevent infinite loops
|
|
28
|
+
* @param {number} state.depth Starting level counter
|
|
29
|
+
*/
|
|
30
|
+
walk: (path, processor, options = { maxDepth: 100 }, state = { depth: 0 }) => {
|
|
31
|
+
state.depth++;
|
|
32
|
+
let files = readdirSync(path);
|
|
33
|
+
const fileItemCallback = p => {
|
|
34
|
+
try {
|
|
35
|
+
const stat = lstatSync(p);
|
|
36
|
+
if (stat.isDirectory()) {
|
|
37
|
+
if (options.includeDir) {
|
|
38
|
+
processor(p);
|
|
39
|
+
}
|
|
40
|
+
// folder found, trying to dig further
|
|
41
|
+
if (!options.maxDepth || state.depth < options.maxDepth) {
|
|
42
|
+
// unless we reached the maximum depth
|
|
43
|
+
FileUtils.walk(p, processor, options, state);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
else if (stat.isSymbolicLink()) {
|
|
47
|
+
const realPath = realpathSync(p);
|
|
48
|
+
const stat = lstatSync(realPath);
|
|
49
|
+
if (stat.isDirectory()) {
|
|
50
|
+
// symlink targets a folder
|
|
51
|
+
if (options.followSymlinks) {
|
|
52
|
+
// following below
|
|
53
|
+
if (!options.maxDepth || state.depth < options.maxDepth) {
|
|
54
|
+
// unless we reached the maximum depth
|
|
55
|
+
FileUtils.walk(realPath, processor, options, state);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
// symlink targets a file
|
|
61
|
+
processor(realPath);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
else if (stat.isFile()) {
|
|
65
|
+
processor(p);
|
|
66
|
+
}
|
|
67
|
+
/* c8 ignore start */
|
|
68
|
+
}
|
|
69
|
+
catch (err) {
|
|
70
|
+
Core.get()?.log("ERROR", "FileUtils.find: Error while reading file", p, err);
|
|
71
|
+
}
|
|
72
|
+
/* c8 ignore stop */
|
|
73
|
+
};
|
|
74
|
+
files.map(f => join(path, f)).forEach(fileItemCallback);
|
|
75
|
+
},
|
|
76
|
+
/**
|
|
77
|
+
* Find files below a provided path, optionally filtered by a RegExp pattern
|
|
78
|
+
* Without pattern provided, ALL FOUND FILES will be returned by default
|
|
79
|
+
*
|
|
80
|
+
* @param {string} currentPath Path to explore
|
|
81
|
+
* @param {boolean} options.followSymlinks Follow symlinks which targets a folder
|
|
82
|
+
* @param {boolean} options.includeDir Include folders to results transmitted to the processor function
|
|
83
|
+
* @param {number} options.maxDepth Maximum depth level to investigate
|
|
84
|
+
* @param {RegExp} options.filterPattern RegExp pattern to filter, no filter will find all files
|
|
85
|
+
* @returns
|
|
86
|
+
*/
|
|
87
|
+
find: (currentPath, options = { maxDepth: 3 }) => {
|
|
88
|
+
let found = [];
|
|
89
|
+
const processor = (filepath) => {
|
|
90
|
+
if (!options.filterPattern || options.filterPattern.test(filepath)) {
|
|
91
|
+
// unless an existing regexp filter forces to skip
|
|
92
|
+
found.push(filepath);
|
|
93
|
+
}
|
|
94
|
+
};
|
|
95
|
+
FileUtils.walk(currentPath, processor, options);
|
|
96
|
+
return found;
|
|
97
|
+
},
|
|
8
98
|
/**
|
|
9
99
|
* Load a YAML or JSON file based on its extension
|
|
10
100
|
*
|
|
@@ -46,6 +136,13 @@ export const FileUtils = {
|
|
|
46
136
|
return writeFileSync(filename, JSONUtils.stringify(object, undefined, 2, publicAudience));
|
|
47
137
|
}
|
|
48
138
|
throw new Error("Unknown format");
|
|
139
|
+
},
|
|
140
|
+
/**
|
|
141
|
+
* Delete files if exists
|
|
142
|
+
* @param files
|
|
143
|
+
*/
|
|
144
|
+
clean: (...files) => {
|
|
145
|
+
files.filter(f => existsSync(f)).forEach(f => unlinkSync(f));
|
|
49
146
|
}
|
|
50
147
|
};
|
|
51
148
|
/**
|
|
@@ -131,7 +228,24 @@ export const JSONUtils = {
|
|
|
131
228
|
/**
|
|
132
229
|
* Helper to FileUtils.save
|
|
133
230
|
*/
|
|
134
|
-
saveFile: FileUtils.save
|
|
231
|
+
saveFile: FileUtils.save,
|
|
232
|
+
/**
|
|
233
|
+
* Sort object keys
|
|
234
|
+
* @param unordered
|
|
235
|
+
* @returns
|
|
236
|
+
*/
|
|
237
|
+
sortObject: (unordered, transformer = a => a) => {
|
|
238
|
+
return Object.keys(unordered)
|
|
239
|
+
.sort()
|
|
240
|
+
.reduce((obj, key) => {
|
|
241
|
+
let res = transformer(unordered[key]);
|
|
242
|
+
if (!res) {
|
|
243
|
+
return obj;
|
|
244
|
+
}
|
|
245
|
+
obj[key] = res;
|
|
246
|
+
return obj;
|
|
247
|
+
}, {});
|
|
248
|
+
}
|
|
135
249
|
};
|
|
136
250
|
/**
|
|
137
251
|
* Expose basic YAML function
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serializers.js","sourceRoot":"","sources":["../../src/utils/serializers.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"serializers.js","sourceRoot":"","sources":["../../src/utils/serializers.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,16 +6,22 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
6
6
|
};
|
|
7
7
|
import { suite, test } from "@testdeck/mocha";
|
|
8
8
|
import * as assert from "assert";
|
|
9
|
-
import { readFileSync } from "fs";
|
|
9
|
+
import { existsSync, readFileSync, symlinkSync } from "fs";
|
|
10
10
|
import * as path from "path";
|
|
11
11
|
import { fileURLToPath } from "url";
|
|
12
12
|
import { FileUtils, JSONUtils, YAMLUtils } from "./serializers.js";
|
|
13
13
|
const TEST_FOLDER = path.dirname(fileURLToPath(import.meta.url)) + "/../../test/jsonutils/";
|
|
14
14
|
let UtilsTest = class UtilsTest {
|
|
15
15
|
fileJson() {
|
|
16
|
-
assert.deepStrictEqual(JSONUtils.loadFile(TEST_FOLDER + "test.json"), {
|
|
17
|
-
|
|
18
|
-
|
|
16
|
+
assert.deepStrictEqual(JSONUtils.loadFile(TEST_FOLDER + "test.json"), {
|
|
17
|
+
test: "ok"
|
|
18
|
+
});
|
|
19
|
+
assert.deepStrictEqual(YAMLUtils.loadFile(TEST_FOLDER + "test.json"), {
|
|
20
|
+
test: "ok"
|
|
21
|
+
});
|
|
22
|
+
assert.deepStrictEqual(FileUtils.load(TEST_FOLDER + "test.json"), {
|
|
23
|
+
test: "ok"
|
|
24
|
+
});
|
|
19
25
|
assert.throws(() => JSONUtils.loadFile("/none"), /File '\/none' does not exist/);
|
|
20
26
|
assert.throws(() => JSONUtils.loadFile("./Dockerfile"), /Unknown format/);
|
|
21
27
|
}
|
|
@@ -53,24 +59,38 @@ let UtilsTest = class UtilsTest {
|
|
|
53
59
|
__test: true
|
|
54
60
|
};
|
|
55
61
|
a.d = a.c;
|
|
56
|
-
assert.deepStrictEqual(JSONUtils.stringify(a), JSON.stringify({
|
|
62
|
+
assert.deepStrictEqual(JSONUtils.stringify(a), JSON.stringify({
|
|
63
|
+
b: "test",
|
|
64
|
+
c: { plop: "bouzouf" },
|
|
65
|
+
__test: true,
|
|
66
|
+
d: { plop: "bouzouf" }
|
|
67
|
+
}, undefined, 2));
|
|
68
|
+
}
|
|
69
|
+
sortObject() {
|
|
70
|
+
assert.deepStrictEqual(JSONUtils.sortObject({ a: 1, c: 2, b: 3 }), { a: 1, b: 3, c: 2 });
|
|
71
|
+
assert.deepStrictEqual(JSONUtils.sortObject({ a: 1, c: 2, b: 3 }, p => (p < 3 ? p + 2 : undefined)), { a: 3, c: 4 });
|
|
57
72
|
}
|
|
58
73
|
writeJSON() {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
+
try {
|
|
75
|
+
let file = path.join(TEST_FOLDER, "writeTest.json");
|
|
76
|
+
JSONUtils.saveFile({ test: "plop" }, file);
|
|
77
|
+
assert.strictEqual(readFileSync(file).toString(), '{\n "test": "plop"\n}');
|
|
78
|
+
file = path.join(TEST_FOLDER, "writeTest.yaml");
|
|
79
|
+
JSONUtils.saveFile({ test: "plop" }, file);
|
|
80
|
+
assert.strictEqual(readFileSync(file).toString(), `test: plop\n`);
|
|
81
|
+
// Yaml alias
|
|
82
|
+
file = path.join(TEST_FOLDER, "writeTest.json");
|
|
83
|
+
YAMLUtils.saveFile({ test: "plop" }, file);
|
|
84
|
+
assert.strictEqual(readFileSync(file).toString(), '{\n "test": "plop"\n}');
|
|
85
|
+
// True implem
|
|
86
|
+
file = path.join(TEST_FOLDER, "writeTest.json");
|
|
87
|
+
FileUtils.save({ test: "plop" }, file);
|
|
88
|
+
assert.strictEqual(readFileSync(file).toString(), '{\n "test": "plop"\n}');
|
|
89
|
+
assert.throws(() => JSONUtils.saveFile({}, "./Dockerfile.zzz"), /Unknown format/);
|
|
90
|
+
}
|
|
91
|
+
finally {
|
|
92
|
+
FileUtils.clean("test/jsonutils/writeTest.json", "test/jsonutils/writeTest.yaml");
|
|
93
|
+
}
|
|
74
94
|
}
|
|
75
95
|
duplicate() {
|
|
76
96
|
let obj = { plop: "test" };
|
|
@@ -98,6 +118,38 @@ plop: 0o600
|
|
|
98
118
|
plop: test
|
|
99
119
|
`), { plop: "test" });
|
|
100
120
|
}
|
|
121
|
+
walker() {
|
|
122
|
+
try {
|
|
123
|
+
let res = [];
|
|
124
|
+
if (!existsSync("./test/link")) {
|
|
125
|
+
symlinkSync("../templates", "test/link");
|
|
126
|
+
}
|
|
127
|
+
FileUtils.walk("test", f => res.push(f));
|
|
128
|
+
assert.ok(["test/models/ident.js", "test/jsonutils/mdocs.yaml", "test/data/test.png"]
|
|
129
|
+
.map(c => res.includes(c))
|
|
130
|
+
.reduce((v, c) => v && c, true));
|
|
131
|
+
res = [];
|
|
132
|
+
FileUtils.walk("test", f => res.push(f), {
|
|
133
|
+
includeDir: true,
|
|
134
|
+
followSymlinks: true
|
|
135
|
+
});
|
|
136
|
+
assert.ok(res.filter(r => r.includes("PASSPORT_EMAIL_RECOVERY")).length > 0);
|
|
137
|
+
}
|
|
138
|
+
finally {
|
|
139
|
+
FileUtils.clean("test/link");
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
finder() {
|
|
143
|
+
let res = FileUtils.find("test", { filterPattern: /Dockerfile/ });
|
|
144
|
+
assert.ok(res.includes("test/Dockerfile"));
|
|
145
|
+
}
|
|
146
|
+
async streams() {
|
|
147
|
+
const st = FileUtils.getWriteStream("/tmp/webda.stream");
|
|
148
|
+
let p = new Promise(resolve => st.on("finish", resolve));
|
|
149
|
+
st.end();
|
|
150
|
+
await p;
|
|
151
|
+
FileUtils.getReadStream("/tmp/webda.stream");
|
|
152
|
+
}
|
|
101
153
|
};
|
|
102
154
|
__decorate([
|
|
103
155
|
test("LoadJSON File")
|
|
@@ -114,6 +166,9 @@ __decorate([
|
|
|
114
166
|
__decorate([
|
|
115
167
|
test("DuplicateJSON")
|
|
116
168
|
], UtilsTest.prototype, "duplicatedJSON", null);
|
|
169
|
+
__decorate([
|
|
170
|
+
test
|
|
171
|
+
], UtilsTest.prototype, "sortObject", null);
|
|
117
172
|
__decorate([
|
|
118
173
|
test("Write JSON/YAML")
|
|
119
174
|
], UtilsTest.prototype, "writeJSON", null);
|
|
@@ -129,6 +184,15 @@ __decorate([
|
|
|
129
184
|
__decorate([
|
|
130
185
|
test("YAML stringify")
|
|
131
186
|
], UtilsTest.prototype, "yaml", null);
|
|
187
|
+
__decorate([
|
|
188
|
+
test
|
|
189
|
+
], UtilsTest.prototype, "walker", null);
|
|
190
|
+
__decorate([
|
|
191
|
+
test
|
|
192
|
+
], UtilsTest.prototype, "finder", null);
|
|
193
|
+
__decorate([
|
|
194
|
+
test
|
|
195
|
+
], UtilsTest.prototype, "streams", null);
|
|
132
196
|
UtilsTest = __decorate([
|
|
133
197
|
suite
|
|
134
198
|
], UtilsTest);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serializers.spec.js","sourceRoot":"","sources":["../../src/utils/serializers.spec.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"serializers.spec.js","sourceRoot":"","sources":["../../src/utils/serializers.spec.ts"],"names":[],"mappings":"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"}
|
package/lib/utils/session.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { CoreModel } from "../models/coremodel.js";
|
|
|
2
2
|
import CryptoService, { JWTOptions } from "../services/cryptoservice.js";
|
|
3
3
|
import { DeepPartial, Service, ServiceParameters } from "../services/service.js";
|
|
4
4
|
import { Store } from "../stores/store.js";
|
|
5
|
-
import {
|
|
5
|
+
import { OperationContext } from "./context.js";
|
|
6
6
|
import { CookieOptions } from "./cookie.js";
|
|
7
7
|
/**
|
|
8
8
|
* Manage load and save of sessions
|
|
@@ -12,13 +12,17 @@ export declare abstract class SessionManager<T extends ServiceParameters = Servi
|
|
|
12
12
|
* Load a session based on context
|
|
13
13
|
* @param context
|
|
14
14
|
*/
|
|
15
|
-
abstract load(context:
|
|
15
|
+
abstract load(context: OperationContext): Promise<Session>;
|
|
16
16
|
/**
|
|
17
17
|
* Save the session within the context
|
|
18
18
|
* @param context
|
|
19
19
|
* @param session
|
|
20
20
|
*/
|
|
21
|
-
abstract save(context:
|
|
21
|
+
abstract save(context: OperationContext, session: Session): Promise<void>;
|
|
22
|
+
/**
|
|
23
|
+
* Create a new session
|
|
24
|
+
*/
|
|
25
|
+
abstract newSession(context: OperationContext): Promise<Session>;
|
|
22
26
|
}
|
|
23
27
|
export declare class CookieSessionParameters extends ServiceParameters {
|
|
24
28
|
/**
|
|
@@ -55,16 +59,18 @@ export declare class CookieSessionManager<T extends CookieSessionParameters = Co
|
|
|
55
59
|
/**
|
|
56
60
|
* @override
|
|
57
61
|
*/
|
|
58
|
-
load(context:
|
|
62
|
+
load(context: OperationContext): Promise<Session>;
|
|
63
|
+
/**
|
|
64
|
+
* @override
|
|
65
|
+
*/
|
|
66
|
+
newSession(context: OperationContext<any, any>): Promise<Session>;
|
|
59
67
|
/**
|
|
60
68
|
* @override
|
|
61
69
|
*/
|
|
62
|
-
save(context:
|
|
70
|
+
save(context: OperationContext, session: Session): Promise<void>;
|
|
63
71
|
}
|
|
64
72
|
/**
|
|
65
|
-
* Session
|
|
66
|
-
*
|
|
67
|
-
* @WebdaModel
|
|
73
|
+
* Session
|
|
68
74
|
*/
|
|
69
75
|
export declare class Session {
|
|
70
76
|
protected changed: boolean;
|
package/lib/utils/session.js
CHANGED
|
@@ -6,6 +6,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
6
6
|
};
|
|
7
7
|
import { NotEnumerable } from "../models/coremodel.js";
|
|
8
8
|
import { Inject, Service, ServiceParameters } from "../services/service.js";
|
|
9
|
+
import { WebContext } from "./context.js";
|
|
9
10
|
import { CookieOptions, SecureCookie } from "./cookie.js";
|
|
10
11
|
/**
|
|
11
12
|
* Manage load and save of sessions
|
|
@@ -47,6 +48,9 @@ export class CookieSessionManager extends SessionManager {
|
|
|
47
48
|
* @override
|
|
48
49
|
*/
|
|
49
50
|
async load(context) {
|
|
51
|
+
if (!(context instanceof WebContext)) {
|
|
52
|
+
return new Session();
|
|
53
|
+
}
|
|
50
54
|
const session = new Session();
|
|
51
55
|
let cookie = await SecureCookie.load(this.parameters.cookie.name, context, this.parameters.jwt);
|
|
52
56
|
if (this.sessionStore) {
|
|
@@ -61,10 +65,19 @@ export class CookieSessionManager extends SessionManager {
|
|
|
61
65
|
}
|
|
62
66
|
return session;
|
|
63
67
|
}
|
|
68
|
+
/**
|
|
69
|
+
* @override
|
|
70
|
+
*/
|
|
71
|
+
async newSession(context) {
|
|
72
|
+
return new Session();
|
|
73
|
+
}
|
|
64
74
|
/**
|
|
65
75
|
* @override
|
|
66
76
|
*/
|
|
67
77
|
async save(context, session) {
|
|
78
|
+
if (!(context instanceof WebContext)) {
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
68
81
|
// If store is found session info are stored in db
|
|
69
82
|
if (this.sessionStore) {
|
|
70
83
|
await this.sessionStore.save({
|
|
@@ -85,9 +98,7 @@ __decorate([
|
|
|
85
98
|
Inject("SessionStore", true)
|
|
86
99
|
], CookieSessionManager.prototype, "sessionStore", void 0);
|
|
87
100
|
/**
|
|
88
|
-
* Session
|
|
89
|
-
*
|
|
90
|
-
* @WebdaModel
|
|
101
|
+
* Session
|
|
91
102
|
*/
|
|
92
103
|
export class Session {
|
|
93
104
|
constructor() {
|
package/lib/utils/session.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/utils/session.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAa,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAE/D,OAAO,EAAe,MAAM,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/utils/session.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,7 @@ import { suite, test } from "@testdeck/mocha";
|
|
|
8
8
|
import * as assert from "assert";
|
|
9
9
|
import { MemoryStore } from "../stores/memory.js";
|
|
10
10
|
import { WebdaTest } from "../test.js";
|
|
11
|
+
import { OperationContext } from "./context.js";
|
|
11
12
|
import { UnknownSession } from "./session.js";
|
|
12
13
|
let SessionTest = class SessionTest {
|
|
13
14
|
basic() {
|
|
@@ -30,7 +31,7 @@ SessionTest = __decorate([
|
|
|
30
31
|
let SessionStoreTest = class SessionStoreTest extends WebdaTest {
|
|
31
32
|
async sessionStore() {
|
|
32
33
|
// Test MemoryStore
|
|
33
|
-
const store = (this.webda.getServices()["
|
|
34
|
+
const store = (this.webda.getServices()["SessionStore"] = await new MemoryStore(this.webda, "SessionStore", {})
|
|
34
35
|
.resolve()
|
|
35
36
|
.init());
|
|
36
37
|
store.getParameters().expose = { url: "url" };
|
|
@@ -55,6 +56,10 @@ let SessionStoreTest = class SessionStoreTest extends WebdaTest {
|
|
|
55
56
|
assert.strictEqual(session.uuid, sessions[0].getUuid());
|
|
56
57
|
assert.strictEqual(session.identUsed, "bouzouf");
|
|
57
58
|
assert.strictEqual(session.sub, undefined);
|
|
59
|
+
let opCtx = new OperationContext(this.webda);
|
|
60
|
+
// cov
|
|
61
|
+
await this.getService("SessionManager").load(opCtx);
|
|
62
|
+
await this.getService("SessionManager").save(opCtx, undefined);
|
|
58
63
|
}
|
|
59
64
|
};
|
|
60
65
|
__decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.spec.js","sourceRoot":"","sources":["../../src/utils/session.spec.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"session.spec.js","sourceRoot":"","sources":["../../src/utils/session.spec.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webda/core",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.1",
|
|
4
4
|
"description": "Expose API with Lambda",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"aws",
|
|
@@ -19,11 +19,12 @@
|
|
|
19
19
|
"pretest": "npm run build",
|
|
20
20
|
"lint": "prettier --check src/**/*",
|
|
21
21
|
"lint:fix": "prettier --write src/**/*",
|
|
22
|
-
"test": "c8 mocha --recursive --exit --timeout=30000 src/**/*.spec.ts src/*.spec.ts src/**/**/*.spec.ts"
|
|
22
|
+
"test": "c8 mocha --recursive --exit --timeout=30000 src/**/*.spec.ts src/*.spec.ts src/**/**/*.spec.ts",
|
|
23
|
+
"test:debug": "mocha --recursive --exit --timeout=30000 src/**/*.spec.ts src/*.spec.ts src/**/**/*.spec.ts"
|
|
23
24
|
},
|
|
24
25
|
"dependencies": {
|
|
25
26
|
"@types/json-schema": "^7.0.8",
|
|
26
|
-
"@webda/workout": "^
|
|
27
|
+
"@webda/workout": "^3.0.0",
|
|
27
28
|
"accept-language": "^3.0.18",
|
|
28
29
|
"ajv": "^8.6.2",
|
|
29
30
|
"ajv-formats": "^2.1.1",
|
|
@@ -31,10 +32,9 @@
|
|
|
31
32
|
"bcryptjs": "^2.4.3",
|
|
32
33
|
"cookie": "^0.5.0",
|
|
33
34
|
"dateformat": "^5.0.3",
|
|
34
|
-
"deepmerge-ts": "^
|
|
35
|
-
"email-templates": "^
|
|
36
|
-
"
|
|
37
|
-
"glob": "^8.0.1",
|
|
35
|
+
"deepmerge-ts": "^5.1.0",
|
|
36
|
+
"email-templates": "^11.0.3",
|
|
37
|
+
"glob": "^10.0.0",
|
|
38
38
|
"global": "^4.4.0",
|
|
39
39
|
"jsonc-parser": "^3.0.0",
|
|
40
40
|
"jsonpath": "^1.1.1",
|
|
@@ -60,7 +60,7 @@
|
|
|
60
60
|
"@testdeck/mocha": "^0.3.2",
|
|
61
61
|
"@types/node": "14.6.0",
|
|
62
62
|
"@types/nodemailer": "^6.4.4",
|
|
63
|
-
"@webda/tsc-esm": "^1.0.
|
|
63
|
+
"@webda/tsc-esm": "^1.0.3",
|
|
64
64
|
"antlr4ts-cli": "^0.5.0-alpha.4",
|
|
65
65
|
"axios": "^1.1.3",
|
|
66
66
|
"c8": "^7.11.3",
|
|
@@ -97,12 +97,18 @@
|
|
|
97
97
|
"publishConfig": {
|
|
98
98
|
"access": "public"
|
|
99
99
|
},
|
|
100
|
+
"nx": {
|
|
101
|
+
"implicitDependencies": [
|
|
102
|
+
"@webda/tsc-esm",
|
|
103
|
+
"@webda/workout"
|
|
104
|
+
]
|
|
105
|
+
},
|
|
100
106
|
"webda": {
|
|
101
107
|
"namespace": "Webda"
|
|
102
108
|
},
|
|
103
109
|
"type": "module",
|
|
104
110
|
"engines": {
|
|
105
|
-
"node": ">=
|
|
111
|
+
"node": ">=16.0.0"
|
|
106
112
|
},
|
|
107
|
-
"gitHead": "
|
|
113
|
+
"gitHead": "b3ce4997c9ff90a535d968394a94fffd8f666a52"
|
|
108
114
|
}
|
|
@@ -2,6 +2,11 @@
|
|
|
2
2
|
"version": 2,
|
|
3
3
|
"module": {},
|
|
4
4
|
"cachedModules": {
|
|
5
|
-
"sources": ["./test/moddas/fakeservice.js", "./test/models/task.js"]
|
|
5
|
+
"sources": ["./test/moddas/fakeservice.js", "./test/models/task.js"],
|
|
6
|
+
"models": {
|
|
7
|
+
"list": {},
|
|
8
|
+
"graph": {},
|
|
9
|
+
"tree": {}
|
|
10
|
+
}
|
|
6
11
|
}
|
|
7
12
|
}
|
package/test/config-cached.json
CHANGED
|
@@ -40,13 +40,11 @@
|
|
|
40
40
|
"type": "Webda/FileConfiguration",
|
|
41
41
|
"source": "./my-missing-file.json",
|
|
42
42
|
"default": {
|
|
43
|
-
"
|
|
44
|
-
"
|
|
45
|
-
"
|
|
46
|
-
"
|
|
47
|
-
"
|
|
48
|
-
"text": "MissingTextAutoGenerated"
|
|
49
|
-
}
|
|
43
|
+
"services": {
|
|
44
|
+
"Authentication": {
|
|
45
|
+
"providers": {
|
|
46
|
+
"email": {
|
|
47
|
+
"text": "MissingTextAutoGenerated"
|
|
50
48
|
}
|
|
51
49
|
}
|
|
52
50
|
}
|
|
@@ -54,13 +54,11 @@
|
|
|
54
54
|
"type": "Webda/FileConfiguration",
|
|
55
55
|
"source": "./my-cnf.json",
|
|
56
56
|
"default": {
|
|
57
|
-
"
|
|
58
|
-
"
|
|
59
|
-
"
|
|
60
|
-
"
|
|
61
|
-
"
|
|
62
|
-
"text": "Test"
|
|
63
|
-
}
|
|
57
|
+
"services": {
|
|
58
|
+
"Authentication": {
|
|
59
|
+
"providers": {
|
|
60
|
+
"email": {
|
|
61
|
+
"text": "Test"
|
|
64
62
|
}
|
|
65
63
|
}
|
|
66
64
|
}
|