@adbl/cells 0.0.13 → 0.0.15

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/.prettierrc ADDED
@@ -0,0 +1,4 @@
1
+ {
2
+ "singleQuote": true,
3
+ "tabWidth": 2
4
+ }
package/README.md CHANGED
@@ -37,10 +37,10 @@ Source cells are the building blocks of your reactive state. They hold values th
37
37
  import { Cell } from '@adbl/cells';
38
38
 
39
39
  const count = Cell.source(0);
40
- console.log(count.value); // Output: 0
40
+ console.log(count.get()); // Output: 0
41
41
 
42
- count.value = 5;
43
- console.log(count.value); // Output: 5
42
+ count.set(5);
43
+ console.log(count.get()); // Output: 5
44
44
  ```
45
45
 
46
46
  ### 2. Derived Cells
@@ -49,12 +49,12 @@ Derived cells allow you to create computed values based on other cells. They upd
49
49
 
50
50
  ```javascript
51
51
  const count = Cell.source(0);
52
- const doubledCount = Cell.derived(() => count.value * 2);
52
+ const doubledCount = Cell.derived(() => count.get() * 2);
53
53
 
54
- console.log(doubledCount.value); // Output: 0
54
+ console.log(doubledCount.get()); // Output: 0
55
55
 
56
- count.value = 5;
57
- console.log(doubledCount.value); // Output: 10
56
+ count.set(5);
57
+ console.log(doubledCount.get()); // Output: 10
58
58
  ```
59
59
 
60
60
  ### 3. Reactive Effects
@@ -68,8 +68,8 @@ count.listen((newValue) => {
68
68
  console.log(`Count changed to: ${newValue}`);
69
69
  });
70
70
 
71
- count.value = 3; // Output: "Count changed to: 3"
72
- count.value = 7; // Output: "Count changed to: 7"
71
+ count.set(3); // Output: "Count changed to: 3"
72
+ count.set(7); // Output: "Count changed to: 7"
73
73
  ```
74
74
 
75
75
  ### 5. Batch Updates
@@ -80,13 +80,16 @@ When you need to perform multiple updates but only want to trigger effects once,
80
80
  const cell1 = Cell.source(0);
81
81
  const cell2 = Cell.source(0);
82
82
 
83
- Cell.afterUpdate(() => {
83
+ const callback = () => {
84
84
  console.log('Update occurred');
85
- });
85
+ };
86
+
87
+ cell1.listen(callback);
88
+ cell2.listen(callback);
86
89
 
87
90
  Cell.batch(() => {
88
- cell1.value = 1;
89
- cell2.value = 2;
91
+ cell1.set(1);
92
+ cell2.set(2);
90
93
  });
91
94
  // Output: "Update occurred" (only once)
92
95
  ```
@@ -0,0 +1,19 @@
1
+ #!/bin/bash
2
+
3
+ # Find all .js files in the dist directory
4
+ find dist -type f -name "*.js" | while read -r jsfile; do
5
+ # Get the base name of the file (e.g., index.js)
6
+ base_name=$(basename "$jsfile")
7
+ # Construct the corresponding .d.ts filename (e.g., index.d.ts)
8
+ dts_file="${base_name%.js}.d.ts"
9
+ # Construct the reference comment
10
+ reference_comment="/// <reference types=\"./$dts_file\" />"
11
+
12
+ # Check if the reference comment already exists
13
+ if ! grep -qF "$reference_comment" "$jsfile"; then
14
+ # Prepend the reference comment to the file
15
+ echo "$reference_comment" | cat - "$jsfile" > temp_file && mv temp_file "$jsfile"
16
+ fi
17
+ done
18
+
19
+ echo "Finished adding references."
package/biome.json ADDED
@@ -0,0 +1,7 @@
1
+ {
2
+ "javascript": {
3
+ "formatter": {
4
+ "quoteStyle": "single"
5
+ }
6
+ }
7
+ }
package/dist/index.js CHANGED
@@ -1,2 +1,3 @@
1
+ /// <reference types="./index.d.ts" />
1
2
  export * from './library/index.js';
2
3
  //# sourceMappingURL=index.js.map
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @template {*} T The type of value stored in the cell
2
+ * @template {*} out T The type of value stored in the cell
3
3
  *
4
4
  * Base class for reactive cells.
5
5
  * This class should not be instantiated directly - use `Cell.source` or
@@ -14,10 +14,10 @@
14
14
  * count.listen(value => console.log('Count changed:', value));
15
15
  *
16
16
  * // Update the value
17
- * count.value = 1; // Logs: Count changed: 1
17
+ * count.set(1); // Logs: Count changed: 1
18
18
  * ```
19
19
  */
