recursive-set 4.0.0 → 5.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 +47 -18
- package/dist/cjs/index.js +55 -79
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/index.d.ts +6 -16
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +55 -79
- package/dist/esm/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -13,18 +13,18 @@
|
|
|
13
13
|
|
|
14
14
|
A mathematical set implementation designed for **Theoretical Computer Science**, **SAT-Solvers**, and **Graph Theory**. Unlike native JavaScript `Set`, `RecursiveSet` enforces **Structural Equality** (ZFC semantics) and supports deep nesting.
|
|
15
15
|
|
|
16
|
-
**
|
|
17
|
-
* **
|
|
18
|
-
* **
|
|
19
|
-
* **
|
|
16
|
+
**v5.0.0 Update:** Now featuring **"Freeze-on-Hash"** lifecycle management.
|
|
17
|
+
* **Safety First**: Sets automatically become **immutable** (frozen) once used as a key or member of another set. No more corrupted hash codes!
|
|
18
|
+
* **High Performance**: Backed by **Sorted Arrays** and FNV-1a hashing. 5x - 10x faster than tree-based implementations for typical *N* < 1000.
|
|
19
|
+
* **O(1) Equality Checks**: Aggressive caching allows for instant comparisons of deep structures.
|
|
20
20
|
|
|
21
21
|
---
|
|
22
22
|
|
|
23
23
|
## Features
|
|
24
24
|
|
|
25
25
|
* **🔢 Strict Structural Equality:** `{1, 2}` is equal to `{2, 1}`.
|
|
26
|
+
* **❄️ Freeze-on-Hash:** Mutable during construction, immutable during usage. Prevents subtle reference bugs.
|
|
26
27
|
* **📦 Deeply Recursive:** Sets can contain Sets. Ideal for Power Sets.
|
|
27
|
-
* **⚡ High Performance:** Optimized for V8 (Chrome/Node) using flat memory layouts and binary search.
|
|
28
28
|
* **📐 Tuples & Arrays:** Native support for `Tuple` class or standard JS Arrays `[a, b]` as elements.
|
|
29
29
|
* **🔒 Type Safe:** Fully strict TypeScript implementation. No `any` casts.
|
|
30
30
|
* **🛡️ Deterministic:** Hashing is order-independent for Sets and order-dependent for Sequences.
|
|
@@ -39,27 +39,50 @@ npm install recursive-set
|
|
|
39
39
|
|
|
40
40
|
---
|
|
41
41
|
## Quickstart
|
|
42
|
+
|
|
43
|
+
### 1. Basic Usage
|
|
42
44
|
```typescript
|
|
43
45
|
import { RecursiveSet, Tuple } from "recursive-set";
|
|
44
46
|
|
|
45
|
-
//
|
|
47
|
+
// Sets of primitives
|
|
46
48
|
const states = new RecursiveSet<string>();
|
|
47
49
|
states.add("q0").add("q1");
|
|
48
50
|
|
|
49
|
-
//
|
|
50
|
-
// Recursion requires explicit typing!
|
|
51
|
+
// Sets of Sets (Partitioning)
|
|
51
52
|
const partition = new RecursiveSet<RecursiveSet<string>>();
|
|
52
53
|
partition.add(states); // {{q0, q1}}
|
|
53
54
|
|
|
54
|
-
//
|
|
55
|
-
const edge = new Tuple("q0", "q1");
|
|
55
|
+
// Tuples (Ordered Pairs / Edges)
|
|
56
|
+
const edge = new Tuple("q0", "q1");
|
|
56
57
|
// or simply: const edge = ["q0", "q1"];
|
|
57
58
|
|
|
58
59
|
const transitions = new RecursiveSet<Tuple<[string, string]>>();
|
|
59
60
|
transitions.add(edge);
|
|
60
61
|
|
|
61
62
|
console.log(partition.toString()); // {{q0, q1}}
|
|
62
|
-
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
### 2. The Lifecycle (Mutable -> Frozen)
|
|
66
|
+
|
|
67
|
+
**New in v5:** To ensure mathematical correctness, a set cannot be modified once it has been hashed (e.g., added to another set).
|
|
68
|
+
|
|
69
|
+
```typescript
|
|
70
|
+
const A = new RecursiveSet(1, 2);
|
|
71
|
+
const B = new RecursiveSet(A);
|
|
72
|
+
// B hashes A to store it.
|
|
73
|
+
// A is now FROZEN to ensure B's integrity.
|
|
74
|
+
|
|
75
|
+
console.log(B.has(A)); // true
|
|
76
|
+
|
|
77
|
+
try {
|
|
78
|
+
A.add(3); // 💥 Throws Error: Cannot add() to a frozen RecursiveSet
|
|
79
|
+
} catch (e) {
|
|
80
|
+
console.log("A is immutable now!");
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
// Fix: Create a mutable copy ("Forking")
|
|
84
|
+
const C = A.mutableCopy();
|
|
85
|
+
C.add(3); // Works!
|
|
63
86
|
```
|
|
64
87
|
|
|
65
88
|
---
|
|
@@ -77,6 +100,10 @@ new RecursiveSet<T>(...elements: T[])
|
|
|
77
100
|
|
|
78
101
|
### Methods
|
|
79
102
|
|
|
103
|
+
**Lifecycle Management:**
|
|
104
|
+
* `mutableCopy(): RecursiveSet<T>` – Creates a fresh, mutable clone of the set (O(N)). Use this if you need to modify a frozen set.
|
|
105
|
+
* `clone(): RecursiveSet<T>` – Alias for mutableCopy.
|
|
106
|
+
|
|
80
107
|
**Mutation:**
|
|
81
108
|
* `add(element: T): this` – Insert element (O(N) worst case, O(1) append).
|
|
82
109
|
* `remove(element: T): this` – Remove element.
|
|
@@ -99,11 +126,12 @@ new RecursiveSet<T>(...elements: T[])
|
|
|
99
126
|
|
|
100
127
|
**Properties:**
|
|
101
128
|
* `size: number` – Cardinality.
|
|
102
|
-
* `hashCode: number` – The cached hash
|
|
129
|
+
* `hashCode: number` – The cached hash. Accessing this property freezes the set.
|
|
130
|
+
* `isFrozen: boolean` – Check if the set is read-only.
|
|
103
131
|
|
|
104
132
|
---
|
|
105
133
|
|
|
106
|
-
## Performance Notes
|
|
134
|
+
## Performance Notes
|
|
107
135
|
|
|
108
136
|
**Why Sorted Arrays?**
|
|
109
137
|
For sets with $N < 1000$ (common in logic puzzles, N-Queens, graphs), the overhead of allocating tree nodes (v2/v3) dominates runtime. Sorted Arrays exploit **CPU Cache Lines**.
|
|
@@ -119,12 +147,12 @@ For sets with $N < 1000$ (common in logic puzzles, N-Queens, graphs), the overhe
|
|
|
119
147
|
|
|
120
148
|
---
|
|
121
149
|
|
|
122
|
-
## Breaking Changes in
|
|
150
|
+
## Breaking Changes in v5.0
|
|
123
151
|
|
|
124
|
-
1. **
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
152
|
+
1. **Freeze-on-Hash Semantics:** To guarantee mathematical correctness, sets now transition to an **immutable state** once their `hashCode` is computed (which happens automatically when added to another `RecursiveSet` or used as a Map key).
|
|
153
|
+
* *Old Behavior:* Modifying a hashed set was possible but resulted in corrupted hash codes and lookup failures.
|
|
154
|
+
* *New Behavior:* Calling `add()`, `remove()` or `clear()` on a hashed set throws an `Error`.
|
|
155
|
+
* *Migration:* Use `mutableCopy()` to create a modifiable clone if you need to evolve a state that has already been stored.
|
|
128
156
|
|
|
129
157
|
---
|
|
130
158
|
|
|
@@ -137,6 +165,7 @@ git clone https://github.com/cstrerath/recursive-set.git
|
|
|
137
165
|
npm install
|
|
138
166
|
npm run build
|
|
139
167
|
npx tsx test/test.ts
|
|
168
|
+
npx tsx test/nqueens.ts
|
|
140
169
|
```
|
|
141
170
|
|
|
142
171
|
---
|
package/dist/cjs/index.js
CHANGED
|
@@ -1,102 +1,84 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
3
|
* @module recursive-set
|
|
4
|
-
* High-Performance
|
|
5
|
-
* Optimized for small sets, structural equality, and deterministic hashing.
|
|
4
|
+
* High-Performance Recursive Set with "Freeze-on-Hash" semantics.
|
|
6
5
|
*/
|
|
7
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
7
|
exports.RecursiveSet = exports.Tuple = void 0;
|
|
9
8
|
exports.emptySet = emptySet;
|
|
10
9
|
exports.singleton = singleton;
|
|
11
10
|
exports.fromIterable = fromIterable;
|
|
12
|
-
// === HASHING ENGINE ===
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
* Constants inlined for V8 optimization.
|
|
16
|
-
*/
|
|
11
|
+
// === HASHING ENGINE (FNV-1a) ===
|
|
12
|
+
const FNV_PRIME = 16777619;
|
|
13
|
+
const FNV_OFFSET = 2166136261;
|
|
17
14
|
function hashString(str) {
|
|
18
|
-
let hash =
|
|
19
|
-
|
|
15
|
+
let hash = FNV_OFFSET;
|
|
16
|
+
const len = str.length;
|
|
17
|
+
for (let i = 0; i < len; i++) {
|
|
20
18
|
hash ^= str.charCodeAt(i);
|
|
21
|
-
hash = Math.imul(hash,
|
|
19
|
+
hash = Math.imul(hash, FNV_PRIME);
|
|
22
20
|
}
|
|
23
21
|
return hash >>> 0;
|
|
24
22
|
}
|
|
25
|
-
/**
|
|
26
|
-
* Universal Hash Function.
|
|
27
|
-
* Calculates deterministic hashes for Primitives, Sequences (Order Dependent), and Sets.
|
|
28
|
-
*/
|
|
29
23
|
function hashValue(val) {
|
|
30
24
|
if (typeof val === 'string')
|
|
31
25
|
return hashString(val);
|
|
32
|
-
if (typeof val === 'number')
|
|
33
|
-
|
|
26
|
+
if (typeof val === 'number') {
|
|
27
|
+
let hash = FNV_OFFSET;
|
|
28
|
+
hash ^= (val | 0);
|
|
29
|
+
hash = Math.imul(hash, FNV_PRIME);
|
|
30
|
+
return hash >>> 0;
|
|
31
|
+
}
|
|
34
32
|
// Fast Path: Objects with cached hash
|
|
35
|
-
if (val
|
|
33
|
+
if (val && typeof val === 'object' && 'hashCode' in val) {
|
|
36
34
|
return val.hashCode;
|
|
37
|
-
|
|
38
|
-
return val.hashCode;
|
|
39
|
-
// Arrays: Treated as sequences (Rolling Hash)
|
|
35
|
+
}
|
|
40
36
|
if (Array.isArray(val)) {
|
|
41
|
-
let h =
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
vh = hashString(v);
|
|
47
|
-
else
|
|
48
|
-
vh = hashValue(v);
|
|
49
|
-
h = Math.imul(31, h) + vh;
|
|
37
|
+
let h = FNV_OFFSET;
|
|
38
|
+
const len = val.length;
|
|
39
|
+
for (let i = 0; i < len; i++) {
|
|
40
|
+
h ^= hashValue(val[i]);
|
|
41
|
+
h = Math.imul(h, FNV_PRIME);
|
|
50
42
|
}
|
|
51
43
|
return h >>> 0;
|
|
52
44
|
}
|
|
53
45
|
return 0;
|
|
54
46
|
}
|
|
55
47
|
// === COMPARATOR ===
|
|
56
|
-
/**
|
|
57
|
-
* High-performance comparator with hash short-circuiting.
|
|
58
|
-
* Order: Primitives (0) < Sequences (1) < Sets (2)
|
|
59
|
-
*/
|
|
60
48
|
function compare(a, b) {
|
|
61
49
|
if (a === b)
|
|
62
50
|
return 0;
|
|
63
|
-
// 1. Hash Short-Circuit
|
|
64
|
-
// Using interface casting avoids runtime overhead of 'in' operator checks
|
|
51
|
+
// 1. Hash Short-Circuit (Optimization)
|
|
65
52
|
const aH = a?.hashCode;
|
|
66
53
|
const bH = b?.hashCode;
|
|
67
54
|
const ha = (aH !== undefined) ? aH : hashValue(a);
|
|
68
55
|
const hb = (bH !== undefined) ? bH : hashValue(b);
|
|
69
56
|
if (ha !== hb)
|
|
70
57
|
return ha < hb ? -1 : 1;
|
|
71
|
-
// 2.
|
|
58
|
+
// 2. Structural Type Check
|
|
72
59
|
const typeA = typeof a;
|
|
73
60
|
const typeB = typeof b;
|
|
74
61
|
if (typeA === 'string' && typeB === 'string')
|
|
75
62
|
return a < b ? -1 : 1;
|
|
76
63
|
if (typeA === 'number' && typeB === 'number')
|
|
77
64
|
return a < b ? -1 : 1;
|
|
78
|
-
// 3. Structural Type Check
|
|
79
65
|
const isSetA = a instanceof RecursiveSet;
|
|
80
66
|
const isSetB = b instanceof RecursiveSet;
|
|
81
67
|
if (isSetA && isSetB) {
|
|
82
68
|
return a.compare(b);
|
|
83
69
|
}
|
|
84
|
-
const
|
|
85
|
-
const
|
|
86
|
-
|
|
87
|
-
const isTupB = b instanceof Tuple;
|
|
88
|
-
const isSeqA = isArrA || isTupA;
|
|
89
|
-
const isSeqB = isArrB || isTupB;
|
|
90
|
-
// Sort by Type Group if types differ
|
|
70
|
+
const isSeqA = Array.isArray(a) || a instanceof Tuple;
|
|
71
|
+
const isSeqB = Array.isArray(b) || b instanceof Tuple;
|
|
72
|
+
// Sort Order: Primitives (0) < Sequences (1) < Sets (2)
|
|
91
73
|
if (isSetA !== isSetB || isSeqA !== isSeqB) {
|
|
92
74
|
const scoreA = isSetA ? 2 : isSeqA ? 1 : 0;
|
|
93
75
|
const scoreB = isSetB ? 2 : isSeqB ? 1 : 0;
|
|
94
76
|
return scoreA - scoreB;
|
|
95
77
|
}
|
|
96
|
-
//
|
|
78
|
+
// 3. Sequence Comparison
|
|
97
79
|
if (isSeqA && isSeqB) {
|
|
98
|
-
const valA =
|
|
99
|
-
const valB =
|
|
80
|
+
const valA = (a instanceof Tuple) ? a.values : a;
|
|
81
|
+
const valB = (b instanceof Tuple) ? b.values : b;
|
|
100
82
|
const len = valA.length;
|
|
101
83
|
if (len !== valB.length)
|
|
102
84
|
return len - valB.length;
|
|
@@ -107,14 +89,9 @@ function compare(a, b) {
|
|
|
107
89
|
}
|
|
108
90
|
return 0;
|
|
109
91
|
}
|
|
110
|
-
// Fallback for safe types
|
|
111
92
|
return a < b ? -1 : 1;
|
|
112
93
|
}
|
|
113
94
|
// === CLASSES ===
|
|
114
|
-
/**
|
|
115
|
-
* Immutable wrapper for sequence values.
|
|
116
|
-
* Useful when strict typing for sequences is required.
|
|
117
|
-
*/
|
|
118
95
|
class Tuple {
|
|
119
96
|
values;
|
|
120
97
|
hashCode;
|
|
@@ -129,16 +106,10 @@ class Tuple {
|
|
|
129
106
|
[Symbol.for('nodejs.util.inspect.custom')]() { return this.toString(); }
|
|
130
107
|
}
|
|
131
108
|
exports.Tuple = Tuple;
|
|
132
|
-
/**
|
|
133
|
-
* A Set implementation that supports deep structural equality and efficient hashing.
|
|
134
|
-
* Internally backed by a sorted array for optimal CPU cache locality on small sets.
|
|
135
|
-
*/
|
|
136
109
|
class RecursiveSet {
|
|
137
|
-
/**
|
|
138
|
-
* Internal storage. Public for inlining access within the module, but treated as private API.
|
|
139
|
-
*/
|
|
140
110
|
_elements;
|
|
141
111
|
_hashCode = null;
|
|
112
|
+
_isFrozen = false;
|
|
142
113
|
static compare(a, b) { return compare(a, b); }
|
|
143
114
|
constructor(...elements) {
|
|
144
115
|
if (elements.length === 0) {
|
|
@@ -151,6 +122,13 @@ class RecursiveSet {
|
|
|
151
122
|
this._unique();
|
|
152
123
|
}
|
|
153
124
|
}
|
|
125
|
+
_checkFrozen(op) {
|
|
126
|
+
if (this._isFrozen) {
|
|
127
|
+
throw new Error(`InvalidOperation: Cannot ${op} a frozen RecursiveSet.\n` +
|
|
128
|
+
`This Set has been hashed or used in a collection (Value Semantics).\n` +
|
|
129
|
+
`Use .mutableCopy() to create a modifiable copy.`);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
154
132
|
_unique() {
|
|
155
133
|
const arr = this._elements;
|
|
156
134
|
const len = arr.length;
|
|
@@ -165,8 +143,7 @@ class RecursiveSet {
|
|
|
165
143
|
arr.length = write;
|
|
166
144
|
}
|
|
167
145
|
/**
|
|
168
|
-
* Calculates
|
|
169
|
-
* Uses a rolling hash over sorted elements, ensuring determinstic results for equal sets.
|
|
146
|
+
* Calculates/Caches hash code and FREEZES the set.
|
|
170
147
|
*/
|
|
171
148
|
get hashCode() {
|
|
172
149
|
if (this._hashCode !== null)
|
|
@@ -178,10 +155,10 @@ class RecursiveSet {
|
|
|
178
155
|
h = Math.imul(31, h) + hashValue(arr[i]);
|
|
179
156
|
}
|
|
180
157
|
this._hashCode = h | 0;
|
|
158
|
+
this._isFrozen = true;
|
|
181
159
|
return this._hashCode;
|
|
182
160
|
}
|
|
183
|
-
|
|
184
|
-
getHashCode() { return this.hashCode; }
|
|
161
|
+
get isFrozen() { return this._isFrozen; }
|
|
185
162
|
compare(other) {
|
|
186
163
|
if (this === other)
|
|
187
164
|
return 0;
|
|
@@ -206,7 +183,7 @@ class RecursiveSet {
|
|
|
206
183
|
has(element) {
|
|
207
184
|
const arr = this._elements;
|
|
208
185
|
const len = arr.length;
|
|
209
|
-
//
|
|
186
|
+
// Linear Scan (Prefetch-friendly for small sets)
|
|
210
187
|
if (len < 16) {
|
|
211
188
|
for (let i = 0; i < len; i++) {
|
|
212
189
|
if (compare(arr[i], element) === 0)
|
|
@@ -214,6 +191,7 @@ class RecursiveSet {
|
|
|
214
191
|
}
|
|
215
192
|
return false;
|
|
216
193
|
}
|
|
194
|
+
// Binary Search
|
|
217
195
|
let low = 0, high = len - 1;
|
|
218
196
|
while (low <= high) {
|
|
219
197
|
const mid = (low + high) >>> 1;
|
|
@@ -228,22 +206,19 @@ class RecursiveSet {
|
|
|
228
206
|
return false;
|
|
229
207
|
}
|
|
230
208
|
add(element) {
|
|
231
|
-
|
|
209
|
+
this._checkFrozen('add() to');
|
|
210
|
+
// Validation (Inlined for Performance)
|
|
232
211
|
if (typeof element === 'object' && element !== null) {
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
const isArr = Array.isArray(element);
|
|
236
|
-
if (!isSet && !isTup && !isArr) {
|
|
237
|
-
throw new Error("Plain Objects are not supported. Use Tuple, Array or RecursiveSet.");
|
|
212
|
+
if (!(element instanceof RecursiveSet || element instanceof Tuple || Array.isArray(element))) {
|
|
213
|
+
throw new Error("Unsupported Type: Use Tuple, Array or RecursiveSet.");
|
|
238
214
|
}
|
|
239
215
|
}
|
|
240
|
-
else if (
|
|
216
|
+
else if (Number.isNaN(element)) {
|
|
241
217
|
throw new Error("NaN is not supported");
|
|
242
218
|
}
|
|
243
|
-
// --- End Validation ---
|
|
244
219
|
const arr = this._elements;
|
|
245
220
|
const len = arr.length;
|
|
246
|
-
//
|
|
221
|
+
// Optimization: Append to end (common in construction)
|
|
247
222
|
if (len > 0) {
|
|
248
223
|
const lastCmp = compare(arr[len - 1], element);
|
|
249
224
|
if (lastCmp < 0) {
|
|
@@ -259,7 +234,7 @@ class RecursiveSet {
|
|
|
259
234
|
this._hashCode = null;
|
|
260
235
|
return this;
|
|
261
236
|
}
|
|
262
|
-
// Small Array Strategy
|
|
237
|
+
// Small Array Strategy
|
|
263
238
|
if (len < 16) {
|
|
264
239
|
for (let i = 0; i < len; i++) {
|
|
265
240
|
const cmp = compare(arr[i], element);
|
|
@@ -271,9 +246,10 @@ class RecursiveSet {
|
|
|
271
246
|
return this;
|
|
272
247
|
}
|
|
273
248
|
}
|
|
249
|
+
arr.push(element); // Should be unreachable given append check, but safe fallback
|
|
274
250
|
return this;
|
|
275
251
|
}
|
|
276
|
-
// Large Array Strategy
|
|
252
|
+
// Large Array Strategy
|
|
277
253
|
let low = 0, high = len - 1, idx = 0;
|
|
278
254
|
while (low <= high) {
|
|
279
255
|
const mid = (low + high) >>> 1;
|
|
@@ -294,6 +270,7 @@ class RecursiveSet {
|
|
|
294
270
|
return this;
|
|
295
271
|
}
|
|
296
272
|
remove(element) {
|
|
273
|
+
this._checkFrozen('remove() from');
|
|
297
274
|
const arr = this._elements;
|
|
298
275
|
const len = arr.length;
|
|
299
276
|
if (len < 16) {
|
|
@@ -323,16 +300,17 @@ class RecursiveSet {
|
|
|
323
300
|
return this;
|
|
324
301
|
}
|
|
325
302
|
clear() {
|
|
303
|
+
this._checkFrozen('clear()');
|
|
326
304
|
this._elements = [];
|
|
327
305
|
this._hashCode = 0;
|
|
328
306
|
return this;
|
|
329
307
|
}
|
|
330
|
-
|
|
308
|
+
mutableCopy() {
|
|
331
309
|
const s = new RecursiveSet();
|
|
332
310
|
s._elements = this._elements.slice();
|
|
333
|
-
s._hashCode = this._hashCode;
|
|
334
311
|
return s;
|
|
335
312
|
}
|
|
313
|
+
clone() { return this.mutableCopy(); }
|
|
336
314
|
union(other) {
|
|
337
315
|
const s = new RecursiveSet();
|
|
338
316
|
const arrA = this._elements;
|
|
@@ -344,7 +322,6 @@ class RecursiveSet {
|
|
|
344
322
|
const res = [];
|
|
345
323
|
let i = 0, j = 0;
|
|
346
324
|
const lenA = arrA.length, lenB = arrB.length;
|
|
347
|
-
// Merge Sort Algorithm O(N + M)
|
|
348
325
|
while (i < lenA && j < lenB) {
|
|
349
326
|
const cmp = compare(arrA[i], arrB[j]);
|
|
350
327
|
if (cmp < 0)
|
|
@@ -459,7 +436,6 @@ class RecursiveSet {
|
|
|
459
436
|
}
|
|
460
437
|
return result;
|
|
461
438
|
}
|
|
462
|
-
// Standard Set methods
|
|
463
439
|
isSubset(other) {
|
|
464
440
|
if (this.size > other.size)
|
|
465
441
|
return false;
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AA+dH,4BAAgF;AAChF,8BAAkG;AAClG,oCAAoH;AA/dpH,kCAAkC;AAElC,MAAM,SAAS,GAAG,QAAQ,CAAC;AAC3B,MAAM,UAAU,GAAG,UAAU,CAAC;AAE9B,SAAS,UAAU,CAAC,GAAW;IAC3B,IAAI,IAAI,GAAG,UAAU,CAAC;IACtB,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC;IACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,IAAI,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAC1B,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACtC,CAAC;IACD,OAAO,IAAI,KAAK,CAAC,CAAC;AACtB,CAAC;AAED,SAAS,SAAS,CAAC,GAAY;IAC3B,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC;IAEpD,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC1B,IAAI,IAAI,GAAG,UAAU,CAAC;QACtB,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QAClB,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAClC,OAAO,IAAI,KAAK,CAAC,CAAC;IACtB,CAAC;IAED,sCAAsC;IACtC,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,UAAU,IAAI,GAAG,EAAE,CAAC;QACtD,OAAQ,GAAW,CAAC,QAAQ,CAAC;IACjC,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACrB,IAAI,CAAC,GAAG,UAAU,CAAC;QACnB,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC;QACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACvB,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;QAChC,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,CAAC;IACnB,CAAC;IACD,OAAO,CAAC,CAAC;AACb,CAAC;AAED,qBAAqB;AAErB,SAAS,OAAO,CAAC,CAAU,EAAE,CAAU;IACnC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IAEtB,uCAAuC;IACvC,MAAM,EAAE,GAAI,CAA2B,EAAE,QAAQ,CAAC;IAClD,MAAM,EAAE,GAAI,CAA2B,EAAE,QAAQ,CAAC;IAElD,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAClD,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAElD,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEvC,2BAA2B;IAC3B,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC;IACvB,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC;IAEvB,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,QAAQ;QAAE,OAAQ,CAAY,GAAI,CAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5F,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,QAAQ;QAAE,OAAQ,CAAY,GAAI,CAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE5F,MAAM,MAAM,GAAG,CAAC,YAAY,YAAY,CAAC;IACzC,MAAM,MAAM,GAAG,CAAC,YAAY,YAAY,CAAC;IAEzC,IAAI,MAAM,IAAI,MAAM,EAAE,CAAC;QACnB,OAAQ,CAA2B,CAAC,OAAO,CAAC,CAA0B,CAAC,CAAC;IAC5E,CAAC;IAED,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,KAAK,CAAC;IACtD,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,KAAK,CAAC;IAEtD,wDAAwD;IACxD,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,OAAO,MAAM,GAAG,MAAM,CAAC;IAC5B,CAAC;IAED,yBAAyB;IACzB,IAAI,MAAM,IAAI,MAAM,EAAE,CAAC;QACnB,MAAM,IAAI,GAAG,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAE,CAAe,CAAC;QAChE,MAAM,IAAI,GAAG,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAE,CAAe,CAAC;QAEhE,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;QACxB,IAAI,GAAG,KAAK,IAAI,CAAC,MAAM;YAAE,OAAO,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;QAElD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YACvC,IAAI,IAAI,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC;QAChC,CAAC;QACD,OAAO,CAAC,CAAC;IACb,CAAC;IAED,OAAQ,CAAY,GAAI,CAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClD,CAAC;AAED,kBAAkB;AAElB,MAAa,KAAK;IACL,MAAM,CAAI;IACV,QAAQ,CAAS;IAE1B,YAAY,GAAG,MAAS;QACpB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,MAAM,KAAK,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3C,GAAG,CAAC,CAAS,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5C,QAAQ,KAAK,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACpD,CAAC,MAAM,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC,KAAK,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;CAC3E;AAdD,sBAcC;AAED,MAAa,YAAY;IACd,SAAS,CAAM;IACd,SAAS,GAAkB,IAAI,CAAC;IAChC,SAAS,GAAY,KAAK,CAAC;IAEnC,MAAM,CAAC,OAAO,CAAC,CAAU,EAAE,CAAU,IAAY,OAAO,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAExE,YAAY,GAAG,QAAa;QACxB,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QACvB,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;YAC1B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC7B,IAAI,CAAC,OAAO,EAAE,CAAC;QACnB,CAAC;IACL,CAAC;IAEO,YAAY,CAAC,EAAU;QAC3B,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CACX,4BAA4B,EAAE,2BAA2B;gBACzD,uEAAuE;gBACvE,iDAAiD,CACpD,CAAC;QACN,CAAC;IACL,CAAC;IAEO,OAAO;QACX,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC;QAC3B,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC;QACvB,IAAI,GAAG,GAAG,CAAC;YAAE,OAAO;QAEpB,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC;YACpC,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,IAAI,GAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;gBACxC,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;YAC7B,CAAC;QACL,CAAC;QACD,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,IAAI,QAAQ;QACR,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC,SAAS,CAAC;QAEnD,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC;QAC3B,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC;QACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1B,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9C,CAAC;QACD,IAAI,CAAC,SAAS,GAAG,CAAC,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED,IAAI,QAAQ,KAAc,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAElD,OAAO,CAAC,KAAsB;QAC1B,IAAI,IAAI,KAAK,KAAK;YAAE,OAAO,CAAC,CAAC;QAE7B,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC;QACzB,MAAM,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC;QAC1B,IAAI,EAAE,KAAK,EAAE;YAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAEvC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;QAC5B,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC;QAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;QAExB,IAAI,GAAG,KAAK,IAAI,CAAC,MAAM;YAAE,OAAO,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;QAElD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YACtC,IAAI,GAAG,KAAK,CAAC;gBAAE,OAAO,GAAG,CAAC;QAC9B,CAAC;QACD,OAAO,CAAC,CAAC;IACb,CAAC;IAED,IAAI,IAAI,KAAa,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;IACpD,OAAO,KAAc,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC;IAE1D,GAAG,CAAC,OAAU;QACV,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC;QAC3B,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC;QAEvB,iDAAiD;QACjD,IAAI,GAAG,GAAG,EAAE,EAAE,CAAC;YACX,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3B,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC;oBAAE,OAAO,IAAI,CAAC;YACpD,CAAC;YACD,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,gBAAgB;QAChB,IAAI,GAAG,GAAG,CAAC,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC;QAC5B,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC;YACjB,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;YAC/B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;YACvC,IAAI,GAAG,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC;YAC3B,IAAI,GAAG,GAAG,CAAC;gBAAE,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;;gBACtB,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC;QACxB,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,GAAG,CAAC,OAAU;QACV,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QAE9B,uCAAuC;QACvC,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YAClD,IAAI,CAAC,CAAC,OAAO,YAAY,YAAY,IAAI,OAAO,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;gBAC3F,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;YAC3E,CAAC;QACL,CAAC;aAAM,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC5C,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC;QAC3B,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC;QAEvB,uDAAuD;QACvD,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;YACV,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,GAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YAC7C,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;gBACd,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAClB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBACtB,OAAO,IAAI,CAAC;YAChB,CAAC;YACD,IAAI,OAAO,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC;QACnC,CAAC;aAAM,CAAC;YACJ,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAClB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,uBAAuB;QACvB,IAAI,GAAG,GAAG,EAAE,EAAE,CAAC;YACX,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;gBACrC,IAAI,GAAG,KAAK,CAAC;oBAAE,OAAO,IAAI,CAAC;gBAC3B,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;oBACV,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;oBAC1B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;oBACtB,OAAO,IAAI,CAAC;gBAChB,CAAC;YACL,CAAC;YACD,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,8DAA8D;YACjF,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,uBAAuB;QACvB,IAAI,GAAG,GAAG,CAAC,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC;QACrC,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC;YACjB,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;YAC/B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;YACvC,IAAI,GAAG,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC;YAC3B,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;gBACV,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;gBACd,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;YAClB,CAAC;iBAAM,CAAC;gBACJ,GAAG,GAAG,GAAG,CAAC;gBACV,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC;YACnB,CAAC;QACL,CAAC;QACD,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;QAC5B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,OAAU;QACb,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;QAEnC,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC;QAC3B,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC;QAEvB,IAAI,GAAG,GAAG,EAAE,EAAE,CAAC;YACX,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3B,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;oBACjC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBACjB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;oBACtB,OAAO,IAAI,CAAC;gBAChB,CAAC;YACL,CAAC;YACD,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,IAAI,GAAG,GAAG,CAAC,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC;QAC5B,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC;YACjB,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;YAC/B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;YACvC,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;gBACZ,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBACnB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBACtB,OAAO,IAAI,CAAC;YAChB,CAAC;YACD,IAAI,GAAG,GAAG,CAAC;gBAAE,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;;gBACtB,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC;QACxB,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,KAAK;QACD,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QAC7B,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QACnB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,WAAW;QACP,MAAM,CAAC,GAAG,IAAI,YAAY,EAAK,CAAC;QAChC,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACrC,OAAO,CAAC,CAAC;IACb,CAAC;IAED,KAAK,KAAsB,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IAEvD,KAAK,CAAC,KAAsB;QACxB,MAAM,CAAC,GAAG,IAAI,YAAY,EAAK,CAAC;QAChC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;QAC5B,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC;QAE7B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC,KAAK,EAAE,CAAC;QAC5C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC;QAE3C,MAAM,GAAG,GAAQ,EAAE,CAAC;QACpB,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;QACjB,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;QAE7C,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC;YAC1B,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YACtC,IAAI,GAAG,GAAG,CAAC;gBAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;iBAC5B,IAAI,GAAG,GAAG,CAAC;gBAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;iBACjC,CAAC;gBAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAAC,CAAC,EAAE,CAAC;YAAC,CAAC;QACtC,CAAC;QACD,OAAO,CAAC,GAAG,IAAI;YAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACrC,OAAO,CAAC,GAAG,IAAI;YAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAErC,CAAC,CAAC,SAAS,GAAG,GAAG,CAAC;QAClB,OAAO,CAAC,CAAC;IACb,CAAC;IAED,YAAY,CAAC,KAAsB;QAC/B,MAAM,CAAC,GAAG,IAAI,YAAY,EAAK,CAAC;QAChC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;QAC5B,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC;QAC7B,MAAM,GAAG,GAAQ,EAAE,CAAC;QACpB,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;QACjB,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;QAE7C,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC;YAC1B,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YACtC,IAAI,GAAG,GAAG,CAAC;gBAAE,CAAC,EAAE,CAAC;iBACZ,IAAI,GAAG,GAAG,CAAC;gBAAE,CAAC,EAAE,CAAC;iBACjB,CAAC;gBAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAAC,CAAC,EAAE,CAAC;YAAC,CAAC;QACtC,CAAC;QACD,CAAC,CAAC,SAAS,GAAG,GAAG,CAAC;QAClB,OAAO,CAAC,CAAC;IACb,CAAC;IAED,UAAU,CAAC,KAAsB;QAC7B,MAAM,CAAC,GAAG,IAAI,YAAY,EAAK,CAAC;QAChC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;QAC5B,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC;QAC7B,MAAM,GAAG,GAAQ,EAAE,CAAC;QACpB,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;QACjB,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;QAE7C,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC;YAC1B,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YACtC,IAAI,GAAG,GAAG,CAAC;gBAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;iBAC5B,IAAI,GAAG,GAAG,CAAC;gBAAE,CAAC,EAAE,CAAC;iBACjB,CAAC;gBAAC,CAAC,EAAE,CAAC;gBAAC,CAAC,EAAE,CAAC;YAAC,CAAC;QACtB,CAAC;QACD,OAAO,CAAC,GAAG,IAAI;YAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACrC,CAAC,CAAC,SAAS,GAAG,GAAG,CAAC;QAClB,OAAO,CAAC,CAAC;IACb,CAAC;IAED,mBAAmB,CAAC,KAAsB;QACtC,MAAM,CAAC,GAAG,IAAI,YAAY,EAAK,CAAC;QAChC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;QAC5B,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC;QAC7B,MAAM,GAAG,GAAQ,EAAE,CAAC;QACpB,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;QACjB,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;QAE7C,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC;YAC1B,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YACtC,IAAI,GAAG,GAAG,CAAC;gBAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;iBAC5B,IAAI,GAAG,GAAG,CAAC;gBAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;iBACjC,CAAC;gBAAC,CAAC,EAAE,CAAC;gBAAC,CAAC,EAAE,CAAC;YAAC,CAAC;QACtB,CAAC;QACD,OAAO,CAAC,GAAG,IAAI;YAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACrC,OAAO,CAAC,GAAG,IAAI;YAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACrC,CAAC,CAAC,SAAS,GAAG,GAAG,CAAC;QAClB,OAAO,CAAC,CAAC;IACb,CAAC;IAED,QAAQ;QACJ,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;QACpB,IAAI,CAAC,GAAG,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;QAElD,MAAM,OAAO,GAAsB,EAAE,CAAC;QACtC,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;QACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,MAAM,MAAM,GAAG,IAAI,YAAY,EAAK,CAAC;YACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACzB,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;oBAAE,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/D,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACzB,CAAC;QACD,OAAO,IAAI,YAAY,CAAkB,GAAG,OAAO,CAAC,CAAC;IACzD,CAAC;IAED,gBAAgB,CAAI,KAAsB;QACtC,MAAM,MAAM,GAAG,IAAI,YAAY,EAAiB,CAAC;QACjD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;QAC5B,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC;QAE7B,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;YACnB,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;gBACnB,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC3C,CAAC;QACL,CAAC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,QAAQ,CAAC,KAAsB;QAC3B,IAAI,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI;YAAE,OAAO,KAAK,CAAC;QACzC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;QACjB,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC;QACpD,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YACxC,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YACtC,IAAI,GAAG,GAAG,CAAC;gBAAE,OAAO,KAAK,CAAC;YAC1B,IAAI,GAAG,GAAG,CAAC;gBAAE,CAAC,EAAE,CAAC;iBACZ,CAAC;gBAAC,CAAC,EAAE,CAAC;gBAAC,CAAC,EAAE,CAAC;YAAC,CAAC;QACtB,CAAC;QACD,OAAO,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC;IAC7B,CAAC;IAED,UAAU,CAAC,KAAsB,IAAa,OAAO,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC5E,cAAc,CAAC,KAAsB,IAAa,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1G,MAAM,CAAC,KAAsB,IAAa,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC7E,KAAK,KAAa,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IACnD,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAkB,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAE5D,QAAQ;QACJ,IAAI,IAAI,CAAC,OAAO,EAAE;YAAE,OAAO,GAAG,CAAC;QAC/B,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;YACxC,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;gBAAE,OAAO,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;YACnD,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC;QACtB,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;IACzC,CAAC;IAED,CAAC,MAAM,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC,KAAK,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;CAC3E;AAvWD,oCAuWC;AAED,SAAgB,QAAQ,KAAyB,OAAO,IAAI,YAAY,EAAK,CAAC,CAAC,CAAC;AAChF,SAAgB,SAAS,CAAI,OAAU,IAAqB,OAAO,IAAI,YAAY,CAAI,OAAO,CAAC,CAAC,CAAC,CAAC;AAClG,SAAgB,YAAY,CAAI,QAAqB,IAAqB,OAAO,IAAI,YAAY,CAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC"}
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -1,11 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @module recursive-set
|
|
3
|
-
* High-Performance
|
|
4
|
-
* Optimized for small sets, structural equality, and deterministic hashing.
|
|
5
|
-
*/
|
|
6
|
-
/**
|
|
7
|
-
* Immutable wrapper for sequence values.
|
|
8
|
-
* Useful when strict typing for sequences is required.
|
|
3
|
+
* High-Performance Recursive Set with "Freeze-on-Hash" semantics.
|
|
9
4
|
*/
|
|
10
5
|
export declare class Tuple<T extends unknown[]> {
|
|
11
6
|
readonly values: T;
|
|
@@ -16,25 +11,19 @@ export declare class Tuple<T extends unknown[]> {
|
|
|
16
11
|
[Symbol.iterator](): Generator<unknown, void, unknown>;
|
|
17
12
|
toString(): string;
|
|
18
13
|
}
|
|
19
|
-
/**
|
|
20
|
-
* A Set implementation that supports deep structural equality and efficient hashing.
|
|
21
|
-
* Internally backed by a sorted array for optimal CPU cache locality on small sets.
|
|
22
|
-
*/
|
|
23
14
|
export declare class RecursiveSet<T> {
|
|
24
|
-
/**
|
|
25
|
-
* Internal storage. Public for inlining access within the module, but treated as private API.
|
|
26
|
-
*/
|
|
27
15
|
_elements: T[];
|
|
28
16
|
private _hashCode;
|
|
17
|
+
private _isFrozen;
|
|
29
18
|
static compare(a: unknown, b: unknown): number;
|
|
30
19
|
constructor(...elements: T[]);
|
|
20
|
+
private _checkFrozen;
|
|
31
21
|
private _unique;
|
|
32
22
|
/**
|
|
33
|
-
* Calculates
|
|
34
|
-
* Uses a rolling hash over sorted elements, ensuring determinstic results for equal sets.
|
|
23
|
+
* Calculates/Caches hash code and FREEZES the set.
|
|
35
24
|
*/
|
|
36
25
|
get hashCode(): number;
|
|
37
|
-
|
|
26
|
+
get isFrozen(): boolean;
|
|
38
27
|
compare(other: RecursiveSet<T>): number;
|
|
39
28
|
get size(): number;
|
|
40
29
|
isEmpty(): boolean;
|
|
@@ -42,6 +31,7 @@ export declare class RecursiveSet<T> {
|
|
|
42
31
|
add(element: T): this;
|
|
43
32
|
remove(element: T): this;
|
|
44
33
|
clear(): this;
|
|
34
|
+
mutableCopy(): RecursiveSet<T>;
|
|
45
35
|
clone(): RecursiveSet<T>;
|
|
46
36
|
union(other: RecursiveSet<T>): RecursiveSet<T>;
|
|
47
37
|
intersection(other: RecursiveSet<T>): RecursiveSet<T>;
|
package/dist/esm/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAsGH,qBAAa,KAAK,CAAC,CAAC,SAAS,OAAO,EAAE;IAClC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IACnB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;gBAEd,GAAG,MAAM,EAAE,CAAC;IAKxB,IAAI,MAAM,WAAiC;IAC3C,GAAG,CAAC,CAAC,EAAE,MAAM;IACZ,CAAC,MAAM,CAAC,QAAQ,CAAC;IAClB,QAAQ;CAEX;AAED,qBAAa,YAAY,CAAC,CAAC;IAChB,SAAS,EAAE,CAAC,EAAE,CAAC;IACtB,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,SAAS,CAAkB;IAEnC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,GAAG,MAAM;gBAElC,GAAG,QAAQ,EAAE,CAAC,EAAE;IAW5B,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,OAAO;IAcf;;OAEG;IACH,IAAI,QAAQ,IAAI,MAAM,CAYrB;IAED,IAAI,QAAQ,IAAI,OAAO,CAA2B;IAElD,OAAO,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,MAAM;IAoBvC,IAAI,IAAI,IAAI,MAAM,CAAkC;IACpD,OAAO,IAAI,OAAO;IAElB,GAAG,CAAC,OAAO,EAAE,CAAC,GAAG,OAAO;IAwBxB,GAAG,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI;IAgErB,MAAM,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI;IAgCxB,KAAK,IAAI,IAAI;IAOb,WAAW,IAAI,YAAY,CAAC,CAAC,CAAC;IAM9B,KAAK,IAAI,YAAY,CAAC,CAAC,CAAC;IAExB,KAAK,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC;IAyB9C,YAAY,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC;IAkBrD,UAAU,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC;IAmBnD,mBAAmB,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC;IAoB5D,QAAQ,IAAI,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAgBzC,gBAAgB,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAaxE,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,OAAO;IAazC,UAAU,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,OAAO;IAC3C,cAAc,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,OAAO;IAC/C,MAAM,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,OAAO;IACvC,KAAK,IAAI,GAAG,CAAC,CAAC,CAAC;IACd,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC;IAEjC,QAAQ,IAAI,MAAM;CAUrB;AAED,wBAAgB,QAAQ,CAAC,CAAC,KAAK,YAAY,CAAC,CAAC,CAAC,CAAkC;AAChF,wBAAgB,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAyC;AAClG,wBAAgB,YAAY,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAA6C"}
|
package/dist/esm/index.js
CHANGED
|
@@ -1,96 +1,78 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @module recursive-set
|
|
3
|
-
* High-Performance
|
|
4
|
-
* Optimized for small sets, structural equality, and deterministic hashing.
|
|
5
|
-
*/
|
|
6
|
-
// === HASHING ENGINE ===
|
|
7
|
-
/**
|
|
8
|
-
* FNV-1a Hash implementation for strings.
|
|
9
|
-
* Constants inlined for V8 optimization.
|
|
3
|
+
* High-Performance Recursive Set with "Freeze-on-Hash" semantics.
|
|
10
4
|
*/
|
|
5
|
+
// === HASHING ENGINE (FNV-1a) ===
|
|
6
|
+
const FNV_PRIME = 16777619;
|
|
7
|
+
const FNV_OFFSET = 2166136261;
|
|
11
8
|
function hashString(str) {
|
|
12
|
-
let hash =
|
|
13
|
-
|
|
9
|
+
let hash = FNV_OFFSET;
|
|
10
|
+
const len = str.length;
|
|
11
|
+
for (let i = 0; i < len; i++) {
|
|
14
12
|
hash ^= str.charCodeAt(i);
|
|
15
|
-
hash = Math.imul(hash,
|
|
13
|
+
hash = Math.imul(hash, FNV_PRIME);
|
|
16
14
|
}
|
|
17
15
|
return hash >>> 0;
|
|
18
16
|
}
|
|
19
|
-
/**
|
|
20
|
-
* Universal Hash Function.
|
|
21
|
-
* Calculates deterministic hashes for Primitives, Sequences (Order Dependent), and Sets.
|
|
22
|
-
*/
|
|
23
17
|
function hashValue(val) {
|
|
24
18
|
if (typeof val === 'string')
|
|
25
19
|
return hashString(val);
|
|
26
|
-
if (typeof val === 'number')
|
|
27
|
-
|
|
20
|
+
if (typeof val === 'number') {
|
|
21
|
+
let hash = FNV_OFFSET;
|
|
22
|
+
hash ^= (val | 0);
|
|
23
|
+
hash = Math.imul(hash, FNV_PRIME);
|
|
24
|
+
return hash >>> 0;
|
|
25
|
+
}
|
|
28
26
|
// Fast Path: Objects with cached hash
|
|
29
|
-
if (val
|
|
27
|
+
if (val && typeof val === 'object' && 'hashCode' in val) {
|
|
30
28
|
return val.hashCode;
|
|
31
|
-
|
|
32
|
-
return val.hashCode;
|
|
33
|
-
// Arrays: Treated as sequences (Rolling Hash)
|
|
29
|
+
}
|
|
34
30
|
if (Array.isArray(val)) {
|
|
35
|
-
let h =
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
vh = hashString(v);
|
|
41
|
-
else
|
|
42
|
-
vh = hashValue(v);
|
|
43
|
-
h = Math.imul(31, h) + vh;
|
|
31
|
+
let h = FNV_OFFSET;
|
|
32
|
+
const len = val.length;
|
|
33
|
+
for (let i = 0; i < len; i++) {
|
|
34
|
+
h ^= hashValue(val[i]);
|
|
35
|
+
h = Math.imul(h, FNV_PRIME);
|
|
44
36
|
}
|
|
45
37
|
return h >>> 0;
|
|
46
38
|
}
|
|
47
39
|
return 0;
|
|
48
40
|
}
|
|
49
41
|
// === COMPARATOR ===
|
|
50
|
-
/**
|
|
51
|
-
* High-performance comparator with hash short-circuiting.
|
|
52
|
-
* Order: Primitives (0) < Sequences (1) < Sets (2)
|
|
53
|
-
*/
|
|
54
42
|
function compare(a, b) {
|
|
55
43
|
if (a === b)
|
|
56
44
|
return 0;
|
|
57
|
-
// 1. Hash Short-Circuit
|
|
58
|
-
// Using interface casting avoids runtime overhead of 'in' operator checks
|
|
45
|
+
// 1. Hash Short-Circuit (Optimization)
|
|
59
46
|
const aH = a?.hashCode;
|
|
60
47
|
const bH = b?.hashCode;
|
|
61
48
|
const ha = (aH !== undefined) ? aH : hashValue(a);
|
|
62
49
|
const hb = (bH !== undefined) ? bH : hashValue(b);
|
|
63
50
|
if (ha !== hb)
|
|
64
51
|
return ha < hb ? -1 : 1;
|
|
65
|
-
// 2.
|
|
52
|
+
// 2. Structural Type Check
|
|
66
53
|
const typeA = typeof a;
|
|
67
54
|
const typeB = typeof b;
|
|
68
55
|
if (typeA === 'string' && typeB === 'string')
|
|
69
56
|
return a < b ? -1 : 1;
|
|
70
57
|
if (typeA === 'number' && typeB === 'number')
|
|
71
58
|
return a < b ? -1 : 1;
|
|
72
|
-
// 3. Structural Type Check
|
|
73
59
|
const isSetA = a instanceof RecursiveSet;
|
|
74
60
|
const isSetB = b instanceof RecursiveSet;
|
|
75
61
|
if (isSetA && isSetB) {
|
|
76
62
|
return a.compare(b);
|
|
77
63
|
}
|
|
78
|
-
const
|
|
79
|
-
const
|
|
80
|
-
|
|
81
|
-
const isTupB = b instanceof Tuple;
|
|
82
|
-
const isSeqA = isArrA || isTupA;
|
|
83
|
-
const isSeqB = isArrB || isTupB;
|
|
84
|
-
// Sort by Type Group if types differ
|
|
64
|
+
const isSeqA = Array.isArray(a) || a instanceof Tuple;
|
|
65
|
+
const isSeqB = Array.isArray(b) || b instanceof Tuple;
|
|
66
|
+
// Sort Order: Primitives (0) < Sequences (1) < Sets (2)
|
|
85
67
|
if (isSetA !== isSetB || isSeqA !== isSeqB) {
|
|
86
68
|
const scoreA = isSetA ? 2 : isSeqA ? 1 : 0;
|
|
87
69
|
const scoreB = isSetB ? 2 : isSeqB ? 1 : 0;
|
|
88
70
|
return scoreA - scoreB;
|
|
89
71
|
}
|
|
90
|
-
//
|
|
72
|
+
// 3. Sequence Comparison
|
|
91
73
|
if (isSeqA && isSeqB) {
|
|
92
|
-
const valA =
|
|
93
|
-
const valB =
|
|
74
|
+
const valA = (a instanceof Tuple) ? a.values : a;
|
|
75
|
+
const valB = (b instanceof Tuple) ? b.values : b;
|
|
94
76
|
const len = valA.length;
|
|
95
77
|
if (len !== valB.length)
|
|
96
78
|
return len - valB.length;
|
|
@@ -101,14 +83,9 @@ function compare(a, b) {
|
|
|
101
83
|
}
|
|
102
84
|
return 0;
|
|
103
85
|
}
|
|
104
|
-
// Fallback for safe types
|
|
105
86
|
return a < b ? -1 : 1;
|
|
106
87
|
}
|
|
107
88
|
// === CLASSES ===
|
|
108
|
-
/**
|
|
109
|
-
* Immutable wrapper for sequence values.
|
|
110
|
-
* Useful when strict typing for sequences is required.
|
|
111
|
-
*/
|
|
112
89
|
export class Tuple {
|
|
113
90
|
values;
|
|
114
91
|
hashCode;
|
|
@@ -122,16 +99,10 @@ export class Tuple {
|
|
|
122
99
|
toString() { return `(${this.values.join(', ')})`; }
|
|
123
100
|
[Symbol.for('nodejs.util.inspect.custom')]() { return this.toString(); }
|
|
124
101
|
}
|
|
125
|
-
/**
|
|
126
|
-
* A Set implementation that supports deep structural equality and efficient hashing.
|
|
127
|
-
* Internally backed by a sorted array for optimal CPU cache locality on small sets.
|
|
128
|
-
*/
|
|
129
102
|
export class RecursiveSet {
|
|
130
|
-
/**
|
|
131
|
-
* Internal storage. Public for inlining access within the module, but treated as private API.
|
|
132
|
-
*/
|
|
133
103
|
_elements;
|
|
134
104
|
_hashCode = null;
|
|
105
|
+
_isFrozen = false;
|
|
135
106
|
static compare(a, b) { return compare(a, b); }
|
|
136
107
|
constructor(...elements) {
|
|
137
108
|
if (elements.length === 0) {
|
|
@@ -144,6 +115,13 @@ export class RecursiveSet {
|
|
|
144
115
|
this._unique();
|
|
145
116
|
}
|
|
146
117
|
}
|
|
118
|
+
_checkFrozen(op) {
|
|
119
|
+
if (this._isFrozen) {
|
|
120
|
+
throw new Error(`InvalidOperation: Cannot ${op} a frozen RecursiveSet.\n` +
|
|
121
|
+
`This Set has been hashed or used in a collection (Value Semantics).\n` +
|
|
122
|
+
`Use .mutableCopy() to create a modifiable copy.`);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
147
125
|
_unique() {
|
|
148
126
|
const arr = this._elements;
|
|
149
127
|
const len = arr.length;
|
|
@@ -158,8 +136,7 @@ export class RecursiveSet {
|
|
|
158
136
|
arr.length = write;
|
|
159
137
|
}
|
|
160
138
|
/**
|
|
161
|
-
* Calculates
|
|
162
|
-
* Uses a rolling hash over sorted elements, ensuring determinstic results for equal sets.
|
|
139
|
+
* Calculates/Caches hash code and FREEZES the set.
|
|
163
140
|
*/
|
|
164
141
|
get hashCode() {
|
|
165
142
|
if (this._hashCode !== null)
|
|
@@ -171,10 +148,10 @@ export class RecursiveSet {
|
|
|
171
148
|
h = Math.imul(31, h) + hashValue(arr[i]);
|
|
172
149
|
}
|
|
173
150
|
this._hashCode = h | 0;
|
|
151
|
+
this._isFrozen = true;
|
|
174
152
|
return this._hashCode;
|
|
175
153
|
}
|
|
176
|
-
|
|
177
|
-
getHashCode() { return this.hashCode; }
|
|
154
|
+
get isFrozen() { return this._isFrozen; }
|
|
178
155
|
compare(other) {
|
|
179
156
|
if (this === other)
|
|
180
157
|
return 0;
|
|
@@ -199,7 +176,7 @@ export class RecursiveSet {
|
|
|
199
176
|
has(element) {
|
|
200
177
|
const arr = this._elements;
|
|
201
178
|
const len = arr.length;
|
|
202
|
-
//
|
|
179
|
+
// Linear Scan (Prefetch-friendly for small sets)
|
|
203
180
|
if (len < 16) {
|
|
204
181
|
for (let i = 0; i < len; i++) {
|
|
205
182
|
if (compare(arr[i], element) === 0)
|
|
@@ -207,6 +184,7 @@ export class RecursiveSet {
|
|
|
207
184
|
}
|
|
208
185
|
return false;
|
|
209
186
|
}
|
|
187
|
+
// Binary Search
|
|
210
188
|
let low = 0, high = len - 1;
|
|
211
189
|
while (low <= high) {
|
|
212
190
|
const mid = (low + high) >>> 1;
|
|
@@ -221,22 +199,19 @@ export class RecursiveSet {
|
|
|
221
199
|
return false;
|
|
222
200
|
}
|
|
223
201
|
add(element) {
|
|
224
|
-
|
|
202
|
+
this._checkFrozen('add() to');
|
|
203
|
+
// Validation (Inlined for Performance)
|
|
225
204
|
if (typeof element === 'object' && element !== null) {
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
const isArr = Array.isArray(element);
|
|
229
|
-
if (!isSet && !isTup && !isArr) {
|
|
230
|
-
throw new Error("Plain Objects are not supported. Use Tuple, Array or RecursiveSet.");
|
|
205
|
+
if (!(element instanceof RecursiveSet || element instanceof Tuple || Array.isArray(element))) {
|
|
206
|
+
throw new Error("Unsupported Type: Use Tuple, Array or RecursiveSet.");
|
|
231
207
|
}
|
|
232
208
|
}
|
|
233
|
-
else if (
|
|
209
|
+
else if (Number.isNaN(element)) {
|
|
234
210
|
throw new Error("NaN is not supported");
|
|
235
211
|
}
|
|
236
|
-
// --- End Validation ---
|
|
237
212
|
const arr = this._elements;
|
|
238
213
|
const len = arr.length;
|
|
239
|
-
//
|
|
214
|
+
// Optimization: Append to end (common in construction)
|
|
240
215
|
if (len > 0) {
|
|
241
216
|
const lastCmp = compare(arr[len - 1], element);
|
|
242
217
|
if (lastCmp < 0) {
|
|
@@ -252,7 +227,7 @@ export class RecursiveSet {
|
|
|
252
227
|
this._hashCode = null;
|
|
253
228
|
return this;
|
|
254
229
|
}
|
|
255
|
-
// Small Array Strategy
|
|
230
|
+
// Small Array Strategy
|
|
256
231
|
if (len < 16) {
|
|
257
232
|
for (let i = 0; i < len; i++) {
|
|
258
233
|
const cmp = compare(arr[i], element);
|
|
@@ -264,9 +239,10 @@ export class RecursiveSet {
|
|
|
264
239
|
return this;
|
|
265
240
|
}
|
|
266
241
|
}
|
|
242
|
+
arr.push(element); // Should be unreachable given append check, but safe fallback
|
|
267
243
|
return this;
|
|
268
244
|
}
|
|
269
|
-
// Large Array Strategy
|
|
245
|
+
// Large Array Strategy
|
|
270
246
|
let low = 0, high = len - 1, idx = 0;
|
|
271
247
|
while (low <= high) {
|
|
272
248
|
const mid = (low + high) >>> 1;
|
|
@@ -287,6 +263,7 @@ export class RecursiveSet {
|
|
|
287
263
|
return this;
|
|
288
264
|
}
|
|
289
265
|
remove(element) {
|
|
266
|
+
this._checkFrozen('remove() from');
|
|
290
267
|
const arr = this._elements;
|
|
291
268
|
const len = arr.length;
|
|
292
269
|
if (len < 16) {
|
|
@@ -316,16 +293,17 @@ export class RecursiveSet {
|
|
|
316
293
|
return this;
|
|
317
294
|
}
|
|
318
295
|
clear() {
|
|
296
|
+
this._checkFrozen('clear()');
|
|
319
297
|
this._elements = [];
|
|
320
298
|
this._hashCode = 0;
|
|
321
299
|
return this;
|
|
322
300
|
}
|
|
323
|
-
|
|
301
|
+
mutableCopy() {
|
|
324
302
|
const s = new RecursiveSet();
|
|
325
303
|
s._elements = this._elements.slice();
|
|
326
|
-
s._hashCode = this._hashCode;
|
|
327
304
|
return s;
|
|
328
305
|
}
|
|
306
|
+
clone() { return this.mutableCopy(); }
|
|
329
307
|
union(other) {
|
|
330
308
|
const s = new RecursiveSet();
|
|
331
309
|
const arrA = this._elements;
|
|
@@ -337,7 +315,6 @@ export class RecursiveSet {
|
|
|
337
315
|
const res = [];
|
|
338
316
|
let i = 0, j = 0;
|
|
339
317
|
const lenA = arrA.length, lenB = arrB.length;
|
|
340
|
-
// Merge Sort Algorithm O(N + M)
|
|
341
318
|
while (i < lenA && j < lenB) {
|
|
342
319
|
const cmp = compare(arrA[i], arrB[j]);
|
|
343
320
|
if (cmp < 0)
|
|
@@ -452,7 +429,6 @@ export class RecursiveSet {
|
|
|
452
429
|
}
|
|
453
430
|
return result;
|
|
454
431
|
}
|
|
455
|
-
// Standard Set methods
|
|
456
432
|
isSubset(other) {
|
|
457
433
|
if (this.size > other.size)
|
|
458
434
|
return false;
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,yBAAyB;AAEzB;;;GAGG;AACH,SAAS,UAAU,CAAC,GAAW;IAC3B,IAAI,IAAI,GAAG,UAAU,CAAC;IACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAClC,IAAI,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAC1B,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,IAAI,KAAK,CAAC,CAAC;AACtB,CAAC;AAED;;;GAGG;AACH,SAAS,SAAS,CAAC,GAAY;IAC3B,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC;IACpD,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,GAAG,GAAG,CAAC,CAAC;IAE5C,sCAAsC;IACtC,IAAI,GAAG,YAAY,YAAY;QAAE,OAAO,GAAG,CAAC,QAAQ,CAAC;IACrD,IAAI,GAAG,YAAY,KAAK;QAAE,OAAO,GAAG,CAAC,QAAQ,CAAC;IAE9C,8CAA8C;IAC9C,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACrB,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAClC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;YACf,IAAI,EAAE,GAAG,CAAC,CAAC;YACX,IAAI,OAAO,CAAC,KAAK,QAAQ;gBAAE,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;;gBACzC,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YAEvB,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC;QAC9B,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,CAAC;IACnB,CAAC;IACD,OAAO,CAAC,CAAC;AACb,CAAC;AAED,qBAAqB;AAErB;;;GAGG;AACH,SAAS,OAAO,CAAC,CAAU,EAAE,CAAU;IACnC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IAEtB,wBAAwB;IACxB,0EAA0E;IAC1E,MAAM,EAAE,GAAI,CAA2B,EAAE,QAAQ,CAAC;IAClD,MAAM,EAAE,GAAI,CAA2B,EAAE,QAAQ,CAAC;IAElD,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAClD,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAElD,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEvC,2BAA2B;IAC3B,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC;IACvB,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC;IAEvB,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,QAAQ;QAAE,OAAQ,CAAY,GAAI,CAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5F,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,QAAQ;QAAE,OAAQ,CAAY,GAAI,CAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE5F,2BAA2B;IAC3B,MAAM,MAAM,GAAG,CAAC,YAAY,YAAY,CAAC;IACzC,MAAM,MAAM,GAAG,CAAC,YAAY,YAAY,CAAC;IAEzC,IAAI,MAAM,IAAI,MAAM,EAAE,CAAC;QACnB,OAAQ,CAA2B,CAAC,OAAO,CAAC,CAA0B,CAAC,CAAC;IAC5E,CAAC;IAED,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAChC,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAChC,MAAM,MAAM,GAAG,CAAC,YAAY,KAAK,CAAC;IAClC,MAAM,MAAM,GAAG,CAAC,YAAY,KAAK,CAAC;IAElC,MAAM,MAAM,GAAG,MAAM,IAAI,MAAM,CAAC;IAChC,MAAM,MAAM,GAAG,MAAM,IAAI,MAAM,CAAC;IAEhC,qCAAqC;IACrC,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,OAAO,MAAM,GAAG,MAAM,CAAC;IAC5B,CAAC;IAED,uCAAuC;IACvC,IAAI,MAAM,IAAI,MAAM,EAAE,CAAC;QACnB,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAE,CAAsB,CAAC,MAAM,CAAC,CAAC,CAAE,CAAe,CAAC;QACxE,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAE,CAAsB,CAAC,MAAM,CAAC,CAAC,CAAE,CAAe,CAAC;QAExE,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;QACxB,IAAI,GAAG,KAAK,IAAI,CAAC,MAAM;YAAE,OAAO,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;QAElD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YACvC,IAAI,IAAI,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC;QAChC,CAAC;QACD,OAAO,CAAC,CAAC;IACb,CAAC;IAED,0BAA0B;IAC1B,OAAQ,CAAY,GAAI,CAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClD,CAAC;AAED,kBAAkB;AAElB;;;GAGG;AACH,MAAM,OAAO,KAAK;IACL,MAAM,CAAI;IACV,QAAQ,CAAS;IAE1B,YAAY,GAAG,MAAS;QACpB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,MAAM,KAAK,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3C,GAAG,CAAC,CAAS,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5C,QAAQ,KAAK,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACpD,CAAC,MAAM,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC,KAAK,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;CAC3E;AAED;;;GAGG;AACH,MAAM,OAAO,YAAY;IACrB;;OAEG;IACI,SAAS,CAAM;IACd,SAAS,GAAkB,IAAI,CAAC;IAExC,MAAM,CAAC,OAAO,CAAC,CAAU,EAAE,CAAU,IAAY,OAAO,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAExE,YAAY,GAAG,QAAa;QACxB,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QACvB,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;YAC1B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC7B,IAAI,CAAC,OAAO,EAAE,CAAC;QACnB,CAAC;IACL,CAAC;IAEO,OAAO;QACX,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC;QAC3B,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC;QACvB,IAAI,GAAG,GAAG,CAAC;YAAE,OAAO;QAEpB,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC;YACpC,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,IAAI,GAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;gBACxC,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;YAC7B,CAAC;QACL,CAAC;QACD,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC;IACvB,CAAC;IAED;;;OAGG;IACH,IAAI,QAAQ;QACR,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC,SAAS,CAAC;QAEnD,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC;QAC3B,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC;QACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1B,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9C,CAAC;QACD,IAAI,CAAC,SAAS,GAAG,CAAC,GAAG,CAAC,CAAC;QACvB,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED,+BAA+B;IAC/B,WAAW,KAAK,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEvC,OAAO,CAAC,KAAsB;QAC1B,IAAI,IAAI,KAAK,KAAK;YAAE,OAAO,CAAC,CAAC;QAE7B,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC;QACzB,MAAM,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC;QAC1B,IAAI,EAAE,KAAK,EAAE;YAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAEvC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;QAC5B,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC;QAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;QAExB,IAAI,GAAG,KAAK,IAAI,CAAC,MAAM;YAAE,OAAO,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;QAElD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YACtC,IAAI,GAAG,KAAK,CAAC;gBAAE,OAAO,GAAG,CAAC;QAC9B,CAAC;QACD,OAAO,CAAC,CAAC;IACb,CAAC;IAED,IAAI,IAAI,KAAa,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;IACpD,OAAO,KAAc,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC;IAE1D,GAAG,CAAC,OAAU;QACV,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC;QAC3B,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC;QAEvB,yFAAyF;QACzF,IAAI,GAAG,GAAG,EAAE,EAAE,CAAC;YACX,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3B,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC;oBAAE,OAAO,IAAI,CAAC;YACpD,CAAC;YACD,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,IAAI,GAAG,GAAG,CAAC,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC;QAC5B,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC;YACjB,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;YAC/B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;YACvC,IAAI,GAAG,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC;YAC3B,IAAI,GAAG,GAAG,CAAC;gBAAE,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;;gBACtB,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC;QACxB,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,GAAG,CAAC,OAAU;QACV,2BAA2B;QAC3B,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YAClD,MAAM,KAAK,GAAG,OAAO,YAAY,YAAY,CAAC;YAC9C,MAAM,KAAK,GAAG,OAAO,YAAY,KAAK,CAAC;YACvC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAErC,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC;gBAC7B,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAC;YAC1F,CAAC;QACL,CAAC;aAAM,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;YAC9D,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC5C,CAAC;QACD,yBAAyB;QAEzB,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC;QAC3B,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC;QAEvB,wEAAwE;QACxE,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;YACV,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,GAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YAC7C,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;gBACd,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAClB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBACtB,OAAO,IAAI,CAAC;YAChB,CAAC;YACD,IAAI,OAAO,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC;QACnC,CAAC;aAAM,CAAC;YACJ,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAClB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,6CAA6C;QAC7C,IAAI,GAAG,GAAG,EAAE,EAAE,CAAC;YACX,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;gBACrC,IAAI,GAAG,KAAK,CAAC;oBAAE,OAAO,IAAI,CAAC;gBAC3B,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;oBACV,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;oBAC1B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;oBACtB,OAAO,IAAI,CAAC;gBAChB,CAAC;YACL,CAAC;YACD,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,sCAAsC;QACtC,IAAI,GAAG,GAAG,CAAC,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC;QACrC,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC;YACjB,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;YAC/B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;YACvC,IAAI,GAAG,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC;YAC3B,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;gBACV,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;gBACd,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;YAClB,CAAC;iBAAM,CAAC;gBACJ,GAAG,GAAG,GAAG,CAAC;gBACV,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC;YACnB,CAAC;QACL,CAAC;QACD,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;QAC5B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,OAAU;QACb,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC;QAC3B,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC;QAEvB,IAAI,GAAG,GAAG,EAAE,EAAE,CAAC;YACX,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3B,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;oBACjC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBACjB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;oBACtB,OAAO,IAAI,CAAC;gBAChB,CAAC;YACL,CAAC;YACD,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,IAAI,GAAG,GAAG,CAAC,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC;QAC5B,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC;YACjB,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;YAC/B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;YACvC,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;gBACZ,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBACnB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBACtB,OAAO,IAAI,CAAC;YAChB,CAAC;YACD,IAAI,GAAG,GAAG,CAAC;gBAAE,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;;gBACtB,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC;QACxB,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,KAAK;QACD,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QACnB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,KAAK;QACD,MAAM,CAAC,GAAG,IAAI,YAAY,EAAK,CAAC;QAChC,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACrC,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAC7B,OAAO,CAAC,CAAC;IACb,CAAC;IAED,KAAK,CAAC,KAAsB;QACxB,MAAM,CAAC,GAAG,IAAI,YAAY,EAAK,CAAC;QAChC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;QAC5B,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC;QAE7B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC,KAAK,EAAE,CAAC;QAC5C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC;QAE3C,MAAM,GAAG,GAAQ,EAAE,CAAC;QACpB,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;QACjB,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;QAE7C,gCAAgC;QAChC,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC;YAC1B,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YACtC,IAAI,GAAG,GAAG,CAAC;gBAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;iBAC5B,IAAI,GAAG,GAAG,CAAC;gBAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;iBACjC,CAAC;gBAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAAC,CAAC,EAAE,CAAC;YAAC,CAAC;QACtC,CAAC;QACD,OAAO,CAAC,GAAG,IAAI;YAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACrC,OAAO,CAAC,GAAG,IAAI;YAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAErC,CAAC,CAAC,SAAS,GAAG,GAAG,CAAC;QAClB,OAAO,CAAC,CAAC;IACb,CAAC;IAED,YAAY,CAAC,KAAsB;QAC/B,MAAM,CAAC,GAAG,IAAI,YAAY,EAAK,CAAC;QAChC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;QAC5B,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC;QAC7B,MAAM,GAAG,GAAQ,EAAE,CAAC;QACpB,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;QACjB,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;QAE7C,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC;YAC1B,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YACtC,IAAI,GAAG,GAAG,CAAC;gBAAE,CAAC,EAAE,CAAC;iBACZ,IAAI,GAAG,GAAG,CAAC;gBAAE,CAAC,EAAE,CAAC;iBACjB,CAAC;gBAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAAC,CAAC,EAAE,CAAC;YAAC,CAAC;QACtC,CAAC;QACD,CAAC,CAAC,SAAS,GAAG,GAAG,CAAC;QAClB,OAAO,CAAC,CAAC;IACb,CAAC;IAED,UAAU,CAAC,KAAsB;QAC7B,MAAM,CAAC,GAAG,IAAI,YAAY,EAAK,CAAC;QAChC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;QAC5B,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC;QAC7B,MAAM,GAAG,GAAQ,EAAE,CAAC;QACpB,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;QACjB,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;QAE7C,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC;YAC1B,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YACtC,IAAI,GAAG,GAAG,CAAC;gBAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;iBAC5B,IAAI,GAAG,GAAG,CAAC;gBAAE,CAAC,EAAE,CAAC;iBACjB,CAAC;gBAAC,CAAC,EAAE,CAAC;gBAAC,CAAC,EAAE,CAAC;YAAC,CAAC;QACtB,CAAC;QACD,OAAO,CAAC,GAAG,IAAI;YAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACrC,CAAC,CAAC,SAAS,GAAG,GAAG,CAAC;QAClB,OAAO,CAAC,CAAC;IACb,CAAC;IAED,mBAAmB,CAAC,KAAsB;QACtC,MAAM,CAAC,GAAG,IAAI,YAAY,EAAK,CAAC;QAChC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;QAC5B,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC;QAC7B,MAAM,GAAG,GAAQ,EAAE,CAAC;QACpB,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;QACjB,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;QAE7C,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC;YAC1B,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YACtC,IAAI,GAAG,GAAG,CAAC;gBAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;iBAC5B,IAAI,GAAG,GAAG,CAAC;gBAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;iBACjC,CAAC;gBAAC,CAAC,EAAE,CAAC;gBAAC,CAAC,EAAE,CAAC;YAAC,CAAC;QACtB,CAAC;QACD,OAAO,CAAC,GAAG,IAAI;YAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACrC,OAAO,CAAC,GAAG,IAAI;YAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACrC,CAAC,CAAC,SAAS,GAAG,GAAG,CAAC;QAClB,OAAO,CAAC,CAAC;IACb,CAAC;IAED,QAAQ;QACJ,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;QACpB,IAAI,CAAC,GAAG,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;QAElD,MAAM,OAAO,GAAsB,EAAE,CAAC;QACtC,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;QACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,MAAM,MAAM,GAAG,IAAI,YAAY,EAAK,CAAC;YACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACzB,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;oBAAE,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/D,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACzB,CAAC;QACD,OAAO,IAAI,YAAY,CAAkB,GAAG,OAAO,CAAC,CAAC;IACzD,CAAC;IAED,gBAAgB,CAAI,KAAsB;QACtC,MAAM,MAAM,GAAG,IAAI,YAAY,EAAiB,CAAC;QACjD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;QAC5B,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC;QAE7B,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;YACnB,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;gBACnB,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC3C,CAAC;QACL,CAAC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,uBAAuB;IACvB,QAAQ,CAAC,KAAsB;QAC3B,IAAI,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI;YAAE,OAAO,KAAK,CAAC;QACzC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;QACjB,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC;QACpD,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YACxC,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YACtC,IAAI,GAAG,GAAG,CAAC;gBAAE,OAAO,KAAK,CAAC;YAC1B,IAAI,GAAG,GAAG,CAAC;gBAAE,CAAC,EAAE,CAAC;iBACZ,CAAC;gBAAC,CAAC,EAAE,CAAC;gBAAC,CAAC,EAAE,CAAC;YAAC,CAAC;QACtB,CAAC;QACD,OAAO,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC;IAC7B,CAAC;IAED,UAAU,CAAC,KAAsB,IAAa,OAAO,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC5E,cAAc,CAAC,KAAsB,IAAa,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1G,MAAM,CAAC,KAAsB,IAAa,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC7E,KAAK,KAAa,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IACnD,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAkB,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAE5D,QAAQ;QACJ,IAAI,IAAI,CAAC,OAAO,EAAE;YAAE,OAAO,GAAG,CAAC;QAC/B,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;YACxC,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;gBAAE,OAAO,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;YACnD,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC;QACtB,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;IACzC,CAAC;IAED,CAAC,MAAM,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC,KAAa,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;CACnF;AAED,MAAM,UAAU,QAAQ,KAAyB,OAAO,IAAI,YAAY,EAAK,CAAC,CAAC,CAAC;AAChF,MAAM,UAAU,SAAS,CAAI,OAAU,IAAqB,OAAO,IAAI,YAAY,CAAI,OAAO,CAAC,CAAC,CAAC,CAAC;AAClG,MAAM,UAAU,YAAY,CAAI,QAAqB,IAAqB,OAAO,IAAI,YAAY,CAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|