@signalium/query 0.0.0 → 0.0.1

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.
Files changed (78) hide show
  1. package/.turbo/turbo-build.log +12 -0
  2. package/CHANGELOG.md +9 -0
  3. package/dist/cjs/EntityMap.js +46 -0
  4. package/dist/cjs/EntityMap.js.map +1 -0
  5. package/dist/cjs/QueryClient.js +180 -0
  6. package/dist/cjs/QueryClient.js.map +1 -0
  7. package/dist/cjs/QueryStore.js +219 -0
  8. package/dist/cjs/QueryStore.js.map +1 -0
  9. package/dist/cjs/errors.js +105 -0
  10. package/dist/cjs/errors.js.map +1 -0
  11. package/dist/cjs/index.js +24 -0
  12. package/dist/cjs/index.js.map +1 -0
  13. package/dist/cjs/parseEntities.js +127 -0
  14. package/dist/cjs/parseEntities.js.map +1 -0
  15. package/dist/cjs/pathInterpolator.js +69 -0
  16. package/dist/cjs/pathInterpolator.js.map +1 -0
  17. package/dist/cjs/proxy.js +187 -0
  18. package/dist/cjs/proxy.js.map +1 -0
  19. package/dist/cjs/query.js +41 -0
  20. package/dist/cjs/query.js.map +1 -0
  21. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -0
  22. package/dist/cjs/typeDefs.js +249 -0
  23. package/dist/cjs/typeDefs.js.map +1 -0
  24. package/dist/cjs/types.js +6 -0
  25. package/dist/cjs/types.js.map +1 -0
  26. package/dist/cjs/utils.js +65 -0
  27. package/dist/cjs/utils.js.map +1 -0
  28. package/dist/esm/EntityMap.d.ts +18 -0
  29. package/dist/esm/EntityMap.d.ts.map +1 -0
  30. package/dist/esm/EntityMap.js +42 -0
  31. package/dist/esm/EntityMap.js.map +1 -0
  32. package/dist/esm/QueryClient.d.ts +82 -0
  33. package/dist/esm/QueryClient.d.ts.map +1 -0
  34. package/dist/esm/QueryClient.js +175 -0
  35. package/dist/esm/QueryClient.js.map +1 -0
  36. package/dist/esm/QueryStore.d.ts +73 -0
  37. package/dist/esm/QueryStore.d.ts.map +1 -0
  38. package/dist/esm/QueryStore.js +209 -0
  39. package/dist/esm/QueryStore.js.map +1 -0
  40. package/dist/esm/errors.d.ts +4 -0
  41. package/dist/esm/errors.d.ts.map +1 -0
  42. package/dist/esm/errors.js +101 -0
  43. package/dist/esm/errors.js.map +1 -0
  44. package/dist/esm/index.d.ts +7 -0
  45. package/dist/esm/index.d.ts.map +1 -0
  46. package/dist/esm/index.js +4 -0
  47. package/dist/esm/index.js.map +1 -0
  48. package/dist/esm/parseEntities.d.ts +8 -0
  49. package/dist/esm/parseEntities.d.ts.map +1 -0
  50. package/dist/esm/parseEntities.js +120 -0
  51. package/dist/esm/parseEntities.js.map +1 -0
  52. package/dist/esm/pathInterpolator.d.ts +29 -0
  53. package/dist/esm/pathInterpolator.d.ts.map +1 -0
  54. package/dist/esm/pathInterpolator.js +66 -0
  55. package/dist/esm/pathInterpolator.js.map +1 -0
  56. package/dist/esm/proxy.d.ts +8 -0
  57. package/dist/esm/proxy.d.ts.map +1 -0
  58. package/dist/esm/proxy.js +180 -0
  59. package/dist/esm/proxy.js.map +1 -0
  60. package/dist/esm/query.d.ts +40 -0
  61. package/dist/esm/query.d.ts.map +1 -0
  62. package/dist/esm/query.js +38 -0
  63. package/dist/esm/query.js.map +1 -0
  64. package/dist/esm/typeDefs.d.ts +25 -0
  65. package/dist/esm/typeDefs.d.ts.map +1 -0
  66. package/dist/esm/typeDefs.js +239 -0
  67. package/dist/esm/typeDefs.js.map +1 -0
  68. package/dist/esm/types.d.ts +86 -0
  69. package/dist/esm/types.d.ts.map +1 -0
  70. package/dist/esm/types.js +3 -0
  71. package/dist/esm/types.js.map +1 -0
  72. package/dist/esm/utils.d.ts +6 -0
  73. package/dist/esm/utils.d.ts.map +1 -0
  74. package/dist/esm/utils.js +60 -0
  75. package/dist/esm/utils.js.map +1 -0
  76. package/dist/tsconfig.esm.tsbuildinfo +1 -0
  77. package/package.json +3 -3
  78. package/vitest.config.ts +4 -10
