informa 1.0.1 → 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
@@ -1,5 +1,9 @@
1
1
  import { type Statify } from "./internals.js";
2
2
  import { type StatifiableObj, type StatifiableProp, type Statified } from "./low.js";
3
+ import { StatifiedArray } from "./quirks/array.js";
4
+ import { makeStatified } from "./quirks/basestatified.js";
5
+ import { StatifiedMap } from "./quirks/map.js";
6
+ import { StatifiedSet } from "./quirks/set.js";
3
7
  export declare function stateInner<T extends StatifiableProp>(original: T): Statified<T>;
4
8
  export declare function state<T extends StatifiableObj>(original: T): Statified<T>;
5
9
  interface Options {
@@ -9,9 +13,9 @@ interface Listeners<T> {
9
13
  replace?(v: T): void;
10
14
  }
11
15
  interface ObjectListeners<K extends string | number | symbol, V> extends Listeners<Record<K, V>> {
12
- setProp?(v: V, i: string | symbol): void;
13
- replaceProp?(v: V, i: string | symbol): void;
14
- 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;
15
19
  }
16
20
  interface ArrayListeners<T> extends ObjectListeners<number, T> {
17
21
  spliceInElement?(v: T, i: number): void;
@@ -19,27 +23,37 @@ interface ArrayListeners<T> extends ObjectListeners<number, T> {
19
23
  replaceElement?(v: T, i: number): void;
20
24
  lengthChanged?(): void;
21
25
  }
22
- interface SetListeners<T> extends ObjectListeners<keyof Set<T>, Set<T>[keyof Set<T>]> {
26
+ interface SetListeners<T> {
23
27
  addItem?(v: T): void;
24
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;
25
35
  sizeChanged?(): void;
26
36
  }
27
- 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]: [
28
38
  () => T,
29
39
  Listeners<T>
30
- ] | [() => 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;
31
41
  declare function onSet<T>(s: () => T, l: (v: T) => void, o?: Options): () => void;
32
42
  declare function onReplace<T>(s: () => T, l: (v: T) => void, o?: Options): () => void;
33
- 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;
34
- 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;
35
- 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;
36
46
  declare function onLengthChanged(s: () => Statify<StatifiableObj[]>, l: () => void, o?: Options): () => void;
37
47
  declare function onSpliceInElement<T extends StatifiableObj>(s: () => Statify<T[]>, l: (v: T, k: number) => void, o?: Options): () => void;
38
48
  declare function onSpliceOutElement<T extends StatifiableObj>(s: () => Statify<T[]>, l: (v: T, k: number) => void, o?: Options): () => void;
39
49
  declare function onReplaceElement<T extends StatifiableObj>(s: () => Statify<T[]>, l: (v: T, k: number) => void, o?: Options): () => void;
40
- 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;
41
51
  declare function onAddItem<T extends StatifiableObj>(s: () => Statify<Set<T>>, l: (v: T) => void, o?: Options): () => void;
42
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;
43
57
  declare const _default: {
44
58
  on: typeof on;
45
59
  onSet: typeof onSet;
@@ -51,10 +65,19 @@ declare const _default: {
51
65
  onSpliceInElement: typeof onSpliceInElement;
52
66
  onSpliceOutElement: typeof onSpliceOutElement;
53
67
  onReplaceElement: typeof onReplaceElement;
54
- onSizeChanged: typeof onSizeChanged;
68
+ onCardChanged: typeof onCardChanged;
55
69
  onAddItem: typeof onAddItem;
56
70
  onDeleteItem: typeof onDeleteItem;
71
+ onSetEntry: typeof onSetEntry;
72
+ onReplaceEntry: typeof onReplaceEntry;
73
+ onDeleteEntry: typeof onDeleteEntry;
74
+ onSizeChanged: typeof onSizeChanged;
57
75
  state: typeof state;
76
+ BaseStatified: ObjectConstructor & (new (...args: any[]) => Record<string | symbol, any>);
77
+ makeStatified: typeof makeStatified;
78
+ StatifiedArray: typeof StatifiedArray;
79
+ StatifiedSet: typeof StatifiedSet;
80
+ StatifiedMap: typeof StatifiedMap;
58
81
  };
59
82
  export default _default;
60
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
@@ -6,6 +6,8 @@ exports.on = on;
6
6
  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
+ const basestatified_js_1 = require("./quirks/basestatified.js");
10
+ const map_js_1 = require("./quirks/map.js");
9
11
  const set_js_1 = require("./quirks/set.js");
10
12
  function stateInner(original) {
11
13
  if (typeof original !== 'object' || original === null) {
@@ -18,11 +20,15 @@ function stateInner(original) {
18
20
  case Set.prototype:
19
21
  const set = original;
20
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)]));
21
26
  case Array.prototype:
22
27
  const array = original;
23
28
  return new array_js_1.StatifiedArray(...array.map(stateInner));
24
29
  case array_js_1.StatifiedArray.prototype:
25
30
  case set_js_1.StatifiedSet.prototype:
31
+ case map_js_1.StatifiedMap.prototype:
26
32
  return original;
27
33
  case Object.prototype:
28
34
  const newObj = original;
@@ -84,8 +90,8 @@ function onSpliceOutElement(s, l, o) {
84
90
  function onReplaceElement(s, l, o) {
85
91
  return on(s, { replaceElement: l }, o);
86
92
  }
87
- function onSizeChanged(s, l, o) {
88
- return on(s, { sizeChanged: l }, o);
93
+ function onCardChanged(s, l, o) {
94
+ return on(s, { cardChanged: l }, o);
89
95
  }
90
96
  function onAddItem(s, l, o) {
91
97
  return on(s, { addItem: l }, o);
@@ -93,6 +99,18 @@ function onAddItem(s, l, o) {
93
99
  function onDeleteItem(s, l, o) {
94
100
  return on(s, { deleteItem: l }, o);
95
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
+ }
96
114
  exports.default = {
97
115
  on,
98
116
  onSet,
@@ -104,9 +122,18 @@ exports.default = {
104
122
  onSpliceInElement,
105
123
  onSpliceOutElement,
106
124
  onReplaceElement,
107
- onSizeChanged,
125
+ onCardChanged,
108
126
  onAddItem,
109
127
  onDeleteItem,
128
+ onSetEntry,
129
+ onReplaceEntry,
130
+ onDeleteEntry,
131
+ onSizeChanged,
110
132
  state,
133
+ BaseStatified: basestatified_js_1.BaseStatified,
134
+ makeStatified: basestatified_js_1.makeStatified,
135
+ StatifiedArray: array_js_1.StatifiedArray,
136
+ StatifiedSet: set_js_1.StatifiedSet,
137
+ StatifiedMap: map_js_1.StatifiedMap,
111
138
  };
112
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":"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"}
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.StatifiedArray = void 0;
4
4
  const internals_js_1 = require("../internals.js");
5
5
  const basestatified_js_1 = require("./basestatified.js");
6
- const StatifiableOrgArray = (0, basestatified_js_1.MakeStatified)(Array);
6
+ const StatifiableOrgArray = (0, basestatified_js_1.makeStatified)(Array);
7
7
  class StatifiedArray extends StatifiableOrgArray {
8
8
  [internals_js_1.statifySealKey] = true;
9
9
  #metadata;
@@ -1,5 +1,5 @@
1
1
  type ClassType<T extends any[] = any[], U = object> = new (...args: T) => U;
2
- export declare function MakeStatified<V extends ClassType<T, U>, T extends any[], U extends object>(OriginalClass: V): V & ClassType<T, Record<string | symbol, any>>;
2
+ export declare function makeStatified<V extends ClassType<T, U>, T extends any[], U extends object>(OriginalClass: V): V & ClassType<T, Record<string | symbol, any>>;
3
3
  export declare const BaseStatified: ObjectConstructor & ClassType<any[], Record<string | symbol, any>>;
4
4
  export {};
5
5
  //# sourceMappingURL=basestatified.d.ts.map
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.BaseStatified = void 0;
4
- exports.MakeStatified = MakeStatified;
4
+ exports.makeStatified = makeStatified;
5
5
  const internals_js_1 = require("../internals.js");
6
6
  const low_js_1 = require("../low.js");
7
7
  const classMapMemo = new WeakMap();
@@ -74,7 +74,7 @@ function getBlanketPrototype(actualProto) {
74
74
  return blanket;
75
75
  }
76
76
  //
77
- function MakeStatified(OriginalClass) {
77
+ function makeStatified(OriginalClass) {
78
78
  const maybeMemoed = classMapMemo.get(OriginalClass);
79
79
  if (maybeMemoed)
80
80
  return maybeMemoed;
@@ -117,5 +117,5 @@ function MakeStatified(OriginalClass) {
117
117
  classMapMemo.set(OriginalClass, Statified);
118
118
  return Statified; // & ClassType<T, Record<string | symbol, any>>;
119
119
  }
120
- exports.BaseStatified = MakeStatified(Object);
120
+ exports.BaseStatified = makeStatified(Object);
121
121
  //# sourceMappingURL=basestatified.js.map
@@ -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.1",
3
+ "version": "2.0.0",
4
4
  "description": "Informa's State Management",
5
5
  "keywords": [
6
6
  "state management",
package/src/high.ts CHANGED
@@ -1,6 +1,8 @@
1
1
  import { getMetadataOf, isStatified, proxyMemoized, type Statify } from "./internals.js";
2
2
  import { hook, selectorToRootAndPath, statifyObject, type StatifiableObj, type StatifiableProp, type Statified } from "./low.js";
3
3
  import { StatifiedArray } from "./quirks/array.js";
4
+ import { BaseStatified, makeStatified } from "./quirks/basestatified.js";
5
+ import { StatifiedMap } from "./quirks/map.js";
4
6
  import { StatifiedSet } from "./quirks/set.js";
5
7
 
6
8
  export function stateInner<T extends StatifiableProp>(original: T): Statified<T> {
@@ -16,13 +18,20 @@ export function stateInner<T extends StatifiableProp>(original: T): Statified<T>
16
18
  const set = original as unknown as Set<any>;
17
19
  return new StatifiedSet(set[Symbol.iterator]().map(stateInner));
18
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
+
19
25
  case Array.prototype:
20
26
  const array = original as unknown as any[];
21
27
  return new StatifiedArray(...array.map(stateInner));
22
28
 
23
29
  case StatifiedArray.prototype:
24
30
  case StatifiedSet.prototype:
25
- return original as StatifiedArray<StatifiableProp> | StatifiedSet<StatifiableProp>;
31
+ case StatifiedMap.prototype:
32
+ return original as StatifiedArray<StatifiableProp>
33
+ | StatifiedSet<StatifiableProp>
34
+ | StatifiedMap<any, StatifiableProp>;
26
35
 
27
36
  case Object.prototype:
28
37
  const newObj = original as unknown as Record<string | symbol, any>;
@@ -60,9 +69,9 @@ interface Listeners<T> {
60
69
  }
61
70
 
62
71
  interface ObjectListeners<K extends string | number | symbol, V> extends Listeners<Record<K, V>> {
63
- setProp?(v: V, i: string | symbol): void;
64
- replaceProp?(v: V, i: string | symbol): void;
65
- 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;
66
75
  }
67
76
 
68
77
  interface ArrayListeners<T> extends ObjectListeners<number, T> {
@@ -72,13 +81,20 @@ interface ArrayListeners<T> extends ObjectListeners<number, T> {
72
81
  lengthChanged?(): void;
73
82
  }
74
83
 
75
- interface SetListeners<T> extends ObjectListeners<keyof Set<T>, Set<T>[keyof Set<T>]> {
84
+ interface SetListeners<T> {
76
85
  addItem?(v: T): void;
77
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;
78
94
  sizeChanged?(): void;
79
95
  }
80
96
 
81
- 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>(
82
98
  ...[selector, listeners, options]:
83
99
  [() => T, Listeners<T>]
84
100
  | [() => T, Listeners<T>, Options | undefined]
@@ -88,6 +104,8 @@ export function on<T, K extends string | number | symbol, V, U>(
88
104
  | [() => Statify<U[]>, ArrayListeners<U>, Options | undefined]
89
105
  | [() => Statify<Set<U>>, SetListeners<U>]
90
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]
91
109
  ): () => void {
92
110
  const { path, stateRoot } = selectorToRootAndPath(selector as () => Statify<StatifiableObj>);
93
111
 
@@ -114,13 +132,13 @@ function onReplace<T>(s: () => T, l: (v: T) => void, o?: Options) {
114
132
  return on(s, { replace: l }, o);
115
133
  }
116
134
 
117
- 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) {
118
136
  return on(s, { replaceProp: l }, o);
119
137
  }
120
- 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) {
121
139
  return on(s, { deleteProp: l }, o);
122
140
  }
123
- 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) {
124
142
  return on(s, { setProp: l }, o);
125
143
  }
126
144
  function onLengthChanged(s: () => Statify<StatifiableObj[]>, l: () => void, o?: Options) {
@@ -135,8 +153,8 @@ function onSpliceOutElement<T extends StatifiableObj>(s: () => Statify<T[]>, l:
135
153
  function onReplaceElement<T extends StatifiableObj>(s: () => Statify<T[]>, l: (v: T, k: number) => void, o?: Options) {
136
154
  return on(s, { replaceElement: l }, o);
137
155
  }
138
- function onSizeChanged<T extends StatifiableObj>(s: () => Statify<Set<T>>, l: () => void, o?: Options) {
139
- return on(s, { sizeChanged: l }, o);
156
+ function onCardChanged(s: () => Statify<Set<StatifiableObj>>, l: () => void, o?: Options) {
157
+ return on(s, { cardChanged: l }, o);
140
158
  }
141
159
  function onAddItem<T extends StatifiableObj>(s: () => Statify<Set<T>>, l: (v: T) => void, o?: Options) {
142
160
  return on(s, { addItem: l }, o);
@@ -144,6 +162,18 @@ function onAddItem<T extends StatifiableObj>(s: () => Statify<Set<T>>, l: (v: T)
144
162
  function onDeleteItem<T extends StatifiableObj>(s: () => Statify<Set<T>>, l: (v: T) => void, o?: Options) {
145
163
  return on(s, { deleteItem: l }, o);
146
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
+ }
147
177
 
148
178
  export default {
149
179
  on,
@@ -156,8 +186,18 @@ export default {
156
186
  onSpliceInElement,
157
187
  onSpliceOutElement,
158
188
  onReplaceElement,
159
- onSizeChanged,
189
+ onCardChanged,
160
190
  onAddItem,
161
191
  onDeleteItem,
192
+ onSetEntry,
193
+ onReplaceEntry,
194
+ onDeleteEntry,
195
+ onSizeChanged,
162
196
  state,
197
+
198
+ BaseStatified,
199
+ makeStatified,
200
+ StatifiedArray,
201
+ StatifiedSet,
202
+ StatifiedMap,
163
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) {
@@ -1,8 +1,8 @@
1
1
  import { exitProxySymbol, getMetadataOf, setMetadataOf, statifySealKey, type Statify } from "../internals.js";
2
2
  import { StateMetadata, type ExitProxyValue, type StatifiableProp } from "../low.js";
3
- import { MakeStatified } from "./basestatified.js";
3
+ import { makeStatified } from "./basestatified.js";
4
4
 
5
- const StatifiableOrgArray = MakeStatified(Array);
5
+ const StatifiableOrgArray = makeStatified(Array);
6
6
 
7
7
  export class StatifiedArray<T extends StatifiableProp>
8
8
  extends StatifiableOrgArray<T> implements Array<T>, Statify<T[]>
@@ -125,7 +125,7 @@ function getBlanketPrototype(actualProto: object) {
125
125
  }
126
126
  //
127
127
 
128
- export function MakeStatified<
128
+ export function makeStatified<
129
129
  V extends ClassType<T, U>,
130
130
  T extends any[],
131
131
  U extends object,
@@ -191,4 +191,4 @@ export function MakeStatified<
191
191
  return Statified as V; // & ClassType<T, Record<string | symbol, any>>;
192
192
  }
193
193
 
194
- export const BaseStatified = MakeStatified(Object);
194
+ export const BaseStatified = makeStatified(Object);
@@ -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"}