spacetimedb 2.5.0 → 2.6.0
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 +759 -759
- package/README.md +211 -211
- package/dist/angular/index.cjs.map +1 -1
- package/dist/angular/index.mjs.map +1 -1
- package/dist/browser/angular/index.mjs.map +1 -1
- package/dist/browser/react/index.mjs +129 -57
- package/dist/browser/react/index.mjs.map +1 -1
- package/dist/browser/solid/index.mjs +120 -50
- package/dist/browser/solid/index.mjs.map +1 -1
- package/dist/browser/svelte/index.mjs.map +1 -1
- package/dist/browser/vue/index.mjs.map +1 -1
- package/dist/index.browser.mjs +10 -2
- package/dist/index.browser.mjs.map +1 -1
- package/dist/index.cjs +10 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +10 -2
- package/dist/index.mjs.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 +129 -57
- package/dist/react/index.cjs.map +1 -1
- package/dist/react/index.mjs +129 -57
- package/dist/react/index.mjs.map +1 -1
- package/dist/react/useTable.d.ts.map +1 -1
- package/dist/sdk/connection_manager.d.ts +8 -0
- package/dist/sdk/connection_manager.d.ts.map +1 -1
- package/dist/sdk/db_connection_impl.d.ts +7 -0
- package/dist/sdk/db_connection_impl.d.ts.map +1 -1
- package/dist/sdk/index.browser.mjs +10 -2
- package/dist/sdk/index.browser.mjs.map +1 -1
- package/dist/sdk/index.cjs +10 -2
- package/dist/sdk/index.cjs.map +1 -1
- package/dist/sdk/index.mjs +10 -2
- package/dist/sdk/index.mjs.map +1 -1
- package/dist/sdk/websocket_test_adapter.d.ts +2 -1
- package/dist/sdk/websocket_test_adapter.d.ts.map +1 -1
- package/dist/server/index.mjs.map +1 -1
- package/dist/server/runtime.d.ts.map +1 -1
- package/dist/solid/index.cjs +120 -50
- package/dist/solid/index.cjs.map +1 -1
- package/dist/solid/index.mjs +120 -50
- package/dist/solid/index.mjs.map +1 -1
- package/dist/svelte/index.cjs.map +1 -1
- package/dist/svelte/index.mjs.map +1 -1
- package/dist/tanstack/index.cjs +120 -50
- package/dist/tanstack/index.cjs.map +1 -1
- package/dist/tanstack/index.mjs +120 -50
- package/dist/tanstack/index.mjs.map +1 -1
- package/dist/vue/index.cjs.map +1 -1
- package/dist/vue/index.mjs.map +1 -1
- package/package.json +1 -1
- package/src/angular/connection_state.ts +19 -19
- package/src/angular/index.ts +3 -3
- package/src/angular/injectors/index.ts +4 -4
- package/src/angular/injectors/inject-reducer.ts +62 -62
- package/src/angular/injectors/inject-spacetimedb-connected.ts +13 -13
- package/src/angular/injectors/inject-spacetimedb.ts +10 -10
- package/src/angular/injectors/inject-table.ts +234 -234
- package/src/angular/providers/index.ts +1 -1
- package/src/angular/providers/provide-spacetimedb.ts +96 -96
- package/src/index.ts +16 -16
- package/src/lib/algebraic_type.ts +819 -819
- package/src/lib/algebraic_type_variants.ts +26 -26
- package/src/lib/algebraic_value.ts +10 -10
- package/src/lib/autogen/types.ts +746 -746
- package/src/lib/binary_reader.ts +188 -188
- package/src/lib/binary_writer.ts +213 -213
- package/src/lib/connection_id.ts +102 -102
- package/src/lib/constraints.ts +48 -48
- package/src/lib/errors.ts +26 -26
- package/src/lib/filter.ts +195 -195
- package/src/lib/identity.ts +83 -83
- package/src/lib/indexes.ts +251 -251
- package/src/lib/option.ts +34 -34
- package/src/lib/query.ts +1019 -1019
- package/src/lib/reducer_schema.ts +38 -38
- package/src/lib/reducers.ts +116 -116
- package/src/lib/result.ts +36 -36
- package/src/lib/schedule_at.ts +86 -86
- package/src/lib/schema.ts +420 -420
- package/src/lib/table.ts +548 -548
- package/src/lib/table_schema.ts +64 -64
- package/src/lib/time_duration.ts +77 -77
- package/src/lib/timestamp.ts +148 -148
- package/src/lib/type_builders.test-d.ts +128 -128
- package/src/lib/type_builders.ts +4014 -4014
- package/src/lib/type_util.ts +124 -124
- package/src/lib/util.ts +196 -196
- package/src/lib/uuid.ts +337 -337
- package/src/react/SpacetimeDBProvider.ts +84 -84
- package/src/react/connection_state.ts +6 -6
- package/src/react/index.ts +5 -5
- package/src/react/useProcedure.ts +60 -60
- package/src/react/useReducer.ts +53 -53
- package/src/react/useSpacetimeDB.ts +18 -18
- package/src/react/useTable.ts +256 -251
- package/src/sdk/client_api/index.ts +114 -114
- package/src/sdk/client_api/types/procedures.ts +8 -8
- package/src/sdk/client_api/types/reducers.ts +8 -8
- package/src/sdk/client_api/types.ts +288 -288
- package/src/sdk/client_cache.ts +129 -129
- package/src/sdk/client_table.ts +179 -179
- package/src/sdk/connection_manager.ts +352 -237
- package/src/sdk/db_connection_builder.ts +290 -290
- package/src/sdk/db_connection_impl.ts +1356 -1347
- package/src/sdk/db_context.ts +28 -28
- package/src/sdk/db_view.ts +12 -12
- package/src/sdk/decompress.ts +51 -51
- package/src/sdk/event.ts +18 -18
- package/src/sdk/event_context.ts +51 -51
- package/src/sdk/event_emitter.ts +32 -32
- package/src/sdk/index.ts +14 -14
- package/src/sdk/internal.ts +2 -2
- package/src/sdk/json_api.ts +46 -46
- package/src/sdk/logger.ts +134 -134
- package/src/sdk/message_types.ts +46 -46
- package/src/sdk/procedures.ts +83 -83
- package/src/sdk/reducer_event.ts +20 -20
- package/src/sdk/reducer_handle.ts +12 -12
- package/src/sdk/reducers.ts +159 -159
- package/src/sdk/schema.ts +45 -45
- package/src/sdk/spacetime_module.ts +28 -28
- package/src/sdk/subscription_builder_impl.ts +275 -275
- package/src/sdk/table_cache.ts +581 -581
- package/src/sdk/type_utils.ts +19 -19
- package/src/sdk/version.ts +133 -133
- package/src/sdk/websocket_decompress_adapter.ts +63 -63
- package/src/sdk/websocket_protocols.ts +25 -25
- package/src/sdk/websocket_test_adapter.ts +107 -100
- package/src/sdk/websocket_v3_frames.ts +126 -126
- package/src/sdk/ws.ts +105 -105
- package/src/server/console.ts +81 -81
- package/src/server/db_view.ts +21 -21
- package/src/server/errors.ts +138 -138
- package/src/server/http.test-d.ts +80 -80
- package/src/server/http.ts +14 -14
- package/src/server/http_handlers.ts +413 -413
- package/src/server/http_internal.ts +79 -79
- package/src/server/http_shared.ts +186 -186
- package/src/server/index.ts +37 -37
- package/src/server/polyfills.ts +4 -4
- package/src/server/procedures.ts +239 -239
- package/src/server/query.ts +1 -1
- package/src/server/range.ts +53 -53
- package/src/server/reducers.ts +113 -113
- package/src/server/rng.ts +113 -113
- package/src/server/runtime.ts +1102 -1102
- package/src/server/schema.test-d.ts +99 -99
- package/src/server/schema.ts +663 -663
- package/src/server/sys.d.ts +125 -125
- package/src/server/view.test-d.ts +194 -194
- package/src/server/views.ts +340 -340
- package/src/solid/SpacetimeDBProvider.ts +97 -97
- package/src/solid/connection_state.ts +6 -6
- package/src/solid/index.ts +5 -5
- package/src/solid/useProcedure.ts +57 -57
- package/src/solid/useReducer.ts +50 -50
- package/src/solid/useSpacetimeDB.ts +18 -18
- package/src/solid/useTable.ts +203 -203
- package/src/svelte/SpacetimeDBProvider.ts +101 -101
- package/src/svelte/connection_state.ts +16 -16
- package/src/svelte/index.ts +4 -4
- package/src/svelte/useReducer.ts +61 -61
- package/src/svelte/useSpacetimeDB.ts +22 -22
- package/src/svelte/useTable.ts +218 -218
- package/src/tanstack/SpacetimeDBQueryClient.ts +330 -330
- package/src/tanstack/hooks.ts +83 -83
- package/src/tanstack/index.ts +16 -16
- package/src/util-stub.ts +1 -1
- package/src/vue/SpacetimeDBProvider.ts +157 -157
- package/src/vue/connection_state.ts +19 -19
- package/src/vue/index.ts +5 -5
- package/src/vue/useProcedure.ts +62 -62
- package/src/vue/useReducer.ts +55 -55
- package/src/vue/useSpacetimeDB.ts +18 -18
- package/src/vue/useTable.ts +229 -229
package/package.json
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
import { InjectionToken, type WritableSignal } from '@angular/core';
|
|
2
|
-
import type { ConnectionId } from '../lib/connection_id';
|
|
3
|
-
import type { Identity } from '../lib/identity';
|
|
4
|
-
import type { DbConnectionImpl } from '../sdk/db_connection_impl';
|
|
5
|
-
|
|
6
|
-
export interface ConnectionState {
|
|
7
|
-
isActive: boolean;
|
|
8
|
-
identity?: Identity;
|
|
9
|
-
token?: string;
|
|
10
|
-
connectionId: ConnectionId;
|
|
11
|
-
connectionError?: Error;
|
|
12
|
-
getConnection<
|
|
13
|
-
DbConnection extends DbConnectionImpl<any>,
|
|
14
|
-
>(): DbConnection | null;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
export const SPACETIMEDB_CONNECTION = new InjectionToken<
|
|
18
|
-
WritableSignal<ConnectionState>
|
|
19
|
-
>('SpacetimeDB Connection State');
|
|
1
|
+
import { InjectionToken, type WritableSignal } from '@angular/core';
|
|
2
|
+
import type { ConnectionId } from '../lib/connection_id';
|
|
3
|
+
import type { Identity } from '../lib/identity';
|
|
4
|
+
import type { DbConnectionImpl } from '../sdk/db_connection_impl';
|
|
5
|
+
|
|
6
|
+
export interface ConnectionState {
|
|
7
|
+
isActive: boolean;
|
|
8
|
+
identity?: Identity;
|
|
9
|
+
token?: string;
|
|
10
|
+
connectionId: ConnectionId;
|
|
11
|
+
connectionError?: Error;
|
|
12
|
+
getConnection<
|
|
13
|
+
DbConnection extends DbConnectionImpl<any>,
|
|
14
|
+
>(): DbConnection | null;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export const SPACETIMEDB_CONNECTION = new InjectionToken<
|
|
18
|
+
WritableSignal<ConnectionState>
|
|
19
|
+
>('SpacetimeDB Connection State');
|
package/src/angular/index.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export type { ConnectionState } from './connection_state.ts';
|
|
2
|
-
export * from './injectors/index.ts';
|
|
3
|
-
export * from './providers/index.ts';
|
|
1
|
+
export type { ConnectionState } from './connection_state.ts';
|
|
2
|
+
export * from './injectors/index.ts';
|
|
3
|
+
export * from './providers/index.ts';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { injectSpacetimeDB } from './inject-spacetimedb.ts';
|
|
2
|
-
export { injectTable, type TableRows } from './inject-table.ts';
|
|
3
|
-
export { injectSpacetimeDBConnected } from './inject-spacetimedb-connected.ts';
|
|
4
|
-
export { injectReducer } from './inject-reducer.ts';
|
|
1
|
+
export { injectSpacetimeDB } from './inject-spacetimedb.ts';
|
|
2
|
+
export { injectTable, type TableRows } from './inject-table.ts';
|
|
3
|
+
export { injectSpacetimeDBConnected } from './inject-spacetimedb-connected.ts';
|
|
4
|
+
export { injectReducer } from './inject-reducer.ts';
|
|
@@ -1,62 +1,62 @@
|
|
|
1
|
-
import { assertInInjectionContext, inject, effect } from '@angular/core';
|
|
2
|
-
import { SPACETIMEDB_CONNECTION } from '../connection_state';
|
|
3
|
-
import type { ParamsType } from '../../sdk';
|
|
4
|
-
import type { UntypedReducerDef } from '../../sdk/reducers';
|
|
5
|
-
|
|
6
|
-
export function injectReducer<ReducerDef extends UntypedReducerDef>(
|
|
7
|
-
reducerDef: ReducerDef
|
|
8
|
-
): (...params: ParamsType<ReducerDef>) => void {
|
|
9
|
-
assertInInjectionContext(injectReducer);
|
|
10
|
-
|
|
11
|
-
const connState = inject(SPACETIMEDB_CONNECTION);
|
|
12
|
-
const queue: ParamsType<ReducerDef>[] = [];
|
|
13
|
-
const reducerName = reducerDef.accessorName;
|
|
14
|
-
|
|
15
|
-
// flush queued calls when connection becomes active
|
|
16
|
-
effect((onCleanup: (fn: () => void) => void) => {
|
|
17
|
-
const state = connState();
|
|
18
|
-
if (!state.isActive) {
|
|
19
|
-
return;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
const connection = state.getConnection();
|
|
23
|
-
if (!connection) {
|
|
24
|
-
return;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
const callReducer = (connection.reducers as any)[reducerName] as (
|
|
28
|
-
...p: ParamsType<ReducerDef>
|
|
29
|
-
) => void;
|
|
30
|
-
|
|
31
|
-
if (queue.length) {
|
|
32
|
-
const pending = queue.splice(0);
|
|
33
|
-
for (const params of pending) {
|
|
34
|
-
callReducer(...params);
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
onCleanup(() => {
|
|
39
|
-
queue.splice(0);
|
|
40
|
-
});
|
|
41
|
-
});
|
|
42
|
-
|
|
43
|
-
return (...params: ParamsType<ReducerDef>) => {
|
|
44
|
-
const state = connState();
|
|
45
|
-
if (!state.isActive) {
|
|
46
|
-
queue.push(params);
|
|
47
|
-
return;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
const connection = state.getConnection();
|
|
51
|
-
if (!connection) {
|
|
52
|
-
queue.push(params);
|
|
53
|
-
return;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
const callReducer = (connection.reducers as any)[reducerName] as (
|
|
57
|
-
...p: ParamsType<ReducerDef>
|
|
58
|
-
) => void;
|
|
59
|
-
|
|
60
|
-
return callReducer(...params);
|
|
61
|
-
};
|
|
62
|
-
}
|
|
1
|
+
import { assertInInjectionContext, inject, effect } from '@angular/core';
|
|
2
|
+
import { SPACETIMEDB_CONNECTION } from '../connection_state';
|
|
3
|
+
import type { ParamsType } from '../../sdk';
|
|
4
|
+
import type { UntypedReducerDef } from '../../sdk/reducers';
|
|
5
|
+
|
|
6
|
+
export function injectReducer<ReducerDef extends UntypedReducerDef>(
|
|
7
|
+
reducerDef: ReducerDef
|
|
8
|
+
): (...params: ParamsType<ReducerDef>) => void {
|
|
9
|
+
assertInInjectionContext(injectReducer);
|
|
10
|
+
|
|
11
|
+
const connState = inject(SPACETIMEDB_CONNECTION);
|
|
12
|
+
const queue: ParamsType<ReducerDef>[] = [];
|
|
13
|
+
const reducerName = reducerDef.accessorName;
|
|
14
|
+
|
|
15
|
+
// flush queued calls when connection becomes active
|
|
16
|
+
effect((onCleanup: (fn: () => void) => void) => {
|
|
17
|
+
const state = connState();
|
|
18
|
+
if (!state.isActive) {
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
const connection = state.getConnection();
|
|
23
|
+
if (!connection) {
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
const callReducer = (connection.reducers as any)[reducerName] as (
|
|
28
|
+
...p: ParamsType<ReducerDef>
|
|
29
|
+
) => void;
|
|
30
|
+
|
|
31
|
+
if (queue.length) {
|
|
32
|
+
const pending = queue.splice(0);
|
|
33
|
+
for (const params of pending) {
|
|
34
|
+
callReducer(...params);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
onCleanup(() => {
|
|
39
|
+
queue.splice(0);
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
return (...params: ParamsType<ReducerDef>) => {
|
|
44
|
+
const state = connState();
|
|
45
|
+
if (!state.isActive) {
|
|
46
|
+
queue.push(params);
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
const connection = state.getConnection();
|
|
51
|
+
if (!connection) {
|
|
52
|
+
queue.push(params);
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
const callReducer = (connection.reducers as any)[reducerName] as (
|
|
57
|
+
...p: ParamsType<ReducerDef>
|
|
58
|
+
) => void;
|
|
59
|
+
|
|
60
|
+
return callReducer(...params);
|
|
61
|
+
};
|
|
62
|
+
}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import {
|
|
2
|
-
assertInInjectionContext,
|
|
3
|
-
inject,
|
|
4
|
-
computed,
|
|
5
|
-
type Signal,
|
|
6
|
-
} from '@angular/core';
|
|
7
|
-
import { SPACETIMEDB_CONNECTION } from '../connection_state';
|
|
8
|
-
|
|
9
|
-
export function injectSpacetimeDBConnected(): Signal<boolean> {
|
|
10
|
-
assertInInjectionContext(injectSpacetimeDBConnected);
|
|
11
|
-
const state = inject(SPACETIMEDB_CONNECTION);
|
|
12
|
-
return computed(() => state().isActive);
|
|
13
|
-
}
|
|
1
|
+
import {
|
|
2
|
+
assertInInjectionContext,
|
|
3
|
+
inject,
|
|
4
|
+
computed,
|
|
5
|
+
type Signal,
|
|
6
|
+
} from '@angular/core';
|
|
7
|
+
import { SPACETIMEDB_CONNECTION } from '../connection_state';
|
|
8
|
+
|
|
9
|
+
export function injectSpacetimeDBConnected(): Signal<boolean> {
|
|
10
|
+
assertInInjectionContext(injectSpacetimeDBConnected);
|
|
11
|
+
const state = inject(SPACETIMEDB_CONNECTION);
|
|
12
|
+
return computed(() => state().isActive);
|
|
13
|
+
}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { assertInInjectionContext, inject, type Signal } from '@angular/core';
|
|
2
|
-
import {
|
|
3
|
-
SPACETIMEDB_CONNECTION,
|
|
4
|
-
type ConnectionState,
|
|
5
|
-
} from '../connection_state';
|
|
6
|
-
|
|
7
|
-
export function injectSpacetimeDB(): Signal<ConnectionState> {
|
|
8
|
-
assertInInjectionContext(injectSpacetimeDB);
|
|
9
|
-
return inject(SPACETIMEDB_CONNECTION).asReadonly();
|
|
10
|
-
}
|
|
1
|
+
import { assertInInjectionContext, inject, type Signal } from '@angular/core';
|
|
2
|
+
import {
|
|
3
|
+
SPACETIMEDB_CONNECTION,
|
|
4
|
+
type ConnectionState,
|
|
5
|
+
} from '../connection_state';
|
|
6
|
+
|
|
7
|
+
export function injectSpacetimeDB(): Signal<ConnectionState> {
|
|
8
|
+
assertInInjectionContext(injectSpacetimeDB);
|
|
9
|
+
return inject(SPACETIMEDB_CONNECTION).asReadonly();
|
|
10
|
+
}
|