spacetimedb 2.4.1 → 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 -120
- 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 +1933 -0
- package/dist/browser/solid/index.mjs.map +1 -0
- 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/SpacetimeDBProvider.d.ts +7 -0
- package/dist/solid/SpacetimeDBProvider.d.ts.map +1 -0
- package/dist/solid/connection_state.d.ts +6 -0
- package/dist/solid/connection_state.d.ts.map +1 -0
- package/dist/solid/index.cjs +1939 -0
- package/dist/solid/index.cjs.map +1 -0
- package/dist/solid/index.d.ts +6 -0
- package/dist/solid/index.d.ts.map +1 -0
- package/dist/solid/index.mjs +1933 -0
- package/dist/solid/index.mjs.map +1 -0
- package/dist/solid/useProcedure.d.ts +4 -0
- package/dist/solid/useProcedure.d.ts.map +1 -0
- package/dist/solid/useReducer.d.ts +4 -0
- package/dist/solid/useReducer.d.ts.map +1 -0
- package/dist/solid/useSpacetimeDB.d.ts +4 -0
- package/dist/solid/useSpacetimeDB.d.ts.map +1 -0
- package/dist/solid/useTable.d.ts +32 -0
- package/dist/solid/useTable.d.ts.map +1 -0
- 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 +13 -3
- 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 -0
- package/src/solid/connection_state.ts +6 -0
- package/src/solid/index.ts +5 -0
- package/src/solid/useProcedure.ts +57 -0
- package/src/solid/useReducer.ts +50 -0
- package/src/solid/useSpacetimeDB.ts +18 -0
- package/src/solid/useTable.ts +203 -0
- 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
|
+
};
|