@pristine-ts/http 4.0.2 → 4.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/cjs/cors/cors-preflight-response.interface.js +3 -0
- package/dist/lib/cjs/cors/cors-preflight-response.interface.js.map +1 -0
- package/dist/lib/cjs/cors/cors-request-context.interface.js +3 -0
- package/dist/lib/cjs/cors/cors-request-context.interface.js.map +1 -0
- package/dist/lib/cjs/cors/cors-request.handler.js +207 -0
- package/dist/lib/cjs/cors/cors-request.handler.js.map +1 -0
- package/dist/lib/cjs/cors/cors.js +20 -0
- package/dist/lib/cjs/cors/cors.js.map +1 -0
- package/dist/lib/cjs/http.configuration-keys.js +14 -0
- package/dist/lib/cjs/http.configuration-keys.js.map +1 -1
- package/dist/lib/cjs/http.module.js +101 -0
- package/dist/lib/cjs/http.module.js.map +1 -1
- package/dist/lib/cjs/servers/kernel.http-server.js +54 -5
- package/dist/lib/cjs/servers/kernel.http-server.js.map +1 -1
- package/dist/lib/esm/cors/cors-preflight-response.interface.js +2 -0
- package/dist/lib/esm/cors/cors-preflight-response.interface.js.map +1 -0
- package/dist/lib/esm/cors/cors-request-context.interface.js +2 -0
- package/dist/lib/esm/cors/cors-request-context.interface.js.map +1 -0
- package/dist/lib/esm/cors/cors-request.handler.js +204 -0
- package/dist/lib/esm/cors/cors-request.handler.js.map +1 -0
- package/dist/lib/esm/cors/cors.js +4 -0
- package/dist/lib/esm/cors/cors.js.map +1 -0
- package/dist/lib/esm/http.configuration-keys.js +14 -0
- package/dist/lib/esm/http.configuration-keys.js.map +1 -1
- package/dist/lib/esm/http.module.js +101 -0
- package/dist/lib/esm/http.module.js.map +1 -1
- package/dist/lib/esm/servers/kernel.http-server.js +54 -5
- package/dist/lib/esm/servers/kernel.http-server.js.map +1 -1
- package/dist/lib/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/lib/tsconfig.tsbuildinfo +1 -1
- package/dist/types/cors/cors-preflight-response.interface.d.ts +20 -0
- package/dist/types/cors/cors-request-context.interface.d.ts +36 -0
- package/dist/types/cors/cors-request.handler.d.ts +94 -0
- package/dist/types/cors/cors.d.ts +3 -0
- package/dist/types/http.configuration-keys.d.ts +22 -0
- package/dist/types/http.module.d.ts +1 -0
- package/dist/types/servers/kernel.http-server.d.ts +13 -1
- package/package.json +10 -10
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cors-preflight-response.interface.js","sourceRoot":"","sources":["../../../../src/cors/cors-preflight-response.interface.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cors-request-context.interface.js","sourceRoot":"","sources":["../../../../src/cors/cors-request-context.interface.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,207 @@
|
|
|
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
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.CorsRequestHandler = void 0;
|
|
16
|
+
const tsyringe_1 = require("tsyringe");
|
|
17
|
+
const common_1 = require("@pristine-ts/common");
|
|
18
|
+
const http_module_keyname_1 = require("../http.module.keyname");
|
|
19
|
+
const http_configuration_keys_1 = require("../http.configuration-keys");
|
|
20
|
+
/**
|
|
21
|
+
* The config-driven CORS policy engine that `KernelHttpServer` consults inside its request path,
|
|
22
|
+
* BEFORE `kernel.handle()` — the one place that sees the raw request/response and can answer a
|
|
23
|
+
* preflight or reject an origin without the networking `Router` ever running.
|
|
24
|
+
*
|
|
25
|
+
* All decision methods are pure functions of the injected configuration plus a normalized
|
|
26
|
+
* {@link CorsRequestContextInterface}, so the full behavior matrix is unit-testable by
|
|
27
|
+
* constructing this class directly (no live socket, no Node request object required).
|
|
28
|
+
*
|
|
29
|
+
* ## Activation
|
|
30
|
+
* CORS is **inactive unless configured**. Two independent switches:
|
|
31
|
+
* - `cors.allowed-origins` non-empty → origin/preflight/header-echo logic activates.
|
|
32
|
+
* - `cors.allowed-hosts` non-empty → the Host-header allowlist (DNS-rebinding defense) activates.
|
|
33
|
+
* With neither set, every method is a no-op and the server behaves exactly as it did before CORS
|
|
34
|
+
* existed.
|
|
35
|
+
*
|
|
36
|
+
* ## Guarantees
|
|
37
|
+
* - Never emits `Access-Control-Allow-Origin: *` — only an exact echo of an allow-listed Origin.
|
|
38
|
+
* - Never reflects an arbitrary Origin — an Origin absent from the allowlist gets no ACAO headers.
|
|
39
|
+
*/
|
|
40
|
+
let CorsRequestHandler = class CorsRequestHandler {
|
|
41
|
+
constructor(allowedOrigins, allowedMethods, allowedHeaders, exposedHeaders, maxAge, allowCredentials, allowPrivateNetwork, allowedHosts) {
|
|
42
|
+
this.allowedOrigins = this.normalizeList(allowedOrigins);
|
|
43
|
+
this.allowedMethods = this.normalizeList(allowedMethods);
|
|
44
|
+
this.allowedHeaders = this.normalizeList(allowedHeaders);
|
|
45
|
+
this.exposedHeaders = this.normalizeList(exposedHeaders);
|
|
46
|
+
this.maxAge = maxAge;
|
|
47
|
+
this.allowCredentials = allowCredentials === true;
|
|
48
|
+
this.allowPrivateNetwork = allowPrivateNetwork === true;
|
|
49
|
+
this.allowedHosts = this.normalizeList(allowedHosts);
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* `true` when an origin allowlist is configured — gates the preflight short-circuit and the
|
|
53
|
+
* `Access-Control-Allow-Origin` echo on actual responses.
|
|
54
|
+
*/
|
|
55
|
+
get isOriginCheckEnabled() {
|
|
56
|
+
return this.allowedOrigins.length > 0;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* `true` when a Host allowlist is configured — gates the DNS-rebinding 403.
|
|
60
|
+
*/
|
|
61
|
+
get isHostCheckEnabled() {
|
|
62
|
+
return this.allowedHosts.length > 0;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Whether any CORS feature is active. `KernelHttpServer` can skip all CORS work when this is
|
|
66
|
+
* `false`, keeping the un-configured request path byte-for-byte identical to before.
|
|
67
|
+
*/
|
|
68
|
+
get isEnabled() {
|
|
69
|
+
return this.isOriginCheckEnabled || this.isHostCheckEnabled;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Normalizes a raw Node request into the transport-agnostic {@link CorsRequestContextInterface}.
|
|
73
|
+
* Node lower-cases header names on `IncomingMessage`, and multi-valued headers arrive as arrays;
|
|
74
|
+
* we take the method + the CORS-relevant headers and coerce them to the single-string shape the
|
|
75
|
+
* decision methods expect.
|
|
76
|
+
*/
|
|
77
|
+
buildContext(method, headers) {
|
|
78
|
+
var _a;
|
|
79
|
+
const readHeader = (name) => {
|
|
80
|
+
const value = headers[name];
|
|
81
|
+
if (Array.isArray(value)) {
|
|
82
|
+
return value[0];
|
|
83
|
+
}
|
|
84
|
+
return value !== null && value !== void 0 ? value : undefined;
|
|
85
|
+
};
|
|
86
|
+
return {
|
|
87
|
+
method: (method !== null && method !== void 0 ? method : "GET").toUpperCase(),
|
|
88
|
+
origin: readHeader("origin"),
|
|
89
|
+
host: readHeader("host"),
|
|
90
|
+
accessControlRequestMethod: readHeader("access-control-request-method"),
|
|
91
|
+
accessControlRequestHeaders: readHeader("access-control-request-headers"),
|
|
92
|
+
accessControlRequestPrivateNetwork: ((_a = readHeader("access-control-request-private-network")) !== null && _a !== void 0 ? _a : "").toLowerCase() === "true",
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Host-header allowlist check (loopback DNS-rebinding defense). Returns `true` (allow) when no
|
|
97
|
+
* allowlist is configured; otherwise the request's `Host` must exactly match a configured entry
|
|
98
|
+
* (case-insensitive, since host names are). A missing `Host` against a configured allowlist is
|
|
99
|
+
* rejected. `KernelHttpServer` turns a `false` here into a `403` before any routing.
|
|
100
|
+
*/
|
|
101
|
+
isHostAllowed(host) {
|
|
102
|
+
if (this.isHostCheckEnabled === false) {
|
|
103
|
+
return true;
|
|
104
|
+
}
|
|
105
|
+
if (host === undefined) {
|
|
106
|
+
return false;
|
|
107
|
+
}
|
|
108
|
+
const normalizedHost = host.trim().toLowerCase();
|
|
109
|
+
return this.allowedHosts.some(allowedHost => allowedHost.toLowerCase() === normalizedHost);
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Exact-match origin allowlist check. An absent Origin is never "allowed" (there is nothing to
|
|
113
|
+
* echo). We never wildcard and never reflect an arbitrary Origin.
|
|
114
|
+
*/
|
|
115
|
+
isOriginAllowed(origin) {
|
|
116
|
+
if (origin === undefined) {
|
|
117
|
+
return false;
|
|
118
|
+
}
|
|
119
|
+
const normalizedOrigin = origin.trim();
|
|
120
|
+
return this.allowedOrigins.some(allowedOrigin => allowedOrigin === normalizedOrigin);
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Decides whether `context` is a CORS preflight that must be answered before routing, and if so
|
|
124
|
+
* returns the `204` response (status + headers) to write. Returns `undefined` when the request is
|
|
125
|
+
* not a preflight we own — the caller then lets it route normally.
|
|
126
|
+
*
|
|
127
|
+
* A CORS preflight is an `OPTIONS` carrying `Access-Control-Request-Method`. We only take over
|
|
128
|
+
* preflight handling when an origin allowlist is configured (same-origin requests never send
|
|
129
|
+
* `Access-Control-Request-Method`, so app-owned `OPTIONS` routes are never stolen). An allow-listed
|
|
130
|
+
* Origin gets the full `Access-Control-*` set; a disallowed Origin still gets a bare `204` with no
|
|
131
|
+
* ACAO — the browser blocks it, and we never leak an arbitrary Origin.
|
|
132
|
+
*/
|
|
133
|
+
buildPreflightResponse(context) {
|
|
134
|
+
if (this.isOriginCheckEnabled === false) {
|
|
135
|
+
return undefined;
|
|
136
|
+
}
|
|
137
|
+
if (context.method !== "OPTIONS" || context.accessControlRequestMethod === undefined) {
|
|
138
|
+
return undefined;
|
|
139
|
+
}
|
|
140
|
+
const headers = {};
|
|
141
|
+
if (this.isOriginAllowed(context.origin)) {
|
|
142
|
+
headers["Access-Control-Allow-Origin"] = context.origin;
|
|
143
|
+
headers["Vary"] = "Origin";
|
|
144
|
+
headers["Access-Control-Allow-Methods"] = this.allowedMethods.join(", ");
|
|
145
|
+
headers["Access-Control-Allow-Headers"] = this.allowedHeaders.join(", ");
|
|
146
|
+
headers["Access-Control-Max-Age"] = String(this.maxAge);
|
|
147
|
+
if (this.allowCredentials) {
|
|
148
|
+
headers["Access-Control-Allow-Credentials"] = "true";
|
|
149
|
+
}
|
|
150
|
+
// Chrome Private Network Access: only answer the grant when the preflight actually asked for
|
|
151
|
+
// it AND the operator opted in. Silence otherwise so we never advertise a capability we
|
|
152
|
+
// weren't configured to allow.
|
|
153
|
+
if (this.allowPrivateNetwork && context.accessControlRequestPrivateNetwork) {
|
|
154
|
+
headers["Access-Control-Allow-Private-Network"] = "true";
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
return { statusCode: 204, headers };
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* The CORS headers to add to an ACTUAL (non-preflight) response — success OR error. Returns an
|
|
161
|
+
* empty object when origin-checking is off or the Origin is not allow-listed. Applied to 4xx/5xx
|
|
162
|
+
* responses too: without `Access-Control-Allow-Origin` the browser cannot read an error body.
|
|
163
|
+
*/
|
|
164
|
+
buildResponseHeaders(origin) {
|
|
165
|
+
if (this.isOriginCheckEnabled === false || this.isOriginAllowed(origin) === false) {
|
|
166
|
+
return {};
|
|
167
|
+
}
|
|
168
|
+
const headers = {
|
|
169
|
+
"Access-Control-Allow-Origin": origin,
|
|
170
|
+
"Vary": "Origin",
|
|
171
|
+
};
|
|
172
|
+
if (this.allowCredentials) {
|
|
173
|
+
headers["Access-Control-Allow-Credentials"] = "true";
|
|
174
|
+
}
|
|
175
|
+
if (this.exposedHeaders.length > 0) {
|
|
176
|
+
headers["Access-Control-Expose-Headers"] = this.exposedHeaders.join(", ");
|
|
177
|
+
}
|
|
178
|
+
return headers;
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Coerces a list-shaped config value into a trimmed, empty-stripped `string[]`. Accepts both the
|
|
182
|
+
* comma-separated string form (env vars / defaults) and the `string[]` form (programmatic
|
|
183
|
+
* `kernel.start()` config).
|
|
184
|
+
*/
|
|
185
|
+
normalizeList(value) {
|
|
186
|
+
if (value === undefined || value === null) {
|
|
187
|
+
return [];
|
|
188
|
+
}
|
|
189
|
+
const parts = Array.isArray(value) ? value : String(value).split(",");
|
|
190
|
+
return parts.map(part => part.trim()).filter(part => part.length > 0);
|
|
191
|
+
}
|
|
192
|
+
};
|
|
193
|
+
exports.CorsRequestHandler = CorsRequestHandler;
|
|
194
|
+
exports.CorsRequestHandler = CorsRequestHandler = __decorate([
|
|
195
|
+
(0, common_1.moduleScoped)(http_module_keyname_1.HttpModuleKeyname),
|
|
196
|
+
(0, tsyringe_1.injectable)(),
|
|
197
|
+
__param(0, (0, common_1.injectConfig)(http_configuration_keys_1.HttpConfigurationKeys.CorsAllowedOrigins)),
|
|
198
|
+
__param(1, (0, common_1.injectConfig)(http_configuration_keys_1.HttpConfigurationKeys.CorsAllowedMethods)),
|
|
199
|
+
__param(2, (0, common_1.injectConfig)(http_configuration_keys_1.HttpConfigurationKeys.CorsAllowedHeaders)),
|
|
200
|
+
__param(3, (0, common_1.injectConfig)(http_configuration_keys_1.HttpConfigurationKeys.CorsExposedHeaders)),
|
|
201
|
+
__param(4, (0, common_1.injectConfig)(http_configuration_keys_1.HttpConfigurationKeys.CorsMaxAge)),
|
|
202
|
+
__param(5, (0, common_1.injectConfig)(http_configuration_keys_1.HttpConfigurationKeys.CorsAllowCredentials)),
|
|
203
|
+
__param(6, (0, common_1.injectConfig)(http_configuration_keys_1.HttpConfigurationKeys.CorsAllowPrivateNetwork)),
|
|
204
|
+
__param(7, (0, common_1.injectConfig)(http_configuration_keys_1.HttpConfigurationKeys.CorsAllowedHosts)),
|
|
205
|
+
__metadata("design:paramtypes", [Object, Object, Object, Object, Number, Boolean, Boolean, Object])
|
|
206
|
+
], CorsRequestHandler);
|
|
207
|
+
//# sourceMappingURL=cors-request.handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cors-request.handler.js","sourceRoot":"","sources":["../../../../src/cors/cors-request.handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./cors-preflight-response.interface"), exports);
|
|
18
|
+
__exportStar(require("./cors-request-context.interface"), exports);
|
|
19
|
+
__exportStar(require("./cors-request.handler"), exports);
|
|
20
|
+
//# sourceMappingURL=cors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cors.js","sourceRoot":"","sources":["../../../../src/cors/cors.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sEAAoD;AACpD,mEAAiD;AACjD,yDAAuC"}
|
|
@@ -20,5 +20,19 @@ exports.HttpConfigurationKeys = {
|
|
|
20
20
|
KernelServerPort: "pristine.http.kernel-server.port",
|
|
21
21
|
KernelServerTlsKeyPath: "pristine.http.kernel-server.tls.key-path",
|
|
22
22
|
KernelServerTlsCertPath: "pristine.http.kernel-server.tls.cert-path",
|
|
23
|
+
/**
|
|
24
|
+
* CORS keys consumed by `CorsRequestHandler` inside `KernelHttpServer`'s request path.
|
|
25
|
+
* CORS is inactive unless `cors.allowed-origins` (and/or `cors.allowed-hosts`) is set —
|
|
26
|
+
* a server with none of these configured behaves exactly as it did before CORS existed.
|
|
27
|
+
* Each list key accepts a comma-separated string or a `string[]`.
|
|
28
|
+
*/
|
|
29
|
+
CorsAllowedOrigins: "pristine.http.cors.allowed-origins",
|
|
30
|
+
CorsAllowedMethods: "pristine.http.cors.allowed-methods",
|
|
31
|
+
CorsAllowedHeaders: "pristine.http.cors.allowed-headers",
|
|
32
|
+
CorsExposedHeaders: "pristine.http.cors.exposed-headers",
|
|
33
|
+
CorsMaxAge: "pristine.http.cors.max-age",
|
|
34
|
+
CorsAllowCredentials: "pristine.http.cors.allow-credentials",
|
|
35
|
+
CorsAllowPrivateNetwork: "pristine.http.cors.allow-private-network",
|
|
36
|
+
CorsAllowedHosts: "pristine.http.cors.allowed-hosts",
|
|
23
37
|
};
|
|
24
38
|
//# sourceMappingURL=http.configuration-keys.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.configuration-keys.js","sourceRoot":"","sources":["../../../src/http.configuration-keys.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;GAUG;AACU,QAAA,qBAAqB,GAAG;IACnC,cAAc,EAAE,+BAA+B;IAC/C,qBAAqB,EAAE,wCAAwC;IAC/D,kBAAkB,EAAE,qCAAqC;IACzD,mBAAmB,EAAE,qCAAqC;IAC1D,gBAAgB,EAAE,kCAAkC;IACpD,sBAAsB,EAAE,0CAA0C;IAClE,uBAAuB,EAAE,2CAA2C;
|
|
1
|
+
{"version":3,"file":"http.configuration-keys.js","sourceRoot":"","sources":["../../../src/http.configuration-keys.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;GAUG;AACU,QAAA,qBAAqB,GAAG;IACnC,cAAc,EAAE,+BAA+B;IAC/C,qBAAqB,EAAE,wCAAwC;IAC/D,kBAAkB,EAAE,qCAAqC;IACzD,mBAAmB,EAAE,qCAAqC;IAC1D,gBAAgB,EAAE,kCAAkC;IACpD,sBAAsB,EAAE,0CAA0C;IAClE,uBAAuB,EAAE,2CAA2C;IAEpE;;;;;OAKG;IACH,kBAAkB,EAAE,oCAAoC;IACxD,kBAAkB,EAAE,oCAAoC;IACxD,kBAAkB,EAAE,oCAAoC;IACxD,kBAAkB,EAAE,oCAAoC;IACxD,UAAU,EAAE,4BAA4B;IACxC,oBAAoB,EAAE,sCAAsC;IAC5D,uBAAuB,EAAE,0CAA0C;IACnE,gBAAgB,EAAE,kCAAkC;CAC5C,CAAC"}
|
|
@@ -35,6 +35,7 @@ const kernel_http_server_1 = require("./servers/kernel.http-server");
|
|
|
35
35
|
__exportStar(require("./http.module.keyname"), exports);
|
|
36
36
|
__exportStar(require("./commands/commands"), exports);
|
|
37
37
|
__exportStar(require("./clients/clients"), exports);
|
|
38
|
+
__exportStar(require("./cors/cors"), exports);
|
|
38
39
|
__exportStar(require("./enums/enums"), exports);
|
|
39
40
|
__exportStar(require("./errors/errors"), exports);
|
|
40
41
|
__exportStar(require("./interceptors/interceptors"), exports);
|
|
@@ -127,6 +128,106 @@ exports.HttpModule = {
|
|
|
127
128
|
new configuration_1.EnvironmentVariableResolver("PRISTINE_HTTP_KERNEL_SERVER_TLS_CERT_PATH"),
|
|
128
129
|
]
|
|
129
130
|
},
|
|
131
|
+
/**
|
|
132
|
+
* CORS — handled by `CorsRequestHandler` inside `KernelHttpServer`'s request path. All keys
|
|
133
|
+
* carry defaults so `@injectConfig` always resolves; CORS stays INACTIVE until
|
|
134
|
+
* `cors.allowed-origins` (and/or `cors.allowed-hosts`) is set. List keys accept a
|
|
135
|
+
* comma-separated string (env/default) or a `string[]` (programmatic config).
|
|
136
|
+
*
|
|
137
|
+
* Exact-match origin allowlist. Empty (the default) = CORS disabled: no preflight
|
|
138
|
+
* short-circuit and no `Access-Control-Allow-Origin` echo. Never wildcarded.
|
|
139
|
+
*/
|
|
140
|
+
{
|
|
141
|
+
parameterName: `${http_module_keyname_1.HttpModuleKeyname}.cors.allowed-origins`,
|
|
142
|
+
defaultValue: "",
|
|
143
|
+
isRequired: false,
|
|
144
|
+
defaultResolvers: [
|
|
145
|
+
new configuration_1.EnvironmentVariableResolver("PRISTINE_HTTP_CORS_ALLOWED_ORIGINS"),
|
|
146
|
+
]
|
|
147
|
+
},
|
|
148
|
+
/**
|
|
149
|
+
* Methods advertised in the preflight `Access-Control-Allow-Methods` response.
|
|
150
|
+
*/
|
|
151
|
+
{
|
|
152
|
+
parameterName: `${http_module_keyname_1.HttpModuleKeyname}.cors.allowed-methods`,
|
|
153
|
+
defaultValue: "GET,POST,PUT,DELETE,PATCH,OPTIONS",
|
|
154
|
+
isRequired: false,
|
|
155
|
+
defaultResolvers: [
|
|
156
|
+
new configuration_1.EnvironmentVariableResolver("PRISTINE_HTTP_CORS_ALLOWED_METHODS"),
|
|
157
|
+
]
|
|
158
|
+
},
|
|
159
|
+
/**
|
|
160
|
+
* Request headers advertised in the preflight `Access-Control-Allow-Headers` response.
|
|
161
|
+
*/
|
|
162
|
+
{
|
|
163
|
+
parameterName: `${http_module_keyname_1.HttpModuleKeyname}.cors.allowed-headers`,
|
|
164
|
+
defaultValue: "Content-Type",
|
|
165
|
+
isRequired: false,
|
|
166
|
+
defaultResolvers: [
|
|
167
|
+
new configuration_1.EnvironmentVariableResolver("PRISTINE_HTTP_CORS_ALLOWED_HEADERS"),
|
|
168
|
+
]
|
|
169
|
+
},
|
|
170
|
+
/**
|
|
171
|
+
* Response headers exposed to the browser via `Access-Control-Expose-Headers` on actual
|
|
172
|
+
* responses. Empty (the default) omits the header entirely.
|
|
173
|
+
*/
|
|
174
|
+
{
|
|
175
|
+
parameterName: `${http_module_keyname_1.HttpModuleKeyname}.cors.exposed-headers`,
|
|
176
|
+
defaultValue: "",
|
|
177
|
+
isRequired: false,
|
|
178
|
+
defaultResolvers: [
|
|
179
|
+
new configuration_1.EnvironmentVariableResolver("PRISTINE_HTTP_CORS_EXPOSED_HEADERS"),
|
|
180
|
+
]
|
|
181
|
+
},
|
|
182
|
+
/**
|
|
183
|
+
* Seconds a browser may cache the preflight result (`Access-Control-Max-Age`).
|
|
184
|
+
*/
|
|
185
|
+
{
|
|
186
|
+
parameterName: `${http_module_keyname_1.HttpModuleKeyname}.cors.max-age`,
|
|
187
|
+
defaultValue: 600,
|
|
188
|
+
isRequired: false,
|
|
189
|
+
defaultResolvers: [
|
|
190
|
+
new configuration_1.NumberResolver(new configuration_1.EnvironmentVariableResolver("PRISTINE_HTTP_CORS_MAX_AGE")),
|
|
191
|
+
]
|
|
192
|
+
},
|
|
193
|
+
/**
|
|
194
|
+
* When true, emit `Access-Control-Allow-Credentials: true` on preflight and actual responses
|
|
195
|
+
* for allow-listed origins (lets the browser send cookies / `Authorization`).
|
|
196
|
+
*/
|
|
197
|
+
{
|
|
198
|
+
parameterName: `${http_module_keyname_1.HttpModuleKeyname}.cors.allow-credentials`,
|
|
199
|
+
defaultValue: false,
|
|
200
|
+
isRequired: false,
|
|
201
|
+
defaultResolvers: [
|
|
202
|
+
new configuration_1.BooleanResolver(new configuration_1.EnvironmentVariableResolver("PRISTINE_HTTP_CORS_ALLOW_CREDENTIALS")),
|
|
203
|
+
]
|
|
204
|
+
},
|
|
205
|
+
/**
|
|
206
|
+
* Chrome Private Network Access. When true, answer `Access-Control-Allow-Private-Network: true`
|
|
207
|
+
* to a preflight that carries `Access-Control-Request-Private-Network: true` — required for a
|
|
208
|
+
* public/secure site to call a loopback/private-network daemon.
|
|
209
|
+
*/
|
|
210
|
+
{
|
|
211
|
+
parameterName: `${http_module_keyname_1.HttpModuleKeyname}.cors.allow-private-network`,
|
|
212
|
+
defaultValue: false,
|
|
213
|
+
isRequired: false,
|
|
214
|
+
defaultResolvers: [
|
|
215
|
+
new configuration_1.BooleanResolver(new configuration_1.EnvironmentVariableResolver("PRISTINE_HTTP_CORS_ALLOW_PRIVATE_NETWORK")),
|
|
216
|
+
]
|
|
217
|
+
},
|
|
218
|
+
/**
|
|
219
|
+
* Optional `Host`-header allowlist (loopback DNS-rebinding defense). When set, a request whose
|
|
220
|
+
* `Host` is not listed is rejected with `403` before routing. Empty (the default) disables the
|
|
221
|
+
* check. Independent of `allowed-origins`.
|
|
222
|
+
*/
|
|
223
|
+
{
|
|
224
|
+
parameterName: `${http_module_keyname_1.HttpModuleKeyname}.cors.allowed-hosts`,
|
|
225
|
+
defaultValue: "",
|
|
226
|
+
isRequired: false,
|
|
227
|
+
defaultResolvers: [
|
|
228
|
+
new configuration_1.EnvironmentVariableResolver("PRISTINE_HTTP_CORS_ALLOWED_HOSTS"),
|
|
229
|
+
]
|
|
230
|
+
},
|
|
130
231
|
],
|
|
131
232
|
onShutdown: (container) => __awaiter(void 0, void 0, void 0, function* () {
|
|
132
233
|
// The KernelHttpServer self-tracks whether `start()` was actually called: if pristine start
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.module.js","sourceRoot":"","sources":["../../../src/http.module.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"http.module.js","sourceRoot":"","sources":["../../../src/http.module.ts"],"names":[],"mappings":"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"}
|
|
@@ -32,6 +32,7 @@ const fs_1 = __importDefault(require("fs"));
|
|
|
32
32
|
const core_1 = require("@pristine-ts/core");
|
|
33
33
|
const common_1 = require("@pristine-ts/common");
|
|
34
34
|
const http_module_keyname_1 = require("../http.module.keyname");
|
|
35
|
+
const cors_request_handler_1 = require("../cors/cors-request.handler");
|
|
35
36
|
/**
|
|
36
37
|
* Wraps Node's `http.Server` (or `https.Server` when TLS config is present) and routes every
|
|
37
38
|
* incoming request through `kernel.handle()`. The kernel dispatches to the existing
|
|
@@ -49,7 +50,7 @@ const http_module_keyname_1 = require("../http.module.keyname");
|
|
|
49
50
|
* rather than silently leaking the previous server.
|
|
50
51
|
*/
|
|
51
52
|
let KernelHttpServer = class KernelHttpServer {
|
|
52
|
-
constructor(defaultAddress, defaultPort, defaultTlsKeyPath, defaultTlsCertPath, logHandler, kernel, eventIdManager) {
|
|
53
|
+
constructor(defaultAddress, defaultPort, defaultTlsKeyPath, defaultTlsCertPath, logHandler, kernel, eventIdManager, corsRequestHandler) {
|
|
53
54
|
this.defaultAddress = defaultAddress;
|
|
54
55
|
this.defaultPort = defaultPort;
|
|
55
56
|
this.defaultTlsKeyPath = defaultTlsKeyPath;
|
|
@@ -57,6 +58,7 @@ let KernelHttpServer = class KernelHttpServer {
|
|
|
57
58
|
this.logHandler = logHandler;
|
|
58
59
|
this.kernel = kernel;
|
|
59
60
|
this.eventIdManager = eventIdManager;
|
|
61
|
+
this.corsRequestHandler = corsRequestHandler;
|
|
60
62
|
/**
|
|
61
63
|
* Identifier reported back via `RuntimeServerInterface.name`. Switches to `"https"` when
|
|
62
64
|
* TLS config is present, mainly so log lines and `pristine info`-style introspection make
|
|
@@ -161,6 +163,15 @@ let KernelHttpServer = class KernelHttpServer {
|
|
|
161
163
|
});
|
|
162
164
|
});
|
|
163
165
|
}
|
|
166
|
+
/**
|
|
167
|
+
* The address the underlying server is bound to, or `null` when not listening. For a TCP socket
|
|
168
|
+
* this is `{address, family, port}` — useful when binding to port `0` (ephemeral port) and the
|
|
169
|
+
* caller needs to discover the assigned port afterwards.
|
|
170
|
+
*/
|
|
171
|
+
getAddress() {
|
|
172
|
+
var _a, _b;
|
|
173
|
+
return (_b = (_a = this.server) === null || _a === void 0 ? void 0 : _a.address()) !== null && _b !== void 0 ? _b : null;
|
|
174
|
+
}
|
|
164
175
|
/**
|
|
165
176
|
* Reads the body, builds a Pristine `Request`, dispatches via the kernel, writes the
|
|
166
177
|
* resulting `Response`. All errors are caught and turned into a 500 response so the
|
|
@@ -169,15 +180,43 @@ let KernelHttpServer = class KernelHttpServer {
|
|
|
169
180
|
*/
|
|
170
181
|
handleRequest(req, res) {
|
|
171
182
|
return __awaiter(this, void 0, void 0, function* () {
|
|
172
|
-
var _a;
|
|
183
|
+
var _a, _b;
|
|
173
184
|
const requestId = (_a = req.headers["x-pristine-request-id"]) !== null && _a !== void 0 ? _a : this.eventIdManager.generateEventId();
|
|
185
|
+
// Normalize the raw request into the CORS decision context up-front. When no CORS config is
|
|
186
|
+
// present every method below is a no-op, so this whole block is transparent to un-configured
|
|
187
|
+
// servers. `corsResponseHeaders` (ACAO + Vary + ...) is computed once here and applied to
|
|
188
|
+
// BOTH the success and the error/500 responses below — a browser can only read an error body
|
|
189
|
+
// if the error response also carries Access-Control-Allow-Origin.
|
|
190
|
+
const corsContext = this.corsRequestHandler.buildContext((_b = req.method) !== null && _b !== void 0 ? _b : "GET", req.headers);
|
|
191
|
+
const corsResponseHeaders = this.corsRequestHandler.buildResponseHeaders(corsContext.origin);
|
|
174
192
|
try {
|
|
193
|
+
// 1. Host-header allowlist (loopback DNS-rebinding defense) — reject before routing and
|
|
194
|
+
// before reading the body, so a rejected caller can't stream a payload at us.
|
|
195
|
+
if (this.corsRequestHandler.isHostAllowed(corsContext.host) === false) {
|
|
196
|
+
this.logHandler.warning("KernelHttpServer: rejecting request with disallowed Host header", {
|
|
197
|
+
extra: { host: corsContext.host, url: req.url, method: req.method, requestId },
|
|
198
|
+
});
|
|
199
|
+
res.statusCode = 403;
|
|
200
|
+
this.applyHeaders(res, corsResponseHeaders);
|
|
201
|
+
res.setHeader("content-type", "application/json");
|
|
202
|
+
res.end(JSON.stringify({ error: "Forbidden", requestId }));
|
|
203
|
+
return;
|
|
204
|
+
}
|
|
205
|
+
// 2. CORS preflight — answered with a 204 and short-circuited BEFORE kernel.handle, since a
|
|
206
|
+
// preflight never matches a real route in the networking Router.
|
|
207
|
+
const preflight = this.corsRequestHandler.buildPreflightResponse(corsContext);
|
|
208
|
+
if (preflight !== undefined) {
|
|
209
|
+
res.statusCode = preflight.statusCode;
|
|
210
|
+
this.applyHeaders(res, preflight.headers);
|
|
211
|
+
res.end();
|
|
212
|
+
return;
|
|
213
|
+
}
|
|
175
214
|
const request = yield this.mapToPristineRequest(req, requestId);
|
|
176
215
|
const result = yield this.kernel.handle(request, {
|
|
177
216
|
keyname: core_1.ExecutionContextKeynameEnum.Http,
|
|
178
217
|
context: null,
|
|
179
218
|
});
|
|
180
|
-
this.writeResponse(res, result);
|
|
219
|
+
this.writeResponse(res, result, corsResponseHeaders);
|
|
181
220
|
}
|
|
182
221
|
catch (error) {
|
|
183
222
|
this.logHandler.error("KernelHttpServer: unhandled error while processing request", {
|
|
@@ -187,6 +226,9 @@ let KernelHttpServer = class KernelHttpServer {
|
|
|
187
226
|
// can only destroy the socket — but most kernel.handle errors propagate before any write.
|
|
188
227
|
if (res.headersSent === false) {
|
|
189
228
|
res.statusCode = 500;
|
|
229
|
+
// Echo CORS headers on the error path too — otherwise the browser blocks the response and
|
|
230
|
+
// the caller never sees the 500 body.
|
|
231
|
+
this.applyHeaders(res, corsResponseHeaders);
|
|
190
232
|
res.setHeader("content-type", "application/json");
|
|
191
233
|
res.end(JSON.stringify({ error: "Internal Server Error", requestId }));
|
|
192
234
|
}
|
|
@@ -267,9 +309,13 @@ let KernelHttpServer = class KernelHttpServer {
|
|
|
267
309
|
* Writes a Pristine `Response` (or any object — handlers that return raw JSON serialize as-is)
|
|
268
310
|
* back to the underlying `ServerResponse`. Default status is 200, default content-type is
|
|
269
311
|
* `application/json` when the body is non-string.
|
|
312
|
+
*
|
|
313
|
+
* `corsHeaders` (empty when CORS is off or the Origin isn't allow-listed) is applied AFTER the
|
|
314
|
+
* response's own headers so the `Access-Control-*` set is authoritative and a handler can't
|
|
315
|
+
* accidentally clobber it.
|
|
270
316
|
* @private
|
|
271
317
|
*/
|
|
272
|
-
writeResponse(res, result) {
|
|
318
|
+
writeResponse(res, result, corsHeaders = {}) {
|
|
273
319
|
var _a, _b;
|
|
274
320
|
const isPristineResponse = result instanceof common_1.Response || (result !== null && typeof result === "object" && typeof result.status === "number" && "body" in result);
|
|
275
321
|
const status = isPristineResponse ? ((_a = result.status) !== null && _a !== void 0 ? _a : 200) : 200;
|
|
@@ -287,6 +333,7 @@ let KernelHttpServer = class KernelHttpServer {
|
|
|
287
333
|
// Buffer body: write directly without re-encoding. Don't auto-set content-type — the
|
|
288
334
|
// handler that produced a Buffer is presumed to know what it's sending.
|
|
289
335
|
this.applyHeaders(res, headers);
|
|
336
|
+
this.applyHeaders(res, corsHeaders);
|
|
290
337
|
res.end(body);
|
|
291
338
|
return;
|
|
292
339
|
}
|
|
@@ -297,6 +344,7 @@ let KernelHttpServer = class KernelHttpServer {
|
|
|
297
344
|
}
|
|
298
345
|
}
|
|
299
346
|
this.applyHeaders(res, headers);
|
|
347
|
+
this.applyHeaders(res, corsHeaders);
|
|
300
348
|
res.end(serializedBody);
|
|
301
349
|
}
|
|
302
350
|
applyHeaders(res, headers) {
|
|
@@ -325,6 +373,7 @@ exports.KernelHttpServer = KernelHttpServer = __decorate([
|
|
|
325
373
|
__param(3, (0, tsyringe_1.inject)(`%${http_module_keyname_1.HttpModuleKeyname}.kernel-server.tls.cert-path%`)),
|
|
326
374
|
__param(4, (0, tsyringe_1.inject)("LogHandlerInterface")),
|
|
327
375
|
__metadata("design:paramtypes", [String, Number, String, String, Object, core_1.Kernel,
|
|
328
|
-
core_1.EventIdManager
|
|
376
|
+
core_1.EventIdManager,
|
|
377
|
+
cors_request_handler_1.CorsRequestHandler])
|
|
329
378
|
], KernelHttpServer);
|
|
330
379
|
//# sourceMappingURL=kernel.http-server.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kernel.http-server.js","sourceRoot":"","sources":["../../../../src/servers/kernel.http-server.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAA4C;AAC5C,gDAAmE;AACnE,kDAA0B;AAC1B,4CAAoB;AAEpB,4CAA8G;AAC9G,gDAAmG;AAEnG,gEAAyD;AAgBzD;;;;;;;;;;;;;;;GAeG;AAII,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IAqB3B,YAC0D,cAAuC,EAC1C,WAAoC,EAC5B,iBAA0C,EACzC,kBAA2C,EAC1E,UAAgD,EAC9D,MAAc,EACd,cAA8B;QAN0B,mBAAc,GAAd,cAAc,CAAQ;QACzB,gBAAW,GAAX,WAAW,CAAQ;QACX,sBAAiB,GAAjB,iBAAiB,CAAQ;QACxB,uBAAkB,GAAlB,kBAAkB,CAAQ;QACzD,eAAU,GAAV,UAAU,CAAqB;QAC9D,WAAM,GAAN,MAAM,CAAQ;QACd,mBAAc,GAAd,cAAc,CAAgB;QA3BjD;;;;WAIG;QACI,SAAI,GAAW,MAAM,CAAC;QAQ7B;;;;WAIG;QACc,gBAAW,GAA8B,IAAI,GAAG,EAAE,CAAC;IAWpE,CAAC;IAED;;;;;;;OAOG;IACG,KAAK,CAAC,OAAsC;;;YAChD,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBAC9B,MAAM,IAAI,KAAK,CAAC,yFAAyF,CAAC,CAAC;YAC7G,CAAC;YAED,MAAM,IAAI,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,mCAAI,IAAI,CAAC,WAAW,CAAC;YAC/C,MAAM,OAAO,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,mCAAI,IAAI,CAAC,cAAc,CAAC;YAExD,MAAM,UAAU,GAAG,MAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,GAAG,0CAAE,OAAO,mCAAI,IAAI,CAAC,iBAAiB,CAAC;YACnE,MAAM,WAAW,GAAG,MAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,GAAG,0CAAE,QAAQ,mCAAI,IAAI,CAAC,kBAAkB,CAAC;YACtE,MAAM,UAAU,GAAG,UAAU,KAAK,EAAE,IAAI,WAAW,KAAK,EAAE,CAAC;YAE3D,MAAM,OAAO,GAAG,CAAC,GAAoB,EAAE,GAAmB,EAAE,EAAE;gBAC5D,wFAAwF;gBACxF,4FAA4F;gBAC5F,KAAK,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YACpC,CAAC,CAAC;YAEF,IAAI,UAAU,EAAE,CAAC;gBACf,MAAM,GAAG,GAAG,YAAE,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;gBACxC,MAAM,IAAI,GAAG,YAAE,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;gBAC1C,IAAI,CAAC,MAAM,GAAG,eAAK,CAAC,YAAY,CAAC,EAAC,GAAG,EAAE,IAAI,EAAC,EAAE,OAAO,CAAC,CAAC;gBACvD,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;YACtB,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,MAAM,GAAG,cAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;gBACzC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;YACrB,CAAC;YAED,wFAAwF;YACxF,iFAAiF;YACjF,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,MAAM,EAAE,EAAE;gBACtC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBAC7B,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;YAC5D,CAAC,CAAC,CAAC;YAEH,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAC3C,MAAM,OAAO,GAAG,CAAC,GAAU,EAAE,EAAE;;oBAC7B,MAAA,IAAI,CAAC,MAAM,0CAAE,cAAc,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;oBACtD,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;oBACxB,MAAM,CAAC,GAAG,CAAC,CAAC;gBACd,CAAC,CAAC;gBACF,MAAM,WAAW,GAAG,GAAG,EAAE;;oBACvB,MAAA,IAAI,CAAC,MAAM,0CAAE,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;oBAC9C,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;oBAC7C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,kCAAkC,MAAM,MAAM,OAAO,IAAI,IAAI,EAAE,CAAC,CAAC;oBACtF,OAAO,EAAE,CAAC;gBACZ,CAAC,CAAC;gBACF,IAAI,CAAC,MAAO,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBACpC,IAAI,CAAC,MAAO,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;gBAC5C,IAAI,CAAC,MAAO,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACrC,CAAC,CAAC,CAAC;QACL,CAAC;KAAA;IAED;;;OAGG;IACG,IAAI,CAAC,OAAmC;;;YAC5C,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBAC9B,OAAO;YACT,CAAC;YACD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAC3B,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;YAExB,MAAM,cAAc,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,cAAc,mCAAI,KAAM,CAAC;YAEzD,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;gBACnC,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,EAAE;oBACjC,+EAA+E;oBAC/E,IAAI,CAAC,UAAU,CAAC,OAAO,CACrB,oCAAoC,cAAc,wBAAwB,IAAI,CAAC,WAAW,CAAC,IAAI,6BAA6B,CAC7H,CAAC;oBACF,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;wBACtC,MAAM,CAAC,OAAO,EAAE,CAAC;oBACnB,CAAC;gBACH,CAAC,EAAE,cAAc,CAAC,CAAC;gBACnB,UAAU,CAAC,KAAK,EAAE,CAAC;gBAEnB,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE;oBAChB,YAAY,CAAC,UAAU,CAAC,CAAC;oBACzB,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;oBACzB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;oBACnD,OAAO,EAAE,CAAC;gBACZ,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;KAAA;IAED;;;;;OAKG;IACW,aAAa,CAAC,GAAoB,EAAE,GAAmB;;;YACnE,MAAM,SAAS,GAAG,MAAC,GAAG,CAAC,OAAO,CAAC,uBAAuB,CAAwB,mCAAI,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE,CAAC;YAExH,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;gBAChE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE;oBAC/C,OAAO,EAAE,kCAA2B,CAAC,IAAI;oBACzC,OAAO,EAAE,IAAI;iBACd,CAAsB,CAAC;gBAExB,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YAClC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,4DAA4D,EAAE;oBAClF,KAAK,EAAE,EAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,EAAC;iBAC5D,CAAC,CAAC;gBACH,wFAAwF;gBACxF,0FAA0F;gBAC1F,IAAI,GAAG,CAAC,WAAW,KAAK,KAAK,EAAE,CAAC;oBAC9B,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;oBACrB,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;oBAClD,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAC,KAAK,EAAE,uBAAuB,EAAE,SAAS,EAAC,CAAC,CAAC,CAAC;gBACvE,CAAC;qBAAM,CAAC;oBACN,GAAG,CAAC,OAAO,EAAE,CAAC;gBAChB,CAAC;YACH,CAAC;QACH,CAAC;KAAA;IAED;;;;;;OAMG;IACW,oBAAoB,CAAC,GAAoB,EAAE,SAAiB;;;YACxE,MAAM,GAAG,GAAG,MAAA,GAAG,CAAC,GAAG,mCAAI,GAAG,CAAC;YAC3B,MAAM,MAAM,GAAG,CAAC,MAAA,GAAG,CAAC,MAAM,mCAAI,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;YACnD,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,2BAA2B,CAAuB,CAAC;YAE/E,MAAM,OAAO,GAAG,IAAI,gBAAO,CAAC,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;YACpD,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;YAE1B,8FAA8F;YAC9F,2FAA2F;YAC3F,4FAA4F;YAC5F,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC;YACpC,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;gBAC7B,MAAM,MAAM,GAAI,GAAG,CAAC,MAAc,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;gBACzE,OAAO,CAAC,IAAI,GAAG,GAAG,MAAM,MAAM,UAAU,EAAE,CAAC;YAC7C,CAAC;YAED,MAAM,OAAO,GAA4B,EAAE,CAAC;YAC5C,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;gBACjD,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;oBACrB,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC5B,CAAC;qBAAM,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;oBAC3B,OAAO,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBACzB,CAAC;YACH,CAAC;YACD,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAE5B,IAAI,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;gBAC1C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;gBACzC,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;gBAE1B,MAAM,WAAW,GAAG,CAAC,MAAA,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,mCAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;gBACtE,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;oBACnE,IAAI,CAAC;wBACH,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;oBACrC,CAAC;oBAAC,WAAM,CAAC;wBACP,sFAAsF;wBACtF,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC;oBACzB,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC;gBACzB,CAAC;YACH,CAAC;YAED,OAAO,OAAO,CAAC;QACjB,CAAC;KAAA;IAED;;;;;OAKG;IACK,QAAQ,CAAC,GAAoB;QACnC,OAAO,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC7C,MAAM,MAAM,GAAa,EAAE,CAAC;YAC5B,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YACtD,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACrE,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACK,aAAa,CAAC,GAAmB,EAAE,MAAsB;;QAC/D,MAAM,kBAAkB,GAAG,MAAM,YAAY,iBAAQ,IAAI,CACvD,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,OAAQ,MAAc,CAAC,MAAM,KAAK,QAAQ,IAAI,MAAM,IAAI,MAAM,CAChH,CAAC;QAEF,MAAM,MAAM,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC,MAAA,MAAM,CAAC,MAAM,mCAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QACjE,MAAM,OAAO,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC,MAAA,MAAM,CAAC,OAAO,mCAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACjE,MAAM,IAAI,GAAG,kBAAkB,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;QAEvD,GAAG,CAAC,UAAU,GAAG,MAAM,CAAC;QAExB,IAAI,cAAsB,CAAC;QAC3B,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YACxC,cAAc,GAAG,EAAE,CAAC;QACtB,CAAC;aAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YACpC,cAAc,GAAG,IAAI,CAAC;QACxB,CAAC;aAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACjC,qFAAqF;YACrF,wEAAwE;YACxE,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YAChC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACd,OAAO;QACT,CAAC;aAAM,CAAC;YACN,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACtC,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,cAAc,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC1D,OAAO,CAAC,cAAc,CAAC,GAAG,kBAAkB,CAAC;YAC/C,CAAC;QACH,CAAC;QAED,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAChC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAC1B,CAAC;IAEO,YAAY,CAAC,GAAmB,EAAE,OAAgC;QACxE,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACpD,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IAEO,SAAS,CAAC,OAAgC,EAAE,IAAY;QAC9D,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACjC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC7C,IAAI,CAAC,CAAC,WAAW,EAAE,KAAK,KAAK,EAAE,CAAC;gBAC9B,OAAO,CAAC,CAAC;YACX,CAAC;QACH,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;CACF,CAAA;AA3RY,4CAAgB;2BAAhB,gBAAgB;IAH5B,IAAA,YAAG,EAAC,iCAAwB,CAAC,aAAa,CAAC;IAC3C,IAAA,qBAAY,EAAC,uCAAiB,CAAC;IAC/B,IAAA,qBAAU,GAAE;IAuBR,WAAA,IAAA,iBAAM,EAAC,IAAI,uCAAiB,yBAAyB,CAAC,CAAA;IACtD,WAAA,IAAA,iBAAM,EAAC,IAAI,uCAAiB,sBAAsB,CAAC,CAAA;IACnD,WAAA,IAAA,iBAAM,EAAC,IAAI,uCAAiB,8BAA8B,CAAC,CAAA;IAC3D,WAAA,IAAA,iBAAM,EAAC,IAAI,uCAAiB,+BAA+B,CAAC,CAAA;IAC5D,WAAA,IAAA,iBAAM,EAAC,qBAAqB,CAAC,CAAA;6EACL,aAAM;QACE,qBAAc;GA5BtC,gBAAgB,CA2R5B"}
|
|
1
|
+
{"version":3,"file":"kernel.http-server.js","sourceRoot":"","sources":["../../../../src/servers/kernel.http-server.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cors-preflight-response.interface.js","sourceRoot":"","sources":["../../../../src/cors/cors-preflight-response.interface.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cors-request-context.interface.js","sourceRoot":"","sources":["../../../../src/cors/cors-request-context.interface.ts"],"names":[],"mappings":""}
|