20
- export class Cell<T extends unknown> {
20
+ export class Cell<out T extends unknown> {
21
21
  /**
22
22
  * @template T
23
23
  * Creates a new Cell instance with the provided value.
@@ -28,13 +28,13 @@ export class Cell<T extends unknown> {
28
28
  * import { Cell } from '@adbl/cells';
29
29
  *
30
30
  * const cell = Cell.source('Hello world');
31
- * console.log(cell.value); // Hello world.
31
+ * console.log(cell.get()); // Hello world.
32
32
  *
33
- * cell.value = 'Greetings!';
34
- * console.log(cell.value) // Greetings!
33
+ * cell.set('Greetings!');
34
+ * console.log(cell.get()) // Greetings!
35
35
  * ```
36
36
  */
37
- static source: <T_1>(value: T_1, options?: Partial<CellOptions<T_1>> | undefined) => SourceCell<T_1>;
37
+ static source: (value: T_1, options?: Partial<CellOptions<T_1>>) => SourceCell<T_1>;
38
38
  /**
39
39
  * @template T
40
40
  * Creates a new Derived instance with the provided callback function.
@@ -44,22 +44,22 @@ export class Cell<T extends unknown> {
44
44
  * import { Cell } from '@adbl/cells';
45
45
  *
46
46
  * const cell = Cell.source(2);
47
- * const derived = Cell.derived(() => cell.value * 2);
47
+ * const derived = Cell.derived(() => cell.get() * 2);
48
48
  *
49
- * console.log(derived.value); // 4
49
+ * console.log(derived.get()); // 4
50
50
  *
51
- * cell.value = 3;
52
- * console.log(derived.value); // 6
51
+ * cell.set(3);
52
+ * console.log(derived.get()); // 6
53
53
  * ```
54
54
  */
55
- static derived: <T_2>(callback: () => T_2) => DerivedCell<T_2>;
55
+ static derived: (callback: () => T_1) => DerivedCell<T_1>;
56
56
  /**
57
57
  * @template X
58
58
  * Batches all the effects created to run only once.
59
59
  * @param {() => X} callback - The function to be executed in a batched manner.
60
60
  * @returns {X} The return value of the callback.
61
61
  */
62
- static batch: <X>(callback: () => X) => X;
62
+ static batch: (callback: () => X) => X;
63
63
  /**
64
64
  * Checks if the provided value is an instance of the Cell class.
65
65
  * @template [T=any]
@@ -67,35 +67,36 @@ export class Cell<T extends unknown> {
67
67
  * @param {Cell<T> | U} value - The value to check.
68
68
  * @returns {value is Cell<T>} True if the value is an instance of Cell, false otherwise.
69
69
  */
70
- static isCell: <T_3 = any, U = any>(value: U | Cell<T_3>) => value is Cell<T_3>;
70
+ static isCell: (value: Cell<T_1> | U) => value is Cell<T_1>;
71
71
  /**
72
72
  * @template T
73
73
  * Flattens the provided value by returning the value if it is not a Cell instance, or the value of the Cell instance if it is.
74
74
  * @param {T | Cell<T>} value - The value to be flattened.
75
75
  * @returns {T} The flattened value.
76
76
  */
77
- static flatten: <T_4>(value: T_4 | Cell<T_4>) => T_4;
77
+ static flatten: (value: T_1 | Cell<T_1>) => T_1;
78
78
  /**
79
79
  * Flattens an array by applying the `flatten` function to each element.
80
80
  * @template T
81
81
  * @param {Array<T | Cell<T>>} array - The array to be flattened.
82
82
  * @returns {Array<T>} A new array with the flattened elements.
83
83
  */
84
- static flattenArray: <T_5>(array: (T_5 | Cell<T_5>)[]) => T_5[];
84
+ static flattenArray: (array: Array<T_1 | Cell<T_1>>) => Array<T_1>;
85
85
  /**
86
86
  * Flattens an object by applying the `flatten` function to each value.
87
87
  * @template {object} T
88
88
  * @param {T} object - The object to be flattened.
89
89
  * @returns {{ [K in keyof T]: T[K] extends Cell<infer U> ? U : T[K] }} A new object with the flattened values.
90
90
  */
91
- static flattenObject: <T_6 extends object>(object: T_6) => { [K in keyof T_6]: T_6[K] extends Cell<infer U_1 extends unknown> ? U_1 : T_6[K]; };
91
+ static flattenObject: (object: T_1) => { [K in keyof T_1]: T_1[K] extends Cell<infer U> ? U : T_1[K]; };
92
92
  /**
93
93
  * Wraps an asynchronous function with managed state.
94
94
  *
95
95
  * @template X - The type of the input parameter for the getter function.
96
96
  * @template Y - The type of the output returned by the getter function.
97
- * @param {(input: X) => Promise<Y>} getter - A function that performs the asynchronous operation.
98
- * @returns {AsyncRequestAtoms<X, Y>} An object containing cells for pending, data, and error states,
97
+ * @template {(input: X) => Promise<Y>} Getter - A function that performs the asynchronous operation.
98
+ * @param {Getter} getter - A function that performs the asynchronous operation.
99
+ * @returns {AsyncRequestAtoms<X, Y, Getter>} An object containing cells for pending, data, and error states,
99
100
  * as well as functions to run and reload the operation.
100
101
  *
101
102
  * @example
@@ -106,12 +107,11 @@ export class Cell<T extends unknown> {
106
107
  *
107
108
  * run('input');
108
109
  */
109
- static async<X_1, Y>(getter: (input: X_1) => Promise<Y>): AsyncRequestAtoms<X_1, Y>;
110
+ static async<X, Y, Getter extends (input: X) => Promise<Y>>(getter: Getter): AsyncRequestAtoms<X, Y, Getter>;
110
111
  /**
111
- * @readonly
112
112
  * @returns {Array<DerivedCell<any>>}
113
113
  */
114
- readonly get derivedCells(): DerivedCell<any>[];
114
+ get derivedCells(): Array<DerivedCell<any>>;
115
115
  /**
116
116
  * @protected @type T
117
117
  */
@@ -127,9 +127,10 @@ export class Cell<T extends unknown> {
127
127
  */
128
128
  valueOf(): T;
129
129
  /**
130
- * Gets the current value of the cell.
130
+ * Gets the current value of the cell and registers it as a dependency if called within a derived cell computation.
131
+ * @returns {T} The value of the Cell.
131
132
  */
132
- get value(): T;
133
+ get(): T;
133
134
  /**
134
135
  * Stringifies the value of the Cell.
135
136
  * @returns {string}
@@ -146,14 +147,14 @@ export class Cell<T extends unknown> {
146
147
  * @param {EffectOptions} [options] - The options for the effect.
147
148
  * @returns {() => void} A function that can be called to remove the effect.
148
149
  */
149
- listen(callback: (newValue: T) => void, options?: EffectOptions | undefined): () => void;
150
+ listen(callback: (newValue: T) => void, options?: EffectOptions): () => void;
150
151
  /**
151
152
  * Creates an effect that is immediately executed with the current value of the cell, and then added to the list of effects for the cell.
152
153
  * @param {(newValue: T) => void} callback - The effect callback to add.
153
154
  * @param {Partial<EffectOptions>} [options] - The options for the effect.
154
155
  * @returns {() => void} A function that can be called to remove the effect.
155
156
  */
156
- runAndListen(callback: (newValue: T) => void, options?: Partial<EffectOptions> | undefined): () => void;
157
+ runAndListen(callback: (newValue: T) => void, options?: Partial<EffectOptions>): () => void;
157
158
  /**
158
159
  * Removes the specified effect callback from the list of effects for this cell.
159
160
  * @param {(newValue: T) => void} callback - The effect callback to remove.
@@ -177,7 +178,7 @@ export class Cell<T extends unknown> {
177
178
  */
178
179
  protected update(): void;
179
180
  /**
180
- * Returns the current value of the cell without registering a watcher.
181
+ * Returns the current value of the cell without registering dependencies.
181
182
  * @returns {T} - The current value of the cell.
182
183
  */
183
184
  peek(): T;
@@ -186,10 +187,10 @@ export class Cell<T extends unknown> {
186
187
  /**
187
188
  * A class that represents a computed value that depends on other reactive values.
188
189
  * The computed value is automatically updated when any of its dependencies change.
189
- * @template {*} T
190
+ * @template {*} out T
190
191
  * @extends {Cell<T>}
191
192
  */
192
- export class DerivedCell<T extends unknown> extends Cell<T> {
193
+ export class DerivedCell<out T extends unknown> extends Cell<T> {
193
194
  /**
194
195
  * @param {() => T} computedFn - A function that generates the value of the computed.
195
196
  */
@@ -199,31 +200,22 @@ export class DerivedCell<T extends unknown> extends Cell<T> {
199
200
  /** @type {() => T} */
200
201
  computedFn: () => T;
201
202
  initialized: boolean;
202
- /**
203
- * @readonly
204
- */
205
- readonly set value(_: T);
206
- /**
207
- * @readonly
208
- */
209
- readonly get value(): T;
210
203
  /**
211
204
  * Listens for changes to the cell, initializing the value if not already done.
212
205
  * @param {(newValue: T) => void} callback - The function to call when the cell's value changes.
213
206
  * @param {object} [options] - Optional configuration for listening.
214
207
  */
215
- listen(callback: (newValue: T) => void, options?: object | undefined): () => void;
208
+ listen(callback: (newValue: T) => void, options?: object): () => void;
216
209
  /**
217
210
  * Runs the callback and sets up a listener, initializing the cell's value if not already done.
218
211
  * @param {(newValue: T) => void} callback - The function to call when the cell's value changes.
219
212
  * @param {object} [options] - Optional configuration for listening and running.
220
213
  * @returns {*} The result of the parent class's runAndListen method.
221
214
  */
222
- runAndListen(callback: (newValue: T) => void, options?: object | undefined): any;
223
- deproxy(): void;
215
+ runAndListen(callback: (newValue: T) => void, options?: object): any;
224
216
  }
225
217
  /**
226
- * @template {*} T
218
+ * @template {*} out T
227
219
  * @extends {Cell<T>}
228
220
  * A cell whose value can be directly modified.
229
221
  * Source cells are the primary way to introduce reactivity.
@@ -240,38 +232,22 @@ export class DerivedCell<T extends unknown> extends Cell<T> {
240
232
  * // With options
241
233
  * const immutableCell = Cell.source(42, { immutable: true });
242
234
  * // Will throw error:
243
- * immutableCell.value = 43;
235
+ * immutableCell.set(43);
244
236
  * ```
245
237
  */
246
- export class SourceCell<T extends unknown> extends Cell<T> {
238
+ export class SourceCell<out T extends unknown> extends Cell<T> {
247
239
  /**
248
240
  * Creates a new Cell with the provided value.
249
241
  * @param {T} value
250
242
  * @param {Partial<CellOptions<T>>} [options]
251
243
  */
252
- constructor(value: T, options?: Partial<CellOptions<T>> | undefined);
244
+ constructor(value: T, options?: Partial<CellOptions<T>>);
253
245
  options: Partial<CellOptions<T>> | undefined;
254
- /**
255
- * For cells containing objects, returns the object itself.
256
- * This can be useful in scenarios where unfettered access to the original object is needed,
257
- * such as when using the object as a cache.
258
- *
259
- * @example
260
- * const cell = new SourceCell({ a: 1, b: 2 });
261
- * console.log(cell.deproxy()); // { a: 1, b: 2 }
262
- *
263
- * cell.value = { a: 3, b: 4 };
264
- * console.log(cell.deproxy()); // { a: 3, b: 4 }
265
- *
266
- * @returns {T extends object ? T : never} The original object if T is an object, otherwise never.
267
- */
268
- deproxy(): T extends object ? T : never;
269
246
  /**
270
247
  * Sets the value stored in the Cell and triggers an update.
271
248
  * @param {T} value
272
249
  */
273
- set value(value: T);
274
- get value(): T;
250
+ set(value: T): void;
275
251
  #private;
276
252
  }
277
253
  /**
@@ -295,7 +271,7 @@ export class CellUpdateError extends Error {
295
271
  constructor(errors: Error[]);
296
272
  errors: Error[];
297
273
  }
298
- export type AsyncRequestAtoms<Input, Output> = {
274
+ export type AsyncRequestAtoms<Input, Output, Getter> = {
299
275
  /**
300
276
  * Represents the loading state of an asynchronous request.
301
277
  */
@@ -311,12 +287,14 @@ export type AsyncRequestAtoms<Input, Output> = {
311
287
  /**
312
288
  * Triggers the asynchronous request.
313
289
  */
314
- run: NeverIfAny<Input> extends never ? (input?: Input) => Promise<void> : (input: Input) => Promise<void>;
290
+ run: Getter extends (...args: infer P) => any ? P["length"] extends 0 ? SimplePromiseFn : PromiseFnWithArgs<P> : SimplePromiseFn;
315
291
  /**
316
292
  * Triggers the asynchronous request again with an optional new input and optionally changes the loading state.
317
293
  */
318
294
  reload: (newInput?: Input, changeLoadingState?: boolean) => Promise<void>;
319
295
  };
296
+ export type SimplePromiseFn = () => Promise<void>;
297
+ export type PromiseFnWithArgs<Args extends Array<any>> = (...args: Args) => Promise<void>;
320
298
  export type EffectOptions = {
321
299
  /**
322
300
  * Whether the effect should be removed after the first run.
@@ -353,7 +331,3 @@ export type CellOptions<T> = {
353
331
  */
354
332
  equals?: ((oldValue: T, newValue: T) => boolean) | undefined;
355
333
  };
356
- export type NeverIfAny<T> = 0 extends (1 & T) ? never : T;
357
- export type Reference<T> = {
358
- deref: () => T | undefined;
359
- };
@@ -1,5 +1,6 @@
1
+ /// <reference types="./classes.d.ts" />
1
2
  /**
2
- * @template Input, Output
3
+ * @template Input, Output, Getter
3
4
  * @typedef {Object} AsyncRequestAtoms
4
5
  *
5
6
  * @property {SourceCell<boolean>} pending
@@ -11,11 +12,18 @@
11
12
  * @property {SourceCell<Error | null>} error
12
13
  * Represents the errors returned by the asynchronous request, if any.
13
14
  *
14
- * @property {NeverIfAny<Input> extends never ? (input?: Input) => Promise<void> : (input: Input) => Promise<void>} run
15
+ * @property {Getter extends (...args: infer P) => any ? P['length'] extends 0 ? SimplePromiseFn: PromiseFnWithArgs<P> : SimplePromiseFn} run
15
16
  * Triggers the asynchronous request.
16
17
  *
17
18
  * @property {(newInput?: Input, changeLoadingState?: boolean) => Promise<void>} reload Triggers the asynchronous request again with an optional new input and optionally changes the loading state.
18
19
  */
20
+ /**
21
+ * @typedef {() => Promise<void>} SimplePromiseFn
22
+ */
23
+ /**
24
+ * @template {Array<any>} Args
25
+ * @typedef {(...args: Args) => Promise<void>} PromiseFnWithArgs
26
+ */
19
27
  /**
20
28
  * @typedef {object} EffectOptions
21
29
  * @property {boolean} [once]
@@ -39,38 +47,34 @@
39
47
  * @property {(oldValue: T, newValue: T) => boolean} [equals]
40
48
  * A function that determines whether two values are equal. If not provided, the default equality function will be used.
41
49
  */
42
- /**
43
- * @template T
44
- * @typedef {0 extends (1 & T) ? never : T} NeverIfAny
45
- */
46
50
  /**
47
51
  * The nesting level of batch operations.
48
52
  * This will prevent nested batch operations from triggering effects when they finish.
49
53
  * @type {number}
50
54
  */
51
- let batchNestingLevel = 0;
55
+ let BATCH_NESTING_LEVEL = 0;
52
56
  /**
53
57
  * A map of effect tuples to be executed in a batch.
54
58
  * The key in each entry is the effect, and the value is the argument to call it with.
55
59
  * All callbacks in this map will be executed only once in a batch.
56
60
  * @type {Map<Function, any>}
57
61
  */
58
- let batchedEffects = new Map();
62
+ let BATCHED_EFFECTS = new Map();
59
63
  /**
60
64
  * A value representing the computed values that are currently being calculated.
61
65
  * It is an array so it can keep track of nested computed values.
62
66
  * @type {DerivedCell<any>[]}
63
67
  */
64
- const activeComputedValues = [];
68
+ const ACTIVE_DERIVED_CTX = [];
65
69
  /**
66
70
  * Tracks cells that need to be updated during the update cycle.
67
71
  * Cells are added to this stack to be processed and updated sequentially.
68
72
  * @type {Set<Cell<any>>}
69
73
  */
70
- const updateBuffer = new Set();
74
+ const UPDATE_BUFFER = new Set();
71
75
  /** @type {WeakMap<Cell<any>, Set<WeakRef<DerivedCell<any>>>>} */
72
- const derivedCellMap = new WeakMap();
73
- let isUpdating = false;
76
+ const DERIVED_CELLS = new WeakMap();
77
+ let IS_UPDATING = false;
74
78
  /** @type {Error[]} */
75
79
  const cellErrors = [];
76
80
  /**
@@ -83,17 +87,18 @@ const cellErrors = [];
83
87
  * updates of the same cell.
84
88
  */
85
89
  function triggerUpdate() {
86
- isUpdating = true;
87
- for (const cell of updateBuffer) {
90
+ IS_UPDATING = true;
91
+ for (const cell of UPDATE_BUFFER) {
88
92
  if (cell instanceof DerivedCell) {
89
93
  const newValue = cell.computedFn();
90
- if (deepEqual(cell.peek(), newValue))
94
+ // @ts-expect-error: wvalue is protected.
95
+ if (deepEqual(cell.wvalue, newValue))
91
96
  continue;
92
- // @ts-ignore: wvalue is protected.
97
+ // @ts-expect-error: wvalue is protected.
93
98
  cell.wvalue = newValue;
94
99
  }
95
100
  // Run computed dependents.
96
- const computedDependents = derivedCellMap.get(cell);
101
+ const computedDependents = DERIVED_CELLS.get(cell);
97
102
  if (computedDependents)
98
103
  for (const dependent of computedDependents) {
99
104
  const deref = dependent.deref();
@@ -102,24 +107,24 @@ function triggerUpdate() {
102
107
  continue;
103
108
  }
104
109
  const computedCell = deref;
105
- if (batchNestingLevel > 0) {
106
- batchedEffects.set(() => {
110
+ if (BATCH_NESTING_LEVEL > 0) {
111
+ BATCHED_EFFECTS.set(() => {
107
112
  if (!computedCell.initialized)
108
113
  return;
109
- updateBuffer.add(computedCell);
114
+ UPDATE_BUFFER.add(computedCell);
110
115
  }, undefined);
111
116
  }
112
117
  else {
113
118
  if (!computedCell.initialized)
114
119
  continue;
115
- updateBuffer.add(computedCell);
120
+ UPDATE_BUFFER.add(computedCell);
116
121
  }
117
122
  }
118
- //@ts-ignore: Cell.update is protected.
123
+ // @ts-expect-error: Cell.update is protected.
119
124
  cell.update();
120
125
  }
121
- updateBuffer.clear();
122
- isUpdating = false;
126
+ UPDATE_BUFFER.clear();
127
+ IS_UPDATING = false;
123
128
  throwAnyErrors();
124
129
  }
125
130
  function throwAnyErrors() {
@@ -129,72 +134,26 @@ function throwAnyErrors() {
129
134
  throw new CellUpdateError(errors);
130
135
  }
131
136
  }
132
- const mutativeMethods = {
133
- Map: {
134
- set: Symbol('set'),
135
- delete: Symbol('delete'),
136
- clear: Symbol('clear'),
137
- },
138
- Set: {
139
- add: Symbol('add'),
140
- delete: Symbol('delete'),
141
- clear: Symbol('clear'),
142
- },
143
- Array: {
144
- push: Symbol('push'),
145
- pop: Symbol('pop'),
146
- shift: Symbol('shift'),
147
- unshift: Symbol('unshift'),
148
- splice: Symbol('splice'),
149
- sort: Symbol('sort'),
150
- reverse: Symbol('reverse'),
151
- },
152
- Date: {
153
- setDate: Symbol('setDate'),
154
- setMonth: Symbol('setMonth'),
155
- setFullYear: Symbol('setFullYear'),
156
- setHours: Symbol('setHours'),
157
- setMinutes: Symbol('setMinutes'),
158
- setSeconds: Symbol('setSeconds'),
159
- setMilliseconds: Symbol('setMilliseconds'),
160
- },
161
- };
162
- const mutativeMapMethods = /^(set|delete|clear)$/;
163
- const mutativeSetMethods = /^(add|delete|clear)$/;
164
- const mutativeArrayMethods = /^(push|pop|shift|unshift|splice|sort|reverse)$/;
165
- const mutativeDateMethods = /^(setDate|setMonth|setFullYear|setHours|setMinutes|setSeconds|setMilliseconds)$/;
166
- /**
167
- * Proxies mutative methods of a given value to trigger cell updates when called.
168
- *
169
- * @template {object} T
170
- * @param {T} value - The object whose methods are to be proxied.
171
- * @param {keyof typeof mutativeMethods} prototypeName - The name of the prototype (e.g., 'Map', 'Set') whose methods are being proxied.
172
- * @param {Cell<any>} cell - The cell to be updated when a mutative method is called.
173
- */
174
- const proxyMutativeMethods = (value, prototypeName, cell) => {
175
- for (const method in mutativeMethods[prototypeName]) {
176
- Reflect.set(value, Reflect.get(mutativeMethods[prototypeName], method),
177
- /**
178
- * @param {...any} args - The arguments passed to the mutative method.
179
- * @returns {any} The result of calling the original method.
180
- */
181
- (...args) => {
182
- // @ts-ignore
183
- const innerMethod = value[method]; // Direct access is faster than Reflection here.
184
- const result = innerMethod.apply(value, args);
185
- updateBuffer.add(cell);
186
- if (!isUpdating)
187
- triggerUpdate();
188
- return result;
189
- });
190
- }
191
- };
192
- /**
193
- * @template T
194
- * @typedef {{
195
- * deref: () => T | undefined
196
- * }} Reference
197
- */
137
+ const mutativeMapMethods = new Set(['set', 'delete', 'clear']);
138
+ const mutativeSetMethods = new Set(['add', 'delete', 'clear']);
139
+ const mutativeArrayMethods = new Set([
140
+ 'push',
141
+ 'pop',
142
+ 'shift',
143
+ 'unshift',
144
+ 'splice',
145
+ 'sort',
146
+ 'reverse',
147
+ ]);
148
+ const mutativeDateMethods = new Set([
149
+ 'setDate',
150
+ 'setMonth',
151
+ 'setFullYear',
152
+ 'setHours',
153
+ 'setMinutes',
154
+ 'setSeconds',
155
+ 'setMilliseconds',
156
+ ]);
198
157
  /** @template T */
199
158
  class Effect {
200
159
  /**
@@ -230,7 +189,7 @@ class Effect {
230
189
  }
231
190
  }
232
191
  /**
233
- * @template {*} T The type of value stored in the cell
192
+ * @template {*} out T The type of value stored in the cell
234
193
  *
235
194
  * Base class for reactive cells.
236
195
  * This class should not be instantiated directly - use `Cell.source` or
@@ -245,7 +204,7 @@ class Effect {
245
204
  * count.listen(value => console.log('Count changed:', value));
246
205
  *
247
206
  * // Update the value
248
- * count.value = 1; // Logs: Count changed: 1
207
+ * count.set(1); // Logs: Count changed: 1
249
208
  * ```
250
209
  */
251
210
  export class Cell {
@@ -259,11 +218,10 @@ export class Cell {
259
218
  }
260
219
  }
261
220
  /**
262
- * @readonly
263
221
  * @returns {Array<DerivedCell<any>>}
264
222
  */
265
223
  get derivedCells() {
266
- const dependents = derivedCellMap.get(this);
224
+ const dependents = DERIVED_CELLS.get(this);
267
225
  const cells = [];
268
226
  if (dependents) {
269
227
  for (const cell of dependents) {
@@ -290,20 +248,20 @@ export class Cell {
290
248
  * @returns {T} The value of the Cell.
291
249
  */
292
250
  valueOf() {
293
- return this.revalued;
251
+ return this.wvalue;
294
252
  }
295
253
  /**
296
- * Gets the current value of the cell.
254
+ * Gets the current value of the cell and registers it as a dependency if called within a derived cell computation.
255
+ * @returns {T} The value of the Cell.
297
256
  */
298
- get value() {
299
- return this.wvalue;
257
+ get() {
258
+ return this.revalued;
300
259
  }
301
260
  /**
302
261
  * Stringifies the value of the Cell.
303
262
  * @returns {string}
304
263
  */
305
264
  toString() {
306
- // @ts-ignore
307
265
  return String(this.wvalue);
308
266
  }
309
267
  /**
@@ -311,17 +269,19 @@ export class Cell {
311
269
  * @protected @type {T}
312
270
  */
313
271
  get revalued() {
314
- const currentlyComputedValue = activeComputedValues[activeComputedValues.length - 1];
315
- if (currentlyComputedValue === undefined)
272
+ const currentlyComputedValue = ACTIVE_DERIVED_CTX[ACTIVE_DERIVED_CTX.length - 1];
273
+ if (currentlyComputedValue === undefined) {
316
274
  return this.wvalue;
317
- let dependents = derivedCellMap.get(this);
275
+ }
276
+ let dependents = DERIVED_CELLS.get(this);
318
277
  if (dependents === undefined) {
319
278
  dependents = new Set();
320
- derivedCellMap.set(this, dependents);
279
+ DERIVED_CELLS.set(this, dependents);
321
280
  }
322
281
  const isAlreadySubscribed = dependents?.has(currentlyComputedValue.ref);
323
- if (isAlreadySubscribed)
282
+ if (isAlreadySubscribed) {
324
283
  return this.wvalue;
284
+ }
325
285
  dependents.add(currentlyComputedValue.ref);
326
286
  return this.wvalue;
327
287
  }
@@ -448,7 +408,7 @@ export class Cell {
448
408
  */
449
409
  update() {
450
410
  // Run watchers.
451
- const wvalue = this.peek();
411
+ const wvalue = this.wvalue;
452
412
  const effects = this.#effects;
453
413
  let len = effects.length;
454
414
  for (let i = 0; i < len; i++) {
@@ -459,8 +419,8 @@ export class Cell {
459
419
  len--;
460
420
  continue;
461
421
  }
462
- if (batchNestingLevel > 0) {
463
- batchedEffects.set(watcher, wvalue);
422
+ if (BATCH_NESTING_LEVEL > 0) {
423
+ BATCHED_EFFECTS.set(watcher, wvalue);
464
424
  }
465
425
  else {
466
426
  try {
@@ -475,7 +435,7 @@ export class Cell {
475
435
  }
476
436
  }
477
437
  /**
478
- * Returns the current value of the cell without registering a watcher.
438
+ * Returns the current value of the cell without registering dependencies.
479
439
  * @returns {T} - The current value of the cell.
480
440
  */
481
441
  peek() {
@@ -491,10 +451,10 @@ export class Cell {
491
451
  * import { Cell } from '@adbl/cells';
492
452
  *
493
453
  * const cell = Cell.source('Hello world');
494
- * console.log(cell.value); // Hello world.
454
+ * console.log(cell.get()); // Hello world.
495
455
  *
496
- * cell.value = 'Greetings!';
497
- * console.log(cell.value) // Greetings!
456
+ * cell.set('Greetings!');
457
+ * console.log(cell.get()) // Greetings!
498
458
  * ```
499
459
  */
500
460
  static source = (value, options) => new SourceCell(value, options);
@@ -507,12 +467,12 @@ export class Cell {
507
467
  * import { Cell } from '@adbl/cells';
508
468
  *
509
469
  * const cell = Cell.source(2);
510
- * const derived = Cell.derived(() => cell.value * 2);
470
+ * const derived = Cell.derived(() => cell.get() * 2);
511
471
  *
512
- * console.log(derived.value); // 4
472
+ * console.log(derived.get()); // 4
513
473
  *
514
- * cell.value = 3;
515
- * console.log(derived.value); // 6
474
+ * cell.set(3);
475
+ * console.log(derived.get()); // 6
516
476
  * ```
517
477
  */
518
478
  static derived = (callback) => new DerivedCell(callback);
@@ -523,9 +483,9 @@ export class Cell {
523
483
  * @returns {X} The return value of the callback.
524
484
  */
525
485
  static batch = (callback) => {
526
- batchNestingLevel++;
486
+ BATCH_NESTING_LEVEL++;
527
487
  /** @type {X | undefined} */
528
- let value = undefined;
488
+ let value;
529
489
  let error;
530
490
  try {
531
491
  value = callback();
@@ -533,17 +493,17 @@ export class Cell {
533
493
  catch (e) {
534
494
  error = e;
535
495
  }
536
- batchNestingLevel--;
496
+ BATCH_NESTING_LEVEL--;
537
497
  if (error instanceof Error) {
538
498
  cellErrors.push(error);
539
499
  }
540
- if (batchNestingLevel === 0) {
541
- for (const [effect, args] of batchedEffects) {
500
+ if (BATCH_NESTING_LEVEL === 0) {
501
+ for (const [effect, args] of BATCHED_EFFECTS) {
542
502
  effect(args);
543
503
  }
544
- if (!isUpdating)
504
+ if (!IS_UPDATING)
545
505
  triggerUpdate();
546
- batchedEffects = new Map();
506
+ BATCHED_EFFECTS = new Map();
547
507
  }
548
508
  throwAnyErrors();
549
509
  return /** @type {X} */ (value);
@@ -574,11 +534,11 @@ export class Cell {
574
534
  return Cell.flatten(value.wvalue);
575
535
  }
576
536
  if (Array.isArray(value)) {
577
- // @ts-ignore:
537
+ // @ts-expect-error:
578
538
  return Cell.flattenArray(value);
579
539
  }
580
540
  if (value instanceof Object) {
581
- // @ts-ignore:
541
+ // @ts-expect-error:
582
542
  return Cell.flattenObject(value);
583
543
  }
584
544
  return value;
@@ -609,8 +569,9 @@ export class Cell {
609
569
  *
610
570
  * @template X - The type of the input parameter for the getter function.
611
571
  * @template Y - The type of the output returned by the getter function.
612
- * @param {(input: X) => Promise<Y>} getter - A function that performs the asynchronous operation.
613
- * @returns {AsyncRequestAtoms<X, Y>} An object containing cells for pending, data, and error states,
572
+ * @template {(input: X) => Promise<Y>} Getter - A function that performs the asynchronous operation.
573
+ * @param {Getter} getter - A function that performs the asynchronous operation.
574
+ * @returns {AsyncRequestAtoms<X, Y, Getter>} An object containing cells for pending, data, and error states,
614
575
  * as well as functions to run and reload the operation.
615
576
  *
616
577
  * @example
@@ -628,25 +589,25 @@ export class Cell {
628
589
  /** @type {X | undefined} */
629
590
  let initialInput = undefined;
630
591
  async function run(input = initialInput) {
631
- pending.value = true;
632
- error.value = null;
633
- data.value = null;
592
+ pending.set(true);
593
+ error.set(null);
594
+ data.set(null);
634
595
  await Cell.batch(async () => {
635
596
  try {
636
597
  initialInput = input;
637
598
  const result = await getter(/** @type {X} */ (input));
638
- data.value = result;
599
+ data.set(result);
639
600
  }
640
601
  catch (e) {
641
602
  if (e instanceof Error) {
642
- error.value = e;
603
+ error.set(e);
643
604
  }
644
605
  else {
645
606
  throw e;
646
607
  }
647
608
  }
648
609
  finally {
649
- pending.value = false;
610
+ pending.set(false);
650
611
  }
651
612
  });
652
613
  }
@@ -656,16 +617,16 @@ export class Cell {
656
617
  */
657
618
  async function reload(newInput, changeLoadingState = true) {
658
619
  if (changeLoadingState) {
659
- pending.value = true;
620
+ pending.set(true);
660
621
  }
661
622
  try {
662
623
  const result = await getter(
663
624
  /** @type {X} */ (newInput ?? initialInput));
664
- data.value = result;
625
+ data.set(result);
665
626
  }
666
627
  catch (e) {
667
628
  if (e instanceof Error) {
668
- error.value = e;
629
+ error.set(e);
669
630
  }
670
631
  else {
671
632
  throw e;
@@ -673,7 +634,7 @@ export class Cell {
673
634
  }
674
635
  finally {
675
636
  if (changeLoadingState) {
676
- pending.value = false;
637
+ pending.set(false);
677
638
  }
678
639
  }
679
640
  }
@@ -681,6 +642,7 @@ export class Cell {
681
642
  pending,
682
643
  data,
683
644
  error,
645
+ // @ts-expect-error
684
646
  run,
685
647
  reload,
686
648
  };
@@ -689,7 +651,7 @@ export class Cell {
689
651
  /**
690
652
  * A class that represents a computed value that depends on other reactive values.
691
653
  * The computed value is automatically updated when any of its dependencies change.
692
- * @template {*} T
654
+ * @template {*} out T
693
655
  * @extends {Cell<T>}
694
656
  */
695
657
  export class DerivedCell extends Cell {
@@ -701,7 +663,7 @@ export class DerivedCell extends Cell {
701
663
  this.ref = new WeakRef(this);
702
664
  // Ensures that the cell is derived every time the computing function is called.
703
665
  const derivationWrapper = () => {
704
- activeComputedValues.push(this);
666
+ ACTIVE_DERIVED_CTX.push(this);
705
667
  let value = this.wvalue;
706
668
  try {
707
669
  value = computedFn();
@@ -710,7 +672,7 @@ export class DerivedCell extends Cell {
710
672
  if (e instanceof Error)
711
673
  cellErrors.push(e);
712
674
  }
713
- activeComputedValues.pop();
675
+ ACTIVE_DERIVED_CTX.pop();
714
676
  return value;
715
677
  };
716
678
  this.computedFn = /** @type {() => T} */ (derivationWrapper);
@@ -721,9 +683,11 @@ export class DerivedCell extends Cell {
721
683
  /** @type {WeakRef<this>} */
722
684
  ref;
723
685
  /**
724
- * @readonly
686
+ * Gets the current value of the derived cell, computing it if necessary,
687
+ * and registers it as a dependency if called within another derived cell computation.
688
+ * @returns {T} The value of the Cell.
725
689
  */
726
- get value() {
690
+ get() {
727
691
  if (!this.initialized) {
728
692
  this.initialized = true;
729
693
  this.setValue(this.computedFn());
@@ -758,18 +722,9 @@ export class DerivedCell extends Cell {
758
722
  }
759
723
  return super.runAndListen(callback, options);
760
724
  }
761
- /**
762
- * @readonly
763
- */
764
- set value(_) {
765
- throw new Error('Cannot set a derived Cell value.');
766
- }
767
- deproxy() {
768
- throw new Error('Cannot deproxy a derived cell.');
769
- }
770
725
  }
771
726
  /**
772
- * @template {*} T
727
+ * @template {*} out T
773
728
  * @extends {Cell<T>}
774
729
  * A cell whose value can be directly modified.
775
730
  * Source cells are the primary way to introduce reactivity.
@@ -786,12 +741,10 @@ export class DerivedCell extends Cell {
786
741
  * // With options
787
742
  * const immutableCell = Cell.source(42, { immutable: true });
788
743
  * // Will throw error:
789
- * immutableCell.value = 43;
744
+ * immutableCell.set(43);
790
745
  * ```
791
746
  */
792
747
  export class SourceCell extends Cell {
793
- /** @type {object | undefined} */
794
- #originalObject;
795
748
  /**
796
749
  * Creates a new Cell with the provided value.
797
750
  * @param {T} value
@@ -801,65 +754,35 @@ export class SourceCell extends Cell {
801
754
  super();
802
755
  if (options !== undefined)
803
756
  this.options = options;
804
- this.setValue(this.#proxy(value));
805
- if (typeof value === 'object' && value !== null) {
806
- this.#originalObject = value;
807
- }
808
- }
809
- /**
810
- * For cells containing objects, returns the object itself.
811
- * This can be useful in scenarios where unfettered access to the original object is needed,
812
- * such as when using the object as a cache.
813
- *
814
- * @example
815
- * const cell = new SourceCell({ a: 1, b: 2 });
816
- * console.log(cell.deproxy()); // { a: 1, b: 2 }
817
- *
818
- * cell.value = { a: 3, b: 4 };
819
- * console.log(cell.deproxy()); // { a: 3, b: 4 }
820
- *
821
- * @returns {T extends object ? T : never} The original object if T is an object, otherwise never.
822
- */
823
- deproxy() {
824
- const originalObject = this.#originalObject;
825
- if (typeof originalObject === 'object' && originalObject !== null) {
826
- return /** @type {T extends object ? T : never} */ (originalObject);
827
- }
828
- throw new Error('Cannot deproxy a non-object cell.');
757
+ this.setValue(value);
829
758
  }
830
759
  peek() {
831
- const originalObject = this.#originalObject;
832
- if (typeof originalObject === 'object' && originalObject !== null) {
833
- return /** @type {T extends object ? T : never} */ (originalObject);
834
- }
835
760
  return this.wvalue;
836
761
  }
837
- get value() {
838
- return this.revalued;
762
+ /**
763
+ * Gets the current value of the source cell and registers it as a dependency if called within a derived cell computation.
764
+ * @returns {T} The value of the Cell.
765
+ */
766
+ get() {
767
+ return this.#proxy(this.revalued);
839
768
  }
840
769
  /**
841
770
  * Sets the value stored in the Cell and triggers an update.
842
771
  * @param {T} value
843
772
  */
844
- set value(value) {
773
+ set(value) {
845
774
  if (this.options?.immutable) {
846
775
  throw new Error('Cannot set the value of an immutable cell.');
847
776
  }
848
- const oldValue = this.peek();
777
+ const oldValue = this.wvalue;
849
778
  const isEqual = this.options?.equals
850
779
  ? this.options.equals(oldValue, value)
851
780
  : deepEqual(oldValue, value);
852
781
  if (isEqual)
853
782
  return;
854
- this.setValue(this.#proxy(value));
855
- if (typeof value === 'object' && value !== null) {
856
- this.#originalObject = value;
857
- }
858
- else {
859
- this.#originalObject = undefined;
860
- }
861
- updateBuffer.add(this);
862
- if (!isUpdating)
783
+ this.setValue(value);
784
+ UPDATE_BUFFER.add(this);
785
+ if (!IS_UPDATING)
863
786
  triggerUpdate();
864
787
  }
865
788
  /**
@@ -869,62 +792,51 @@ export class SourceCell extends Cell {
869
792
  * @returns {T} - The proxied value.
870
793
  */
871
794
  #proxy(value) {
872
- if (typeof value !== 'object' || value === null) {
795
+ if (typeof value !== 'object' || value === null)
873
796
  return value;
874
- }
875
- if (value instanceof Map) {
876
- proxyMutativeMethods(value, 'Map', this);
877
- }
878
- else if (value instanceof Set) {
879
- proxyMutativeMethods(value, 'Set', this);
880
- }
881
- else if (value instanceof Date) {
882
- proxyMutativeMethods(value, 'Date', this);
883
- }
884
- else if (ArrayBuffer.isView(value) || Array.isArray(value)) {
885
- proxyMutativeMethods(value, 'Array', this);
886
- }
887
797
  return new Proxy(value, {
888
798
  get: (target, prop) => {
889
799
  this.revalued;
890
800
  if (this.options?.deep) {
891
- // @ts-ignore: Direct access is faster than Reflection here.
801
+ // @ts-expect-error: Direct access is faster than Reflection here.
892
802
  return this.#proxy(target[prop]);
893
803
  }
894
- // @ts-ignore: Direct access is faster than Reflection here.
804
+ if (typeof prop === 'string') {
805
+ const isMutativeMethod = (target instanceof Map && mutativeMapMethods.has(prop)) ||
806
+ (target instanceof Set && mutativeSetMethods.has(prop)) ||
807
+ (target instanceof Date && mutativeDateMethods.has(prop)) ||
808
+ ((ArrayBuffer.isView(target) || Array.isArray(target)) &&
809
+ mutativeArrayMethods.has(prop));
810
+ if (isMutativeMethod) {
811
+ // @ts-expect-error: Direct access is faster than Reflection here.
812
+ return (...args) => {
813
+ // @ts-expect-error: Direct access is faster than Reflection here.
814
+ const result = target[prop](...args);
815
+ UPDATE_BUFFER.add(this);
816
+ if (!IS_UPDATING)
817
+ triggerUpdate();
818
+ return result;
819
+ };
820
+ }
821
+ }
822
+ // @ts-expect-error: Direct access is faster than Reflection here.
895
823
  let value = target[prop];
896
824
  if (typeof value === 'function') {
897
825
  value = value.bind(target);
898
826
  }
899
- if (typeof prop === 'string') {
900
- if (target instanceof Map && mutativeMapMethods.test(prop)) {
901
- // @ts-ignore: Direct access is faster than Reflection here.
902
- return target[mutativeMethods.Map[prop]];
903
- }
904
- if (target instanceof Set && mutativeSetMethods.test(prop)) {
905
- // @ts-ignore: Direct access is faster than Reflection here.
906
- return target[mutativeMethods.Set[prop]];
907
- }
908
- if (target instanceof Date && mutativeDateMethods.test(prop)) {
909
- // @ts-ignore: Direct access is faster than Reflection here.
910
- return target[mutativeMethods.Date[prop]];
911
- }
912
- if ((ArrayBuffer.isView(target) || Array.isArray(target)) &&
913
- mutativeArrayMethods.test(prop)) {
914
- // @ts-ignore: Direct access is faster than Reflection here.
915
- return target[mutativeMethods.Array[prop]];
916
- }
917
- }
918
827
  return value;
919
828
  },
920
829
  set: (target, prop, value) => {
921
- const formerValue = Reflect.get(target, prop);
922
- Reflect.set(target, prop, value);
830
+ // @ts-expect-error: dynamic object access.
831
+ const formerValue = target[prop];
923
832
  const isEqual = deepEqual(formerValue, value);
924
833
  if (!isEqual) {
925
- updateBuffer.add(this);
926
- if (!isUpdating)
834
+ // @ts-expect-error: dynamic object access.
835
+ target[prop] = value;
836
+ UPDATE_BUFFER.add(this);
837
+ if (!IS_UPDATING) {
927
838
  triggerUpdate();
839
+ }
928
840
  }
929
841
  return true;
930
842
  },
@@ -1 +1 @@
1
- {"version":3,"file":"classes.js","sourceRoot":"","sources":["../../library/classes.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH;;;;;;;;;;;;GAYG;AAEH;;;;;;;;;GASG;AAEH;;;GAGG;AAEH;;;;GAIG;AACH,IAAI,iBAAiB,GAAG,CAAC,CAAC;AAE1B;;;;;GAKG;AACH,IAAI,cAAc,GAAG,IAAI,GAAG,EAAE,CAAC;AAE/B;;;;GAIG;AACH,MAAM,oBAAoB,GAAG,EAAE,CAAC;AAEhC;;;;GAIG;AACH,MAAM,YAAY,GAAG,IAAI,GAAG,EAAE,CAAC;AAE/B,iEAAiE;AACjE,MAAM,cAAc,GAAG,IAAI,OAAO,EAAE,CAAC;AAErC,IAAI,UAAU,GAAG,KAAK,CAAC;AAEvB,sBAAsB;AACtB,MAAM,UAAU,GAAG,EAAE,CAAC;AAEtB;;;;;;;;GAQG;AACH,SAAS,aAAa;IACpB,UAAU,GAAG,IAAI,CAAC;IAClB,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;QAChC,IAAI,IAAI,YAAY,WAAW,EAAE,CAAC;YAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;YACnC,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,QAAQ,CAAC;gBAAE,SAAS;YAC/C,mCAAmC;YACnC,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;QACzB,CAAC;QAED,2BAA2B;QAC3B,MAAM,kBAAkB,GAAG,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,kBAAkB;YACpB,KAAK,MAAM,SAAS,IAAI,kBAAkB,EAAE,CAAC;gBAC3C,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC;gBAChC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;oBACxB,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;oBACrC,SAAS;gBACX,CAAC;gBAED,MAAM,YAAY,GAAG,KAAK,CAAC;gBAC3B,IAAI,iBAAiB,GAAG,CAAC,EAAE,CAAC;oBAC1B,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE;wBACtB,IAAI,CAAC,YAAY,CAAC,WAAW;4BAAE,OAAO;wBACtC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;oBACjC,CAAC,EAAE,SAAS,CAAC,CAAC;gBAChB,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,YAAY,CAAC,WAAW;wBAAE,SAAS;oBACxC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;gBACjC,CAAC;YACH,CAAC;QAEH,uCAAuC;QACvC,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IACD,YAAY,CAAC,KAAK,EAAE,CAAC;IACrB,UAAU,GAAG,KAAK,CAAC;IACnB,cAAc,EAAE,CAAC;AACnB,CAAC;AAED,SAAS,cAAc;IACrB,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC;QAC/B,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;QACtB,MAAM,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;AACH,CAAC;AAED,MAAM,eAAe,GAAG;IACtB,GAAG,EAAE;QACH,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC;QACxB,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC;KACvB;IACD,GAAG,EAAE;QACH,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC;QACxB,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC;KACvB;IACD,KAAK,EAAE;QACL,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC;QACpB,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC;QAClB,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC;QACtB,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC;QAC1B,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC;QACxB,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC;KAC3B;IACD,IAAI,EAAE;QACJ,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC;QAC1B,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAC;QAC5B,WAAW,EAAE,MAAM,CAAC,aAAa,CAAC;QAClC,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAC;QAC5B,UAAU,EAAE,MAAM,CAAC,YAAY,CAAC;QAChC,UAAU,EAAE,MAAM,CAAC,YAAY,CAAC;QAChC,eAAe,EAAE,MAAM,CAAC,iBAAiB,CAAC;KAC3C;CACF,CAAC;AACF,MAAM,kBAAkB,GAAG,sBAAsB,CAAC;AAClD,MAAM,kBAAkB,GAAG,sBAAsB,CAAC;AAClD,MAAM,oBAAoB,GAAG,gDAAgD,CAAC;AAC9E,MAAM,mBAAmB,GACvB,iFAAiF,CAAC;AAEpF;;;;;;;GAOG;AACH,MAAM,oBAAoB,GAAG,CAAC,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,EAAE;IAC1D,KAAK,MAAM,MAAM,IAAI,eAAe,CAAC,aAAa,CAAC,EAAE,CAAC;QACpD,OAAO,CAAC,GAAG,CACT,KAAK,EACL,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;QACnD;;;WAGG;QACH,CAAC,GAAG,IAAI,EAAE,EAAE;YACV,aAAa;YACb,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,gDAAgD;YACnF,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC9C,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACvB,IAAI,CAAC,UAAU;gBAAE,aAAa,EAAE,CAAC;YACjC,OAAO,MAAM,CAAC;QAChB,CAAC,CACF,CAAC;IACJ,CAAC;AACH,CAAC,CAAC;AAEF;;;;;GAKG;AAEH,kBAAkB;AAClB,MAAM,MAAM;IACV;;OAEG;IACH,OAAO,CAAC;IAER;;OAEG;IACH,SAAS,CAAC;IAEV;;;OAGG;IACH,YAAY,QAAQ,EAAE,OAAO;QAC3B,IAAI,OAAO,EAAE,IAAI,EAAE,CAAC;YAClB,IAAI,CAAC,SAAS,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;QACzC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC5B,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED;;;OAGG;IACH,IAAI,QAAQ;QACV,IAAI,IAAI,CAAC,SAAS,YAAY,OAAO,EAAE,CAAC;YACtC,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QAChC,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;CACF;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,OAAO,IAAI;IACf;;OAEG;IACH,QAAQ,GAAG,EAAE,CAAC;IAEd;QACE,IAAI,GAAG,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CACb,wFAAwF,CACzF,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,IAAI,YAAY;QACd,MAAM,UAAU,GAAG,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC5C,MAAM,KAAK,GAAG,EAAE,CAAC;QACjB,IAAI,UAAU,EAAE,CAAC;YACf,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;gBAC9B,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;gBAC/B,IAAI,SAAS;oBAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACH,MAAM,GAAG,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAC;IAEjC;;;OAGG;IACH,QAAQ,CAAC,KAAK;QACZ,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;IAED;;;OAGG;IACH,OAAO;QACL,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;;OAGG;IACH,QAAQ;QACN,aAAa;QACb,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;IAED;;;OAGG;IACH,IAAI,QAAQ;QACV,MAAM,sBAAsB,GAC1B,oBAAoB,CAAC,oBAAoB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAExD,IAAI,sBAAsB,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC,MAAM,CAAC;QAE7D,IAAI,UAAU,GAAG,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,UAAU,GAAG,IAAI,GAAG,EAAE,CAAC;YACvB,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QACvC,CAAC;QAED,MAAM,mBAAmB,GAAG,UAAU,EAAE,GAAG,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC;QACxE,IAAI,mBAAmB;YAAE,OAAO,IAAI,CAAC,MAAM,CAAC;QAE5C,UAAU,CAAC,GAAG,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC;QAC3C,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,QAAQ,EAAE,OAAO;QACtB,IAAI,MAAM,GAAG,QAAQ,CAAC;QAEtB,IAAI,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;YAC7B,OAAO,GAAG,EAAE,GAAE,CAAC,CAAC;QAClB,CAAC;QAED,OAAO,EAAE,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;YAC9C,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACtB,CAAC,CAAC,CAAC;QAEH,IAAI,OAAO,EAAE,IAAI,EAAE,CAAC;YAClB,MAAM,GAAG,GAAG,EAAE;gBACZ,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACtB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACtB,CAAC,CAAC;QACJ,CAAC;QAED,IAAI,OAAO,EAAE,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACtD,MAAM,IAAI,KAAK,CACb,4BAA4B,OAAO,CAAC,IAAI,sCAAsC,CAC/E,CAAC;QACJ,CAAC;QAED,MAAM,mBAAmB,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YACxD,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACzB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;QAClD,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YAC1B,MAAM,SAAS,GAAG,CAAC,CAAC,OAAO,EAAE,QAAQ,IAAI,CAAC,CAAC;YAC3C,MAAM,SAAS,GAAG,CAAC,CAAC,OAAO,EAAE,QAAQ,IAAI,CAAC,CAAC;YAE3C,IAAI,SAAS,KAAK,SAAS;gBAAE,OAAO,CAAC,CAAC;YACtC,OAAO,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QAEH,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IAED;;;;;OAKG;IACH,YAAY,CAAC,QAAQ,EAAE,OAAO;QAC5B,MAAM,EAAE,GAAG,QAAQ,CAAC;QAEpB,IAAI,CAAC;YACH,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAClB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,YAAY,KAAK,EAAE,CAAC;gBACvB,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACrB,CAAC;QACH,CAAC;QAED,IAAI,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;YAC7B,OAAO,GAAG,EAAE,GAAE,CAAC,CAAC;QAClB,CAAC;QAED,OAAO,EAAE,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;YAC9C,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;QAEH,IAAI,OAAO,EAAE,IAAI;YAAE,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAEhD,IAAI,OAAO,EAAE,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACtD,MAAM,OAAO,GAAG,4BAA4B,OAAO,CAAC,IAAI,sCAAsC,CAAC;YAC/F,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC;QAED,MAAM,mBAAmB,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;YACnD,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACzB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;QAC9C,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YAC1B,MAAM,SAAS,GAAG,CAAC,CAAC,OAAO,EAAE,QAAQ,IAAI,CAAC,CAAC;YAC3C,MAAM,SAAS,GAAG,CAAC,CAAC,OAAO,EAAE,QAAQ,IAAI,CAAC,CAAC;YAC3C,IAAI,SAAS,KAAK,SAAS;gBAAE,OAAO,CAAC,CAAC;YACtC,OAAO,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QAEH,cAAc,EAAE,CAAC;QAEjB,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,QAAQ;QACb,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE;YAC1C,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC;QACjC,CAAC,CAAC,CAAC;QACH,IAAI,KAAK,KAAK,CAAC,CAAC;YAAE,OAAO;QAEzB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACjC,CAAC;IAED;;;;OAIG;IACH,aAAa,CAAC,IAAI;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YACnC,OAAO,MAAM,EAAE,OAAO,EAAE,IAAI,KAAK,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC;QAC3D,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,eAAe,CAAC,IAAI;QAClB,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE;YAChD,OAAO,CAAC,CAAC,OAAO,EAAE,IAAI,KAAK,IAAI,CAAC;QAClC,CAAC,CAAC,CAAC;QACH,IAAI,WAAW,KAAK,CAAC,CAAC;YAAE,OAAO;QAE/B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IACvC,CAAC;IAED;;;;OAIG;IACH,MAAM;QACJ,gBAAgB;QAChB,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,IAAI,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;QAEzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7B,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YACpC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACrB,CAAC,EAAE,CAAC;gBACJ,GAAG,EAAE,CAAC;gBACN,SAAS;YACX,CAAC;YAED,IAAI,iBAAiB,GAAG,CAAC,EAAE,CAAC;gBAC1B,cAAc,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YACtC,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC;oBACH,OAAO,CAAC,MAAM,CAAC,CAAC;gBAClB,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,IAAI,CAAC,YAAY,KAAK,EAAE,CAAC;wBACvB,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBACrB,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,IAAI;QACF,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,MAAM,CAAC,MAAM,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAEnE;;;;;;;;;;;;;;;;OAgBG;IACH,MAAM,CAAC,OAAO,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,CAAC;IAEzD;;;;;OAKG;IACH,MAAM,CAAC,KAAK,GAAG,CAAC,QAAQ,EAAE,EAAE;QAC1B,iBAAiB,EAAE,CAAC;QACpB,4BAA4B;QAC5B,IAAI,KAAK,GAAG,SAAS,CAAC;QACtB,IAAI,KAAK,CAAC;QACV,IAAI,CAAC;YACH,KAAK,GAAG,QAAQ,EAAE,CAAC;QACrB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,KAAK,GAAG,CAAC,CAAC;QACZ,CAAC;QACD,iBAAiB,EAAE,CAAC;QACpB,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;QACD,IAAI,iBAAiB,KAAK,CAAC,EAAE,CAAC;YAC5B,KAAK,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,cAAc,EAAE,CAAC;gBAC5C,MAAM,CAAC,IAAI,CAAC,CAAC;YACf,CAAC;YACD,IAAI,CAAC,UAAU;gBAAE,aAAa,EAAE,CAAC;YACjC,cAAc,GAAG,IAAI,GAAG,EAAE,CAAC;QAC7B,CAAC;QACD,cAAc,EAAE,CAAC;QACjB,OAAO,gBAAgB,CAAC,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC,CAAC;IAEF;;;;;;OAMG;IACH,MAAM,CAAC,MAAM,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,YAAY,IAAI,CAAC;IAEjD;;;;;OAKG;IACH,MAAM,CAAC,OAAO,GAAG,CAAC,KAAK,EAAE,EAAE;QACzB,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC;YAC1B,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;gBACjC,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;oBACtB,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBACpC,CAAC;gBACD,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;gBACnC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACpC,CAAC;YACD,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACpC,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,cAAc;YACd,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAClC,CAAC;QACD,IAAI,KAAK,YAAY,MAAM,EAAE,CAAC;YAC5B,cAAc;YACd,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACnC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IAEF;;;;;OAKG;IACH,MAAM,CAAC,YAAY,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAEzD;;;;;OAKG;IACH,MAAM,CAAC,aAAa,GAAG,CAAC,MAAM,EAAE,EAAE;QAChC,MAAM,MAAM;QACV,wEAAwE,CAAC,CAAC,EAAE,CAAC,CAAC;QAChF,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAClD,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QAChD,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;IAEF;;;;;;;;;;;;;;;;OAgBG;IACH,MAAM,CAAC,KAAK,CAAC,MAAM;QACjB,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACnC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACzD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,2BAA2B,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAE9D,4BAA4B;QAC5B,IAAI,YAAY,GAAG,SAAS,CAAC;QAE7B,KAAK,UAAU,GAAG,CAAC,KAAK,GAAG,YAAY;YACrC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;YACrB,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;YACnB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YAElB,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE;gBAC1B,IAAI,CAAC;oBACH,YAAY,GAAG,KAAK,CAAC;oBACrB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;oBACtD,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;gBACtB,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,IAAI,CAAC,YAAY,KAAK,EAAE,CAAC;wBACvB,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;oBAClB,CAAC;yBAAM,CAAC;wBACN,MAAM,CAAC,CAAC;oBACV,CAAC;gBACH,CAAC;wBAAS,CAAC;oBACT,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;gBACxB,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QAED;;;WAGG;QACH,KAAK,UAAU,MAAM,CAAC,QAAQ,EAAE,kBAAkB,GAAG,IAAI;YACvD,IAAI,kBAAkB,EAAE,CAAC;gBACvB,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;YACvB,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,MAAM;gBACzB,gBAAgB,CAAC,CAAC,QAAQ,IAAI,YAAY,CAAC,CAC5C,CAAC;gBACF,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;YACtB,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,IAAI,CAAC,YAAY,KAAK,EAAE,CAAC;oBACvB,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;gBAClB,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,CAAC;gBACV,CAAC;YACH,CAAC;oBAAS,CAAC;gBACT,IAAI,kBAAkB,EAAE,CAAC;oBACvB,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;gBACxB,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO;YACL,OAAO;YACP,IAAI;YACJ,KAAK;YACL,GAAG;YACH,MAAM;SACP,CAAC;IACJ,CAAC;;AAGH;;;;;GAKG;AACH,MAAM,OAAO,WAAY,SAAQ,IAAI;IACnC;;OAEG;IACH,YAAY,UAAU;QACpB,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,GAAG,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;QAC7B,gFAAgF;QAChF,MAAM,iBAAiB,GAAG,GAAG,EAAE;YAC7B,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChC,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;YACxB,IAAI,CAAC;gBACH,KAAK,GAAG,UAAU,EAAE,CAAC;YACvB,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,IAAI,CAAC,YAAY,KAAK;oBAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC7C,CAAC;YACD,oBAAoB,CAAC,GAAG,EAAE,CAAC;YAC3B,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;QACF,IAAI,CAAC,UAAU,GAAG,sBAAsB,CAAC,CAAC,iBAAiB,CAAC,CAAC;QAC7D,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IAC3B,CAAC;IAED,sBAAsB;IACtB,UAAU,CAAC;IAEX,4BAA4B;IAC5B,GAAG,CAAC;IAEJ;;OAEG;IACH,IAAI,KAAK;QACP,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;YACjC,cAAc,EAAE,CAAC;QACnB,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,QAAQ,EAAE,OAAO;QACtB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;YACjC,cAAc,EAAE,CAAC;QACnB,CAAC;QACD,OAAO,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC;IAED;;;;;OAKG;IACH,YAAY,CAAC,QAAQ,EAAE,OAAO;QAC5B,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;YACjC,cAAc,EAAE,CAAC;QACnB,CAAC;QACD,OAAO,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;IAED;;OAEG;IACH,IAAI,KAAK,CAAC,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACtD,CAAC;IAED,OAAO;QACL,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACpD,CAAC;CACF;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,OAAO,UAAW,SAAQ,IAAI;IAClC,iCAAiC;IACjC,eAAe,CAAC;IAEhB;;;;OAIG;IACH,YAAY,KAAK,EAAE,OAAO;QACxB,KAAK,EAAE,CAAC;QAER,IAAI,OAAO,KAAK,SAAS;YAAE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAClD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAElC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YAChD,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC/B,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,OAAO;QACL,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC;QAC5C,IAAI,OAAO,cAAc,KAAK,QAAQ,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;YAClE,OAAO,2CAA2C,CAAC,CAAC,cAAc,CAAC,CAAC;QACtE,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACvD,CAAC;IAED,IAAI;QACF,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC;QAC5C,IAAI,OAAO,cAAc,KAAK,QAAQ,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;YAClE,OAAO,2CAA2C,CAAC,CAAC,cAAc,CAAC,CAAC;QACtE,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED;;;OAGG;IACH,IAAI,KAAK,CAAC,KAAK;QACb,IAAI,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAChE,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,MAAM;YAClC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC;YACtC,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAE/B,IAAI,OAAO;YAAE,OAAO;QAEpB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAClC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YAChD,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC/B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;QACnC,CAAC;QACD,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACvB,IAAI,CAAC,UAAU;YAAE,aAAa,EAAE,CAAC;IACnC,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,KAAK;QACV,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YAChD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,KAAK,YAAY,GAAG,EAAE,CAAC;YACzB,oBAAoB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAC3C,CAAC;aAAM,IAAI,KAAK,YAAY,GAAG,EAAE,CAAC;YAChC,oBAAoB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAC3C,CAAC;aAAM,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC;YACjC,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QAC5C,CAAC;aAAM,IAAI,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7D,oBAAoB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;QAC7C,CAAC;QAED,OAAO,IAAI,KAAK,CAAC,KAAK,EAAE;YACtB,GAAG,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;gBACpB,IAAI,CAAC,QAAQ,CAAC;gBACd,IAAI,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;oBACvB,4DAA4D;oBAC5D,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;gBACnC,CAAC;gBACD,4DAA4D;gBAC5D,IAAI,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;gBAEzB,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;oBAChC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC7B,CAAC;gBAED,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAC7B,IAAI,MAAM,YAAY,GAAG,IAAI,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;wBAC3D,4DAA4D;wBAC5D,OAAO,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;oBAC3C,CAAC;oBAED,IAAI,MAAM,YAAY,GAAG,IAAI,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;wBAC3D,4DAA4D;wBAC5D,OAAO,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;oBAC3C,CAAC;oBAED,IAAI,MAAM,YAAY,IAAI,IAAI,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;wBAC7D,4DAA4D;wBAC5D,OAAO,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;oBAC5C,CAAC;oBAED,IACE,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;wBACrD,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,EAC/B,CAAC;wBACD,4DAA4D;wBAC5D,OAAO,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;oBAC7C,CAAC;gBACH,CAAC;gBAED,OAAO,KAAK,CAAC;YACf,CAAC;YACD,GAAG,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;gBAC3B,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gBAC9C,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;gBAEjC,MAAM,OAAO,GAAG,SAAS,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;gBAC9C,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;oBACvB,IAAI,CAAC,UAAU;wBAAE,aAAa,EAAE,CAAC;gBACnC,CAAC;gBAED,OAAO,IAAI,CAAC;YACd,CAAC;SACF,CAAC,CAAC;IACL,CAAC;CACF;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,OAAO,eAAgB,SAAQ,KAAK;IACxC,8BAA8B;IAC9B,YAAY,MAAM;QAChB,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAClD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF;AAED;;;;;GAKG;AACH,SAAS,SAAS,CAAC,CAAC,EAAE,CAAC;IACrB,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEzB,IACE,OAAO,CAAC,KAAK,OAAO,CAAC;QACrB,OAAO,CAAC,KAAK,QAAQ;QACrB,CAAC,KAAK,IAAI;QACV,CAAC,KAAK,IAAI;QAEV,OAAO,KAAK,CAAC;IAEf,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC;QACtB,IAAI,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,EAAE,CAAC;YACzB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;YAChC,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,CAAC,CAAC,YAAY,GAAG,CAAC,EAAE,CAAC;YACxB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;YACtB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;YACvC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;gBAClC,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACrB,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC;QACzB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAE5D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;YACjC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;gBAAE,OAAO,KAAK,CAAC;QAC3C,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7B,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7B,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC;QACjC,IAAI,WAAW,KAAK,KAAK,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAE/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACrB,IAAI,CAAC,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC;YACzB,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;gBAAE,OAAO,KAAK,CAAC;QAC9D,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"classes.js","sourceRoot":"","sources":["../../library/classes.js"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ export default Cell;
3
3
  * Represents a partial map of cells, where each key in the object type `T` is mapped to either a `Cell<T[key]>` or the raw type `T[key]`.
4
4
  * This type can be used to represent a partial set of cells for an object, where some properties are represented as cells and others are the raw values.
5
5
  */
6
- export type PartialCellMap<T extends object> = { [key in keyof T]: T[key] | Cell<T[key]>; };
6
+ export type PartialCellMap<T extends object> = { [key in keyof T]: Cell<T[key]> | T[key]; };
7
7
  /**
8
8
  * Represents a full set of cells for an object,
9
9
  * where all properties are represented as cells.
@@ -1,3 +1,4 @@
1
+ /// <reference types="./index.d.ts" />
1
2
  import { DerivedCell, SourceCell, Cell, CellUpdateError } from './classes.js';
2
3
  /**
3
4
  * Represents a partial map of cells, where each key in the object type `T` is mapped to either a `Cell<T[key]>` or the raw type `T[key]`.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adbl/cells",
3
- "version": "0.0.13",
3
+ "version": "0.0.15",
4
4
  "description": "A simple implementation of reactive updates for JavaScript",
5
5
  "main": "index.js",
6
6
  "private": false,
@@ -11,6 +11,7 @@
11
11
  "test-once": "vitest run",
12
12
  "test": "vitest",
13
13
  "build": "tsc --p jsconfig.json",
14
+ "postbuild": "chmod +x ./add-references.sh && ./add-references.sh",
14
15
  "prepublish": "bunx pkg-pr-new publish"
15
16
  },
16
17
  "exports": {
package/index.js DELETED
@@ -1 +0,0 @@
1
- export * from './library/index.js';