spacetimedb 2.0.2 → 2.0.4
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/LICENSE.txt +2 -2
- package/dist/angular/index.cjs +3 -0
- package/dist/angular/index.cjs.map +1 -1
- package/dist/angular/index.mjs +3 -0
- package/dist/angular/index.mjs.map +1 -1
- package/dist/browser/angular/index.mjs +3 -0
- package/dist/browser/angular/index.mjs.map +1 -1
- package/dist/browser/react/index.mjs +6 -0
- package/dist/browser/react/index.mjs.map +1 -1
- package/dist/browser/svelte/index.mjs +3 -0
- package/dist/browser/svelte/index.mjs.map +1 -1
- package/dist/browser/vue/index.mjs +3 -0
- package/dist/browser/vue/index.mjs.map +1 -1
- package/dist/index.browser.mjs +133 -100
- package/dist/index.browser.mjs.map +1 -1
- package/dist/index.cjs +133 -100
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +133 -100
- package/dist/index.mjs.map +1 -1
- package/dist/lib/binary_writer.d.ts +1 -0
- package/dist/lib/binary_writer.d.ts.map +1 -1
- package/dist/lib/indexes.d.ts +1 -1
- package/dist/lib/indexes.d.ts.map +1 -1
- package/dist/lib/query.d.ts +4 -2
- package/dist/lib/query.d.ts.map +1 -1
- package/dist/lib/schema.d.ts +2 -0
- package/dist/lib/schema.d.ts.map +1 -1
- package/dist/lib/table.d.ts +19 -1
- package/dist/lib/table.d.ts.map +1 -1
- package/dist/lib/util.d.ts +11 -11
- package/dist/lib/util.d.ts.map +1 -1
- package/dist/min/index.browser.mjs +1 -1
- package/dist/min/index.browser.mjs.map +1 -1
- package/dist/min/react/index.mjs +1 -1
- package/dist/min/react/index.mjs.map +1 -1
- package/dist/min/sdk/index.browser.mjs +1 -1
- package/dist/min/sdk/index.browser.mjs.map +1 -1
- package/dist/react/index.cjs +6 -0
- package/dist/react/index.cjs.map +1 -1
- package/dist/react/index.mjs +6 -0
- package/dist/react/index.mjs.map +1 -1
- package/dist/react/useTable.d.ts.map +1 -1
- package/dist/sdk/db_connection_impl.d.ts.map +1 -1
- package/dist/sdk/index.browser.mjs +133 -100
- package/dist/sdk/index.browser.mjs.map +1 -1
- package/dist/sdk/index.cjs +133 -100
- package/dist/sdk/index.cjs.map +1 -1
- package/dist/sdk/index.mjs +133 -100
- package/dist/sdk/index.mjs.map +1 -1
- package/dist/sdk/procedures.d.ts +1 -1
- package/dist/sdk/procedures.d.ts.map +1 -1
- package/dist/sdk/reducers.d.ts +2 -3
- package/dist/sdk/reducers.d.ts.map +1 -1
- package/dist/sdk/table_cache.d.ts.map +1 -1
- package/dist/sdk/websocket_decompress_adapter.d.ts +17 -7
- package/dist/sdk/websocket_decompress_adapter.d.ts.map +1 -1
- package/dist/sdk/websocket_test_adapter.d.ts +3 -2
- package/dist/sdk/websocket_test_adapter.d.ts.map +1 -1
- package/dist/server/index.mjs +72 -29
- package/dist/server/index.mjs.map +1 -1
- package/dist/svelte/index.cjs +3 -0
- package/dist/svelte/index.cjs.map +1 -1
- package/dist/svelte/index.mjs +3 -0
- package/dist/svelte/index.mjs.map +1 -1
- package/dist/tanstack/SpacetimeDBQueryClient.d.ts +3 -3
- package/dist/tanstack/SpacetimeDBQueryClient.d.ts.map +1 -1
- package/dist/tanstack/hooks.d.ts +3 -6
- package/dist/tanstack/hooks.d.ts.map +1 -1
- package/dist/tanstack/index.cjs +28 -1
- package/dist/tanstack/index.cjs.map +1 -1
- package/dist/tanstack/index.mjs +28 -1
- package/dist/tanstack/index.mjs.map +1 -1
- package/dist/vue/index.cjs +3 -0
- package/dist/vue/index.cjs.map +1 -1
- package/dist/vue/index.mjs +3 -0
- package/dist/vue/index.mjs.map +1 -1
- package/package.json +1 -1
- package/src/lib/binary_writer.ts +4 -0
- package/src/lib/indexes.ts +1 -1
- package/src/lib/query.ts +30 -6
- package/src/lib/schema.ts +66 -24
- package/src/lib/table.ts +41 -9
- package/src/lib/util.ts +18 -21
- package/src/react/useTable.ts +7 -0
- package/src/sdk/db_connection_impl.ts +38 -43
- package/src/sdk/procedures.ts +1 -3
- package/src/sdk/reducers.ts +5 -7
- package/src/sdk/table_cache.ts +14 -11
- package/src/sdk/websocket_decompress_adapter.ts +42 -45
- package/src/sdk/websocket_test_adapter.ts +3 -2
- package/src/server/runtime.ts +7 -3
- package/src/server/schema.test-d.ts +37 -0
- package/src/server/view.test-d.ts +2 -0
- package/src/tanstack/SpacetimeDBQueryClient.ts +28 -2
- package/src/tanstack/hooks.ts +3 -2
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import type { QueryClient, QueryKey, QueryFunction } from '@tanstack/react-query';
|
|
2
|
-
type
|
|
3
|
-
|
|
4
|
-
} & Record<string, any>;
|
|
2
|
+
import { type Query } from '../lib/query';
|
|
3
|
+
type QueryInput = Query<any>;
|
|
5
4
|
export interface SpacetimeDBQueryOptions {
|
|
6
5
|
queryKey: readonly ['spacetimedb', string, string];
|
|
7
6
|
staleTime: number;
|
|
@@ -32,6 +31,7 @@ export declare class SpacetimeDBQueryClient {
|
|
|
32
31
|
private getTableData;
|
|
33
32
|
private setupSubscription;
|
|
34
33
|
private processPendingQueries;
|
|
34
|
+
private hydrateSubscriptions;
|
|
35
35
|
disconnect(): void;
|
|
36
36
|
}
|
|
37
37
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SpacetimeDBQueryClient.d.ts","sourceRoot":"","sources":["../../src/tanstack/SpacetimeDBQueryClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,QAAQ,EACR,aAAa,EACd,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"SpacetimeDBQueryClient.d.ts","sourceRoot":"","sources":["../../src/tanstack/SpacetimeDBQueryClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,QAAQ,EACR,aAAa,EACd,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,KAAK,KAAK,EAMX,MAAM,cAAc,CAAC;AAEtB,KAAK,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;AAO7B,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,SAAS,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACnD,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,8BACf,SAAQ,uBAAuB;IAC/B,OAAO,EAAE,KAAK,CAAC;CAChB;AAMD,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,MAAM,GAClB,8BAA8B,CAAC;AAElC,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,UAAU,GAAG,uBAAuB,CAAC;AA0B7E,UAAU,mBAAmB;IAC3B,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACxB,mBAAmB,EAAE,MAAM;QACzB,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,IAAI,KAAK,GAAG,CAAC;QACnC,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK;YAAE,WAAW,EAAE,MAAM,IAAI,CAAA;SAAE,CAAC;KAC3D,CAAC;CACH;AASD,qBAAa,sBAAsB;IACjC,OAAO,CAAC,UAAU,CAAoC;IACtD,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,aAAa,CAAwC;IAC7D,OAAO,CAAC,cAAc,CAOlB;IACJ,OAAO,CAAC,gBAAgB,CAA6B;IAGrD,aAAa,CAAC,UAAU,EAAE,mBAAmB,GAAG,IAAI;IAMpD,OAAO,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;IAoBvC,OAAO,EAAE,aAAa,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAoCrC;IAEF,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,iBAAiB;IAwFzB,OAAO,CAAC,qBAAqB;IAiC7B,OAAO,CAAC,oBAAoB;IAuB5B,UAAU,IAAI,IAAI;CAanB"}
|
package/dist/tanstack/hooks.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { UseQueryOptions, UseQueryResult, UseSuspenseQueryOptions, UseSuspenseQueryResult } from '@tanstack/react-query';
|
|
2
2
|
import type { UntypedTableDef, RowType } from '../lib/table';
|
|
3
|
+
import type { Query } from '../lib/query';
|
|
3
4
|
export type UseSpacetimeDBQueryResult<T> = [
|
|
4
5
|
T[],
|
|
5
6
|
boolean,
|
|
@@ -10,10 +11,6 @@ export type UseSpacetimeDBSuspenseQueryResult<T> = [
|
|
|
10
11
|
false,
|
|
11
12
|
UseSuspenseQueryResult<T[], Error>
|
|
12
13
|
];
|
|
13
|
-
export declare function useSpacetimeDBQuery<TableDef extends UntypedTableDef>(queryOrSkip:
|
|
14
|
-
|
|
15
|
-
} & Record<string, any>) | 'skip', options?: Omit<UseQueryOptions<RowType<TableDef>[], Error, RowType<TableDef>[], readonly ['spacetimedb', string, string]>, 'queryKey' | 'queryFn' | 'meta'>): UseSpacetimeDBQueryResult<RowType<TableDef>>;
|
|
16
|
-
export declare function useSpacetimeDBSuspenseQuery<TableDef extends UntypedTableDef>(query: {
|
|
17
|
-
toSql(): string;
|
|
18
|
-
} & Record<string, any>, options?: Omit<UseSuspenseQueryOptions<RowType<TableDef>[], Error, RowType<TableDef>[], readonly ['spacetimedb', string, string]>, 'queryKey' | 'queryFn' | 'meta'>): UseSpacetimeDBSuspenseQueryResult<RowType<TableDef>>;
|
|
14
|
+
export declare function useSpacetimeDBQuery<TableDef extends UntypedTableDef>(queryOrSkip: Query<TableDef> | 'skip', options?: Omit<UseQueryOptions<RowType<TableDef>[], Error, RowType<TableDef>[], readonly ['spacetimedb', string, string]>, 'queryKey' | 'queryFn' | 'meta'>): UseSpacetimeDBQueryResult<RowType<TableDef>>;
|
|
15
|
+
export declare function useSpacetimeDBSuspenseQuery<TableDef extends UntypedTableDef>(query: Query<TableDef>, options?: Omit<UseSuspenseQueryOptions<RowType<TableDef>[], Error, RowType<TableDef>[], readonly ['spacetimedb', string, string]>, 'queryKey' | 'queryFn' | 'meta'>): UseSpacetimeDBSuspenseQueryResult<RowType<TableDef>>;
|
|
19
16
|
//# sourceMappingURL=hooks.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/tanstack/hooks.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,eAAe,EACf,cAAc,EACd,uBAAuB,EACvB,sBAAsB,EACvB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/tanstack/hooks.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,eAAe,EACf,cAAc,EACd,uBAAuB,EACvB,sBAAsB,EACvB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC7D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAG1C,MAAM,MAAM,yBAAyB,CAAC,CAAC,IAAI;IACzC,CAAC,EAAE;IACH,OAAO;IACP,cAAc,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,iCAAiC,CAAC,CAAC,IAAI;IACjD,CAAC,EAAE;IACH,KAAK;IACL,sBAAsB,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC;CACnC,CAAC;AAUF,wBAAgB,mBAAmB,CAAC,QAAQ,SAAS,eAAe,EAClE,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,MAAM,EAGrC,OAAO,CAAC,EAAE,IAAI,CACZ,eAAe,CACb,OAAO,CAAC,QAAQ,CAAC,EAAE,EACnB,KAAK,EACL,OAAO,CAAC,QAAQ,CAAC,EAAE,EACnB,SAAS,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,CAAC,CACzC,EACD,UAAU,GAAG,SAAS,GAAG,MAAM,CAChC,GACA,yBAAyB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAY9C;AAMD,wBAAgB,2BAA2B,CAAC,QAAQ,SAAS,eAAe,EAC1E,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,EACtB,OAAO,CAAC,EAAE,IAAI,CACZ,uBAAuB,CACrB,OAAO,CAAC,QAAQ,CAAC,EAAE,EACnB,KAAK,EACL,OAAO,CAAC,QAAQ,CAAC,EAAE,EACnB,SAAS,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,CAAC,CACzC,EACD,UAAU,GAAG,SAAS,GAAG,MAAM,CAChC,GACA,iCAAiC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAStD"}
|
package/dist/tanstack/index.cjs
CHANGED
|
@@ -604,6 +604,9 @@ var BinaryWriter = class {
|
|
|
604
604
|
constructor(init) {
|
|
605
605
|
this.buffer = typeof init === "number" ? new ResizableBuffer(init) : init;
|
|
606
606
|
}
|
|
607
|
+
clear() {
|
|
608
|
+
this.offset = 0;
|
|
609
|
+
}
|
|
607
610
|
reset(buffer) {
|
|
608
611
|
this.buffer = buffer;
|
|
609
612
|
this.offset = 0;
|
|
@@ -1421,6 +1424,9 @@ var ConnectionId = class _ConnectionId {
|
|
|
1421
1424
|
}
|
|
1422
1425
|
}
|
|
1423
1426
|
};
|
|
1427
|
+
function toSql(q) {
|
|
1428
|
+
return q.toSql();
|
|
1429
|
+
}
|
|
1424
1430
|
function isLiteralExpr(expr) {
|
|
1425
1431
|
return expr.type === "literal";
|
|
1426
1432
|
}
|
|
@@ -1497,7 +1503,7 @@ function spacetimeDBQuery(queryOrSkip) {
|
|
|
1497
1503
|
const query = queryOrSkip;
|
|
1498
1504
|
const accessorName = getQueryAccessorName(query);
|
|
1499
1505
|
const whereExpr = getQueryWhereClause(query);
|
|
1500
|
-
const querySql =
|
|
1506
|
+
const querySql = toSql(query);
|
|
1501
1507
|
queryRegistry.set(querySql, { accessorName, whereExpr });
|
|
1502
1508
|
return {
|
|
1503
1509
|
queryKey: ["spacetimedb", accessorName, querySql],
|
|
@@ -1514,6 +1520,7 @@ var SpacetimeDBQueryClient = class {
|
|
|
1514
1520
|
setConnection(connection) {
|
|
1515
1521
|
this.connection = connection;
|
|
1516
1522
|
this.processPendingQueries();
|
|
1523
|
+
this.hydrateSubscriptions();
|
|
1517
1524
|
}
|
|
1518
1525
|
connect(queryClient) {
|
|
1519
1526
|
this.queryClient = queryClient;
|
|
@@ -1655,6 +1662,26 @@ var SpacetimeDBQueryClient = class {
|
|
|
1655
1662
|
}
|
|
1656
1663
|
}
|
|
1657
1664
|
}
|
|
1665
|
+
// subscribe to queries with SSR cached data but no active subscription
|
|
1666
|
+
hydrateSubscriptions() {
|
|
1667
|
+
if (!this.connection || !this.queryClient) {
|
|
1668
|
+
return;
|
|
1669
|
+
}
|
|
1670
|
+
for (const [querySql, { accessorName, whereExpr }] of queryRegistry) {
|
|
1671
|
+
const queryKey = ["spacetimedb", accessorName, querySql];
|
|
1672
|
+
const keyStr = JSON.stringify(queryKey);
|
|
1673
|
+
if (this.subscriptions.has(keyStr)) {
|
|
1674
|
+
continue;
|
|
1675
|
+
}
|
|
1676
|
+
if (this.queryClient.getQueryData(queryKey) === void 0) {
|
|
1677
|
+
continue;
|
|
1678
|
+
}
|
|
1679
|
+
this.setupSubscription(queryKey, accessorName, querySql, whereExpr).catch(
|
|
1680
|
+
() => {
|
|
1681
|
+
}
|
|
1682
|
+
);
|
|
1683
|
+
}
|
|
1684
|
+
}
|
|
1658
1685
|
// clean up all subscriptions and disconnect
|
|
1659
1686
|
disconnect() {
|
|
1660
1687
|
if (this.cacheUnsubscribe) {
|