@toa.io/bindings.http 1.0.0-alpha.320 → 1.0.0-alpha.321
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/package.json +4 -4
- package/transpiled/Server.js +37 -3
- package/transpiled/Server.js.map +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@toa.io/bindings.http",
|
|
3
|
-
"version": "1.0.0-alpha.
|
|
3
|
+
"version": "1.0.0-alpha.321",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Toa HTTP Binding",
|
|
6
6
|
"author": "temich <tema.gurtovoy@gmail.com>",
|
|
@@ -24,13 +24,13 @@
|
|
|
24
24
|
"main": "transpiled/index.js",
|
|
25
25
|
"types": "transpiled/index.d.ts",
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@toa.io/core": "1.0.0-alpha.
|
|
28
|
-
"@toa.io/definitions": "1.0.0-alpha.
|
|
27
|
+
"@toa.io/core": "1.0.0-alpha.321",
|
|
28
|
+
"@toa.io/definitions": "1.0.0-alpha.321",
|
|
29
29
|
"@toa.io/generic": "1.0.0-alpha.311",
|
|
30
30
|
"openspan": "1.0.0-alpha.305"
|
|
31
31
|
},
|
|
32
32
|
"scripts": {
|
|
33
33
|
"transpile": "tsc"
|
|
34
34
|
},
|
|
35
|
-
"gitHead": "
|
|
35
|
+
"gitHead": "fa850e861a0c748d7364ccf7c8a09ce26973fc04"
|
|
36
36
|
}
|
package/transpiled/Server.js
CHANGED
|
@@ -43,19 +43,20 @@ export class Server extends Connector {
|
|
|
43
43
|
}
|
|
44
44
|
listener(request, response) {
|
|
45
45
|
const invoke = request.method === 'POST' ? this.routes.get(request.url ?? '') : undefined;
|
|
46
|
-
if (invoke
|
|
46
|
+
if (typeof invoke !== 'function') {
|
|
47
47
|
response.writeHead(404);
|
|
48
48
|
response.end();
|
|
49
49
|
return;
|
|
50
50
|
}
|
|
51
51
|
const header = request.headers[HEADER];
|
|
52
52
|
const path = request.headers[PATH];
|
|
53
|
-
|
|
53
|
+
const envelope = placed(path) ? parse(header) : null;
|
|
54
|
+
// thrown from here, a request that is not a call would take the process down with it
|
|
55
|
+
if (envelope === null) {
|
|
54
56
|
response.writeHead(400);
|
|
55
57
|
response.end();
|
|
56
58
|
return;
|
|
57
59
|
}
|
|
58
|
-
const envelope = JSON.parse(header);
|
|
59
60
|
attach(envelope, path, request);
|
|
60
61
|
invoke(envelope)
|
|
61
62
|
.then(async (reply) => await write(response, reply))
|
|
@@ -67,4 +68,37 @@ export class Server extends Connector {
|
|
|
67
68
|
});
|
|
68
69
|
}
|
|
69
70
|
}
|
|
71
|
+
/**
|
|
72
|
+
* Where a caller took the stream from, as `detach` names it: a property, or its `stream`. Any
|
|
73
|
+
* other path is not one a caller makes, and one through `__proto__` would write the stream into
|
|
74
|
+
* every object of the process.
|
|
75
|
+
*/
|
|
76
|
+
function placed(path) {
|
|
77
|
+
if (typeof path !== 'string')
|
|
78
|
+
return false;
|
|
79
|
+
const [key, nested, ...rest] = path.split('.');
|
|
80
|
+
return (key !== '' &&
|
|
81
|
+
!FORBIDDEN.has(key) &&
|
|
82
|
+
(nested === undefined || nested === 'stream') &&
|
|
83
|
+
rest.length === 0);
|
|
84
|
+
}
|
|
85
|
+
const FORBIDDEN = new Set(['__proto__', 'constructor', 'prototype']);
|
|
86
|
+
/** The call a header carries, or `null` where it carries none: what `attach` can put a stream in. */
|
|
87
|
+
function parse(header) {
|
|
88
|
+
if (typeof header !== 'string')
|
|
89
|
+
return null;
|
|
90
|
+
let envelope;
|
|
91
|
+
try {
|
|
92
|
+
envelope = JSON.parse(header);
|
|
93
|
+
}
|
|
94
|
+
catch {
|
|
95
|
+
return null;
|
|
96
|
+
}
|
|
97
|
+
if (envelope === null || typeof envelope !== 'object' || Array.isArray(envelope))
|
|
98
|
+
return null;
|
|
99
|
+
const input = envelope.input;
|
|
100
|
+
if (input !== undefined && input !== null && (typeof input !== 'object' || Array.isArray(input)))
|
|
101
|
+
return null;
|
|
102
|
+
return envelope;
|
|
103
|
+
}
|
|
70
104
|
//# sourceMappingURL=Server.js.map
|
package/transpiled/Server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Server.js","sourceRoot":"","sources":["../source/Server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAClC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAMlC;;;GAGG;AACH,MAAM,OAAO,MAAO,SAAQ,SAAS;IAClB,IAAI,CAAQ;IACZ,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAA;IAClC,MAAM,CAAa;IAEpC,YAAmB,IAAY;QAC7B,KAAK,EAAE,CAAA;QAEP,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;IAC3D,CAAC;IAEM,KAAK,CAAC,IAAY,EAAE,MAAc;QACvC,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,aAAa,IAAI,qBAAqB,CAAC,CAAA;QAElF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IAC/B,CAAC;IAEM,OAAO,CAAC,IAAY;QACzB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAC1B,CAAC;IAEkB,KAAK,CAAC,IAAI;QAC3B,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC1C,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;YAE/B,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE;gBACjC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;gBAChC,OAAO,CAAC,IAAI,CAAC,2BAA2B,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;gBAC9D,OAAO,EAAE,CAAA;YACX,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC;IAEkB,KAAK,CAAC,KAAK;QAC5B,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YAClC,iFAAiF;YACjF,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE,CAAA;YAClC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAA;QACpC,CAAC,CAAC,CAAA;IACJ,CAAC;IAEO,QAAQ,CAAC,OAA6B,EAAE,QAA6B;QAC3E,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QAEzF,IAAI,MAAM,KAAK,
|
|
1
|
+
{"version":3,"file":"Server.js","sourceRoot":"","sources":["../source/Server.ts"],"names":[],"mappings":"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"}
|