@signalium/query 1.0.4 → 1.0.6
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/CHANGELOG.md +23 -0
- package/dist/cjs/MemoryEvictionManager.js +56 -0
- package/dist/cjs/MemoryEvictionManager.js.map +1 -0
- package/dist/cjs/NetworkManager.js +21 -1
- package/dist/cjs/NetworkManager.js.map +1 -1
- package/dist/cjs/QueryClient.js +12 -600
- package/dist/cjs/QueryClient.js.map +1 -1
- package/dist/cjs/QueryResult.js +491 -0
- package/dist/cjs/QueryResult.js.map +1 -0
- package/dist/cjs/QueryStore.js +2 -6
- package/dist/cjs/QueryStore.js.map +1 -1
- package/dist/cjs/RefetchManager.js +88 -0
- package/dist/cjs/RefetchManager.js.map +1 -0
- package/dist/cjs/errors.js +13 -12
- package/dist/cjs/errors.js.map +1 -1
- package/dist/cjs/index.js +8 -11
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/parseEntities.js +1 -1
- package/dist/cjs/parseEntities.js.map +1 -1
- package/dist/cjs/proxy.js +2 -2
- package/dist/cjs/proxy.js.map +1 -1
- package/dist/cjs/query.js +60 -19
- package/dist/cjs/query.js.map +1 -1
- package/dist/cjs/stores/async.js +290 -2
- package/dist/cjs/stores/async.js.map +1 -1
- package/dist/cjs/stores/shared.js +19 -0
- package/dist/cjs/stores/shared.js.map +1 -0
- package/dist/cjs/stores/sync.js +201 -4
- package/dist/cjs/stores/sync.js.map +1 -1
- package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/cjs/typeDefs.js +221 -116
- package/dist/cjs/typeDefs.js.map +1 -1
- package/dist/cjs/utils.js +0 -42
- package/dist/cjs/utils.js.map +1 -1
- package/dist/esm/MemoryEvictionManager.d.ts +19 -0
- package/dist/esm/MemoryEvictionManager.d.ts.map +1 -0
- package/dist/esm/MemoryEvictionManager.js +51 -0
- package/dist/esm/MemoryEvictionManager.js.map +1 -0
- package/dist/esm/NetworkManager.d.ts +8 -0
- package/dist/esm/NetworkManager.d.ts.map +1 -1
- package/dist/esm/NetworkManager.js +19 -0
- package/dist/esm/NetworkManager.js.map +1 -1
- package/dist/esm/QueryClient.d.ts +33 -86
- package/dist/esm/QueryClient.d.ts.map +1 -1
- package/dist/esm/QueryClient.js +11 -599
- package/dist/esm/QueryClient.js.map +1 -1
- package/dist/esm/QueryResult.d.ts +66 -0
- package/dist/esm/QueryResult.d.ts.map +1 -0
- package/dist/esm/QueryResult.js +487 -0
- package/dist/esm/QueryResult.js.map +1 -0
- package/dist/esm/QueryStore.d.ts.map +1 -1
- package/dist/esm/QueryStore.js +2 -6
- package/dist/esm/QueryStore.js.map +1 -1
- package/dist/esm/RefetchManager.d.ts +18 -0
- package/dist/esm/RefetchManager.d.ts.map +1 -0
- package/dist/esm/RefetchManager.js +83 -0
- package/dist/esm/RefetchManager.js.map +1 -0
- package/dist/esm/errors.d.ts.map +1 -1
- package/dist/esm/errors.js +13 -12
- package/dist/esm/errors.js.map +1 -1
- package/dist/esm/index.d.ts +4 -5
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +4 -3
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/parseEntities.js +2 -2
- package/dist/esm/parseEntities.js.map +1 -1
- package/dist/esm/proxy.js +3 -3
- package/dist/esm/proxy.js.map +1 -1
- package/dist/esm/query.d.ts +2 -0
- package/dist/esm/query.d.ts.map +1 -1
- package/dist/esm/query.js +59 -20
- package/dist/esm/query.js.map +1 -1
- package/dist/esm/stores/async.d.ts +63 -1
- package/dist/esm/stores/async.d.ts.map +1 -1
- package/dist/esm/stores/async.js +289 -1
- package/dist/esm/stores/async.js.map +1 -1
- package/dist/esm/stores/shared.d.ts +8 -0
- package/dist/esm/stores/shared.d.ts.map +1 -0
- package/dist/esm/stores/shared.js +11 -0
- package/dist/esm/stores/shared.js.map +1 -0
- package/dist/esm/stores/sync.d.ts +37 -1
- package/dist/esm/stores/sync.d.ts.map +1 -1
- package/dist/esm/stores/sync.js +198 -1
- package/dist/esm/stores/sync.js.map +1 -1
- package/dist/esm/typeDefs.d.ts +25 -8
- package/dist/esm/typeDefs.d.ts.map +1 -1
- package/dist/esm/typeDefs.js +220 -116
- package/dist/esm/typeDefs.js.map +1 -1
- package/dist/esm/types.d.ts +2 -1
- package/dist/esm/types.d.ts.map +1 -1
- package/dist/esm/utils.d.ts +1 -4
- package/dist/esm/utils.d.ts.map +1 -1
- package/dist/esm/utils.js +0 -40
- package/dist/esm/utils.js.map +1 -1
- package/package.json +3 -3
package/dist/cjs/typeDefs.js
CHANGED
|
@@ -4,46 +4,94 @@ exports.t = exports.ValidatorDef = void 0;
|
|
|
4
4
|
exports.defineArray = defineArray;
|
|
5
5
|
exports.defineRecord = defineRecord;
|
|
6
6
|
exports.defineObject = defineObject;
|
|
7
|
+
exports.reifyObjectShape = reifyObjectShape;
|
|
7
8
|
exports.getFormat = getFormat;
|
|
8
9
|
exports.registerFormat = registerFormat;
|
|
9
10
|
exports.entity = entity;
|
|
10
11
|
const types_js_1 = require("./types.js");
|
|
11
|
-
const
|
|
12
|
+
const utils_1 = require("signalium/utils");
|
|
13
|
+
const entries = Object.entries;
|
|
14
|
+
const isArray = Array.isArray;
|
|
12
15
|
class ValidatorDef {
|
|
16
|
+
kind;
|
|
13
17
|
mask;
|
|
14
|
-
shape;
|
|
15
|
-
subEntityPaths;
|
|
16
|
-
values;
|
|
17
|
-
typenameField;
|
|
18
|
-
typenameValue;
|
|
19
|
-
idField;
|
|
20
18
|
_optional;
|
|
21
19
|
_nullable;
|
|
22
20
|
_nullish;
|
|
23
|
-
|
|
21
|
+
_shapeKey = undefined;
|
|
22
|
+
_shape;
|
|
23
|
+
subEntityPaths = undefined;
|
|
24
|
+
typenameField = undefined;
|
|
25
|
+
typenameValue = undefined;
|
|
26
|
+
idField = undefined;
|
|
27
|
+
values = undefined;
|
|
28
|
+
constructor(kind, mask, shape, values = undefined) {
|
|
29
|
+
this.kind = kind;
|
|
24
30
|
this.mask = mask;
|
|
25
|
-
this.
|
|
26
|
-
this.subEntityPaths = subEntityPaths;
|
|
31
|
+
this._shape = shape;
|
|
27
32
|
this.values = values;
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
33
|
+
}
|
|
34
|
+
static cloneWith(def, mask, values = undefined) {
|
|
35
|
+
const newDef = new ValidatorDef(def.kind, mask | def.mask, def._shape, values);
|
|
36
|
+
newDef.subEntityPaths = def.subEntityPaths;
|
|
37
|
+
newDef.values = def.values;
|
|
38
|
+
newDef.typenameField = def.typenameField;
|
|
39
|
+
newDef.typenameValue = def.typenameValue;
|
|
40
|
+
newDef.idField = def.idField;
|
|
41
|
+
return newDef;
|
|
42
|
+
}
|
|
43
|
+
reifyShape() {
|
|
44
|
+
if (this._shapeKey === undefined) {
|
|
45
|
+
switch (this.kind) {
|
|
46
|
+
case 5 /* ComplexTypeDefKind.ENTITY */: {
|
|
47
|
+
const shape = this._shape();
|
|
48
|
+
this._shape = reifyObjectShape(this, shape);
|
|
49
|
+
break;
|
|
50
|
+
}
|
|
51
|
+
case 0 /* ComplexTypeDefKind.OBJECT */:
|
|
52
|
+
this._shape = reifyObjectShape(this, this._shape);
|
|
53
|
+
break;
|
|
54
|
+
case 1 /* ComplexTypeDefKind.UNION */:
|
|
55
|
+
this._shape = reifyUnionShape(this, this._shape);
|
|
56
|
+
break;
|
|
57
|
+
case 3 /* ComplexTypeDefKind.ARRAY */:
|
|
58
|
+
case 4 /* ComplexTypeDefKind.RECORD */: {
|
|
59
|
+
const shape = this._shape;
|
|
60
|
+
this._shapeKey = (0, utils_1.hashValue)([this.mask, this.values, shape.shapeKey]);
|
|
61
|
+
if (shape.mask & (1024 /* Mask.ENTITY */ | 2048 /* Mask.HAS_SUB_ENTITY */)) {
|
|
62
|
+
this.mask |= 2048 /* Mask.HAS_SUB_ENTITY */;
|
|
63
|
+
}
|
|
64
|
+
break;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
get shape() {
|
|
70
|
+
this.reifyShape();
|
|
71
|
+
return this._shape;
|
|
72
|
+
}
|
|
73
|
+
get shapeKey() {
|
|
74
|
+
this.reifyShape();
|
|
75
|
+
return this._shapeKey;
|
|
76
|
+
}
|
|
77
|
+
set shapeKey(key) {
|
|
78
|
+
this._shapeKey = key >>> 0;
|
|
31
79
|
}
|
|
32
80
|
get optional() {
|
|
33
81
|
if (this._optional === undefined) {
|
|
34
|
-
this._optional =
|
|
82
|
+
this._optional = ValidatorDef.cloneWith(this, 1 /* Mask.UNDEFINED */);
|
|
35
83
|
}
|
|
36
84
|
return this._optional;
|
|
37
85
|
}
|
|
38
86
|
get nullable() {
|
|
39
87
|
if (this._nullable === undefined) {
|
|
40
|
-
this._nullable =
|
|
88
|
+
this._nullable = ValidatorDef.cloneWith(this, 2 /* Mask.NULL */);
|
|
41
89
|
}
|
|
42
90
|
return this._nullable;
|
|
43
91
|
}
|
|
44
92
|
get nullish() {
|
|
45
93
|
if (this._nullish === undefined) {
|
|
46
|
-
this._nullish =
|
|
94
|
+
this._nullish = ValidatorDef.cloneWith(this, 1 /* Mask.UNDEFINED */ | 2 /* Mask.NULL */);
|
|
47
95
|
}
|
|
48
96
|
return this._nullish;
|
|
49
97
|
}
|
|
@@ -53,134 +101,191 @@ exports.ValidatorDef = ValidatorDef;
|
|
|
53
101
|
// Complex Type Definitions
|
|
54
102
|
// -----------------------------------------------------------------------------
|
|
55
103
|
function defineArray(shape) {
|
|
56
|
-
|
|
57
|
-
// Propagate HAS_SUB_ENTITY flag if the shape contains entities
|
|
58
|
-
if (shape instanceof ValidatorDef && (shape.mask & (1024 /* Mask.ENTITY */ | 2048 /* Mask.HAS_SUB_ENTITY */)) !== 0) {
|
|
59
|
-
mask |= 2048 /* Mask.HAS_SUB_ENTITY */;
|
|
60
|
-
}
|
|
61
|
-
return new ValidatorDef(mask, shape);
|
|
104
|
+
return new ValidatorDef(3 /* ComplexTypeDefKind.ARRAY */, 64 /* Mask.ARRAY */, shape);
|
|
62
105
|
}
|
|
63
106
|
function defineRecord(shape) {
|
|
64
|
-
|
|
65
|
-
let mask = 256 /* Mask.RECORD */ | 32 /* Mask.OBJECT */;
|
|
66
|
-
// Propagate HAS_SUB_ENTITY flag if the shape contains entities
|
|
67
|
-
if (shape instanceof ValidatorDef && (shape.mask & (1024 /* Mask.ENTITY */ | 2048 /* Mask.HAS_SUB_ENTITY */)) !== 0) {
|
|
68
|
-
mask |= 2048 /* Mask.HAS_SUB_ENTITY */;
|
|
69
|
-
}
|
|
70
|
-
return new ValidatorDef(mask, shape);
|
|
107
|
+
return new ValidatorDef(4 /* ComplexTypeDefKind.RECORD */, 256 /* Mask.RECORD */ | 32 /* Mask.OBJECT */, shape);
|
|
71
108
|
}
|
|
72
109
|
function defineObject(shape) {
|
|
73
|
-
|
|
74
|
-
(0, utils_js_1.extractShapeMetadata)(def, shape);
|
|
75
|
-
return def;
|
|
110
|
+
return new ValidatorDef(0 /* ComplexTypeDefKind.OBJECT */, 32 /* Mask.OBJECT */, shape);
|
|
76
111
|
}
|
|
77
|
-
const addShapeToUnion = (shape, definition, unionTypenameField) => {
|
|
78
|
-
const mask = definition.mask;
|
|
79
|
-
if ((mask & 512 /* Mask.UNION */) !== 0) {
|
|
80
|
-
// Merge nested union into parent union
|
|
81
|
-
const nestedUnion = definition;
|
|
82
|
-
// Check typename field consistency
|
|
83
|
-
if (nestedUnion.typenameField !== undefined) {
|
|
84
|
-
if (unionTypenameField !== undefined && unionTypenameField !== nestedUnion.typenameField) {
|
|
85
|
-
throw new Error(`Union typename field conflict: Cannot merge unions with different typename fields ('${unionTypenameField}' vs '${nestedUnion.typenameField}')`);
|
|
86
|
-
}
|
|
87
|
-
unionTypenameField = nestedUnion.typenameField;
|
|
88
|
-
}
|
|
89
|
-
// Merge nested union's shape into parent
|
|
90
|
-
if (nestedUnion.shape !== undefined) {
|
|
91
|
-
for (const key of [...Object.keys(nestedUnion.shape), types_js_1.ARRAY_KEY, types_js_1.RECORD_KEY]) {
|
|
92
|
-
// Check for conflicts
|
|
93
|
-
const value = nestedUnion.shape[key];
|
|
94
|
-
if (shape[key] !== undefined && shape[key] !== value) {
|
|
95
|
-
throw new Error(`Union merge conflict: Duplicate typename value '${String(key)}' found when merging nested unions`);
|
|
96
|
-
}
|
|
97
|
-
// coerce type because we know the value is the same type as the key
|
|
98
|
-
shape[key] = value;
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
return unionTypenameField;
|
|
102
|
-
}
|
|
103
|
-
else if ((mask & 64 /* Mask.ARRAY */) !== 0) {
|
|
104
|
-
if (shape[types_js_1.ARRAY_KEY] !== undefined) {
|
|
105
|
-
throw new Error('Array shape already defined');
|
|
106
|
-
}
|
|
107
|
-
shape[types_js_1.ARRAY_KEY] = definition.shape;
|
|
108
|
-
return unionTypenameField;
|
|
109
|
-
}
|
|
110
|
-
else if ((mask & 256 /* Mask.RECORD */) !== 0) {
|
|
111
|
-
if (shape[types_js_1.RECORD_KEY] !== undefined) {
|
|
112
|
-
throw new Error('Record shape already defined');
|
|
113
|
-
}
|
|
114
|
-
shape[types_js_1.RECORD_KEY] = definition.shape;
|
|
115
|
-
return unionTypenameField;
|
|
116
|
-
}
|
|
117
|
-
else {
|
|
118
|
-
// Make sure the type is fully extracted, so we can get the typename field and value
|
|
119
|
-
(0, utils_js_1.extractShape)(definition);
|
|
120
|
-
// definition is ObjectDef | EntityDef
|
|
121
|
-
const typenameField = definition.typenameField;
|
|
122
|
-
const typename = definition.typenameValue;
|
|
123
|
-
if (typename === undefined) {
|
|
124
|
-
throw new Error('Object definitions must have a typename to be in a union with other objects, records, or arrays');
|
|
125
|
-
}
|
|
126
|
-
if (unionTypenameField !== undefined && typenameField !== unionTypenameField) {
|
|
127
|
-
throw new Error('Object definitions must have the same typename field to be in the same union');
|
|
128
|
-
}
|
|
129
|
-
shape[typename] = definition;
|
|
130
|
-
return typenameField;
|
|
131
|
-
}
|
|
132
|
-
};
|
|
133
112
|
function defineUnion(...types) {
|
|
134
113
|
let mask = 0;
|
|
135
114
|
let definition;
|
|
136
115
|
let shape;
|
|
137
116
|
let values;
|
|
138
|
-
let unionTypenameField;
|
|
139
117
|
for (const type of types) {
|
|
140
118
|
if (typeof type === 'number') {
|
|
141
119
|
mask |= type;
|
|
142
120
|
continue;
|
|
143
121
|
}
|
|
144
|
-
|
|
145
|
-
const typeValues = isSet ? type : type.values;
|
|
146
|
-
// Handle Set-based constants/enums
|
|
147
|
-
if (typeValues !== undefined) {
|
|
122
|
+
if (type instanceof Set) {
|
|
148
123
|
if (values === undefined) {
|
|
149
|
-
values = new Set(
|
|
124
|
+
values = new Set(type);
|
|
150
125
|
}
|
|
151
126
|
else {
|
|
152
|
-
for (const val of
|
|
127
|
+
for (const val of type) {
|
|
153
128
|
values.add(val);
|
|
154
129
|
}
|
|
155
130
|
}
|
|
156
|
-
|
|
157
|
-
continue;
|
|
158
|
-
}
|
|
131
|
+
continue;
|
|
159
132
|
}
|
|
160
|
-
// We know it's a complex type at this point because if it was a Set,
|
|
161
|
-
// we would have already handled it above.
|
|
162
|
-
const typeDef = type;
|
|
163
|
-
mask |= typeDef.mask;
|
|
164
133
|
if (definition === undefined) {
|
|
165
|
-
definition =
|
|
134
|
+
definition = type;
|
|
166
135
|
continue;
|
|
167
136
|
}
|
|
168
137
|
if (shape === undefined) {
|
|
169
|
-
shape =
|
|
170
|
-
unionTypenameField = addShapeToUnion(shape, definition, unionTypenameField);
|
|
138
|
+
shape = [definition];
|
|
171
139
|
}
|
|
172
|
-
|
|
140
|
+
shape.push(type);
|
|
173
141
|
}
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
142
|
+
if (definition === undefined) {
|
|
143
|
+
// It was a union of primitives, so return the mask
|
|
144
|
+
if (values === undefined) {
|
|
145
|
+
// This type coercion is incorrect, but we can't return the mask as a Mask
|
|
146
|
+
// because that loses the type information about the union, which breaks
|
|
147
|
+
// inference.
|
|
148
|
+
//
|
|
149
|
+
// TODO: Figure out how to make this correct type-wise
|
|
150
|
+
return mask;
|
|
151
|
+
}
|
|
152
|
+
// It was a union of enums/constants, so return the value as a Set
|
|
153
|
+
if (mask === 0) {
|
|
154
|
+
// This type coercion is incorrect, but we can't return the mask as a Mask
|
|
155
|
+
// because that loses the type information about the union, which breaks
|
|
156
|
+
// inference.
|
|
157
|
+
//
|
|
158
|
+
// TODO: Figure out how to make this correct type-wise
|
|
159
|
+
return values;
|
|
160
|
+
}
|
|
161
|
+
// It was a union of primitives and enums, so return the mask and values as a new ValidatorDef
|
|
162
|
+
return new ValidatorDef(2 /* ComplexTypeDefKind.PRIMITIVE_UNION */, mask | 512 /* Mask.UNION */, undefined, values);
|
|
163
|
+
}
|
|
164
|
+
// It was a single complex type, so return the clone with the new mask and values
|
|
165
|
+
if (shape === undefined) {
|
|
166
|
+
return ValidatorDef.cloneWith(definition, mask | 512 /* Mask.UNION */, values);
|
|
167
|
+
}
|
|
168
|
+
return new ValidatorDef(1 /* ComplexTypeDefKind.UNION */, mask | 512 /* Mask.UNION */, shape, values);
|
|
169
|
+
}
|
|
170
|
+
// -----------------------------------------------------------------------------
|
|
171
|
+
// Shape Reification
|
|
172
|
+
// -----------------------------------------------------------------------------
|
|
173
|
+
function reifyObjectShape(def, shape) {
|
|
174
|
+
// create a hash of the shape, starting with the object mask as the base
|
|
175
|
+
let shapeKey = (0, utils_1.hashValue)([def.mask, def.values]);
|
|
176
|
+
for (const [key, value] of entries(shape)) {
|
|
177
|
+
switch (typeof value) {
|
|
178
|
+
case 'number':
|
|
179
|
+
if ((value & 128 /* Mask.ID */) !== 0) {
|
|
180
|
+
if (def.idField !== undefined) {
|
|
181
|
+
throw new Error(`Duplicate id field: ${key}`);
|
|
182
|
+
}
|
|
183
|
+
def.idField = key;
|
|
184
|
+
}
|
|
185
|
+
// Add to shape key (order independent operation)
|
|
186
|
+
shapeKey += (0, utils_1.hashValue)(key) ^ value;
|
|
187
|
+
break;
|
|
188
|
+
case 'string':
|
|
189
|
+
// This is a typename field (plain string value)
|
|
190
|
+
if (def.typenameField !== undefined && def.typenameField !== key) {
|
|
191
|
+
throw new Error(`Duplicate typename field: ${key}`);
|
|
192
|
+
}
|
|
193
|
+
def.typenameField = key;
|
|
194
|
+
def.typenameValue = value;
|
|
195
|
+
// Add to shape key (order independent operation)
|
|
196
|
+
shapeKey += (0, utils_1.hashValue)(key) ^ (0, utils_1.hashValue)(value);
|
|
197
|
+
break;
|
|
198
|
+
case 'object':
|
|
199
|
+
if (value instanceof Set) {
|
|
200
|
+
shapeKey ^= (0, utils_1.hashValue)(key) ^ (0, utils_1.hashValue)(value);
|
|
201
|
+
break;
|
|
202
|
+
}
|
|
203
|
+
// Add to shape key (order independent operation)
|
|
204
|
+
shapeKey += (0, utils_1.hashValue)(key) ^ value.shapeKey;
|
|
205
|
+
if (value.mask & (1024 /* Mask.ENTITY */ | 2048 /* Mask.HAS_SUB_ENTITY */)) {
|
|
206
|
+
def.mask |= 2048 /* Mask.HAS_SUB_ENTITY */;
|
|
207
|
+
if (def.subEntityPaths === undefined) {
|
|
208
|
+
def.subEntityPaths = key;
|
|
209
|
+
}
|
|
210
|
+
else if (isArray(def.subEntityPaths)) {
|
|
211
|
+
def.subEntityPaths.push(key);
|
|
212
|
+
}
|
|
213
|
+
else {
|
|
214
|
+
def.subEntityPaths = [def.subEntityPaths, key];
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
break;
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
// Convert to unsigned 32-bit integer
|
|
221
|
+
def.shapeKey = shapeKey >>> 0;
|
|
222
|
+
return shape;
|
|
223
|
+
}
|
|
224
|
+
function reifyUnionShape(def, defs) {
|
|
225
|
+
let mask = def.mask;
|
|
226
|
+
let shape = Object.create(null);
|
|
227
|
+
let unionTypenameField;
|
|
228
|
+
// Start with the union mask and any values as the base
|
|
229
|
+
let shapeKey = (0, utils_1.hashValue)([mask, def.values]);
|
|
230
|
+
for (const nestedDef of defs) {
|
|
231
|
+
const nestedMask = nestedDef.mask;
|
|
232
|
+
mask |= nestedMask;
|
|
233
|
+
// load the shape key and also reify the shape if not yet reified
|
|
234
|
+
shapeKey += nestedDef.shapeKey;
|
|
235
|
+
if ((nestedMask & 512 /* Mask.UNION */) !== 0) {
|
|
236
|
+
// Merge nested union into parent union
|
|
237
|
+
const nestedUnion = nestedDef;
|
|
238
|
+
// Check typename field consistency
|
|
239
|
+
if (nestedUnion.typenameField !== undefined) {
|
|
240
|
+
if (unionTypenameField !== undefined && unionTypenameField !== nestedUnion.typenameField) {
|
|
241
|
+
throw new Error(`Union typename field conflict: Cannot merge unions with different typename fields ('${unionTypenameField}' vs '${nestedUnion.typenameField}')`);
|
|
242
|
+
}
|
|
243
|
+
unionTypenameField = nestedUnion.typenameField;
|
|
244
|
+
}
|
|
245
|
+
const nestedShape = nestedUnion.shape;
|
|
246
|
+
// Merge nested union's shape into parent
|
|
247
|
+
if (nestedShape !== undefined) {
|
|
248
|
+
for (const key of [...Object.keys(nestedShape), types_js_1.ARRAY_KEY, types_js_1.RECORD_KEY]) {
|
|
249
|
+
// Check for conflicts
|
|
250
|
+
const value = nestedShape[key];
|
|
251
|
+
if (shape[key] !== undefined && shape[key] !== value) {
|
|
252
|
+
throw new Error(`Union merge conflict: Duplicate typename value '${String(key)}' found when merging nested unions (${String(shape[key])} vs ${String(value)})`);
|
|
253
|
+
}
|
|
254
|
+
// coerce type because we know the value is the same type as the key
|
|
255
|
+
shape[key] = value;
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
else if ((nestedMask & 64 /* Mask.ARRAY */) !== 0) {
|
|
260
|
+
if (shape[types_js_1.ARRAY_KEY] !== undefined) {
|
|
261
|
+
throw new Error('Array shape already defined');
|
|
262
|
+
}
|
|
263
|
+
shape[types_js_1.ARRAY_KEY] = nestedDef.shape;
|
|
264
|
+
}
|
|
265
|
+
else if ((nestedMask & 256 /* Mask.RECORD */) !== 0) {
|
|
266
|
+
if (shape[types_js_1.RECORD_KEY] !== undefined) {
|
|
267
|
+
throw new Error('Record shape already defined');
|
|
268
|
+
}
|
|
269
|
+
shape[types_js_1.RECORD_KEY] = nestedDef.shape;
|
|
270
|
+
}
|
|
271
|
+
else {
|
|
272
|
+
// definition is ObjectDef | EntityDef
|
|
273
|
+
const typenameField = nestedDef.typenameField;
|
|
274
|
+
const typename = nestedDef.typenameValue;
|
|
275
|
+
if (typename === undefined) {
|
|
276
|
+
throw new Error('Object definitions must have a typename to be in a union with other objects, records, or arrays');
|
|
277
|
+
}
|
|
278
|
+
if (unionTypenameField !== undefined && typenameField !== unionTypenameField) {
|
|
279
|
+
throw new Error('Object definitions must have the same typename field to be in the same union');
|
|
280
|
+
}
|
|
281
|
+
unionTypenameField = typenameField;
|
|
282
|
+
shape[typename] = nestedDef;
|
|
283
|
+
}
|
|
182
284
|
}
|
|
183
|
-
|
|
285
|
+
def.typenameField = unionTypenameField;
|
|
286
|
+
def.shapeKey = shapeKey >>> 0;
|
|
287
|
+
def.mask = mask;
|
|
288
|
+
return shape;
|
|
184
289
|
}
|
|
185
290
|
// -----------------------------------------------------------------------------
|
|
186
291
|
// Marker Functions
|
|
@@ -226,7 +331,7 @@ function registerFormat(name, type, parse, serialize) {
|
|
|
226
331
|
// Entity Definitions
|
|
227
332
|
// -----------------------------------------------------------------------------
|
|
228
333
|
function entity(shape) {
|
|
229
|
-
return new ValidatorDef(
|
|
334
|
+
return new ValidatorDef(5 /* ComplexTypeDefKind.ENTITY */,
|
|
230
335
|
// The mask should be OBJECT | ENTITY so that values match when compared
|
|
231
336
|
1024 /* Mask.ENTITY */ | 32 /* Mask.OBJECT */, shape);
|
|
232
337
|
}
|
package/dist/cjs/typeDefs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typeDefs.js","sourceRoot":"","sources":["../../src/typeDefs.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"typeDefs.js","sourceRoot":"","sources":["../../src/typeDefs.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/utils.js
CHANGED
|
@@ -1,49 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.extractShapeMetadata = extractShapeMetadata;
|
|
4
|
-
exports.extractShape = extractShape;
|
|
5
3
|
exports.typeMaskOf = typeMaskOf;
|
|
6
|
-
const typeDefs_js_1 = require("./typeDefs.js");
|
|
7
|
-
const entries = Object.entries;
|
|
8
4
|
const isArray = Array.isArray;
|
|
9
|
-
function extractShapeMetadata(def, shape) {
|
|
10
|
-
for (const [key, value] of Object.entries(shape)) {
|
|
11
|
-
if (value instanceof typeDefs_js_1.ValidatorDef && (value.mask & (1024 /* Mask.ENTITY */ | 2048 /* Mask.HAS_SUB_ENTITY */)) !== 0) {
|
|
12
|
-
if (def.subEntityPaths === undefined) {
|
|
13
|
-
def.subEntityPaths = key;
|
|
14
|
-
}
|
|
15
|
-
else if (isArray(def.subEntityPaths)) {
|
|
16
|
-
def.subEntityPaths.push(key);
|
|
17
|
-
}
|
|
18
|
-
else {
|
|
19
|
-
def.subEntityPaths = [def.subEntityPaths, key];
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
// Check if this is a typename field (plain string value)
|
|
23
|
-
if (typeof value === 'string') {
|
|
24
|
-
if (def.typenameField !== undefined) {
|
|
25
|
-
throw new Error(`Duplicate typename field: ${key}`);
|
|
26
|
-
}
|
|
27
|
-
def.typenameField = key;
|
|
28
|
-
def.typenameValue = value;
|
|
29
|
-
}
|
|
30
|
-
// Check if this is an id field (Mask.ID)
|
|
31
|
-
else if (typeof value === 'number' && (value & 128 /* Mask.ID */) !== 0) {
|
|
32
|
-
if (def.idField !== undefined) {
|
|
33
|
-
throw new Error(`Duplicate id field: ${key}`);
|
|
34
|
-
}
|
|
35
|
-
def.idField = key;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
function extractShape(def) {
|
|
40
|
-
let shape = def.shape;
|
|
41
|
-
if (typeof shape === 'function') {
|
|
42
|
-
shape = def.shape = shape(typeDefs_js_1.t);
|
|
43
|
-
extractShapeMetadata(def, shape);
|
|
44
|
-
}
|
|
45
|
-
return shape;
|
|
46
|
-
}
|
|
47
5
|
function typeMaskOf(value) {
|
|
48
6
|
if (value === null)
|
|
49
7
|
return 2 /* Mask.NULL */;
|
package/dist/cjs/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":";;AAIA,gCAiBC;AAnBD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;AAE9B,SAAgB,UAAU,CAAC,KAAc;IACvC,IAAI,KAAK,KAAK,IAAI;QAAE,yBAAiB;IAErC,QAAQ,OAAO,KAAK,EAAE,CAAC;QACrB,KAAK,QAAQ;YACX,2BAAmB;QACrB,KAAK,QAAQ;YACX,2BAAmB;QACrB,KAAK,SAAS;YACZ,6BAAoB;QACtB,KAAK,WAAW;YACd,8BAAsB;QACxB,KAAK,QAAQ;YACX,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,qBAAY,CAAC,qBAAY,CAAC;QACnD;YACE,MAAM,IAAI,KAAK,CAAC,iBAAiB,OAAO,KAAK,EAAE,CAAC,CAAC;IACrD,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { type QueryClient } from './QueryClient.js';
|
|
2
|
+
export declare class MemoryEvictionManager {
|
|
3
|
+
private queryClient;
|
|
4
|
+
private multiplier;
|
|
5
|
+
private intervalId;
|
|
6
|
+
private currentFlush;
|
|
7
|
+
private nextFlush;
|
|
8
|
+
constructor(queryClient: QueryClient, multiplier?: number);
|
|
9
|
+
scheduleEviction(queryKey: number): void;
|
|
10
|
+
cancelEviction(queryKey: number): void;
|
|
11
|
+
private tick;
|
|
12
|
+
destroy(): void;
|
|
13
|
+
}
|
|
14
|
+
export declare class NoOpMemoryEvictionManager {
|
|
15
|
+
scheduleEviction(_queryKey: number): void;
|
|
16
|
+
cancelEviction(_queryKey: number): void;
|
|
17
|
+
destroy(): void;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=MemoryEvictionManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MemoryEvictionManager.d.ts","sourceRoot":"","sources":["../../src/MemoryEvictionManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAKpD,qBAAa,qBAAqB;IAM9B,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,UAAU;IANpB,OAAO,CAAC,UAAU,CAAiB;IACnC,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,SAAS,CAAqB;gBAG5B,WAAW,EAAE,WAAW,EACxB,UAAU,GAAE,MAAU;IAKhC,gBAAgB,CAAC,QAAQ,EAAE,MAAM;IAMjC,cAAc,CAAC,QAAQ,EAAE,MAAM;IAM/B,OAAO,CAAC,IAAI,CAWV;IAEF,OAAO,IAAI,IAAI;CAGhB;AAGD,qBAAa,yBAAyB;IACpC,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAIzC,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAIvC,OAAO,IAAI,IAAI;CAGhB"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
const EVICTION_INTERVAL = 60 * 1000; // 1 minute
|
|
2
|
+
// Memory eviction manager - uses a single interval with rotating sets to avoid timeout overhead
|
|
3
|
+
export class MemoryEvictionManager {
|
|
4
|
+
queryClient;
|
|
5
|
+
multiplier;
|
|
6
|
+
intervalId;
|
|
7
|
+
currentFlush = new Set(); // Queries to evict on next tick
|
|
8
|
+
nextFlush = new Set(); // Queries to evict on tick after next
|
|
9
|
+
constructor(queryClient, multiplier = 1) {
|
|
10
|
+
this.queryClient = queryClient;
|
|
11
|
+
this.multiplier = multiplier;
|
|
12
|
+
this.intervalId = setInterval(this.tick, EVICTION_INTERVAL * this.multiplier);
|
|
13
|
+
}
|
|
14
|
+
scheduleEviction(queryKey) {
|
|
15
|
+
// Add to nextFlush so it waits at least one full interval
|
|
16
|
+
// This prevents immediate eviction if scheduled right before a tick
|
|
17
|
+
this.nextFlush.add(queryKey);
|
|
18
|
+
}
|
|
19
|
+
cancelEviction(queryKey) {
|
|
20
|
+
// Remove from both sets to handle reactivation
|
|
21
|
+
this.currentFlush.delete(queryKey);
|
|
22
|
+
this.nextFlush.delete(queryKey);
|
|
23
|
+
}
|
|
24
|
+
tick = () => {
|
|
25
|
+
if (!this.queryClient)
|
|
26
|
+
return;
|
|
27
|
+
// Evict all queries in currentFlush
|
|
28
|
+
for (const queryKey of this.currentFlush) {
|
|
29
|
+
this.queryClient.queryInstances.delete(queryKey);
|
|
30
|
+
}
|
|
31
|
+
// Rotate: currentFlush becomes nextFlush, nextFlush becomes empty
|
|
32
|
+
this.currentFlush = this.nextFlush;
|
|
33
|
+
this.nextFlush = new Set();
|
|
34
|
+
};
|
|
35
|
+
destroy() {
|
|
36
|
+
clearInterval(this.intervalId);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
// No-op implementation for SSR environments where timers are not needed
|
|
40
|
+
export class NoOpMemoryEvictionManager {
|
|
41
|
+
scheduleEviction(_queryKey) {
|
|
42
|
+
// No-op: do nothing
|
|
43
|
+
}
|
|
44
|
+
cancelEviction(_queryKey) {
|
|
45
|
+
// No-op: do nothing
|
|
46
|
+
}
|
|
47
|
+
destroy() {
|
|
48
|
+
// No-op: do nothing
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=MemoryEvictionManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MemoryEvictionManager.js","sourceRoot":"","sources":["../../src/MemoryEvictionManager.ts"],"names":[],"mappings":"AAEA,MAAM,iBAAiB,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,WAAW;AAEhD,gGAAgG;AAChG,MAAM,OAAO,qBAAqB;IAMtB;IACA;IANF,UAAU,CAAiB;IAC3B,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC,CAAC,gCAAgC;IAClE,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC,CAAC,sCAAsC;IAE7E,YACU,WAAwB,EACxB,aAAqB,CAAC;QADtB,gBAAW,GAAX,WAAW,CAAa;QACxB,eAAU,GAAV,UAAU,CAAY;QAE9B,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,iBAAiB,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;IAChF,CAAC;IAED,gBAAgB,CAAC,QAAgB;QAC/B,0DAA0D;QAC1D,oEAAoE;QACpE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC;IAED,cAAc,CAAC,QAAgB;QAC7B,+CAA+C;QAC/C,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACnC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC;IAEO,IAAI,GAAG,GAAG,EAAE;QAClB,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,OAAO;QAE9B,oCAAoC;QACpC,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACzC,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACnD,CAAC;QAED,kEAAkE;QAClE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,EAAE,CAAC;IAC7B,CAAC,CAAC;IAEF,OAAO;QACL,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACjC,CAAC;CACF;AAED,wEAAwE;AACxE,MAAM,OAAO,yBAAyB;IACpC,gBAAgB,CAAC,SAAiB;QAChC,oBAAoB;IACtB,CAAC;IAED,cAAc,CAAC,SAAiB;QAC9B,oBAAoB;IACtB,CAAC;IAED,OAAO;QACL,oBAAoB;IACtB,CAAC;CACF"}
|
|
@@ -43,6 +43,14 @@ export declare class NetworkManager {
|
|
|
43
43
|
*/
|
|
44
44
|
private attachEventListeners;
|
|
45
45
|
}
|
|
46
|
+
export declare class NoOpNetworkManager {
|
|
47
|
+
private static readonly onlineSignal;
|
|
48
|
+
get isOnline(): boolean;
|
|
49
|
+
setNetworkStatus(_online: boolean): void;
|
|
50
|
+
clearManualOverride(): void;
|
|
51
|
+
getOnlineSignal(): Signal<boolean>;
|
|
52
|
+
destroy(): void;
|
|
53
|
+
}
|
|
46
54
|
export declare const defaultNetworkManager: NetworkManager;
|
|
47
55
|
export declare const NetworkManagerContext: Context<NetworkManager>;
|
|
48
56
|
//# sourceMappingURL=NetworkManager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NetworkManager.d.ts","sourceRoot":"","sources":["../../src/NetworkManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAU,MAAM,EAAW,OAAO,EAAE,MAAM,WAAW,CAAC;AAE7D,qBAAa,cAAc;IACzB,OAAO,CAAC,YAAY,CAAkB;IACtC,OAAO,CAAC,cAAc,CAAkC;IACxD,OAAO,CAAC,sBAAsB,CAAS;gBAE3B,aAAa,CAAC,EAAE,OAAO;IAWnC;;OAEG;IACH,IAAI,QAAQ,IAAI,OAAO,CAOtB;IAED;;OAEG;IACH,gBAAgB,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAKvC;;OAEG;IACH,mBAAmB,IAAI,IAAI;IAK3B;;;OAGG;IACH,eAAe,IAAI,MAAM,CAAC,OAAO,CAAC;IAIlC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAU1B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAI1B;;OAEG;IACH,OAAO,CAAC,oBAAoB;CA0B7B;AAGD,eAAO,MAAM,qBAAqB,gBAAuB,CAAC;AAG1D,eAAO,MAAM,qBAAqB,EAAE,OAAO,CAAC,cAAc,CAAkD,CAAC"}
|
|
1
|
+
{"version":3,"file":"NetworkManager.d.ts","sourceRoot":"","sources":["../../src/NetworkManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAU,MAAM,EAAW,OAAO,EAAE,MAAM,WAAW,CAAC;AAE7D,qBAAa,cAAc;IACzB,OAAO,CAAC,YAAY,CAAkB;IACtC,OAAO,CAAC,cAAc,CAAkC;IACxD,OAAO,CAAC,sBAAsB,CAAS;gBAE3B,aAAa,CAAC,EAAE,OAAO;IAWnC;;OAEG;IACH,IAAI,QAAQ,IAAI,OAAO,CAOtB;IAED;;OAEG;IACH,gBAAgB,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAKvC;;OAEG;IACH,mBAAmB,IAAI,IAAI;IAK3B;;;OAGG;IACH,eAAe,IAAI,MAAM,CAAC,OAAO,CAAC;IAIlC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAU1B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAI1B;;OAEG;IACH,OAAO,CAAC,oBAAoB;CA0B7B;AAGD,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAiC;IAErE,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIxC,mBAAmB,IAAI,IAAI;IAI3B,eAAe,IAAI,MAAM,CAAC,OAAO,CAAC;IAIlC,OAAO,IAAI,IAAI;CAGhB;AAGD,eAAO,MAAM,qBAAqB,gBAAuB,CAAC;AAG1D,eAAO,MAAM,qBAAqB,EAAE,OAAO,CAAC,cAAc,CAAkD,CAAC"}
|
|
@@ -94,6 +94,25 @@ export class NetworkManager {
|
|
|
94
94
|
// it's not critical
|
|
95
95
|
}
|
|
96
96
|
}
|
|
97
|
+
// No-op implementation for SSR environments where network status tracking is not needed
|
|
98
|
+
export class NoOpNetworkManager {
|
|
99
|
+
static onlineSignal = signal(true);
|
|
100
|
+
get isOnline() {
|
|
101
|
+
return true;
|
|
102
|
+
}
|
|
103
|
+
setNetworkStatus(_online) {
|
|
104
|
+
// No-op: do nothing
|
|
105
|
+
}
|
|
106
|
+
clearManualOverride() {
|
|
107
|
+
// No-op: do nothing
|
|
108
|
+
}
|
|
109
|
+
getOnlineSignal() {
|
|
110
|
+
return NoOpNetworkManager.onlineSignal;
|
|
111
|
+
}
|
|
112
|
+
destroy() {
|
|
113
|
+
// No-op: do nothing
|
|
114
|
+
}
|
|
115
|
+
}
|
|
97
116
|
// Default singleton instance for convenience
|
|
98
117
|
export const defaultNetworkManager = new NetworkManager();
|
|
99
118
|
// Context for dependency injection
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NetworkManager.js","sourceRoot":"","sources":["../../src/NetworkManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,MAAM,EAAU,OAAO,EAAW,MAAM,WAAW,CAAC;AAE7D,MAAM,OAAO,cAAc;IACjB,YAAY,CAAkB;IAC9B,cAAc,GAAwB,SAAS,CAAC;IAChD,sBAAsB,GAAG,KAAK,CAAC;IAEvC,YAAY,aAAuB;QACjC,+EAA+E;QAC/E,MAAM,mBAAmB,GAAG,aAAa,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACvE,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAC;QAEhD,8EAA8E;QAC9E,IAAI,IAAI,CAAC,kBAAkB,EAAE,EAAE,CAAC;YAC9B,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC9B,CAAC;IACH,CAAC;IAED;;OAEG;IACH,IAAI,QAAQ;QACV,mCAAmC;QACnC,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;YACtC,OAAO,IAAI,CAAC,cAAc,CAAC;QAC7B,CAAC;QAED,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAC,MAAe;QAC9B,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC;QAC7B,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG,MAAM,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,mBAAmB;QACjB,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;QAChC,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;IACtD,CAAC;IAED;;;OAGG;IACH,eAAe;QACb,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED;;OAEG;IACK,kBAAkB;QACxB,0DAA0D;QAC1D,IAAI,OAAO,SAAS,KAAK,WAAW,IAAI,QAAQ,IAAI,SAAS,EAAE,CAAC;YAC9D,OAAO,SAAS,CAAC,MAAM,CAAC;QAC1B,CAAC;QAED,2DAA2D;QAC3D,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACK,kBAAkB;QACxB,OAAO,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,MAAM,CAAC,gBAAgB,KAAK,UAAU,CAAC;IACxF,CAAC;IAED;;OAEG;IACK,oBAAoB;QAC1B,IAAI,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAChC,OAAO;QACT,CAAC;QAED,MAAM,YAAY,GAAG,GAAG,EAAE;YACxB,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;gBACtC,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG,IAAI,CAAC;YACjC,CAAC;QACH,CAAC,CAAC;QAEF,MAAM,aAAa,GAAG,GAAG,EAAE;YACzB,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;gBACtC,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG,KAAK,CAAC;YAClC,CAAC;QACH,CAAC,CAAC;QAEF,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QAChD,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QAElD,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;QAEnC,6EAA6E;QAC7E,kFAAkF;QAClF,oBAAoB;IACtB,CAAC;CACF;AAED,6CAA6C;AAC7C,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,cAAc,EAAE,CAAC;AAE1D,mCAAmC;AACnC,MAAM,CAAC,MAAM,qBAAqB,GAA4B,OAAO,CAAiB,qBAAqB,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"NetworkManager.js","sourceRoot":"","sources":["../../src/NetworkManager.ts"],"names":[],"mappings":"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"}
|