@triplit/react 0.0.29 → 0.0.30

Sign up to get free protection for your applications and to get access to all the features.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,20 @@
1
1
  # @triplit/react
2
2
 
3
+ ## 0.0.30
4
+
5
+ ### Patch Changes
6
+
7
+ - 33a1201: Add handlers for remote transaction status: onTxCommit() and onTxFailure()
8
+ Add helper methods for managing cache: retry() and rollback()
9
+ - 30aadee: - Pass errors to useQuery hook
10
+ - Add useEntity hook
11
+ - 1a8f596: - Update dependencies
12
+ - Updated dependencies [33a1201]
13
+ - Updated dependencies [eff6593]
14
+ - Updated dependencies [1a8f596]
15
+ - Updated dependencies [30aadee]
16
+ - @triplit/client@0.0.30
17
+
3
18
  ## 0.0.28
4
19
 
5
20
  ### Patch Changes
package/dist/index.d.ts CHANGED
@@ -1 +1,589 @@
1
- export * from './use-query';
1
+ import { KeyValuePair, ScanStorageArgs, TupleStorageApi, WriteOps, AsyncTupleStorageApi, Callback, ScanArgs, Tuple, AsyncTupleDatabaseClient, AsyncTupleRootTransactionApi, Unsubscribe } from "tuple-database";
2
+ import BTree from "sorted-btree";
3
+ import { Static, TBoolean, TNumber, TObject, TRecord, TSchema, TString, TTuple } from "@sinclair/typebox";
4
+ import { TuplePrefix, TupleToObject, RemoveTupleValuePairPrefix } from "tuple-database/database/typeHelpers";
5
+ declare class MemoryBTree implements TupleStorageApi {
6
+ btree: BTree<any, any>;
7
+ constructor();
8
+ scan(args?: ScanStorageArgs | undefined): KeyValuePair[];
9
+ commit(writes: WriteOps<KeyValuePair>): void;
10
+ close(): void;
11
+ wipe(): void;
12
+ }
13
+ declare class CachedIndexedDbStorage implements AsyncTupleStorageApi {
14
+ dbName: string;
15
+ constructor(dbName: string);
16
+ scan(args?: ScanStorageArgs | undefined): Promise<KeyValuePair[]>;
17
+ commit(writes: WriteOps<KeyValuePair>): Promise<void>;
18
+ close(): Promise<void>;
19
+ }
20
+ type Timestamp = [sequence: number, client: string];
21
+ declare const _Timestamp1: import("@sinclair/typebox").TReadonly<TTuple<[TNumber, TString<string>]>>;
22
+ type TimestampType = Static<typeof _Timestamp1>;
23
+ type RegisterBaseType = TNumber | TBoolean | TString;
24
+ type RegisterTypeFromBaseType<T extends RegisterBaseType> = TTuple<[
25
+ T,
26
+ typeof _Timestamp1
27
+ ]> & {
28
+ 'x-crdt-type': 'Register';
29
+ 'x-serialized-type': T['type'];
30
+ };
31
+ declare function Register<T extends RegisterBaseType>(type: T): RegisterTypeFromBaseType<T>;
32
+ type ValidSetDataTypes = TNumber | TString;
33
+ type SetTypeFromValidTypes<T extends ValidSetDataTypes> = TRecord<T, ReturnType<typeof Register<TBoolean>>> & {
34
+ 'x-crdt-type': 'Set';
35
+ 'x-serialized-type': T extends TNumber ? 'set_number' : T extends TString ? 'set_string' : never;
36
+ };
37
+ declare class Schema {
38
+ static string: () => RegisterTypeFromBaseType<TString<string>>;
39
+ static number: () => RegisterTypeFromBaseType<TNumber>;
40
+ static Boolean: () => RegisterTypeFromBaseType<TBoolean>;
41
+ static Record(schema: SchemaConfig): RecordType;
42
+ static Set<T extends ValidSetDataTypes>(type: ReturnType<typeof Register<T>>): SetTypeFromValidTypes<T>;
43
+ static Schema<Config extends SchemaConfig>(config: Config): TObject<Config>;
44
+ }
45
+ type RecordType = TObject<SchemaConfig>;
46
+ type RegisterType = ReturnType<typeof Register<TNumber | TBoolean | TString>>;
47
+ type SetType = ReturnType<typeof Schema.Set>;
48
+ type DataType = RegisterType | SetType | RecordType;
49
+ type SchemaConfig = Record<keyof any, DataType>;
50
+ type Model<T extends SchemaConfig> = ReturnType<typeof Schema.Schema<T>>;
51
+ type Collection<T extends SchemaConfig> = {
52
+ attributes: Model<T>;
53
+ rules?: CollectionRules<Model<T>>;
54
+ };
55
+ type Models<CollectionName extends string, T extends SchemaConfig> = Record<CollectionName, Collection<T>>;
56
+ type ValueSerializedSchemaType = 'string' | 'number' | 'boolean';
57
+ type SetSerializedSchemaType = 'set_string' | 'set_number';
58
+ type SerializedSchemaType = ValueSerializedSchemaType | SetSerializedSchemaType;
59
+ interface SetProxy<T> {
60
+ add: (value: T) => void;
61
+ remove: (value: T) => void;
62
+ has: (value: T) => boolean;
63
+ }
64
+ type ProxyType<T extends TSchema & {
65
+ 'x-serialized-type': SerializedSchemaType;
66
+ }> = T['x-serialized-type'] extends 'set_string' ? SetProxy<string> : T['x-serialized-type'] extends 'set_number' ? SetProxy<number> : Static<T> extends [infer U, TimestampType] ? U : never;
67
+ type ProxySchema<T extends ReturnType<typeof Schema.Schema>> = {
68
+ [k in keyof T['properties']]: k extends string ? ProxyType<T['properties'][k]> : never;
69
+ };
70
+ type ProxyTypeFromModel<T extends Model<any> | undefined> = T extends Model<any> ? ProxySchema<T> : any;
71
+ type TypeFromModel<T extends TSchema> = Static<T>;
72
+ type JSONTypeFromModel<T extends Model<any> | undefined> = T extends Model<any> ? UnTimestampedObject<Static<T>> : any;
73
+ type TimestampedObject = {
74
+ [key: string | number]: [value: any, timestamp: TimestampType] | TimestampedObject;
75
+ };
76
+ type UnTimestampedObject<T extends TimestampedObject> = {
77
+ [k in keyof T]: T[k] extends TimestampedObject ? UnTimestampedObject<T[k]> : T[k] extends [value: infer V, timestamp: TimestampType] ? V : never;
78
+ };
79
+ type StorageScope = {
80
+ read?: string[];
81
+ write?: string[];
82
+ };
83
+ type TransactionScope<TupleSchema extends KeyValuePair> = {
84
+ read: AsyncTupleRootTransactionApi<TupleSchema>[];
85
+ write: AsyncTupleRootTransactionApi<TupleSchema>[];
86
+ };
87
+ declare class MultiTupleStore<TupleSchema extends KeyValuePair> {
88
+ readonly storageScope?: StorageScope;
89
+ storage: Record<string, AsyncTupleDatabaseClient<TupleSchema>>;
90
+ constructor({ storage, storageScope, }: {
91
+ storage: Record<string, AsyncTupleDatabaseClient<TupleSchema>>;
92
+ storageScope?: {
93
+ read?: string[];
94
+ write?: string[];
95
+ };
96
+ });
97
+ getStorageClients(context?: 'read' | 'write'): AsyncTupleDatabaseClient<TupleSchema>[];
98
+ scan<T extends Tuple, P extends TuplePrefix<T>>(args?: ScanArgs<T, P> | undefined, txId?: string | undefined): Promise<Extract<TupleSchema, {
99
+ key: TupleToObject<P>;
100
+ }>[]>;
101
+ subscribe<T extends Tuple, P extends TuplePrefix<T>>(args: ScanArgs<T, P>, callback: Callback<Extract<TupleSchema, {
102
+ key: TupleToObject<P>;
103
+ }>>): Unsubscribe;
104
+ exists<T extends Tuple>(tuple: T, txId?: string | undefined): Promise<boolean>;
105
+ subspace<P extends TuplePrefix<TupleSchema['key']>>(prefix: P): MultiTupleStore<RemoveTupleValuePairPrefix<TupleSchema, P>>;
106
+ transact(scope?: StorageScope): MultiTupleTransaction<TupleSchema>;
107
+ autoTransact<T>(callback: (tx: MultiTupleTransaction<TupleSchema>) => Promise<T>, scope: StorageScope | undefined): Promise<T>;
108
+ clear(): Promise<void>;
109
+ close(): void;
110
+ }
111
+ declare class ScopedMultiTupleOperator<TupleSchema extends KeyValuePair> {
112
+ readonly txScope: TransactionScope<TupleSchema>;
113
+ constructor({ txScope }: {
114
+ txScope: TransactionScope<TupleSchema>;
115
+ });
116
+ scan<T extends Tuple, P extends TuplePrefix<T>>(args?: ScanArgs<T, P> | undefined): Promise<TupleSchema[]>;
117
+ exists<T extends Tuple>(tuple: T): Promise<boolean>;
118
+ remove(tuple: Tuple): void;
119
+ set<Key extends Tuple>(tuple: Key, value: Extract<TupleSchema, {
120
+ key: TupleToObject<Key>;
121
+ }> extends unknown ? Extract<TupleSchema, {
122
+ key: TupleToObject<Key>;
123
+ }>['value'] : never): void;
124
+ }
125
+ declare class MultiTupleTransaction<TupleSchema extends KeyValuePair> extends ScopedMultiTupleOperator<TupleSchema> {
126
+ readonly txs: Record<string, AsyncTupleRootTransactionApi<TupleSchema>>;
127
+ readonly store: MultiTupleStore<TupleSchema>;
128
+ isCanceled: boolean;
129
+ constructor({ store, scope, }: {
130
+ store: MultiTupleStore<TupleSchema>;
131
+ scope?: StorageScope;
132
+ });
133
+ withScope(scope: StorageScope): ScopedMultiTupleOperator<TupleSchema>;
134
+ commit(): Promise<void>;
135
+ cancel(): Promise<void>;
136
+ }
137
+ interface Clock {
138
+ assignToStore(store: TripleStore): Promise<void>;
139
+ getCurrentTimestamp(): Promise<Timestamp>;
140
+ getNextTimestamp(): Promise<Timestamp>;
141
+ setTick(tick: number): Promise<void>;
142
+ }
143
+ type Path = string;
144
+ type Value = any;
145
+ type Operator = '=' | '<' | '>' | '<=' | '>=' | '!=' | 'like' | 'nlike';
146
+ type FilterStatement<M extends Model<any> | undefined> = [
147
+ M extends Model<any> ? keyof M['properties'] : Path,
148
+ Operator,
149
+ Value
150
+ ];
151
+ type FilterGroup<M extends Model<any> | undefined> = {
152
+ mod: 'or' | 'and';
153
+ filters: WhereFilter<M>[];
154
+ };
155
+ type WhereFilter<M extends Model<any> | undefined> = FilterStatement<M> | FilterGroup<M>;
156
+ type QueryWhere<M extends Model<any> | undefined> = WhereFilter<M>[];
157
+ type ValueCursor = [value: Value, entityId: EntityId];
158
+ interface Query<M extends Model<any> | undefined> {
159
+ where: QueryWhere<M>;
160
+ select: (M extends Model<any> ? keyof M['properties'] : Path)[];
161
+ order?: [
162
+ property: M extends Model<any> ? keyof M['properties'] : Path,
163
+ direction: 'ASC' | 'DESC'
164
+ ];
165
+ limit?: number;
166
+ after?: ValueCursor;
167
+ entityId?: string;
168
+ vars?: Record<string, any>;
169
+ }
170
+ type StoreSchema<M extends Models<any, any> | undefined> = M extends Models<any, any> ? {
171
+ version: number;
172
+ collections: M;
173
+ } : M extends undefined ? undefined : never;
174
+ type _Value1 = number | string | boolean | null;
175
+ type EntityId = string;
176
+ type AttributeItem = string | number;
177
+ type Attribute = AttributeItem[];
178
+ type Expired = boolean;
179
+ type TenantId = string;
180
+ type EAV = [EntityId, Attribute, _Value1];
181
+ type TripleRow = {
182
+ id: EntityId;
183
+ attribute: Attribute;
184
+ value: _Value1;
185
+ timestamp: Timestamp;
186
+ expired: Expired;
187
+ };
188
+ type TripleMetadata = {
189
+ expired: Expired;
190
+ };
191
+ type EAVIndex = {
192
+ key: ['EAV', EntityId, Attribute, _Value1, Timestamp];
193
+ value: TripleMetadata;
194
+ };
195
+ type AVEIndex = {
196
+ key: ['AVE', Attribute, _Value1, EntityId, Timestamp];
197
+ value: TripleMetadata;
198
+ };
199
+ type VAEIndex = {
200
+ key: ['VAE', _Value1, Attribute, EntityId, Timestamp];
201
+ value: TripleMetadata;
202
+ };
203
+ type ClientTimestampIndex = {
204
+ key: ['clientTimestamp', string, Timestamp, EntityId, Attribute, _Value1];
205
+ value: TripleMetadata;
206
+ };
207
+ type MetadataIndex = {
208
+ key: ['metadata', EntityId, ...Attribute];
209
+ value: any;
210
+ };
211
+ type WithTenantIdPrefix<T extends KeyValuePair> = {
212
+ key: [TenantId, ...T['key']];
213
+ value: T['value'];
214
+ };
215
+ type TripleIndex = EAVIndex | AVEIndex | VAEIndex | ClientTimestampIndex;
216
+ type TupleIndex = TripleIndex | MetadataIndex;
217
+ interface TripleStoreApi {
218
+ insertTriple(tripleRow: TripleRow): void;
219
+ insertTriples(triplesInput: TripleRow[]): void;
220
+ deleteTriple(tripleRow: TripleRow): void;
221
+ deleteTriples(triplesInput: TripleRow[]): void;
222
+ setValue(...triple: EAV): void;
223
+ findByCollection(collection: string, direction?: 'ASC' | 'DESC'): Promise<TripleRow[]>;
224
+ findMaxTimestamp(clientId: string): Promise<Timestamp | undefined>;
225
+ findByClientTimestamp(clientId: string, scanDirection: 'lt' | 'lte' | 'gt' | 'gte', timestamp: Timestamp | undefined): Promise<TripleRow[]>;
226
+ findByEAV([entityId, attribute, value]: [
227
+ entityId?: EntityId,
228
+ attribute?: Attribute,
229
+ value?: _Value1
230
+ ], direction?: 'ASC' | 'DESC'): Promise<TripleRow[]>;
231
+ findByAVE([attribute, value, entityId]: [
232
+ attribute?: Attribute,
233
+ value?: _Value1,
234
+ entityId?: EntityId
235
+ ], direction?: 'ASC' | 'DESC'): Promise<TripleRow[]>;
236
+ findByEntity(id?: EntityId): Promise<TripleRow[]>;
237
+ findByEntityAttribute(id: EntityId, attribute: Attribute): Promise<TripleRow[]>;
238
+ findByAttribute(attribute: Attribute): Promise<TripleRow[]>;
239
+ readMetadataTuples(entityId: string, attribute?: Attribute): Promise<EAV[]>;
240
+ updateMetadataTuples(updates: EAV[]): Promise<void>;
241
+ deleteMetadataTuples(deletes: [entityId: string, attribute?: Attribute][]): Promise<void>;
242
+ readSchema(): Promise<StoreSchema<Models<any, any>> | undefined>;
243
+ }
244
+ type MetadataListener = (changes: {
245
+ updates: EAV[];
246
+ deletes: [entityId: string, attribute?: Attribute][];
247
+ }) => void | Promise<void>;
248
+ declare class TripleStoreOperator implements TripleStoreApi {
249
+ tupleOperator: ScopedMultiTupleOperator<TupleIndex>;
250
+ schema?: StoreSchema<Models<any, any>>;
251
+ readonly clock: Clock;
252
+ assignedTimestamp?: Timestamp;
253
+ constructor({ tupleOperator, schema, clock, }: {
254
+ tupleOperator: ScopedMultiTupleOperator<TupleIndex>;
255
+ clock: Clock;
256
+ schema?: StoreSchema<Models<any, any>>;
257
+ });
258
+ readSchema(): Promise<{
259
+ version: number;
260
+ collections: Models<any, any>;
261
+ } | undefined>;
262
+ getTransactionTimestamp(): Promise<Timestamp>;
263
+ findByCollection(collection: string, direction?: 'ASC' | 'DESC' | undefined): Promise<TripleRow[]>;
264
+ findValuesInRange(attribute: Attribute, constraints: {
265
+ greaterThan?: ValueCursor;
266
+ lessThan?: ValueCursor;
267
+ direction?: 'ASC' | 'DESC';
268
+ } | undefined): Promise<TripleRow[]>;
269
+ findByEAV(tupleArgs: [
270
+ entityId?: string | undefined,
271
+ attribute?: Attribute | undefined,
272
+ value?: _Value1 | undefined
273
+ ], direction?: 'ASC' | 'DESC' | undefined): Promise<TripleRow[]>;
274
+ findByAVE(tupleArgs: [
275
+ attribute?: Attribute | undefined,
276
+ value?: _Value1 | undefined,
277
+ entityId?: string | undefined
278
+ ], direction?: 'ASC' | 'DESC' | undefined): Promise<TripleRow[]>;
279
+ findByEntity(id?: string | undefined): Promise<TripleRow[]>;
280
+ findByEntityAttribute(id: string, attribute: Attribute): Promise<TripleRow[]>;
281
+ findByAttribute(attribute: Attribute): Promise<TripleRow[]>;
282
+ getEntity(entityId: string): Promise<{} | null>;
283
+ getEntities(collectionName: string): Promise<Map<any, any>>;
284
+ findMaxTimestamp(clientId: string): Promise<Timestamp | undefined>;
285
+ findByClientTimestamp(clientId: string, scanDirection: 'lt' | 'lte' | 'gt' | 'gte' | 'eq', timestamp: Timestamp | undefined): Promise<TripleRow[]>;
286
+ insertTriple(tripleRow: TripleRow): Promise<void>;
287
+ insertTriples(triplesInput: TripleRow[]): Promise<void>;
288
+ deleteTriple(trip: TripleRow): Promise<void>;
289
+ deleteTriples(triples: TripleRow[]): Promise<void>;
290
+ readMetadataTuples(entityId: string, attribute?: Attribute): Promise<EAV[]>;
291
+ updateMetadataTuples(updates: EAV[]): Promise<void>;
292
+ deleteMetadataTuples(deletes: [entityId: string, attribute?: Attribute][]): Promise<void>;
293
+ onMetadataChange(callback: MetadataListener): () => void;
294
+ setValue(id: EntityId, attribute: Attribute, value: _Value1): Promise<void>;
295
+ }
296
+ declare class TripleStoreTransaction extends TripleStoreOperator {
297
+ tupleTx: MultiTupleTransaction<TupleIndex>;
298
+ constructor({ tupleTx, clock, schema, }: {
299
+ tupleTx: MultiTupleTransaction<TupleIndex>;
300
+ clock: Clock;
301
+ schema?: StoreSchema<Models<any, any>>;
302
+ });
303
+ commit(): Promise<void>;
304
+ cancel(): Promise<void>;
305
+ withScope(scope: StorageScope): TripleStoreOperator;
306
+ }
307
+ declare class TripleStore implements TripleStoreApi {
308
+ stores: Record<string, AsyncTupleDatabaseClient<WithTenantIdPrefix<TupleIndex>>>;
309
+ storageScope: string[];
310
+ tupleStore: MultiTupleStore<TupleIndex>;
311
+ clock: Clock;
312
+ tenantId: string;
313
+ ensureInitializedSchema: Promise<void>;
314
+ constructor({ storage, stores, tenantId, schema, clock, storageScope, }: {
315
+ storage?: (TupleStorageApi | AsyncTupleStorageApi) | Record<string, TupleStorageApi | AsyncTupleStorageApi>;
316
+ stores?: Record<string, AsyncTupleDatabaseClient<WithTenantIdPrefix<TupleIndex>>>;
317
+ tenantId?: string;
318
+ schema?: StoreSchema<Models<any, any>>;
319
+ storageScope?: string[];
320
+ clock?: Clock;
321
+ });
322
+ findByCollection(collection: string, direction?: 'ASC' | 'DESC' | undefined): Promise<TripleRow[]>;
323
+ findValuesInRange(attribute: Attribute, constraints: {
324
+ greaterThan?: ValueCursor;
325
+ lessThan?: ValueCursor;
326
+ direction?: 'ASC' | 'DESC';
327
+ } | undefined): Promise<TripleRow[]>;
328
+ findByEAV([entityId, attribute, value]: [
329
+ entityId?: string | undefined,
330
+ attribute?: Attribute | undefined,
331
+ value?: _Value1 | undefined
332
+ ], direction?: 'ASC' | 'DESC' | undefined): Promise<TripleRow[]>;
333
+ findByAVE([attribute, value, entityId]: [
334
+ attribute?: Attribute | undefined,
335
+ value?: _Value1 | undefined,
336
+ entityId?: string | undefined
337
+ ], direction?: 'ASC' | 'DESC' | undefined): Promise<TripleRow[]>;
338
+ findByEntity(id?: string | undefined): Promise<TripleRow[]>;
339
+ findByEntityAttribute(id: string, attribute: Attribute): Promise<TripleRow[]>;
340
+ findByAttribute(attribute: Attribute): Promise<TripleRow[]>;
341
+ getEntity(entityId: string): Promise<{} | null>;
342
+ getEntities(collectionName: string): Promise<Map<any, any>>;
343
+ findMaxTimestamp(clientId: string): Promise<Timestamp | undefined>;
344
+ findByClientTimestamp(clientId: string, scanDirection: 'lt' | 'lte' | 'gt' | 'gte' | 'eq', timestamp: Timestamp | undefined): Promise<TripleRow[]>;
345
+ transact(callback: (tx: TripleStoreTransaction) => Promise<void>, scope?: Parameters<typeof this.tupleStore.transact>[0]): Promise<string | undefined>;
346
+ setStorageScope(storageKeys: (keyof typeof this.stores)[]): TripleStore;
347
+ setValue(entity: string, attribute: Attribute, value: _Value1): Promise<void>;
348
+ insertTriple(tripleRow: TripleRow): Promise<void>;
349
+ insertTriples(triplesInput: TripleRow[]): Promise<void>;
350
+ onInsert(callback: (triples: TripleRow[]) => void): () => void;
351
+ onWrite(callback: (writes: {
352
+ inserts: TripleRow[];
353
+ deletes: TripleRow[];
354
+ }) => void): import("tuple-database").Unsubscribe;
355
+ deleteTriple(triple: TripleRow): Promise<void>;
356
+ deleteTriples(triples: TripleRow[]): Promise<void>;
357
+ readMetadataTuples(entityId: string, attribute?: Attribute): Promise<EAV[]>;
358
+ updateMetadataTuples(updates: EAV[]): Promise<void>;
359
+ deleteMetadataTuples(deletes: [entityId: string, attribute?: Attribute][]): Promise<void>;
360
+ readSchema(): Promise<{
361
+ version: number;
362
+ collections: Models<any, any>;
363
+ } | undefined>;
364
+ clear(): Promise<void>;
365
+ }
366
+ type toBuilder<T extends {}> = {
367
+ [k in keyof Required<T>]: (value: T[k]) => toBuilder<T>;
368
+ } & {
369
+ build: () => T;
370
+ };
371
+ type CollectionQuery<M extends Model<any> | undefined> = Query<M> & {
372
+ collectionName: string;
373
+ };
374
+ type FetchResult<C extends CollectionQuery<any>> = C extends CollectionQuery<infer M> ? M extends Model<any> ? Map<string, UnTimestampedObject<TypeFromModel<M>>> : M extends undefined ? Map<string, any> : never : never;
375
+ declare class DBTransaction<M extends Models<any, any> | undefined> {
376
+ readonly storeTx: TripleStoreTransaction;
377
+ readonly variables?: Record<string, any> | undefined;
378
+ constructor(storeTx: TripleStoreTransaction, variables?: Record<string, any> | undefined);
379
+ getCollectionSchema<CN extends CollectionNameFromModels<M>>(collectionName: CN): Promise<CollectionFromModels<M, CN> | undefined>;
380
+ getSchema(): Promise<{
381
+ version: number;
382
+ collections: Models<any, any>;
383
+ } | undefined>;
384
+ commit(): Promise<void>;
385
+ cancel(): Promise<void>;
386
+ insert(collectionName: CollectionNameFromModels<M>, doc: any, id?: string): Promise<void>;
387
+ update<CN extends CollectionNameFromModels<M>>(collectionName: CN, entityId: string, updater: (entity: ProxyTypeFromModel<ModelFromModels<M, CN>>) => Promise<void>): Promise<void>;
388
+ fetch<Q extends CollectionQuery<ModelFromModels<M>>>(query: Q): Promise<FetchResult<Q>>;
389
+ fetchById(collectionName: CollectionNameFromModels<M>, id: string): Promise<{} | TypeFromModel<M[CollectionNameFromModels<M>]> | null>;
390
+ createCollection(params: CreateCollectionOperation[1]): Promise<void>;
391
+ dropCollection(params: DropCollectionOperation[1]): Promise<void>;
392
+ renameAttribute(params: RenameAttributeOperation[1]): Promise<void>;
393
+ addAttribute(params: AddAttributeOperation[1]): Promise<void>;
394
+ dropAttribute(params: DropAttributeOperation[1]): Promise<void>;
395
+ }
396
+ type Reference = `ref:${string}`;
397
+ type AttributeType = 'string' | 'number' | 'boolean' | 'set_string' | 'set_number' | 'record' | Reference;
398
+ type CollectionAttribute = {
399
+ type: AttributeType;
400
+ };
401
+ interface Rule<M extends Model<any>> {
402
+ filter: QueryWhere<M>;
403
+ description?: string;
404
+ }
405
+ interface CollectionRules<M extends Model<any>> {
406
+ read?: Rule<M>[];
407
+ write?: Rule<M>[];
408
+ }
409
+ type CreateCollectionOperation = [
410
+ 'create_collection',
411
+ {
412
+ name: string;
413
+ attributes: {
414
+ [path: string]: CollectionAttribute;
415
+ };
416
+ rules?: CollectionRules<any>;
417
+ }
418
+ ];
419
+ type DropCollectionOperation = ['drop_collection', {
420
+ name: string;
421
+ }];
422
+ type AddAttributeOperation = [
423
+ 'add_attribute',
424
+ {
425
+ collection: string;
426
+ path: string;
427
+ attribute: CollectionAttribute;
428
+ }
429
+ ];
430
+ type DropAttributeOperation = [
431
+ 'drop_attribute',
432
+ {
433
+ collection: string;
434
+ path: string;
435
+ }
436
+ ];
437
+ type RenameAttributeOperation = [
438
+ 'rename_attribute',
439
+ {
440
+ collection: string;
441
+ path: string;
442
+ newPath: string;
443
+ }
444
+ ];
445
+ type DBOperation = CreateCollectionOperation | DropCollectionOperation | AddAttributeOperation | DropAttributeOperation | RenameAttributeOperation;
446
+ type Migration = {
447
+ up: DBOperation[];
448
+ down: DBOperation[];
449
+ version: number;
450
+ parent: number;
451
+ };
452
+ type StorageSource = AsyncTupleStorageApi;
453
+ interface DBConfig<M extends Models<any, any> | undefined> {
454
+ schema?: {
455
+ collections: NonNullable<M>;
456
+ version?: number;
457
+ };
458
+ migrations?: Migration[];
459
+ source?: StorageSource;
460
+ sources?: Record<string, StorageSource>;
461
+ tenantId?: string;
462
+ clock?: Clock;
463
+ variables?: Record<string, any>;
464
+ }
465
+ type CollectionFromModels<M extends Models<any, any> | undefined, CN extends CollectionNameFromModels<M> = CollectionNameFromModels<M>> = M extends Models<any, any> ? M[CN] : M extends undefined ? undefined : never;
466
+ type ModelFromModels<M extends Models<any, any> | undefined, CN extends CollectionNameFromModels<M> = CollectionNameFromModels<M>> = M extends Models<any, any> ? M[CN]['attributes'] : M extends undefined ? undefined : never;
467
+ type CollectionNameFromModels<M extends Models<any, any> | undefined> = M extends Models<any, any> ? keyof M : M extends undefined ? string : never;
468
+ declare class DB<M extends Models<any, any> | undefined> {
469
+ tripleStore: TripleStore;
470
+ ensureMigrated: Promise<void>;
471
+ variables: Record<string, any>;
472
+ constructor({ schema, source, sources, tenantId, migrations, clock, variables, }?: DBConfig<M>);
473
+ getClientId(): Promise<string>;
474
+ getSchema(): Promise<{
475
+ version: number;
476
+ collections: Models<any, any>;
477
+ } | undefined>;
478
+ getCollectionSchema<CN extends CollectionNameFromModels<M>>(collectionName: CN): Promise<CollectionFromModels<M, CN> | undefined>;
479
+ static ABORT_TRANSACTION: symbol;
480
+ transact(callback: (tx: DBTransaction<M>) => Promise<void>, storeScope?: {
481
+ read: string[];
482
+ write: string[];
483
+ }): Promise<string | undefined>;
484
+ updateVariables(variables: Record<string, any>): void;
485
+ fetch<Q extends CollectionQuery<ModelFromModels<M>>>(query: Q, { scope, skipRules }?: {
486
+ scope?: string[];
487
+ skipRules?: boolean;
488
+ }): Promise<FetchResult<Q>>;
489
+ fetchById<Schema extends Model<any>>(collectionName: CollectionNameFromModels<M>, id: string): Promise<{} | null>;
490
+ insert(collectionName: CollectionNameFromModels<M>, doc: any, id?: string, storeScope?: {
491
+ read: string[];
492
+ write: string[];
493
+ }): Promise<string | undefined>;
494
+ subscribe<Q extends CollectionQuery<ModelFromModels<M>>>(query: Q, onResults: (results: FetchResult<Q>) => void, onError?: (error: any) => void, { scope, skipRules }?: {
495
+ scope?: string[];
496
+ skipRules?: boolean;
497
+ }): () => Promise<void>;
498
+ subscribeTriples<Q extends CollectionQuery<ModelFromModels<M>>>(query: Q, onResults: (results: TripleRow[]) => void, onError?: (error: any) => void, { scope, skipRules }?: {
499
+ scope?: string[];
500
+ skipRules?: boolean;
501
+ }): () => Promise<void>;
502
+ update<CN extends CollectionNameFromModels<M>>(collectionName: CN, entityId: string, updater: (entity: ProxyTypeFromModel<ModelFromModels<M, CN>>) => Promise<void>, storeScope?: {
503
+ read: string[];
504
+ write: string[];
505
+ }): Promise<string | undefined>;
506
+ query<CN extends CollectionNameFromModels<M>>(collectionName: CN, params?: Query<ModelFromModels<M, CN>>): toBuilder<CollectionQuery<ModelFromModels<M, CN>>>;
507
+ createCollection(params: CreateCollectionOperation[1]): Promise<void>;
508
+ dropCollection(params: DropCollectionOperation[1]): Promise<void>;
509
+ renameAttribute(params: RenameAttributeOperation[1]): Promise<void>;
510
+ addAttribute(params: AddAttributeOperation[1]): Promise<void>;
511
+ dropAttribute(params: DropAttributeOperation[1]): Promise<void>;
512
+ migrate(migrations: Migration[], direction: 'up' | 'down'): Promise<void>;
513
+ getCollectionStats(): Promise<Map<any, any>>;
514
+ clear(): Promise<void>;
515
+ }
516
+ type Storage = IndexedDbStorage | MemoryStorage;
517
+ interface SyncOptions {
518
+ server?: string;
519
+ apiKey?: string;
520
+ secure?: boolean;
521
+ }
522
+ interface AuthOptions {
523
+ claimsPath?: string;
524
+ token?: string;
525
+ }
526
+ interface RemoteQueryParams extends Query<any> {
527
+ collection: string;
528
+ }
529
+ declare class SyncEngine {
530
+ constructor(options: SyncOptions, db: DB<any>);
531
+ get token(): string | undefined;
532
+ private get httpUri();
533
+ subscribe(params: RemoteQueryParams): () => void;
534
+ disconnectQuery(id: string): void;
535
+ onTxCommit(txId: string, callback: () => void): () => boolean | undefined;
536
+ onTxFailure(txId: string, callback: (e: unknown) => void): () => boolean | undefined;
537
+ private get isOpen();
538
+ connect(): Promise<void>;
539
+ updateConnection(options: Partial<SyncOptions>): void;
540
+ disconnect(): void;
541
+ get connectionStatus(): "OPEN" | "CLOSING" | "CLOSED" | "CONNECTING" | "UNKNOWN";
542
+ retry(txId: string): Promise<void>;
543
+ rollback(txIds: string | string[]): Promise<void>;
544
+ }
545
+ interface DBOptions<M extends Models<any, any> | undefined> {
546
+ schema?: {
547
+ collections: NonNullable<M>;
548
+ version?: number;
549
+ };
550
+ migrations?: Migration[];
551
+ variables?: Record<string, any>;
552
+ storage?: {
553
+ cache?: Storage;
554
+ outbox?: Storage;
555
+ };
556
+ }
557
+ type SyncStatus = 'pending' | 'confirmed' | 'all';
558
+ type ClientQuery<M extends Model<any> | undefined> = CollectionQuery<M> & {
559
+ syncStatus?: SyncStatus;
560
+ };
561
+ declare class TriplitClient<M extends Models<any, any> | undefined = undefined> {
562
+ db: DB<M>;
563
+ syncEngine: SyncEngine;
564
+ authOptions: AuthOptions;
565
+ constructor(options?: {
566
+ db?: DBOptions<M>;
567
+ sync?: Omit<SyncOptions, 'apiKey'>;
568
+ auth?: AuthOptions;
569
+ });
570
+ transact(callback: (tx: DBTransaction<M>) => Promise<void>): Promise<string | undefined>;
571
+ query<CN extends CollectionNameFromModels<M>>(collectionName: CN): toBuilder<ClientQuery<ModelFromModels<M, CN>>>;
572
+ fetch(clientQueryBuilder: toBuilder<ClientQuery<ModelFromModels<M>>>): Promise<ModelFromModels<M, CollectionNameFromModels<M>> extends infer T ? T extends ModelFromModels<M, CollectionNameFromModels<M>> ? T extends import("@triplit/db").TObject<any> ? Map<string, import("@triplit/db").UnTimestampedObject<import("@triplit/db").TypeFromModel<T>>> : T extends undefined ? Map<string, any> : never : never : never>;
573
+ insert(collectionName: CollectionNameFromModels<M>, object: JSONTypeFromModel<M[typeof collectionName]>, id?: string): Promise<string | undefined>;
574
+ update<CN extends CollectionNameFromModels<M>>(collectionName: CN, entityId: string, updater: (entity: ProxyTypeFromModel<ModelFromModels<M, CN>>) => Promise<void>): Promise<string | undefined>;
575
+ subscribe<CQ extends ClientQuery<ModelFromModels<M>>>(query: CQ, onResults: (results: FetchResult<CQ>) => void, onError?: (error: any) => void): () => void;
576
+ updateAuthOptions(options: Partial<AuthOptions>): void;
577
+ }
578
+ export function useQuery<CQ extends ClientQuery<any>>(client: TriplitClient<any>, query: toBuilder<CQ>): {
579
+ fetchingLocal: boolean;
580
+ results: FetchResult<CQ> | undefined;
581
+ error: any;
582
+ };
583
+ export function useEntity<M extends Model<any>>(client: TriplitClient<any>, collectionName: CollectionNameFromModels<M>, id: string): {
584
+ fetchingLocal: boolean;
585
+ results: any;
586
+ error: any;
587
+ };
588
+
589
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"mappings":"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","sources":["packages/react/db/src/storage/memory-btree.ts","packages/react/db/src/storage/cached-indexed-db.ts","packages/react/db/src/errors.ts","packages/react/db/src/timestamp.ts","packages/react/db/src/utility-types.ts","packages/react/db/src/utils.ts","packages/react/db/src/schema.ts","packages/react/db/src/multi-tuple-store.ts","packages/react/db/src/clocks/clock.ts","packages/react/db/src/clocks/memory-clock.ts","packages/react/db/src/query.ts","packages/react/db/src/triple-store.ts","packages/react/db/src/document.ts","packages/react/db/src/utils/builder.ts","packages/react/db/src/utils/pipeline.ts","packages/react/db/src/db-helpers.ts","packages/react/db/src/collection-query.ts","packages/react/db/src/db-transaction.ts","packages/react/db/src/db.ts","packages/react/db/src/clocks/durable-clock.ts","packages/react/db/src/index.ts","packages/react/client/src/token.ts","packages/react/client/src/triplit-client.ts","packages/react/client/src/index.ts","packages/react/src/src/use-query.ts","packages/react/src/src/use-entity.ts","packages/react/src/src/index.ts","packages/react/src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"export * from './use-query';\nexport * from './use-entity';\n"],"names":[],"version":3,"file":"index.d.ts.map"}
package/dist/index.js CHANGED
@@ -1 +1,79 @@
1
- export * from './use-query';
1
+ var $2yxZb$react = require("react");
2
+
3
+ function $parcel$exportWildcard(dest, source) {
4
+ Object.keys(source).forEach(function(key) {
5
+ if (key === 'default' || key === '__esModule' || dest.hasOwnProperty(key)) {
6
+ return;
7
+ }
8
+
9
+ Object.defineProperty(dest, key, {
10
+ enumerable: true,
11
+ get: function get() {
12
+ return source[key];
13
+ }
14
+ });
15
+ });
16
+
17
+ return dest;
18
+ }
19
+ function $parcel$export(e, n, v, s) {
20
+ Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});
21
+ }
22
+ var $8789f74c7c312f3c$exports = {};
23
+
24
+ $parcel$export($8789f74c7c312f3c$exports, "useQuery", () => $8789f74c7c312f3c$export$dd0a697e1782aedd);
25
+
26
+ function $8789f74c7c312f3c$export$dd0a697e1782aedd(client, query) {
27
+ const [results, setResults] = (0, $2yxZb$react.useState)(undefined);
28
+ const [fetchingLocal, setFetchingLocal] = (0, $2yxZb$react.useState)(false);
29
+ const [error, setError] = (0, $2yxZb$react.useState)(undefined);
30
+ // const [fetchingRemote, setFetchingRemote] = useState(false);
31
+ const builtQuery = query && query.build();
32
+ const stringifiedQuery = builtQuery && JSON.stringify(builtQuery);
33
+ (0, $2yxZb$react.useEffect)(()=>{
34
+ if (!client) return;
35
+ setResults(undefined);
36
+ setFetchingLocal(true);
37
+ const unsubscribe = client.subscribe(builtQuery, (localResults)=>{
38
+ setFetchingLocal(false);
39
+ setError(undefined);
40
+ setResults(localResults);
41
+ }, (error)=>{
42
+ setFetchingLocal(false);
43
+ setError(error);
44
+ });
45
+ return ()=>{
46
+ unsubscribe();
47
+ };
48
+ }, [
49
+ stringifiedQuery,
50
+ client
51
+ ]);
52
+ return {
53
+ fetchingLocal: fetchingLocal,
54
+ results: // fetchingRemote,
55
+ results,
56
+ error: error
57
+ };
58
+ }
59
+
60
+
61
+ var $6ea15837a6dcd4eb$exports = {};
62
+
63
+ $parcel$export($6ea15837a6dcd4eb$exports, "useEntity", () => $6ea15837a6dcd4eb$export$fab329b658bf30c7);
64
+
65
+ function $6ea15837a6dcd4eb$export$fab329b658bf30c7(client, collectionName, id) {
66
+ const { fetchingLocal: fetchingLocal, results: results, error: error } = (0, $8789f74c7c312f3c$export$dd0a697e1782aedd)(client, client.query(collectionName).entityId(id));
67
+ return {
68
+ fetchingLocal: fetchingLocal,
69
+ results: results ? results.get(id) : undefined,
70
+ error: error
71
+ };
72
+ }
73
+
74
+
75
+ $parcel$exportWildcard(module.exports, $8789f74c7c312f3c$exports);
76
+ $parcel$exportWildcard(module.exports, $6ea15837a6dcd4eb$exports);
77
+
78
+
79
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;ACQM,SAAU,0CACd,MAA0B,EAC1B,KAAoB;IAEpB,MAAM,CAAC,SAAS,WAAW,GAAG,CAAA,GAAA,qBAAA,EAC5B;IAEF,MAAM,CAAC,eAAe,iBAAiB,GAAG,CAAA,GAAA,qBAAA,EAAS;IACnD,MAAM,CAAC,OAAO,SAAS,GAAG,CAAA,GAAA,qBAAA,EAAc;IACxC,+DAA+D;IAE/D,MAAM,aAAa,SAAS,MAAM;IAClC,MAAM,mBAAmB,cAAc,KAAK,UAAU;IAEtD,CAAA,GAAA,sBAAA,EAAU;QACR,IAAI,CAAC,QAAQ;QACb,WAAW;QACX,iBAAiB;QACjB,MAAM,cAAc,OAAO,UACzB,YACA,CAAC;YACC,iBAAiB;YACjB,SAAS;YACT,WAAW;QACb,GACA,CAAC;YACC,iBAAiB;YACjB,SAAS;QACX;QAGF,OAAO;YACL;QACF;IACF,GAAG;QAAC;QAAkB;KAAO;IAE7B,OAAO;uBACL;iBAEA,AADA,kBAAkB;QAClB;eACA;IACD;AACH;;;;;;;AC9CM,SAAU,0CACd,MAA0B,EAC1B,cAA2C,EAC3C,EAAU;IAEV,MAAM,iBAAE,aAAa,WAAE,OAAO,SAAE,KAAK,EAAE,GAAG,CAAA,GAAA,yCAAA,EACxC,QACA,OAAO,MAAM,gBAAgB,SAAS;IAExC,OAAO;uBACL;QACA,SAAS,UAAU,QAAQ,IAAI,MAAM;eACrC;IACD;AACH;;","sources":["packages/react/src/index.ts","packages/react/src/use-query.ts","packages/react/src/use-entity.ts"],"sourcesContent":["export * from './use-query';\nexport * from './use-entity';\n","import { useEffect, useState } from 'react';\nimport {\n FetchResult,\n TriplitClient,\n ClientQuery,\n toBuilder,\n} from '@triplit/client';\n\nexport function useQuery<CQ extends ClientQuery<any>>(\n client: TriplitClient<any>,\n query: toBuilder<CQ>\n) {\n const [results, setResults] = useState<FetchResult<CQ> | undefined>(\n undefined\n );\n const [fetchingLocal, setFetchingLocal] = useState(false);\n const [error, setError] = useState<any>(undefined);\n // const [fetchingRemote, setFetchingRemote] = useState(false);\n\n const builtQuery = query && query.build();\n const stringifiedQuery = builtQuery && JSON.stringify(builtQuery);\n\n useEffect(() => {\n if (!client) return;\n setResults(undefined);\n setFetchingLocal(true);\n const unsubscribe = client.subscribe(\n builtQuery,\n (localResults) => {\n setFetchingLocal(false);\n setError(undefined);\n setResults(localResults);\n },\n (error) => {\n setFetchingLocal(false);\n setError(error);\n }\n );\n\n return () => {\n unsubscribe();\n };\n }, [stringifiedQuery, client]);\n\n return {\n fetchingLocal,\n // fetchingRemote,\n results,\n error,\n };\n}\n","import { TriplitClient } from '@triplit/client';\nimport { CollectionNameFromModels, Model } from '@triplit/db';\nimport { useQuery } from './use-query';\n\nexport function useEntity<M extends Model<any>>(\n client: TriplitClient<any>,\n collectionName: CollectionNameFromModels<M>,\n id: string\n) {\n const { fetchingLocal, results, error } = useQuery(\n client,\n client.query(collectionName).entityId(id)\n );\n return {\n fetchingLocal,\n results: results ? results.get(id) : undefined,\n error,\n };\n}\n"],"names":[],"version":3,"file":"index.js.map"}
package/dist/module.js ADDED
@@ -0,0 +1,62 @@
1
+ import {useState as $3QJOh$useState, useEffect as $3QJOh$useEffect} from "react";
2
+
3
+ function $parcel$export(e, n, v, s) {
4
+ Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});
5
+ }
6
+ var $c765280007267fba$exports = {};
7
+
8
+ $parcel$export($c765280007267fba$exports, "useQuery", () => $c765280007267fba$export$dd0a697e1782aedd);
9
+
10
+ function $c765280007267fba$export$dd0a697e1782aedd(client, query) {
11
+ const [results, setResults] = (0, $3QJOh$useState)(undefined);
12
+ const [fetchingLocal, setFetchingLocal] = (0, $3QJOh$useState)(false);
13
+ const [error, setError] = (0, $3QJOh$useState)(undefined);
14
+ // const [fetchingRemote, setFetchingRemote] = useState(false);
15
+ const builtQuery = query && query.build();
16
+ const stringifiedQuery = builtQuery && JSON.stringify(builtQuery);
17
+ (0, $3QJOh$useEffect)(()=>{
18
+ if (!client) return;
19
+ setResults(undefined);
20
+ setFetchingLocal(true);
21
+ const unsubscribe = client.subscribe(builtQuery, (localResults)=>{
22
+ setFetchingLocal(false);
23
+ setError(undefined);
24
+ setResults(localResults);
25
+ }, (error)=>{
26
+ setFetchingLocal(false);
27
+ setError(error);
28
+ });
29
+ return ()=>{
30
+ unsubscribe();
31
+ };
32
+ }, [
33
+ stringifiedQuery,
34
+ client
35
+ ]);
36
+ return {
37
+ fetchingLocal: fetchingLocal,
38
+ results: // fetchingRemote,
39
+ results,
40
+ error: error
41
+ };
42
+ }
43
+
44
+
45
+ var $8f8fbf6d34fed11e$exports = {};
46
+
47
+ $parcel$export($8f8fbf6d34fed11e$exports, "useEntity", () => $8f8fbf6d34fed11e$export$fab329b658bf30c7);
48
+
49
+ function $8f8fbf6d34fed11e$export$fab329b658bf30c7(client, collectionName, id) {
50
+ const { fetchingLocal: fetchingLocal, results: results, error: error } = (0, $c765280007267fba$export$dd0a697e1782aedd)(client, client.query(collectionName).entityId(id));
51
+ return {
52
+ fetchingLocal: fetchingLocal,
53
+ results: results ? results.get(id) : undefined,
54
+ error: error
55
+ };
56
+ }
57
+
58
+
59
+
60
+
61
+ export {$c765280007267fba$export$dd0a697e1782aedd as useQuery, $8f8fbf6d34fed11e$export$fab329b658bf30c7 as useEntity};
62
+ //# sourceMappingURL=module.js.map
@@ -0,0 +1 @@
1
+ {"mappings":";;;;;;;;;ACQM,SAAU,0CACd,MAA0B,EAC1B,KAAoB;IAEpB,MAAM,CAAC,SAAS,WAAW,GAAG,CAAA,GAAA,eAAA,EAC5B;IAEF,MAAM,CAAC,eAAe,iBAAiB,GAAG,CAAA,GAAA,eAAA,EAAS;IACnD,MAAM,CAAC,OAAO,SAAS,GAAG,CAAA,GAAA,eAAA,EAAc;IACxC,+DAA+D;IAE/D,MAAM,aAAa,SAAS,MAAM;IAClC,MAAM,mBAAmB,cAAc,KAAK,UAAU;IAEtD,CAAA,GAAA,gBAAA,EAAU;QACR,IAAI,CAAC,QAAQ;QACb,WAAW;QACX,iBAAiB;QACjB,MAAM,cAAc,OAAO,UACzB,YACA,CAAC;YACC,iBAAiB;YACjB,SAAS;YACT,WAAW;QACb,GACA,CAAC;YACC,iBAAiB;YACjB,SAAS;QACX;QAGF,OAAO;YACL;QACF;IACF,GAAG;QAAC;QAAkB;KAAO;IAE7B,OAAO;uBACL;iBAEA,AADA,kBAAkB;QAClB;eACA;IACD;AACH;;;;;;;AC9CM,SAAU,0CACd,MAA0B,EAC1B,cAA2C,EAC3C,EAAU;IAEV,MAAM,iBAAE,aAAa,WAAE,OAAO,SAAE,KAAK,EAAE,GAAG,CAAA,GAAA,yCAAA,EACxC,QACA,OAAO,MAAM,gBAAgB,SAAS;IAExC,OAAO;uBACL;QACA,SAAS,UAAU,QAAQ,IAAI,MAAM;eACrC;IACD;AACH;;","sources":["packages/react/src/index.ts","packages/react/src/use-query.ts","packages/react/src/use-entity.ts"],"sourcesContent":["export * from './use-query';\nexport * from './use-entity';\n","import { useEffect, useState } from 'react';\nimport {\n FetchResult,\n TriplitClient,\n ClientQuery,\n toBuilder,\n} from '@triplit/client';\n\nexport function useQuery<CQ extends ClientQuery<any>>(\n client: TriplitClient<any>,\n query: toBuilder<CQ>\n) {\n const [results, setResults] = useState<FetchResult<CQ> | undefined>(\n undefined\n );\n const [fetchingLocal, setFetchingLocal] = useState(false);\n const [error, setError] = useState<any>(undefined);\n // const [fetchingRemote, setFetchingRemote] = useState(false);\n\n const builtQuery = query && query.build();\n const stringifiedQuery = builtQuery && JSON.stringify(builtQuery);\n\n useEffect(() => {\n if (!client) return;\n setResults(undefined);\n setFetchingLocal(true);\n const unsubscribe = client.subscribe(\n builtQuery,\n (localResults) => {\n setFetchingLocal(false);\n setError(undefined);\n setResults(localResults);\n },\n (error) => {\n setFetchingLocal(false);\n setError(error);\n }\n );\n\n return () => {\n unsubscribe();\n };\n }, [stringifiedQuery, client]);\n\n return {\n fetchingLocal,\n // fetchingRemote,\n results,\n error,\n };\n}\n","import { TriplitClient } from '@triplit/client';\nimport { CollectionNameFromModels, Model } from '@triplit/db';\nimport { useQuery } from './use-query';\n\nexport function useEntity<M extends Model<any>>(\n client: TriplitClient<any>,\n collectionName: CollectionNameFromModels<M>,\n id: string\n) {\n const { fetchingLocal, results, error } = useQuery(\n client,\n client.query(collectionName).entityId(id)\n );\n return {\n fetchingLocal,\n results: results ? results.get(id) : undefined,\n error,\n };\n}\n"],"names":[],"version":3,"file":"module.js.map"}
package/package.json CHANGED
@@ -1,12 +1,13 @@
1
1
  {
2
2
  "name": "@triplit/react",
3
3
  "packageManager": "yarn@3.4.1",
4
- "version": "0.0.29",
4
+ "version": "0.0.30",
5
+ "source": "src/index.ts",
5
6
  "main": "dist/index.js",
6
- "typings": "dist/index.d.ts",
7
- "type": "module",
7
+ "module": "dist/module.js",
8
+ "types": "dist/index.d.ts",
8
9
  "scripts": {
9
- "build": "tsc --noEmit false --declaration --baseUrl . --paths null --outDir dist",
10
+ "build": "parcel build . --no-cache",
10
11
  "lint": "tsc",
11
12
  "publish-pkg": "node ../../scripts/npm-check-version-and-publish.js"
12
13
  },
@@ -14,13 +15,17 @@
14
15
  "/dist"
15
16
  ],
