@webda/core 1.0.0 → 1.1.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/CHANGELOG.md +24 -0
- package/lib/application.d.ts +2 -2
- package/lib/application.js +6 -6
- package/lib/application.js.map +1 -1
- package/lib/core.d.ts +1 -1
- package/lib/core.js.map +1 -1
- package/lib/core.spec.js +3 -3
- package/lib/core.spec.js.map +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.js +6 -2
- package/lib/index.js.map +1 -1
- package/lib/models/coremodel.d.ts +55 -1
- package/lib/models/coremodel.js +73 -7
- package/lib/models/coremodel.js.map +1 -1
- package/lib/models/coremodel.spec.js +6 -6
- package/lib/models/coremodel.spec.js.map +1 -1
- package/lib/models/user.spec.js +2 -2
- package/lib/models/user.spec.js.map +1 -1
- package/lib/policies/aclpolicy.spec.js +1 -1
- package/lib/policies/aclpolicy.spec.js.map +1 -1
- package/lib/policies/ownerpolicy.spec.js +11 -11
- package/lib/policies/ownerpolicy.spec.js.map +1 -1
- package/lib/policies/rolepolicy.spec.js +2 -2
- package/lib/policies/rolepolicy.spec.js.map +1 -1
- package/lib/queues/memoryqueue.js +2 -2
- package/lib/queues/memoryqueue.js.map +1 -1
- package/lib/services/authentication.js +2 -2
- package/lib/services/authentication.js.map +1 -1
- package/lib/services/authentication.spec.js +6 -6
- package/lib/services/authentication.spec.js.map +1 -1
- package/lib/services/configuration.js.map +1 -1
- package/lib/services/fileconfiguration.spec.js +2 -2
- package/lib/services/fileconfiguration.spec.js.map +1 -1
- package/lib/services/kubernetesconfiguration.js +2 -2
- package/lib/services/kubernetesconfiguration.js.map +1 -1
- package/lib/services/kubernetesconfiguration.spec.js +9 -9
- package/lib/services/kubernetesconfiguration.spec.js.map +1 -1
- package/lib/services/oauth.js +1 -1
- package/lib/services/oauth.js.map +1 -1
- package/lib/stores/file.spec.js +1 -1
- package/lib/stores/file.spec.js.map +1 -1
- package/lib/stores/store.d.ts +16 -0
- package/lib/stores/store.js +17 -1
- package/lib/stores/store.js.map +1 -1
- package/lib/utils/context.js +3 -3
- package/lib/utils/context.js.map +1 -1
- package/lib/utils/cookie.d.ts +13 -1
- package/lib/utils/cookie.js +27 -8
- package/lib/utils/cookie.js.map +1 -1
- package/lib/utils/cookie.spec.js +39 -9
- package/lib/utils/cookie.spec.js.map +1 -1
- package/lib/utils/serializers.d.ts +94 -0
- package/lib/utils/serializers.js +164 -0
- package/lib/utils/serializers.js.map +1 -0
- package/lib/utils/{json.spec.d.ts → serializers.spec.d.ts} +0 -0
- package/lib/utils/serializers.spec.js +103 -0
- package/lib/utils/serializers.spec.js.map +1 -0
- package/package.json +2 -4
- package/LICENSE +0 -166
- package/lib/utils/json.d.ts +0 -8
- package/lib/utils/json.js +0 -74
- package/lib/utils/json.js.map +0 -1
- package/lib/utils/json.spec.js +0 -83
- package/lib/utils/json.spec.js.map +0 -1
package/lib/utils/cookie.spec.js
CHANGED
|
@@ -20,6 +20,7 @@ const index_1 = require("../index");
|
|
|
20
20
|
const context_1 = require("./context");
|
|
21
21
|
const mocha_1 = require("@testdeck/mocha");
|
|
22
22
|
const assert = require("assert");
|
|
23
|
+
const cookie_1 = require("cookie");
|
|
23
24
|
const SECRET = "Lp4B72FPU5n6q4EpVRGyPFnZp5cgLRPScVWixW52Yq84hD4MmnfVfgxKQ5ENLp4B72FPU5n6q4EpVRGyPFnZp5cgLRPScVWixW52Yq84hD4MmnfVfgxKQ5ENLp4B72FPU5n6q4EpVRGyPFnZp5cgLRPScVWixW52Yq84hD4MmnfVfgxKQ5ENLp4B72FPU5n6q4EpVRGyPFnZp5cgLRPScVWixW52Yq84hD4MmnfVfgxKQ5ENLp4B72FPU5n6q4EpVRGyPFnZp5cgLRPScVWixW52Yq84hD4MmnfVfgxKQ5ENLp4B72FPU5n6q4EpVRGyPFnZp5cgLRPScVWixW52Yq84hD4MmnfVfgxKQ5ENLp4B72FPU5n6q4EpVRGyPFnZp5cgLRPScVWixW52Yq84hD4MmnfVfgxKQ5ENLp4B72FPU5n6q4EpVRGyPFnZp5cgLRPScVWixW52Yq84hD4MmnfVfgxKQ5ENLp4B72FPU5n6q4EpVRGyPFnZp5cgLRPScVWixW52Yq84hD4MmnfVfgxKQ5ENLp4B72FPU5n6q4EpVRGyPFnZp5cgLRPScVWixW52Yq84hD4MmnfVfgxKQ5ENLp4B72FPU5n6q4EpVRGyPFnZp5cgLRPScVWixW52Yq84hD4MmnfVfgxKQ5ENLp4B72FPU5n6q4EpVRGyPFnZp5cgLRPScVWixW52Yq84hD4MmnfVfgxKQ5ENLp4B72FPU5n6q4EpVRGyPFnZp5cgLRPScVWixW52Yq84hD4MmnfVfgxKQ5EN";
|
|
24
25
|
let CookieTest = class CookieTest extends test_1.WebdaTest {
|
|
25
26
|
before() {
|
|
@@ -176,34 +177,63 @@ let CookieTest = class CookieTest extends test_1.WebdaTest {
|
|
|
176
177
|
}
|
|
177
178
|
assert.strictEqual(exception, true);
|
|
178
179
|
}
|
|
180
|
+
testOversize() {
|
|
181
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
182
|
+
var cookie = new index_1.SecureCookie("test", {
|
|
183
|
+
secret: SECRET
|
|
184
|
+
}, this._ctx, {
|
|
185
|
+
title: "TITLE",
|
|
186
|
+
desc: "DESCRIPTION"
|
|
187
|
+
}).getProxy();
|
|
188
|
+
cookie.test = "PLOP".repeat(3000);
|
|
189
|
+
assert.strictEqual(cookie.needSave(), true);
|
|
190
|
+
cookie.save(this._ctx);
|
|
191
|
+
assert.strictEqual(Object.keys(this._ctx.getResponseCookies()).length, 5);
|
|
192
|
+
for (let i = 1; i < 5; i++) {
|
|
193
|
+
const cookie = this._ctx.getResponseCookies()[`test${i > 1 ? i : ""}`];
|
|
194
|
+
assert.strictEqual((0, cookie_1.serialize)(cookie.name, cookie.value, cookie.options || {}).length, 4096);
|
|
195
|
+
}
|
|
196
|
+
let ctx = yield this.newContext();
|
|
197
|
+
let cookies = this._ctx.getResponseCookies();
|
|
198
|
+
ctx.getHttpContext().cookies = {};
|
|
199
|
+
Object.keys(cookies).forEach(k => {
|
|
200
|
+
ctx.getHttpContext().cookies[k] = cookies[k].value;
|
|
201
|
+
});
|
|
202
|
+
cookie = new index_1.SecureCookie("test", { secret: SECRET }, ctx);
|
|
203
|
+
assert.strictEqual(cookie.test, "PLOP".repeat(3000));
|
|
204
|
+
});
|
|
205
|
+
}
|
|
179
206
|
};
|
|
180
207
|
__decorate([
|
|
181
|
-
mocha_1.test("No changes")
|
|
208
|
+
(0, mocha_1.test)("No changes")
|
|
182
209
|
], CookieTest.prototype, "testNoChanges", null);
|
|
183
210
|
__decorate([
|
|
184
|
-
mocha_1.test("Add a value")
|
|
211
|
+
(0, mocha_1.test)("Add a value")
|
|
185
212
|
], CookieTest.prototype, "testAddValue", null);
|
|
186
213
|
__decorate([
|
|
187
|
-
mocha_1.test("Change a value")
|
|
214
|
+
(0, mocha_1.test)("Change a value")
|
|
188
215
|
], CookieTest.prototype, "testChangeValue", null);
|
|
189
216
|
__decorate([
|
|
190
|
-
mocha_1.test("Delete a value")
|
|
217
|
+
(0, mocha_1.test)("Delete a value")
|
|
191
218
|
], CookieTest.prototype, "testDeleteValue", null);
|
|
192
219
|
__decorate([
|
|
193
|
-
mocha_1.test("Empty cookie")
|
|
220
|
+
(0, mocha_1.test)("Empty cookie")
|
|
194
221
|
], CookieTest.prototype, "testEmptyCookie", null);
|
|
195
222
|
__decorate([
|
|
196
|
-
mocha_1.test("Cookie parameters")
|
|
223
|
+
(0, mocha_1.test)("Cookie parameters")
|
|
197
224
|
], CookieTest.prototype, "testCookieParameters", null);
|
|
198
225
|
__decorate([
|
|
199
|
-
mocha_1.test("Normal enc/dec")
|
|
226
|
+
(0, mocha_1.test)("Normal enc/dec")
|
|
200
227
|
], CookieTest.prototype, "testEncryption", null);
|
|
201
228
|
__decorate([
|
|
202
|
-
mocha_1.test("Bad secret")
|
|
229
|
+
(0, mocha_1.test)("Bad secret")
|
|
203
230
|
], CookieTest.prototype, "testBadSecret", null);
|
|
204
231
|
__decorate([
|
|
205
|
-
mocha_1.test("bad secret length")
|
|
232
|
+
(0, mocha_1.test)("bad secret length")
|
|
206
233
|
], CookieTest.prototype, "testBadSecretLength", null);
|
|
234
|
+
__decorate([
|
|
235
|
+
(0, mocha_1.test)("Oversize cookie")
|
|
236
|
+
], CookieTest.prototype, "testOversize", null);
|
|
207
237
|
CookieTest = __decorate([
|
|
208
238
|
mocha_1.suite
|
|
209
239
|
], CookieTest);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cookie.spec.js","sourceRoot":"","sources":["../../src/utils/cookie.spec.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,kCAAoC;AACpC,oCAAiD;AACjD,uCAAwC;AACxC,2CAA8C;AAC9C,iCAAiC;
|
|
1
|
+
{"version":3,"file":"cookie.spec.js","sourceRoot":"","sources":["../../src/utils/cookie.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Allow save/load of yaml or json file
|
|
3
|
+
*/
|
|
4
|
+
export declare const FileUtils: {
|
|
5
|
+
/**
|
|
6
|
+
* Load a YAML or JSON file based on its extension
|
|
7
|
+
*
|
|
8
|
+
* @param filename to load
|
|
9
|
+
* @returns
|
|
10
|
+
*/
|
|
11
|
+
load: (filename: any) => any;
|
|
12
|
+
/**
|
|
13
|
+
* Save a YAML or JSON file based on its extension
|
|
14
|
+
*
|
|
15
|
+
* @param object to serialize
|
|
16
|
+
* @param filename to save
|
|
17
|
+
* @returns
|
|
18
|
+
*/
|
|
19
|
+
save: (object: any, filename: any) => void;
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* Simple JSON utils
|
|
23
|
+
*/
|
|
24
|
+
export declare const JSONUtils: {
|
|
25
|
+
/**
|
|
26
|
+
* Safe Stringify stringify a object included circular object
|
|
27
|
+
* and also remove any attributes starting with a __
|
|
28
|
+
*
|
|
29
|
+
* @param value
|
|
30
|
+
* @param replacer
|
|
31
|
+
* @param space
|
|
32
|
+
* @returns
|
|
33
|
+
*/
|
|
34
|
+
safeStringify: (value: any, replacer?: (key: string, value: any) => any, space?: number | string) => string;
|
|
35
|
+
/**
|
|
36
|
+
* See JSON.stringify
|
|
37
|
+
*
|
|
38
|
+
* @param value
|
|
39
|
+
* @param replacer
|
|
40
|
+
* @param space
|
|
41
|
+
* @returns
|
|
42
|
+
*/
|
|
43
|
+
stringify: (value: any, replacer?: (key: string, value: any) => any, space?: number | string) => string;
|
|
44
|
+
/**
|
|
45
|
+
* Parse a JSON data
|
|
46
|
+
*
|
|
47
|
+
* @param value to parse
|
|
48
|
+
* @returns object parsed
|
|
49
|
+
*/
|
|
50
|
+
parse: (value: any) => any;
|
|
51
|
+
/**
|
|
52
|
+
* Duplicate an object using serializer
|
|
53
|
+
*/
|
|
54
|
+
duplicate: (value: any) => any;
|
|
55
|
+
/**
|
|
56
|
+
* Helper to FileUtils.save
|
|
57
|
+
*/
|
|
58
|
+
loadFile: (filename: any) => any;
|
|
59
|
+
/**
|
|
60
|
+
* Helper to FileUtils.save
|
|
61
|
+
*/
|
|
62
|
+
saveFile: (object: any, filename: any) => void;
|
|
63
|
+
};
|
|
64
|
+
/**
|
|
65
|
+
* Expose basic YAML function
|
|
66
|
+
*/
|
|
67
|
+
export declare const YAMLUtils: {
|
|
68
|
+
/**
|
|
69
|
+
* Helper to FileUtils.save
|
|
70
|
+
*/
|
|
71
|
+
saveFile: (object: any, filename: any) => void;
|
|
72
|
+
/**
|
|
73
|
+
* Helper to FileUtils.load
|
|
74
|
+
*/
|
|
75
|
+
loadFile: (filename: any) => any;
|
|
76
|
+
/**
|
|
77
|
+
* Duplicate an object using serializer
|
|
78
|
+
*/
|
|
79
|
+
duplicate: (value: any) => any;
|
|
80
|
+
/**
|
|
81
|
+
* Parse a single document yaml
|
|
82
|
+
*
|
|
83
|
+
* @param value to parse
|
|
84
|
+
* @returns object parsed
|
|
85
|
+
*/
|
|
86
|
+
parse: (value: any) => any;
|
|
87
|
+
/**
|
|
88
|
+
* YAML helper
|
|
89
|
+
* @param value to serialize
|
|
90
|
+
* @param options as defined by https://eemeli.org/yaml/v1/#yaml-stringify
|
|
91
|
+
* @returns
|
|
92
|
+
*/
|
|
93
|
+
stringify: (value: any, options?: any) => string;
|
|
94
|
+
};
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.YAMLUtils = exports.JSONUtils = exports.FileUtils = void 0;
|
|
4
|
+
const fs_1 = require("fs");
|
|
5
|
+
const yaml = require("yaml");
|
|
6
|
+
/**
|
|
7
|
+
* Allow save/load of yaml or json file
|
|
8
|
+
*/
|
|
9
|
+
exports.FileUtils = {
|
|
10
|
+
/**
|
|
11
|
+
* Load a YAML or JSON file based on its extension
|
|
12
|
+
*
|
|
13
|
+
* @param filename to load
|
|
14
|
+
* @returns
|
|
15
|
+
*/
|
|
16
|
+
load: filename => {
|
|
17
|
+
if (!(0, fs_1.existsSync)(filename)) {
|
|
18
|
+
throw new Error("File does not exist");
|
|
19
|
+
}
|
|
20
|
+
let content = (0, fs_1.readFileSync)(filename, "utf-8");
|
|
21
|
+
if (filename.match(/\.ya?ml$/i)) {
|
|
22
|
+
let res = yaml.parseAllDocuments(content);
|
|
23
|
+
if (res.length === 1) {
|
|
24
|
+
return res.pop().toJSON();
|
|
25
|
+
}
|
|
26
|
+
return res.map(d => d.toJSON());
|
|
27
|
+
}
|
|
28
|
+
else if (filename.match(/\.json$/i)) {
|
|
29
|
+
return JSON.parse(content);
|
|
30
|
+
}
|
|
31
|
+
throw new Error("Unknown format");
|
|
32
|
+
},
|
|
33
|
+
/**
|
|
34
|
+
* Save a YAML or JSON file based on its extension
|
|
35
|
+
*
|
|
36
|
+
* @param object to serialize
|
|
37
|
+
* @param filename to save
|
|
38
|
+
* @returns
|
|
39
|
+
*/
|
|
40
|
+
save: (object, filename) => {
|
|
41
|
+
if (filename.match(/\.ya?ml$/i)) {
|
|
42
|
+
return (0, fs_1.writeFileSync)(filename, yaml.stringify(object));
|
|
43
|
+
}
|
|
44
|
+
else if (filename.match(/\.json$/i)) {
|
|
45
|
+
return (0, fs_1.writeFileSync)(filename, JSON.stringify(object, undefined, 2));
|
|
46
|
+
}
|
|
47
|
+
throw new Error("Unknown format");
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
/**
|
|
51
|
+
* Simple JSON utils
|
|
52
|
+
*/
|
|
53
|
+
exports.JSONUtils = {
|
|
54
|
+
/**
|
|
55
|
+
* Safe Stringify stringify a object included circular object
|
|
56
|
+
* and also remove any attributes starting with a __
|
|
57
|
+
*
|
|
58
|
+
* @param value
|
|
59
|
+
* @param replacer
|
|
60
|
+
* @param space
|
|
61
|
+
* @returns
|
|
62
|
+
*/
|
|
63
|
+
safeStringify: (value, replacer = undefined, space = 2) => {
|
|
64
|
+
let stringified = [];
|
|
65
|
+
return JSON.stringify(value, function (key, val) {
|
|
66
|
+
if ((stringified.indexOf(val) >= 0 && typeof val === "object") || key.startsWith("__")) {
|
|
67
|
+
return undefined;
|
|
68
|
+
}
|
|
69
|
+
stringified.push(val);
|
|
70
|
+
if (replacer) {
|
|
71
|
+
return replacer.bind(this, key, val)();
|
|
72
|
+
}
|
|
73
|
+
return val;
|
|
74
|
+
}, space);
|
|
75
|
+
},
|
|
76
|
+
/**
|
|
77
|
+
* See JSON.stringify
|
|
78
|
+
*
|
|
79
|
+
* @param value
|
|
80
|
+
* @param replacer
|
|
81
|
+
* @param space
|
|
82
|
+
* @returns
|
|
83
|
+
*/
|
|
84
|
+
stringify: (value, replacer = undefined, space = 2) => {
|
|
85
|
+
// Add a fallback if first did not work because of recursive
|
|
86
|
+
try {
|
|
87
|
+
return JSON.stringify(value, (key, val) => {
|
|
88
|
+
if (key.startsWith("__")) {
|
|
89
|
+
return undefined;
|
|
90
|
+
}
|
|
91
|
+
if (replacer) {
|
|
92
|
+
return replacer.bind(this, key, val)();
|
|
93
|
+
}
|
|
94
|
+
return val;
|
|
95
|
+
}, space);
|
|
96
|
+
}
|
|
97
|
+
catch (err) {
|
|
98
|
+
if (err.message && err.message.startsWith("Converting circular structure to JSON")) {
|
|
99
|
+
return exports.JSONUtils.safeStringify(value, replacer, space);
|
|
100
|
+
}
|
|
101
|
+
throw err;
|
|
102
|
+
}
|
|
103
|
+
},
|
|
104
|
+
/**
|
|
105
|
+
* Parse a JSON data
|
|
106
|
+
*
|
|
107
|
+
* @param value to parse
|
|
108
|
+
* @returns object parsed
|
|
109
|
+
*/
|
|
110
|
+
parse: value => {
|
|
111
|
+
// Auto clean any noise
|
|
112
|
+
return JSON.parse(value);
|
|
113
|
+
},
|
|
114
|
+
/**
|
|
115
|
+
* Duplicate an object using serializer
|
|
116
|
+
*/
|
|
117
|
+
duplicate: value => {
|
|
118
|
+
return JSON.parse(exports.JSONUtils.stringify(value));
|
|
119
|
+
},
|
|
120
|
+
/**
|
|
121
|
+
* Helper to FileUtils.save
|
|
122
|
+
*/
|
|
123
|
+
loadFile: exports.FileUtils.load,
|
|
124
|
+
/**
|
|
125
|
+
* Helper to FileUtils.save
|
|
126
|
+
*/
|
|
127
|
+
saveFile: exports.FileUtils.save
|
|
128
|
+
};
|
|
129
|
+
/**
|
|
130
|
+
* Expose basic YAML function
|
|
131
|
+
*/
|
|
132
|
+
exports.YAMLUtils = {
|
|
133
|
+
/**
|
|
134
|
+
* Helper to FileUtils.save
|
|
135
|
+
*/
|
|
136
|
+
saveFile: exports.FileUtils.save,
|
|
137
|
+
/**
|
|
138
|
+
* Helper to FileUtils.load
|
|
139
|
+
*/
|
|
140
|
+
loadFile: exports.FileUtils.load,
|
|
141
|
+
/**
|
|
142
|
+
* Duplicate an object using serializer
|
|
143
|
+
*/
|
|
144
|
+
duplicate: exports.JSONUtils.duplicate,
|
|
145
|
+
/**
|
|
146
|
+
* Parse a single document yaml
|
|
147
|
+
*
|
|
148
|
+
* @param value to parse
|
|
149
|
+
* @returns object parsed
|
|
150
|
+
*/
|
|
151
|
+
parse: value => {
|
|
152
|
+
return yaml.parse(value);
|
|
153
|
+
},
|
|
154
|
+
/**
|
|
155
|
+
* YAML helper
|
|
156
|
+
* @param value to serialize
|
|
157
|
+
* @param options as defined by https://eemeli.org/yaml/v1/#yaml-stringify
|
|
158
|
+
* @returns
|
|
159
|
+
*/
|
|
160
|
+
stringify: (value, options = undefined) => {
|
|
161
|
+
return yaml.stringify(value, options);
|
|
162
|
+
}
|
|
163
|
+
};
|
|
164
|
+
//# sourceMappingURL=serializers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serializers.js","sourceRoot":"","sources":["../../src/utils/serializers.ts"],"names":[],"mappings":"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"}
|
|
File without changes
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
const assert = require("assert");
|
|
10
|
+
const mocha_1 = require("@testdeck/mocha");
|
|
11
|
+
const serializers_1 = require("./serializers");
|
|
12
|
+
const path = require("path");
|
|
13
|
+
const fs_1 = require("fs");
|
|
14
|
+
const TEST_FOLDER = __dirname + "/../../test/jsonutils/";
|
|
15
|
+
let UtilsTest = class UtilsTest {
|
|
16
|
+
fileJson() {
|
|
17
|
+
assert.deepStrictEqual(serializers_1.JSONUtils.loadFile(TEST_FOLDER + "test.json"), { test: "ok" });
|
|
18
|
+
assert.deepStrictEqual(serializers_1.YAMLUtils.loadFile(TEST_FOLDER + "test.json"), { test: "ok" });
|
|
19
|
+
assert.deepStrictEqual(serializers_1.FileUtils.load(TEST_FOLDER + "test.json"), { test: "ok" });
|
|
20
|
+
}
|
|
21
|
+
fileYml() {
|
|
22
|
+
assert.deepStrictEqual(serializers_1.JSONUtils.loadFile(TEST_FOLDER + "test.yml"), {
|
|
23
|
+
test: { ok: "plop" },
|
|
24
|
+
tab: ["ok", "item2"]
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
fileYaml() {
|
|
28
|
+
assert.strictEqual(serializers_1.JSONUtils.loadFile(TEST_FOLDER + "mdocs.yaml").length, 2);
|
|
29
|
+
}
|
|
30
|
+
circularJSON() {
|
|
31
|
+
let a = {
|
|
32
|
+
b: "test",
|
|
33
|
+
c: {},
|
|
34
|
+
__test: true
|
|
35
|
+
};
|
|
36
|
+
a.c.a = a;
|
|
37
|
+
assert.deepStrictEqual(serializers_1.JSONUtils.stringify(a), JSON.stringify({ b: "test", c: {} }, undefined, 2));
|
|
38
|
+
assert.deepStrictEqual(serializers_1.JSONUtils.stringify(a, (key, value) => {
|
|
39
|
+
if (key !== "b")
|
|
40
|
+
return value;
|
|
41
|
+
return undefined;
|
|
42
|
+
}, 3), JSON.stringify({ c: {} }, undefined, 3));
|
|
43
|
+
}
|
|
44
|
+
duplicatedJSON() {
|
|
45
|
+
let a = {
|
|
46
|
+
b: "test",
|
|
47
|
+
c: {
|
|
48
|
+
plop: "bouzouf"
|
|
49
|
+
},
|
|
50
|
+
__test: true
|
|
51
|
+
};
|
|
52
|
+
a.d = a.c;
|
|
53
|
+
assert.deepStrictEqual(serializers_1.JSONUtils.stringify(a), JSON.stringify({ b: "test", c: { plop: "bouzouf" }, d: { plop: "bouzouf" } }, undefined, 2));
|
|
54
|
+
}
|
|
55
|
+
writeJSON() {
|
|
56
|
+
let file = path.join(TEST_FOLDER, "writeTest.json");
|
|
57
|
+
serializers_1.JSONUtils.saveFile({ test: "plop" }, file);
|
|
58
|
+
assert.strictEqual((0, fs_1.readFileSync)(file).toString(), '{\n "test": "plop"\n}');
|
|
59
|
+
file = path.join(TEST_FOLDER, "writeTest.yaml");
|
|
60
|
+
serializers_1.JSONUtils.saveFile({ test: "plop" }, file);
|
|
61
|
+
assert.strictEqual((0, fs_1.readFileSync)(file).toString(), `test: plop\n`);
|
|
62
|
+
// Yaml alias
|
|
63
|
+
file = path.join(TEST_FOLDER, "writeTest.json");
|
|
64
|
+
serializers_1.YAMLUtils.saveFile({ test: "plop" }, file);
|
|
65
|
+
assert.strictEqual((0, fs_1.readFileSync)(file).toString(), '{\n "test": "plop"\n}');
|
|
66
|
+
// True implem
|
|
67
|
+
file = path.join(TEST_FOLDER, "writeTest.json");
|
|
68
|
+
serializers_1.FileUtils.save({ test: "plop" }, file);
|
|
69
|
+
assert.strictEqual((0, fs_1.readFileSync)(file).toString(), '{\n "test": "plop"\n}');
|
|
70
|
+
}
|
|
71
|
+
yaml() {
|
|
72
|
+
assert.strictEqual(serializers_1.YAMLUtils.stringify({ plop: "test" }), `plop: test
|
|
73
|
+
`);
|
|
74
|
+
assert.deepEqual(serializers_1.YAMLUtils.parse(`
|
|
75
|
+
plop: test
|
|
76
|
+
`), { plop: "test" });
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
__decorate([
|
|
80
|
+
(0, mocha_1.test)("LoadJSON File")
|
|
81
|
+
], UtilsTest.prototype, "fileJson", null);
|
|
82
|
+
__decorate([
|
|
83
|
+
(0, mocha_1.test)("LoadYAML File")
|
|
84
|
+
], UtilsTest.prototype, "fileYml", null);
|
|
85
|
+
__decorate([
|
|
86
|
+
(0, mocha_1.test)("LoadYAML Multiple Docs File")
|
|
87
|
+
], UtilsTest.prototype, "fileYaml", null);
|
|
88
|
+
__decorate([
|
|
89
|
+
(0, mocha_1.test)("CircularJSON")
|
|
90
|
+
], UtilsTest.prototype, "circularJSON", null);
|
|
91
|
+
__decorate([
|
|
92
|
+
(0, mocha_1.test)("DuplicateJSON")
|
|
93
|
+
], UtilsTest.prototype, "duplicatedJSON", null);
|
|
94
|
+
__decorate([
|
|
95
|
+
(0, mocha_1.test)("Write JSON/YAML")
|
|
96
|
+
], UtilsTest.prototype, "writeJSON", null);
|
|
97
|
+
__decorate([
|
|
98
|
+
(0, mocha_1.test)("YAML stringify")
|
|
99
|
+
], UtilsTest.prototype, "yaml", null);
|
|
100
|
+
UtilsTest = __decorate([
|
|
101
|
+
mocha_1.suite
|
|
102
|
+
], UtilsTest);
|
|
103
|
+
//# sourceMappingURL=serializers.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serializers.spec.js","sourceRoot":"","sources":["../../src/utils/serializers.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": "1.
|
|
3
|
+
"version": "1.1.1",
|
|
4
4
|
"description": "Expose API with Lambda",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"aws",
|
|
@@ -47,7 +47,6 @@
|
|
|
47
47
|
"devDependencies": {
|
|
48
48
|
"@istanbuljs/nyc-config-typescript": "^1.0.1",
|
|
49
49
|
"@testdeck/mocha": "^0.1.0",
|
|
50
|
-
"@types/express": "^4.17.8",
|
|
51
50
|
"@types/json-schema": "^7.0.3",
|
|
52
51
|
"@types/node": "^12.0.0",
|
|
53
52
|
"fs-extra": "^8.1.0",
|
|
@@ -79,6 +78,5 @@
|
|
|
79
78
|
"homepage": "https://webda.io",
|
|
80
79
|
"publishConfig": {
|
|
81
80
|
"access": "public"
|
|
82
|
-
}
|
|
83
|
-
"gitHead": "248a743f75a7f6402aa75c2668499f0ce9ae5da2"
|
|
81
|
+
}
|
|
84
82
|
}
|