@flyingrobots/bijou 4.4.1 → 7.0.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 +71 -1
- package/dist/adapters/test/index.d.ts.map +1 -1
- package/dist/adapters/test/index.js +1 -3
- package/dist/adapters/test/index.js.map +1 -1
- package/dist/adapters/test/runtime.d.ts.map +1 -1
- package/dist/adapters/test/runtime.js +4 -3
- package/dist/adapters/test/runtime.js.map +1 -1
- package/dist/context-theme.d.ts +25 -0
- package/dist/context-theme.d.ts.map +1 -1
- package/dist/context-theme.js +19 -0
- package/dist/context-theme.js.map +1 -1
- package/dist/context.d.ts +13 -1
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +24 -3
- package/dist/context.js.map +1 -1
- package/dist/core/active-binding-collection.d.ts +49 -0
- package/dist/core/active-binding-collection.d.ts.map +1 -0
- package/dist/core/active-binding-collection.js +264 -0
- package/dist/core/active-binding-collection.js.map +1 -0
- package/dist/core/app-shell-composition.d.ts +44 -0
- package/dist/core/app-shell-composition.d.ts.map +1 -0
- package/dist/core/app-shell-composition.js +123 -0
- package/dist/core/app-shell-composition.js.map +1 -0
- package/dist/core/binding-frame-update.d.ts +18 -0
- package/dist/core/binding-frame-update.d.ts.map +1 -0
- package/dist/core/binding-frame-update.js +133 -0
- package/dist/core/binding-frame-update.js.map +1 -0
- package/dist/core/binding-lifecycle.d.ts +65 -0
- package/dist/core/binding-lifecycle.d.ts.map +1 -0
- package/dist/core/binding-lifecycle.js +357 -0
- package/dist/core/binding-lifecycle.js.map +1 -0
- package/dist/core/binding.d.ts +192 -0
- package/dist/core/binding.d.ts.map +1 -0
- package/dist/core/binding.js +587 -0
- package/dist/core/binding.js.map +1 -0
- package/dist/core/block-metadata.d.ts +113 -0
- package/dist/core/block-metadata.d.ts.map +1 -0
- package/dist/core/block-metadata.js +376 -0
- package/dist/core/block-metadata.js.map +1 -0
- package/dist/core/block-tree-render.d.ts +17 -0
- package/dist/core/block-tree-render.d.ts.map +1 -0
- package/dist/core/block-tree-render.js +186 -0
- package/dist/core/block-tree-render.js.map +1 -0
- package/dist/core/component-metadata.d.ts +63 -0
- package/dist/core/component-metadata.d.ts.map +1 -0
- package/dist/core/component-metadata.js +158 -0
- package/dist/core/component-metadata.js.map +1 -0
- package/dist/core/components/alert-v3.d.ts.map +1 -1
- package/dist/core/components/alert-v3.js +5 -4
- package/dist/core/components/alert-v3.js.map +1 -1
- package/dist/core/components/alert.d.ts.map +1 -1
- package/dist/core/components/alert.js +7 -8
- package/dist/core/components/alert.js.map +1 -1
- package/dist/core/components/badge.d.ts.map +1 -1
- package/dist/core/components/badge.js +19 -18
- package/dist/core/components/badge.js.map +1 -1
- package/dist/core/components/box-v3.d.ts.map +1 -1
- package/dist/core/components/box-v3.js +29 -29
- package/dist/core/components/box-v3.js.map +1 -1
- package/dist/core/components/dag-edges.d.ts +28 -5
- package/dist/core/components/dag-edges.d.ts.map +1 -1
- package/dist/core/components/dag-edges.js +116 -22
- package/dist/core/components/dag-edges.js.map +1 -1
- package/dist/core/components/dag-layout.d.ts +3 -4
- package/dist/core/components/dag-layout.d.ts.map +1 -1
- package/dist/core/components/dag-layout.js +42 -9
- package/dist/core/components/dag-layout.js.map +1 -1
- package/dist/core/components/dag-render.d.ts +4 -3
- package/dist/core/components/dag-render.d.ts.map +1 -1
- package/dist/core/components/dag-render.js +209 -105
- package/dist/core/components/dag-render.js.map +1 -1
- package/dist/core/components/dag-source.d.ts +4 -0
- package/dist/core/components/dag-source.d.ts.map +1 -1
- package/dist/core/components/dag-source.js +10 -0
- package/dist/core/components/dag-source.js.map +1 -1
- package/dist/core/components/dag.d.ts +20 -4
- package/dist/core/components/dag.d.ts.map +1 -1
- package/dist/core/components/dag.js.map +1 -1
- package/dist/core/components/explainability.d.ts.map +1 -1
- package/dist/core/components/explainability.js +30 -87
- package/dist/core/components/explainability.js.map +1 -1
- package/dist/core/components/guided-flow.d.ts +32 -0
- package/dist/core/components/guided-flow.d.ts.map +1 -0
- package/dist/core/components/guided-flow.js +131 -0
- package/dist/core/components/guided-flow.js.map +1 -0
- package/dist/core/components/hyperlink.d.ts.map +1 -1
- package/dist/core/components/hyperlink.js +7 -4
- package/dist/core/components/hyperlink.js.map +1 -1
- package/dist/core/components/index.d.ts +5 -3
- package/dist/core/components/index.d.ts.map +1 -1
- package/dist/core/components/index.js +1 -0
- package/dist/core/components/index.js.map +1 -1
- package/dist/core/components/markdown-parse.d.ts +4 -0
- package/dist/core/components/markdown-parse.d.ts.map +1 -1
- package/dist/core/components/markdown-parse.js +66 -2
- package/dist/core/components/markdown-parse.js.map +1 -1
- package/dist/core/components/markdown-render.d.ts.map +1 -1
- package/dist/core/components/markdown-render.js +220 -14
- package/dist/core/components/markdown-render.js.map +1 -1
- package/dist/core/components/markdown.d.ts +4 -3
- package/dist/core/components/markdown.d.ts.map +1 -1
- package/dist/core/components/markdown.js +6 -5
- package/dist/core/components/markdown.js.map +1 -1
- package/dist/core/components/paginator.d.ts.map +1 -1
- package/dist/core/components/paginator.js +5 -3
- package/dist/core/components/paginator.js.map +1 -1
- package/dist/core/components/perf-overlay.d.ts.map +1 -1
- package/dist/core/components/perf-overlay.js +3 -2
- package/dist/core/components/perf-overlay.js.map +1 -1
- package/dist/core/components/preference-list.d.ts.map +1 -1
- package/dist/core/components/preference-list.js +75 -37
- package/dist/core/components/preference-list.js.map +1 -1
- package/dist/core/components/progress.d.ts.map +1 -1
- package/dist/core/components/progress.js +4 -3
- package/dist/core/components/progress.js.map +1 -1
- package/dist/core/components/separator-v3.d.ts.map +1 -1
- package/dist/core/components/separator-v3.js +11 -11
- package/dist/core/components/separator-v3.js.map +1 -1
- package/dist/core/components/separator.d.ts.map +1 -1
- package/dist/core/components/separator.js +4 -1
- package/dist/core/components/separator.js.map +1 -1
- package/dist/core/components/skeleton.d.ts.map +1 -1
- package/dist/core/components/skeleton.js +3 -2
- package/dist/core/components/skeleton.js.map +1 -1
- package/dist/core/components/surface-text.d.ts +7 -0
- package/dist/core/components/surface-text.d.ts.map +1 -1
- package/dist/core/components/surface-text.js +33 -25
- package/dist/core/components/surface-text.js.map +1 -1
- package/dist/core/components/table-v3.d.ts +5 -2
- package/dist/core/components/table-v3.d.ts.map +1 -1
- package/dist/core/components/table-v3.js +162 -37
- package/dist/core/components/table-v3.js.map +1 -1
- package/dist/core/components/table.d.ts +51 -7
- package/dist/core/components/table.d.ts.map +1 -1
- package/dist/core/components/table.js +655 -81
- package/dist/core/components/table.js.map +1 -1
- package/dist/core/fixture-promotion.d.ts +33 -0
- package/dist/core/fixture-promotion.d.ts.map +1 -0
- package/dist/core/fixture-promotion.js +62 -0
- package/dist/core/fixture-promotion.js.map +1 -0
- package/dist/core/forms/filter-interactive.d.ts.map +1 -1
- package/dist/core/forms/filter-interactive.js +2 -4
- package/dist/core/forms/filter-interactive.js.map +1 -1
- package/dist/core/forms/multiselect.d.ts.map +1 -1
- package/dist/core/forms/multiselect.js +2 -4
- package/dist/core/forms/multiselect.js.map +1 -1
- package/dist/core/forms/note.d.ts.map +1 -1
- package/dist/core/forms/note.js +2 -1
- package/dist/core/forms/note.js.map +1 -1
- package/dist/core/forms/select.d.ts.map +1 -1
- package/dist/core/forms/select.js +2 -4
- package/dist/core/forms/select.js.map +1 -1
- package/dist/core/forms/textarea-editor.d.ts.map +1 -1
- package/dist/core/forms/textarea-editor.js +7 -5
- package/dist/core/forms/textarea-editor.js.map +1 -1
- package/dist/core/layout/envelope.d.ts +174 -0
- package/dist/core/layout/envelope.d.ts.map +1 -0
- package/dist/core/layout/envelope.js +336 -0
- package/dist/core/layout/envelope.js.map +1 -0
- package/dist/core/layout/geometry.d.ts +39 -0
- package/dist/core/layout/geometry.d.ts.map +1 -0
- package/dist/core/layout/geometry.js +201 -0
- package/dist/core/layout/geometry.js.map +1 -0
- package/dist/core/mode-lowering.d.ts +48 -0
- package/dist/core/mode-lowering.d.ts.map +1 -0
- package/dist/core/mode-lowering.js +176 -0
- package/dist/core/mode-lowering.js.map +1 -0
- package/dist/core/numeric.d.ts +16 -0
- package/dist/core/numeric.d.ts.map +1 -0
- package/dist/core/numeric.js +37 -0
- package/dist/core/numeric.js.map +1 -0
- package/dist/core/render/differ.d.ts.map +1 -1
- package/dist/core/render/differ.js +15 -13
- package/dist/core/render/differ.js.map +1 -1
- package/dist/core/runtime-viewport.d.ts.map +1 -1
- package/dist/core/runtime-viewport.js +2 -3
- package/dist/core/runtime-viewport.js.map +1 -1
- package/dist/core/schema-block.d.ts +63 -0
- package/dist/core/schema-block.d.ts.map +1 -0
- package/dist/core/schema-block.js +361 -0
- package/dist/core/schema-block.js.map +1 -0
- package/dist/core/selection.d.ts +127 -0
- package/dist/core/selection.d.ts.map +1 -0
- package/dist/core/selection.js +350 -0
- package/dist/core/selection.js.map +1 -0
- package/dist/core/standard-blocks.d.ts +264 -0
- package/dist/core/standard-blocks.d.ts.map +1 -0
- package/dist/core/standard-blocks.js +2518 -0
- package/dist/core/standard-blocks.js.map +1 -0
- package/dist/core/story-capture.d.ts +48 -0
- package/dist/core/story-capture.d.ts.map +1 -0
- package/dist/core/story-capture.js +64 -0
- package/dist/core/story-capture.js.map +1 -0
- package/dist/core/text/grapheme.d.ts +51 -0
- package/dist/core/text/grapheme.d.ts.map +1 -1
- package/dist/core/text/grapheme.js +68 -0
- package/dist/core/text/grapheme.js.map +1 -1
- package/dist/core/text/icon-presentation.d.ts +10 -0
- package/dist/core/text/icon-presentation.d.ts.map +1 -0
- package/dist/core/text/icon-presentation.js +12 -0
- package/dist/core/text/icon-presentation.js.map +1 -0
- package/dist/core/text/index.d.ts +2 -1
- package/dist/core/text/index.d.ts.map +1 -1
- package/dist/core/text/index.js +2 -1
- package/dist/core/text/index.js.map +1 -1
- package/dist/core/text/wrap.d.ts.map +1 -1
- package/dist/core/text/wrap.js +37 -20
- package/dist/core/text/wrap.js.map +1 -1
- package/dist/core/theme/color.d.ts +32 -0
- package/dist/core/theme/color.d.ts.map +1 -1
- package/dist/core/theme/color.js +68 -0
- package/dist/core/theme/color.js.map +1 -1
- package/dist/core/theme/doctor.d.ts +37 -0
- package/dist/core/theme/doctor.d.ts.map +1 -0
- package/dist/core/theme/doctor.js +175 -0
- package/dist/core/theme/doctor.js.map +1 -0
- package/dist/core/theme/dtcg.d.ts.map +1 -1
- package/dist/core/theme/dtcg.js +10 -1
- package/dist/core/theme/dtcg.js.map +1 -1
- package/dist/core/theme/graph-types.d.ts +5 -0
- package/dist/core/theme/graph-types.d.ts.map +1 -1
- package/dist/core/theme/graph.d.ts.map +1 -1
- package/dist/core/theme/graph.js +52 -5
- package/dist/core/theme/graph.js.map +1 -1
- package/dist/core/theme/index.d.ts +4 -1
- package/dist/core/theme/index.d.ts.map +1 -1
- package/dist/core/theme/index.js +3 -1
- package/dist/core/theme/index.js.map +1 -1
- package/dist/core/theme/presets.d.ts +3 -2
- package/dist/core/theme/presets.d.ts.map +1 -1
- package/dist/core/theme/presets.js +22 -29
- package/dist/core/theme/presets.js.map +1 -1
- package/dist/core/theme/tokens.d.ts +1 -1
- package/dist/core/theme/tokens.d.ts.map +1 -1
- package/dist/factory.d.ts +3 -0
- package/dist/factory.d.ts.map +1 -1
- package/dist/factory.js +4 -6
- package/dist/factory.js.map +1 -1
- package/dist/index.d.ts +23 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +25 -6
- package/dist/index.js.map +1 -1
- package/dist/ports/context.d.ts +6 -1
- package/dist/ports/context.d.ts.map +1 -1
- package/dist/ports/surface.d.ts +6 -4
- package/dist/ports/surface.d.ts.map +1 -1
- package/dist/ports/surface.js +40 -23
- package/dist/ports/surface.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"active-binding-collection.js","sourceRoot":"","sources":["../../src/core/active-binding-collection.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { type BindingFact, type CommandIntent, type ProviderScope, type ViewDataContract } from './binding.js';
|
|
2
|
+
import { type BlockDefinition } from './block-metadata.js';
|
|
3
|
+
declare const APP_SHELL_COMPOSITION_BRAND: unique symbol;
|
|
4
|
+
export type AppShellSlotId = 'navigation' | 'content' | 'inspector' | 'status' | 'overlays';
|
|
5
|
+
export type AppShellSlotContent = BlockDefinition | readonly AppShellSlotContent[];
|
|
6
|
+
export interface AppShellSlots {
|
|
7
|
+
readonly navigation?: AppShellSlotContent;
|
|
8
|
+
readonly content: AppShellSlotContent;
|
|
9
|
+
readonly inspector?: AppShellSlotContent;
|
|
10
|
+
readonly status?: AppShellSlotContent;
|
|
11
|
+
readonly overlays?: AppShellSlotContent;
|
|
12
|
+
}
|
|
13
|
+
export interface AppShellCompositionInput {
|
|
14
|
+
readonly id?: string;
|
|
15
|
+
readonly label?: string;
|
|
16
|
+
readonly description?: string;
|
|
17
|
+
readonly providers?: ProviderScope;
|
|
18
|
+
readonly slots: AppShellSlots;
|
|
19
|
+
readonly facts?: readonly BindingFact[];
|
|
20
|
+
}
|
|
21
|
+
export interface AppShellSlot {
|
|
22
|
+
readonly id: AppShellSlotId;
|
|
23
|
+
readonly blocks: readonly BlockDefinition[];
|
|
24
|
+
}
|
|
25
|
+
export declare class AppShellComposition {
|
|
26
|
+
#private;
|
|
27
|
+
readonly [APP_SHELL_COMPOSITION_BRAND] = true;
|
|
28
|
+
readonly id?: string;
|
|
29
|
+
readonly label?: string;
|
|
30
|
+
readonly description?: string;
|
|
31
|
+
readonly facts: readonly BindingFact[];
|
|
32
|
+
constructor(input: AppShellCompositionInput);
|
|
33
|
+
slotIds(): readonly AppShellSlotId[];
|
|
34
|
+
slots(): readonly AppShellSlot[];
|
|
35
|
+
slot(slotId: AppShellSlotId): readonly BlockDefinition[];
|
|
36
|
+
blocks(): readonly BlockDefinition[];
|
|
37
|
+
dataContracts(): readonly ViewDataContract[];
|
|
38
|
+
commandIntents(): readonly CommandIntent[];
|
|
39
|
+
providerScope(): ProviderScope | undefined;
|
|
40
|
+
}
|
|
41
|
+
export declare function defineAppShellComposition(input: AppShellCompositionInput): AppShellComposition;
|
|
42
|
+
export declare function isAppShellComposition(value: unknown): value is AppShellComposition;
|
|
43
|
+
export {};
|
|
44
|
+
//# sourceMappingURL=app-shell-composition.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app-shell-composition.d.ts","sourceRoot":"","sources":["../../src/core/app-shell-composition.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACtB,MAAM,cAAc,CAAC;AACtB,OAAO,EAEL,KAAK,eAAe,EACrB,MAAM,qBAAqB,CAAC;AAE7B,QAAA,MAAM,2BAA2B,EAAE,OAAO,MAAsC,CAAC;AAEjF,MAAM,MAAM,cAAc,GACtB,YAAY,GACZ,SAAS,GACT,WAAW,GACX,QAAQ,GACR,UAAU,CAAC;AAEf,MAAM,MAAM,mBAAmB,GAC3B,eAAe,GACf,SAAS,mBAAmB,EAAE,CAAC;AAEnC,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,UAAU,CAAC,EAAE,mBAAmB,CAAC;IAC1C,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAC;IACtC,QAAQ,CAAC,SAAS,CAAC,EAAE,mBAAmB,CAAC;IACzC,QAAQ,CAAC,MAAM,CAAC,EAAE,mBAAmB,CAAC;IACtC,QAAQ,CAAC,QAAQ,CAAC,EAAE,mBAAmB,CAAC;CACzC;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,SAAS,CAAC,EAAE,aAAa,CAAC;IACnC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,WAAW,EAAE,CAAC;CACzC;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,EAAE,cAAc,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,SAAS,eAAe,EAAE,CAAC;CAC7C;AAYD,qBAAa,mBAAmB;;IAC9B,QAAQ,CAAC,CAAC,2BAA2B,CAAC,QAAQ;IAG9C,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,SAAS,WAAW,EAAE,CAAC;gBAE3B,KAAK,EAAE,wBAAwB;IAuB3C,OAAO,IAAI,SAAS,cAAc,EAAE;IAIpC,KAAK,IAAI,SAAS,YAAY,EAAE;IAIhC,IAAI,CAAC,MAAM,EAAE,cAAc,GAAG,SAAS,eAAe,EAAE;IAIxD,MAAM,IAAI,SAAS,eAAe,EAAE;IAMpC,aAAa,IAAI,SAAS,gBAAgB,EAAE;IAM5C,cAAc,IAAI,SAAS,aAAa,EAAE;IAM1C,aAAa,IAAI,aAAa,GAAG,SAAS;CAG3C;AAED,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,wBAAwB,GAC9B,mBAAmB,CAErB;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,mBAAmB,CAMlF"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import { isProviderScope, } from './binding.js';
|
|
2
|
+
import { isBlockDefinition, } from './block-metadata.js';
|
|
3
|
+
const APP_SHELL_COMPOSITION_BRAND = Symbol('AppShellComposition');
|
|
4
|
+
const APP_SHELL_SLOT_IDS = [
|
|
5
|
+
'navigation',
|
|
6
|
+
'content',
|
|
7
|
+
'inspector',
|
|
8
|
+
'status',
|
|
9
|
+
'overlays',
|
|
10
|
+
];
|
|
11
|
+
const EMPTY_FACTS = Object.freeze([]);
|
|
12
|
+
const EMPTY_BLOCKS = Object.freeze([]);
|
|
13
|
+
export class AppShellComposition {
|
|
14
|
+
[APP_SHELL_COMPOSITION_BRAND] = true;
|
|
15
|
+
#slotsById;
|
|
16
|
+
#providers;
|
|
17
|
+
id;
|
|
18
|
+
label;
|
|
19
|
+
description;
|
|
20
|
+
facts;
|
|
21
|
+
constructor(input) {
|
|
22
|
+
if (input === undefined || input === null || typeof input !== 'object' || Array.isArray(input)) {
|
|
23
|
+
throw new Error('app shell composition: input must be an object');
|
|
24
|
+
}
|
|
25
|
+
if (input.providers !== undefined && !isProviderScope(input.providers)) {
|
|
26
|
+
throw new Error('app shell composition: providers must be created by providerScope()');
|
|
27
|
+
}
|
|
28
|
+
const slotsById = normalizeSlots(input.slots);
|
|
29
|
+
if (!slotsById.has('content')) {
|
|
30
|
+
throw new Error('app shell composition: content slot is required');
|
|
31
|
+
}
|
|
32
|
+
this.#slotsById = slotsById;
|
|
33
|
+
this.#providers = input.providers;
|
|
34
|
+
this.id = optionalTrimmedText(input.id);
|
|
35
|
+
this.label = optionalTrimmedText(input.label);
|
|
36
|
+
this.description = optionalTrimmedText(input.description);
|
|
37
|
+
this.facts = freezeFacts(input.facts);
|
|
38
|
+
Object.freeze(this);
|
|
39
|
+
}
|
|
40
|
+
slotIds() {
|
|
41
|
+
return Object.freeze([...this.#slotsById.keys()]);
|
|
42
|
+
}
|
|
43
|
+
slots() {
|
|
44
|
+
return Object.freeze([...this.#slotsById.values()]);
|
|
45
|
+
}
|
|
46
|
+
slot(slotId) {
|
|
47
|
+
return this.#slotsById.get(normalizeSlotId(slotId))?.blocks ?? EMPTY_BLOCKS;
|
|
48
|
+
}
|
|
49
|
+
blocks() {
|
|
50
|
+
return Object.freeze([...this.#slotsById.values()].flatMap((slot) => slot.blocks));
|
|
51
|
+
}
|
|
52
|
+
dataContracts() {
|
|
53
|
+
return Object.freeze(this.blocks().flatMap((block) => (block.data === undefined ? [] : [block.data])));
|
|
54
|
+
}
|
|
55
|
+
commandIntents() {
|
|
56
|
+
return Object.freeze(this.blocks().flatMap((block) => block.commands ?? []));
|
|
57
|
+
}
|
|
58
|
+
providerScope() {
|
|
59
|
+
return this.#providers;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
export function defineAppShellComposition(input) {
|
|
63
|
+
return new AppShellComposition(input);
|
|
64
|
+
}
|
|
65
|
+
export function isAppShellComposition(value) {
|
|
66
|
+
return Boolean(value
|
|
67
|
+
&& typeof value === 'object'
|
|
68
|
+
&& value[APP_SHELL_COMPOSITION_BRAND] === true);
|
|
69
|
+
}
|
|
70
|
+
function normalizeSlots(slots) {
|
|
71
|
+
if (slots === undefined || slots === null || typeof slots !== 'object' || Array.isArray(slots)) {
|
|
72
|
+
throw new Error('app shell composition: slots must be an object');
|
|
73
|
+
}
|
|
74
|
+
const slotsById = new Map();
|
|
75
|
+
for (const [rawSlotId, content] of Object.entries(slots)) {
|
|
76
|
+
if (content === undefined) {
|
|
77
|
+
continue;
|
|
78
|
+
}
|
|
79
|
+
const slotId = normalizeSlotId(rawSlotId);
|
|
80
|
+
if (slotsById.has(slotId)) {
|
|
81
|
+
throw new Error(`app shell composition: duplicate slot ${slotId}`);
|
|
82
|
+
}
|
|
83
|
+
const blocks = normalizeSlotContent(content, `slots.${slotId}`);
|
|
84
|
+
if (blocks.length === 0) {
|
|
85
|
+
throw new Error(`app shell composition: slot ${slotId} must include at least one block`);
|
|
86
|
+
}
|
|
87
|
+
slotsById.set(slotId, Object.freeze({
|
|
88
|
+
id: slotId,
|
|
89
|
+
blocks,
|
|
90
|
+
}));
|
|
91
|
+
}
|
|
92
|
+
return slotsById;
|
|
93
|
+
}
|
|
94
|
+
function normalizeSlotContent(content, path) {
|
|
95
|
+
if (Array.isArray(content)) {
|
|
96
|
+
return Object.freeze(content.flatMap((item, index) => normalizeSlotContent(item, `${path}[${index}]`)));
|
|
97
|
+
}
|
|
98
|
+
if (!isBlockDefinition(content)) {
|
|
99
|
+
throw new Error(`${path}: slot content must be created by defineBlock()`);
|
|
100
|
+
}
|
|
101
|
+
return Object.freeze([content]);
|
|
102
|
+
}
|
|
103
|
+
function normalizeSlotId(slotId) {
|
|
104
|
+
const normalized = slotId.trim();
|
|
105
|
+
if (!APP_SHELL_SLOT_IDS.includes(normalized)) {
|
|
106
|
+
throw new Error(`app shell composition: unsupported slot ${normalized}`);
|
|
107
|
+
}
|
|
108
|
+
return normalized;
|
|
109
|
+
}
|
|
110
|
+
function optionalTrimmedText(value) {
|
|
111
|
+
if (value === undefined) {
|
|
112
|
+
return undefined;
|
|
113
|
+
}
|
|
114
|
+
const normalized = value.trim();
|
|
115
|
+
return normalized === '' ? undefined : normalized;
|
|
116
|
+
}
|
|
117
|
+
function freezeFacts(facts) {
|
|
118
|
+
if (facts === undefined || facts.length === 0) {
|
|
119
|
+
return EMPTY_FACTS;
|
|
120
|
+
}
|
|
121
|
+
return Object.freeze(facts.map((fact) => Object.freeze({ ...fact })));
|
|
122
|
+
}
|
|
123
|
+
//# sourceMappingURL=app-shell-composition.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app-shell-composition.js","sourceRoot":"","sources":["../../src/core/app-shell-composition.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { type ActiveBindingCollection } from './active-binding-collection.js';
|
|
2
|
+
import { type BindingFact, type BindingFrame, type BindingIssue, type BindingSnapshot, type ProviderResolution, type ProviderScope } from './binding.js';
|
|
3
|
+
import { type BindingLifecycleRecord } from './binding-lifecycle.js';
|
|
4
|
+
export interface BindingFrameUpdateFromSnapshotsInput {
|
|
5
|
+
readonly collection: ActiveBindingCollection;
|
|
6
|
+
readonly scope: ProviderScope;
|
|
7
|
+
readonly snapshots: readonly BindingSnapshot[];
|
|
8
|
+
readonly records?: readonly BindingLifecycleRecord[];
|
|
9
|
+
}
|
|
10
|
+
export interface BindingFrameUpdate {
|
|
11
|
+
readonly frame: BindingFrame;
|
|
12
|
+
readonly records: readonly BindingLifecycleRecord[];
|
|
13
|
+
readonly resolutions: readonly ProviderResolution[];
|
|
14
|
+
readonly issues: readonly BindingIssue[];
|
|
15
|
+
readonly facts: readonly BindingFact[];
|
|
16
|
+
}
|
|
17
|
+
export declare function bindingFrameUpdateFromSnapshots(input: BindingFrameUpdateFromSnapshotsInput): BindingFrameUpdate;
|
|
18
|
+
//# sourceMappingURL=binding-frame-update.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"binding-frame-update.d.ts","sourceRoot":"","sources":["../../src/core/binding-frame-update.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,uBAAuB,EAC7B,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAKL,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAEnB,MAAM,cAAc,CAAC;AACtB,OAAO,EAIL,KAAK,sBAAsB,EAC5B,MAAM,wBAAwB,CAAC;AAEhC,MAAM,WAAW,oCAAoC;IACnD,QAAQ,CAAC,UAAU,EAAE,uBAAuB,CAAC;IAC7C,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,SAAS,eAAe,EAAE,CAAC;IAC/C,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,sBAAsB,EAAE,CAAC;CACtD;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,SAAS,sBAAsB,EAAE,CAAC;IACpD,QAAQ,CAAC,WAAW,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACpD,QAAQ,CAAC,MAAM,EAAE,SAAS,YAAY,EAAE,CAAC;IACzC,QAAQ,CAAC,KAAK,EAAE,SAAS,WAAW,EAAE,CAAC;CACxC;AAED,wBAAgB,+BAA+B,CAC7C,KAAK,EAAE,oCAAoC,GAC1C,kBAAkB,CA0DpB"}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import { isActiveBindingCollection, } from './active-binding-collection.js';
|
|
2
|
+
import { bindingFrameFromSnapshots, isBindingSnapshot, isProviderScope, resolveProviderRequirements, } from './binding.js';
|
|
3
|
+
import { bindingLifecycleRecord, invalidateBinding, isBindingLifecycleRecord, } from './binding-lifecycle.js';
|
|
4
|
+
export function bindingFrameUpdateFromSnapshots(input) {
|
|
5
|
+
if (!isObjectRecord(input)) {
|
|
6
|
+
throw new Error('binding frame update: input must be an object');
|
|
7
|
+
}
|
|
8
|
+
if (!isActiveBindingCollection(input.collection)) {
|
|
9
|
+
throw new Error('binding frame update: collection was not created by activeBindingCollection()');
|
|
10
|
+
}
|
|
11
|
+
if (!isProviderScope(input.scope)) {
|
|
12
|
+
throw new Error('binding frame update: scope was not created by providerScope()');
|
|
13
|
+
}
|
|
14
|
+
if (!Array.isArray(input.snapshots)) {
|
|
15
|
+
throw new Error('binding frame update: snapshots must be an array');
|
|
16
|
+
}
|
|
17
|
+
input.snapshots.forEach((snapshot, index) => {
|
|
18
|
+
if (!isBindingSnapshot(snapshot)) {
|
|
19
|
+
throw new Error(`binding frame update: snapshot at index ${index} was not created by bindingSnapshot()`);
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
const resolutions = resolveProviderRequirements(input.collection.requirements(), input.scope);
|
|
23
|
+
const providerAssignmentMismatches = providerAssignmentMismatchIssues(input.collection, resolutions);
|
|
24
|
+
const mismatchedRequirementIds = new Set(providerAssignmentMismatches.map((issue) => issue.path));
|
|
25
|
+
const effectiveResolutions = resolutions.filter((resolution) => !mismatchedRequirementIds.has(resolution.requirementId));
|
|
26
|
+
const effectiveSnapshots = input.snapshots.filter((snapshot) => !mismatchedRequirementIds.has(snapshot.requirementId));
|
|
27
|
+
const assembly = bindingFrameFromSnapshots({
|
|
28
|
+
resolutions: effectiveResolutions,
|
|
29
|
+
snapshots: effectiveSnapshots,
|
|
30
|
+
});
|
|
31
|
+
const records = invalidateUpdatedRecords({
|
|
32
|
+
records: input.records ?? lifecycleRecordsForResolvedCollection(input.collection, resolutions),
|
|
33
|
+
resolutions: effectiveResolutions,
|
|
34
|
+
snapshots: effectiveSnapshots,
|
|
35
|
+
});
|
|
36
|
+
return Object.freeze({
|
|
37
|
+
frame: assembly.frame,
|
|
38
|
+
records,
|
|
39
|
+
resolutions,
|
|
40
|
+
issues: freezeIssues([
|
|
41
|
+
...providerAssignmentMismatches,
|
|
42
|
+
...assembly.issues,
|
|
43
|
+
]),
|
|
44
|
+
facts: assembly.facts,
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
function lifecycleRecordsForResolvedCollection(collection, resolutions) {
|
|
48
|
+
const resolutionsByRequirementId = new Map();
|
|
49
|
+
resolutions.forEach((resolution) => {
|
|
50
|
+
resolutionsByRequirementId.set(resolution.requirementId, resolution);
|
|
51
|
+
});
|
|
52
|
+
return Object.freeze(collection.entries().map((entry) => {
|
|
53
|
+
const resolution = resolutionsByRequirementId.get(entry.requirement.id);
|
|
54
|
+
return bindingLifecycleRecord({
|
|
55
|
+
owner: entry.owner,
|
|
56
|
+
requirementId: entry.requirement.id,
|
|
57
|
+
providerId: entry.providerId ?? resolution?.providerId,
|
|
58
|
+
facts: entry.requirement.facts,
|
|
59
|
+
});
|
|
60
|
+
}));
|
|
61
|
+
}
|
|
62
|
+
function invalidateUpdatedRecords(options) {
|
|
63
|
+
if (!Array.isArray(options.records)) {
|
|
64
|
+
throw new Error('binding frame update: records must be an array');
|
|
65
|
+
}
|
|
66
|
+
const resolutionsByRequirementId = new Map();
|
|
67
|
+
options.resolutions.forEach((resolution) => {
|
|
68
|
+
resolutionsByRequirementId.set(resolution.requirementId, resolution);
|
|
69
|
+
});
|
|
70
|
+
const snapshotsByRequirementId = new Map();
|
|
71
|
+
options.snapshots.forEach((snapshot) => {
|
|
72
|
+
snapshotsByRequirementId.set(snapshot.requirementId, snapshot);
|
|
73
|
+
});
|
|
74
|
+
return Object.freeze(options.records.map((record, index) => {
|
|
75
|
+
if (!isBindingLifecycleRecord(record)) {
|
|
76
|
+
throw new Error(`binding frame update: record at index ${index} was not created by bindingLifecycleRecord()`);
|
|
77
|
+
}
|
|
78
|
+
const snapshot = snapshotsByRequirementId.get(record.requirementId);
|
|
79
|
+
const resolution = resolutionsByRequirementId.get(record.requirementId);
|
|
80
|
+
if (snapshot === undefined
|
|
81
|
+
|| resolution === undefined
|
|
82
|
+
|| resolution.providerId === undefined
|
|
83
|
+
|| snapshot.providerId !== resolution.providerId) {
|
|
84
|
+
return record;
|
|
85
|
+
}
|
|
86
|
+
if (hasProviderUpdateInvalidation(record, snapshot)) {
|
|
87
|
+
return record;
|
|
88
|
+
}
|
|
89
|
+
return invalidateBinding(record, {
|
|
90
|
+
reason: 'provider-update',
|
|
91
|
+
providerId: snapshot.providerId,
|
|
92
|
+
snapshotVersion: snapshot.version,
|
|
93
|
+
});
|
|
94
|
+
}));
|
|
95
|
+
}
|
|
96
|
+
function hasProviderUpdateInvalidation(record, snapshot) {
|
|
97
|
+
return record.invalidations.some((invalidation) => (invalidation.reason === 'provider-update'
|
|
98
|
+
&& invalidation.providerId === snapshot.providerId
|
|
99
|
+
&& invalidation.snapshotVersion === snapshot.version));
|
|
100
|
+
}
|
|
101
|
+
function providerAssignmentMismatchIssues(collection, resolutions) {
|
|
102
|
+
const providerIdsByRequirementId = new Map();
|
|
103
|
+
collection.entries().forEach((entry) => {
|
|
104
|
+
if (entry.providerId !== undefined) {
|
|
105
|
+
providerIdsByRequirementId.set(entry.requirement.id, entry.providerId);
|
|
106
|
+
}
|
|
107
|
+
});
|
|
108
|
+
return freezeIssues(resolutions.flatMap((resolution) => {
|
|
109
|
+
const expectedProviderId = providerIdsByRequirementId.get(resolution.requirementId);
|
|
110
|
+
if (expectedProviderId === undefined
|
|
111
|
+
|| resolution.providerId === undefined
|
|
112
|
+
|| resolution.providerId === expectedProviderId) {
|
|
113
|
+
return [];
|
|
114
|
+
}
|
|
115
|
+
return [{
|
|
116
|
+
severity: 'error',
|
|
117
|
+
code: 'provider.assignment-mismatch',
|
|
118
|
+
message: `Resolved provider ${resolution.providerId} for requirement `
|
|
119
|
+
+ `${resolution.requirementId}; expected ${expectedProviderId}`,
|
|
120
|
+
path: resolution.requirementId,
|
|
121
|
+
}];
|
|
122
|
+
}));
|
|
123
|
+
}
|
|
124
|
+
function freezeIssues(issues) {
|
|
125
|
+
if (issues.length === 0) {
|
|
126
|
+
return Object.freeze([]);
|
|
127
|
+
}
|
|
128
|
+
return Object.freeze(issues.map((issue) => Object.freeze({ ...issue })));
|
|
129
|
+
}
|
|
130
|
+
function isObjectRecord(value) {
|
|
131
|
+
return Boolean(value && typeof value === 'object' && !Array.isArray(value));
|
|
132
|
+
}
|
|
133
|
+
//# sourceMappingURL=binding-frame-update.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"binding-frame-update.js","sourceRoot":"","sources":["../../src/core/binding-frame-update.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,GAE1B,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,yBAAyB,EACzB,iBAAiB,EACjB,eAAe,EACf,2BAA2B,GAQ5B,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,wBAAwB,GAEzB,MAAM,wBAAwB,CAAC;AAiBhC,MAAM,UAAU,+BAA+B,CAC7C,KAA2C;IAE3C,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACnE,CAAC;IACD,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;QACjD,MAAM,IAAI,KAAK,CACb,+EAA+E,CAChF,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC;IACpF,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACtE,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE;QAC1C,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CACb,2CAA2C,KAAK,uCAAuC,CACxF,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,2BAA2B,CAAC,KAAK,CAAC,UAAU,CAAC,YAAY,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IAC9F,MAAM,4BAA4B,GAAG,gCAAgC,CACnE,KAAK,CAAC,UAAU,EAChB,WAAW,CACZ,CAAC;IACF,MAAM,wBAAwB,GAAG,IAAI,GAAG,CACtC,4BAA4B,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CACxD,CAAC;IACF,MAAM,oBAAoB,GAAG,WAAW,CAAC,MAAM,CAC7C,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,wBAAwB,CAAC,GAAG,CAAC,UAAU,CAAC,aAAa,CAAC,CACxE,CAAC;IACF,MAAM,kBAAkB,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,CAC/C,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,wBAAwB,CAAC,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC,CACpE,CAAC;IACF,MAAM,QAAQ,GAAG,yBAAyB,CAAC;QACzC,WAAW,EAAE,oBAAoB;QACjC,SAAS,EAAE,kBAAkB;KAC9B,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,wBAAwB,CAAC;QACvC,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,qCAAqC,CAAC,KAAK,CAAC,UAAU,EAAE,WAAW,CAAC;QAC9F,WAAW,EAAE,oBAAoB;QACjC,SAAS,EAAE,kBAAkB;KAC9B,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,OAAO;QACP,WAAW;QACX,MAAM,EAAE,YAAY,CAAC;YACnB,GAAG,4BAA4B;YAC/B,GAAG,QAAQ,CAAC,MAAM;SACnB,CAAC;QACF,KAAK,EAAE,QAAQ,CAAC,KAAK;KACtB,CAAC,CAAC;AACL,CAAC;AAED,SAAS,qCAAqC,CAC5C,UAAmC,EACnC,WAA0C;IAE1C,MAAM,0BAA0B,GAAG,IAAI,GAAG,EAAqC,CAAC;IAChF,WAAW,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;QACjC,0BAA0B,CAAC,GAAG,CAAC,UAAU,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC,MAAM,CAClB,UAAU,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACjC,MAAM,UAAU,GAAG,0BAA0B,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAExE,OAAO,sBAAsB,CAAC;YAC5B,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,aAAa,EAAE,KAAK,CAAC,WAAW,CAAC,EAAE;YACnC,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,UAAU,EAAE,UAAU;YACtD,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,KAAK;SAC/B,CAAC,CAAC;IACL,CAAC,CAAC,CACH,CAAC;AACJ,CAAC;AAED,SAAS,wBAAwB,CAAC,OAIjC;IACC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IACpE,CAAC;IAED,MAAM,0BAA0B,GAAG,IAAI,GAAG,EAAqC,CAAC;IAChF,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;QACzC,0BAA0B,CAAC,GAAG,CAAC,UAAU,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;IACH,MAAM,wBAAwB,GAAG,IAAI,GAAG,EAAkC,CAAC;IAC3E,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;QACrC,wBAAwB,CAAC,GAAG,CAAC,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC,MAAM,CAClB,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;QACpC,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CACb,yCAAyC,KAAK,8CAA8C,CAC7F,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,GAAG,wBAAwB,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QACpE,MAAM,UAAU,GAAG,0BAA0B,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QACxE,IACE,QAAQ,KAAK,SAAS;eACnB,UAAU,KAAK,SAAS;eACxB,UAAU,CAAC,UAAU,KAAK,SAAS;eACnC,QAAQ,CAAC,UAAU,KAAK,UAAU,CAAC,UAAU,EAChD,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,IAAI,6BAA6B,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC;YACpD,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,OAAO,iBAAiB,CAAC,MAAM,EAAE;YAC/B,MAAM,EAAE,iBAAiB;YACzB,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,eAAe,EAAE,QAAQ,CAAC,OAAO;SAClC,CAAC,CAAC;IACL,CAAC,CAAC,CACH,CAAC;AACJ,CAAC;AAED,SAAS,6BAA6B,CACpC,MAA8B,EAC9B,QAAyB;IAEzB,OAAO,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,CACjD,YAAY,CAAC,MAAM,KAAK,iBAAiB;WACtC,YAAY,CAAC,UAAU,KAAK,QAAQ,CAAC,UAAU;WAC/C,YAAY,CAAC,eAAe,KAAK,QAAQ,CAAC,OAAO,CACrD,CAAC,CAAC;AACL,CAAC;AAED,SAAS,gCAAgC,CACvC,UAAmC,EACnC,WAA0C;IAE1C,MAAM,0BAA0B,GAAG,IAAI,GAAG,EAAyB,CAAC;IACpE,UAAU,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QACrC,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YACnC,0BAA0B,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;QACzE,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,YAAY,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;QACrD,MAAM,kBAAkB,GAAG,0BAA0B,CAAC,GAAG,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QACpF,IACE,kBAAkB,KAAK,SAAS;eAC7B,UAAU,CAAC,UAAU,KAAK,SAAS;eACnC,UAAU,CAAC,UAAU,KAAK,kBAAkB,EAC/C,CAAC;YACD,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,OAAO,CAAC;gBACN,QAAQ,EAAE,OAAO;gBACjB,IAAI,EAAE,8BAA8B;gBACpC,OAAO,EACL,qBAAqB,UAAU,CAAC,UAAU,mBAAmB;sBAC3D,GAAG,UAAU,CAAC,aAAa,cAAc,kBAAkB,EAAE;gBACjE,IAAI,EAAE,UAAU,CAAC,aAAa;aACR,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC,CAAC;AACN,CAAC;AAED,SAAS,YAAY,CAAC,MAA+B;IACnD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC3B,CAAC;IAED,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;AAC3E,CAAC;AAED,SAAS,cAAc,CAAC,KAAc;IACpC,OAAO,OAAO,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;AAC9E,CAAC"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import type { BindingFact, ProviderId, RequirementId } from './binding.js';
|
|
2
|
+
declare const BINDING_LIFECYCLE_OWNER_BRAND: unique symbol;
|
|
3
|
+
declare const BINDING_LIFECYCLE_RECORD_BRAND: unique symbol;
|
|
4
|
+
export type BindingLifecycleState = 'active' | 'suspended' | 'disposed';
|
|
5
|
+
export type BindingLifecycleOwnerKind = 'view' | 'block' | 'app-shell' | 'runtime';
|
|
6
|
+
export type BindingInvalidationReason = 'provider-update' | 'owner-suspended' | 'owner-disposed' | 'scope-changed' | 'manual';
|
|
7
|
+
export type BindingLifecycleTransitionReason = 'activate' | 'suspend' | 'dispose' | 'invalidate';
|
|
8
|
+
export interface BindingLifecycleOwnerInput {
|
|
9
|
+
readonly id: string;
|
|
10
|
+
readonly kind: string;
|
|
11
|
+
readonly label?: string;
|
|
12
|
+
}
|
|
13
|
+
export interface BindingLifecycleOwner {
|
|
14
|
+
readonly [BINDING_LIFECYCLE_OWNER_BRAND]: true;
|
|
15
|
+
readonly id: string;
|
|
16
|
+
readonly kind: BindingLifecycleOwnerKind;
|
|
17
|
+
readonly label?: string;
|
|
18
|
+
}
|
|
19
|
+
export interface BindingInvalidationInput {
|
|
20
|
+
readonly reason: BindingInvalidationReason;
|
|
21
|
+
readonly providerId?: string;
|
|
22
|
+
readonly snapshotVersion?: number;
|
|
23
|
+
}
|
|
24
|
+
export interface BindingInvalidation {
|
|
25
|
+
readonly requirementId: RequirementId;
|
|
26
|
+
readonly providerId?: ProviderId;
|
|
27
|
+
readonly reason: BindingInvalidationReason;
|
|
28
|
+
readonly snapshotVersion?: number;
|
|
29
|
+
}
|
|
30
|
+
export interface BindingLifecycleTransition {
|
|
31
|
+
readonly from: BindingLifecycleState;
|
|
32
|
+
readonly to: BindingLifecycleState;
|
|
33
|
+
readonly reason: BindingLifecycleTransitionReason;
|
|
34
|
+
}
|
|
35
|
+
export interface BindingLifecycleRecordInput {
|
|
36
|
+
readonly owner: BindingLifecycleOwner;
|
|
37
|
+
readonly requirementId: string;
|
|
38
|
+
readonly providerId?: string;
|
|
39
|
+
readonly state?: BindingLifecycleState;
|
|
40
|
+
readonly version?: number;
|
|
41
|
+
readonly invalidations?: readonly BindingInvalidation[];
|
|
42
|
+
readonly transitions?: readonly BindingLifecycleTransition[];
|
|
43
|
+
readonly facts?: readonly BindingFact[];
|
|
44
|
+
}
|
|
45
|
+
export interface BindingLifecycleRecord {
|
|
46
|
+
readonly [BINDING_LIFECYCLE_RECORD_BRAND]: true;
|
|
47
|
+
readonly owner: BindingLifecycleOwner;
|
|
48
|
+
readonly requirementId: RequirementId;
|
|
49
|
+
readonly providerId?: ProviderId;
|
|
50
|
+
readonly state: BindingLifecycleState;
|
|
51
|
+
readonly version: number;
|
|
52
|
+
readonly invalidations: readonly BindingInvalidation[];
|
|
53
|
+
readonly transitions: readonly BindingLifecycleTransition[];
|
|
54
|
+
readonly facts: readonly BindingFact[];
|
|
55
|
+
}
|
|
56
|
+
export declare function defineBindingLifecycleOwner(input: BindingLifecycleOwnerInput): BindingLifecycleOwner;
|
|
57
|
+
export declare function isBindingLifecycleOwner(value: unknown): value is BindingLifecycleOwner;
|
|
58
|
+
export declare function bindingLifecycleRecord(input: BindingLifecycleRecordInput): BindingLifecycleRecord;
|
|
59
|
+
export declare function isBindingLifecycleRecord(value: unknown): value is BindingLifecycleRecord;
|
|
60
|
+
export declare function activateBinding(record: BindingLifecycleRecord): BindingLifecycleRecord;
|
|
61
|
+
export declare function suspendBinding(record: BindingLifecycleRecord): BindingLifecycleRecord;
|
|
62
|
+
export declare function disposeBinding(record: BindingLifecycleRecord): BindingLifecycleRecord;
|
|
63
|
+
export declare function invalidateBinding(record: BindingLifecycleRecord, input: BindingInvalidationInput): BindingLifecycleRecord;
|
|
64
|
+
export {};
|
|
65
|
+
//# sourceMappingURL=binding-lifecycle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"binding-lifecycle.d.ts","sourceRoot":"","sources":["../../src/core/binding-lifecycle.ts"],"names":[],"mappings":"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"}
|