@braidlabs/gateway 0.5.0 → 0.7.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/README.md +6 -0
- package/package.json +1 -1
- package/src/baggage.d.ts +34 -0
- package/src/baggage.js +93 -0
- package/src/baggage.js.map +1 -0
- package/src/cookie-scope.d.ts +41 -0
- package/src/cookie-scope.js +148 -0
- package/src/cookie-scope.js.map +1 -0
- package/src/gateway.d.ts +50 -1
- package/src/gateway.js +178 -17
- package/src/gateway.js.map +1 -1
- package/src/index.d.ts +3 -1
- package/src/index.js +1 -0
- package/src/index.js.map +1 -1
- package/src/node.js +17 -1
- package/src/node.js.map +1 -1
- package/src/registry.d.ts +33 -1
- package/src/registry.js +34 -0
- package/src/registry.js.map +1 -1
- package/src/rewriter/transforms.d.ts +19 -0
- package/src/rewriter/transforms.js +131 -13
- package/src/rewriter/transforms.js.map +1 -1
- package/src/single-flight.js +2 -0
- package/src/single-flight.js.map +1 -1
- package/src/telemetry.d.ts +39 -1
- package/src/telemetry.js.map +1 -1
package/src/gateway.js
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { BRAID_ADAPTER_META, BRAID_ADAPTER_OPTIONS_META, BRAID_FRAGMENT_ID_HEADER, BRAID_MAX_HOPS, BRAID_PROTOCOL_META, BRAID_PROTOCOL_VERSION, BRAID_REDIRECT_LOCATION_HEADER, BRAID_RETURN_URL_HEADER, braidFragmentUrl, parseBraidPathname, BRAID_SERVICE_WORKER_PATH, BRAID_VITALS_BEACON_PATH, BRAID_VITALS_SCRIPT_PATH, BRAID_VIA_HEADER, } from './protocol.js';
|
|
2
|
-
import { canFetch, canList, hasAccessRules, Registry, } from './registry.js';
|
|
2
|
+
import { canFetch, canList, hasAccessRules, isOriginSource, Registry, } from './registry.js';
|
|
3
3
|
import { createDiscoveryHandler } from './discovery.js';
|
|
4
4
|
import { createBreaker } from './breaker.js';
|
|
5
5
|
import { createSingleFlight, singleFlightKey } from './single-flight.js';
|
|
6
|
+
import { scopeRequestCookies, scopeResponseCookies, scopeSetCookie, storagePartitionOf, withoutScopedCookies } from './cookie-scope.js';
|
|
7
|
+
import { fragmentBaggage } from './baggage.js';
|
|
6
8
|
import { parseOriginRules, resolveRedirectTarget, resolveReturnUrl, rewriteReturnUrls, } from './redirect.js';
|
|
7
9
|
import { parseVitalsBeacon, vitalsCollectorScript, } from './telemetry.js';
|
|
8
10
|
import { cspNonceOf, pierceShellHtml, prepareFragmentHtml, scriptPrefetchHints, } from './rewriter/transforms.js';
|
|
@@ -33,6 +35,10 @@ export function createGateway(options) {
|
|
|
33
35
|
}
|
|
34
36
|
const mode = options.mode ?? 'development';
|
|
35
37
|
const pierceCacheControl = options.pierceCacheControl ?? 'private';
|
|
38
|
+
const realmPolicy = options.realmPolicy;
|
|
39
|
+
if (realmPolicy !== undefined && realmPolicy !== 'report' && realmPolicy !== 'enforce') {
|
|
40
|
+
throw new Error(`braid-gateway: realmPolicy must be "report" or "enforce", not "${String(realmPolicy)}"`);
|
|
41
|
+
}
|
|
36
42
|
const additionalHeaders = options.additionalHeaders ?? {};
|
|
37
43
|
const resolveAdditionalHeaders = typeof additionalHeaders === 'function'
|
|
38
44
|
? additionalHeaders
|
|
@@ -122,6 +128,9 @@ export function createGateway(options) {
|
|
|
122
128
|
function warnIfNoIdentity(manifest) {
|
|
123
129
|
if (manifest.redirect !== 'navigate' || forwardsCredentialsTo(manifest) || options.additionalHeaders)
|
|
124
130
|
return;
|
|
131
|
+
// a partitioned fragment always gets back the cookies its own login set
|
|
132
|
+
if (storagePartitionOf(manifest) !== null)
|
|
133
|
+
return;
|
|
125
134
|
if (warnedNoIdentity.has(manifest.id))
|
|
126
135
|
return;
|
|
127
136
|
warnedNoIdentity.add(manifest.id);
|
|
@@ -165,11 +174,83 @@ export function createGateway(options) {
|
|
|
165
174
|
if (!telemetry || telemetryBroken)
|
|
166
175
|
return;
|
|
167
176
|
try {
|
|
168
|
-
telemetry.on(event);
|
|
177
|
+
telemetry.on?.(event);
|
|
178
|
+
}
|
|
179
|
+
catch (error) {
|
|
180
|
+
muteTelemetry(error);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
function muteTelemetry(error) {
|
|
184
|
+
telemetryBroken = true;
|
|
185
|
+
console.error('[braid-gateway] telemetry hook threw; telemetry disabled for this process', error);
|
|
186
|
+
}
|
|
187
|
+
/** Opens a fragment fetch's telemetry hooks, muted like `emit` if they throw. */
|
|
188
|
+
function startFetchTelemetry(start) {
|
|
189
|
+
if (!telemetry?.onFragmentFetch || telemetryBroken)
|
|
190
|
+
return undefined;
|
|
191
|
+
try {
|
|
192
|
+
return telemetry.onFragmentFetch(start) ?? undefined;
|
|
169
193
|
}
|
|
170
194
|
catch (error) {
|
|
171
|
-
|
|
172
|
-
|
|
195
|
+
muteTelemetry(error);
|
|
196
|
+
return undefined;
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* Emits a fragment fetch's outcome, and ends its hooks — even once telemetry is muted, because a
|
|
201
|
+
* span opened before the mute would otherwise never close.
|
|
202
|
+
*/
|
|
203
|
+
function emitFetch(hooks, event, error) {
|
|
204
|
+
emit(event);
|
|
205
|
+
if (!hooks?.end)
|
|
206
|
+
return;
|
|
207
|
+
try {
|
|
208
|
+
hooks.end(event, error);
|
|
209
|
+
}
|
|
210
|
+
catch (thrown) {
|
|
211
|
+
if (!telemetryBroken)
|
|
212
|
+
muteTelemetry(thrown);
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
/** Applies a fragment fetch's hook headers to its request; a hook handing back bad ones is muted. */
|
|
216
|
+
function applyFetchHeaders(hooks, fragmentRequest) {
|
|
217
|
+
if (!hooks?.headers)
|
|
218
|
+
return;
|
|
219
|
+
try {
|
|
220
|
+
const headers = Object.entries(hooks.headers);
|
|
221
|
+
// validated whole before any is applied, and matched case-insensitively
|
|
222
|
+
const checked = new Headers(headers.map(([name, value]) => [name, value ?? '']));
|
|
223
|
+
// a tracestate belongs to the traceparent it came with
|
|
224
|
+
if (checked.has('traceparent'))
|
|
225
|
+
fragmentRequest.headers.delete('tracestate');
|
|
226
|
+
for (const [name, value] of headers) {
|
|
227
|
+
if (value === null)
|
|
228
|
+
fragmentRequest.headers.delete(name);
|
|
229
|
+
else
|
|
230
|
+
fragmentRequest.headers.set(name, value);
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
catch (error) {
|
|
234
|
+
muteTelemetry(error);
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
/** The endpoint fetch, inside the hooks' `run` when they have one, muted like `emit` if it throws. */
|
|
238
|
+
function runFetch(hooks, send) {
|
|
239
|
+
if (!hooks?.run || telemetryBroken)
|
|
240
|
+
return send();
|
|
241
|
+
let sent = false;
|
|
242
|
+
try {
|
|
243
|
+
return hooks.run(() => {
|
|
244
|
+
sent = true;
|
|
245
|
+
return send();
|
|
246
|
+
});
|
|
247
|
+
}
|
|
248
|
+
catch (error) {
|
|
249
|
+
// a throw from the fetch itself is the fetch's to report; only a hook that failed first is muted
|
|
250
|
+
if (sent)
|
|
251
|
+
throw error;
|
|
252
|
+
muteTelemetry(error);
|
|
253
|
+
return send();
|
|
173
254
|
}
|
|
174
255
|
}
|
|
175
256
|
/**
|
|
@@ -280,11 +361,24 @@ export function createGateway(options) {
|
|
|
280
361
|
// at the edge, so a re-pin propagates quickly; stale-while-revalidate for a day, so a
|
|
281
362
|
// returning visitor's fragment boot never waits on it — the cost is that the first boot
|
|
282
363
|
// after a re-pin may use the previous stub once, while the new one is fetched.
|
|
283
|
-
const
|
|
364
|
+
const network = fragment.capabilities?.network;
|
|
365
|
+
// The realm's own document, so this governs the realm's requests and nothing of the host's.
|
|
366
|
+
// Only plain origins reach the header (the registry warned about the rest), and an empty
|
|
367
|
+
// list is the strictest declaration there is: the host origin only.
|
|
368
|
+
const origins = Array.isArray(network) ? network.filter(isOriginSource) : [];
|
|
369
|
+
const policy = realmPolicy && Array.isArray(network)
|
|
370
|
+
? {
|
|
371
|
+
[realmPolicy === 'enforce' ? 'Content-Security-Policy' : 'Content-Security-Policy-Report-Only']: ["connect-src 'self'", ...origins].join(' '),
|
|
372
|
+
}
|
|
373
|
+
: {};
|
|
374
|
+
// The policy is part of the representation: a browser revalidating a stub cached with an
|
|
375
|
+
// old policy must get a 200 with the new one (or none), not a 304 that leaves it in place.
|
|
376
|
+
const etag = await stubEtag(Object.keys(policy).length ? `${stub}\n${JSON.stringify(policy)}` : stub);
|
|
284
377
|
const cacheHeaders = {
|
|
285
378
|
[BRAID_FRAGMENT_ID_HEADER]: fragment.id,
|
|
286
379
|
ETag: etag,
|
|
287
380
|
'Cache-Control': 'public, max-age=300, s-maxage=60, stale-while-revalidate=86400, stale-if-error=86400',
|
|
381
|
+
...policy,
|
|
288
382
|
};
|
|
289
383
|
if (etagMatches(request.headers.get('if-none-match'), etag)) {
|
|
290
384
|
return new Response(null, { status: 304, headers: cacheHeaders });
|
|
@@ -340,12 +434,18 @@ export function createGateway(options) {
|
|
|
340
434
|
const strippedUrl = new URL(requestUrl);
|
|
341
435
|
strippedUrl.pathname = route.pathname;
|
|
342
436
|
try {
|
|
437
|
+
const forwardCredentials = forwardsCredentialsTo(fragment);
|
|
438
|
+
const partition = storagePartitionOf(fragment);
|
|
439
|
+
const cookie = fragmentCookieHeader(request, fragment, forwardCredentials);
|
|
343
440
|
return {
|
|
344
441
|
fragmentId: fragment.id,
|
|
345
442
|
target: resolveEndpointUrl(fragment.endpoint, strippedUrl, fragment.id),
|
|
346
|
-
forwardCredentials
|
|
443
|
+
forwardCredentials,
|
|
347
444
|
credentialHeaders,
|
|
348
445
|
via: appendHop(request),
|
|
446
|
+
...(cookie === undefined ? {} : { cookie }),
|
|
447
|
+
baggage: forwardCredentials ? fragmentBaggage(request, options.baggage, fragment.id) : null,
|
|
448
|
+
...(partition === null ? {} : { setCookie: (line) => scopeSetCookie(line, partition) }),
|
|
349
449
|
};
|
|
350
450
|
}
|
|
351
451
|
catch {
|
|
@@ -423,6 +523,10 @@ export function createGateway(options) {
|
|
|
423
523
|
const forwarded = new Response(body, result.response);
|
|
424
524
|
// this header means "the gateway verified this target"; a fragment does not get to send it
|
|
425
525
|
forwarded.headers.delete(BRAID_REDIRECT_LOCATION_HEADER);
|
|
526
|
+
// a partitioned fragment's cookies land in its own scope (see cookie-scope.ts)
|
|
527
|
+
const partition = storagePartitionOf(fragment);
|
|
528
|
+
if (partition !== null)
|
|
529
|
+
scopeResponseCookies(forwarded.headers, partition);
|
|
426
530
|
// set, not append: an endpoint that is itself a gateway has already named the fragment
|
|
427
531
|
forwarded.headers.set(BRAID_FRAGMENT_ID_HEADER, fragment.id);
|
|
428
532
|
if (prepare) {
|
|
@@ -433,6 +537,24 @@ export function createGateway(options) {
|
|
|
433
537
|
}
|
|
434
538
|
return forwarded;
|
|
435
539
|
}
|
|
540
|
+
/**
|
|
541
|
+
* The `Cookie` header a fragment's endpoint receives, or `undefined` to leave the request as the
|
|
542
|
+
* credential rule left it.
|
|
543
|
+
*
|
|
544
|
+
* A partitioned fragment gets its own cookies — the ones its endpoint set, scoped by the gateway
|
|
545
|
+
* on the way out — whatever `forwardCredentials` says, since nothing of the shell's is in them;
|
|
546
|
+
* the host's own only when `forwardCredentials` allows. Any fragment forwarded the caller's cookies
|
|
547
|
+
* gets them without the partitioned fragments' scoped ones, which belong to those fragments alone.
|
|
548
|
+
* `null` means send none.
|
|
549
|
+
*/
|
|
550
|
+
function fragmentCookieHeader(request, fragment, forwardCredentials) {
|
|
551
|
+
const partition = storagePartitionOf(fragment);
|
|
552
|
+
if (partition !== null)
|
|
553
|
+
return scopeRequestCookies(request.headers.get('cookie'), partition, forwardCredentials);
|
|
554
|
+
if (forwardCredentials)
|
|
555
|
+
return withoutScopedCookies(request.headers.get('cookie'));
|
|
556
|
+
return undefined;
|
|
557
|
+
}
|
|
436
558
|
/**
|
|
437
559
|
* Releases a response nobody is going to read, without waiting for it.
|
|
438
560
|
*
|
|
@@ -482,8 +604,12 @@ export function createGateway(options) {
|
|
|
482
604
|
[BRAID_FRAGMENT_ID_HEADER]: fragment.id,
|
|
483
605
|
'cache-control': 'no-store',
|
|
484
606
|
});
|
|
485
|
-
|
|
486
|
-
|
|
607
|
+
const partition = storagePartitionOf(fragment);
|
|
608
|
+
for (const cookie of upstream.headers.getSetCookie()) {
|
|
609
|
+
const line = partition === null ? cookie : scopeSetCookie(cookie, partition);
|
|
610
|
+
if (line)
|
|
611
|
+
headers.append('set-cookie', line);
|
|
612
|
+
}
|
|
487
613
|
discardBody(upstream);
|
|
488
614
|
return new Response(null, { status: 409, headers });
|
|
489
615
|
}
|
|
@@ -526,10 +652,26 @@ export function createGateway(options) {
|
|
|
526
652
|
// Those authenticate the caller to the *shell's* origin, and a fragment endpoint is a
|
|
527
653
|
// different origin by construction — so they are removed unless the host has said its whole
|
|
528
654
|
// registry is inside one trust boundary. See `forwardCredentials`.
|
|
529
|
-
|
|
655
|
+
// once per request: a function-form rule need not answer the same way twice
|
|
656
|
+
const forwardCredentials = forwardsCredentialsTo(fragment);
|
|
657
|
+
if (!forwardCredentials) {
|
|
530
658
|
for (const name of credentialHeaders)
|
|
531
659
|
fragmentRequest.headers.delete(name);
|
|
532
660
|
}
|
|
661
|
+
// Cookies, before the single-flight key below is taken, so two sessions never share a fetch.
|
|
662
|
+
// See `fragmentCookieHeader`.
|
|
663
|
+
const cookie = fragmentCookieHeader(request, fragment, forwardCredentials);
|
|
664
|
+
if (cookie !== undefined) {
|
|
665
|
+
if (cookie)
|
|
666
|
+
fragmentRequest.headers.set('cookie', cookie);
|
|
667
|
+
else
|
|
668
|
+
fragmentRequest.headers.delete('cookie');
|
|
669
|
+
}
|
|
670
|
+
// Baggage only as the deployment allows, and only inside its trust boundary (see baggage.ts).
|
|
671
|
+
fragmentRequest.headers.delete('baggage');
|
|
672
|
+
const baggage = forwardCredentials ? fragmentBaggage(request, options.baggage, fragment.id) : null;
|
|
673
|
+
if (baggage)
|
|
674
|
+
fragmentRequest.headers.set('baggage', baggage);
|
|
533
675
|
// Count this gateway as a hop. The inbound value came along with the copied headers, so a chain
|
|
534
676
|
// of gateways accumulates one entry each — see BRAID_MAX_HOPS.
|
|
535
677
|
fragmentRequest.headers.set(BRAID_VIA_HEADER, appendHop(request));
|
|
@@ -580,10 +722,14 @@ export function createGateway(options) {
|
|
|
580
722
|
}
|
|
581
723
|
// per-fragment timeout budget from the manifest
|
|
582
724
|
const timeoutSignal = AbortSignal.timeout(fragment.timeoutMs);
|
|
725
|
+
// A tracing hook opens its span here and propagates it: after every other header, so its trace
|
|
726
|
+
// context is the one the endpoint sees, whatever the caller sent.
|
|
727
|
+
const fetchTelemetry = startFetchTelemetry({ fragmentId: fragment.id, phase, method: fragmentRequest.method });
|
|
728
|
+
applyFetchHeaders(fetchTelemetry, fragmentRequest);
|
|
583
729
|
// Refuse before spending the budget. The caller's fallback handling is identical either way —
|
|
584
730
|
// this only changes how long it waits to get there.
|
|
585
731
|
if (breaker && !breaker.allows(fragment.id)) {
|
|
586
|
-
|
|
732
|
+
emitFetch(fetchTelemetry, {
|
|
587
733
|
kind: 'fragment-fetch',
|
|
588
734
|
fragmentId: fragment.id,
|
|
589
735
|
phase,
|
|
@@ -596,25 +742,35 @@ export function createGateway(options) {
|
|
|
596
742
|
// Measured around the fetch only. The header work above is this process's own time, and
|
|
597
743
|
// attributing it to the fragment's endpoint would make every fragment look slower than it is.
|
|
598
744
|
const startedAt = performance.now();
|
|
745
|
+
// Whether this caller's fetch joined one already in flight: then its trace context never
|
|
746
|
+
// reached the endpoint, and its telemetry says so.
|
|
747
|
+
let key = null;
|
|
748
|
+
let sent = false;
|
|
749
|
+
const coalesced = () => (key !== null && !sent ? { coalesced: true } : {});
|
|
599
750
|
try {
|
|
600
751
|
// don't follow redirects: they are sent all the way to the client, which can then decide
|
|
601
752
|
// to follow them or not (this keeps window.location correct in the fragment's realm)
|
|
602
753
|
// Coalesced only when the manifest declares no access rules. A gated fragment's response
|
|
603
754
|
// depends on an authorization decision this layer has already made per-request, and sharing
|
|
604
755
|
// one across two callers would share that decision with it.
|
|
605
|
-
const
|
|
756
|
+
const requestKey = singleFlight && fragment.coalesce !== false && !hasAccessRules(fragment) && fragment.redirect !== 'navigate'
|
|
606
757
|
? singleFlightKey(fragmentRequest, fragmentRequestUrl.href, extraHeaderNames)
|
|
607
758
|
: null;
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
759
|
+
// keyed by fragment too: two fragments' fetcher-function endpoints are asked for the same URL
|
|
760
|
+
// (the path alone) and must never be handed each other's response
|
|
761
|
+
key = requestKey === null ? null : `${fragment.id}\u0000${requestKey}`;
|
|
762
|
+
const send = () => {
|
|
763
|
+
sent = true;
|
|
764
|
+
return runFetch(fetchTelemetry, () => fragmentFetch(fragmentRequest, { redirect: 'manual', signal: timeoutSignal }));
|
|
765
|
+
};
|
|
766
|
+
const response = key ? await singleFlight.run(key, send) : await send();
|
|
611
767
|
// A 5xx is a reachable endpoint, but it is not a working one — a fragment returning 500 on
|
|
612
768
|
// every request would otherwise hold the circuit closed forever and keep paying for it.
|
|
613
769
|
if (response.status >= 500)
|
|
614
770
|
breaker?.failed(fragment.id);
|
|
615
771
|
else
|
|
616
772
|
breaker?.succeeded(fragment.id);
|
|
617
|
-
|
|
773
|
+
emitFetch(fetchTelemetry, {
|
|
618
774
|
kind: 'fragment-fetch',
|
|
619
775
|
fragmentId: fragment.id,
|
|
620
776
|
phase,
|
|
@@ -623,6 +779,7 @@ export function createGateway(options) {
|
|
|
623
779
|
// a reachable-but-broken endpoint into the same bucket as an unreachable one loses it.
|
|
624
780
|
outcome: 'ok',
|
|
625
781
|
status: response.status,
|
|
782
|
+
...coalesced(),
|
|
626
783
|
durationMs: performance.now() - startedAt,
|
|
627
784
|
at: Date.now(),
|
|
628
785
|
});
|
|
@@ -630,14 +787,15 @@ export function createGateway(options) {
|
|
|
630
787
|
}
|
|
631
788
|
catch (error) {
|
|
632
789
|
breaker?.failed(fragment.id);
|
|
633
|
-
|
|
790
|
+
emitFetch(fetchTelemetry, {
|
|
634
791
|
kind: 'fragment-fetch',
|
|
635
792
|
fragmentId: fragment.id,
|
|
636
793
|
phase,
|
|
637
794
|
outcome: timeoutSignal.aborted ? 'timeout' : 'error',
|
|
795
|
+
...coalesced(),
|
|
638
796
|
durationMs: performance.now() - startedAt,
|
|
639
797
|
at: Date.now(),
|
|
640
|
-
});
|
|
798
|
+
}, error);
|
|
641
799
|
return { ok: false, error, timedOut: timeoutSignal.aborted };
|
|
642
800
|
}
|
|
643
801
|
}
|
|
@@ -747,6 +905,7 @@ export function createGateway(options) {
|
|
|
747
905
|
fragmentId: fragment.id,
|
|
748
906
|
...(fragment.src === undefined ? {} : { src: fragment.src }),
|
|
749
907
|
bound: fragment.bound !== false,
|
|
908
|
+
...(fragment.stream === 'out-of-order' ? { outOfOrder: true } : {}),
|
|
750
909
|
settled: fragmentResults[index].then((result) => pierceContent(fragment, result)),
|
|
751
910
|
}));
|
|
752
911
|
/** What a fragment's fetch puts into its slot: its prepared content, or its fallback. */
|
|
@@ -1061,6 +1220,8 @@ function adapterOptionsMeta(fragment, basePath) {
|
|
|
1061
1220
|
// the boundary, and the stub is the one thing it reads before anything else crosses.
|
|
1062
1221
|
if (fragment.capabilities)
|
|
1063
1222
|
options['capabilities'] = fragment.capabilities;
|
|
1223
|
+
if (fragment.requires?.length)
|
|
1224
|
+
options['requires'] = fragment.requires;
|
|
1064
1225
|
if (Object.keys(options).length === 0)
|
|
1065
1226
|
return '';
|
|
1066
1227
|
return `<meta name="${BRAID_ADAPTER_OPTIONS_META}" content="${escapeHtml(JSON.stringify(options))}">`;
|
package/src/gateway.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gateway.js","sourceRoot":"","sources":["../../../../libs/braid-gateway/src/gateway.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"gateway.js","sourceRoot":"","sources":["../../../../libs/braid-gateway/src/gateway.ts"],"names":[],"mappings":"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"}
|
package/src/index.d.ts
CHANGED
|
@@ -19,7 +19,9 @@ export { createBreaker, DEFAULT_BREAKER } from './breaker.js';
|
|
|
19
19
|
export { createSingleFlight, singleFlightKey } from './single-flight.js';
|
|
20
20
|
export type { SingleFlight } from './single-flight.js';
|
|
21
21
|
export type { Breaker, BreakerOptions, BreakerState, BreakerTransition } from './breaker.js';
|
|
22
|
-
export type { TelemetryOptions, TelemetryEvent, FragmentFetchEvent, WebVitalEvent, WebVitalName, BreakerEvent, RegistryEvent, } from './telemetry.js';
|
|
22
|
+
export type { TelemetryOptions, TelemetryEvent, FragmentFetchEvent, WebVitalEvent, WebVitalName, BreakerEvent, RegistryEvent, FragmentFetchStart, FragmentFetchHooks, } from './telemetry.js';
|
|
23
|
+
export { fragmentBaggage } from './baggage.js';
|
|
24
|
+
export type { BaggageOptions } from './baggage.js';
|
|
23
25
|
export { DEFAULT_ADAPTER, DEFAULT_TIMEOUT_MS, normalizeManifest, Registry, } from './registry.js';
|
|
24
26
|
export type { FragmentManifest, ResolvedFragmentManifest, FragmentFallback, FragmentAccess, AccessRule, Principal, RegistrySource, RegistryRefresh, } from './registry.js';
|
|
25
27
|
export { satisfies, canList, canFetch } from './registry.js';
|
package/src/index.js
CHANGED
|
@@ -16,6 +16,7 @@ export { createGateway, toWebMiddleware, toFetchHandler } from './gateway.js';
|
|
|
16
16
|
export { rateVital, parseVitalsBeacon, vitalsCollectorScript } from './telemetry.js';
|
|
17
17
|
export { createBreaker, DEFAULT_BREAKER } from './breaker.js';
|
|
18
18
|
export { createSingleFlight, singleFlightKey } from './single-flight.js';
|
|
19
|
+
export { fragmentBaggage } from './baggage.js';
|
|
19
20
|
export { DEFAULT_ADAPTER, DEFAULT_TIMEOUT_MS, normalizeManifest, Registry, } from './registry.js';
|
|
20
21
|
export { satisfies, canList, canFetch } from './registry.js';
|
|
21
22
|
export { DEFAULT_DISCOVERY_PATH, DEFAULT_DISCOVERY_PAGE_SIZE } from './discovery.js';
|
package/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/braid-gateway/src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9E,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACrF,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/braid-gateway/src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9E,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACrF,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAczE,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,QAAQ,GACT,MAAM,eAAe,CAAC;AAWvB,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AAErF,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAQ5D,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EAClB,qBAAqB,EACrB,sBAAsB,EACtB,yBAAyB,EACzB,kBAAkB,GACnB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAErF,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC"}
|
package/src/node.js
CHANGED
|
@@ -203,6 +203,17 @@ export function toNodeUpgradeHandler(gateway, next) {
|
|
|
203
203
|
for (const name of target.credentialHeaders)
|
|
204
204
|
delete headers[name];
|
|
205
205
|
}
|
|
206
|
+
// baggage only as the gateway allows, like its fetches (see UpgradeTarget.baggage)
|
|
207
|
+
delete headers['baggage'];
|
|
208
|
+
if (target.baggage)
|
|
209
|
+
headers['baggage'] = target.baggage;
|
|
210
|
+
// the cookies this fragment may have, like its fetches (see UpgradeTarget.cookie)
|
|
211
|
+
if (target.cookie !== undefined) {
|
|
212
|
+
if (target.cookie === null)
|
|
213
|
+
delete headers['cookie'];
|
|
214
|
+
else
|
|
215
|
+
headers['cookie'] = target.cookie;
|
|
216
|
+
}
|
|
206
217
|
const upstream = transport.request({
|
|
207
218
|
host: target.target.hostname,
|
|
208
219
|
port: target.target.port || (isSecure ? 443 : 80),
|
|
@@ -213,7 +224,12 @@ export function toNodeUpgradeHandler(gateway, next) {
|
|
|
213
224
|
upstream.on('upgrade', (upstreamRes, upstreamSocket, upstreamHead) => {
|
|
214
225
|
const statusLine = `HTTP/1.1 ${upstreamRes.statusCode} ${upstreamRes.statusMessage}\r\n` +
|
|
215
226
|
Object.entries(upstreamRes.headers)
|
|
216
|
-
.flatMap(([name, value]) =>
|
|
227
|
+
.flatMap(([name, value]) => {
|
|
228
|
+
const values = Array.isArray(value) ? value : [value];
|
|
229
|
+
// a partitioned fragment's handshake cookies land in its scope, like any it sets
|
|
230
|
+
const relayed = name === 'set-cookie' && target.setCookie ? values.map((v) => target.setCookie(String(v))).filter(Boolean) : values;
|
|
231
|
+
return relayed.map((v) => `${name}: ${v}`);
|
|
232
|
+
})
|
|
217
233
|
.join('\r\n') +
|
|
218
234
|
'\r\n\r\n';
|
|
219
235
|
socket.write(statusLine);
|
package/src/node.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node.js","sourceRoot":"","sources":["../../../../libs/braid-gateway/src/node.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"node.js","sourceRoot":"","sources":["../../../../libs/braid-gateway/src/node.ts"],"names":[],"mappings":"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"}
|