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
|
@@ -1,128 +1,128 @@
|
|
|
1
|
-
import { t } from '../server';
|
|
2
|
-
import { type AlgebraicTypeVariants } from '..';
|
|
3
|
-
import type {
|
|
4
|
-
I32ColumnBuilder,
|
|
5
|
-
I64ColumnBuilder,
|
|
6
|
-
InferTypeOfRow,
|
|
7
|
-
InferTypeOfTypeBuilder,
|
|
8
|
-
TypeBuilder,
|
|
9
|
-
U8ColumnBuilder,
|
|
10
|
-
} from './type_builders';
|
|
11
|
-
|
|
12
|
-
type MustBeNever<T> = [T] extends [never]
|
|
13
|
-
? true
|
|
14
|
-
: ['Error: Type must be never', T];
|
|
15
|
-
|
|
16
|
-
// Test type inference on a row
|
|
17
|
-
// i.e. a Record<string, TypeBuilder | ColumnBuilder> type
|
|
18
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
19
|
-
const row = {
|
|
20
|
-
foo: t.string(),
|
|
21
|
-
bar: t.i32().primaryKey(),
|
|
22
|
-
idx: t.i64().index('btree').unique(),
|
|
23
|
-
};
|
|
24
|
-
type Row = InferTypeOfRow<typeof row>;
|
|
25
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
26
|
-
const _row: Row = {
|
|
27
|
-
foo: 'hello',
|
|
28
|
-
bar: 42,
|
|
29
|
-
idx: 100n,
|
|
30
|
-
};
|
|
31
|
-
|
|
32
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
33
|
-
const rowOptionOptional = {
|
|
34
|
-
foo: t.string().optional().optional(),
|
|
35
|
-
};
|
|
36
|
-
type RowOptionOptional = InferTypeOfRow<typeof rowOptionOptional>;
|
|
37
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
38
|
-
const _rowOptionOptionalNone: RowOptionOptional = {
|
|
39
|
-
foo: undefined,
|
|
40
|
-
};
|
|
41
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
42
|
-
const _rowOptionOptionalSome: RowOptionOptional = {
|
|
43
|
-
foo: 'hello',
|
|
44
|
-
};
|
|
45
|
-
|
|
46
|
-
// Test that a row must not allow non-TypeBuilder or ColumnBuilder values
|
|
47
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
48
|
-
const row2 = {
|
|
49
|
-
foo: {
|
|
50
|
-
// bar is not a TypeBuilder or ColumnBuilder, so this should fail
|
|
51
|
-
bar: t.string(),
|
|
52
|
-
},
|
|
53
|
-
bar: t.i32().primaryKey(),
|
|
54
|
-
idx: t.i64().index('btree').unique(),
|
|
55
|
-
};
|
|
56
|
-
// @ts-expect-error this should error
|
|
57
|
-
type Row2 = InferTypeOfRow<typeof row2>;
|
|
58
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
59
|
-
type _ = MustBeNever<Row2>;
|
|
60
|
-
|
|
61
|
-
// Test type inference on a type with a nested object
|
|
62
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
63
|
-
const point = t.object('Point', {
|
|
64
|
-
x: t.i32(),
|
|
65
|
-
y: t.f64(),
|
|
66
|
-
z: t.object('Foo', {
|
|
67
|
-
foo: t.string(),
|
|
68
|
-
}),
|
|
69
|
-
});
|
|
70
|
-
type Point = InferTypeOfTypeBuilder<typeof point>;
|
|
71
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
72
|
-
const _point: Point = {
|
|
73
|
-
x: 1.0,
|
|
74
|
-
y: 2.0,
|
|
75
|
-
z: {
|
|
76
|
-
foo: 'bar',
|
|
77
|
-
},
|
|
78
|
-
};
|
|
79
|
-
|
|
80
|
-
// Test type inference on an enum
|
|
81
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
82
|
-
const e = t.enum('E', {
|
|
83
|
-
A: t.string(),
|
|
84
|
-
B: t.number(),
|
|
85
|
-
});
|
|
86
|
-
type E = InferTypeOfTypeBuilder<typeof e>;
|
|
87
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
88
|
-
const _e: E = { tag: 'A', value: 'hello' };
|
|
89
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
90
|
-
const _e2: E = { tag: 'B', value: 42 };
|
|
91
|
-
|
|
92
|
-
// Test that the type of a row includes the correct ColumnBuilder types
|
|
93
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
94
|
-
const _row3: {
|
|
95
|
-
foo: TypeBuilder<string, AlgebraicTypeVariants.String>;
|
|
96
|
-
bar: I32ColumnBuilder<{
|
|
97
|
-
isPrimaryKey: true;
|
|
98
|
-
}>;
|
|
99
|
-
idx: I64ColumnBuilder<{
|
|
100
|
-
isUnique: true;
|
|
101
|
-
indexType: 'btree';
|
|
102
|
-
}>;
|
|
103
|
-
} = {
|
|
104
|
-
foo: t.string(),
|
|
105
|
-
bar: t.i32().primaryKey(),
|
|
106
|
-
idx: t.i64().index('btree').unique(),
|
|
107
|
-
};
|
|
108
|
-
|
|
109
|
-
// Test that you can add the index and unique constraint in any order
|
|
110
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
111
|
-
const _row4: {
|
|
112
|
-
foo: TypeBuilder<string, AlgebraicTypeVariants.String>;
|
|
113
|
-
baz: U8ColumnBuilder<{
|
|
114
|
-
isAutoIncrement: true;
|
|
115
|
-
}>;
|
|
116
|
-
bar: I32ColumnBuilder<{
|
|
117
|
-
isPrimaryKey: true;
|
|
118
|
-
}>;
|
|
119
|
-
idx: I64ColumnBuilder<{
|
|
120
|
-
isUnique: true;
|
|
121
|
-
indexType: 'btree';
|
|
122
|
-
}>;
|
|
123
|
-
} = {
|
|
124
|
-
foo: t.string(),
|
|
125
|
-
baz: t.u8().autoInc(),
|
|
126
|
-
bar: t.i32().primaryKey(),
|
|
127
|
-
idx: t.i64().unique().index('btree'),
|
|
128
|
-
};
|
|
1
|
+
import { t } from '../server';
|
|
2
|
+
import { type AlgebraicTypeVariants } from '..';
|
|
3
|
+
import type {
|
|
4
|
+
I32ColumnBuilder,
|
|
5
|
+
I64ColumnBuilder,
|
|
6
|
+
InferTypeOfRow,
|
|
7
|
+
InferTypeOfTypeBuilder,
|
|
8
|
+
TypeBuilder,
|
|
9
|
+
U8ColumnBuilder,
|
|
10
|
+
} from './type_builders';
|
|
11
|
+
|
|
12
|
+
type MustBeNever<T> = [T] extends [never]
|
|
13
|
+
? true
|
|
14
|
+
: ['Error: Type must be never', T];
|
|
15
|
+
|
|
16
|
+
// Test type inference on a row
|
|
17
|
+
// i.e. a Record<string, TypeBuilder | ColumnBuilder> type
|
|
18
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
19
|
+
const row = {
|
|
20
|
+
foo: t.string(),
|
|
21
|
+
bar: t.i32().primaryKey(),
|
|
22
|
+
idx: t.i64().index('btree').unique(),
|
|
23
|
+
};
|
|
24
|
+
type Row = InferTypeOfRow<typeof row>;
|
|
25
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
26
|
+
const _row: Row = {
|
|
27
|
+
foo: 'hello',
|
|
28
|
+
bar: 42,
|
|
29
|
+
idx: 100n,
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
33
|
+
const rowOptionOptional = {
|
|
34
|
+
foo: t.string().optional().optional(),
|
|
35
|
+
};
|
|
36
|
+
type RowOptionOptional = InferTypeOfRow<typeof rowOptionOptional>;
|
|
37
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
38
|
+
const _rowOptionOptionalNone: RowOptionOptional = {
|
|
39
|
+
foo: undefined,
|
|
40
|
+
};
|
|
41
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
42
|
+
const _rowOptionOptionalSome: RowOptionOptional = {
|
|
43
|
+
foo: 'hello',
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
// Test that a row must not allow non-TypeBuilder or ColumnBuilder values
|
|
47
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
48
|
+
const row2 = {
|
|
49
|
+
foo: {
|
|
50
|
+
// bar is not a TypeBuilder or ColumnBuilder, so this should fail
|
|
51
|
+
bar: t.string(),
|
|
52
|
+
},
|
|
53
|
+
bar: t.i32().primaryKey(),
|
|
54
|
+
idx: t.i64().index('btree').unique(),
|
|
55
|
+
};
|
|
56
|
+
// @ts-expect-error this should error
|
|
57
|
+
type Row2 = InferTypeOfRow<typeof row2>;
|
|
58
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
59
|
+
type _ = MustBeNever<Row2>;
|
|
60
|
+
|
|
61
|
+
// Test type inference on a type with a nested object
|
|
62
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
63
|
+
const point = t.object('Point', {
|
|
64
|
+
x: t.i32(),
|
|
65
|
+
y: t.f64(),
|
|
66
|
+
z: t.object('Foo', {
|
|
67
|
+
foo: t.string(),
|
|
68
|
+
}),
|
|
69
|
+
});
|
|
70
|
+
type Point = InferTypeOfTypeBuilder<typeof point>;
|
|
71
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
72
|
+
const _point: Point = {
|
|
73
|
+
x: 1.0,
|
|
74
|
+
y: 2.0,
|
|
75
|
+
z: {
|
|
76
|
+
foo: 'bar',
|
|
77
|
+
},
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
// Test type inference on an enum
|
|
81
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
82
|
+
const e = t.enum('E', {
|
|
83
|
+
A: t.string(),
|
|
84
|
+
B: t.number(),
|
|
85
|
+
});
|
|
86
|
+
type E = InferTypeOfTypeBuilder<typeof e>;
|
|
87
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
88
|
+
const _e: E = { tag: 'A', value: 'hello' };
|
|
89
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
90
|
+
const _e2: E = { tag: 'B', value: 42 };
|
|
91
|
+
|
|
92
|
+
// Test that the type of a row includes the correct ColumnBuilder types
|
|
93
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
94
|
+
const _row3: {
|
|
95
|
+
foo: TypeBuilder<string, AlgebraicTypeVariants.String>;
|
|
96
|
+
bar: I32ColumnBuilder<{
|
|
97
|
+
isPrimaryKey: true;
|
|
98
|
+
}>;
|
|
99
|
+
idx: I64ColumnBuilder<{
|
|
100
|
+
isUnique: true;
|
|
101
|
+
indexType: 'btree';
|
|
102
|
+
}>;
|
|
103
|
+
} = {
|
|
104
|
+
foo: t.string(),
|
|
105
|
+
bar: t.i32().primaryKey(),
|
|
106
|
+
idx: t.i64().index('btree').unique(),
|
|
107
|
+
};
|
|
108
|
+
|
|
109
|
+
// Test that you can add the index and unique constraint in any order
|
|
110
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
111
|
+
const _row4: {
|
|
112
|
+
foo: TypeBuilder<string, AlgebraicTypeVariants.String>;
|
|
113
|
+
baz: U8ColumnBuilder<{
|
|
114
|
+
isAutoIncrement: true;
|
|
115
|
+
}>;
|
|
116
|
+
bar: I32ColumnBuilder<{
|
|
117
|
+
isPrimaryKey: true;
|
|
118
|
+
}>;
|
|
119
|
+
idx: I64ColumnBuilder<{
|
|
120
|
+
isUnique: true;
|
|
121
|
+
indexType: 'btree';
|
|
122
|
+
}>;
|
|
123
|
+
} = {
|
|
124
|
+
foo: t.string(),
|
|
125
|
+
baz: t.u8().autoInc(),
|
|
126
|
+
bar: t.i32().primaryKey(),
|
|
127
|
+
idx: t.i64().unique().index('btree'),
|
|
128
|
+
};
|