@webda/core 2.0.0-beta.1 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/application.d.ts +9 -21
- package/lib/application.js +71 -84
- package/lib/application.js.map +1 -1
- package/lib/application.spec.js +121 -140
- package/lib/application.spec.js.map +1 -1
- package/lib/core.d.ts +86 -46
- package/lib/core.js +254 -316
- package/lib/core.js.map +1 -1
- package/lib/core.spec.js +326 -391
- package/lib/core.spec.js.map +1 -1
- package/lib/index.d.ts +49 -45
- package/lib/index.js +54 -67
- package/lib/index.js.map +1 -1
- package/lib/models/aclmodel.d.ts +2 -2
- package/lib/models/aclmodel.js +63 -90
- package/lib/models/aclmodel.js.map +1 -1
- package/lib/models/aclmodel.spec.js +127 -151
- package/lib/models/aclmodel.spec.js.map +1 -1
- package/lib/models/coremodel.d.ts +84 -11
- package/lib/models/coremodel.js +104 -103
- package/lib/models/coremodel.js.map +1 -1
- package/lib/models/coremodel.spec.js +91 -91
- package/lib/models/coremodel.spec.js.map +1 -1
- package/lib/models/deployment.js +1 -2
- package/lib/models/ident.d.ts +5 -3
- package/lib/models/ident.js +4 -9
- package/lib/models/ident.js.map +1 -1
- package/lib/models/ident.spec.js +9 -11
- package/lib/models/ident.spec.js.map +1 -1
- package/lib/models/ownermodel.d.ts +12 -2
- package/lib/models/ownermodel.js +54 -62
- package/lib/models/ownermodel.js.map +1 -1
- package/lib/models/ownermodel.spec.js +129 -152
- package/lib/models/ownermodel.spec.js.map +1 -1
- package/lib/models/rolemodel.d.ts +2 -2
- package/lib/models/rolemodel.js +24 -40
- package/lib/models/rolemodel.js.map +1 -1
- package/lib/models/rolemodel.spec.js +44 -61
- package/lib/models/rolemodel.spec.js.map +1 -1
- package/lib/models/user.d.ts +5 -5
- package/lib/models/user.js +3 -8
- package/lib/models/user.js.map +1 -1
- package/lib/models/user.spec.js +14 -16
- package/lib/models/user.spec.js.map +1 -1
- package/lib/queues/filequeue.d.ts +2 -2
- package/lib/queues/filequeue.js +72 -93
- package/lib/queues/filequeue.js.map +1 -1
- package/lib/queues/filequeue.spec.js +53 -70
- package/lib/queues/filequeue.spec.js.map +1 -1
- package/lib/queues/memoryqueue.d.ts +2 -2
- package/lib/queues/memoryqueue.js +37 -61
- package/lib/queues/memoryqueue.js.map +1 -1
- package/lib/queues/memoryqueue.spec.js +142 -165
- package/lib/queues/memoryqueue.spec.js.map +1 -1
- package/lib/queues/pubsubservice.d.ts +2 -2
- package/lib/queues/pubsubservice.js +3 -7
- package/lib/queues/pubsubservice.js.map +1 -1
- package/lib/queues/queue.spec.d.ts +1 -1
- package/lib/queues/queue.spec.js +42 -56
- package/lib/queues/queue.spec.js.map +1 -1
- package/lib/queues/queueservice.d.ts +4 -4
- package/lib/queues/queueservice.js +52 -67
- package/lib/queues/queueservice.js.map +1 -1
- package/lib/router.d.ts +7 -3
- package/lib/router.js +49 -48
- package/lib/router.js.map +1 -1
- package/lib/router.spec.js +64 -61
- package/lib/router.spec.js.map +1 -1
- package/lib/services/asyncevents.d.ts +2 -2
- package/lib/services/asyncevents.js +44 -64
- package/lib/services/asyncevents.js.map +1 -1
- package/lib/services/asyncevents.spec.js +81 -98
- package/lib/services/asyncevents.spec.js.map +1 -1
- package/lib/services/authentication.d.ts +28 -19
- package/lib/services/authentication.js +539 -571
- package/lib/services/authentication.js.map +1 -1
- package/lib/services/authentication.spec.js +411 -447
- package/lib/services/authentication.spec.js.map +1 -1
- package/lib/services/binary.d.ts +8 -6
- package/lib/services/binary.js +212 -244
- package/lib/services/binary.js.map +1 -1
- package/lib/services/binary.spec.d.ts +3 -3
- package/lib/services/binary.spec.js +390 -443
- package/lib/services/binary.spec.js.map +1 -1
- package/lib/services/cloudbinary.d.ts +3 -3
- package/lib/services/cloudbinary.js +46 -71
- package/lib/services/cloudbinary.js.map +1 -1
- package/lib/services/cloudbinary.spec.d.ts +3 -3
- package/lib/services/cloudbinary.spec.js +133 -162
- package/lib/services/cloudbinary.spec.js.map +1 -1
- package/lib/services/configuration.d.ts +6 -3
- package/lib/services/configuration.js +78 -103
- package/lib/services/configuration.js.map +1 -1
- package/lib/services/configuration.spec.js +63 -83
- package/lib/services/configuration.spec.js.map +1 -1
- package/lib/services/cron.d.ts +3 -2
- package/lib/services/cron.js +9 -13
- package/lib/services/cron.js.map +1 -1
- package/lib/services/cron.spec.js +18 -21
- package/lib/services/cron.spec.js.map +1 -1
- package/lib/services/cryptoservice.d.ts +258 -0
- package/lib/services/cryptoservice.js +312 -0
- package/lib/services/cryptoservice.js.map +1 -0
- package/lib/services/cryptoservice.spec.d.ts +1 -0
- package/lib/services/cryptoservice.spec.js +137 -0
- package/lib/services/cryptoservice.spec.js.map +1 -0
- package/lib/services/debugmailer.d.ts +1 -1
- package/lib/services/debugmailer.js +13 -34
- package/lib/services/debugmailer.js.map +1 -1
- package/lib/services/debugmailer.spec.js +16 -29
- package/lib/services/debugmailer.spec.js.map +1 -1
- package/lib/services/echo.d.ts +2 -2
- package/lib/services/echo.js +15 -31
- package/lib/services/echo.js.map +1 -1
- package/lib/services/echo.spec.js +27 -40
- package/lib/services/echo.spec.js.map +1 -1
- package/lib/services/filebinary.d.ts +15 -5
- package/lib/services/filebinary.js +171 -200
- package/lib/services/filebinary.js.map +1 -1
- package/lib/services/filebinary.spec.d.ts +2 -1
- package/lib/services/filebinary.spec.js +106 -117
- package/lib/services/filebinary.spec.js.map +1 -1
- package/lib/services/fileconfiguration.d.ts +2 -2
- package/lib/services/fileconfiguration.js +25 -43
- package/lib/services/fileconfiguration.js.map +1 -1
- package/lib/services/fileconfiguration.spec.js +79 -109
- package/lib/services/fileconfiguration.spec.js.map +1 -1
- package/lib/services/invitationservice.d.ts +9 -9
- package/lib/services/invitationservice.js +275 -313
- package/lib/services/invitationservice.js.map +1 -1
- package/lib/services/invitationservice.spec.js +442 -448
- package/lib/services/invitationservice.spec.js.map +1 -1
- package/lib/services/kubernetesconfiguration.d.ts +2 -2
- package/lib/services/kubernetesconfiguration.js +41 -59
- package/lib/services/kubernetesconfiguration.js.map +1 -1
- package/lib/services/kubernetesconfiguration.spec.js +80 -98
- package/lib/services/kubernetesconfiguration.spec.js.map +1 -1
- package/lib/services/mailer.d.ts +4 -4
- package/lib/services/mailer.js +62 -86
- package/lib/services/mailer.js.map +1 -1
- package/lib/services/mailer.spec.js +86 -127
- package/lib/services/mailer.spec.js.map +1 -1
- package/lib/services/notificationservice.d.ts +4 -4
- package/lib/services/notificationservice.js +23 -42
- package/lib/services/notificationservice.js.map +1 -1
- package/lib/services/notificationservice.spec.js +47 -73
- package/lib/services/notificationservice.spec.js.map +1 -1
- package/lib/services/oauth.d.ts +32 -6
- package/lib/services/oauth.js +73 -78
- package/lib/services/oauth.js.map +1 -1
- package/lib/services/oauth.spec.js +128 -147
- package/lib/services/oauth.spec.js.map +1 -1
- package/lib/services/proxy.d.ts +74 -0
- package/lib/services/proxy.js +126 -0
- package/lib/services/proxy.js.map +1 -0
- package/lib/services/proxy.spec.d.ts +1 -0
- package/lib/services/proxy.spec.js +59 -0
- package/lib/services/proxy.spec.js.map +1 -0
- package/lib/services/resource.d.ts +2 -2
- package/lib/services/resource.js +12 -18
- package/lib/services/resource.js.map +1 -1
- package/lib/services/resource.spec.js +67 -99
- package/lib/services/resource.spec.js.map +1 -1
- package/lib/services/service.d.ts +33 -7
- package/lib/services/service.js +74 -42
- package/lib/services/service.js.map +1 -1
- package/lib/services/service.spec.js +62 -67
- package/lib/services/service.spec.js.map +1 -1
- package/lib/services/version.d.ts +1 -1
- package/lib/services/version.js +3 -8
- package/lib/services/version.js.map +1 -1
- package/lib/services/version.spec.js +11 -24
- package/lib/services/version.spec.js.map +1 -1
- package/lib/stores/aggregator.d.ts +3 -3
- package/lib/stores/aggregator.js +37 -57
- package/lib/stores/aggregator.js.map +1 -1
- package/lib/stores/file.d.ts +3 -3
- package/lib/stores/file.js +93 -131
- package/lib/stores/file.js.map +1 -1
- package/lib/stores/file.spec.d.ts +2 -2
- package/lib/stores/file.spec.js +261 -289
- package/lib/stores/file.spec.js.map +1 -1
- package/lib/stores/mapper.d.ts +4 -4
- package/lib/stores/mapper.js +112 -137
- package/lib/stores/mapper.js.map +1 -1
- package/lib/stores/mapper.spec.js +131 -150
- package/lib/stores/mapper.spec.js.map +1 -1
- package/lib/stores/memory.d.ts +67 -6
- package/lib/stores/memory.js +155 -117
- package/lib/stores/memory.js.map +1 -1
- package/lib/stores/memory.spec.d.ts +3 -2
- package/lib/stores/memory.spec.js +127 -105
- package/lib/stores/memory.spec.js.map +1 -1
- package/lib/stores/store.d.ts +35 -15
- package/lib/stores/store.js +839 -821
- package/lib/stores/store.js.map +1 -1
- package/lib/stores/store.spec.d.ts +6 -4
- package/lib/stores/store.spec.js +627 -647
- package/lib/stores/store.spec.js.map +1 -1
- package/lib/stores/webdaql/WebdaQLLexer.d.ts +4 -4
- package/lib/stores/webdaql/WebdaQLLexer.js +9 -13
- package/lib/stores/webdaql/WebdaQLLexer.js.map +1 -1
- package/lib/stores/webdaql/WebdaQLParserLexer.d.ts +4 -4
- package/lib/stores/webdaql/WebdaQLParserLexer.js +9 -13
- package/lib/stores/webdaql/WebdaQLParserLexer.js.map +1 -1
- package/lib/stores/webdaql/WebdaQLParserListener.d.ts +2 -2
- package/lib/stores/webdaql/WebdaQLParserListener.js +1 -2
- package/lib/stores/webdaql/WebdaQLParserListener.js.map +1 -1
- package/lib/stores/webdaql/WebdaQLParserParser.d.ts +10 -10
- package/lib/stores/webdaql/WebdaQLParserParser.js +62 -91
- package/lib/stores/webdaql/WebdaQLParserParser.js.map +1 -1
- package/lib/stores/webdaql/WebdaQLParserVisitor.d.ts +2 -2
- package/lib/stores/webdaql/WebdaQLParserVisitor.js +1 -2
- package/lib/stores/webdaql/WebdaQLParserVisitor.js.map +1 -1
- package/lib/stores/webdaql/query.d.ts +4 -5
- package/lib/stores/webdaql/query.js +16 -19
- package/lib/stores/webdaql/query.js.map +1 -1
- package/lib/stores/webdaql/query.spec.js +30 -32
- package/lib/stores/webdaql/query.spec.js.map +1 -1
- package/lib/test.d.ts +3 -3
- package/lib/test.js +74 -94
- package/lib/test.js.map +1 -1
- package/lib/unpackedapplication.d.ts +1 -1
- package/lib/unpackedapplication.js +25 -31
- package/lib/unpackedapplication.js.map +1 -1
- package/lib/utils/abstractdeployer.js +1 -5
- package/lib/utils/abstractdeployer.js.map +1 -1
- package/lib/utils/abstractdeployer.spec.js +6 -8
- package/lib/utils/abstractdeployer.spec.js.map +1 -1
- package/lib/utils/context.d.ts +61 -29
- package/lib/utils/context.js +133 -127
- package/lib/utils/context.js.map +1 -1
- package/lib/utils/context.spec.js +147 -153
- package/lib/utils/context.spec.js.map +1 -1
- package/lib/utils/cookie.d.ts +66 -45
- package/lib/utils/cookie.js +69 -158
- package/lib/utils/cookie.js.map +1 -1
- package/lib/utils/cookie.spec.js +220 -238
- package/lib/utils/cookie.spec.js.map +1 -1
- package/lib/utils/esm.d.ts +4 -0
- package/lib/utils/esm.js +10 -0
- package/lib/utils/esm.js.map +1 -0
- package/lib/utils/httpcontext.d.ts +37 -9
- package/lib/utils/httpcontext.js +86 -57
- package/lib/utils/httpcontext.js.map +1 -1
- package/lib/utils/httpcontext.spec.js +37 -48
- package/lib/utils/httpcontext.spec.js.map +1 -1
- package/lib/utils/logger.d.ts +2 -2
- package/lib/utils/logger.js +15 -28
- package/lib/utils/logger.js.map +1 -1
- package/lib/utils/logger.spec.js +9 -11
- package/lib/utils/logger.spec.js.map +1 -1
- package/lib/utils/serializers.js +17 -20
- package/lib/utils/serializers.js.map +1 -1
- package/lib/utils/serializers.spec.js +43 -44
- package/lib/utils/serializers.spec.js.map +1 -1
- package/lib/utils/session.d.ts +120 -0
- package/lib/utils/session.js +155 -0
- package/lib/utils/session.js.map +1 -0
- package/lib/utils/session.spec.d.ts +1 -0
- package/lib/utils/session.spec.js +66 -0
- package/lib/utils/session.spec.js.map +1 -0
- package/lib/utils/waiter.d.ts +1 -1
- package/lib/utils/waiter.js +32 -52
- package/lib/utils/waiter.js.map +1 -1
- package/lib/utils/waiter.spec.js +75 -92
- package/lib/utils/waiter.spec.js.map +1 -1
- package/package.json +22 -14
- package/test/config-invitation.json +1 -3
- package/test/config.json +3 -3
- package/test/config.old.json +1 -2
- package/test/moddas/annotatedservice.js +5 -5
- package/test/moddas/debugmailer.js +2 -3
- package/test/moddas/fakeservice.js +2 -3
- package/test/moddas/voidstore.js +6 -4
- package/test/models/ident.js +2 -6
- package/test/models/task.js +3 -7
- package/test/package.json +2 -1
- package/webda.module.json +956 -188
package/lib/utils/httpcontext.js
CHANGED
|
@@ -1,17 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.HttpContext = void 0;
|
|
13
|
-
const cookie_1 = require("cookie");
|
|
14
|
-
const stream_1 = require("stream");
|
|
1
|
+
import { parse as cookieParse } from "cookie";
|
|
2
|
+
import { Readable } from "stream";
|
|
15
3
|
/**
|
|
16
4
|
* The HttpContext
|
|
17
5
|
*
|
|
@@ -21,7 +9,7 @@ const stream_1 = require("stream");
|
|
|
21
9
|
*
|
|
22
10
|
* @category CoreFeatures
|
|
23
11
|
*/
|
|
24
|
-
class HttpContext {
|
|
12
|
+
export class HttpContext {
|
|
25
13
|
constructor(hostname, method, uri, protocol = "http", port = "80", headers = {}) {
|
|
26
14
|
/**
|
|
27
15
|
* URI prefix in case it is exposed through something that prefix the uri
|
|
@@ -40,16 +28,14 @@ class HttpContext {
|
|
|
40
28
|
// @ts-ignore
|
|
41
29
|
this.protocol = protocol + ":";
|
|
42
30
|
this.port = port.toString();
|
|
43
|
-
this.headers =
|
|
44
|
-
for (let i in
|
|
31
|
+
this.headers = {};
|
|
32
|
+
for (let i in headers) {
|
|
45
33
|
if (i.toLowerCase() === "cookie") {
|
|
46
|
-
this.cookies = Array.isArray(
|
|
47
|
-
?
|
|
48
|
-
: (
|
|
49
|
-
}
|
|
50
|
-
if (i.toLowerCase() !== i) {
|
|
51
|
-
this.headers[i.toLowerCase()] = this.headers[i];
|
|
34
|
+
this.cookies = Array.isArray(headers[i])
|
|
35
|
+
? headers[i].map(c => cookieParse(c))
|
|
36
|
+
: cookieParse(headers[i]);
|
|
52
37
|
}
|
|
38
|
+
this.headers[i.toLowerCase()] = headers[i];
|
|
53
39
|
}
|
|
54
40
|
let portUrl = "";
|
|
55
41
|
if (port !== undefined &&
|
|
@@ -62,6 +48,19 @@ class HttpContext {
|
|
|
62
48
|
this.origin = this.protocol + "//" + this.hostname + portUrl;
|
|
63
49
|
this.host = this.hostname + portUrl;
|
|
64
50
|
}
|
|
51
|
+
/**
|
|
52
|
+
* Set the client ip
|
|
53
|
+
*/
|
|
54
|
+
setClientIp(ip) {
|
|
55
|
+
this.clientIp = ip;
|
|
56
|
+
return this;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Get the client ip
|
|
60
|
+
*/
|
|
61
|
+
getClientIp() {
|
|
62
|
+
return this.clientIp;
|
|
63
|
+
}
|
|
65
64
|
/**
|
|
66
65
|
*
|
|
67
66
|
* @see https://developer.mozilla.org/en-US/docs/Web/API/URL/href
|
|
@@ -158,49 +157,74 @@ class HttpContext {
|
|
|
158
157
|
return this.protocol;
|
|
159
158
|
}
|
|
160
159
|
/**
|
|
161
|
-
* Get
|
|
160
|
+
* Get the raw body as string
|
|
161
|
+
*
|
|
162
|
+
* @param limit the size of readable request
|
|
163
|
+
* @param timeout the time to read the request
|
|
164
|
+
* @param encoding to analyze
|
|
162
165
|
* @returns
|
|
163
166
|
*/
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
let timeoutId = setTimeout(() => {
|
|
171
|
-
reject("Request timeout");
|
|
172
|
-
}, timeout);
|
|
173
|
-
req.on("readable", () => {
|
|
174
|
-
let chunk = req.read();
|
|
175
|
-
if (chunk !== null) {
|
|
176
|
-
if (chunk.length + body.length > limit) {
|
|
177
|
-
clearTimeout(timeoutId);
|
|
178
|
-
reject("Request oversized");
|
|
179
|
-
}
|
|
180
|
-
body += chunk;
|
|
181
|
-
}
|
|
182
|
-
});
|
|
183
|
-
req.on("end", () => {
|
|
184
|
-
clearTimeout(timeoutId);
|
|
185
|
-
// Cache body as stream won't be able to be read twice
|
|
186
|
-
this.body = body;
|
|
187
|
-
resolve(body);
|
|
188
|
-
});
|
|
189
|
-
});
|
|
167
|
+
async getRawBodyAsString(limit = 1024 * 1024 * 10, timeout = 60000, encoding) {
|
|
168
|
+
// Get charset from header
|
|
169
|
+
if (!encoding) {
|
|
170
|
+
let match = this.getUniqueHeader("content-type", "charset=utf-8").match(/charset=([^;\s]+)/);
|
|
171
|
+
if (match) {
|
|
172
|
+
encoding = match[1].trim();
|
|
190
173
|
}
|
|
191
174
|
else {
|
|
192
|
-
|
|
175
|
+
encoding = "utf-8";
|
|
193
176
|
}
|
|
194
|
-
}
|
|
177
|
+
}
|
|
178
|
+
if (encoding !== "utf-8") {
|
|
179
|
+
throw new Error("Only UTF-8 is currently managed: https://github.com/loopingz/webda.io/issues/221");
|
|
180
|
+
}
|
|
181
|
+
return ((await this.getRawBody(limit, timeout)) || Buffer.from("")).toString(encoding);
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Get request body
|
|
185
|
+
*
|
|
186
|
+
* @param limit the size of readable request
|
|
187
|
+
* @param timeout the time to read the request
|
|
188
|
+
* @returns
|
|
189
|
+
*/
|
|
190
|
+
async getRawBody(limit = 1024 * 1024 * 10, timeout = 60000) {
|
|
191
|
+
if (this.body instanceof Readable) {
|
|
192
|
+
return new Promise((resolve, reject) => {
|
|
193
|
+
let req = this.body;
|
|
194
|
+
let body = [];
|
|
195
|
+
let timeoutId = setTimeout(() => {
|
|
196
|
+
reject("Request timeout");
|
|
197
|
+
}, timeout);
|
|
198
|
+
req.on("readable", () => {
|
|
199
|
+
let chunk = req.read();
|
|
200
|
+
if (chunk !== null) {
|
|
201
|
+
if (chunk.length + body.length > limit) {
|
|
202
|
+
clearTimeout(timeoutId);
|
|
203
|
+
reject("Request oversized");
|
|
204
|
+
}
|
|
205
|
+
body.push(chunk);
|
|
206
|
+
}
|
|
207
|
+
});
|
|
208
|
+
req.on("end", () => {
|
|
209
|
+
clearTimeout(timeoutId);
|
|
210
|
+
// Cache body as stream won't be able to be read twice
|
|
211
|
+
this.body = Buffer.concat(body);
|
|
212
|
+
resolve(this.body);
|
|
213
|
+
});
|
|
214
|
+
});
|
|
215
|
+
}
|
|
216
|
+
else {
|
|
217
|
+
return this.body;
|
|
218
|
+
}
|
|
195
219
|
}
|
|
196
220
|
/**
|
|
197
221
|
* Get the body as stream
|
|
198
222
|
*/
|
|
199
223
|
getRawStream() {
|
|
200
|
-
if (this.body instanceof
|
|
224
|
+
if (this.body instanceof Readable) {
|
|
201
225
|
return this.body;
|
|
202
226
|
}
|
|
203
|
-
return
|
|
227
|
+
return Readable.from(this.body || Buffer.from(""));
|
|
204
228
|
}
|
|
205
229
|
/**
|
|
206
230
|
* Get HTTP Headers
|
|
@@ -233,11 +257,17 @@ class HttpContext {
|
|
|
233
257
|
* @param body
|
|
234
258
|
*/
|
|
235
259
|
setBody(body) {
|
|
236
|
-
if (body instanceof
|
|
260
|
+
if (body instanceof Readable || body instanceof Buffer) {
|
|
237
261
|
this.body = body;
|
|
238
262
|
}
|
|
263
|
+
else if (typeof body === "string") {
|
|
264
|
+
this.body = Buffer.from(body);
|
|
265
|
+
}
|
|
266
|
+
else if (body === undefined) {
|
|
267
|
+
this.body = undefined;
|
|
268
|
+
}
|
|
239
269
|
else {
|
|
240
|
-
this.body = JSON.stringify(body);
|
|
270
|
+
this.body = Buffer.from(JSON.stringify(body));
|
|
241
271
|
}
|
|
242
272
|
}
|
|
243
273
|
/**
|
|
@@ -275,5 +305,4 @@ class HttpContext {
|
|
|
275
305
|
return `${this.protocol}//${this.hostname}${uri}`;
|
|
276
306
|
}
|
|
277
307
|
}
|
|
278
|
-
exports.HttpContext = HttpContext;
|
|
279
308
|
//# sourceMappingURL=httpcontext.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"httpcontext.js","sourceRoot":"","sources":["../../src/utils/httpcontext.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"httpcontext.js","sourceRoot":"","sources":["../../src/utils/httpcontext.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,32 +1,19 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
2
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
3
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
4
|
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
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
6
|
};
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
14
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
15
|
-
});
|
|
16
|
-
};
|
|
17
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
-
exports.FakeReadable = void 0;
|
|
19
|
-
const mocha_1 = require("@testdeck/mocha");
|
|
20
|
-
const assert = require("assert");
|
|
21
|
-
const stream_1 = require("stream");
|
|
22
|
-
const httpcontext_1 = require("./httpcontext");
|
|
23
|
-
class FakeReadable extends stream_1.Readable {
|
|
7
|
+
import { suite, test } from "@testdeck/mocha";
|
|
8
|
+
import * as assert from "assert";
|
|
9
|
+
import { Readable } from "stream";
|
|
10
|
+
import { HttpContext } from "./httpcontext.js";
|
|
11
|
+
export class FakeReadable extends Readable {
|
|
24
12
|
_read() { }
|
|
25
13
|
}
|
|
26
|
-
exports.FakeReadable = FakeReadable;
|
|
27
14
|
let HttpContextTest = class HttpContextTest {
|
|
28
15
|
lowerCaseHeader() {
|
|
29
|
-
let ctx = new
|
|
16
|
+
let ctx = new HttpContext("test.webda.io", "GET", "/test", "http", 80, {
|
|
30
17
|
"X-Test": "weBda",
|
|
31
18
|
other: ["head1", "head2"],
|
|
32
19
|
cookie: ["", ""]
|
|
@@ -36,47 +23,49 @@ let HttpContextTest = class HttpContextTest {
|
|
|
36
23
|
assert.strictEqual(ctx.getPort(), "");
|
|
37
24
|
assert.strictEqual(ctx.getUniqueHeader("other"), "head2");
|
|
38
25
|
}
|
|
39
|
-
stream() {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
26
|
+
async stream() {
|
|
27
|
+
let ctx = new HttpContext("test.webda.io", "GET", "/test", "http", 80, { "X-Test": "weBda" });
|
|
28
|
+
ctx.setBody("Test");
|
|
29
|
+
// Next line is just for cov
|
|
30
|
+
ctx.setClientIp("127.0.0.1").getClientIp();
|
|
31
|
+
let stream = ctx.getRawStream();
|
|
32
|
+
ctx.setBody(stream);
|
|
33
|
+
ctx.getRawStream();
|
|
34
|
+
assert.strictEqual(await ctx.getRawBodyAsString(), "Test");
|
|
35
|
+
// @ts-ignore
|
|
36
|
+
ctx.getHeaders()["content-type"] = "application/json";
|
|
37
|
+
assert.strictEqual(await ctx.getRawBodyAsString(), "Test");
|
|
38
|
+
// @ts-ignore
|
|
39
|
+
ctx.getHeaders()["content-type"] = "application/json; charset=iso-8859-1";
|
|
40
|
+
await assert.rejects(() => ctx.getRawBodyAsString(), /Only UTF-8 is currently managed/);
|
|
48
41
|
}
|
|
49
|
-
oversize() {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
yield assert.rejects(() => ctx.getRawBody(128), /Request oversized/);
|
|
56
|
-
});
|
|
42
|
+
async oversize() {
|
|
43
|
+
let ctx = new HttpContext("test.webda.io", "GET", "/test", "http", 80, { "X-Test": "weBda" });
|
|
44
|
+
ctx.setBody("Test".repeat(1024));
|
|
45
|
+
let stream = ctx.getRawStream();
|
|
46
|
+
ctx.setBody(stream);
|
|
47
|
+
await assert.rejects(() => ctx.getRawBody(128), /Request oversized/);
|
|
57
48
|
}
|
|
58
|
-
timeout() {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
yield assert.rejects(() => ctx.getRawBody(undefined, 100), /Request timeout/);
|
|
64
|
-
});
|
|
49
|
+
async timeout() {
|
|
50
|
+
let ctx = new HttpContext("test.webda.io", "GET", "/test", "http", 80, { "X-Test": "weBda" });
|
|
51
|
+
let str = new FakeReadable();
|
|
52
|
+
ctx.setBody(str);
|
|
53
|
+
await assert.rejects(() => ctx.getRawBody(undefined, 100), /Request timeout/);
|
|
65
54
|
}
|
|
66
55
|
};
|
|
67
56
|
__decorate([
|
|
68
|
-
|
|
57
|
+
test
|
|
69
58
|
], HttpContextTest.prototype, "lowerCaseHeader", null);
|
|
70
59
|
__decorate([
|
|
71
|
-
|
|
60
|
+
test
|
|
72
61
|
], HttpContextTest.prototype, "stream", null);
|
|
73
62
|
__decorate([
|
|
74
|
-
|
|
63
|
+
test
|
|
75
64
|
], HttpContextTest.prototype, "oversize", null);
|
|
76
65
|
__decorate([
|
|
77
|
-
|
|
66
|
+
test
|
|
78
67
|
], HttpContextTest.prototype, "timeout", null);
|
|
79
68
|
HttpContextTest = __decorate([
|
|
80
|
-
|
|
69
|
+
suite
|
|
81
70
|
], HttpContextTest);
|
|
82
71
|
//# sourceMappingURL=httpcontext.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"httpcontext.spec.js","sourceRoot":"","sources":["../../src/utils/httpcontext.spec.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"httpcontext.spec.js","sourceRoot":"","sources":["../../src/utils/httpcontext.spec.ts"],"names":[],"mappings":"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"}
|
package/lib/utils/logger.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ConsoleLogger, Logger as WorkoutLogger, MemoryLogger, WorkerLogLevel, WorkerOutput } from "@webda/workout";
|
|
2
|
-
import { Core } from "../core";
|
|
3
|
-
import { Service, ServiceParameters } from "../services/service";
|
|
2
|
+
import { Core } from "../core.js";
|
|
3
|
+
import { Service, ServiceParameters } from "../services/service.js";
|
|
4
4
|
export declare class LoggerServiceParameters extends ServiceParameters {
|
|
5
5
|
/**
|
|
6
6
|
* Specify the log level of this service
|
package/lib/utils/logger.js
CHANGED
|
@@ -1,39 +1,32 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const workout_1 = require("@webda/workout");
|
|
5
|
-
const service_1 = require("../services/service");
|
|
6
|
-
class LoggerServiceParameters extends service_1.ServiceParameters {
|
|
1
|
+
import { ConsoleLogger, FileLogger, MemoryLogger } from "@webda/workout";
|
|
2
|
+
import { Service, ServiceParameters } from "../services/service.js";
|
|
3
|
+
export class LoggerServiceParameters extends ServiceParameters {
|
|
7
4
|
/**
|
|
8
5
|
* @inheritdoc
|
|
9
6
|
*/
|
|
10
7
|
constructor(params) {
|
|
11
|
-
var _a;
|
|
12
8
|
super(params);
|
|
13
9
|
// Use the environment variable or fallback to INFO
|
|
14
|
-
|
|
10
|
+
this.logLevel ?? (this.logLevel = process.env["LOG_LEVEL"] || "INFO");
|
|
15
11
|
}
|
|
16
12
|
}
|
|
17
|
-
exports.LoggerServiceParameters = LoggerServiceParameters;
|
|
18
13
|
/**
|
|
19
14
|
* LoggerService is useful for inheritance
|
|
20
15
|
*/
|
|
21
|
-
class LoggerService extends
|
|
16
|
+
export class LoggerService extends Service {
|
|
22
17
|
}
|
|
23
|
-
|
|
24
|
-
class MemoryLoggerServiceParameters extends LoggerServiceParameters {
|
|
18
|
+
export class MemoryLoggerServiceParameters extends LoggerServiceParameters {
|
|
25
19
|
}
|
|
26
|
-
exports.MemoryLoggerServiceParameters = MemoryLoggerServiceParameters;
|
|
27
20
|
/**
|
|
28
21
|
* Store logs within memory
|
|
29
22
|
*
|
|
30
23
|
* Useful for test and other last logs
|
|
31
24
|
* @WebdaModda Webda/MemoryLogger
|
|
32
25
|
*/
|
|
33
|
-
class MemoryLoggerService extends LoggerService {
|
|
26
|
+
export class MemoryLoggerService extends LoggerService {
|
|
34
27
|
constructor(webda, name, params) {
|
|
35
28
|
super(webda, name, params);
|
|
36
|
-
this.workoutLogger = new
|
|
29
|
+
this.workoutLogger = new MemoryLogger(webda.getWorkerOutput(), this.parameters.logLevel, this.parameters.limit);
|
|
37
30
|
}
|
|
38
31
|
/**
|
|
39
32
|
* @inheritdoc
|
|
@@ -42,10 +35,8 @@ class MemoryLoggerService extends LoggerService {
|
|
|
42
35
|
return new MemoryLoggerServiceParameters(params);
|
|
43
36
|
}
|
|
44
37
|
}
|
|
45
|
-
|
|
46
|
-
class ConsoleLoggerServiceParameters extends LoggerServiceParameters {
|
|
38
|
+
export class ConsoleLoggerServiceParameters extends LoggerServiceParameters {
|
|
47
39
|
}
|
|
48
|
-
exports.ConsoleLoggerServiceParameters = ConsoleLoggerServiceParameters;
|
|
49
40
|
/**
|
|
50
41
|
* Log to the console
|
|
51
42
|
*
|
|
@@ -54,10 +45,10 @@ exports.ConsoleLoggerServiceParameters = ConsoleLoggerServiceParameters;
|
|
|
54
45
|
* @see @webda/workout.ConsoleLogger
|
|
55
46
|
* @WebdaModda ConsoleLogger
|
|
56
47
|
*/
|
|
57
|
-
class ConsoleLoggerService extends LoggerService {
|
|
48
|
+
export class ConsoleLoggerService extends LoggerService {
|
|
58
49
|
constructor(webda, name, params) {
|
|
59
50
|
super(webda, name, params);
|
|
60
|
-
this.workoutLogger = new
|
|
51
|
+
this.workoutLogger = new ConsoleLogger(webda.getWorkerOutput(), this.parameters.logLevel, this.parameters.format);
|
|
61
52
|
}
|
|
62
53
|
/**
|
|
63
54
|
* @inheritdoc
|
|
@@ -66,10 +57,8 @@ class ConsoleLoggerService extends LoggerService {
|
|
|
66
57
|
return new ConsoleLoggerServiceParameters(params);
|
|
67
58
|
}
|
|
68
59
|
}
|
|
69
|
-
|
|
70
|
-
class FileLoggerServiceParameters extends LoggerServiceParameters {
|
|
60
|
+
export class FileLoggerServiceParameters extends LoggerServiceParameters {
|
|
71
61
|
}
|
|
72
|
-
exports.FileLoggerServiceParameters = FileLoggerServiceParameters;
|
|
73
62
|
/**
|
|
74
63
|
* Save logs into a file
|
|
75
64
|
*
|
|
@@ -78,10 +67,10 @@ exports.FileLoggerServiceParameters = FileLoggerServiceParameters;
|
|
|
78
67
|
* @see `@webda/workout FileLogger`
|
|
79
68
|
* @WebdaModda FileLogger
|
|
80
69
|
*/
|
|
81
|
-
class FileLoggerService extends LoggerService {
|
|
70
|
+
export class FileLoggerService extends LoggerService {
|
|
82
71
|
constructor(webda, name, params) {
|
|
83
72
|
super(webda, name, params);
|
|
84
|
-
this.workoutLogger = new
|
|
73
|
+
this.workoutLogger = new FileLogger(webda.getWorkerOutput(), this.parameters.logLevel, this.parameters.file, this.parameters.sizeLimit, this.parameters.format);
|
|
85
74
|
}
|
|
86
75
|
/**
|
|
87
76
|
* @inheritdoc
|
|
@@ -90,11 +79,10 @@ class FileLoggerService extends LoggerService {
|
|
|
90
79
|
return new FileLoggerServiceParameters(params);
|
|
91
80
|
}
|
|
92
81
|
}
|
|
93
|
-
exports.FileLoggerService = FileLoggerService;
|
|
94
82
|
/**
|
|
95
83
|
*
|
|
96
84
|
*/
|
|
97
|
-
class Logger {
|
|
85
|
+
export class Logger {
|
|
98
86
|
constructor(output, clazz) {
|
|
99
87
|
this.output = output;
|
|
100
88
|
this.clazz = clazz;
|
|
@@ -127,5 +115,4 @@ class Logger {
|
|
|
127
115
|
this.output.setTitle(title);
|
|
128
116
|
}
|
|
129
117
|
}
|
|
130
|
-
exports.Logger = Logger;
|
|
131
118
|
//# sourceMappingURL=logger.js.map
|
package/lib/utils/logger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"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"}
|
package/lib/utils/logger.spec.js
CHANGED
|
@@ -1,15 +1,13 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
2
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
3
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
4
|
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
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
6
|
};
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
let LoggerTest = class LoggerTest extends test_1.WebdaTest {
|
|
7
|
+
import { suite, test } from "@testdeck/mocha";
|
|
8
|
+
import { WebdaTest } from "../test.js";
|
|
9
|
+
import { FileLoggerService, Logger } from "./logger.js";
|
|
10
|
+
let LoggerTest = class LoggerTest extends WebdaTest {
|
|
13
11
|
testLogger() {
|
|
14
12
|
let output = {
|
|
15
13
|
log: (...args) => { },
|
|
@@ -21,7 +19,7 @@ let LoggerTest = class LoggerTest extends test_1.WebdaTest {
|
|
|
21
19
|
updateProgress: (...args) => { },
|
|
22
20
|
setTitle: (...args) => { }
|
|
23
21
|
};
|
|
24
|
-
let logger = new
|
|
22
|
+
let logger = new Logger(output, "plop");
|
|
25
23
|
logger.log("DEBUG", "test");
|
|
26
24
|
logger.logGroupOpen("bouzouf");
|
|
27
25
|
logger.logProgressStart("test", 100, "plop");
|
|
@@ -32,16 +30,16 @@ let LoggerTest = class LoggerTest extends test_1.WebdaTest {
|
|
|
32
30
|
logger.logTitle("MyTitle");
|
|
33
31
|
}
|
|
34
32
|
fileLogger() {
|
|
35
|
-
let logger = new
|
|
33
|
+
let logger = new FileLoggerService(this.webda, "flogger", {});
|
|
36
34
|
}
|
|
37
35
|
};
|
|
38
36
|
__decorate([
|
|
39
|
-
|
|
37
|
+
test
|
|
40
38
|
], LoggerTest.prototype, "testLogger", null);
|
|
41
39
|
__decorate([
|
|
42
|
-
|
|
40
|
+
test
|
|
43
41
|
], LoggerTest.prototype, "fileLogger", null);
|
|
44
42
|
LoggerTest = __decorate([
|
|
45
|
-
|
|
43
|
+
suite
|
|
46
44
|
], LoggerTest);
|
|
47
45
|
//# sourceMappingURL=logger.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.spec.js","sourceRoot":"","sources":["../../src/utils/logger.spec.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"logger.spec.js","sourceRoot":"","sources":["../../src/utils/logger.spec.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGrD,IAAM,UAAU,GAAhB,MAAM,UAAW,SAAQ,SAAS;IAEhC,UAAU;QACR,IAAI,MAAM,GAAQ;YAChB,GAAG,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,GAAE,CAAC;YACpB,cAAc,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,GAAE,CAAC;YAC/B,SAAS,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,GAAE,CAAC;YAC1B,UAAU,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,GAAE,CAAC;YAC3B,aAAa,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,GAAE,CAAC;YAC9B,iBAAiB,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,GAAE,CAAC;YAClC,cAAc,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,GAAE,CAAC;YAC/B,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,GAAE,CAAC;SAC1B,CAAC;QACF,IAAI,MAAM,GAAG,IAAI,MAAM,CAAe,MAAM,EAAE,MAAM,CAAC,CAAC;QACtD,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC5B,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QAC/B,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QAC7C,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;QAC1C,MAAM,CAAC,iBAAiB,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QACrC,MAAM,CAAC,oBAAoB,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QACxC,MAAM,CAAC,aAAa,EAAE,CAAC;QACvB,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAC7B,CAAC;IAGD,UAAU;QACR,IAAI,MAAM,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;IAChE,CAAC;CACF,CAAA;AA1BC;IADC,IAAI;4CAqBJ;AAGD;IADC,IAAI;4CAGJ;AA3BG,UAAU;IADf,KAAK;GACA,UAAU,CA4Bf"}
|