effectable 0.1.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/LICENSE +21 -0
- package/README.md +157 -0
- package/build/LICENSE +21 -0
- package/build/bootstrap/bootstrap.d.ts +32 -0
- package/build/bootstrap/bootstrap.d.ts.map +1 -0
- package/build/bootstrap/bootstrap.js +179 -0
- package/build/bootstrap/bootstrap.js.map +1 -0
- package/build/bootstrap/index.d.ts +9 -0
- package/build/bootstrap/index.d.ts.map +1 -0
- package/build/bootstrap/index.js +14 -0
- package/build/bootstrap/index.js.map +1 -0
- package/build/bootstrap/types.d.ts +105 -0
- package/build/bootstrap/types.d.ts.map +1 -0
- package/build/bootstrap/types.js +26 -0
- package/build/bootstrap/types.js.map +1 -0
- package/build/component/Component.d.ts +126 -0
- package/build/component/Component.d.ts.map +1 -0
- package/build/component/Component.js +123 -0
- package/build/component/Component.js.map +1 -0
- package/build/component/GraphRuntime.d.ts +457 -0
- package/build/component/GraphRuntime.d.ts.map +1 -0
- package/build/component/GraphRuntime.js +1168 -0
- package/build/component/GraphRuntime.js.map +1 -0
- package/build/component/constants.d.ts +1 -0
- package/build/component/constants.d.ts.map +1 -0
- package/build/component/constants.js +2 -0
- package/build/component/constants.js.map +1 -0
- package/build/component/context.d.ts +199 -0
- package/build/component/context.d.ts.map +1 -0
- package/build/component/context.js +262 -0
- package/build/component/context.js.map +1 -0
- package/build/component/graphRuntime.constants.d.ts +13 -0
- package/build/component/graphRuntime.constants.d.ts.map +1 -0
- package/build/component/graphRuntime.constants.js +15 -0
- package/build/component/graphRuntime.constants.js.map +1 -0
- package/build/component/h.d.ts +48 -0
- package/build/component/h.d.ts.map +1 -0
- package/build/component/h.js +72 -0
- package/build/component/h.js.map +1 -0
- package/build/component/index.d.ts +19 -0
- package/build/component/index.d.ts.map +1 -0
- package/build/component/index.js +39 -0
- package/build/component/index.js.map +1 -0
- package/build/component/lifecycle.d.ts +179 -0
- package/build/component/lifecycle.d.ts.map +1 -0
- package/build/component/lifecycle.js +367 -0
- package/build/component/lifecycle.js.map +1 -0
- package/build/component/refs.d.ts +105 -0
- package/build/component/refs.d.ts.map +1 -0
- package/build/component/refs.js +128 -0
- package/build/component/refs.js.map +1 -0
- package/build/component/types.d.ts +169 -0
- package/build/component/types.d.ts.map +1 -0
- package/build/component/types.js +40 -0
- package/build/component/types.js.map +1 -0
- package/build/connect/connect.d.ts +31 -0
- package/build/connect/connect.d.ts.map +1 -0
- package/build/connect/connect.js +500 -0
- package/build/connect/connect.js.map +1 -0
- package/build/connect/index.d.ts +8 -0
- package/build/connect/index.d.ts.map +1 -0
- package/build/connect/index.js +11 -0
- package/build/connect/index.js.map +1 -0
- package/build/connect/types.d.ts +90 -0
- package/build/connect/types.d.ts.map +1 -0
- package/build/connect/types.js +8 -0
- package/build/connect/types.js.map +1 -0
- package/build/index.d.ts +26 -0
- package/build/index.d.ts.map +1 -0
- package/build/index.js +60 -0
- package/build/index.js.map +1 -0
- package/build/runtime/BusDecorators.d.ts +113 -0
- package/build/runtime/BusDecorators.d.ts.map +1 -0
- package/build/runtime/BusDecorators.js +302 -0
- package/build/runtime/BusDecorators.js.map +1 -0
- package/build/runtime/CommandBus.d.ts +43 -0
- package/build/runtime/CommandBus.d.ts.map +1 -0
- package/build/runtime/CommandBus.js +65 -0
- package/build/runtime/CommandBus.js.map +1 -0
- package/build/runtime/EventBus.d.ts +50 -0
- package/build/runtime/EventBus.d.ts.map +1 -0
- package/build/runtime/EventBus.js +90 -0
- package/build/runtime/EventBus.js.map +1 -0
- package/build/runtime/HandleRegistry.d.ts +143 -0
- package/build/runtime/HandleRegistry.d.ts.map +1 -0
- package/build/runtime/HandleRegistry.js +244 -0
- package/build/runtime/HandleRegistry.js.map +1 -0
- package/build/runtime/QueryBus.d.ts +43 -0
- package/build/runtime/QueryBus.d.ts.map +1 -0
- package/build/runtime/QueryBus.js +65 -0
- package/build/runtime/QueryBus.js.map +1 -0
- package/build/runtime/index.d.ts +13 -0
- package/build/runtime/index.d.ts.map +1 -0
- package/build/runtime/index.js +32 -0
- package/build/runtime/index.js.map +1 -0
- package/build/runtime/types.d.ts +79 -0
- package/build/runtime/types.d.ts.map +1 -0
- package/build/runtime/types.js +8 -0
- package/build/runtime/types.js.map +1 -0
- package/build/store/createStore.d.ts +36 -0
- package/build/store/createStore.d.ts.map +1 -0
- package/build/store/createStore.js +131 -0
- package/build/store/createStore.js.map +1 -0
- package/build/store/index.d.ts +14 -0
- package/build/store/index.d.ts.map +1 -0
- package/build/store/index.js +39 -0
- package/build/store/index.js.map +1 -0
- package/build/store/middleware.d.ts +38 -0
- package/build/store/middleware.d.ts.map +1 -0
- package/build/store/middleware.js +99 -0
- package/build/store/middleware.js.map +1 -0
- package/build/store/selector.d.ts +62 -0
- package/build/store/selector.d.ts.map +1 -0
- package/build/store/selector.js +226 -0
- package/build/store/selector.js.map +1 -0
- package/build/store/semanticStateTree.d.ts +91 -0
- package/build/store/semanticStateTree.d.ts.map +1 -0
- package/build/store/semanticStateTree.js +263 -0
- package/build/store/semanticStateTree.js.map +1 -0
- package/build/store/types.d.ts +259 -0
- package/build/store/types.d.ts.map +1 -0
- package/build/store/types.js +28 -0
- package/build/store/types.js.map +1 -0
- package/package.json +109 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GraphRuntime.js","sourceRoot":"","sources":["../../src/component/GraphRuntime.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/component/constants.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/component/constants.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* **Context** machinery (dependency injection down the component tree): passes dependencies
|
|
3
|
+
* without threading props through every level (prop drilling).
|
|
4
|
+
*
|
|
5
|
+
* **Data flow**
|
|
6
|
+
* 1. {@link createContext} — declares a typed {@link ContextToken}.
|
|
7
|
+
* 2. {@link ContextProvider} in the virtual node tree extends {@link ContextScope}.
|
|
8
|
+
* 3. {@link UseContext} marks class fields; during materialization {@link injectContextFields}
|
|
9
|
+
* fills them from the scope (after instance creation, before startup).
|
|
10
|
+
*
|
|
11
|
+
* **Conventions**
|
|
12
|
+
* - Tokens are always typed; the scope key is `token.key` ({@link ContextToken.key}).
|
|
13
|
+
* - Context is for infrastructure / cross-cutting dependencies, not a substitute for explicit domain contracts.
|
|
14
|
+
* - No provider and no `defaultValue` on the token — {@link readFromScope} and {@link injectContextFields}
|
|
15
|
+
* throw (missing required provider).
|
|
16
|
+
* - {@link GraphRuntime} inherits scope from parent to children when materializing nodes.
|
|
17
|
+
*
|
|
18
|
+
* @module Effectable/component/context
|
|
19
|
+
*/
|
|
20
|
+
import { Component } from './Component';
|
|
21
|
+
import type { VirtualServiceNode } from './types';
|
|
22
|
+
/**
|
|
23
|
+
* Unique context token: identifier of type `T` in {@link ContextScope}.
|
|
24
|
+
* Created only via {@link createContext}; two calls with the same `displayName` yield different `key`s.
|
|
25
|
+
* For a process-wide singleton token, store the `createContext` result in a module constant.
|
|
26
|
+
*
|
|
27
|
+
* @template T type of the value stored in scope for this token
|
|
28
|
+
*/
|
|
29
|
+
export interface ContextToken<T> {
|
|
30
|
+
/** Human-readable name (logs, error messages); preferably unique in the project. */
|
|
31
|
+
readonly displayName: string;
|
|
32
|
+
/**
|
|
33
|
+
* Value when there is no entry in scope: used by {@link readFromScope}.
|
|
34
|
+
* If `undefined` and there is no scope entry — reading is a tree configuration error.
|
|
35
|
+
*/
|
|
36
|
+
readonly defaultValue: T | undefined;
|
|
37
|
+
/** Internal entry key in {@link ContextScope} (do not mix with foreign `symbol`s). */
|
|
38
|
+
readonly key: symbol;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Immutable snapshot of “token → value” bindings for the current tree node.
|
|
42
|
+
* Keys are `ContextToken.key`; values are cast to the token type on read.
|
|
43
|
+
* Extended only by creating a new map ({@link extendScope}, {@link ContextProvider.applyToScope}).
|
|
44
|
+
*/
|
|
45
|
+
export type ContextScope = ReadonlyMap<symbol, unknown>;
|
|
46
|
+
/**
|
|
47
|
+
* Initial scope before the first {@link ContextProvider}: empty map.
|
|
48
|
+
* Root runtime usually starts with this reference and accumulates layers down the tree.
|
|
49
|
+
*/
|
|
50
|
+
export declare const EMPTY_CONTEXT_SCOPE: ContextScope;
|
|
51
|
+
/**
|
|
52
|
+
* Declares a new {@link ContextToken}: factory for later use in
|
|
53
|
+
* {@link ContextProvider} and {@link UseContext}.
|
|
54
|
+
*
|
|
55
|
+
* @template T value type in scope
|
|
56
|
+
* @param {string} displayName - name for logs and `Symbol(displayName)`; keep it stable across refactors
|
|
57
|
+
* @param {T} [defaultValue] - fallback if no {@link ContextProvider} node placed the token in scope
|
|
58
|
+
* @returns {ContextToken<T>} token with a unique {@link ContextToken.key}
|
|
59
|
+
* @example
|
|
60
|
+
* const DB_CONTEXT = createContext<DatabaseService>('DB_CONTEXT');
|
|
61
|
+
* const CLOCK_CONTEXT = createContext<Clock>('CLOCK_CONTEXT', new SystemClock());
|
|
62
|
+
*/
|
|
63
|
+
export declare function createContext<T>(displayName: string, defaultValue?: T): ContextToken<T>;
|
|
64
|
+
/**
|
|
65
|
+
* Returns a **new** {@link ContextScope} with entry `token.key → value`, without mutating `scope`.
|
|
66
|
+
* Writing the same key again overwrites the value in the returned map (last provider wins).
|
|
67
|
+
*
|
|
68
|
+
* @template T value type consistent with the token
|
|
69
|
+
* @param {ContextScope} scope - source scope (often the parent's)
|
|
70
|
+
* @param {ContextToken<T>} token - token under which the value is stored
|
|
71
|
+
* @param {T} value - dependency instance for the subtree
|
|
72
|
+
* @returns {ContextScope} new scope to pass to child nodes
|
|
73
|
+
*/
|
|
74
|
+
export declare function extendScope<T>(scope: ContextScope, token: ContextToken<T>, value: T): ContextScope;
|
|
75
|
+
/**
|
|
76
|
+
* Reads the value for `token` from `scope`: first the entry at `token.key`, otherwise {@link ContextToken.defaultValue}.
|
|
77
|
+
* Used for field injection and in code that needs explicit scope access without a decorator.
|
|
78
|
+
*
|
|
79
|
+
* @template T expected value type
|
|
80
|
+
* @param {ContextScope} scope - node scope at read time
|
|
81
|
+
* @param {ContextToken<T>} token - requested token
|
|
82
|
+
* @returns {T} value from scope or the token default
|
|
83
|
+
* @throws {Error} if the key is missing in scope and the token has no `defaultValue` (no provider up the tree)
|
|
84
|
+
*/
|
|
85
|
+
export declare function readFromScope<T>(scope: ContextScope, token: ContextToken<T>): T;
|
|
86
|
+
/**
|
|
87
|
+
* Props of a {@link ContextProvider} node: what to put into the child {@link ContextScope}.
|
|
88
|
+
* The shape of `value` differs by array form (one pair vs array of pairs) — see {@link ContextProvider.applyToScope}.
|
|
89
|
+
*/
|
|
90
|
+
export interface ContextProviderProps {
|
|
91
|
+
/**
|
|
92
|
+
* Either a single pair `[token, value]`, or an array of pairs `[[t1, v1], [t2, v2], ...]`.
|
|
93
|
+
* Do not mix “one pair” and “array of pairs” in one value — distinguished by `Array.isArray(value[0])`.
|
|
94
|
+
*
|
|
95
|
+
* @example One token
|
|
96
|
+
* { value: [DB_CONTEXT, dbInstance] }
|
|
97
|
+
* @example Multiple tokens
|
|
98
|
+
* { value: [[DB_CONTEXT, db], [CLOCK_CONTEXT, clock]] }
|
|
99
|
+
*/
|
|
100
|
+
value: [ContextToken<unknown>, unknown] | Array<[ContextToken<unknown>, unknown]>;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Virtual node with no UI of its own: only extends {@link ContextScope} for descendants.
|
|
104
|
+
* Runtime calls {@link applyToScope} during materialization and passes the result to child nodes.
|
|
105
|
+
* Provider detection without `instanceof`: {@link IS_CONTEXT_PROVIDER} is set on the prototype.
|
|
106
|
+
*
|
|
107
|
+
* @example
|
|
108
|
+
* compose() {
|
|
109
|
+
* return h(ContextProvider, { value: [DB_CONTEXT, this.db] }, [
|
|
110
|
+
* h(DeepChild, {})
|
|
111
|
+
* ]);
|
|
112
|
+
* }
|
|
113
|
+
*/
|
|
114
|
+
export declare class ContextProvider extends Component<Record<string, unknown>, ContextProviderProps> {
|
|
115
|
+
/**
|
|
116
|
+
* @param {ContextProviderProps} props - token–value pairs for the subtree
|
|
117
|
+
*/
|
|
118
|
+
constructor(props: ContextProviderProps);
|
|
119
|
+
/**
|
|
120
|
+
* Builds the child scope: copies `parentScope` and overlays entries from {@link ContextProviderProps.value}.
|
|
121
|
+
* Pair order in the array matters on token collision — the last pair wins.
|
|
122
|
+
*
|
|
123
|
+
* For multiple pairs: one parent copy only if `parentScope` is non-empty; when `size === 0`
|
|
124
|
+
* build a fresh `Map` without `new Map(parentScope)` (avoids an extra entry walk).
|
|
125
|
+
* A single pair in array form — delegates to {@link extendScope} (same path as one pair in props).
|
|
126
|
+
*
|
|
127
|
+
* @param {ContextScope} parentScope - scope inherited from ancestors
|
|
128
|
+
* @returns {ContextScope} scope for this provider's child components
|
|
129
|
+
*/
|
|
130
|
+
applyToScope(parentScope: ContextScope): ContextScope;
|
|
131
|
+
/**
|
|
132
|
+
* The provider does not render children itself — that is done by the parent's compose/h;
|
|
133
|
+
* the node exists only to participate in scope computation.
|
|
134
|
+
*
|
|
135
|
+
* @returns {null} no child virtual nodes
|
|
136
|
+
*/
|
|
137
|
+
compose(): VirtualServiceNode[] | null;
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Marker on {@link ContextProvider.prototype}: fast “is this a provider?” check without `instanceof`
|
|
141
|
+
* (hot-path optimization in the runtime). Declared before {@link Object.defineProperty}, which hangs the flag on the prototype.
|
|
142
|
+
*/
|
|
143
|
+
export declare const IS_CONTEXT_PROVIDER: unique symbol;
|
|
144
|
+
/**
|
|
145
|
+
* Metadata key on the constructor: array of {@link ContextFieldMeta} for fields with {@link UseContext}.
|
|
146
|
+
* Filled by the decorator when the class loads.
|
|
147
|
+
*/
|
|
148
|
+
export declare const CONTEXT_FIELDS_META_KEY: unique symbol;
|
|
149
|
+
/**
|
|
150
|
+
* Marker on the constructor: `true` if the class has at least one {@link UseContext} field.
|
|
151
|
+
* Lets {@link injectContextFields} exit immediately for “pure” components without extra walks.
|
|
152
|
+
*/
|
|
153
|
+
export declare const HAS_CONTEXT_FIELDS_KEY: unique symbol;
|
|
154
|
+
/**
|
|
155
|
+
* Metadata record for one field marked with {@link UseContext}: what and from where to fill.
|
|
156
|
+
*/
|
|
157
|
+
export interface ContextFieldMeta {
|
|
158
|
+
/** Property key on the instance (as in the class declaration). */
|
|
159
|
+
propertyKey: string | symbol;
|
|
160
|
+
/** Token; the actual value is taken via {@link readFromScope} in {@link injectContextFields}. */
|
|
161
|
+
token: ContextToken<unknown>;
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* **Field** decorator for a {@link Component} class: after instance creation the runtime assigns
|
|
165
|
+
* to the property the result of {@link readFromScope} for the given token and the node's current scope.
|
|
166
|
+
* Metadata accumulates under {@link CONTEXT_FIELDS_META_KEY}; class field order is assignment order.
|
|
167
|
+
*
|
|
168
|
+
* @template T field type (must match the token value type)
|
|
169
|
+
* @param {ContextToken<T>} token - which context to inject
|
|
170
|
+
* @returns {PropertyDecorator} standard Stage 3 property decorator
|
|
171
|
+
* @example
|
|
172
|
+
* class DeepChild extends Component {
|
|
173
|
+
* @UseContext(DB_CONTEXT) private db!: DatabaseService;
|
|
174
|
+
* }
|
|
175
|
+
*/
|
|
176
|
+
export declare function UseContext<T>(token: ContextToken<T>): PropertyDecorator;
|
|
177
|
+
/**
|
|
178
|
+
* Snapshot of metadata collected by the {@link UseContext} decorator for the given constructor.
|
|
179
|
+
* If the decorator was never applied — returns an empty array.
|
|
180
|
+
*
|
|
181
|
+
* @param {{ [CONTEXT_FIELDS_META_KEY]?: ContextFieldMeta[] }} componentClass - component constructor
|
|
182
|
+
* @returns {ContextFieldMeta[]} logical field list (external array mutations are discouraged)
|
|
183
|
+
*/
|
|
184
|
+
export declare function getContextFields(componentClass: {
|
|
185
|
+
[CONTEXT_FIELDS_META_KEY]?: ContextFieldMeta[];
|
|
186
|
+
}): ContextFieldMeta[];
|
|
187
|
+
/**
|
|
188
|
+
* Fills all {@link UseContext} fields: for each {@link ContextFieldMeta} entry calls
|
|
189
|
+
* {@link readFromScope} and assigns the instance property. When {@link HAS_CONTEXT_FIELDS_KEY}
|
|
190
|
+
* is absent on the constructor, exits without work (fast path).
|
|
191
|
+
* Called by the runtime after `new Component(...)` and before user startup.
|
|
192
|
+
*
|
|
193
|
+
* @param {object} instance - already created component instance
|
|
194
|
+
* @param {ContextScope} scope - scope computed for this node (including ancestor providers)
|
|
195
|
+
* @returns {void}
|
|
196
|
+
* @throws {Error} see {@link readFromScope} — required token missing from scope
|
|
197
|
+
*/
|
|
198
|
+
export declare function injectContextFields(instance: object, scope: ContextScope): void;
|
|
199
|
+
//# sourceMappingURL=context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/component/context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAMlD;;;;;;GAMG;AACH,MAAM,WAAW,YAAY,CAAC,CAAC;IAC7B,oFAAoF;IACpF,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B;;;OAGG;IACH,QAAQ,CAAC,YAAY,EAAE,CAAC,GAAG,SAAS,CAAC;IACrC,sFAAsF;IACtF,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAExD;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,YAAwB,CAAC;AAE3D;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAC7B,WAAW,EAAE,MAAM,EACnB,YAAY,CAAC,EAAE,CAAC,GACf,YAAY,CAAC,CAAC,CAAC,CAMjB;AAED;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAC3B,KAAK,EAAE,YAAY,EACnB,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,EACtB,KAAK,EAAE,CAAC,GACP,YAAY,CAId;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAG,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAahF;AAMD;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;;;;;;OAQG;IACH,KAAK,EACD,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,GAChC,KAAK,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;CAC7C;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,eAAgB,SAAQ,SAAS,CAC5C,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACvB,oBAAoB,CACrB;IACC;;OAEG;gBACU,KAAK,EAAE,oBAAoB;IAIxC;;;;;;;;;;OAUG;IACI,YAAY,CAAE,WAAW,EAAE,YAAY,GAAG,YAAY;IAiC7D;;;;;OAKG;IACa,OAAO,IAAK,kBAAkB,EAAE,GAAG,IAAI;CAGxD;AAED;;;GAGG;AACH,eAAO,MAAM,mBAAmB,eAA2C,CAAC;AAc5E;;;GAGG;AACH,eAAO,MAAM,uBAAuB,eAAsC,CAAC;AAE3E;;;GAGG;AACH,eAAO,MAAM,sBAAsB,eAA0C,CAAC;AAE9E;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,kEAAkE;IAClE,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,iGAAiG;IACjG,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;CAC9B;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAG,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAsBxE;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,cAAc,EAAE;IAAE,CAAC,uBAAuB,CAAC,CAAC,EAAE,gBAAgB,EAAE,CAAA;CAAE,GACjE,gBAAgB,EAAE,CAEpB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,YAAY,GAClB,IAAI,CAoCN"}
|
|
@@ -0,0 +1,262 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* **Context** machinery (dependency injection down the component tree): passes dependencies
|
|
4
|
+
* without threading props through every level (prop drilling).
|
|
5
|
+
*
|
|
6
|
+
* **Data flow**
|
|
7
|
+
* 1. {@link createContext} — declares a typed {@link ContextToken}.
|
|
8
|
+
* 2. {@link ContextProvider} in the virtual node tree extends {@link ContextScope}.
|
|
9
|
+
* 3. {@link UseContext} marks class fields; during materialization {@link injectContextFields}
|
|
10
|
+
* fills them from the scope (after instance creation, before startup).
|
|
11
|
+
*
|
|
12
|
+
* **Conventions**
|
|
13
|
+
* - Tokens are always typed; the scope key is `token.key` ({@link ContextToken.key}).
|
|
14
|
+
* - Context is for infrastructure / cross-cutting dependencies, not a substitute for explicit domain contracts.
|
|
15
|
+
* - No provider and no `defaultValue` on the token — {@link readFromScope} and {@link injectContextFields}
|
|
16
|
+
* throw (missing required provider).
|
|
17
|
+
* - {@link GraphRuntime} inherits scope from parent to children when materializing nodes.
|
|
18
|
+
*
|
|
19
|
+
* @module Effectable/component/context
|
|
20
|
+
*/
|
|
21
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
+
exports.HAS_CONTEXT_FIELDS_KEY = exports.CONTEXT_FIELDS_META_KEY = exports.IS_CONTEXT_PROVIDER = exports.ContextProvider = exports.EMPTY_CONTEXT_SCOPE = void 0;
|
|
23
|
+
exports.createContext = createContext;
|
|
24
|
+
exports.extendScope = extendScope;
|
|
25
|
+
exports.readFromScope = readFromScope;
|
|
26
|
+
exports.UseContext = UseContext;
|
|
27
|
+
exports.getContextFields = getContextFields;
|
|
28
|
+
exports.injectContextFields = injectContextFields;
|
|
29
|
+
const Component_1 = require("./Component");
|
|
30
|
+
/**
|
|
31
|
+
* Initial scope before the first {@link ContextProvider}: empty map.
|
|
32
|
+
* Root runtime usually starts with this reference and accumulates layers down the tree.
|
|
33
|
+
*/
|
|
34
|
+
exports.EMPTY_CONTEXT_SCOPE = new Map();
|
|
35
|
+
/**
|
|
36
|
+
* Declares a new {@link ContextToken}: factory for later use in
|
|
37
|
+
* {@link ContextProvider} and {@link UseContext}.
|
|
38
|
+
*
|
|
39
|
+
* @template T value type in scope
|
|
40
|
+
* @param {string} displayName - name for logs and `Symbol(displayName)`; keep it stable across refactors
|
|
41
|
+
* @param {T} [defaultValue] - fallback if no {@link ContextProvider} node placed the token in scope
|
|
42
|
+
* @returns {ContextToken<T>} token with a unique {@link ContextToken.key}
|
|
43
|
+
* @example
|
|
44
|
+
* const DB_CONTEXT = createContext<DatabaseService>('DB_CONTEXT');
|
|
45
|
+
* const CLOCK_CONTEXT = createContext<Clock>('CLOCK_CONTEXT', new SystemClock());
|
|
46
|
+
*/
|
|
47
|
+
function createContext(displayName, defaultValue) {
|
|
48
|
+
return {
|
|
49
|
+
displayName,
|
|
50
|
+
defaultValue,
|
|
51
|
+
key: Symbol(displayName),
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Returns a **new** {@link ContextScope} with entry `token.key → value`, without mutating `scope`.
|
|
56
|
+
* Writing the same key again overwrites the value in the returned map (last provider wins).
|
|
57
|
+
*
|
|
58
|
+
* @template T value type consistent with the token
|
|
59
|
+
* @param {ContextScope} scope - source scope (often the parent's)
|
|
60
|
+
* @param {ContextToken<T>} token - token under which the value is stored
|
|
61
|
+
* @param {T} value - dependency instance for the subtree
|
|
62
|
+
* @returns {ContextScope} new scope to pass to child nodes
|
|
63
|
+
*/
|
|
64
|
+
function extendScope(scope, token, value) {
|
|
65
|
+
const next = new Map(scope);
|
|
66
|
+
next.set(token.key, value);
|
|
67
|
+
return next;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Reads the value for `token` from `scope`: first the entry at `token.key`, otherwise {@link ContextToken.defaultValue}.
|
|
71
|
+
* Used for field injection and in code that needs explicit scope access without a decorator.
|
|
72
|
+
*
|
|
73
|
+
* @template T expected value type
|
|
74
|
+
* @param {ContextScope} scope - node scope at read time
|
|
75
|
+
* @param {ContextToken<T>} token - requested token
|
|
76
|
+
* @returns {T} value from scope or the token default
|
|
77
|
+
* @throws {Error} if the key is missing in scope and the token has no `defaultValue` (no provider up the tree)
|
|
78
|
+
*/
|
|
79
|
+
function readFromScope(scope, token) {
|
|
80
|
+
if (scope.has(token.key)) {
|
|
81
|
+
return scope.get(token.key);
|
|
82
|
+
}
|
|
83
|
+
if (token.defaultValue !== undefined) {
|
|
84
|
+
return token.defaultValue;
|
|
85
|
+
}
|
|
86
|
+
throw new Error(`[Effectable] Context token "${token.displayName}" is not provided. ` +
|
|
87
|
+
'Make sure that a ContextProvider with this token exists higher in the component tree.');
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Virtual node with no UI of its own: only extends {@link ContextScope} for descendants.
|
|
91
|
+
* Runtime calls {@link applyToScope} during materialization and passes the result to child nodes.
|
|
92
|
+
* Provider detection without `instanceof`: {@link IS_CONTEXT_PROVIDER} is set on the prototype.
|
|
93
|
+
*
|
|
94
|
+
* @example
|
|
95
|
+
* compose() {
|
|
96
|
+
* return h(ContextProvider, { value: [DB_CONTEXT, this.db] }, [
|
|
97
|
+
* h(DeepChild, {})
|
|
98
|
+
* ]);
|
|
99
|
+
* }
|
|
100
|
+
*/
|
|
101
|
+
class ContextProvider extends Component_1.Component {
|
|
102
|
+
/**
|
|
103
|
+
* @param {ContextProviderProps} props - token–value pairs for the subtree
|
|
104
|
+
*/
|
|
105
|
+
constructor(props) {
|
|
106
|
+
super(props);
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Builds the child scope: copies `parentScope` and overlays entries from {@link ContextProviderProps.value}.
|
|
110
|
+
* Pair order in the array matters on token collision — the last pair wins.
|
|
111
|
+
*
|
|
112
|
+
* For multiple pairs: one parent copy only if `parentScope` is non-empty; when `size === 0`
|
|
113
|
+
* build a fresh `Map` without `new Map(parentScope)` (avoids an extra entry walk).
|
|
114
|
+
* A single pair in array form — delegates to {@link extendScope} (same path as one pair in props).
|
|
115
|
+
*
|
|
116
|
+
* @param {ContextScope} parentScope - scope inherited from ancestors
|
|
117
|
+
* @returns {ContextScope} scope for this provider's child components
|
|
118
|
+
*/
|
|
119
|
+
applyToScope(parentScope) {
|
|
120
|
+
const { value } = this.props;
|
|
121
|
+
if (Array.isArray(value) && Array.isArray(value[0])) {
|
|
122
|
+
const pairs = value;
|
|
123
|
+
const n = pairs.length;
|
|
124
|
+
if (n === 1) {
|
|
125
|
+
const p = pairs[0];
|
|
126
|
+
return extendScope(parentScope, p[0], p[1]);
|
|
127
|
+
}
|
|
128
|
+
let next;
|
|
129
|
+
if (parentScope.size === 0) {
|
|
130
|
+
next = new Map();
|
|
131
|
+
}
|
|
132
|
+
else {
|
|
133
|
+
next = new Map(parentScope);
|
|
134
|
+
}
|
|
135
|
+
for (let i = 0; i < n; i += 1) {
|
|
136
|
+
const p = pairs[i];
|
|
137
|
+
next.set(p[0].key, p[1]);
|
|
138
|
+
}
|
|
139
|
+
return next;
|
|
140
|
+
}
|
|
141
|
+
// Single pair: [token, value]
|
|
142
|
+
const [token, val] = value;
|
|
143
|
+
return extendScope(parentScope, token, val);
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* The provider does not render children itself — that is done by the parent's compose/h;
|
|
147
|
+
* the node exists only to participate in scope computation.
|
|
148
|
+
*
|
|
149
|
+
* @returns {null} no child virtual nodes
|
|
150
|
+
*/
|
|
151
|
+
compose() {
|
|
152
|
+
return null;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
exports.ContextProvider = ContextProvider;
|
|
156
|
+
/**
|
|
157
|
+
* Marker on {@link ContextProvider.prototype}: fast “is this a provider?” check without `instanceof`
|
|
158
|
+
* (hot-path optimization in the runtime). Declared before {@link Object.defineProperty}, which hangs the flag on the prototype.
|
|
159
|
+
*/
|
|
160
|
+
exports.IS_CONTEXT_PROVIDER = Symbol('effectable:is_context_provider');
|
|
161
|
+
// Symbol flag on prototype for O(1) detection instead of instanceof (1.90x on negative path)
|
|
162
|
+
Object.defineProperty(ContextProvider.prototype, exports.IS_CONTEXT_PROVIDER, {
|
|
163
|
+
value: true,
|
|
164
|
+
writable: false,
|
|
165
|
+
enumerable: false,
|
|
166
|
+
configurable: false,
|
|
167
|
+
});
|
|
168
|
+
// ---------------------------------------------------------------------------
|
|
169
|
+
// @UseContext decorator
|
|
170
|
+
// ---------------------------------------------------------------------------
|
|
171
|
+
/**
|
|
172
|
+
* Metadata key on the constructor: array of {@link ContextFieldMeta} for fields with {@link UseContext}.
|
|
173
|
+
* Filled by the decorator when the class loads.
|
|
174
|
+
*/
|
|
175
|
+
exports.CONTEXT_FIELDS_META_KEY = Symbol('effectable:context_fields');
|
|
176
|
+
/**
|
|
177
|
+
* Marker on the constructor: `true` if the class has at least one {@link UseContext} field.
|
|
178
|
+
* Lets {@link injectContextFields} exit immediately for “pure” components without extra walks.
|
|
179
|
+
*/
|
|
180
|
+
exports.HAS_CONTEXT_FIELDS_KEY = Symbol('effectable:has_context_fields');
|
|
181
|
+
/**
|
|
182
|
+
* **Field** decorator for a {@link Component} class: after instance creation the runtime assigns
|
|
183
|
+
* to the property the result of {@link readFromScope} for the given token and the node's current scope.
|
|
184
|
+
* Metadata accumulates under {@link CONTEXT_FIELDS_META_KEY}; class field order is assignment order.
|
|
185
|
+
*
|
|
186
|
+
* @template T field type (must match the token value type)
|
|
187
|
+
* @param {ContextToken<T>} token - which context to inject
|
|
188
|
+
* @returns {PropertyDecorator} standard Stage 3 property decorator
|
|
189
|
+
* @example
|
|
190
|
+
* class DeepChild extends Component {
|
|
191
|
+
* @UseContext(DB_CONTEXT) private db!: DatabaseService;
|
|
192
|
+
* }
|
|
193
|
+
*/
|
|
194
|
+
function UseContext(token) {
|
|
195
|
+
return function (target, propertyKey) {
|
|
196
|
+
const constructor = target.constructor;
|
|
197
|
+
if (!Array.isArray(constructor[exports.CONTEXT_FIELDS_META_KEY])) {
|
|
198
|
+
constructor[exports.CONTEXT_FIELDS_META_KEY] = [];
|
|
199
|
+
}
|
|
200
|
+
// Set the fast-path flag when registering the first field
|
|
201
|
+
if (!constructor[exports.HAS_CONTEXT_FIELDS_KEY]) {
|
|
202
|
+
constructor[exports.HAS_CONTEXT_FIELDS_KEY] = true;
|
|
203
|
+
}
|
|
204
|
+
const existing = constructor[exports.CONTEXT_FIELDS_META_KEY];
|
|
205
|
+
if (existing !== undefined) {
|
|
206
|
+
existing.push({ propertyKey, token: token });
|
|
207
|
+
}
|
|
208
|
+
};
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* Snapshot of metadata collected by the {@link UseContext} decorator for the given constructor.
|
|
212
|
+
* If the decorator was never applied — returns an empty array.
|
|
213
|
+
*
|
|
214
|
+
* @param {{ [CONTEXT_FIELDS_META_KEY]?: ContextFieldMeta[] }} componentClass - component constructor
|
|
215
|
+
* @returns {ContextFieldMeta[]} logical field list (external array mutations are discouraged)
|
|
216
|
+
*/
|
|
217
|
+
function getContextFields(componentClass) {
|
|
218
|
+
return componentClass[exports.CONTEXT_FIELDS_META_KEY] ?? [];
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* Fills all {@link UseContext} fields: for each {@link ContextFieldMeta} entry calls
|
|
222
|
+
* {@link readFromScope} and assigns the instance property. When {@link HAS_CONTEXT_FIELDS_KEY}
|
|
223
|
+
* is absent on the constructor, exits without work (fast path).
|
|
224
|
+
* Called by the runtime after `new Component(...)` and before user startup.
|
|
225
|
+
*
|
|
226
|
+
* @param {object} instance - already created component instance
|
|
227
|
+
* @param {ContextScope} scope - scope computed for this node (including ancestor providers)
|
|
228
|
+
* @returns {void}
|
|
229
|
+
* @throws {Error} see {@link readFromScope} — required token missing from scope
|
|
230
|
+
*/
|
|
231
|
+
function injectContextFields(instance, scope) {
|
|
232
|
+
const constructor = instance.constructor;
|
|
233
|
+
// Fast-path: most HFT components do not use @UseContext (1.68x at 80% pure)
|
|
234
|
+
if (!constructor[exports.HAS_CONTEXT_FIELDS_KEY]) {
|
|
235
|
+
return;
|
|
236
|
+
}
|
|
237
|
+
const fields = constructor[exports.CONTEXT_FIELDS_META_KEY];
|
|
238
|
+
const target = instance;
|
|
239
|
+
const n = fields.length;
|
|
240
|
+
// Tight for-index loop without iterator allocation + inline single Map.get
|
|
241
|
+
// (13_EXP4 / P010, 1.37x incremental — part of the overall sync fast-path stack).
|
|
242
|
+
for (let i = 0; i < n; i++) {
|
|
243
|
+
const meta = fields[i];
|
|
244
|
+
const token = meta.token;
|
|
245
|
+
const v = scope.get(token.key);
|
|
246
|
+
if (v !== undefined) {
|
|
247
|
+
target[meta.propertyKey] = v;
|
|
248
|
+
}
|
|
249
|
+
else if (scope.has(token.key)) {
|
|
250
|
+
// Rare case: token is actually present with value undefined.
|
|
251
|
+
target[meta.propertyKey] = undefined;
|
|
252
|
+
}
|
|
253
|
+
else if (token.defaultValue !== undefined) {
|
|
254
|
+
target[meta.propertyKey] = token.defaultValue;
|
|
255
|
+
}
|
|
256
|
+
else {
|
|
257
|
+
throw new Error(`[Effectable] Context token "${token.displayName}" is not provided. ` +
|
|
258
|
+
'Make sure that a ContextProvider with this token exists higher in the component tree.');
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/component/context.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GraphRuntime constants: dirty-flush anti-loop limits.
|
|
3
|
+
*
|
|
4
|
+
* @module Effectable/component/graphRuntime.constants
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Maximum consecutive `flushDirtyFibers` passes in one microtask chain
|
|
8
|
+
* (each pass that leaves dirty work schedules the next).
|
|
9
|
+
* On overflow the queue is cleared and the error is forwarded to `onAutoReconcileError`.
|
|
10
|
+
*/
|
|
11
|
+
export declare const GRAPH_RUNTIME_MAX_DIRTY_FLUSH_PASSES: 50;
|
|
12
|
+
export type GraphRuntimeMaxDirtyFlushPasses = typeof GRAPH_RUNTIME_MAX_DIRTY_FLUSH_PASSES;
|
|
13
|
+
//# sourceMappingURL=graphRuntime.constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graphRuntime.constants.d.ts","sourceRoot":"","sources":["../../src/component/graphRuntime.constants.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;GAIG;AACH,eAAO,MAAM,oCAAoC,EAAG,EAAW,CAAC;AAEhE,MAAM,MAAM,+BAA+B,GAAG,OAAO,oCAAoC,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* GraphRuntime constants: dirty-flush anti-loop limits.
|
|
4
|
+
*
|
|
5
|
+
* @module Effectable/component/graphRuntime.constants
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.GRAPH_RUNTIME_MAX_DIRTY_FLUSH_PASSES = void 0;
|
|
9
|
+
/**
|
|
10
|
+
* Maximum consecutive `flushDirtyFibers` passes in one microtask chain
|
|
11
|
+
* (each pass that leaves dirty work schedules the next).
|
|
12
|
+
* On overflow the queue is cleared and the error is forwarded to `onAutoReconcileError`.
|
|
13
|
+
*/
|
|
14
|
+
exports.GRAPH_RUNTIME_MAX_DIRTY_FLUSH_PASSES = 50;
|
|
15
|
+
//# sourceMappingURL=graphRuntime.constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graphRuntime.constants.js","sourceRoot":"","sources":["../../src/component/graphRuntime.constants.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH;;;;GAIG;AACU,QAAA,oCAAoC,GAAG,EAAW,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* VirtualServiceNode factory for declarative component tree composition.
|
|
3
|
+
* Declarative element factory for a backend runtime graph (virtual service nodes).
|
|
4
|
+
*
|
|
5
|
+
* h() describes topology with no side effects — no network calls,
|
|
6
|
+
* subscriptions, or handler registration inside an h() call.
|
|
7
|
+
*
|
|
8
|
+
* @module Effectable/component/h
|
|
9
|
+
*/
|
|
10
|
+
import type { ComponentConstructor, RefObject, VirtualServiceNode } from './types';
|
|
11
|
+
/** Empty props: `Record<string, never>` — omit the second argument to `h`. */
|
|
12
|
+
type EmptyProps = Record<string, never>;
|
|
13
|
+
/**
|
|
14
|
+
* Creates a VirtualServiceNode — a declarative node description for GraphRuntime.
|
|
15
|
+
*
|
|
16
|
+
* Overloads:
|
|
17
|
+
* - h(type) — node with empty props (`Record<string, never>`), without `{}`
|
|
18
|
+
* - h(type, props) — node without ref/children/key
|
|
19
|
+
* - h(type, props, key) — node with key only (for dynamic lists)
|
|
20
|
+
* - h(type, props, children) — node with children
|
|
21
|
+
* - h(type, props, children, key) — node with children and key
|
|
22
|
+
* - h(type, props, ref) — node with ref
|
|
23
|
+
* - h(type, props, ref, key) — node with ref and key
|
|
24
|
+
* - h(type, props, ref, children) — node with ref and children
|
|
25
|
+
* - h(type, props, ref, children, key) — node with ref, children, and key
|
|
26
|
+
*
|
|
27
|
+
* `key` — stable identity key for diffing dynamic lists.
|
|
28
|
+
* Detected via `typeof === 'string'` in any free positional slot.
|
|
29
|
+
*
|
|
30
|
+
* @param {new (props: P) => Component<unknown, P>} type - component class
|
|
31
|
+
* @param {P} [props] - component props; omit for empty props
|
|
32
|
+
* @param {RefObject<unknown> | VirtualServiceNode[] | string | undefined} refOrChildrenOrKey - ref, children, or key
|
|
33
|
+
* @param {VirtualServiceNode[] | string | undefined} childrenOrKey - children or key
|
|
34
|
+
* @param {string | undefined} maybeKey - explicit key (when ref and children slots are already used)
|
|
35
|
+
* @returns {VirtualServiceNode<P>} virtual node
|
|
36
|
+
* @example
|
|
37
|
+
* h(SharedClientServiceComponent)
|
|
38
|
+
* h(OrderService, { symbol: 'BTCUSDT' })
|
|
39
|
+
* h(OrderService, { symbol: 'BTCUSDT' }, ordersRef)
|
|
40
|
+
* h(ContextProvider, { value: [DB_CONTEXT, db] }, [h(DeepChild)])
|
|
41
|
+
* h(Parent, undefined, parentRef, [h(Child)])
|
|
42
|
+
* h(PairMonitor, { pair: 'BTCUSDT' }, 'btc')
|
|
43
|
+
* h(PairMonitor, { pair: 'BTCUSDT' }, parentRef, [h(Child)], 'btc')
|
|
44
|
+
*/
|
|
45
|
+
export declare function h(type: ComponentConstructor<EmptyProps>): VirtualServiceNode<EmptyProps>;
|
|
46
|
+
export declare function h<P>(type: ComponentConstructor<P>, props: P, refOrChildrenOrKey?: RefObject<unknown> | VirtualServiceNode[] | string, childrenOrKey?: VirtualServiceNode[] | string, maybeKey?: string): VirtualServiceNode<P>;
|
|
47
|
+
export {};
|
|
48
|
+
//# sourceMappingURL=h.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"h.d.ts","sourceRoot":"","sources":["../../src/component/h.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAUnF,8EAA8E;AAC9E,KAAK,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAExC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,CAAC,CACf,IAAI,EAAE,oBAAoB,CAAC,UAAU,CAAC,GACrC,kBAAkB,CAAC,UAAU,CAAC,CAAC;AAClC,wBAAgB,CAAC,CAAC,CAAC,EACjB,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC,EAC7B,KAAK,EAAE,CAAC,EACR,kBAAkB,CAAC,EAAE,SAAS,CAAC,OAAO,CAAC,GAAG,kBAAkB,EAAE,GAAG,MAAM,EACvE,aAAa,CAAC,EAAE,kBAAkB,EAAE,GAAG,MAAM,EAC7C,QAAQ,CAAC,EAAE,MAAM,GAChB,kBAAkB,CAAC,CAAC,CAAC,CAAC"}
|