@@ -0,0 +1,239 @@
1
+ import { ARRAY_KEY, RECORD_KEY, } from './types.js';
2
+ import { extractShape, extractShapeMetadata } from './utils.js';
3
+ export class ValidatorDef {
4
+ mask;
5
+ shape;
6
+ subEntityPaths;
7
+ values;
8
+ typenameField;
9
+ typenameValue;
10
+ idField;
11
+ _optional;
12
+ _nullable;
13
+ _nullish;
14
+ constructor(mask, shape, subEntityPaths = undefined, values = undefined, typenameField = undefined, typenameValue = undefined, idField = undefined) {
15
+ this.mask = mask;
16
+ this.shape = shape;
17
+ this.subEntityPaths = subEntityPaths;
18
+ this.values = values;
19
+ this.typenameField = typenameField;
20
+ this.typenameValue = typenameValue;
21
+ this.idField = idField;
22
+ }
23
+ get optional() {
24
+ if (this._optional === undefined) {
25
+ this._optional = new ValidatorDef(this.mask | 1 /* Mask.UNDEFINED */, this.shape, this.subEntityPaths, this.values, this.typenameField, this.typenameValue, this.idField);
26
+ }
27
+ return this._optional;
28
+ }
29
+ get nullable() {
30
+ if (this._nullable === undefined) {
31
+ this._nullable = new ValidatorDef(this.mask | 2 /* Mask.NULL */, this.shape, this.subEntityPaths, this.values, this.typenameField, this.typenameValue, this.idField);
32
+ }
33
+ return this._nullable;
34
+ }
35
+ get nullish() {
36
+ if (this._nullish === undefined) {
37
+ this._nullish = new ValidatorDef(this.mask | 1 /* Mask.UNDEFINED */ | 2 /* Mask.NULL */, this.shape, this.subEntityPaths, this.values, this.typenameField, this.typenameValue, this.idField);
38
+ }
39
+ return this._nullish;
40
+ }
41
+ }
42
+ // -----------------------------------------------------------------------------
43
+ // Complex Type Definitions
44
+ // -----------------------------------------------------------------------------
45
+ export function defineArray(shape) {
46
+ let mask = 64 /* Mask.ARRAY */;
47
+ // Propagate HAS_SUB_ENTITY flag if the shape contains entities
48
+ if (shape instanceof ValidatorDef && (shape.mask & (1024 /* Mask.ENTITY */ | 2048 /* Mask.HAS_SUB_ENTITY */)) !== 0) {
49
+ mask |= 2048 /* Mask.HAS_SUB_ENTITY */;
50
+ }
51
+ return new ValidatorDef(mask, shape);
52
+ }
53
+ export function defineRecord(shape) {
54
+ // The mask should be OBJECT | RECORD so that values match when compared
55
+ let mask = 256 /* Mask.RECORD */ | 32 /* Mask.OBJECT */;
56
+ // Propagate HAS_SUB_ENTITY flag if the shape contains entities
57
+ if (shape instanceof ValidatorDef && (shape.mask & (1024 /* Mask.ENTITY */ | 2048 /* Mask.HAS_SUB_ENTITY */)) !== 0) {
58
+ mask |= 2048 /* Mask.HAS_SUB_ENTITY */;
59
+ }
60
+ return new ValidatorDef(mask, shape);
61
+ }
62
+ export function defineObject(shape) {
63
+ const def = new ValidatorDef(32 /* Mask.OBJECT */, shape);
64
+ extractShapeMetadata(def, shape);
65
+ return def;
66
+ }
67
+ const addShapeToUnion = (shape, definition, unionTypenameField) => {
68
+ const mask = definition.mask;
69
+ if ((mask & 512 /* Mask.UNION */) !== 0) {
70
+ // Merge nested union into parent union
71
+ const nestedUnion = definition;
72
+ // Check typename field consistency
73
+ if (nestedUnion.typenameField !== undefined) {
74
+ if (unionTypenameField !== undefined && unionTypenameField !== nestedUnion.typenameField) {
75
+ throw new Error(`Union typename field conflict: Cannot merge unions with different typename fields ('${unionTypenameField}' vs '${nestedUnion.typenameField}')`);
76
+ }
77
+ unionTypenameField = nestedUnion.typenameField;
78
+ }
79
+ // Merge nested union's shape into parent
80
+ if (nestedUnion.shape !== undefined) {
81
+ for (const key of [...Object.keys(nestedUnion.shape), ARRAY_KEY, RECORD_KEY]) {
82
+ // Check for conflicts
83
+ const value = nestedUnion.shape[key];
84
+ if (shape[key] !== undefined && shape[key] !== value) {
85
+ throw new Error(`Union merge conflict: Duplicate typename value '${String(key)}' found when merging nested unions`);
86
+ }
87
+ // coerce type because we know the value is the same type as the key
88
+ shape[key] = value;
89
+ }
90
+ }
91
+ return unionTypenameField;
92
+ }
93
+ else if ((mask & 64 /* Mask.ARRAY */) !== 0) {
94
+ if (shape[ARRAY_KEY] !== undefined) {
95
+ throw new Error('Array shape already defined');
96
+ }
97
+ shape[ARRAY_KEY] = definition.shape;
98
+ return unionTypenameField;
99
+ }
100
+ else if ((mask & 256 /* Mask.RECORD */) !== 0) {
101
+ if (shape[RECORD_KEY] !== undefined) {
102
+ throw new Error('Record shape already defined');
103
+ }
104
+ shape[RECORD_KEY] = definition.shape;
105
+ return unionTypenameField;
106
+ }
107
+ else {
108
+ // Make sure the type is fully extracted, so we can get the typename field and value
109
+ extractShape(definition);
110
+ // definition is ObjectDef | EntityDef
111
+ const typenameField = definition.typenameField;
112
+ const typename = definition.typenameValue;
113
+ if (typename === undefined) {
114
+ throw new Error('Object definitions must have a typename to be in a union with other objects, records, or arrays');
115
+ }
116
+ if (unionTypenameField !== undefined && typenameField !== unionTypenameField) {
117
+ throw new Error('Object definitions must have the same typename field to be in the same union');
118
+ }
119
+ shape[typename] = definition;
120
+ return typenameField;
121
+ }
122
+ };
123
+ function defineUnion(...types) {
124
+ let mask = 0;
125
+ let definition;
126
+ let shape;
127
+ let values;
128
+ let unionTypenameField;
129
+ for (const type of types) {
130
+ if (typeof type === 'number') {
131
+ mask |= type;
132
+ continue;
133
+ }
134
+ const isSet = type instanceof Set;
135
+ const typeValues = isSet ? type : type.values;
136
+ // Handle Set-based constants/enums
137
+ if (typeValues !== undefined) {
138
+ if (values === undefined) {
139
+ values = new Set(typeValues);
140
+ }
141
+ else {
142
+ for (const val of typeValues) {
143
+ values.add(val);
144
+ }
145
+ }
146
+ if (isSet) {
147
+ continue;
148
+ }
149
+ }
150
+ // We know it's a complex type at this point because if it was a Set,
151
+ // we would have already handled it above.
152
+ const typeDef = type;
153
+ mask |= typeDef.mask;
154
+ if (definition === undefined) {
155
+ definition = typeDef;
156
+ continue;
157
+ }
158
+ if (shape === undefined) {
159
+ shape = Object.create(null);
160
+ unionTypenameField = addShapeToUnion(shape, definition, unionTypenameField);
161
+ }
162
+ unionTypenameField = addShapeToUnion(shape, typeDef, unionTypenameField);
163
+ }
164
+ // It was a union of primitives, so return the mask
165
+ if (definition === undefined && values === undefined) {
166
+ // This type coercion is incorrect, but we can't return the mask as a Mask
167
+ // because that loses the type information about the union, which breaks
168
+ // inference.
169
+ //
170
+ // TODO: Figure out how to make this correct type-wise
171
+ return mask;
172
+ }
173
+ return new ValidatorDef(mask | 512 /* Mask.UNION */, shape ?? definition?.shape, undefined, values, unionTypenameField);
174
+ }
175
+ // -----------------------------------------------------------------------------
176
+ // Marker Functions
177
+ // -----------------------------------------------------------------------------
178
+ function defineTypename(value) {
179
+ return value;
180
+ }
181
+ function defineConst(value) {
182
+ return new Set([value]);
183
+ }
184
+ function defineEnum(...values) {
185
+ return new Set(values);
186
+ }
187
+ // -----------------------------------------------------------------------------
188
+ // Formatted Values
189
+ // -----------------------------------------------------------------------------
190
+ const FORMAT_MASK_SHIFT = 16;
191
+ let nextFormatId = 0;
192
+ const FORMAT_PARSERS = [];
193
+ const FORMAT_SERIALIZERS = [];
194
+ const FORMAT_MAP = new Map();
195
+ function defineFormatted(format) {
196
+ const mask = FORMAT_MAP.get(format);
197
+ if (mask === undefined) {
198
+ throw new Error(`Format ${format} not registered`);
199
+ }
200
+ return mask;
201
+ }
202
+ export function getFormat(mask) {
203
+ const formatId = mask >> FORMAT_MASK_SHIFT;
204
+ return FORMAT_PARSERS[formatId];
205
+ }
206
+ export function registerFormat(name, type, parse, serialize) {
207
+ const maskId = nextFormatId++;
208
+ FORMAT_PARSERS[maskId] = parse;
209
+ FORMAT_SERIALIZERS[maskId] = serialize;
210
+ const shiftedId = maskId << FORMAT_MASK_SHIFT;
211
+ const formatMask = type === 8 /* Mask.STRING */ ? 8192 /* Mask.HAS_STRING_FORMAT */ : 4096 /* Mask.HAS_NUMBER_FORMAT */;
212
+ const mask = shiftedId | type | formatMask;
213
+ FORMAT_MAP.set(name, mask);
214
+ }
215
+ // -----------------------------------------------------------------------------
216
+ // Entity Definitions
217
+ // -----------------------------------------------------------------------------
218
+ export function entity(shape) {
219
+ return new ValidatorDef(
220
+ // The mask should be OBJECT | ENTITY so that values match when compared
221
+ 1024 /* Mask.ENTITY */ | 32 /* Mask.OBJECT */, shape);
222
+ }
223
+ export const t = {
224
+ format: defineFormatted,
225
+ typename: defineTypename,
226
+ const: defineConst,
227
+ enum: defineEnum,
228
+ id: 128 /* Mask.ID */ | 8 /* Mask.STRING */ | 4 /* Mask.NUMBER */,
229
+ string: 8 /* Mask.STRING */,
230
+ number: 4 /* Mask.NUMBER */,
231
+ boolean: 16 /* Mask.BOOLEAN */,
232
+ null: 2 /* Mask.NULL */,
233
+ undefined: 1 /* Mask.UNDEFINED */,
234
+ array: defineArray,
235
+ object: defineObject,
236
+ record: defineRecord,
237
+ union: defineUnion,
238
+ };
239
+ //# sourceMappingURL=typeDefs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typeDefs.js","sourceRoot":"","sources":["../../src/typeDefs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,86 @@
1
+ import { PendingReactivePromise, ReadyReactivePromise } from 'signalium';
2
+ import { ReactivePromise } from 'signalium';
3
+ export declare const enum Mask {
4
+ UNDEFINED = 1,
5
+ NULL = 2,
6
+ NUMBER = 4,
7
+ STRING = 8,
8
+ BOOLEAN = 16,
9
+ OBJECT = 32,
10
+ ARRAY = 64,
11
+ ID = 128,
12
+ RECORD = 256,
13
+ UNION = 512,
14
+ ENTITY = 1024,
15
+ HAS_SUB_ENTITY = 2048,
16
+ HAS_NUMBER_FORMAT = 4096,
17
+ HAS_STRING_FORMAT = 8192
18
+ }
19
+ export type SimpleTypeDef = Set<string | boolean | number> | Mask;
20
+ export type ComplexTypeDef = ObjectDef | EntityDef | ArrayDef | RecordDef | UnionDef;
21
+ export type TypeDef = SimpleTypeDef | ComplexTypeDef;
22
+ export type ObjectFieldTypeDef = TypeDef | string;
23
+ export type ObjectShape = Record<string, ObjectFieldTypeDef>;
24
+ export declare const ARRAY_KEY: unique symbol;
25
+ export declare const RECORD_KEY: unique symbol;
26
+ export interface UnionTypeDefs {
27
+ [ARRAY_KEY]?: TypeDef;
28
+ [RECORD_KEY]?: TypeDef;
29
+ [key: string]: ObjectDef | EntityDef;
30
+ }
31
+ export interface BaseTypeDef {
32
+ mask: Mask;
33
+ typenameField: string;
34
+ typenameValue: string;
35
+ idField: string;
36
+ subEntityPaths: undefined | string | string[];
37
+ values: Set<string | boolean | number> | undefined;
38
+ optional: this | Mask.UNDEFINED;
39
+ nullable: this | Mask.NULL;
40
+ nullish: this | Mask.UNDEFINED | Mask.NULL;
41
+ }
42
+ export interface EntityDef<T extends ObjectShape = ObjectShape> extends BaseTypeDef {
43
+ mask: Mask.ENTITY;
44
+ shape: T | ((t: APITypes) => T);
45
+ }
46
+ export interface ObjectDef<T extends ObjectShape = ObjectShape> extends BaseTypeDef {
47
+ mask: Mask.OBJECT;
48
+ shape: T;
49
+ }
50
+ export interface ArrayDef<T extends TypeDef = TypeDef> extends BaseTypeDef {
51
+ mask: Mask.ARRAY;
52
+ shape: T;
53
+ }
54
+ export interface UnionDef<_T extends readonly TypeDef[] = readonly TypeDef[]> extends BaseTypeDef {
55
+ mask: Mask.UNION;
56
+ shape: UnionTypeDefs | undefined;
57
+ }
58
+ export interface RecordDef<T extends TypeDef = TypeDef> extends BaseTypeDef {
59
+ mask: Mask.RECORD;
60
+ shape: T;
61
+ }
62
+ export interface APITypes {
63
+ format: (format: string) => number;
64
+ typename: <T extends string>(value: T) => T;
65
+ const: <T extends string | boolean | number>(value: T) => Set<T>;
66
+ enum: <T extends readonly (string | boolean | number)[]>(...values: T) => Set<T[number]>;
67
+ id: Mask.ID;
68
+ string: Mask.STRING;
69
+ number: Mask.NUMBER;
70
+ boolean: Mask.BOOLEAN;
71
+ null: Mask.NULL;
72
+ undefined: Mask.UNDEFINED;
73
+ array: <T extends TypeDef>(shape: T) => ArrayDef<T>;
74
+ object: <T extends ObjectShape>(shape: T) => ObjectDef<T>;
75
+ record: <T extends TypeDef>(shape: T) => RecordDef<T>;
76
+ union: <VS extends readonly TypeDef[]>(...types: VS) => UnionDef<VS>;
77
+ }
78
+ type QueryResultExtensions<T> = {
79
+ refetch: () => Promise<T>;
80
+ };
81
+ export type QueryResult<T> = ReactivePromise<T> & QueryResultExtensions<T>;
82
+ export type PendingQueryResult<T> = PendingReactivePromise<T> & QueryResultExtensions<T>;
83
+ export type ReadyQueryResult<T> = ReadyReactivePromise<T> & QueryResultExtensions<T>;
84
+ export type DiscriminatedQueryResult<T> = PendingQueryResult<T> | ReadyQueryResult<T>;
85
+ export {};
86
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export const ARRAY_KEY = Symbol('array');
2
+ export const RECORD_KEY = Symbol('record');
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AA0CA,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;AACzC,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { ValidatorDef } from './typeDefs.js';
2
+ import { ComplexTypeDef, EntityDef, Mask, ObjectShape } from './types.js';
3
+ export declare function extractShapeMetadata(def: ValidatorDef<any>, shape: ObjectShape): void;
4
+ export declare function extractShape<T extends ComplexTypeDef>(def: T): T extends EntityDef ? ObjectShape : T['shape'];
5
+ export declare function typeMaskOf(value: unknown): Mask;
6
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAK1E,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CA6BrF;AAED,wBAAgB,YAAY,CAAC,CAAC,SAAS,cAAc,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,SAAS,SAAS,GAAG,WAAW,GAAG,CAAC,CAAC,OAAO,CAAC,CAS7G;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAiB/C"}
@@ -0,0 +1,60 @@
1
+ import { t, ValidatorDef } from './typeDefs.js';
2
+ const entries = Object.entries;
3
+ const isArray = Array.isArray;
4
+ export function extractShapeMetadata(def, shape) {
5
+ for (const [key, value] of Object.entries(shape)) {
6
+ if (value instanceof ValidatorDef && (value.mask & (1024 /* Mask.ENTITY */ | 2048 /* Mask.HAS_SUB_ENTITY */)) !== 0) {
7
+ if (def.subEntityPaths === undefined) {
8
+ def.subEntityPaths = key;
9
+ }
10
+ else if (isArray(def.subEntityPaths)) {
11
+ def.subEntityPaths.push(key);
12
+ }
13
+ else {
14
+ def.subEntityPaths = [def.subEntityPaths, key];
15
+ }
16
+ }
17
+ // Check if this is a typename field (plain string value)
18
+ if (typeof value === 'string') {
19
+ if (def.typenameField !== undefined) {
20
+ throw new Error(`Duplicate typename field: ${key}`);
21
+ }
22
+ def.typenameField = key;
23
+ def.typenameValue = value;
24
+ }
25
+ // Check if this is an id field (Mask.ID)
26
+ else if (typeof value === 'number' && (value & 128 /* Mask.ID */) !== 0) {
27
+ if (def.idField !== undefined) {
28
+ throw new Error(`Duplicate id field: ${key}`);
29
+ }
30
+ def.idField = key;
31
+ }
32
+ }
33
+ }
34
+ export function extractShape(def) {
35
+ let shape = def.shape;
36
+ if (typeof shape === 'function') {
37
+ shape = def.shape = shape(t);
38
+ extractShapeMetadata(def, shape);
39
+ }
40
+ return shape;
41
+ }
42
+ export function typeMaskOf(value) {
43
+ if (value === null)
44
+ return 2 /* Mask.NULL */;
45
+ switch (typeof value) {
46
+ case 'number':
47
+ return 4 /* Mask.NUMBER */;
48
+ case 'string':
49
+ return 8 /* Mask.STRING */;
50
+ case 'boolean':
51
+ return 16 /* Mask.BOOLEAN */;
52
+ case 'undefined':
53
+ return 1 /* Mask.UNDEFINED */;
54
+ case 'object':
55
+ return isArray(value) ? 64 /* Mask.ARRAY */ : 32 /* Mask.OBJECT */;
56
+ default:
57
+ throw new Error(`Invalid type: ${typeof value}`);
58
+ }
59
+ }
60
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAGhD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;AAC/B,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;AAE9B,MAAM,UAAU,oBAAoB,CAAC,GAAsB,EAAE,KAAkB;IAC7E,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACjD,IAAI,KAAK,YAAY,YAAY,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,uDAAiC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9F,IAAI,GAAG,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;gBACrC,GAAG,CAAC,cAAc,GAAG,GAAG,CAAC;YAC3B,CAAC;iBAAM,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;gBACvC,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC/B,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,cAAc,GAAG,CAAC,GAAG,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;YACjD,CAAC;QACH,CAAC;QACD,yDAAyD;QACzD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,IAAI,GAAG,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;gBACpC,MAAM,IAAI,KAAK,CAAC,6BAA6B,GAAG,EAAE,CAAC,CAAC;YACtD,CAAC;YAED,GAAG,CAAC,aAAa,GAAG,GAAG,CAAC;YACxB,GAAG,CAAC,aAAa,GAAG,KAAK,CAAC;QAC5B,CAAC;QACD,yCAAyC;aACpC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,oBAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9D,IAAI,GAAG,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC9B,MAAM,IAAI,KAAK,CAAC,uBAAuB,GAAG,EAAE,CAAC,CAAC;YAChD,CAAC;YAED,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC;QACpB,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,UAAU,YAAY,CAA2B,GAAM;IAC3D,IAAI,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;IAEtB,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;QAChC,KAAK,GAAG,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC7B,oBAAoB,CAAC,GAAwB,EAAE,KAAK,CAAC,CAAC;IACxD,CAAC;IAED,OAAO,KAAuD,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,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 @@
1
+ {"root":["../src/EntityMap.ts","../src/QueryClient.ts","../src/QueryStore.ts","../src/errors.ts","../src/index.ts","../src/parseEntities.ts","../src/pathInterpolator.ts","../src/proxy.ts","../src/query.ts","../src/typeDefs.ts","../src/types.ts","../src/utils.ts"],"version":"5.7.3"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@signalium/query",
3
- "version": "0.0.0",
3
+ "version": "0.0.1",
4
4
  "type": "module",
5
5
  "repository": {
6
6
  "type": "git",
@@ -25,7 +25,7 @@
25
25
  },
26
26
  "peerDependencies": {
27
27
  "react": ">=18.3.1",
28
- "signalium": ">=2.0.6"
28
+ "signalium": ">=2.0.7"
29
29
  },
30
30
  "peerDependenciesMeta": {
31
31
  "react": {
@@ -60,7 +60,7 @@
60
60
  "react": "^18.3.1",
61
61
  "react-dom": "^18.3.1",
62
62
  "rollup-plugin-const-enum": "^1.1.4",
63
- "signalium": "2.0.6",
63
+ "signalium": "2.0.7",
64
64
  "vite": "^7.1.2",
65
65
  "vite-plugin-babel": "^1.3.0",
66
66
  "vite-plugin-dts": "^4.5.4",
package/vitest.config.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  /// <reference types="@vitest/browser/providers/playwright" />
2
2
 
3
3
  import { defineConfig } from 'vitest/config';
4
+ import react from '@vitejs/plugin-react';
4
5
  import babel from 'vite-plugin-babel';
5
6
  import { signaliumPreset } from 'signalium/transform';
6
7
  import tsconfigPaths from 'vite-tsconfig-paths';
@@ -42,16 +43,9 @@ export default defineConfig({
42
43
  {
43
44
  extends: true,
44
45
  plugins: [
45
- (babel as any)({
46
- filter: /\.(j|t)sx?$/,
47
- babelConfig: {
48
- babelrc: false,
49
- configFile: false,
50
- sourceMaps: true,
51
- presets: [['@babel/preset-react', { runtime: 'automatic' }], signaliumPreset()],
52
- parserOpts: {
53
- plugins: ['typescript', 'jsx'],
54
- },
46
+ react({
47
+ babel: {
48
+ presets: [signaliumPreset()],
55
49
  },
56
50
  }),
57
51
  ],