@pristine-ts/http 4.0.2 → 4.0.3

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.
Files changed (38) hide show
  1. package/dist/lib/cjs/cors/cors-preflight-response.interface.js +3 -0
  2. package/dist/lib/cjs/cors/cors-preflight-response.interface.js.map +1 -0
  3. package/dist/lib/cjs/cors/cors-request-context.interface.js +3 -0
  4. package/dist/lib/cjs/cors/cors-request-context.interface.js.map +1 -0
  5. package/dist/lib/cjs/cors/cors-request.handler.js +207 -0
  6. package/dist/lib/cjs/cors/cors-request.handler.js.map +1 -0
  7. package/dist/lib/cjs/cors/cors.js +20 -0
  8. package/dist/lib/cjs/cors/cors.js.map +1 -0
  9. package/dist/lib/cjs/http.configuration-keys.js +14 -0
  10. package/dist/lib/cjs/http.configuration-keys.js.map +1 -1
  11. package/dist/lib/cjs/http.module.js +101 -0
  12. package/dist/lib/cjs/http.module.js.map +1 -1
  13. package/dist/lib/cjs/servers/kernel.http-server.js +54 -5
  14. package/dist/lib/cjs/servers/kernel.http-server.js.map +1 -1
  15. package/dist/lib/esm/cors/cors-preflight-response.interface.js +2 -0
  16. package/dist/lib/esm/cors/cors-preflight-response.interface.js.map +1 -0
  17. package/dist/lib/esm/cors/cors-request-context.interface.js +2 -0
  18. package/dist/lib/esm/cors/cors-request-context.interface.js.map +1 -0
  19. package/dist/lib/esm/cors/cors-request.handler.js +204 -0
  20. package/dist/lib/esm/cors/cors-request.handler.js.map +1 -0
  21. package/dist/lib/esm/cors/cors.js +4 -0
  22. package/dist/lib/esm/cors/cors.js.map +1 -0
  23. package/dist/lib/esm/http.configuration-keys.js +14 -0
  24. package/dist/lib/esm/http.configuration-keys.js.map +1 -1
  25. package/dist/lib/esm/http.module.js +101 -0
  26. package/dist/lib/esm/http.module.js.map +1 -1
  27. package/dist/lib/esm/servers/kernel.http-server.js +54 -5
  28. package/dist/lib/esm/servers/kernel.http-server.js.map +1 -1
  29. package/dist/lib/tsconfig.cjs.tsbuildinfo +1 -1
  30. package/dist/lib/tsconfig.tsbuildinfo +1 -1
  31. package/dist/types/cors/cors-preflight-response.interface.d.ts +20 -0
  32. package/dist/types/cors/cors-request-context.interface.d.ts +36 -0
  33. package/dist/types/cors/cors-request.handler.d.ts +94 -0
  34. package/dist/types/cors/cors.d.ts +3 -0
  35. package/dist/types/http.configuration-keys.d.ts +22 -0
  36. package/dist/types/http.module.d.ts +1 -0
  37. package/dist/types/servers/kernel.http-server.d.ts +13 -1
  38. package/package.json +10 -10
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=cors-preflight-response.interface.js.map
@@ -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,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=cors-request-context.interface.js.map
@@ -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;CAC5D,CAAC"}
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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=cors-preflight-response.interface.js.map
@@ -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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=cors-request-context.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cors-request-context.interface.js","sourceRoot":"","sources":["../../../../src/cors/cors-request-context.interface.ts"],"names":[],"mappings":""}