informa 1.0.2 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -169,14 +169,43 @@ Available set events include:
169
169
 
170
170
  - `onAddItem`
171
171
  - `onDeleteItem`
172
+ - `onCardChanged` (for cardinality, so as to avoid conflict with Map.size)
173
+
174
+ ### Map events
175
+
176
+ ```ts
177
+ $.onSetEntry(() => model.tags, (key, value) => {
178
+ console.log("set", tag);
179
+ });
180
+
181
+ $.onDeleteEntry(() => model.tags, (key, value) => {
182
+ console.log("deleted", tag);
183
+ });
184
+ ```
185
+
186
+ Available map events include:
187
+
188
+ - `onSetEntry`
189
+ - `onReplaceEntry`
190
+ - `onDeleteEntry`
172
191
  - `onSizeChanged`
173
192
 
174
193
  ## Classes
175
194
 
176
195
  Class instances can participate in the same selector model.
177
196
 
197
+ ### Note before use
198
+
199
+ Informa uses a prototype blanket layer so selectors like `() => w.state` can still be extracted even when the property lives on a class prototype.
200
+
201
+ However, the blanket does not intercept any property setters (since it's very possible that the setter does not end up changing the state)
202
+
203
+ It is up to the superclass to confirm changes using `super.{your property here} = {your value here}`.
204
+
205
+ ### Example
206
+
178
207
  ```ts
179
- class Wayland extends BaseStatified {
208
+ class Wayland extends $.BaseStatified {
180
209
  #state = 0;
181
210
 
182
211
  get state() { return this.#state; }
@@ -190,7 +219,7 @@ const w = new Wayland();
190
219
  $.onSet(() => w.state, (value) => console.log(value));
191
220
  ```
192
221
 
193
- Informa uses a prototype blanket layer so selectors like `() => w.state` can still be extracted even when the property lives on a class prototype.
222
+ In case you already wanted to extend antother class, we provide a class factory `$.makeStatified` that allows you to wrap an existing class.
194
223
 
195
224
  ## Semantics
196
225
 
@@ -223,9 +252,18 @@ $.onLengthChanged(...)
223
252
  $.onSpliceInElement(...)
224
253
  $.onSpliceOutElement(...)
225
254
  $.onReplaceElement(...)
226
- $.onSizeChanged(...)
255
+ $.onCardChanged(...)
227
256
  $.onAddItem(...)
228
257
  $.onDeleteItem(...)
258
+ $.onSetEntry(...)
259
+ $.onReplaceEntry(...)
260
+ $.onDeleteEntry(...)
261
+ $.onSizeChanged(...)
262
+
263
+ $.BaseStatified
264
+ $.StatifiedArray
265
+ $.StatifiedSet
266
+ $.StatifiedMap
229
267
  ```
230
268
 
231
269
  ## Goals
package/dist/high.d.ts CHANGED
@@ -2,6 +2,7 @@ import { type Statify } from "./internals.js";
2
2
  import { type StatifiableObj, type StatifiableProp, type Statified } from "./low.js";
3
3
  import { StatifiedArray } from "./quirks/array.js";
4
4
  import { makeStatified } from "./quirks/basestatified.js";
5
+ import { StatifiedMap } from "./quirks/map.js";
5
6
  import { StatifiedSet } from "./quirks/set.js";
6
7
  export declare function stateInner<T extends StatifiableProp>(original: T): Statified<T>;
7
8
  export declare function state<T extends StatifiableObj>(original: T): Statified<T>;
@@ -12,9 +13,9 @@ interface Listeners<T> {
12
13
  replace?(v: T): void;
13
14
  }
14
15
  interface ObjectListeners<K extends string | number | symbol, V> extends Listeners<Record<K, V>> {
15
- setProp?(v: V, i: string | symbol): void;
16
- replaceProp?(v: V, i: string | symbol): void;
17
- deleteProp?(v: V, i: string | symbol): void;
16
+ setProp?(p: string | symbol, v: V): void;
17
+ replaceProp?(p: string | symbol, v: V): void;
18
+ deleteProp?(p: string | symbol, v: V): void;
18
19
  }
19
20
  interface ArrayListeners<T> extends ObjectListeners<number, T> {
20
21
  spliceInElement?(v: T, i: number): void;
@@ -22,27 +23,37 @@ interface ArrayListeners<T> extends ObjectListeners<number, T> {
22
23
  replaceElement?(v: T, i: number): void;
23
24
  lengthChanged?(): void;
24
25
  }
25
- interface SetListeners<T> extends ObjectListeners<keyof Set<T>, Set<T>[keyof Set<T>]> {
26
+ interface SetListeners<T> {
26
27
  addItem?(v: T): void;
27
28
  deleteItem?(v: T): void;
29
+ cardChanged?(): void;
30
+ }
31
+ interface MapListeners<K, V> {
32
+ setEntry?(k: K, v: V): void;
33
+ replaceEntry?(k: K, v: V): void;
34
+ deleteEntry?(k: K, v: V): void;
28
35
  sizeChanged?(): void;
29
36
  }
30
- export declare function on<T, K extends string | number | symbol, V, U>(...[selector, listeners, options]: [
37
+ export declare function on<T, K extends string | number | symbol, V, U, K1, V1>(...[selector, listeners, options]: [
31
38
  () => T,
32
39
  Listeners<T>
33
- ] | [() => T, Listeners<T>, Options | undefined] | [() => Statify<Record<K, V>>, ObjectListeners<K, V>] | [() => Statify<Record<K, V>>, ObjectListeners<K, V>, Options | undefined] | [() => Statify<U[]>, ArrayListeners<U>] | [() => Statify<U[]>, ArrayListeners<U>, Options | undefined] | [() => Statify<Set<U>>, SetListeners<U>] | [() => Statify<Set<U>>, SetListeners<U>, Options | undefined]): () => void;
40
+ ] | [() => T, Listeners<T>, Options | undefined] | [() => Statify<Record<K, V>>, ObjectListeners<K, V>] | [() => Statify<Record<K, V>>, ObjectListeners<K, V>, Options | undefined] | [() => Statify<U[]>, ArrayListeners<U>] | [() => Statify<U[]>, ArrayListeners<U>, Options | undefined] | [() => Statify<Set<U>>, SetListeners<U>] | [() => Statify<Set<U>>, SetListeners<U>, Options | undefined] | [() => Statify<Map<K1, V1>>, MapListeners<K1, V1>] | [() => Statify<Map<K1, V1>>, MapListeners<K1, V1>, Options | undefined]): () => void;
34
41
  declare function onSet<T>(s: () => T, l: (v: T) => void, o?: Options): () => void;
35
42
  declare function onReplace<T>(s: () => T, l: (v: T) => void, o?: Options): () => void;
36
- declare function onReplaceProp<T extends Record<string | number | symbol, StatifiableProp>>(s: () => Statify<T>, l: (v: T[keyof T], k: keyof T) => void, o?: Options): () => void;
37
- declare function onDeleteProp<T extends Record<string | number | symbol, StatifiableProp>>(s: () => Statify<T>, l: (v: T[keyof T], k: keyof T) => void, o?: Options): () => void;
38
- declare function onSetProp<T extends Record<string | number | symbol, StatifiableProp>>(s: () => Statify<T>, l: (v: T[keyof T], k: keyof T) => void, o?: Options): () => void;
43
+ declare function onReplaceProp<T extends Record<string | number | symbol, StatifiableProp>>(s: () => Statify<T>, l: (k: keyof T, v: T[keyof T]) => void, o?: Options): () => void;
44
+ declare function onDeleteProp<T extends Record<string | number | symbol, StatifiableProp>>(s: () => Statify<T>, l: (k: keyof T, v: T[keyof T]) => void, o?: Options): () => void;
45
+ declare function onSetProp<T extends Record<string | number | symbol, StatifiableProp>>(s: () => Statify<T>, l: (k: keyof T, v: T[keyof T]) => void, o?: Options): () => void;
39
46
  declare function onLengthChanged(s: () => Statify<StatifiableObj[]>, l: () => void, o?: Options): () => void;
40
47
  declare function onSpliceInElement<T extends StatifiableObj>(s: () => Statify<T[]>, l: (v: T, k: number) => void, o?: Options): () => void;
41
48
  declare function onSpliceOutElement<T extends StatifiableObj>(s: () => Statify<T[]>, l: (v: T, k: number) => void, o?: Options): () => void;
42
49
  declare function onReplaceElement<T extends StatifiableObj>(s: () => Statify<T[]>, l: (v: T, k: number) => void, o?: Options): () => void;
43
- declare function onSizeChanged<T extends StatifiableObj>(s: () => Statify<Set<T>>, l: () => void, o?: Options): () => void;
50
+ declare function onCardChanged(s: () => Statify<Set<StatifiableObj>>, l: () => void, o?: Options): () => void;
44
51
  declare function onAddItem<T extends StatifiableObj>(s: () => Statify<Set<T>>, l: (v: T) => void, o?: Options): () => void;
45
52
  declare function onDeleteItem<T extends StatifiableObj>(s: () => Statify<Set<T>>, l: (v: T) => void, o?: Options): () => void;
53
+ declare function onSetEntry<K, V extends StatifiableObj>(s: () => Statify<Map<K, V>>, l: (k: K, v: V) => void, o?: Options): () => void;
54
+ declare function onReplaceEntry<K, V extends StatifiableObj>(s: () => Statify<Map<K, V>>, l: (k: K, v: V) => void, o?: Options): () => void;
55
+ declare function onDeleteEntry<K, V extends StatifiableObj>(s: () => Statify<Map<K, V>>, l: (k: K, v: V) => void, o?: Options): () => void;
56
+ declare function onSizeChanged(s: () => Statify<Map<any, StatifiableObj>>, l: () => void, o?: Options): () => void;
46
57
  declare const _default: {
47
58
  on: typeof on;
48
59
  onSet: typeof onSet;
@@ -54,14 +65,19 @@ declare const _default: {
54
65
  onSpliceInElement: typeof onSpliceInElement;
55
66
  onSpliceOutElement: typeof onSpliceOutElement;
56
67
  onReplaceElement: typeof onReplaceElement;
57
- onSizeChanged: typeof onSizeChanged;
68
+ onCardChanged: typeof onCardChanged;
58
69
  onAddItem: typeof onAddItem;
59
70
  onDeleteItem: typeof onDeleteItem;
71
+ onSetEntry: typeof onSetEntry;
72
+ onReplaceEntry: typeof onReplaceEntry;
73
+ onDeleteEntry: typeof onDeleteEntry;
74
+ onSizeChanged: typeof onSizeChanged;
60
75
  state: typeof state;
61
76
  BaseStatified: ObjectConstructor & (new (...args: any[]) => Record<string | symbol, any>);
62
77
  makeStatified: typeof makeStatified;
63
78
  StatifiedArray: typeof StatifiedArray;
64
79
  StatifiedSet: typeof StatifiedSet;
80
+ StatifiedMap: typeof StatifiedMap;
65
81
  };
66
82
  export default _default;
67
83
  //# sourceMappingURL=high.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"high.d.ts","sourceRoot":"","sources":["../src/high.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"high.d.ts","sourceRoot":"","sources":["../src/high.ts"],"names":[],"mappings":"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"}
package/dist/high.js CHANGED
@@ -7,6 +7,7 @@ const internals_js_1 = require("./internals.js");
7
7
  const low_js_1 = require("./low.js");
8
8
  const array_js_1 = require("./quirks/array.js");
9
9
  const basestatified_js_1 = require("./quirks/basestatified.js");
10
+ const map_js_1 = require("./quirks/map.js");
10
11
  const set_js_1 = require("./quirks/set.js");
11
12
  function stateInner(original) {
12
13
  if (typeof original !== 'object' || original === null) {
@@ -19,11 +20,15 @@ function stateInner(original) {
19
20
  case Set.prototype:
20
21
  const set = original;
21
22
  return new set_js_1.StatifiedSet(set[Symbol.iterator]().map(stateInner));
23
+ case Map.prototype:
24
+ const map = original;
25
+ return new map_js_1.StatifiedMap(map[Symbol.iterator]().map(([k, v]) => [k, stateInner(v)]));
22
26
  case Array.prototype:
23
27
  const array = original;
24
28
  return new array_js_1.StatifiedArray(...array.map(stateInner));
25
29
  case array_js_1.StatifiedArray.prototype:
26
30
  case set_js_1.StatifiedSet.prototype:
31
+ case map_js_1.StatifiedMap.prototype:
27
32
  return original;
28
33
  case Object.prototype:
29
34
  const newObj = original;
@@ -85,8 +90,8 @@ function onSpliceOutElement(s, l, o) {
85
90
  function onReplaceElement(s, l, o) {
86
91
  return on(s, { replaceElement: l }, o);
87
92
  }
88
- function onSizeChanged(s, l, o) {
89
- return on(s, { sizeChanged: l }, o);
93
+ function onCardChanged(s, l, o) {
94
+ return on(s, { cardChanged: l }, o);
90
95
  }
91
96
  function onAddItem(s, l, o) {
92
97
  return on(s, { addItem: l }, o);
@@ -94,6 +99,18 @@ function onAddItem(s, l, o) {
94
99
  function onDeleteItem(s, l, o) {
95
100
  return on(s, { deleteItem: l }, o);
96
101
  }
102
+ function onSetEntry(s, l, o) {
103
+ return on(s, { setEntry: l }, o);
104
+ }
105
+ function onReplaceEntry(s, l, o) {
106
+ return on(s, { replaceEntry: l }, o);
107
+ }
108
+ function onDeleteEntry(s, l, o) {
109
+ return on(s, { deleteEntry: l }, o);
110
+ }
111
+ function onSizeChanged(s, l, o) {
112
+ return on(s, { sizeChanged: l }, o);
113
+ }
97
114
  exports.default = {
98
115
  on,
99
116
  onSet,
@@ -105,13 +122,18 @@ exports.default = {
105
122
  onSpliceInElement,
106
123
  onSpliceOutElement,
107
124
  onReplaceElement,
108
- onSizeChanged,
125
+ onCardChanged,
109
126
  onAddItem,
110
127
  onDeleteItem,
128
+ onSetEntry,
129
+ onReplaceEntry,
130
+ onDeleteEntry,
131
+ onSizeChanged,
111
132
  state,
112
133
  BaseStatified: basestatified_js_1.BaseStatified,
113
134
  makeStatified: basestatified_js_1.makeStatified,
114
135
  StatifiedArray: array_js_1.StatifiedArray,
115
136
  StatifiedSet: set_js_1.StatifiedSet,
137
+ StatifiedMap: map_js_1.StatifiedMap,
116
138
  };
117
139
  //# sourceMappingURL=high.js.map
package/dist/high.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"high.js","sourceRoot":"","sources":["../src/high.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"high.js","sourceRoot":"","sources":["../src/high.ts"],"names":[],"mappings":"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"}
package/dist/low.d.ts CHANGED
@@ -2,6 +2,7 @@ import { exitProxySymbol, type Statify } from "./internals.js";
2
2
  import { EventEmitter } from "node:events";
3
3
  import { StatifiedSet } from "./quirks/set.js";
4
4
  import { EnumerableWeakMap } from "./EnumerableWeakMap.js";
5
+ import { StatifiedMap } from "./quirks/map.js";
5
6
  type ProxyEventEmitterEvents = {
6
7
  "set": [any];
7
8
  "replace": [any];
@@ -12,9 +13,13 @@ type ProxyEventEmitterEvents = {
12
13
  "spliceInElement": [any, number];
13
14
  "spliceOutElement": [any, number];
14
15
  "replaceElement": [any, number];
15
- "sizeChanged": [];
16
16
  "addItem": [any];
17
17
  "deleteItem": [any];
18
+ "cardChanged": [];
19
+ "setEntry": [any, any];
20
+ "replaceEntry": [any, any];
21
+ "deleteEntry": [any, any];
22
+ "sizeChanged": [];
18
23
  } & Record<string, never>;
19
24
  declare class Tree<T, U> {
20
25
  value: U;
@@ -42,7 +47,7 @@ export type StatifiableProp = boolean | string | number | bigint | symbol | null
42
47
  export type StatifiableObj = {
43
48
  [k: string | symbol]: StatifiableProp;
44
49
  } | {};
45
- export type Statified<T extends StatifiableProp> = T extends object ? T extends Set<infer U> ? StatifiedSet<Statified<U>> : T extends Set<any> ? never : Statify<{
50
+ export type Statified<T extends StatifiableProp> = T extends object ? T extends Set<infer U> ? StatifiedSet<Statified<U>> : T extends Map<infer K, infer V> ? StatifiedMap<K, Statified<V>> : Statify<{
46
51
  [K in keyof T]: Statified<T[K]>;
47
52
  }> : T;
48
53
  export declare function statifyObject<T extends {
package/dist/low.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"low.d.ts","sourceRoot":"","sources":["../src/low.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"low.d.ts","sourceRoot":"","sources":["../src/low.ts"],"names":[],"mappings":"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"}
package/dist/low.js CHANGED
@@ -113,44 +113,40 @@ function statifyObject(target) {
113
113
  const had = Reflect.has(target, prop);
114
114
  const oldVal = Reflect.get(target, prop);
115
115
  const result = Reflect.set(target, prop, newVal, recv);
116
- try {
117
- if (result) {
116
+ if (result) {
117
+ if (oldVal !== newVal
118
+ && typeof newVal === "object"
119
+ && newVal != null
120
+ && newVal[internals_js_1.statifySealKey]) {
121
+ const newValMetadata = (0, internals_js_1.getMetadataOf)(newVal);
122
+ hook(stateMetadata, prop, newValMetadata);
123
+ }
124
+ if (had) {
118
125
  if (oldVal !== newVal
119
- && typeof newVal === "object"
120
- && newVal != null
121
- && newVal[internals_js_1.statifySealKey]) {
122
- const newValMetadata = (0, internals_js_1.getMetadataOf)(newVal);
123
- hook(stateMetadata, prop, newValMetadata);
126
+ && typeof oldVal === "object"
127
+ && oldVal != null
128
+ && oldVal[internals_js_1.statifySealKey]) {
129
+ const oldValMetadata = (0, internals_js_1.getMetadataOf)(oldVal);
130
+ unhook(stateMetadata, prop, oldValMetadata);
124
131
  }
125
- if (had) {
126
- if (oldVal !== newVal
127
- && typeof oldVal === "object"
128
- && oldVal != null
129
- && oldVal[internals_js_1.statifySealKey]) {
130
- const oldValMetadata = (0, internals_js_1.getMetadataOf)(oldVal);
131
- unhook(stateMetadata, prop, oldValMetadata);
132
- }
133
- if (typeof prop !== "symbol" &&
134
- Number.isInteger(Number(prop)) &&
135
- Array.isArray(target)) {
136
- stateMetadata.emit('replaceElement', newVal, Number(prop));
137
- }
138
- stateMetadata.emit('replaceProp', newVal, prop);
132
+ if (typeof prop !== "symbol" &&
133
+ Number.isInteger(Number(prop)) &&
134
+ Array.isArray(target)) {
135
+ stateMetadata.emit('replaceElement', newVal, Number(prop));
139
136
  }
140
- stateMetadata.emit('setProp', newVal, prop);
141
- const maybeEventEmitterAtVal = stateMetadata.eventEmitterAtPathMaybe([prop]);
142
- if (maybeEventEmitterAtVal) {
143
- if (had) {
144
- maybeEventEmitterAtVal.emit('replace', newVal);
145
- }
146
- maybeEventEmitterAtVal.emit('set', newVal);
147
- emitDescendantPathEvents(stateMetadata, [prop], newVal, had);
137
+ stateMetadata.emit('replaceProp', newVal, prop);
138
+ }
139
+ stateMetadata.emit('setProp', newVal, prop);
140
+ const maybeEventEmitterAtVal = stateMetadata.eventEmitterAtPathMaybe([prop]);
141
+ if (maybeEventEmitterAtVal) {
142
+ if (had) {
143
+ maybeEventEmitterAtVal.emit('replace', newVal);
148
144
  }
145
+ maybeEventEmitterAtVal.emit('set', newVal);
146
+ emitDescendantPathEvents(stateMetadata, [prop], newVal, had);
149
147
  }
150
148
  }
151
- finally {
152
- return result;
153
- }
149
+ return result;
154
150
  },
155
151
  deleteProperty(target, prop) {
156
152
  const oldVal = target[prop];
package/dist/low.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"low.js","sourceRoot":"","sources":["../src/low.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"low.js","sourceRoot":"","sources":["../src/low.ts"],"names":[],"mappings":";;;;;;;;;AAAA,iDAA8K;AAC9K,6CAA2C;AAE3C,yCAA0C;AAC1C,iEAA2D;AA2B3D,MAAM,IAAI;IACR,KAAK,CAAI;IACT,QAAQ,GAAG,IAAI,GAAG,EAAiB,CAAC;IAEpC,YAAY,KAAQ;QAClB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,GAAG,CAAC,GAAM;QACR,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;IACD,WAAW,CAAC,GAAM,EAAE,QAAqB;QACvC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5B,MAAM,MAAM,GAAG,IAAI,IAAI,CAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;YAC7C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YAE/B,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC;IACjC,CAAC;CACF;AAED,mBAA2B,SAAQ,0BAAqC;IACtE,gBAAgB,GAAG,IAAI,IAAI,CAAiC,IAAI,CAAC,CAAC;IAElE,OAAO,GAAG,IAAI,wCAAiB,EAAuC,CAAC;IAEvE,kBAAkB,CAAC,IAAyB;QAC1C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAEnC,IAAI,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC;QACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YACxC,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,CAAE,CAAC;YAC5B,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,IAAI,aAAa,EAAE,CAAC,CAAC;QACjE,CAAC;QAED,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,uBAAuB,CAAC,IAAyB;QAC/C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAEnC,IAAI,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC;QACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YACxC,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,CAAE,CAAC;YAE5B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACvC,IAAI,CAAC,SAAS;gBAAE,OAAO,SAAS,CAAC;YAEjC,IAAI,GAAG,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,YAAY,CACV,KAA+D,EAC/D,UAA+B;QAE/B,KAAK,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAC1C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;gBACvB,KAAK,CAAC,IAAI,CAAC;oBACT,QAAQ,EAAE,MAAM;oBAChB,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC;iBAC3B,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,CACF,SAAqB,EACrB,GAAG,IAIM;QAET,IAAI,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,CAAC;QAE5C,MAAM,KAAK,GAA6D,EAAE,CAAC;QAC3E,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAE7B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAwC,CAAC;QAE7D,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,GAAG,EAAG,CAAC;YAExC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAEjC,IAAI,IAAA,uBAAY,EAAC,KAAK,IAAI,EAAE,EAAE,IAAI,CAAC;gBAAE,SAAS;YAE9C,IAAI,KAAK;gBAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;;gBACvB,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;YAEhC,MAAM,MAAM,GAAG,QAAQ,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;YACtD,IAAI,MAAM;gBAAE,MAAM,KAAK,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,CAAC;YAEvD,QAAQ,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACrC,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;;AAsBD,uBAA8F,MAAS;IACrG,IAAK,MAAuB,CAAC,6BAAc,CAAC,EAAE,CAAC;QAC7C,OAAO,MAAsB,CAAC;IAChC,CAAC;IAED,IAAI,4BAAa,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QAC9B,OAAO,4BAAa,CAAC,GAAG,CAAC,MAAM,CAAkB,CAAC;IACpD,CAAC;IAED,IAAI,aAA4B,CAAC;IAEjC,MAAM,QAAQ,GAAG,IAAI,KAAK,CAAC,MAAM,EAAE;QACjC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI;YACpB,IAAI,IAAI,KAAK,6BAAc;gBAAE,OAAO,IAAI,CAAC;YAEzC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YAE/C,IAAI,8BAAe,KAAK,oBAAoB,EAAE,CAAC;gBAC7C,IAAI,IAAI,KAAK,8BAAe,EAAE,CAAC;oBAC7B,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;gBAC3C,CAAC;gBAED,OAAO,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;YAC1C,CAAC;YAED,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI;YAC5B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YACtC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAY,CAAC;YAEpD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;YAEvD,IAAI,MAAM,EAAE,CAAC;gBACX,IACE,MAAM,KAAK,MAAM;uBACd,OAAO,MAAM,KAAK,QAAQ;uBAC1B,MAAM,IAAI,IAAI;uBACd,MAAM,CAAC,6BAAc,CAAC,EACzB,CAAC;oBACD,MAAM,cAAc,GAAG,IAAA,4BAAa,EAAC,MAAiC,CAAC,CAAC;oBAExE,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;gBAC5C,CAAC;gBAED,IAAI,GAAG,EAAE,CAAC;oBACR,IACE,MAAM,KAAK,MAAM;2BACd,OAAO,MAAM,KAAK,QAAQ;2BAC1B,MAAM,IAAI,IAAI;2BACb,MAAc,CAAC,6BAAc,CAAC,EAClC,CAAC;wBACD,MAAM,cAAc,GAAG,IAAA,4BAAa,EAAC,MAAiC,CAAC,CAAC;wBAExE,MAAM,CAAC,aAAa,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;oBAC9C,CAAC;oBAED,IACE,OAAO,IAAI,KAAK,QAAQ;wBACxB,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;wBAC9B,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EACrB,CAAC;wBACD,aAAa,CAAC,IAAI,CAAC,gBAAgB,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;oBAC7D,CAAC;oBAED,aAAa,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;gBAClD,CAAC;gBAED,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;gBAE5C,MAAM,sBAAsB,GAAG,aAAa,CAAC,uBAAuB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC7E,IAAI,sBAAsB,EAAE,CAAC;oBAC3B,IAAI,GAAG,EAAE,CAAC;wBACR,sBAAsB,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;oBACjD,CAAC;oBAED,sBAAsB,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;oBAE3C,wBAAwB,CACtB,aAAa,EACb,CAAC,IAAI,CAAC,EACN,MAAM,EACN,GAAG,CACJ,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,cAAc,CAAC,MAAM,EAAE,IAAI;YACzB,MAAM,MAAM,GAAG,MAAM,CAAC,IAA2B,CAAY,CAAC;YAE9D,MAAM,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAEpD,IAAI,CAAC;gBACH,IAAI,MAAM,EAAE,CAAC;oBACX,IACE,OAAO,MAAM,KAAK,QAAQ;2BACvB,MAAM,IAAI,IAAI;2BACb,MAAkC,CAAC,6BAAc,CAAC,EACtD,CAAC;wBACD,MAAM,cAAc,GAAG,IAAA,4BAAa,EAAC,MAAiC,CAAC,CAAC;wBAExE,MAAM,CAAC,aAAa,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;oBAC9C,CAAC;oBAED,aAAa,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;gBACjD,CAAC;YACH,CAAC;oBAAS,CAAC;gBACT,OAAO,MAAM,CAAC;YAChB,CAAC;QACH,CAAC;QAED,GAAG,CAAC,MAAM,EAAE,IAAI;YACd,IAAI,8BAAe,KAAK,oBAAoB,EAAE,CAAC;gBAC7C,IAAI,IAAI,KAAK,8BAAe,EAAE,CAAC;oBAC7B,OAAO,IAAI,CAAC;gBACd,CAAC;YACH,CAAC;YAED,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACnC,CAAC;KACF,CAA6B,CAAC;IAE/B,aAAa,GAAG,IAAA,4BAAa,EAAC,QAAQ,EAAE,IAAI,aAAa,EAAE,CAAC,CAAC;IAE7D,4BAAa,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAEpC,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,iBACE,oBAA6B,EAC7B,SAAkC,EAClC,IAAyB;IAIzB,MAAM,MAAM,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAE5C,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;QACvB,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI;YACpB,IAAI,IAAI,KAAK,8BAAe,EAAE,CAAC;gBAC7B,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;YAC7B,CAAC;YAED,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC1B,OAAO;gBACP,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;YAC7D,CAAC;YAED,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC,GAAG,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QAC9E,CAAC;QACD,GAAG,CAAC,MAAM,EAAE,IAAI;YACd,IAAI,8BAAe,KAAK,oBAAoB,EAAE,CAAC;gBAC7C,IAAI,IAAI,KAAK,8BAAe;oBAAE,OAAO,IAAI,CAAC;YAC5C,CAAC;YAED,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACnC,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED,+BAAsC,QAAuC;IAC3E,IAAA,iCAAkB,EAAC,oBAAoB,CAAC,CAAC;IAEzC,IAAI,MAAM,CAAC;IACX,IAAK,CAAC;QACJ,MAAM,GAAI,QAAQ,EAAe,CAAC,8BAAe,CAAC,CAAC;IACrD,CAAC;YAAS,CAAC;QACT,IAAA,iCAAkB,EAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,cACE,YAA2B,EAC3B,IAAqB,EACrB,UAAyB;IAEzB,IAAI,YAAY,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAExD,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,YAAY,GAAG,IAAI,GAAG,EAAE,CAAC;QAEzB,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;IACrD,CAAC;IAED,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACzB,CAAC;AAED,gBACE,YAA2B,EAC3B,IAAqB,EACrB,UAAyB;IAEzB,MAAM,GAAG,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACjD,IAAI,GAAG,EAAE,CAAC;QACR,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAEjB,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YACnB,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CACrB,KAAc,EACd,IAAyB;IAEzB,IAAI,OAAO,GAAG,KAAK,CAAC;IAEpB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,OAAO,IAAI,IAAI;YAAE,OAAO,SAAS,CAAC;QACtC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC;IAC9C,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,kCACE,YAA2B,EAC3B,UAA+B,EAC/B,aAAsB,EACtB,WAAoB;IAEpB,IAAI,IAAI,GAAG,YAAY,CAAC,gBAAgB,CAAC;IAEzC,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC3B,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,IAAI,GAAG,IAAI,CAAC;IACd,CAAC;IAED,MAAM,IAAI,GAAG,CACX,IAA0C,EAC1C,UAA+B,EAC/B,EAAE;QACF,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,KAAK,GAAG,cAAc,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;YAExD,IAAI,WAAW,EAAE,CAAC;gBAChB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YACpC,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAChC,CAAC;QAED,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACzC,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC;QACpC,CAAC;IACH,CAAC,CAAC;IAEF,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QACzC,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACrB,CAAC;AACH,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { exitProxySymbol, Statify, statifySealKey } from "../internals";
2
+ import { ExitProxyValue } from "../low";
3
+ export declare class StatifiedMap<K, V> extends Map<K, V> implements Statify<Map<K, V>> {
4
+ #private;
5
+ [statifySealKey]: true;
6
+ get [exitProxySymbol](): ExitProxyValue;
7
+ constructor(args?: Iterable<[K, V]> | null);
8
+ clear(): void;
9
+ delete(key: K): boolean;
10
+ set(key: K, value: V): this;
11
+ }
12
+ //# sourceMappingURL=map.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"map.d.ts","sourceRoot":"","sources":["../../src/quirks/map.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAkC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACxG,OAAO,EAAE,cAAc,EAA0C,MAAM,QAAQ,CAAC;AAEhF,qBAAa,YAAY,CAAC,CAAC,EAAE,CAAC,CAAE,SAAQ,GAAG,CAAC,CAAC,EAAE,CAAC,CAAE,YAAW,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;;IAC7E,CAAC,cAAc,CAAC,EAAE,IAAI,CAAQ;IAC9B,IAAI,CAAC,eAAe,CAAC,IAAI,cAAc,CAKtC;IAID,YAAY,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,EAIzC;IAED,KAAK,IAAI,IAAI,CASZ;IAED,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAStB;IAED,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAc1B;CACF"}
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StatifiedMap = void 0;
4
+ const internals_1 = require("../internals");
5
+ const low_1 = require("../low");
6
+ class StatifiedMap extends Map {
7
+ [internals_1.statifySealKey] = true;
8
+ get [internals_1.exitProxySymbol]() {
9
+ if (internals_1.globalStateMode === "extract-proxy-path") {
10
+ return { path: [], stateRoot: this };
11
+ }
12
+ throw new Error("exitProxySymbol is not available in normal mode");
13
+ }
14
+ #metadata;
15
+ constructor(args) {
16
+ super(args);
17
+ this.#metadata = (0, internals_1.setMetadataOf)(this, new low_1.StateMetadata());
18
+ }
19
+ clear() {
20
+ const entries = [...this.entries()];
21
+ super.clear();
22
+ for (const [key, value] of entries) {
23
+ this.#metadata.emit("deleteEntry", key, value);
24
+ }
25
+ this.#metadata.emit("sizeChanged");
26
+ }
27
+ delete(key) {
28
+ const value = super.get(key);
29
+ if (super.delete(key)) {
30
+ this.#metadata.emit("deleteEntry", key, value);
31
+ this.#metadata.emit("sizeChanged");
32
+ return true;
33
+ }
34
+ return false;
35
+ }
36
+ set(key, value) {
37
+ if (super.get(key) === value)
38
+ return this;
39
+ const had = super.has(key);
40
+ super.set(key, value);
41
+ if (had) {
42
+ this.#metadata.emit("replaceEntry", key, value);
43
+ }
44
+ this.#metadata.emit("setEntry", key, value);
45
+ this.#metadata.emit("sizeChanged");
46
+ return this;
47
+ }
48
+ }
49
+ exports.StatifiedMap = StatifiedMap;
50
+ //# sourceMappingURL=map.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"map.js","sourceRoot":"","sources":["../../src/quirks/map.ts"],"names":[],"mappings":";;;AAAA,4CAAwG;AACxG,gCAAgF;AAEhF,kBAAgC,SAAQ,GAAS;IAC/C,CAAC,0BAAc,CAAC,GAAS,IAAI,CAAC;IAC9B,IAAI,CAAC,2BAAe,CAAC;QACnB,IAAI,2BAAe,KAAK,oBAAoB,EAAE,CAAC;YAC7C,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,IAA+B,EAAE,CAAC;QAClE,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACrE,CAAC;IAED,SAAS,CAAgB;IAEzB,YAAY,IAA8B;QACxC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEZ,IAAI,CAAC,SAAS,GAAG,IAAA,yBAAa,EAAC,IAAI,EAAE,IAAI,mBAAa,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,KAAK;QACH,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QACpC,KAAK,CAAC,KAAK,EAAE,CAAC;QAEd,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,OAAO,EAAE,CAAC;YACnC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QACjD,CAAC;QAED,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACrC,CAAC;IAED,MAAM,CAAC,GAAM;QACX,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;YACtB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YAC/C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACnC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,GAAG,CAAC,GAAM,EAAE,KAAQ;QAClB,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,KAAK;YAAE,OAAO,IAAI,CAAC;QAE1C,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC3B,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAEtB,IAAI,GAAG,EAAE,CAAC;YACR,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QAClD,CAAC;QAED,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QAC5C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAEnC,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
@@ -3,7 +3,7 @@ import { type ExitProxyValue, type StatifiableProp } from "../low.js";
3
3
  export declare class StatifiedSet<T extends StatifiableProp> extends Set<T> implements Statify<Set<T>> {
4
4
  #private;
5
5
  [statifySealKey]: true;
6
- [exitProxySymbol]: ExitProxyValue;
6
+ get [exitProxySymbol](): ExitProxyValue;
7
7
  constructor(args?: Iterable<T> | null);
8
8
  add(value: T): this;
9
9
  clear(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"set.d.ts","sourceRoot":"","sources":["../../src/quirks/set.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAiB,cAAc,EAAE,KAAK,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/F,OAAO,EAAiB,KAAK,cAAc,EAAE,KAAK,eAAe,EAAE,MAAM,WAAW,CAAC;AAErF,qBAAa,YAAY,CAAC,CAAC,SAAS,eAAe,CAAE,SAAQ,GAAG,CAAC,CAAC,CAAE,YAAW,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;;IAC5F,CAAC,cAAc,CAAC,EAAE,IAAI,CAAQ;IACtB,CAAC,eAAe,CAAC,EAAE,cAAc,CAAC;IAI1C,YAAY,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,EAIpC;IAED,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAQlB;IAED,KAAK,IAAI,IAAI,CAWZ;IAED,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO,CAQxB;CACF"}
1
+ {"version":3,"file":"set.d.ts","sourceRoot":"","sources":["../../src/quirks/set.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAkC,cAAc,EAAE,KAAK,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAChH,OAAO,EAAiC,KAAK,cAAc,EAAE,KAAK,eAAe,EAAE,MAAM,WAAW,CAAC;AAErG,qBAAa,YAAY,CAAC,CAAC,SAAS,eAAe,CAAE,SAAQ,GAAG,CAAC,CAAC,CAAE,YAAW,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;;IAC5F,CAAC,cAAc,CAAC,EAAE,IAAI,CAAQ;IAC9B,IAAI,CAAC,eAAe,CAAC,IAAI,cAAc,CAKtC;IAID,YAAY,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,EAIpC;IAED,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAQlB;IAED,KAAK,IAAI,IAAI,CAWZ;IAED,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO,CAQxB;CACF"}
@@ -5,6 +5,12 @@ const internals_js_1 = require("../internals.js");
5
5
  const low_js_1 = require("../low.js");
6
6
  class StatifiedSet extends Set {
7
7
  [internals_js_1.statifySealKey] = true;
8
+ get [internals_js_1.exitProxySymbol]() {
9
+ if (internals_js_1.globalStateMode === "extract-proxy-path") {
10
+ return { path: [], stateRoot: this };
11
+ }
12
+ throw new Error("exitProxySymbol is not available in normal mode");
13
+ }
8
14
  #metadata;
9
15
  constructor(args) {
10
16
  super(args);
@@ -14,7 +20,7 @@ class StatifiedSet extends Set {
14
20
  if (!super.has(value)) {
15
21
  super.add(value);
16
22
  this.#metadata.emit("addItem", value);
17
- this.#metadata.emit("sizeChanged");
23
+ this.#metadata.emit("cardChanged");
18
24
  }
19
25
  return this;
20
26
  }
@@ -25,13 +31,13 @@ class StatifiedSet extends Set {
25
31
  this.#metadata.emit("deleteItem", value);
26
32
  }
27
33
  if (oldValues.length > 0) {
28
- this.#metadata.emit("sizeChanged");
34
+ this.#metadata.emit("cardChanged");
29
35
  }
30
36
  }
31
37
  delete(value) {
32
38
  if (super.delete(value)) {
33
39
  this.#metadata.emit("deleteItem", value);
34
- this.#metadata.emit("sizeChanged");
40
+ this.#metadata.emit("cardChanged");
35
41
  return true;
36
42
  }
37
43
  return false;
@@ -1 +1 @@
1
- {"version":3,"file":"set.js","sourceRoot":"","sources":["../../src/quirks/set.ts"],"names":[],"mappings":";;;AAAA,kDAA+F;AAC/F,sCAAqF;AAErF,kBAAqD,SAAQ,GAAM;IACjE,CAAC,6BAAc,CAAC,GAAS,IAAI,CAAC;IAG9B,SAAS,CAAgB;IAEzB,YAAY,IAAyB;QACnC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEZ,IAAI,CAAC,SAAS,GAAG,IAAA,4BAAa,EAAC,IAAI,EAAE,IAAI,sBAAa,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,GAAG,CAAC,KAAQ;QACV,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACtB,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACjB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YACtC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACrC,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK;QACH,MAAM,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QAErC,KAAK,CAAC,KAAK,EAAE,CAAC;QAEd,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;YAC9B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;QAC3C,CAAC;QACD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IAED,MAAM,CAAC,KAAQ;QACb,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YACxB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;YACzC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACnC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;CACF"}
1
+ {"version":3,"file":"set.js","sourceRoot":"","sources":["../../src/quirks/set.ts"],"names":[],"mappings":";;;AAAA,kDAAgH;AAChH,sCAAqG;AAErG,kBAAqD,SAAQ,GAAM;IACjE,CAAC,6BAAc,CAAC,GAAS,IAAI,CAAC;IAC9B,IAAI,CAAC,8BAAe,CAAC;QACnB,IAAI,8BAAe,KAAK,oBAAoB,EAAE,CAAC;YAC7C,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,IAA+B,EAAE,CAAC;QAClE,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACrE,CAAC;IAED,SAAS,CAAgB;IAEzB,YAAY,IAAyB;QACnC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEZ,IAAI,CAAC,SAAS,GAAG,IAAA,4BAAa,EAAC,IAAI,EAAE,IAAI,sBAAa,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,GAAG,CAAC,KAAQ;QACV,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACtB,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACjB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YACtC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACrC,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK;QACH,MAAM,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QAErC,KAAK,CAAC,KAAK,EAAE,CAAC;QAEd,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;YAC9B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;QAC3C,CAAC;QACD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IAED,MAAM,CAAC,KAAQ;QACb,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YACxB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;YACzC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACnC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;CACF"}
package/dist/test.js CHANGED
@@ -39,4 +39,10 @@ class Wayland extends basestatified_js_1.BaseStatified {
39
39
  const w = new Wayland();
40
40
  high_js_1.default.onSet(() => w.state, (v) => console.log("asdf awawa!!", v));
41
41
  w.state = 5;
42
+ const map = high_js_1.default.state(new Map());
43
+ high_js_1.default.onSetEntry(() => map, (k, v) => console.log("set", k, v));
44
+ high_js_1.default.onReplaceEntry(() => map, (k, v) => console.log("replace", k, v));
45
+ map.set(1, "");
46
+ map.set(1, "asdf");
47
+ map.set(1, "asdf");
42
48
  //# sourceMappingURL=test.js.map
package/dist/test.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"test.js","sourceRoot":"","sources":["../src/test.ts"],"names":[],"mappings":";;;;;AAAA,wDAA0B;AAC1B,gEAA0D;AAC1D,4CAA+C;AAE/C,MAAM,QAAQ,GAAG,iBAAC,CAAC,KAAK,CAA4D,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AAE/F,iBAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;IAC1C,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IAEzB,iBAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE;QAC9B,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,iBAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE;IAC3C,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,QAAQ,CAAC,CAAC;AAClD,CAAC,CAAC,CAAC;AAEH,MAAM,CAAC,GAAG,iBAAC,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC5B,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAEnB,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AAET,MAAM,IAAI,GAAG,iBAAC,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,IAAI,GAAG,EAAU,EAAE,CAAC,CAAC;AAC/C,MAAM,KAAK,GAAG,iBAAC,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;AAEnC,uCAAuC;AACvC,QAAQ,CAAC,CAAC,GAAG,KAAK,CAAC;AAEnB,MAAM,OAAQ,SAAQ,gCAAa;IACjC,QAAQ,GAAG,IAAI,qBAAY,EAAE,CAAC;IAE9B,MAAM,GAAG,CAAC,CAAC;IACX,IAAI,KAAK,KAAK,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACnC,IAAI,KAAK,CAAC,CAAS;QACjB,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;QACrB,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAChB,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;IAClB,CAAC;IAED;QACE,KAAK,EAAE,CAAC;IACV,CAAC;CACF;AAED,MAAM,CAAC,GAAG,IAAI,OAAO,EAAE,CAAC;AACxB,iBAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC;AAE9D,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC"}
1
+ {"version":3,"file":"test.js","sourceRoot":"","sources":["../src/test.ts"],"names":[],"mappings":"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"}
package/dist/utils.d.ts CHANGED
@@ -1,5 +1,2 @@
1
- export declare function ofWhichIsProto<T extends object, U extends symbol>(target: object, expect: Map<T, U>): U | undefined;
2
- export declare const isSetProto: unique symbol;
3
- export declare const supportedQuirks: Map<Set<any>, typeof isSetProto>;
4
1
  export declare function isListInGrid<T>(grid: T[][], list: T[]): boolean;
5
2
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,wBAAgB,cAAc,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,CAanH;AAED,eAAO,MAAM,UAAU,eAAW,CAAC;AACnC,eAAO,MAAM,eAAe,kCAEjB,CAAC;AAGZ,wBAAgB,YAAY,CAAC,CAAC,EAC5B,IAAI,EAAE,CAAC,EAAE,EAAE,EACX,IAAI,EAAE,CAAC,EAAE,WAOV"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,wBAAgB,YAAY,CAAC,CAAC,EAC5B,IAAI,EAAE,CAAC,EAAE,EAAE,EACX,IAAI,EAAE,CAAC,EAAE,WAOV"}
package/dist/utils.js CHANGED
@@ -1,23 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.supportedQuirks = exports.isSetProto = void 0;
4
- exports.ofWhichIsProto = ofWhichIsProto;
5
3
  exports.isListInGrid = isListInGrid;
6
- function ofWhichIsProto(target, expect) {
7
- let current = Reflect.getPrototypeOf(target);
8
- while (current) {
9
- const correspondingSymbol = expect.get(current);
10
- if (correspondingSymbol) {
11
- return correspondingSymbol;
12
- }
13
- current = Reflect.getPrototypeOf(current);
14
- }
15
- return undefined;
16
- }
17
- exports.isSetProto = Symbol();
18
- exports.supportedQuirks = new Map([
19
- [Set.prototype, exports.isSetProto]
20
- ]);
21
4
  function isListInGrid(grid, list) {
22
5
  return grid.some((row) => {
23
6
  if (row.length !== list.length)
package/dist/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;;;;AAAA,wBAAmE,MAAc,EAAE,MAAiB;IAClG,IAAI,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IAE7C,OAAO,OAAO,EAAE,CAAC;QACf,MAAM,mBAAmB,GAAG,MAAM,CAAC,GAAG,CAAC,OAAY,CAAC,CAAC;QACrD,IAAI,mBAAmB,EAAE,CAAC;YACxB,OAAO,mBAAmB,CAAC;QAC7B,CAAC;QAED,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IAC5C,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAEY,QAAA,UAAU,GAAG,MAAM,EAAE,CAAC;AACtB,QAAA,eAAe,GAAG,IAAI,GAAG,CAAC;IACrC,CAAC,GAAG,CAAC,SAAS,EAAE,QAAA,UAAU,CAAC;CACnB,CAAC,CAAC;AAGZ,sBACE,IAAW,EACX,IAAS;IAET,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;QACvB,IAAI,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAE7C,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;;AAAA,sBACE,IAAW,EACX,IAAS;IAET,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;QACvB,IAAI,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAE7C,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;AACL,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "informa",
3
- "version": "1.0.2",
3
+ "version": "2.0.0",
4
4
  "description": "Informa's State Management",
5
5
  "keywords": [
6
6
  "state management",
package/src/high.ts CHANGED
@@ -2,6 +2,7 @@ import { getMetadataOf, isStatified, proxyMemoized, type Statify } from "./inter
2
2
  import { hook, selectorToRootAndPath, statifyObject, type StatifiableObj, type StatifiableProp, type Statified } from "./low.js";
3
3
  import { StatifiedArray } from "./quirks/array.js";
4
4
  import { BaseStatified, makeStatified } from "./quirks/basestatified.js";
5
+ import { StatifiedMap } from "./quirks/map.js";
5
6
  import { StatifiedSet } from "./quirks/set.js";
6
7
 
7
8
  export function stateInner<T extends StatifiableProp>(original: T): Statified<T> {
@@ -17,13 +18,20 @@ export function stateInner<T extends StatifiableProp>(original: T): Statified<T>
17
18
  const set = original as unknown as Set<any>;
18
19
  return new StatifiedSet(set[Symbol.iterator]().map(stateInner));
19
20
 
21
+ case Map.prototype:
22
+ const map = original as unknown as Map<any, any>;
23
+ return new StatifiedMap(map[Symbol.iterator]().map(([k, v]) => [k, stateInner(v)]));
24
+
20
25
  case Array.prototype:
21
26
  const array = original as unknown as any[];
22
27
  return new StatifiedArray(...array.map(stateInner));
23
28
 
24
29
  case StatifiedArray.prototype:
25
30
  case StatifiedSet.prototype:
26
- return original as StatifiedArray<StatifiableProp> | StatifiedSet<StatifiableProp>;
31
+ case StatifiedMap.prototype:
32
+ return original as StatifiedArray<StatifiableProp>
33
+ | StatifiedSet<StatifiableProp>
34
+ | StatifiedMap<any, StatifiableProp>;
27
35
 
28
36
  case Object.prototype:
29
37
  const newObj = original as unknown as Record<string | symbol, any>;
@@ -61,9 +69,9 @@ interface Listeners<T> {
61
69
  }
62
70
 
63
71
  interface ObjectListeners<K extends string | number | symbol, V> extends Listeners<Record<K, V>> {
64
- setProp?(v: V, i: string | symbol): void;
65
- replaceProp?(v: V, i: string | symbol): void;
66
- deleteProp?(v: V, i: string | symbol): void;
72
+ setProp?(p: string | symbol, v: V): void;
73
+ replaceProp?(p: string | symbol, v: V): void;
74
+ deleteProp?(p: string | symbol, v: V): void;
67
75
  }
68
76
 
69
77
  interface ArrayListeners<T> extends ObjectListeners<number, T> {
@@ -73,13 +81,20 @@ interface ArrayListeners<T> extends ObjectListeners<number, T> {
73
81
  lengthChanged?(): void;
74
82
  }
75
83
 
76
- interface SetListeners<T> extends ObjectListeners<keyof Set<T>, Set<T>[keyof Set<T>]> {
84
+ interface SetListeners<T> {
77
85
  addItem?(v: T): void;
78
86
  deleteItem?(v: T): void;
87
+ cardChanged?(): void;
88
+ }
89
+
90
+ interface MapListeners<K, V> {
91
+ setEntry?(k: K, v: V): void;
92
+ replaceEntry?(k: K, v: V): void;
93
+ deleteEntry?(k: K, v: V): void;
79
94
  sizeChanged?(): void;
80
95
  }
81
96
 
82
- export function on<T, K extends string | number | symbol, V, U>(
97
+ export function on<T, K extends string | number | symbol, V, U, K1, V1>(
83
98
  ...[selector, listeners, options]:
84
99
  [() => T, Listeners<T>]
85
100
  | [() => T, Listeners<T>, Options | undefined]
@@ -89,6 +104,8 @@ export function on<T, K extends string | number | symbol, V, U>(
89
104
  | [() => Statify<U[]>, ArrayListeners<U>, Options | undefined]
90
105
  | [() => Statify<Set<U>>, SetListeners<U>]
91
106
  | [() => Statify<Set<U>>, SetListeners<U>, Options | undefined]
107
+ | [() => Statify<Map<K1, V1>>, MapListeners<K1, V1>]
108
+ | [() => Statify<Map<K1, V1>>, MapListeners<K1, V1>, Options | undefined]
92
109
  ): () => void {
93
110
  const { path, stateRoot } = selectorToRootAndPath(selector as () => Statify<StatifiableObj>);
94
111
 
@@ -115,13 +132,13 @@ function onReplace<T>(s: () => T, l: (v: T) => void, o?: Options) {
115
132
  return on(s, { replace: l }, o);
116
133
  }
117
134
 
118
- function onReplaceProp<T extends Record<string | number | symbol, StatifiableProp>>(s: () => Statify<T>, l: (v: T[keyof T], k: keyof T) => void, o?: Options) {
135
+ function onReplaceProp<T extends Record<string | number | symbol, StatifiableProp>>(s: () => Statify<T>, l: (k: keyof T, v: T[keyof T]) => void, o?: Options) {
119
136
  return on(s, { replaceProp: l }, o);
120
137
  }
121
- function onDeleteProp<T extends Record<string | number | symbol, StatifiableProp>>(s: () => Statify<T>, l: (v: T[keyof T], k: keyof T) => void, o?: Options) {
138
+ function onDeleteProp<T extends Record<string | number | symbol, StatifiableProp>>(s: () => Statify<T>, l: (k: keyof T, v: T[keyof T]) => void, o?: Options) {
122
139
  return on(s, { deleteProp: l }, o);
123
140
  }
124
- function onSetProp<T extends Record<string | number | symbol, StatifiableProp>>(s: () => Statify<T>, l: (v: T[keyof T], k: keyof T) => void, o?: Options) {
141
+ function onSetProp<T extends Record<string | number | symbol, StatifiableProp>>(s: () => Statify<T>, l: (k: keyof T, v: T[keyof T]) => void, o?: Options) {
125
142
  return on(s, { setProp: l }, o);
126
143
  }
127
144
  function onLengthChanged(s: () => Statify<StatifiableObj[]>, l: () => void, o?: Options) {
@@ -136,8 +153,8 @@ function onSpliceOutElement<T extends StatifiableObj>(s: () => Statify<T[]>, l:
136
153
  function onReplaceElement<T extends StatifiableObj>(s: () => Statify<T[]>, l: (v: T, k: number) => void, o?: Options) {
137
154
  return on(s, { replaceElement: l }, o);
138
155
  }
139
- function onSizeChanged<T extends StatifiableObj>(s: () => Statify<Set<T>>, l: () => void, o?: Options) {
140
- return on(s, { sizeChanged: l }, o);
156
+ function onCardChanged(s: () => Statify<Set<StatifiableObj>>, l: () => void, o?: Options) {
157
+ return on(s, { cardChanged: l }, o);
141
158
  }
142
159
  function onAddItem<T extends StatifiableObj>(s: () => Statify<Set<T>>, l: (v: T) => void, o?: Options) {
143
160
  return on(s, { addItem: l }, o);
@@ -145,6 +162,18 @@ function onAddItem<T extends StatifiableObj>(s: () => Statify<Set<T>>, l: (v: T)
145
162
  function onDeleteItem<T extends StatifiableObj>(s: () => Statify<Set<T>>, l: (v: T) => void, o?: Options) {
146
163
  return on(s, { deleteItem: l }, o);
147
164
  }
165
+ function onSetEntry<K, V extends StatifiableObj>(s: () => Statify<Map<K, V>>, l: (k: K, v: V) => void, o?: Options) {
166
+ return on(s, { setEntry: l }, o);
167
+ }
168
+ function onReplaceEntry<K, V extends StatifiableObj>(s: () => Statify<Map<K, V>>, l: (k: K, v: V) => void, o?: Options) {
169
+ return on(s, { replaceEntry: l }, o);
170
+ }
171
+ function onDeleteEntry<K, V extends StatifiableObj>(s: () => Statify<Map<K, V>>, l: (k: K, v: V) => void, o?: Options) {
172
+ return on(s, { deleteEntry: l }, o);
173
+ }
174
+ function onSizeChanged(s: () => Statify<Map<any, StatifiableObj>>, l: () => void, o?: Options) {
175
+ return on(s, { sizeChanged: l }, o);
176
+ }
148
177
 
149
178
  export default {
150
179
  on,
@@ -157,13 +186,18 @@ export default {
157
186
  onSpliceInElement,
158
187
  onSpliceOutElement,
159
188
  onReplaceElement,
160
- onSizeChanged,
189
+ onCardChanged,
161
190
  onAddItem,
162
191
  onDeleteItem,
192
+ onSetEntry,
193
+ onReplaceEntry,
194
+ onDeleteEntry,
195
+ onSizeChanged,
163
196
  state,
164
197
 
165
198
  BaseStatified,
166
199
  makeStatified,
167
200
  StatifiedArray,
168
201
  StatifiedSet,
202
+ StatifiedMap,
169
203
  };
package/src/low.ts CHANGED
@@ -3,6 +3,7 @@ import { EventEmitter } from "node:events";
3
3
  import { StatifiedSet } from "./quirks/set.js";
4
4
  import { isListInGrid } from "./utils.js";
5
5
  import { EnumerableWeakMap } from "./EnumerableWeakMap.js";
6
+ import { StatifiedMap } from "./quirks/map.js";
6
7
 
7
8
  type ProxyEventEmitterEvents = {
8
9
  "set": [any],
@@ -18,9 +19,14 @@ type ProxyEventEmitterEvents = {
18
19
  "spliceOutElement": [any, number],
19
20
  "replaceElement": [any, number],
20
21
 
21
- "sizeChanged": [],
22
22
  "addItem": [any],
23
23
  "deleteItem": [any],
24
+ "cardChanged": [],
25
+
26
+ "setEntry": [any, any],
27
+ "replaceEntry": [any, any],
28
+ "deleteEntry": [any, any],
29
+ "sizeChanged": [],
24
30
  } & Record<string, never>;
25
31
 
26
32
  class Tree<T, U> {
@@ -143,8 +149,8 @@ export type StatifiableObj = { [k: string | symbol]: StatifiableProp } | {};
143
149
  export type Statified<T extends StatifiableProp> = T extends object
144
150
  ? T extends Set<infer U>
145
151
  ? StatifiedSet<Statified<U>>
146
- : T extends Set<any>
147
- ? never
152
+ : T extends Map<infer K, infer V>
153
+ ? StatifiedMap<K, Statified<V>>
148
154
  : Statify<{ [K in keyof T]: Statified<T[K]> }>
149
155
  : T;
150
156
 
@@ -182,63 +188,61 @@ export function statifyObject<T extends { [k: string | symbol]: Statified<Statif
182
188
 
183
189
  const result = Reflect.set(target, prop, newVal, recv);
184
190
 
185
- try {
186
- if (result) {
191
+ if (result) {
192
+ if (
193
+ oldVal !== newVal
194
+ && typeof newVal === "object"
195
+ && newVal != null
196
+ && newVal[statifySealKey]
197
+ ) {
198
+ const newValMetadata = getMetadataOf(newVal as Statify<StatifiableObj>);
199
+
200
+ hook(stateMetadata, prop, newValMetadata);
201
+ }
202
+
203
+ if (had) {
187
204
  if (
188
205
  oldVal !== newVal
189
- && typeof newVal === "object"
190
- && newVal != null
191
- && newVal[statifySealKey]
206
+ && typeof oldVal === "object"
207
+ && oldVal != null
208
+ && (oldVal as any)[statifySealKey]
192
209
  ) {
193
- const newValMetadata = getMetadataOf(newVal as Statify<StatifiableObj>);
210
+ const oldValMetadata = getMetadataOf(oldVal as Statify<StatifiableObj>);
194
211
 
195
- hook(stateMetadata, prop, newValMetadata);
212
+ unhook(stateMetadata, prop, oldValMetadata);
196
213
  }
197
214
 
198
- if (had) {
199
- if (
200
- oldVal !== newVal
201
- && typeof oldVal === "object"
202
- && oldVal != null
203
- && (oldVal as any)[statifySealKey]
204
- ) {
205
- const oldValMetadata = getMetadataOf(oldVal as Statify<StatifiableObj>);
206
-
207
- unhook(stateMetadata, prop, oldValMetadata);
208
- }
209
-
210
- if (
211
- typeof prop !== "symbol" &&
212
- Number.isInteger(Number(prop)) &&
213
- Array.isArray(target)
214
- ) {
215
- stateMetadata.emit('replaceElement', newVal, Number(prop));
216
- }
217
-
218
- stateMetadata.emit('replaceProp', newVal, prop);
215
+ if (
216
+ typeof prop !== "symbol" &&
217
+ Number.isInteger(Number(prop)) &&
218
+ Array.isArray(target)
219
+ ) {
220
+ stateMetadata.emit('replaceElement', newVal, Number(prop));
219
221
  }
220
222
 
221
- stateMetadata.emit('setProp', newVal, prop);
222
-
223
- const maybeEventEmitterAtVal = stateMetadata.eventEmitterAtPathMaybe([prop]);
224
- if (maybeEventEmitterAtVal) {
225
- if (had) {
226
- maybeEventEmitterAtVal.emit('replace', newVal);
227
- }
223
+ stateMetadata.emit('replaceProp', newVal, prop);
224
+ }
228
225
 
229
- maybeEventEmitterAtVal.emit('set', newVal);
226
+ stateMetadata.emit('setProp', newVal, prop);
230
227
 
231
- emitDescendantPathEvents(
232
- stateMetadata,
233
- [prop],
234
- newVal,
235
- had,
236
- );
228
+ const maybeEventEmitterAtVal = stateMetadata.eventEmitterAtPathMaybe([prop]);
229
+ if (maybeEventEmitterAtVal) {
230
+ if (had) {
231
+ maybeEventEmitterAtVal.emit('replace', newVal);
237
232
  }
233
+
234
+ maybeEventEmitterAtVal.emit('set', newVal);
235
+
236
+ emitDescendantPathEvents(
237
+ stateMetadata,
238
+ [prop],
239
+ newVal,
240
+ had,
241
+ );
238
242
  }
239
- } finally {
240
- return result;
241
243
  }
244
+
245
+ return result;
242
246
  },
243
247
 
244
248
  deleteProperty(target, prop) {
@@ -0,0 +1,58 @@
1
+ import { exitProxySymbol, globalStateMode, setMetadataOf, Statify, statifySealKey } from "../internals.js";
2
+ import { ExitProxyValue, StateMetadata, StatifiableObj } from "../low.js";
3
+
4
+ export class StatifiedMap<K, V> extends Map<K, V> implements Statify<Map<K, V>> {
5
+ [statifySealKey]: true = true;
6
+ get [exitProxySymbol](): ExitProxyValue {
7
+ if (globalStateMode === "extract-proxy-path") {
8
+ return { path: [], stateRoot: this as Statify<StatifiableObj> };
9
+ }
10
+ throw new Error("exitProxySymbol is not available in normal mode");
11
+ }
12
+
13
+ #metadata: StateMetadata;
14
+
15
+ constructor(args?: Iterable<[K, V]> | null) {
16
+ super(args);
17
+
18
+ this.#metadata = setMetadataOf(this, new StateMetadata());
19
+ }
20
+
21
+ clear(): void {
22
+ const entries = [...this.entries()];
23
+ super.clear();
24
+
25
+ for (const [key, value] of entries) {
26
+ this.#metadata.emit("deleteEntry", key, value);
27
+ }
28
+
29
+ this.#metadata.emit("sizeChanged");
30
+ }
31
+
32
+ delete(key: K): boolean {
33
+ const value = super.get(key);
34
+ if (super.delete(key)) {
35
+ this.#metadata.emit("deleteEntry", key, value);
36
+ this.#metadata.emit("sizeChanged");
37
+ return true;
38
+ }
39
+
40
+ return false;
41
+ }
42
+
43
+ set(key: K, value: V): this {
44
+ if (super.get(key) === value) return this;
45
+
46
+ const had = super.has(key);
47
+ super.set(key, value);
48
+
49
+ if (had) {
50
+ this.#metadata.emit("replaceEntry", key, value);
51
+ }
52
+
53
+ this.#metadata.emit("setEntry", key, value);
54
+ this.#metadata.emit("sizeChanged");
55
+
56
+ return this;
57
+ }
58
+ }
package/src/quirks/set.ts CHANGED
@@ -1,9 +1,14 @@
1
- import { exitProxySymbol, setMetadataOf, statifySealKey, type Statify } from "../internals.js";
2
- import { StateMetadata, type ExitProxyValue, type StatifiableProp } from "../low.js";
1
+ import { exitProxySymbol, globalStateMode, setMetadataOf, statifySealKey, type Statify } from "../internals.js";
2
+ import { StateMetadata, StatifiableObj, type ExitProxyValue, type StatifiableProp } from "../low.js";
3
3
 
4
4
  export class StatifiedSet<T extends StatifiableProp> extends Set<T> implements Statify<Set<T>> {
5
5
  [statifySealKey]: true = true;
6
- declare [exitProxySymbol]: ExitProxyValue;
6
+ get [exitProxySymbol](): ExitProxyValue {
7
+ if (globalStateMode === "extract-proxy-path") {
8
+ return { path: [], stateRoot: this as Statify<StatifiableObj> };
9
+ }
10
+ throw new Error("exitProxySymbol is not available in normal mode");
11
+ }
7
12
 
8
13
  #metadata: StateMetadata;
9
14
 
@@ -17,7 +22,7 @@ export class StatifiedSet<T extends StatifiableProp> extends Set<T> implements S
17
22
  if (!super.has(value)) {
18
23
  super.add(value);
19
24
  this.#metadata.emit("addItem", value);
20
- this.#metadata.emit("sizeChanged");
25
+ this.#metadata.emit("cardChanged");
21
26
  }
22
27
 
23
28
  return this;
@@ -32,14 +37,14 @@ export class StatifiedSet<T extends StatifiableProp> extends Set<T> implements S
32
37
  this.#metadata.emit("deleteItem", value);
33
38
  }
34
39
  if (oldValues.length > 0) {
35
- this.#metadata.emit("sizeChanged");
40
+ this.#metadata.emit("cardChanged");
36
41
  }
37
42
  }
38
43
 
39
44
  delete(value: T): boolean {
40
45
  if (super.delete(value)) {
41
46
  this.#metadata.emit("deleteItem", value);
42
- this.#metadata.emit("sizeChanged");
47
+ this.#metadata.emit("cardChanged");
43
48
  return true;
44
49
  }
45
50
 
package/src/test.ts CHANGED
@@ -47,3 +47,11 @@ const w = new Wayland();
47
47
  $.onSet(() => w.state, (v) => console.log("asdf awawa!!", v));
48
48
 
49
49
  w.state = 5;
50
+
51
+ const map = $.state<Map<number, string>>(new Map());
52
+ $.onSetEntry(() => map, (k, v) => console.log("set", k, v));
53
+ $.onReplaceEntry(() => map, (k, v) => console.log("replace", k, v));
54
+
55
+ map.set(1, "");
56
+ map.set(1, "asdf");
57
+ map.set(1, "asdf");
package/src/utils.ts CHANGED
@@ -1,24 +1,3 @@
1
- export function ofWhichIsProto<T extends object, U extends symbol>(target: object, expect: Map<T, U>): U | undefined {
2
- let current = Reflect.getPrototypeOf(target);
3
-
4
- while (current) {
5
- const correspondingSymbol = expect.get(current as T);
6
- if (correspondingSymbol) {
7
- return correspondingSymbol;
8
- }
9
-
10
- current = Reflect.getPrototypeOf(current);
11
- }
12
-
13
- return undefined;
14
- }
15
-
16
- export const isSetProto = Symbol();
17
- export const supportedQuirks = new Map([
18
- [Set.prototype, isSetProto]
19
- ] as const);
20
-
21
-
22
1
  export function isListInGrid<T>(
23
2
  grid: T[][],
24
3
  list: T[],
package/dist/clone.d.ts DELETED
@@ -1,2 +0,0 @@
1
- export declare function clone<T>(v: T): T;
2
- //# sourceMappingURL=clone.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"clone.d.ts","sourceRoot":"","sources":["../src/clone.ts"],"names":[],"mappings":"AAGA,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAmChC"}
package/dist/clone.js DELETED
@@ -1,30 +0,0 @@
1
- import { StatifiedArray } from "./quirks/array.js";
2
- import { StatifiedSet } from "./quirks/set.js";
3
- export function clone(v) {
4
- if (typeof v === 'function') {
5
- throw new Error();
6
- }
7
- if (typeof v !== 'object' || v === null) {
8
- return v;
9
- }
10
- switch (Reflect.getPrototypeOf(v)) {
11
- case Set.prototype:
12
- const set = v;
13
- return new Set(set[Symbol.iterator]().map(clone));
14
- case Array.prototype:
15
- const array = v;
16
- return [...array.map(clone)];
17
- case StatifiedArray.prototype:
18
- case StatifiedSet.prototype:
19
- return v;
20
- case Object.prototype:
21
- const newObj = v;
22
- return Object.fromEntries(Object.entries(newObj)
23
- .map(([k, v]) => [k, clone(v)]));
24
- }
25
- if (Array.isArray(v)) {
26
- return [...v.map(clone)];
27
- }
28
- throw new Error(`Cannot clone object with prototype`);
29
- }
30
- //# sourceMappingURL=clone.js.map
package/dist/clone.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"clone.js","sourceRoot":"","sources":["../src/clone.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,MAAM,UAAU,KAAK,CAAI,CAAI;IAC3B,IAAI,OAAO,CAAC,KAAK,UAAU,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,EAAE,CAAC;IACpB,CAAC;IAED,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;QACxC,OAAO,CAAC,CAAC;IACX,CAAC;IAED,QAAQ,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;QAClC,KAAK,GAAG,CAAC,SAAS;YAChB,MAAM,GAAG,GAAG,CAAwB,CAAC;YACrC,OAAO,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAM,CAAC;QAEzD,KAAK,KAAK,CAAC,SAAS;YAClB,MAAM,KAAK,GAAG,CAAqB,CAAC;YACpC,OAAO,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAM,CAAC;QAEpC,KAAK,cAAc,CAAC,SAAS,CAAC;QAC9B,KAAK,YAAY,CAAC,SAAS;YACzB,OAAO,CAAC,CAAC;QAEX,KAAK,MAAM,CAAC,SAAS;YACnB,MAAM,MAAM,GAAG,CAA4C,CAAC;YAC5D,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;iBACnB,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAC7B,CAAC;IACX,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACrB,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAM,CAAC;IAChC,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;AACxD,CAAC"}