@signalium/query 1.0.13 → 1.0.14
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 +14 -0
- package/dist/cjs/development/index.js +2985 -0
- package/dist/cjs/development/index.js.map +1 -0
- package/dist/cjs/development/react/index.js +52 -0
- package/dist/cjs/development/react/index.js.map +1 -0
- package/dist/cjs/{stores/shared.js → development/shared-5acOO-tS.js} +11 -14
- package/dist/cjs/development/shared-5acOO-tS.js.map +1 -0
- package/dist/cjs/development/stores/async.js +304 -0
- package/dist/cjs/development/stores/async.js.map +1 -0
- package/dist/cjs/development/stores/sync.js +214 -0
- package/dist/cjs/development/stores/sync.js.map +1 -0
- package/dist/cjs/production/index.js +2985 -0
- package/dist/cjs/production/index.js.map +1 -0
- package/dist/cjs/production/package.json +3 -0
- package/dist/cjs/production/react/index.js +52 -0
- package/dist/cjs/production/react/index.js.map +1 -0
- package/dist/cjs/production/shared-5acOO-tS.js +20 -0
- package/dist/cjs/production/shared-5acOO-tS.js.map +1 -0
- package/dist/cjs/production/stores/async.js +304 -0
- package/dist/cjs/production/stores/async.js.map +1 -0
- package/dist/cjs/production/stores/sync.js +214 -0
- package/dist/cjs/production/stores/sync.js.map +1 -0
- package/dist/esm/EntityMap.d.ts +22 -0
- package/dist/esm/EntityMap.d.ts.map +1 -1
- package/dist/esm/MutationResult.d.ts +43 -0
- package/dist/esm/MutationResult.d.ts.map +1 -0
- package/dist/esm/QueryClient.d.ts +31 -2
- package/dist/esm/QueryClient.d.ts.map +1 -1
- package/dist/esm/development/index.js +2985 -0
- package/dist/esm/development/index.js.map +1 -0
- package/dist/esm/development/react/index.js +52 -0
- package/dist/esm/development/react/index.js.map +1 -0
- package/dist/esm/development/shared-Br5plsKm.js +21 -0
- package/dist/esm/development/shared-Br5plsKm.js.map +1 -0
- package/dist/esm/development/stores/async.js +304 -0
- package/dist/esm/development/stores/async.js.map +1 -0
- package/dist/esm/development/stores/sync.js +214 -0
- package/dist/esm/development/stores/sync.js.map +1 -0
- package/dist/esm/index.d.ts +4 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/mutation.d.ts +82 -0
- package/dist/esm/mutation.d.ts.map +1 -0
- package/dist/esm/parseEntities.d.ts.map +1 -1
- package/dist/esm/production/index.js +2985 -0
- package/dist/esm/production/index.js.map +1 -0
- package/dist/esm/production/react/index.js +52 -0
- package/dist/esm/production/react/index.js.map +1 -0
- package/dist/esm/production/shared-Br5plsKm.js +21 -0
- package/dist/esm/production/shared-Br5plsKm.js.map +1 -0
- package/dist/esm/production/stores/async.js +304 -0
- package/dist/esm/production/stores/async.js.map +1 -0
- package/dist/esm/production/stores/sync.js +214 -0
- package/dist/esm/production/stores/sync.js.map +1 -0
- package/dist/esm/proxy.d.ts +6 -5
- package/dist/esm/proxy.d.ts.map +1 -1
- package/dist/esm/query.d.ts +3 -1
- package/dist/esm/query.d.ts.map +1 -1
- package/dist/esm/typeDefs.d.ts +4 -2
- package/dist/esm/typeDefs.d.ts.map +1 -1
- package/dist/esm/types.d.ts +71 -4
- package/dist/esm/types.d.ts.map +1 -1
- package/dist/esm/utils.d.ts +35 -0
- package/dist/esm/utils.d.ts.map +1 -1
- package/package.json +55 -21
- package/stores/async.js +1 -1
- package/stores/sync.js +1 -1
- package/dist/cjs/EntityMap.js +0 -103
- package/dist/cjs/EntityMap.js.map +0 -1
- package/dist/cjs/MemoryEvictionManager.js +0 -56
- package/dist/cjs/MemoryEvictionManager.js.map +0 -1
- package/dist/cjs/NetworkManager.js +0 -125
- package/dist/cjs/NetworkManager.js.map +0 -1
- package/dist/cjs/QueryClient.js +0 -162
- package/dist/cjs/QueryClient.js.map +0 -1
- package/dist/cjs/QueryResult.js +0 -920
- package/dist/cjs/QueryResult.js.map +0 -1
- package/dist/cjs/RefetchManager.js +0 -88
- package/dist/cjs/RefetchManager.js.map +0 -1
- package/dist/cjs/errors.js +0 -129
- package/dist/cjs/errors.js.map +0 -1
- package/dist/cjs/index.js +0 -43
- package/dist/cjs/index.js.map +0 -1
- package/dist/cjs/parseEntities.js +0 -142
- package/dist/cjs/parseEntities.js.map +0 -1
- package/dist/cjs/pathInterpolator.js +0 -69
- package/dist/cjs/pathInterpolator.js.map +0 -1
- package/dist/cjs/proxy.js +0 -263
- package/dist/cjs/proxy.js.map +0 -1
- package/dist/cjs/query.js +0 -184
- package/dist/cjs/query.js.map +0 -1
- package/dist/cjs/react/index.js +0 -6
- package/dist/cjs/react/index.js.map +0 -1
- package/dist/cjs/react/use-query.js +0 -56
- package/dist/cjs/react/use-query.js.map +0 -1
- package/dist/cjs/stores/async.js +0 -344
- package/dist/cjs/stores/async.js.map +0 -1
- package/dist/cjs/stores/shared.js.map +0 -1
- package/dist/cjs/stores/sync.js +0 -240
- package/dist/cjs/stores/sync.js.map +0 -1
- package/dist/cjs/tsconfig.cjs.tsbuildinfo +0 -1
- package/dist/cjs/type-utils.js +0 -3
- package/dist/cjs/type-utils.js.map +0 -1
- package/dist/cjs/typeDefs.js +0 -620
- package/dist/cjs/typeDefs.js.map +0 -1
- package/dist/cjs/types.js +0 -33
- package/dist/cjs/types.js.map +0 -1
- package/dist/cjs/utils.js +0 -23
- package/dist/cjs/utils.js.map +0 -1
- package/dist/esm/EntityMap.js +0 -99
- package/dist/esm/EntityMap.js.map +0 -1
- package/dist/esm/MemoryEvictionManager.js +0 -51
- package/dist/esm/MemoryEvictionManager.js.map +0 -1
- package/dist/esm/NetworkManager.js +0 -120
- package/dist/esm/NetworkManager.js.map +0 -1
- package/dist/esm/QueryClient.js +0 -154
- package/dist/esm/QueryClient.js.map +0 -1
- package/dist/esm/QueryResult.js +0 -916
- package/dist/esm/QueryResult.js.map +0 -1
- package/dist/esm/RefetchManager.js +0 -83
- package/dist/esm/RefetchManager.js.map +0 -1
- package/dist/esm/errors.js +0 -125
- package/dist/esm/errors.js.map +0 -1
- package/dist/esm/index.js +0 -8
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/parseEntities.js +0 -135
- package/dist/esm/parseEntities.js.map +0 -1
- package/dist/esm/pathInterpolator.js +0 -66
- package/dist/esm/pathInterpolator.js.map +0 -1
- package/dist/esm/proxy.js +0 -254
- package/dist/esm/proxy.js.map +0 -1
- package/dist/esm/query.js +0 -177
- package/dist/esm/query.js.map +0 -1
- package/dist/esm/react/index.js +0 -2
- package/dist/esm/react/index.js.map +0 -1
- package/dist/esm/react/use-query.js +0 -53
- package/dist/esm/react/use-query.js.map +0 -1
- package/dist/esm/stores/async.js +0 -340
- package/dist/esm/stores/async.js.map +0 -1
- package/dist/esm/stores/shared.js +0 -13
- package/dist/esm/stores/shared.js.map +0 -1
- package/dist/esm/stores/sync.js +0 -234
- package/dist/esm/stores/sync.js.map +0 -1
- package/dist/esm/type-utils.js +0 -2
- package/dist/esm/type-utils.js.map +0 -1
- package/dist/esm/typeDefs.js +0 -606
- package/dist/esm/typeDefs.js.map +0 -1
- package/dist/esm/types.js +0 -30
- package/dist/esm/types.js.map +0 -1
- package/dist/esm/utils.js +0 -20
- package/dist/esm/utils.js.map +0 -1
- /package/dist/cjs/{package.json → development/package.json} +0 -0
package/dist/esm/typeDefs.js
DELETED
|
@@ -1,606 +0,0 @@
|
|
|
1
|
-
import { ARRAY_KEY, RECORD_KEY, } from './types.js';
|
|
2
|
-
import { hashValue } from 'signalium/utils';
|
|
3
|
-
const entries = Object.entries;
|
|
4
|
-
const isArray = Array.isArray;
|
|
5
|
-
export class ValidatorDef {
|
|
6
|
-
kind;
|
|
7
|
-
mask;
|
|
8
|
-
_optional;
|
|
9
|
-
_nullable;
|
|
10
|
-
_nullish;
|
|
11
|
-
_shapeKey = undefined;
|
|
12
|
-
_shape;
|
|
13
|
-
subEntityPaths = undefined;
|
|
14
|
-
typenameField = undefined;
|
|
15
|
-
typenameValue = undefined;
|
|
16
|
-
idField = undefined;
|
|
17
|
-
values = undefined;
|
|
18
|
-
/**
|
|
19
|
-
* Lazy factory function for creating entity methods.
|
|
20
|
-
* Evaluated once during reifyShape() and cached in _methods.
|
|
21
|
-
*/
|
|
22
|
-
_methodsFactory = undefined;
|
|
23
|
-
/**
|
|
24
|
-
* Cached methods object from evaluating _methodsFactory.
|
|
25
|
-
* Populated during reifyShape() - the same methods object is shared across all proxies,
|
|
26
|
-
* but each proxy binds its own reactive method wrappers.
|
|
27
|
-
*/
|
|
28
|
-
_methods = undefined;
|
|
29
|
-
/**
|
|
30
|
-
* Entity configuration including stream options.
|
|
31
|
-
*/
|
|
32
|
-
_entityConfig = undefined;
|
|
33
|
-
constructor(kind, mask, shape, values = undefined) {
|
|
34
|
-
this.kind = kind;
|
|
35
|
-
this.mask = mask;
|
|
36
|
-
this._shape = shape;
|
|
37
|
-
this.values = values;
|
|
38
|
-
}
|
|
39
|
-
static cloneWith(def, mask, values = undefined) {
|
|
40
|
-
const newDef = new ValidatorDef(def.kind, mask | def.mask, def._shape, values);
|
|
41
|
-
newDef.subEntityPaths = def.subEntityPaths;
|
|
42
|
-
newDef.values = def.values;
|
|
43
|
-
newDef.typenameField = def.typenameField;
|
|
44
|
-
newDef.typenameValue = def.typenameValue;
|
|
45
|
-
newDef.idField = def.idField;
|
|
46
|
-
newDef._methodsFactory = def._methodsFactory;
|
|
47
|
-
newDef._methods = def._methods;
|
|
48
|
-
newDef._entityConfig = def._entityConfig;
|
|
49
|
-
return newDef;
|
|
50
|
-
}
|
|
51
|
-
reifyShape() {
|
|
52
|
-
if (this._shapeKey === undefined) {
|
|
53
|
-
switch (this.kind) {
|
|
54
|
-
case 5 /* ComplexTypeDefKind.ENTITY */: {
|
|
55
|
-
const shape = this._shape();
|
|
56
|
-
this._shape = reifyObjectShape(this, shape);
|
|
57
|
-
// Evaluate and cache the methods factory once during shape reification
|
|
58
|
-
if (this._methodsFactory && !this._methods) {
|
|
59
|
-
this._methods = this._methodsFactory();
|
|
60
|
-
}
|
|
61
|
-
break;
|
|
62
|
-
}
|
|
63
|
-
case 0 /* ComplexTypeDefKind.OBJECT */:
|
|
64
|
-
this._shape = reifyObjectShape(this, this._shape);
|
|
65
|
-
break;
|
|
66
|
-
case 1 /* ComplexTypeDefKind.UNION */:
|
|
67
|
-
this._shape = reifyUnionShape(this, this._shape);
|
|
68
|
-
break;
|
|
69
|
-
case 3 /* ComplexTypeDefKind.ARRAY */:
|
|
70
|
-
case 4 /* ComplexTypeDefKind.RECORD */: {
|
|
71
|
-
const shape = this._shape;
|
|
72
|
-
let shapeKey;
|
|
73
|
-
if (shape instanceof ValidatorDef) {
|
|
74
|
-
shapeKey = shape.shapeKey;
|
|
75
|
-
if (shape.mask & (1024 /* Mask.ENTITY */ | 2048 /* Mask.HAS_SUB_ENTITY */)) {
|
|
76
|
-
this.mask |= 2048 /* Mask.HAS_SUB_ENTITY */;
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
else if (shape instanceof CaseInsensitiveSet) {
|
|
80
|
-
shapeKey = hashValue(Array.from(shape));
|
|
81
|
-
}
|
|
82
|
-
else {
|
|
83
|
-
shapeKey = hashValue(shape);
|
|
84
|
-
}
|
|
85
|
-
this._shapeKey = hashValue([this.kind, this.mask, this.values, shapeKey]);
|
|
86
|
-
break;
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
get shape() {
|
|
92
|
-
this.reifyShape();
|
|
93
|
-
return this._shape;
|
|
94
|
-
}
|
|
95
|
-
get methods() {
|
|
96
|
-
this.reifyShape();
|
|
97
|
-
return this._methods;
|
|
98
|
-
}
|
|
99
|
-
get shapeKey() {
|
|
100
|
-
this.reifyShape();
|
|
101
|
-
return this._shapeKey;
|
|
102
|
-
}
|
|
103
|
-
set shapeKey(key) {
|
|
104
|
-
this._shapeKey = key >>> 0;
|
|
105
|
-
}
|
|
106
|
-
get optional() {
|
|
107
|
-
if (this._optional === undefined) {
|
|
108
|
-
this._optional = ValidatorDef.cloneWith(this, 1 /* Mask.UNDEFINED */);
|
|
109
|
-
}
|
|
110
|
-
return this._optional;
|
|
111
|
-
}
|
|
112
|
-
get nullable() {
|
|
113
|
-
if (this._nullable === undefined) {
|
|
114
|
-
this._nullable = ValidatorDef.cloneWith(this, 2 /* Mask.NULL */);
|
|
115
|
-
}
|
|
116
|
-
return this._nullable;
|
|
117
|
-
}
|
|
118
|
-
get nullish() {
|
|
119
|
-
if (this._nullish === undefined) {
|
|
120
|
-
this._nullish = ValidatorDef.cloneWith(this, 1 /* Mask.UNDEFINED */ | 2 /* Mask.NULL */);
|
|
121
|
-
}
|
|
122
|
-
return this._nullish;
|
|
123
|
-
}
|
|
124
|
-
/**
|
|
125
|
-
* Creates a new ValidatorDef that extends this one with additional fields and optional methods.
|
|
126
|
-
* Only valid for ENTITY and OBJECT types.
|
|
127
|
-
* Prevents overriding of existing fields including id and typename.
|
|
128
|
-
*
|
|
129
|
-
* For entities, accepts a function that returns the new fields (lazy reification).
|
|
130
|
-
* For objects, accepts the new fields directly.
|
|
131
|
-
*
|
|
132
|
-
* @param newFieldsOrGetter - New fields to add (lazy function for entities, direct object for objects)
|
|
133
|
-
* @param newMethodsGetter - Optional lazy factory returning new methods to add (entities only, merged with existing)
|
|
134
|
-
*/
|
|
135
|
-
extend(newFieldsOrGetter,
|
|
136
|
-
// Note: ThisType here will be the extended entity type - TypeScript infers it from context
|
|
137
|
-
newMethodsGetter) {
|
|
138
|
-
// Validate that this is an extendable type (ENTITY or OBJECT)
|
|
139
|
-
if (this.kind !== 5 /* ComplexTypeDefKind.ENTITY */ && this.kind !== 0 /* ComplexTypeDefKind.OBJECT */) {
|
|
140
|
-
throw new Error('extend() can only be called on Entity or Object types');
|
|
141
|
-
}
|
|
142
|
-
if (this.kind === 5 /* ComplexTypeDefKind.ENTITY */) {
|
|
143
|
-
// For entities, keep the shape lazy - only reify on first usage
|
|
144
|
-
// This preserves the lazy evaluation pattern and supports circular references
|
|
145
|
-
// We bind getParentShape to access the parent's `.shape` getter which properly
|
|
146
|
-
// reifies and caches the shape, avoiding multiple reification calls
|
|
147
|
-
const newFieldsGetter = newFieldsOrGetter;
|
|
148
|
-
const parentMethodsFactory = this._methodsFactory;
|
|
149
|
-
const extendedDef = new ValidatorDef(5 /* ComplexTypeDefKind.ENTITY */, this.mask, () => {
|
|
150
|
-
const existingShape = this.shape;
|
|
151
|
-
const newFields = newFieldsGetter();
|
|
152
|
-
// Runtime validation: check for field conflicts
|
|
153
|
-
for (const key of Object.keys(newFields)) {
|
|
154
|
-
if (key in existingShape) {
|
|
155
|
-
throw new Error(`Cannot extend: field '${key}' already exists in type definition`);
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
return { ...existingShape, ...newFields };
|
|
159
|
-
});
|
|
160
|
-
// Merge methods factories if either parent or new methods exist
|
|
161
|
-
if (parentMethodsFactory || newMethodsGetter) {
|
|
162
|
-
extendedDef._methodsFactory = () => {
|
|
163
|
-
const parentMethods = parentMethodsFactory ? parentMethodsFactory() : {};
|
|
164
|
-
const newMethods = newMethodsGetter ? newMethodsGetter() : {};
|
|
165
|
-
return { ...parentMethods, ...newMethods };
|
|
166
|
-
};
|
|
167
|
-
}
|
|
168
|
-
// Preserve entity config from parent
|
|
169
|
-
extendedDef._entityConfig = this._entityConfig;
|
|
170
|
-
return extendedDef;
|
|
171
|
-
}
|
|
172
|
-
else {
|
|
173
|
-
// For objects, reify immediately since they're not lazy
|
|
174
|
-
this.reifyShape();
|
|
175
|
-
const existingShape = this._shape;
|
|
176
|
-
const newFields = newFieldsOrGetter;
|
|
177
|
-
// Runtime validation: check for field conflicts
|
|
178
|
-
for (const key of Object.keys(newFields)) {
|
|
179
|
-
if (key in existingShape) {
|
|
180
|
-
throw new Error(`Cannot extend: field '${key}' already exists in type definition`);
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
return new ValidatorDef(0 /* ComplexTypeDefKind.OBJECT */, this.mask, { ...existingShape, ...newFields });
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
// -----------------------------------------------------------------------------
|
|
188
|
-
// Case-Insensitive Enum Set
|
|
189
|
-
// -----------------------------------------------------------------------------
|
|
190
|
-
/**
|
|
191
|
-
* A Set-like class for enum values that matches string values case-insensitively.
|
|
192
|
-
* Non-string values (numbers, booleans) are matched exactly.
|
|
193
|
-
* Returns the canonical (originally defined) casing when a match is found.
|
|
194
|
-
*/
|
|
195
|
-
export class CaseInsensitiveSet extends Set {
|
|
196
|
-
lowercaseMap; // lowercase -> canonical (strings only)
|
|
197
|
-
constructor(values) {
|
|
198
|
-
super(values);
|
|
199
|
-
this.lowercaseMap = new Map();
|
|
200
|
-
for (const value of values) {
|
|
201
|
-
if (typeof value === 'string') {
|
|
202
|
-
const lowercase = value.toLowerCase();
|
|
203
|
-
const existing = this.lowercaseMap.get(lowercase);
|
|
204
|
-
if (existing !== undefined) {
|
|
205
|
-
throw new Error(`Case-insensitive enum cannot have multiple values with the same lowercase form: '${existing}' and '${value}' both become '${lowercase}'`);
|
|
206
|
-
}
|
|
207
|
-
this.lowercaseMap.set(lowercase, value);
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
/**
|
|
212
|
-
* Check if a value exists in the set (case-insensitively for strings).
|
|
213
|
-
* Used for backwards compatibility with Set-based checks.
|
|
214
|
-
*/
|
|
215
|
-
has(value) {
|
|
216
|
-
return this.get(value) !== undefined;
|
|
217
|
-
}
|
|
218
|
-
/**
|
|
219
|
-
* Get the canonical value for a given input.
|
|
220
|
-
* For strings, performs case-insensitive lookup and returns the canonical casing.
|
|
221
|
-
* For numbers/booleans, performs exact match.
|
|
222
|
-
* Returns undefined if no match is found.
|
|
223
|
-
*/
|
|
224
|
-
get(value) {
|
|
225
|
-
if (typeof value === 'string') {
|
|
226
|
-
return this.lowercaseMap.get(value.toLowerCase());
|
|
227
|
-
}
|
|
228
|
-
if (super.has(value)) {
|
|
229
|
-
return value;
|
|
230
|
-
}
|
|
231
|
-
return undefined;
|
|
232
|
-
}
|
|
233
|
-
}
|
|
234
|
-
// -----------------------------------------------------------------------------
|
|
235
|
-
// Complex Type Definitions
|
|
236
|
-
// -----------------------------------------------------------------------------
|
|
237
|
-
export function defineArray(shape) {
|
|
238
|
-
return new ValidatorDef(3 /* ComplexTypeDefKind.ARRAY */, 64 /* Mask.ARRAY */, shape);
|
|
239
|
-
}
|
|
240
|
-
export function defineRecord(shape) {
|
|
241
|
-
return new ValidatorDef(4 /* ComplexTypeDefKind.RECORD */, 256 /* Mask.RECORD */ | 32 /* Mask.OBJECT */, shape);
|
|
242
|
-
}
|
|
243
|
-
export function defineObject(shape) {
|
|
244
|
-
return new ValidatorDef(0 /* ComplexTypeDefKind.OBJECT */, 32 /* Mask.OBJECT */, shape);
|
|
245
|
-
}
|
|
246
|
-
function defineUnion(...types) {
|
|
247
|
-
let mask = 0;
|
|
248
|
-
let definition;
|
|
249
|
-
let shape;
|
|
250
|
-
let values;
|
|
251
|
-
for (const type of types) {
|
|
252
|
-
if (typeof type === 'number') {
|
|
253
|
-
mask |= type;
|
|
254
|
-
continue;
|
|
255
|
-
}
|
|
256
|
-
if (type instanceof Set) {
|
|
257
|
-
if (values === undefined) {
|
|
258
|
-
values = new Set(type);
|
|
259
|
-
}
|
|
260
|
-
else {
|
|
261
|
-
for (const val of type) {
|
|
262
|
-
values.add(val);
|
|
263
|
-
}
|
|
264
|
-
}
|
|
265
|
-
continue;
|
|
266
|
-
}
|
|
267
|
-
if (definition === undefined) {
|
|
268
|
-
definition = type;
|
|
269
|
-
continue;
|
|
270
|
-
}
|
|
271
|
-
if (shape === undefined) {
|
|
272
|
-
shape = [definition];
|
|
273
|
-
}
|
|
274
|
-
shape.push(type);
|
|
275
|
-
}
|
|
276
|
-
if (definition === undefined) {
|
|
277
|
-
// It was a union of primitives, so return the mask
|
|
278
|
-
if (values === undefined) {
|
|
279
|
-
// This type coercion is incorrect, but we can't return the mask as a Mask
|
|
280
|
-
// because that loses the type information about the union, which breaks
|
|
281
|
-
// inference.
|
|
282
|
-
//
|
|
283
|
-
// TODO: Figure out how to make this correct type-wise
|
|
284
|
-
return mask;
|
|
285
|
-
}
|
|
286
|
-
// It was a union of enums/constants, so return the value as a Set
|
|
287
|
-
if (mask === 0) {
|
|
288
|
-
// This type coercion is incorrect, but we can't return the mask as a Mask
|
|
289
|
-
// because that loses the type information about the union, which breaks
|
|
290
|
-
// inference.
|
|
291
|
-
//
|
|
292
|
-
// TODO: Figure out how to make this correct type-wise
|
|
293
|
-
return values;
|
|
294
|
-
}
|
|
295
|
-
// It was a union of primitives and enums, so return the mask and values as a new ValidatorDef
|
|
296
|
-
return new ValidatorDef(2 /* ComplexTypeDefKind.PRIMITIVE_UNION */, mask | 512 /* Mask.UNION */, undefined, values);
|
|
297
|
-
}
|
|
298
|
-
// It was a single complex type, so return the clone with the new mask and values
|
|
299
|
-
if (shape === undefined) {
|
|
300
|
-
return ValidatorDef.cloneWith(definition, mask | 512 /* Mask.UNION */, values);
|
|
301
|
-
}
|
|
302
|
-
return new ValidatorDef(1 /* ComplexTypeDefKind.UNION */, mask | 512 /* Mask.UNION */, shape, values);
|
|
303
|
-
}
|
|
304
|
-
function defineNullish(type) {
|
|
305
|
-
if (typeof type === 'number') {
|
|
306
|
-
return (type | 1 /* Mask.UNDEFINED */ | 2 /* Mask.NULL */);
|
|
307
|
-
}
|
|
308
|
-
if (type instanceof Set) {
|
|
309
|
-
return defineUnion(type, 1 /* Mask.UNDEFINED */, 2 /* Mask.NULL */);
|
|
310
|
-
}
|
|
311
|
-
// Complex type - use the cached property
|
|
312
|
-
return type.nullish;
|
|
313
|
-
}
|
|
314
|
-
function defineOptional(type) {
|
|
315
|
-
if (typeof type === 'number') {
|
|
316
|
-
return (type | 1 /* Mask.UNDEFINED */);
|
|
317
|
-
}
|
|
318
|
-
if (type instanceof Set) {
|
|
319
|
-
return defineUnion(type, 1 /* Mask.UNDEFINED */);
|
|
320
|
-
}
|
|
321
|
-
// Complex type - use the cached property
|
|
322
|
-
return type.optional;
|
|
323
|
-
}
|
|
324
|
-
function defineNullable(type) {
|
|
325
|
-
if (typeof type === 'number') {
|
|
326
|
-
return (type | 2 /* Mask.NULL */);
|
|
327
|
-
}
|
|
328
|
-
if (type instanceof Set) {
|
|
329
|
-
return defineUnion(type, 2 /* Mask.NULL */);
|
|
330
|
-
}
|
|
331
|
-
// Complex type - use the cached property
|
|
332
|
-
return type.nullable;
|
|
333
|
-
}
|
|
334
|
-
// -----------------------------------------------------------------------------
|
|
335
|
-
// Shape Reification
|
|
336
|
-
// -----------------------------------------------------------------------------
|
|
337
|
-
export function reifyObjectShape(def, shape) {
|
|
338
|
-
// create a hash of the shape, starting with the object mask as the base
|
|
339
|
-
let shapeKey = hashValue([def.mask, def.values]);
|
|
340
|
-
for (const [key, value] of entries(shape)) {
|
|
341
|
-
switch (typeof value) {
|
|
342
|
-
case 'number':
|
|
343
|
-
if ((value & 128 /* Mask.ID */) !== 0) {
|
|
344
|
-
if (def.idField !== undefined) {
|
|
345
|
-
throw new Error(`Duplicate id field: ${key}`);
|
|
346
|
-
}
|
|
347
|
-
def.idField = key;
|
|
348
|
-
}
|
|
349
|
-
// Add to shape key (order independent operation)
|
|
350
|
-
shapeKey += hashValue(key) ^ value;
|
|
351
|
-
break;
|
|
352
|
-
case 'string':
|
|
353
|
-
// This is a typename field (plain string value)
|
|
354
|
-
if (def.typenameField !== undefined && def.typenameField !== key) {
|
|
355
|
-
throw new Error(`Duplicate typename field: ${key}`);
|
|
356
|
-
}
|
|
357
|
-
def.typenameField = key;
|
|
358
|
-
def.typenameValue = value;
|
|
359
|
-
// Add to shape key (order independent operation)
|
|
360
|
-
shapeKey += hashValue(key) ^ hashValue(value);
|
|
361
|
-
break;
|
|
362
|
-
case 'object':
|
|
363
|
-
if (value instanceof CaseInsensitiveSet) {
|
|
364
|
-
shapeKey ^= hashValue(key) ^ hashValue(Array.from(value));
|
|
365
|
-
break;
|
|
366
|
-
}
|
|
367
|
-
if (value instanceof Set) {
|
|
368
|
-
shapeKey ^= hashValue(key) ^ hashValue(value);
|
|
369
|
-
break;
|
|
370
|
-
}
|
|
371
|
-
// Add to shape key (order independent operation)
|
|
372
|
-
shapeKey += hashValue(key) ^ value.shapeKey;
|
|
373
|
-
if (value.mask & (1024 /* Mask.ENTITY */ | 2048 /* Mask.HAS_SUB_ENTITY */)) {
|
|
374
|
-
def.mask |= 2048 /* Mask.HAS_SUB_ENTITY */;
|
|
375
|
-
if (def.subEntityPaths === undefined) {
|
|
376
|
-
def.subEntityPaths = key;
|
|
377
|
-
}
|
|
378
|
-
else if (isArray(def.subEntityPaths)) {
|
|
379
|
-
def.subEntityPaths.push(key);
|
|
380
|
-
}
|
|
381
|
-
else {
|
|
382
|
-
def.subEntityPaths = [def.subEntityPaths, key];
|
|
383
|
-
}
|
|
384
|
-
}
|
|
385
|
-
break;
|
|
386
|
-
}
|
|
387
|
-
}
|
|
388
|
-
// Convert to unsigned 32-bit integer
|
|
389
|
-
def.shapeKey = shapeKey >>> 0;
|
|
390
|
-
return shape;
|
|
391
|
-
}
|
|
392
|
-
function reifyUnionShape(def, defs) {
|
|
393
|
-
let mask = def.mask;
|
|
394
|
-
let shape = Object.create(null);
|
|
395
|
-
let unionTypenameField;
|
|
396
|
-
// Start with the union mask and any values as the base
|
|
397
|
-
let shapeKey = hashValue([mask, def.values]);
|
|
398
|
-
for (const nestedDef of defs) {
|
|
399
|
-
const nestedMask = nestedDef.mask;
|
|
400
|
-
mask |= nestedMask;
|
|
401
|
-
// load the shape key and also reify the shape if not yet reified
|
|
402
|
-
shapeKey += nestedDef.shapeKey;
|
|
403
|
-
if ((nestedMask & 512 /* Mask.UNION */) !== 0) {
|
|
404
|
-
// Merge nested union into parent union
|
|
405
|
-
const nestedUnion = nestedDef;
|
|
406
|
-
// Check typename field consistency
|
|
407
|
-
if (nestedUnion.typenameField !== undefined) {
|
|
408
|
-
if (unionTypenameField !== undefined && unionTypenameField !== nestedUnion.typenameField) {
|
|
409
|
-
throw new Error(`Union typename field conflict: Cannot merge unions with different typename fields ('${unionTypenameField}' vs '${nestedUnion.typenameField}')`);
|
|
410
|
-
}
|
|
411
|
-
unionTypenameField = nestedUnion.typenameField;
|
|
412
|
-
}
|
|
413
|
-
const nestedShape = nestedUnion.shape;
|
|
414
|
-
// Merge nested union's shape into parent
|
|
415
|
-
if (nestedShape !== undefined) {
|
|
416
|
-
for (const key of [...Object.keys(nestedShape), ARRAY_KEY, RECORD_KEY]) {
|
|
417
|
-
// Check for conflicts
|
|
418
|
-
const value = nestedShape[key];
|
|
419
|
-
if (shape[key] !== undefined && shape[key] !== value) {
|
|
420
|
-
throw new Error(`Union merge conflict: Duplicate typename value '${String(key)}' found when merging nested unions (${String(shape[key])} vs ${String(value)})`);
|
|
421
|
-
}
|
|
422
|
-
// coerce type because we know the value is the same type as the key
|
|
423
|
-
shape[key] = value;
|
|
424
|
-
}
|
|
425
|
-
}
|
|
426
|
-
}
|
|
427
|
-
else if ((nestedMask & 64 /* Mask.ARRAY */) !== 0) {
|
|
428
|
-
if (shape[ARRAY_KEY] !== undefined) {
|
|
429
|
-
throw new Error('Array shape already defined');
|
|
430
|
-
}
|
|
431
|
-
shape[ARRAY_KEY] = nestedDef.shape;
|
|
432
|
-
}
|
|
433
|
-
else if ((nestedMask & 256 /* Mask.RECORD */) !== 0) {
|
|
434
|
-
if (shape[RECORD_KEY] !== undefined) {
|
|
435
|
-
throw new Error('Record shape already defined');
|
|
436
|
-
}
|
|
437
|
-
shape[RECORD_KEY] = nestedDef.shape;
|
|
438
|
-
}
|
|
439
|
-
else {
|
|
440
|
-
// definition is ObjectDef | EntityDef
|
|
441
|
-
const typenameField = nestedDef.typenameField;
|
|
442
|
-
const typename = nestedDef.typenameValue;
|
|
443
|
-
if (typename === undefined) {
|
|
444
|
-
throw new Error('Object definitions must have a typename to be in a union with other objects, records, or arrays');
|
|
445
|
-
}
|
|
446
|
-
if (unionTypenameField !== undefined && typenameField !== unionTypenameField) {
|
|
447
|
-
throw new Error('Object definitions must have the same typename field to be in the same union');
|
|
448
|
-
}
|
|
449
|
-
unionTypenameField = typenameField;
|
|
450
|
-
shape[typename] = nestedDef;
|
|
451
|
-
}
|
|
452
|
-
}
|
|
453
|
-
def.typenameField = unionTypenameField;
|
|
454
|
-
def.shapeKey = shapeKey >>> 0;
|
|
455
|
-
def.mask = mask;
|
|
456
|
-
return shape;
|
|
457
|
-
}
|
|
458
|
-
// -----------------------------------------------------------------------------
|
|
459
|
-
// Marker Functions
|
|
460
|
-
// -----------------------------------------------------------------------------
|
|
461
|
-
function defineTypename(value) {
|
|
462
|
-
return value;
|
|
463
|
-
}
|
|
464
|
-
function defineConst(value) {
|
|
465
|
-
return new Set([value]);
|
|
466
|
-
}
|
|
467
|
-
const defineEnum = ((...values) => {
|
|
468
|
-
return new Set(values);
|
|
469
|
-
});
|
|
470
|
-
defineEnum.caseInsensitive = (...values) => {
|
|
471
|
-
return new CaseInsensitiveSet(values);
|
|
472
|
-
};
|
|
473
|
-
// -----------------------------------------------------------------------------
|
|
474
|
-
// Formatted Values
|
|
475
|
-
// -----------------------------------------------------------------------------
|
|
476
|
-
const FORMAT_MASK_SHIFT = 16;
|
|
477
|
-
let nextFormatId = 0;
|
|
478
|
-
const FORMAT_PARSERS = [];
|
|
479
|
-
const FORMAT_SERIALIZERS = [];
|
|
480
|
-
const FORMAT_MAP = new Map();
|
|
481
|
-
const FORMAT_ID_TO_NAME = new Map();
|
|
482
|
-
function defineFormatted(format) {
|
|
483
|
-
const mask = FORMAT_MAP.get(format);
|
|
484
|
-
if (mask === undefined) {
|
|
485
|
-
throw new Error(`Format ${format} not registered`);
|
|
486
|
-
}
|
|
487
|
-
return mask;
|
|
488
|
-
}
|
|
489
|
-
export function getFormat(mask) {
|
|
490
|
-
const formatId = mask >> FORMAT_MASK_SHIFT;
|
|
491
|
-
return FORMAT_PARSERS[formatId];
|
|
492
|
-
}
|
|
493
|
-
export function getFormatSerializer(mask) {
|
|
494
|
-
const formatId = mask >> FORMAT_MASK_SHIFT;
|
|
495
|
-
return FORMAT_SERIALIZERS[formatId];
|
|
496
|
-
}
|
|
497
|
-
export function getFormatName(mask) {
|
|
498
|
-
const formatId = mask >> FORMAT_MASK_SHIFT;
|
|
499
|
-
return FORMAT_ID_TO_NAME.get(formatId);
|
|
500
|
-
}
|
|
501
|
-
export function registerFormat(name, type, parse, serialize) {
|
|
502
|
-
const maskId = nextFormatId++;
|
|
503
|
-
FORMAT_PARSERS[maskId] = parse;
|
|
504
|
-
FORMAT_SERIALIZERS[maskId] = serialize;
|
|
505
|
-
FORMAT_ID_TO_NAME.set(maskId, name);
|
|
506
|
-
const shiftedId = maskId << FORMAT_MASK_SHIFT;
|
|
507
|
-
const formatMask = type === 8 /* Mask.STRING */ ? 8192 /* Mask.HAS_STRING_FORMAT */ : 4096 /* Mask.HAS_NUMBER_FORMAT */;
|
|
508
|
-
const mask = shiftedId | type | formatMask;
|
|
509
|
-
FORMAT_MAP.set(name, mask);
|
|
510
|
-
}
|
|
511
|
-
// -----------------------------------------------------------------------------
|
|
512
|
-
// Built-in Formats
|
|
513
|
-
// -----------------------------------------------------------------------------
|
|
514
|
-
// Register 'date' format: ISO date string (YYYY-MM-DD) ↔ Date
|
|
515
|
-
registerFormat('date', 8 /* Mask.STRING */, value => {
|
|
516
|
-
// Parse YYYY-MM-DD as UTC date to avoid timezone issues
|
|
517
|
-
const match = value.match(/^(\d{4})-(\d{2})-(\d{2})$/);
|
|
518
|
-
if (!match) {
|
|
519
|
-
throw new Error(`Invalid date string: ${value}. Expected YYYY-MM-DD format.`);
|
|
520
|
-
}
|
|
521
|
-
const [, year, month, day] = match;
|
|
522
|
-
const date = new Date(Date.UTC(parseInt(year, 10), parseInt(month, 10) - 1, parseInt(day, 10)));
|
|
523
|
-
if (isNaN(date.getTime())) {
|
|
524
|
-
throw new Error(`Invalid date string: ${value}`);
|
|
525
|
-
}
|
|
526
|
-
return date;
|
|
527
|
-
}, value => {
|
|
528
|
-
// Format as YYYY-MM-DD using UTC to avoid timezone issues
|
|
529
|
-
const year = value.getUTCFullYear();
|
|
530
|
-
const month = String(value.getUTCMonth() + 1).padStart(2, '0');
|
|
531
|
-
const day = String(value.getUTCDate()).padStart(2, '0');
|
|
532
|
-
return `${year}-${month}-${day}`;
|
|
533
|
-
});
|
|
534
|
-
// Register 'date-time' format: ISO datetime string (ISO 8601) ↔ Date
|
|
535
|
-
registerFormat('date-time', 8 /* Mask.STRING */, value => {
|
|
536
|
-
const date = new Date(value);
|
|
537
|
-
if (isNaN(date.getTime())) {
|
|
538
|
-
throw new Error(`Invalid date-time string: ${value}`);
|
|
539
|
-
}
|
|
540
|
-
return date;
|
|
541
|
-
}, value => {
|
|
542
|
-
// Format as ISO 8601 string
|
|
543
|
-
return value.toISOString();
|
|
544
|
-
});
|
|
545
|
-
// -----------------------------------------------------------------------------
|
|
546
|
-
// Entity Definitions
|
|
547
|
-
// -----------------------------------------------------------------------------
|
|
548
|
-
/**
|
|
549
|
-
* Creates an entity definition with optional methods.
|
|
550
|
-
*
|
|
551
|
-
* @param shape - Lazy factory function that returns the entity's field definitions
|
|
552
|
-
* @param methods - Optional lazy factory function that returns methods for the entity.
|
|
553
|
-
* Methods have access to `this` typed as the reified entity shape.
|
|
554
|
-
* Methods are wrapped with reactiveMethod for automatic caching.
|
|
555
|
-
*
|
|
556
|
-
* @example
|
|
557
|
-
* const User = entity(
|
|
558
|
-
* () => ({
|
|
559
|
-
* __typename: t.typename('User'),
|
|
560
|
-
* id: t.id,
|
|
561
|
-
* name: t.string,
|
|
562
|
-
* age: t.number,
|
|
563
|
-
* }),
|
|
564
|
-
* () => ({
|
|
565
|
-
* greet() {
|
|
566
|
-
* return `Hello, ${this.name}!`;
|
|
567
|
-
* },
|
|
568
|
-
* isAdult() {
|
|
569
|
-
* return this.age >= 18;
|
|
570
|
-
* },
|
|
571
|
-
* })
|
|
572
|
-
* );
|
|
573
|
-
*/
|
|
574
|
-
// eslint-disable-next-line @typescript-eslint/no-empty-object-type
|
|
575
|
-
export function entity(shape, methods, config) {
|
|
576
|
-
const def = new ValidatorDef(5 /* ComplexTypeDefKind.ENTITY */,
|
|
577
|
-
// The mask should be OBJECT | ENTITY so that values match when compared
|
|
578
|
-
1024 /* Mask.ENTITY */ | 32 /* Mask.OBJECT */, shape);
|
|
579
|
-
if (methods) {
|
|
580
|
-
def._methodsFactory = methods;
|
|
581
|
-
}
|
|
582
|
-
if (config) {
|
|
583
|
-
def._entityConfig = config;
|
|
584
|
-
}
|
|
585
|
-
return def;
|
|
586
|
-
}
|
|
587
|
-
export const t = {
|
|
588
|
-
format: defineFormatted,
|
|
589
|
-
typename: defineTypename,
|
|
590
|
-
const: defineConst,
|
|
591
|
-
enum: defineEnum,
|
|
592
|
-
id: 128 /* Mask.ID */ | 8 /* Mask.STRING */ | 4 /* Mask.NUMBER */,
|
|
593
|
-
string: 8 /* Mask.STRING */,
|
|
594
|
-
number: 4 /* Mask.NUMBER */,
|
|
595
|
-
boolean: 16 /* Mask.BOOLEAN */,
|
|
596
|
-
null: 2 /* Mask.NULL */,
|
|
597
|
-
undefined: 1 /* Mask.UNDEFINED */,
|
|
598
|
-
array: defineArray,
|
|
599
|
-
object: defineObject,
|
|
600
|
-
record: defineRecord,
|
|
601
|
-
union: defineUnion,
|
|
602
|
-
nullish: defineNullish,
|
|
603
|
-
optional: defineOptional,
|
|
604
|
-
nullable: defineNullable,
|
|
605
|
-
};
|
|
606
|
-
//# sourceMappingURL=typeDefs.js.map
|
package/dist/esm/typeDefs.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"typeDefs.js","sourceRoot":"","sources":["../../src/typeDefs.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/types.js
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
// ================================
|
|
2
|
-
// Type Definitions
|
|
3
|
-
// ================================
|
|
4
|
-
export var RefetchInterval;
|
|
5
|
-
(function (RefetchInterval) {
|
|
6
|
-
RefetchInterval[RefetchInterval["Every1Second"] = 1000] = "Every1Second";
|
|
7
|
-
RefetchInterval[RefetchInterval["Every5Seconds"] = 5000] = "Every5Seconds";
|
|
8
|
-
RefetchInterval[RefetchInterval["Every10Seconds"] = 10000] = "Every10Seconds";
|
|
9
|
-
RefetchInterval[RefetchInterval["Every30Seconds"] = 30000] = "Every30Seconds";
|
|
10
|
-
RefetchInterval[RefetchInterval["Every1Minute"] = 60000] = "Every1Minute";
|
|
11
|
-
RefetchInterval[RefetchInterval["Every5Minutes"] = 300000] = "Every5Minutes";
|
|
12
|
-
})(RefetchInterval || (RefetchInterval = {}));
|
|
13
|
-
export var NetworkMode;
|
|
14
|
-
(function (NetworkMode) {
|
|
15
|
-
/**
|
|
16
|
-
* Always fetch regardless of network status
|
|
17
|
-
*/
|
|
18
|
-
NetworkMode["Always"] = "always";
|
|
19
|
-
/**
|
|
20
|
-
* Only fetch when online (default)
|
|
21
|
-
*/
|
|
22
|
-
NetworkMode["Online"] = "online";
|
|
23
|
-
/**
|
|
24
|
-
* Fetch if cached data exists, even when offline
|
|
25
|
-
*/
|
|
26
|
-
NetworkMode["OfflineFirst"] = "offlineFirst";
|
|
27
|
-
})(NetworkMode || (NetworkMode = {}));
|
|
28
|
-
export const ARRAY_KEY = Symbol('array');
|
|
29
|
-
export const RECORD_KEY = Symbol('record');
|
|
30
|
-
//# sourceMappingURL=types.js.map
|
package/dist/esm/types.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAIA,mCAAmC;AACnC,mBAAmB;AACnB,mCAAmC;AAEnC,MAAM,CAAN,IAAY,eAOX;AAPD,WAAY,eAAe;IACzB,wEAAmB,CAAA;IACnB,0EAAoB,CAAA;IACpB,6EAAsB,CAAA;IACtB,6EAAsB,CAAA;IACtB,yEAAoB,CAAA;IACpB,4EAAsB,CAAA;AACxB,CAAC,EAPW,eAAe,KAAf,eAAe,QAO1B;AAED,MAAM,CAAN,IAAY,WAaX;AAbD,WAAY,WAAW;IACrB;;OAEG;IACH,gCAAiB,CAAA;IACjB;;OAEG;IACH,gCAAiB,CAAA;IACjB;;OAEG;IACH,4CAA6B,CAAA;AAC/B,CAAC,EAbW,WAAW,KAAX,WAAW,QAatB;AAwFD,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;AACzC,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC"}
|