@braidlabs/core 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.
Files changed (66) hide show
  1. package/package.json +1 -1
  2. package/src/adapters/adapter.d.ts +11 -0
  3. package/src/adapters/adapter.js.map +1 -1
  4. package/src/adapters/compat-adapter.js +2 -2
  5. package/src/adapters/compat-adapter.js.map +1 -1
  6. package/src/compat/born-inert-scripts.d.ts +2 -0
  7. package/src/compat/born-inert-scripts.js +39 -0
  8. package/src/compat/born-inert-scripts.js.map +1 -1
  9. package/src/compat/cookie-partition.d.ts +25 -0
  10. package/src/compat/cookie-partition.js +79 -0
  11. package/src/compat/cookie-partition.js.map +1 -0
  12. package/src/compat/document-member-classification.js +3 -2
  13. package/src/compat/document-member-classification.js.map +1 -1
  14. package/src/compat/document-overrides.d.ts +6 -6
  15. package/src/compat/document-overrides.js +23 -0
  16. package/src/compat/document-overrides.js.map +1 -1
  17. package/src/compat/fragment-boundary.d.ts +5 -0
  18. package/src/compat/fragment-boundary.js +159 -12
  19. package/src/compat/fragment-boundary.js.map +1 -1
  20. package/src/compat/html-policy.d.ts +50 -0
  21. package/src/compat/html-policy.js +155 -0
  22. package/src/compat/html-policy.js.map +1 -0
  23. package/src/compat/realm-patches.d.ts +2 -1
  24. package/src/compat/realm-patches.js +117 -3
  25. package/src/compat/realm-patches.js.map +1 -1
  26. package/src/compat/script-execution.d.ts +24 -0
  27. package/src/compat/script-execution.js +177 -10
  28. package/src/compat/script-execution.js.map +1 -1
  29. package/src/compat/storage-partition.d.ts +47 -0
  30. package/src/compat/storage-partition.js +291 -0
  31. package/src/compat/storage-partition.js.map +1 -0
  32. package/src/compat/subresource-urls.d.ts +41 -0
  33. package/src/compat/subresource-urls.js +133 -0
  34. package/src/compat/subresource-urls.js.map +1 -0
  35. package/src/config.d.ts +28 -0
  36. package/src/config.js +24 -0
  37. package/src/config.js.map +1 -1
  38. package/src/elements/boot-gate.d.ts +47 -0
  39. package/src/elements/boot-gate.js +207 -0
  40. package/src/elements/boot-gate.js.map +1 -0
  41. package/src/elements/fragment-slot.d.ts +34 -0
  42. package/src/elements/fragment-slot.js +282 -24
  43. package/src/elements/fragment-slot.js.map +1 -1
  44. package/src/elements/late-content.d.ts +44 -0
  45. package/src/elements/late-content.js +107 -0
  46. package/src/elements/late-content.js.map +1 -0
  47. package/src/elements/prefetch.d.ts +27 -0
  48. package/src/elements/prefetch.js +100 -0
  49. package/src/elements/prefetch.js.map +1 -0
  50. package/src/elements/prerequisites.d.ts +42 -0
  51. package/src/elements/prerequisites.js +133 -0
  52. package/src/elements/prerequisites.js.map +1 -0
  53. package/src/elements/recovery.d.ts +46 -0
  54. package/src/elements/recovery.js +59 -0
  55. package/src/elements/recovery.js.map +1 -0
  56. package/src/errors.d.ts +4 -1
  57. package/src/errors.js +2 -0
  58. package/src/errors.js.map +1 -1
  59. package/src/index.d.ts +4 -1
  60. package/src/index.js +10 -1
  61. package/src/index.js.map +1 -1
  62. package/src/realm/realm-manager.js +23 -0
  63. package/src/realm/realm-manager.js.map +1 -1
  64. package/src/weave/capabilities.d.ts +35 -7
  65. package/src/weave/capabilities.js +17 -0
  66. package/src/weave/capabilities.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"fragment-slot.js","sourceRoot":"","sources":["../../../../../libs/core/src/elements/fragment-slot.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fragment-slot.js","sourceRoot":"","sources":["../../../../../libs/core/src/elements/fragment-slot.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Late fragment markup: what the gateway sends at the end of the document for a slot it streamed
3
+ * past (a manifest with `stream: "out-of-order"`).
4
+ *
5
+ * The gateway marks the slot `data-braid-deferred="<token>"` and, once the fragment answers, emits
6
+ *
7
+ * ```html
8
+ * <braid-late for="billing" token="<token>" hidden>
9
+ * <template shadowrootmode="open">…</template><braid-late-end></braid-late-end>
10
+ * </braid-late>
11
+ * ```
12
+ *
13
+ * A declarative shadow root attaches to the element it is parsed in, which by then is no longer the
14
+ * slot, so the content is moved across. It is already prepared — scripts inert, URLs re-rooted — so
15
+ * moving it runs nothing, and the slot then adopts it exactly as if it had been pierced in place.
16
+ *
17
+ * **When.** A custom element's callbacks run at its start tag, before that shadow root exists, so a
18
+ * runtime loaded early delivers when `<braid-late-end>` is parsed. A runtime loaded after parsing
19
+ * finds the shadow root already attached when it upgrades `<braid-late>`, and delivers then. A
20
+ * `<braid-late data-braid-empty>` carries no content: the fragment failed, and the slot boots
21
+ * client-side.
22
+ *
23
+ * **Whose.** Only markup the gateway wrote may fill a slot. The token must match the slot's (it is
24
+ * minted per response, so no fragment can know it), and the element must sit directly in `<body>`,
25
+ * after the slot — where the gateway puts it, and where a fragment's own markup, which lives in a
26
+ * shadow root, never is. Anything else is removed unread.
27
+ */
28
+ export declare const DEFERRED_ATTRIBUTE = "data-braid-deferred";
29
+ export declare class BraidLate extends HTMLElement {
30
+ connectedCallback(): void;
31
+ }
32
+ export declare class BraidLateEnd extends HTMLElement {
33
+ connectedCallback(): void;
34
+ }
35
+ export declare function deliverLateContent(late: HTMLElement): void;
36
+ /**
37
+ * Resolves once a deferred slot can boot: its late markup has been moved in, the gateway said none
38
+ * is coming, or the document finished parsing without either (a response cut short) — in which
39
+ * case the slot simply boots client-side.
40
+ *
41
+ * Its `DOMContentLoaded` listener is the one listener Braid puts on the host document, and only
42
+ * while a deferred slot waits on a document that is still being parsed.
43
+ */
44
+ export declare function lateContentArrival(slot: HTMLElement): Promise<void>;
@@ -0,0 +1,107 @@
1
+ import { isDevMode } from '../config.js';
2
+ /**
3
+ * Late fragment markup: what the gateway sends at the end of the document for a slot it streamed
4
+ * past (a manifest with `stream: "out-of-order"`).
5
+ *
6
+ * The gateway marks the slot `data-braid-deferred="<token>"` and, once the fragment answers, emits
7
+ *
8
+ * ```html
9
+ * <braid-late for="billing" token="<token>" hidden>
10
+ * <template shadowrootmode="open">…</template><braid-late-end></braid-late-end>
11
+ * </braid-late>
12
+ * ```
13
+ *
14
+ * A declarative shadow root attaches to the element it is parsed in, which by then is no longer the
15
+ * slot, so the content is moved across. It is already prepared — scripts inert, URLs re-rooted — so
16
+ * moving it runs nothing, and the slot then adopts it exactly as if it had been pierced in place.
17
+ *
18
+ * **When.** A custom element's callbacks run at its start tag, before that shadow root exists, so a
19
+ * runtime loaded early delivers when `<braid-late-end>` is parsed. A runtime loaded after parsing
20
+ * finds the shadow root already attached when it upgrades `<braid-late>`, and delivers then. A
21
+ * `<braid-late data-braid-empty>` carries no content: the fragment failed, and the slot boots
22
+ * client-side.
23
+ *
24
+ * **Whose.** Only markup the gateway wrote may fill a slot. The token must match the slot's (it is
25
+ * minted per response, so no fragment can know it), and the element must sit directly in `<body>`,
26
+ * after the slot — where the gateway puts it, and where a fragment's own markup, which lives in a
27
+ * shadow root, never is. Anything else is removed unread.
28
+ */
29
+ export const DEFERRED_ATTRIBUTE = 'data-braid-deferred';
30
+ /** Dispatched on a slot once its late markup, or the news that none is coming, has arrived. */
31
+ const LATE_EVENT = 'braid:late';
32
+ export class BraidLate extends HTMLElement {
33
+ connectedCallback() {
34
+ // while parsing, the content has not arrived yet; `<braid-late-end>` delivers it
35
+ if (this.hasAttribute('data-braid-empty') || this.shadowRoot)
36
+ deliverLateContent(this);
37
+ }
38
+ }
39
+ export class BraidLateEnd extends HTMLElement {
40
+ connectedCallback() {
41
+ const late = this.parentElement;
42
+ if (late?.localName === 'braid-late')
43
+ deliverLateContent(late);
44
+ else
45
+ this.remove();
46
+ }
47
+ }
48
+ export function deliverLateContent(late) {
49
+ // delivered once: by `<braid-late-end>` or on upgrade, whichever comes first
50
+ if (!late.isConnected)
51
+ return;
52
+ const fragmentId = late.getAttribute('for') ?? '';
53
+ const token = late.getAttribute('token');
54
+ const slot = [...document.querySelectorAll(`fragment-slot[${DEFERRED_ATTRIBUTE}]`)].find((candidate) => candidate.getAttribute('name') === fragmentId);
55
+ const genuine = slot !== undefined &&
56
+ Boolean(token) &&
57
+ slot.getAttribute(DEFERRED_ATTRIBUTE) === token &&
58
+ late.parentNode === document.body &&
59
+ Boolean(slot.compareDocumentPosition(late) & Node.DOCUMENT_POSITION_FOLLOWING);
60
+ late.remove();
61
+ // nothing waiting for it: a slot the host removed or reloaded, or a page not composed for it
62
+ if (!slot)
63
+ return;
64
+ if (!genuine) {
65
+ if (isDevMode())
66
+ console.warn(`[braid:${fragmentId}] ignored late markup the gateway did not send for this slot`);
67
+ return;
68
+ }
69
+ if (late.shadowRoot && !late.hasAttribute('data-braid-empty')) {
70
+ const root = slot.shadowRoot ?? slot.attachShadow({ mode: 'open' });
71
+ root.replaceChildren(...late.shadowRoot.childNodes);
72
+ slot.setAttribute('data-braid-pierced', '');
73
+ }
74
+ else {
75
+ const reason = late.getAttribute('data-braid-fallback');
76
+ if (reason)
77
+ slot.setAttribute('data-braid-fallback', reason);
78
+ }
79
+ slot.removeAttribute(DEFERRED_ATTRIBUTE);
80
+ slot.dispatchEvent(new Event(LATE_EVENT));
81
+ }
82
+ /**
83
+ * Resolves once a deferred slot can boot: its late markup has been moved in, the gateway said none
84
+ * is coming, or the document finished parsing without either (a response cut short) — in which
85
+ * case the slot simply boots client-side.
86
+ *
87
+ * Its `DOMContentLoaded` listener is the one listener Braid puts on the host document, and only
88
+ * while a deferred slot waits on a document that is still being parsed.
89
+ */
90
+ export function lateContentArrival(slot) {
91
+ if (!slot.hasAttribute(DEFERRED_ATTRIBUTE))
92
+ return Promise.resolve();
93
+ return new Promise((resolve) => {
94
+ const done = () => {
95
+ slot.removeEventListener(LATE_EVENT, done);
96
+ document.removeEventListener('DOMContentLoaded', done);
97
+ slot.removeAttribute(DEFERRED_ATTRIBUTE);
98
+ resolve();
99
+ };
100
+ slot.addEventListener(LATE_EVENT, done);
101
+ if (document.readyState === 'loading')
102
+ document.addEventListener('DOMContentLoaded', done);
103
+ else
104
+ queueMicrotask(done);
105
+ });
106
+ }
107
+ //# sourceMappingURL=late-content.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"late-content.js","sourceRoot":"","sources":["../../../../../libs/core/src/elements/late-content.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * How long a prefetched document waits for its slot. Long enough to cover hover-to-click and a
3
+ * router's own work; short enough that a document rendered for one moment is never shown in a much
4
+ * later one. Personalised markup is held in memory for at most this long, used once, and dropped.
5
+ */
6
+ export declare const PREFETCH_TTL_MS = 10000;
7
+ type DocumentResult = Promise<{
8
+ html: string;
9
+ isHtml: boolean;
10
+ }>;
11
+ /**
12
+ * Starts a prefetch: the document now, held for {@link takePrefetchedDocument}; the document's
13
+ * scripts as HTTP-cache hints. `fetchDocument` is the slot's own document fetch,
14
+ * passed in so this module does not import the slot. See `prefetchFragment`.
15
+ */
16
+ export declare function startPrefetch(fragmentId: string, route: string, fetchDocument: (url: URL, signal: AbortSignal) => DocumentResult): void;
17
+ /**
18
+ * The prefetched document for a slot about to fetch its own, if one is held. Single use: taking it
19
+ * removes it, and the slot's abort signal now governs the request.
20
+ */
21
+ export declare function takePrefetchedDocument(fragmentId: string, routeSrcUrl: URL, signal: AbortSignal): DocumentResult | undefined;
22
+ /**
23
+ * Drops every held prefetch. Call it when the user signs out or switches account: a held document
24
+ * was rendered for whoever was signed in when it was fetched.
25
+ */
26
+ export declare function clearPrefetchedFragments(): void;
27
+ export {};
@@ -0,0 +1,100 @@
1
+ import { getBraidConfig } from '../config.js';
2
+ import { braidFragmentUrl } from '../protocol.js';
3
+ /**
4
+ * How long a prefetched document waits for its slot. Long enough to cover hover-to-click and a
5
+ * router's own work; short enough that a document rendered for one moment is never shown in a much
6
+ * later one. Personalised markup is held in memory for at most this long, used once, and dropped.
7
+ */
8
+ export const PREFETCH_TTL_MS = 10_000;
9
+ const prefetched = new Map();
10
+ const keyOf = (fragmentId, routeSrcUrl) => `${fragmentId} ${routeSrcUrl.pathname}${routeSrcUrl.search}`;
11
+ /**
12
+ * Starts a prefetch: the document now, held for {@link takePrefetchedDocument}; the document's
13
+ * scripts as HTTP-cache hints. `fetchDocument` is the slot's own document fetch,
14
+ * passed in so this module does not import the slot. See `prefetchFragment`.
15
+ */
16
+ export function startPrefetch(fragmentId, route, fetchDocument) {
17
+ const routeSrcUrl = new URL(route, document.baseURI);
18
+ const key = keyOf(fragmentId, routeSrcUrl);
19
+ if (prefetched.has(key))
20
+ return;
21
+ const controller = new AbortController();
22
+ const result = fetchDocument(routeSrcUrl, controller.signal);
23
+ // held, not awaited: a failure surfaces when (if) a slot takes it, exactly as its own fetch would
24
+ result.catch(() => undefined);
25
+ const expiry = setTimeout(() => {
26
+ prefetched.delete(key);
27
+ controller.abort();
28
+ }, PREFETCH_TTL_MS);
29
+ prefetched.set(key, { document: result, controller, expiry });
30
+ // The realm stub is not hinted: a host-document prefetch does not satisfy the realm iframe's
31
+ // navigation in Chrome's cache, so it would only be fetched twice.
32
+ void result.then(({ html, isHtml }) => {
33
+ if (!isHtml)
34
+ return;
35
+ // only the fragment's own namespace, as the gateway's own hints are: a document does not get to
36
+ // make the host fetch whatever URL it names
37
+ const namespace = new URL(`${braidFragmentUrl(fragmentId, '/', '', getBraidConfig().basePath)}`, location.origin).href;
38
+ for (const script of scriptsIn(html)) {
39
+ const url = new URL(script.href, document.baseURI).href;
40
+ if (url.startsWith(namespace))
41
+ hint(url, script.crossorigin);
42
+ }
43
+ }, () => undefined);
44
+ }
45
+ /**
46
+ * The prefetched document for a slot about to fetch its own, if one is held. Single use: taking it
47
+ * removes it, and the slot's abort signal now governs the request.
48
+ */
49
+ export function takePrefetchedDocument(fragmentId, routeSrcUrl, signal) {
50
+ const key = keyOf(fragmentId, routeSrcUrl);
51
+ const entry = prefetched.get(key);
52
+ if (!entry)
53
+ return undefined;
54
+ prefetched.delete(key);
55
+ clearTimeout(entry.expiry);
56
+ if (signal.aborted)
57
+ entry.controller.abort();
58
+ else
59
+ signal.addEventListener('abort', () => entry.controller.abort(), { once: true });
60
+ return entry.document;
61
+ }
62
+ /**
63
+ * Drops every held prefetch. Call it when the user signs out or switches account: a held document
64
+ * was rendered for whoever was signed in when it was fetched.
65
+ */
66
+ export function clearPrefetchedFragments() {
67
+ for (const entry of prefetched.values()) {
68
+ clearTimeout(entry.expiry);
69
+ entry.controller.abort();
70
+ }
71
+ prefetched.clear();
72
+ hinted.clear();
73
+ }
74
+ /**
75
+ * The scripts a prepared document will have the realm load, in the CORS mode it will use — the
76
+ * gateway has made them inert and kept the original type as `data-script-type`.
77
+ */
78
+ function scriptsIn(html) {
79
+ const template = document.createElement('template');
80
+ template.innerHTML = html;
81
+ return [...template.content.querySelectorAll('script[src]:not([nomodule])')].map((script) => {
82
+ const crossorigin = script.getAttribute('crossorigin');
83
+ const isModule = script.getAttribute('data-script-type') === 'module';
84
+ return { href: script.getAttribute('src'), crossorigin: isModule ? (crossorigin ?? '') : crossorigin };
85
+ });
86
+ }
87
+ /** Hrefs already hinted on this page, so hovering the same link again adds nothing to `<head>`. */
88
+ const hinted = new Set();
89
+ function hint(href, crossorigin) {
90
+ if (hinted.has(href))
91
+ return;
92
+ hinted.add(href);
93
+ const link = document.createElement('link');
94
+ link.rel = 'prefetch';
95
+ link.href = href;
96
+ if (crossorigin !== null)
97
+ link.crossOrigin = crossorigin;
98
+ document.head.append(link);
99
+ }
100
+ //# sourceMappingURL=prefetch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prefetch.js","sourceRoot":"","sources":["../../../../../libs/core/src/elements/prefetch.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ import { BraidError } from '../errors.js';
2
+ /**
3
+ * Mount prerequisites: named things that must be ready before a fragment's code runs.
4
+ *
5
+ * The motivating case is auth. A fragment whose backend needs a session for its own authorization
6
+ * server boots, calls its API, gets a 401, hops through a login, and retries — on every cold load.
7
+ * The host usually knows how to warm that session (its own SSO client, a silent hop through the
8
+ * fragment's login), so it registers a resolver per key and fragments declare the keys they need:
9
+ *
10
+ * ```ts
11
+ * initBraid({ prerequisites: { 'session:*': (key, { signal }) => sessions.ensure(key.slice(8), { signal }) } });
12
+ * ```
13
+ * ```html
14
+ * <fragment-slot name="kcd" requires="session:kcd"></fragment-slot> <!-- or manifest `requires` -->
15
+ * ```
16
+ *
17
+ * Braid knows a key and a promise, nothing about what either means. A key a slot declares in markup
18
+ * starts resolving as the slot boots, alongside the realm and document fetches; one declared in the
19
+ * manifest starts when the realm stub that carries it arrives. Either way the fragment's code waits
20
+ * for it. Each key is resolved once at a time however many slots wait on it.
21
+ */
22
+ /** What a resolver reports. `not-entitled` shows the slot's fallback instead of the fragment. */
23
+ export type PrerequisiteOutcome = 'ready' | 'not-entitled';
24
+ export type PrerequisiteResolver = (key: string, context: {
25
+ signal: AbortSignal;
26
+ }) => PrerequisiteOutcome | Promise<PrerequisiteOutcome>;
27
+ /** How long a resolver may take before the fragment fails with a `prerequisite` error. */
28
+ export declare const DEFAULT_PREREQUISITE_TIMEOUT_MS = 15000;
29
+ /** A prerequisite outcome that is not a failure: the user may not see this fragment. */
30
+ export declare class NotEntitledError extends BraidError {
31
+ readonly notEntitled = true;
32
+ }
33
+ /** Keys from a `requires` attribute (whitespace-separated) or a manifest list, cleaned. */
34
+ export declare function parseRequires(value: unknown): string[];
35
+ /**
36
+ * Waits for every key to be ready, for one fragment.
37
+ *
38
+ * Throws a {@link NotEntitledError} when any key reports `not-entitled`, and a `prerequisite`
39
+ * BraidError for a key with no resolver, a resolver that throws, or one that outlasts the timeout.
40
+ * Aborting `signal` stops waiting; the shared resolution is aborted once nobody waits on it.
41
+ */
42
+ export declare function awaitPrerequisites(keys: readonly string[], fragmentId: string, signal: AbortSignal): Promise<void>;
@@ -0,0 +1,133 @@
1
+ import { getBraidConfig } from '../config.js';
2
+ import { BraidError } from '../errors.js';
3
+ /** How long a resolver may take before the fragment fails with a `prerequisite` error. */
4
+ export const DEFAULT_PREREQUISITE_TIMEOUT_MS = 15_000;
5
+ /** A prerequisite outcome that is not a failure: the user may not see this fragment. */
6
+ export class NotEntitledError extends BraidError {
7
+ notEntitled = true;
8
+ }
9
+ /** Keys from a `requires` attribute (whitespace-separated) or a manifest list, cleaned. */
10
+ export function parseRequires(value) {
11
+ const keys = typeof value === 'string' ? value.split(/\s+/) : Array.isArray(value) ? value : [];
12
+ return [...new Set(keys.filter((key) => typeof key === 'string' && key !== ''))];
13
+ }
14
+ /** The resolver for a key: an exact entry, else the longest `prefix*` pattern that matches. */
15
+ function resolverFor(key) {
16
+ const resolvers = getBraidConfig().prerequisites ?? {};
17
+ if (Object.hasOwn(resolvers, key))
18
+ return resolvers[key];
19
+ let best;
20
+ for (const [pattern, resolver] of Object.entries(resolvers)) {
21
+ if (!pattern.endsWith('*'))
22
+ continue;
23
+ const prefix = pattern.slice(0, -1);
24
+ if (key.startsWith(prefix) && (!best || prefix.length > best.length))
25
+ best = { length: prefix.length, resolver };
26
+ }
27
+ return best?.resolver;
28
+ }
29
+ /** One resolution per key at a time, shared by every slot waiting on it. */
30
+ const inFlight = new Map();
31
+ function shared(key, resolver, timeoutMs) {
32
+ const existing = inFlight.get(key);
33
+ if (existing)
34
+ return existing;
35
+ const controller = new AbortController();
36
+ const entry = { promise: undefined, controller, waiters: 0, settled: false, timedOut: false };
37
+ // a timer rather than AbortSignal.timeout, so a resolution that settles stops it: the resolver's
38
+ // signal must not abort later under a resolver still using it (a background refresh, say)
39
+ const timer = setTimeout(() => {
40
+ entry.timedOut = true;
41
+ controller.abort(new DOMException(`no answer within ${timeoutMs} ms`, 'TimeoutError'));
42
+ }, timeoutMs);
43
+ entry.promise = new Promise((resolve, reject) => {
44
+ controller.signal.addEventListener('abort', () => reject(controller.signal.reason), { once: true });
45
+ Promise.resolve()
46
+ .then(() => resolver(key, { signal: controller.signal }))
47
+ .then(resolve, reject);
48
+ }).finally(() => {
49
+ entry.settled = true;
50
+ clearTimeout(timer);
51
+ if (inFlight.get(key) === entry)
52
+ inFlight.delete(key);
53
+ });
54
+ // every waiter handles it; this keeps one abandoned by all from surfacing as unhandled
55
+ entry.promise.catch(() => undefined);
56
+ inFlight.set(key, entry);
57
+ return entry;
58
+ }
59
+ /** A waiter leaving; the last one out abandons a resolution still running, and retires it at once. */
60
+ function leave(key, entry) {
61
+ if (--entry.waiters > 0 || entry.settled)
62
+ return;
63
+ if (inFlight.get(key) === entry)
64
+ inFlight.delete(key);
65
+ entry.controller.abort(new DOMException('no fragment is waiting', 'AbortError'));
66
+ }
67
+ /**
68
+ * Waits for every key to be ready, for one fragment.
69
+ *
70
+ * Throws a {@link NotEntitledError} when any key reports `not-entitled`, and a `prerequisite`
71
+ * BraidError for a key with no resolver, a resolver that throws, or one that outlasts the timeout.
72
+ * Aborting `signal` stops waiting; the shared resolution is aborted once nobody waits on it.
73
+ */
74
+ export async function awaitPrerequisites(keys, fragmentId, signal) {
75
+ const timeoutMs = getBraidConfig().prerequisiteTimeoutMs ?? DEFAULT_PREREQUISITE_TIMEOUT_MS;
76
+ if (signal.aborted)
77
+ throw signal.reason;
78
+ // the first key to fail ends the wait for the rest, so a user who cannot see the fragment does
79
+ // not go on to trigger its other prerequisites (an SSO hop for a session it will never use)
80
+ const done = new AbortController();
81
+ const waiting = AbortSignal.any([signal, done.signal]);
82
+ try {
83
+ await Promise.all(keys.map((key) => awaitOne(key, fragmentId, waiting, timeoutMs)));
84
+ }
85
+ finally {
86
+ done.abort();
87
+ }
88
+ }
89
+ async function awaitOne(key, fragmentId, signal, timeoutMs) {
90
+ const resolver = resolverFor(key);
91
+ if (!resolver) {
92
+ const pattern = key.includes(':') ? `'${key.slice(0, key.indexOf(':') + 1)}*'` : `'${key}'`;
93
+ throw new BraidError(`no prerequisite resolver handles "${key}"`, {
94
+ fragmentId,
95
+ stage: 'prerequisite',
96
+ fixHint: `register one: initBraid({ prerequisites: { ${pattern}: (key, { signal }) => … } })`,
97
+ });
98
+ }
99
+ if (signal.aborted)
100
+ throw signal.reason;
101
+ const entry = shared(key, resolver, timeoutMs);
102
+ entry.waiters++;
103
+ let outcome;
104
+ try {
105
+ outcome = await new Promise((resolve, reject) => {
106
+ signal.addEventListener('abort', () => reject(signal.reason), { once: true });
107
+ entry.promise.then(resolve, reject);
108
+ });
109
+ }
110
+ catch (error) {
111
+ if (signal.aborted)
112
+ throw error;
113
+ throw new BraidError(entry.timedOut ? `the prerequisite "${key}" did not resolve within ${timeoutMs} ms` : `the prerequisite "${key}" failed`, { fragmentId, stage: 'prerequisite', cause: error, fixHint: `check the resolver registered for "${key}"` });
114
+ }
115
+ finally {
116
+ leave(key, entry);
117
+ }
118
+ if (outcome === 'not-entitled') {
119
+ throw new NotEntitledError(`not entitled to "${key}"`, {
120
+ fragmentId,
121
+ stage: 'prerequisite',
122
+ fixHint: 'expected for a user without access: the slot shows its fallback',
123
+ });
124
+ }
125
+ if (outcome !== 'ready') {
126
+ throw new BraidError(`the prerequisite "${key}" resolved to ${JSON.stringify(outcome)}`, {
127
+ fragmentId,
128
+ stage: 'prerequisite',
129
+ fixHint: "a resolver returns 'ready' or 'not-entitled'",
130
+ });
131
+ }
132
+ }
133
+ //# sourceMappingURL=prerequisites.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prerequisites.js","sourceRoot":"","sources":["../../../../../libs/core/src/elements/prerequisites.ts"],"names":[],"mappings":"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"}