16
17
  "dependencies": {
17
- "@triplit/client": "^0.0.29"
18
+ "@triplit/client": "^0.0.30"
18
19
  },
19
20
  "devDependencies": {
21
+ "@parcel/config-default": "^2.9.3",
22
+ "@parcel/transformer-typescript-tsc": "^2.9.3",
20
23
  "@types/react": "^18.2.0",
24
+ "parcel": "^2.9.3",
21
25
  "typescript": "^5.0.2"
22
26
  },
23
27
  "peerDependencies": {
24
- "react": "*"
28
+ "react": "*",
29
+ "react-dom": "*"
25
30
  }
26
31
  }
@@ -1,6 +0,0 @@
1
- import { QueryResults, TriplitClient, ClientQuery, toBuilder } from '@triplit/client';
2
- export declare function useQuery<CQ extends ClientQuery<any>>(client: TriplitClient<any>, query: toBuilder<CQ>): {
3
- fetchingLocal: boolean;
4
- results: QueryResults<CQ> | undefined;
5
- error: null;
6
- };
package/dist/use-query.js DELETED
@@ -1,25 +0,0 @@
1
- import { useEffect, useState } from 'react';
2
- export function useQuery(client, query) {
3
- const [results, setResults] = useState(undefined);
4
- const [fetchingLocal, setFetchingLocal] = useState(false);
5
- // const [fetchingRemote, setFetchingRemote] = useState(false);
6
- const builtQuery = query.build();
7
- const stringifiedQuery = JSON.stringify(builtQuery);
8
- useEffect(() => {
9
- setResults(undefined);
10
- setFetchingLocal(true);
11
- const unsubscribe = client.subscribe(builtQuery, (localResults) => {
12
- setFetchingLocal(false);
13
- setResults(localResults);
14
- });
15
- return () => {
16
- unsubscribe();
17
- };
18
- }, [stringifiedQuery, client]);
19
- return {
20
- fetchingLocal,
21
- // fetchingRemote,
22
- results,
23
- error: null,
24
- };
25
- }