@braidlabs/gateway 0.6.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/registry.d.ts
CHANGED
|
@@ -70,10 +70,24 @@ export interface FragmentManifest {
|
|
|
70
70
|
sandbox?: string[];
|
|
71
71
|
permissions?: string[];
|
|
72
72
|
network?: string[];
|
|
73
|
-
|
|
73
|
+
/**
|
|
74
|
+
* Whose Web Storage this trusted (compat) fragment sees: the host origin's (`'shared'`, the
|
|
75
|
+
* default), its own (`'partitioned'`), or a store shared by name (`{ partition: 'kcd' }`).
|
|
76
|
+
*/
|
|
77
|
+
storage?: 'partitioned' | 'shared' | {
|
|
78
|
+
partition: string;
|
|
79
|
+
};
|
|
80
|
+
/** What the fragment's own runtime HTML writes may contain: `'sanitize'` or `'report'`. */
|
|
81
|
+
html?: 'report' | 'sanitize';
|
|
74
82
|
/** Host globals this trusted fragment shares; replaces the host's `initBraid` default. */
|
|
75
83
|
sharedGlobals?: string[];
|
|
76
84
|
};
|
|
85
|
+
/**
|
|
86
|
+
* Mount prerequisites this fragment needs before its code runs — keys the host resolves with
|
|
87
|
+
* `initBraid({ prerequisites })`, such as `session:orders` for a warm session on the fragment's
|
|
88
|
+
* authorization server. Stamped onto the realm stub.
|
|
89
|
+
*/
|
|
90
|
+
requires?: string[];
|
|
77
91
|
/** Module entry for contract-mode fragments (unused by the compat adapter). */
|
|
78
92
|
entry?: string;
|
|
79
93
|
/**
|
|
@@ -122,6 +136,18 @@ export interface FragmentManifest {
|
|
|
122
136
|
}>;
|
|
123
137
|
/** Per-fragment budget for endpoint fetches, in milliseconds. */
|
|
124
138
|
timeoutMs?: number;
|
|
139
|
+
/**
|
|
140
|
+
* What the page stream does when it reaches this fragment's slot before the fragment has answered.
|
|
141
|
+
*
|
|
142
|
+
* `in-order` (the default) waits there, up to `timeoutMs`, so everything after the slot waits too.
|
|
143
|
+
* `out-of-order` streams on past the empty slot and sends the fragment's markup at the end of the
|
|
144
|
+
* document once it arrives; the client moves it into the slot. A fragment whose response headers
|
|
145
|
+
* are in by the time its slot streams, or a turn of the event loop later, is inlined either way,
|
|
146
|
+
* so the slot shifts layout only when waiting would have held up the page. Reserve the slot's
|
|
147
|
+
* space in host CSS to keep that shift at zero, and keep the fragment holding the page's largest
|
|
148
|
+
* content in-order.
|
|
149
|
+
*/
|
|
150
|
+
stream?: 'in-order' | 'out-of-order';
|
|
125
151
|
/**
|
|
126
152
|
* Opt this fragment out of concurrent-fetch coalescing. Defaults to `true` (coalesced).
|
|
127
153
|
*
|
|
@@ -243,6 +269,12 @@ export declare const DEFAULT_TIMEOUT_MS = 1500;
|
|
|
243
269
|
*/
|
|
244
270
|
export type RegistrySource = FragmentManifest[] | string | (() => Promise<FragmentManifest[]>);
|
|
245
271
|
export declare function normalizeManifest(manifest: FragmentManifest): ResolvedFragmentManifest;
|
|
272
|
+
/**
|
|
273
|
+
* An origin as a CSP source expression: a scheme, a host (optionally `*.`-prefixed), an optional
|
|
274
|
+
* port, and nothing else. Nothing else may reach the header — a path widens or narrows matching in
|
|
275
|
+
* ways nobody reviewing a manifest expects, and a quote, `;` or `,` would inject a directive.
|
|
276
|
+
*/
|
|
277
|
+
export declare function isOriginSource(entry: unknown): boolean;
|
|
246
278
|
/** What a refresh changed, so the gateway can reset per-fragment state that no longer applies. */
|
|
247
279
|
export interface RegistryRefresh {
|
|
248
280
|
/** False when the source returned the very manifests already being served. */
|
package/src/registry.js
CHANGED
|
@@ -56,6 +56,32 @@ export function normalizeManifest(manifest) {
|
|
|
56
56
|
console.warn(`braid-gateway: fragment "${manifest.id}" declares bound: false without a src, so it will be ` +
|
|
57
57
|
`fetched at each page's own path — declare the path its content lives at, e.g. src: "/panel"`);
|
|
58
58
|
}
|
|
59
|
+
if (manifest.requires !== undefined &&
|
|
60
|
+
(!Array.isArray(manifest.requires) || manifest.requires.some((key) => typeof key !== 'string' || key.trim() === ''))) {
|
|
61
|
+
throw new Error(`braid-gateway: manifest "${manifest.id}" has a requires that is not a list of non-empty keys`);
|
|
62
|
+
}
|
|
63
|
+
// Warned, not thrown: `network` was advisory before `realmPolicy` existed, and a gateway that never
|
|
64
|
+
// turns the policy on must not refuse to start over an entry it would never use. With a policy on,
|
|
65
|
+
// these entries are left out of it, so the policy is stricter for them, never looser.
|
|
66
|
+
const network = manifest.capabilities?.network;
|
|
67
|
+
if (network !== undefined) {
|
|
68
|
+
const invalid = Array.isArray(network) ? network.filter((entry) => !isOriginSource(entry)) : [network];
|
|
69
|
+
if (invalid.length) {
|
|
70
|
+
console.warn(`braid-gateway: manifest "${manifest.id}" has capabilities.network entries that are not plain origins: ` +
|
|
71
|
+
`${invalid.map((entry) => JSON.stringify(entry)).join(', ')} — they are left out of any realm policy. ` +
|
|
72
|
+
`List origins only, e.g. "https://api.example.com" or "wss://*.example.com:443"; an internationalised ` +
|
|
73
|
+
`host must be written in punycode (xn--…), and IP v6 literals cannot be expressed in a CSP source`);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
const html = manifest.capabilities?.html;
|
|
77
|
+
if (html !== undefined && html !== 'report' && html !== 'sanitize') {
|
|
78
|
+
console.warn(`braid-gateway: manifest "${manifest.id}" declares capabilities.html ${JSON.stringify(html)}, which is ignored — ` +
|
|
79
|
+
`use "report" or "sanitize"`);
|
|
80
|
+
}
|
|
81
|
+
if (manifest.stream !== undefined && manifest.stream !== 'in-order' && manifest.stream !== 'out-of-order') {
|
|
82
|
+
throw new Error(`braid-gateway: manifest "${manifest.id}" declares stream: "${String(manifest.stream)}" — ` +
|
|
83
|
+
`use "in-order" or "out-of-order"`);
|
|
84
|
+
}
|
|
59
85
|
if (manifest.redirect !== undefined && manifest.redirect !== 'error' && manifest.redirect !== 'navigate') {
|
|
60
86
|
throw new Error(`braid-gateway: manifest "${manifest.id}" declares redirect: "${String(manifest.redirect)}" — ` +
|
|
61
87
|
`use "error" or "navigate"`);
|
|
@@ -68,6 +94,14 @@ export function normalizeManifest(manifest) {
|
|
|
68
94
|
bound: manifest.bound ?? true,
|
|
69
95
|
};
|
|
70
96
|
}
|
|
97
|
+
/**
|
|
98
|
+
* An origin as a CSP source expression: a scheme, a host (optionally `*.`-prefixed), an optional
|
|
99
|
+
* port, and nothing else. Nothing else may reach the header — a path widens or narrows matching in
|
|
100
|
+
* ways nobody reviewing a manifest expects, and a quote, `;` or `,` would inject a directive.
|
|
101
|
+
*/
|
|
102
|
+
export function isOriginSource(entry) {
|
|
103
|
+
return typeof entry === 'string' && /^(https?|wss?):\/\/(\*\.)?[a-z0-9-]+(\.[a-z0-9-]+)*(:(\d{1,5}|\*))?$/i.test(entry);
|
|
104
|
+
}
|
|
71
105
|
/**
|
|
72
106
|
* An absolute path that means the same thing however it is joined onto an endpoint: one leading
|
|
73
107
|
* slash, no backslashes (which URL parsers treat as slashes), no dot segments, no query or hash.
|
package/src/registry.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../../libs/braid-gateway/src/registry.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../../libs/braid-gateway/src/registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -126,7 +126,26 @@ export interface PierceTarget {
|
|
|
126
126
|
*/
|
|
127
127
|
export interface PendingPierceTarget extends Pick<PierceTarget, 'fragmentId' | 'src' | 'bound'> {
|
|
128
128
|
settled: Promise<Pick<PierceTarget, 'content' | 'fallbackReason' | 'after'>>;
|
|
129
|
+
/**
|
|
130
|
+
* Stream past this fragment's slot if it has not settled by the time the stream reaches it, and
|
|
131
|
+
* send its markup at the end of the document instead. See the manifest's `stream`.
|
|
132
|
+
*/
|
|
133
|
+
outOfOrder?: boolean;
|
|
129
134
|
}
|
|
135
|
+
/**
|
|
136
|
+
* The element that carries a fragment's late markup, sent at the end of the document.
|
|
137
|
+
*
|
|
138
|
+
* Hidden, so a page without JavaScript shows the slot's skeleton rather than the fragment at the
|
|
139
|
+
* foot of the page; the client runtime defines it and moves its shadow root's content into the
|
|
140
|
+
* slot it names (see `@braidlabs/core`'s `late-content.ts`).
|
|
141
|
+
*/
|
|
142
|
+
export declare const BRAID_LATE_TAG = "braid-late";
|
|
143
|
+
/**
|
|
144
|
+
* Closes a `<braid-late>` with content. The client delivers late markup when this is parsed: by then
|
|
145
|
+
* the declarative shadow root before it is attached, which it is not when `<braid-late>`'s own start
|
|
146
|
+
* tag is — the moment its element callbacks run if the runtime is already loaded.
|
|
147
|
+
*/
|
|
148
|
+
export declare const BRAID_LATE_END_TAG = "braid-late-end";
|
|
130
149
|
export interface PierceOptions {
|
|
131
150
|
/** The shell application's HTML. */
|
|
132
151
|
shell: ReadableStream<Uint8Array>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { braidFragmentUrl } from '../protocol.js';
|
|
2
|
-
import { concatStreams, rewriteHtmlStream } from './html-rewrite-stream.js';
|
|
2
|
+
import { concatStreams, rewriteHtmlStream, toReadableStream } from './html-rewrite-stream.js';
|
|
3
3
|
/**
|
|
4
4
|
* The composition protocol's HTML transforms, expressed against the owned rewriter.
|
|
5
5
|
*
|
|
@@ -185,6 +185,15 @@ export function prepareFragmentHtml(body, options) {
|
|
|
185
185
|
const rel = tag.getAttribute('rel');
|
|
186
186
|
const href = tag.getAttribute('href');
|
|
187
187
|
const crossorigin = tag.getAttribute('crossorigin');
|
|
188
|
+
// `inert-*` is Braid's own marker for a link it neutralized; markup that arrives with it
|
|
189
|
+
// already set would be revived by the client as though the gateway had written it
|
|
190
|
+
// A character reference the rewriter does not decode (`inert-…`) is read the same way
|
|
191
|
+
// by the browser, so any reference in a rel is treated as possibly the marker.
|
|
192
|
+
if (rel !== null && (/\binert-/i.test(rel) || rel.includes('&'))) {
|
|
193
|
+
tag.setAttribute('rel', `blocked-${rel}`);
|
|
194
|
+
tag.setAttribute('data-braid-blocked', 'rel');
|
|
195
|
+
return;
|
|
196
|
+
}
|
|
188
197
|
if (rel === 'modulepreload')
|
|
189
198
|
hint(href, crossorigin ?? '');
|
|
190
199
|
if (rel === 'preload' && tag.getAttribute('as') === 'script')
|
|
@@ -256,7 +265,7 @@ function asUrlParserReadsIt(rawUrl) {
|
|
|
256
265
|
}
|
|
257
266
|
/** Rewrites a tag's subresource URLs into the fragment's namespace. */
|
|
258
267
|
function rewriteSubresourceUrls(tag, fragmentRoot, baseHref) {
|
|
259
|
-
const attributes = SUBRESOURCE_ATTRIBUTES[tag.tagName];
|
|
268
|
+
const attributes = Object.hasOwn(SUBRESOURCE_ATTRIBUTES, tag.tagName) ? SUBRESOURCE_ATTRIBUTES[tag.tagName] : undefined;
|
|
260
269
|
if (!attributes)
|
|
261
270
|
return;
|
|
262
271
|
for (const attributeName of attributes) {
|
|
@@ -282,6 +291,9 @@ function namespaceUrl(rawUrl, fragmentRoot, baseHref) {
|
|
|
282
291
|
if (!url || url.startsWith('#') || url.startsWith('//') || /^[a-z][a-z0-9+.-]*:/i.test(url)) {
|
|
283
292
|
return null;
|
|
284
293
|
}
|
|
294
|
+
// already inside the namespace (a fragment that writes its own re-rooted URLs): leave it
|
|
295
|
+
if (url === fragmentRoot || url.startsWith(`${fragmentRoot}/`))
|
|
296
|
+
return null;
|
|
285
297
|
// resolve exactly as the browser would have in the fragment's own document, then re-root it
|
|
286
298
|
const resolved = new URL(url, `http://braid.invalid${baseHref.startsWith('/') ? baseHref : `/${baseHref}`}`);
|
|
287
299
|
return `${fragmentRoot}${resolved.pathname}${resolved.search}${resolved.hash}`;
|
|
@@ -325,6 +337,20 @@ export function scriptPrefetchHints(scripts) {
|
|
|
325
337
|
})
|
|
326
338
|
.join('');
|
|
327
339
|
}
|
|
340
|
+
/**
|
|
341
|
+
* The element that carries a fragment's late markup, sent at the end of the document.
|
|
342
|
+
*
|
|
343
|
+
* Hidden, so a page without JavaScript shows the slot's skeleton rather than the fragment at the
|
|
344
|
+
* foot of the page; the client runtime defines it and moves its shadow root's content into the
|
|
345
|
+
* slot it names (see `@braidlabs/core`'s `late-content.ts`).
|
|
346
|
+
*/
|
|
347
|
+
export const BRAID_LATE_TAG = 'braid-late';
|
|
348
|
+
/**
|
|
349
|
+
* Closes a `<braid-late>` with content. The client delivers late markup when this is parsed: by then
|
|
350
|
+
* the declarative shadow root before it is attached, which it is not when `<braid-late>`'s own start
|
|
351
|
+
* tag is — the moment its element callbacks run if the runtime is already loaded.
|
|
352
|
+
*/
|
|
353
|
+
export const BRAID_LATE_END_TAG = 'braid-late-end';
|
|
328
354
|
/**
|
|
329
355
|
* Pierces a fragment into the shell's HTML stream.
|
|
330
356
|
*
|
|
@@ -356,6 +382,34 @@ export function pierceShellHtml(options) {
|
|
|
356
382
|
/** Fragments an outlet took, so a named slot that asks for one later can be told why it is empty. */
|
|
357
383
|
const inOutlet = new Set();
|
|
358
384
|
let stylesInjected = false;
|
|
385
|
+
/** Fragments that have answered, so a slot can tell without waiting whether it would have to wait. */
|
|
386
|
+
const settledIds = new Set();
|
|
387
|
+
for (const fragment of options.fragments) {
|
|
388
|
+
if ('settled' in fragment)
|
|
389
|
+
void fragment.settled.then(() => settledIds.add(fragment.fragmentId), () => undefined);
|
|
390
|
+
}
|
|
391
|
+
/**
|
|
392
|
+
* Whether a fragment has answered, or answers within one more turn of the event loop. The grace
|
|
393
|
+
* turn keeps a fragment that is effectively instant — one that answered while the shell's first
|
|
394
|
+
* chunk was still being parsed — inline, where it causes no layout shift, instead of deferring it.
|
|
395
|
+
*/
|
|
396
|
+
const settlesSoon = (target) => settledIds.has(target.fragmentId)
|
|
397
|
+
? Promise.resolve(true)
|
|
398
|
+
: new Promise((resolve) => {
|
|
399
|
+
const timer = setTimeout(() => resolve(settledIds.has(target.fragmentId)), 0);
|
|
400
|
+
void target.settled.then(() => {
|
|
401
|
+
clearTimeout(timer);
|
|
402
|
+
resolve(true);
|
|
403
|
+
}, () => undefined);
|
|
404
|
+
});
|
|
405
|
+
/** Slots the stream went past; their markup follows at the end of the document. */
|
|
406
|
+
const late = [];
|
|
407
|
+
/**
|
|
408
|
+
* Pairs each deferred slot with its late markup. Minted per response, so markup the gateway did not
|
|
409
|
+
* write — a fragment's own `<braid-late>`, or anything injected into the page — cannot know it and
|
|
410
|
+
* cannot fill another fragment's slot.
|
|
411
|
+
*/
|
|
412
|
+
let lateToken;
|
|
359
413
|
const settle = async (target) => 'settled' in target
|
|
360
414
|
? {
|
|
361
415
|
fragmentId: target.fragmentId,
|
|
@@ -389,6 +443,47 @@ export function pierceShellHtml(options) {
|
|
|
389
443
|
const orphans = (await Promise.all(remaining.map(settle))).filter((target) => target.content);
|
|
390
444
|
return orphans.length ? concatStreams(orphans.map(orphanSlot)) : undefined;
|
|
391
445
|
};
|
|
446
|
+
/**
|
|
447
|
+
* The markup of every slot the stream went past, each sent as soon as its response headers are in,
|
|
448
|
+
* in that order — so a fragment that has answered is not held up behind one that has not. (Its
|
|
449
|
+
* body still streams in full before the next is sent.) A fragment with nothing to show still gets
|
|
450
|
+
* an element, marked empty, which tells the client to boot that slot itself now rather than wait
|
|
451
|
+
* for the document to finish.
|
|
452
|
+
*/
|
|
453
|
+
const lateContent = () => {
|
|
454
|
+
const waiting = late.splice(0);
|
|
455
|
+
if (!waiting.length)
|
|
456
|
+
return undefined;
|
|
457
|
+
const token = escapeAttribute(lateToken);
|
|
458
|
+
return toReadableStream((async function* () {
|
|
459
|
+
// `settle` is not meant to reject, but if preparing a fragment ever throws, that one slot
|
|
460
|
+
// boots client-side rather than the whole tail of the document being lost
|
|
461
|
+
const inFlight = new Map(waiting.map((target) => [
|
|
462
|
+
target.fragmentId,
|
|
463
|
+
settle(target).catch(() => ({ fragmentId: target.fragmentId, content: null })),
|
|
464
|
+
]));
|
|
465
|
+
while (inFlight.size) {
|
|
466
|
+
const target = await Promise.race(inFlight.values());
|
|
467
|
+
inFlight.delete(target.fragmentId);
|
|
468
|
+
const open = `<${BRAID_LATE_TAG} for="${escapeAttribute(target.fragmentId)}" token="${token}"`;
|
|
469
|
+
if (!target.content) {
|
|
470
|
+
const reason = target.fallbackReason ? ` data-braid-fallback="${escapeAttribute(target.fallbackReason)}"` : '';
|
|
471
|
+
yield* readAll(concatStreams([`${open} data-braid-empty=""${reason} hidden></${BRAID_LATE_TAG}>`]));
|
|
472
|
+
continue;
|
|
473
|
+
}
|
|
474
|
+
yield* readAll(concatStreams([
|
|
475
|
+
`${open} hidden>`,
|
|
476
|
+
...shadowRoot(target),
|
|
477
|
+
`<${BRAID_LATE_END_TAG}></${BRAID_LATE_END_TAG}></${BRAID_LATE_TAG}>`,
|
|
478
|
+
]));
|
|
479
|
+
}
|
|
480
|
+
})());
|
|
481
|
+
};
|
|
482
|
+
/** Orphans, then late content: both belong at the end of the document. */
|
|
483
|
+
const endOfDocument = async () => {
|
|
484
|
+
const parts = [await remainingOrphans(), lateContent()].filter((part) => part !== undefined);
|
|
485
|
+
return parts.length ? concatStreams(parts) : undefined;
|
|
486
|
+
};
|
|
392
487
|
return rewriteHtmlStream(shell, {
|
|
393
488
|
handlers: {
|
|
394
489
|
head: {
|
|
@@ -437,30 +532,38 @@ export function pierceShellHtml(options) {
|
|
|
437
532
|
},
|
|
438
533
|
body: {
|
|
439
534
|
async endTag(tag) {
|
|
440
|
-
const
|
|
441
|
-
if (
|
|
442
|
-
tag.before(
|
|
535
|
+
const end = await endOfDocument();
|
|
536
|
+
if (end)
|
|
537
|
+
tag.before(end);
|
|
443
538
|
},
|
|
444
539
|
},
|
|
445
540
|
},
|
|
446
541
|
// `</body>` is optional in HTML and frequently omitted — this is the safety net
|
|
447
|
-
onEnd:
|
|
542
|
+
onEnd: endOfDocument,
|
|
448
543
|
});
|
|
449
544
|
/** Fills a pierced slot once its fragment has settled. The one place the stream waits for it. */
|
|
450
545
|
async function pierceSlot(tag, unsettled) {
|
|
451
|
-
// everything before the slot is already out
|
|
452
|
-
const target = await settle(unsettled);
|
|
453
546
|
const declared = tag.getAttribute('src');
|
|
454
|
-
if (
|
|
547
|
+
if (unsettled.src && declared && declared !== unsettled.src) {
|
|
455
548
|
// Two sources of truth that disagree: the gateway pierced content from one path while
|
|
456
549
|
// the client will boot the fragment at another, so the widget changes under the user
|
|
457
550
|
// the moment it hydrates. Cheap to say, and invisible otherwise.
|
|
458
|
-
console.warn(`braid-gateway: slot for fragment "${
|
|
459
|
-
`but its manifest declares src="${
|
|
551
|
+
console.warn(`braid-gateway: slot for fragment "${unsettled.fragmentId}" declares src="${declared}" ` +
|
|
552
|
+
`but its manifest declares src="${unsettled.src}" — the pierced content and the client ` +
|
|
460
553
|
`boot would come from different paths`);
|
|
461
554
|
}
|
|
462
|
-
if (
|
|
463
|
-
tag.setAttribute('src',
|
|
555
|
+
if (unsettled.src && !declared)
|
|
556
|
+
tag.setAttribute('src', unsettled.src);
|
|
557
|
+
if ('settled' in unsettled && unsettled.outOfOrder && !(await settlesSoon(unsettled))) {
|
|
558
|
+
// Waiting here would hold up everything after the slot. Mark it, so the client waits for the
|
|
559
|
+
// late markup instead of fetching, and stream on.
|
|
560
|
+
lateToken ??= crypto.randomUUID();
|
|
561
|
+
tag.setAttribute('data-braid-deferred', lateToken);
|
|
562
|
+
late.push(unsettled);
|
|
563
|
+
return;
|
|
564
|
+
}
|
|
565
|
+
// everything before the slot is already out
|
|
566
|
+
const target = await settle(unsettled);
|
|
464
567
|
if (!target.content) {
|
|
465
568
|
// nothing to pierce: mark the slot so the page can style a skeleton, and let the
|
|
466
569
|
// client runtime fetch the fragment itself
|
|
@@ -492,4 +595,19 @@ function lazyText(text) {
|
|
|
492
595
|
function escapeAttribute(value) {
|
|
493
596
|
return value.replaceAll('&', '&').replaceAll('"', '"').replaceAll('<', '<');
|
|
494
597
|
}
|
|
598
|
+
/** Every chunk of a stream, for re-yielding inside another generator. */
|
|
599
|
+
async function* readAll(stream) {
|
|
600
|
+
const reader = stream.getReader();
|
|
601
|
+
try {
|
|
602
|
+
for (;;) {
|
|
603
|
+
const { done, value } = await reader.read();
|
|
604
|
+
if (done)
|
|
605
|
+
return;
|
|
606
|
+
yield value;
|
|
607
|
+
}
|
|
608
|
+
}
|
|
609
|
+
finally {
|
|
610
|
+
reader.releaseLock();
|
|
611
|
+
}
|
|
612
|
+
}
|
|
495
613
|
//# sourceMappingURL=transforms.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transforms.js","sourceRoot":"","sources":["../../../../../libs/braid-gateway/src/rewriter/transforms.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"transforms.js","sourceRoot":"","sources":["../../../../../libs/braid-gateway/src/rewriter/transforms.ts"],"names":[],"mappings":"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"}
|
package/src/single-flight.js
CHANGED
|
@@ -99,6 +99,8 @@ export function singleFlightKey(request, url, extraHeaders = []) {
|
|
|
99
99
|
// chain: if a registry loops a fragment back through this gateway, the inner request would
|
|
100
100
|
// otherwise wait on the outer one — itself — until the timeout.
|
|
101
101
|
request.headers.get(BRAID_VIA_HEADER) ?? '',
|
|
102
|
+
// Context an endpoint may route or render on — a tenant, say (see `GatewayOptions.baggage`).
|
|
103
|
+
request.headers.get('baggage') ?? '',
|
|
102
104
|
// Sorted, so the key does not depend on the order a host happened to build its object in.
|
|
103
105
|
...[...extraHeaders].sort().map((name) => `${name}=${request.headers.get(name) ?? ''}`),
|
|
104
106
|
].join('\n');
|
package/src/single-flight.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"single-flight.js","sourceRoot":"","sources":["../../../../libs/braid-gateway/src/single-flight.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AA+BjD,MAAM,UAAU,kBAAkB;IAChC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA0D,CAAC;IAEnF,OAAO;QACL,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO;YACpB,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACnC,IAAI,QAAQ,EAAE,CAAC;gBACb,wFAAwF;gBACxF,qBAAqB;gBACrB,QAAQ,CAAC,OAAO,EAAE,CAAC;gBACnB,OAAO,CAAC,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC;YACzC,CAAC;YAED,MAAM,KAAK,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;YAChD,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAEzB,IAAI,QAAkB,CAAC;YACvB,IAAI,CAAC;gBACH,QAAQ,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC;YAChC,CAAC;oBAAS,CAAC;gBACT,wFAAwF;gBACxF,yFAAyF;gBACzF,gCAAgC;gBAChC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACvB,CAAC;YAED,2FAA2F;YAC3F,0FAA0F;YAC1F,IAAI,KAAK,CAAC,OAAO,KAAK,CAAC;gBAAE,OAAO,QAAQ,CAAC;YAEzC,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC;YAE9B;;;;;;;;;;eAUG;YACH,UAAU,CAAC,GAAG,EAAE,CAAC,KAAK,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;YAEzE,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI;KAC1B,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,UAAU,eAAe,CAC7B,OAAgB,EAChB,GAAW,EACX,eAAkC,EAAE;IAEpC,2FAA2F;IAC3F,IAAI,OAAO,CAAC,MAAM,KAAK,KAAK,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IAEvE,gGAAgG;IAChG,sCAAsC;IACtC,IAAI,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IAE9C,OAAO;QACL,OAAO,CAAC,MAAM;QACd,GAAG;QACH,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE;QACnC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,EAAE;QAC1C,6DAA6D;QAC7D,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,EAAE;QAC5C,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE;QACnC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE;QACvC,4FAA4F;QAC5F,iCAAiC;QACjC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,EAAE;QAC1C,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,EAAE;QAC9C,8FAA8F;QAC9F,2FAA2F;QAC3F,gEAAgE;QAChE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,EAAE;QAC3C,0FAA0F;QAC1F,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;KACxF,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC"}
|
|
1
|
+
{"version":3,"file":"single-flight.js","sourceRoot":"","sources":["../../../../libs/braid-gateway/src/single-flight.ts"],"names":[],"mappings":"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"}
|
package/src/telemetry.d.ts
CHANGED
|
@@ -29,6 +29,11 @@ export interface FragmentFetchEvent {
|
|
|
29
29
|
outcome: 'ok' | 'error' | 'timeout' | 'shed';
|
|
30
30
|
/** Absent when the fetch threw before a response existed. */
|
|
31
31
|
status?: number;
|
|
32
|
+
/**
|
|
33
|
+
* `true` when this fetch joined an identical one already in flight (see `singleFlight`): its
|
|
34
|
+
* outcome is that fetch's, and no request of its own reached the endpoint.
|
|
35
|
+
*/
|
|
36
|
+
coalesced?: boolean;
|
|
32
37
|
durationMs: number;
|
|
33
38
|
at: number;
|
|
34
39
|
}
|
|
@@ -76,6 +81,31 @@ export type RegistryEvent = {
|
|
|
76
81
|
error: string;
|
|
77
82
|
at: number;
|
|
78
83
|
};
|
|
84
|
+
/** A fragment fetch about to start, as {@link TelemetryOptions.onFragmentFetch} is told of it. */
|
|
85
|
+
export interface FragmentFetchStart {
|
|
86
|
+
fragmentId: string;
|
|
87
|
+
phase: FragmentFetchEvent['phase'];
|
|
88
|
+
method: string;
|
|
89
|
+
}
|
|
90
|
+
/** What a fetch hook hands back: headers for the fragment request, and a callback for its end. */
|
|
91
|
+
export interface FragmentFetchHooks {
|
|
92
|
+
/**
|
|
93
|
+
* Set on the fragment request — trace context, say — over anything already there; `null` removes
|
|
94
|
+
* one. A `traceparent` set or removed takes the caller's `tracestate` with it.
|
|
95
|
+
*/
|
|
96
|
+
headers?: Record<string, string | null>;
|
|
97
|
+
/**
|
|
98
|
+
* Runs the endpoint fetch, so a tracing hook can make its span the active one there and an
|
|
99
|
+
* HTTP-client instrumentation's span nests under it. Must call `fetch` once and return its result.
|
|
100
|
+
* Not called for a fetch that joins one already in flight.
|
|
101
|
+
*/
|
|
102
|
+
run?: <T>(fetch: () => T) => T;
|
|
103
|
+
/**
|
|
104
|
+
* Called once with the same event `on` receives, and the error when the fetch threw — even after
|
|
105
|
+
* a throwing hook has muted telemetry, so whatever it opened is closed.
|
|
106
|
+
*/
|
|
107
|
+
end?: (event: FragmentFetchEvent, error?: unknown) => void;
|
|
108
|
+
}
|
|
79
109
|
export interface TelemetryOptions {
|
|
80
110
|
/**
|
|
81
111
|
* Called for every event.
|
|
@@ -85,7 +115,15 @@ export interface TelemetryOptions {
|
|
|
85
115
|
* one *is* wrapped — a broken telemetry sink must not fail the request it is describing, because
|
|
86
116
|
* the whole point is to be safe to leave on in production.
|
|
87
117
|
*/
|
|
88
|
-
on
|
|
118
|
+
on?: (event: TelemetryEvent) => void;
|
|
119
|
+
/**
|
|
120
|
+
* Called as each fragment fetch starts — after the credential rules and `additionalHeaders`,
|
|
121
|
+
* before the circuit breaker — for a hook that needs the start, not just the outcome: a tracing
|
|
122
|
+
* integration opening a span and propagating its context (see `@braidlabs/otel`).
|
|
123
|
+
*
|
|
124
|
+
* On the request path, so it must be cheap, and muted like `on` if it throws.
|
|
125
|
+
*/
|
|
126
|
+
onFragmentFetch?: (fetch: FragmentFetchStart) => FragmentFetchHooks | void;
|
|
89
127
|
/**
|
|
90
128
|
* Collect web vitals in the browser and report them here. Off by default.
|
|
91
129
|
*
|
package/src/telemetry.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../../../libs/braid-gateway/src/telemetry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;
|
|
1
|
+
{"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../../../libs/braid-gateway/src/telemetry.ts"],"names":[],"mappings":"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"}
|