spacetimedb 2.0.4 → 2.2.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 +2 -2
- package/dist/angular/index.cjs +9 -3
- package/dist/angular/index.cjs.map +1 -1
- package/dist/angular/index.mjs +9 -3
- package/dist/angular/index.mjs.map +1 -1
- package/dist/browser/angular/index.mjs +9 -3
- package/dist/browser/angular/index.mjs.map +1 -1
- package/dist/browser/react/index.mjs +62 -7
- package/dist/browser/react/index.mjs.map +1 -1
- package/dist/browser/svelte/index.mjs +9 -3
- package/dist/browser/svelte/index.mjs.map +1 -1
- package/dist/browser/vue/index.mjs +9 -3
- package/dist/browser/vue/index.mjs.map +1 -1
- package/dist/index.browser.mjs +481 -146
- package/dist/index.browser.mjs.map +1 -1
- package/dist/index.cjs +481 -146
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +481 -146
- package/dist/index.mjs.map +1 -1
- package/dist/lib/algebraic_type.d.ts.map +1 -1
- package/dist/lib/binary_reader.d.ts +1 -1
- package/dist/lib/binary_reader.d.ts.map +1 -1
- package/dist/lib/binary_writer.d.ts +2 -1
- package/dist/lib/binary_writer.d.ts.map +1 -1
- package/dist/lib/filter.d.ts +2 -1
- package/dist/lib/filter.d.ts.map +1 -1
- package/dist/lib/query.d.ts +10 -5
- package/dist/lib/query.d.ts.map +1 -1
- package/dist/lib/table.d.ts +12 -1
- package/dist/lib/table.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 +62 -6
- package/dist/react/index.cjs.map +1 -1
- package/dist/react/index.d.ts +1 -0
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/index.mjs +62 -7
- package/dist/react/index.mjs.map +1 -1
- package/dist/react/useProcedure.d.ts +4 -0
- package/dist/react/useProcedure.d.ts.map +1 -0
- package/dist/react/useTable.d.ts +2 -0
- package/dist/react/useTable.d.ts.map +1 -1
- package/dist/sdk/db_connection_builder.d.ts +3 -3
- package/dist/sdk/db_connection_builder.d.ts.map +1 -1
- package/dist/sdk/db_connection_impl.d.ts +3 -3
- package/dist/sdk/db_connection_impl.d.ts.map +1 -1
- package/dist/sdk/decompress.d.ts +1 -1
- package/dist/sdk/decompress.d.ts.map +1 -1
- package/dist/sdk/index.browser.mjs +477 -144
- package/dist/sdk/index.browser.mjs.map +1 -1
- package/dist/sdk/index.cjs +477 -144
- package/dist/sdk/index.cjs.map +1 -1
- package/dist/sdk/index.mjs +477 -144
- package/dist/sdk/index.mjs.map +1 -1
- package/dist/sdk/table_cache.d.ts +1 -0
- package/dist/sdk/table_cache.d.ts.map +1 -1
- package/dist/sdk/type_utils.d.ts +4 -1
- package/dist/sdk/type_utils.d.ts.map +1 -1
- package/dist/sdk/websocket_decompress_adapter.d.ts +5 -21
- package/dist/sdk/websocket_decompress_adapter.d.ts.map +1 -1
- package/dist/sdk/websocket_protocols.d.ts +6 -0
- package/dist/sdk/websocket_protocols.d.ts.map +1 -0
- package/dist/sdk/websocket_test_adapter.d.ts +14 -18
- package/dist/sdk/websocket_test_adapter.d.ts.map +1 -1
- package/dist/sdk/websocket_v3_frames.d.ts +9 -0
- package/dist/sdk/websocket_v3_frames.d.ts.map +1 -0
- package/dist/sdk/ws.d.ts +26 -1
- package/dist/sdk/ws.d.ts.map +1 -1
- package/dist/server/http_internal.d.ts.map +1 -1
- package/dist/server/index.d.ts +2 -1
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.mjs +76 -15
- package/dist/server/index.mjs.map +1 -1
- package/dist/server/runtime.d.ts +29 -2
- package/dist/server/runtime.d.ts.map +1 -1
- package/dist/svelte/index.cjs +9 -3
- package/dist/svelte/index.cjs.map +1 -1
- package/dist/svelte/index.mjs +9 -3
- package/dist/svelte/index.mjs.map +1 -1
- package/dist/tanstack/index.cjs +9 -3
- package/dist/tanstack/index.cjs.map +1 -1
- package/dist/tanstack/index.mjs +9 -3
- package/dist/tanstack/index.mjs.map +1 -1
- package/dist/vue/index.cjs +9 -3
- package/dist/vue/index.cjs.map +1 -1
- package/dist/vue/index.mjs +9 -3
- package/dist/vue/index.mjs.map +1 -1
- package/package.json +2 -2
- package/src/lib/algebraic_type.ts +5 -1
- package/src/lib/binary_reader.ts +5 -2
- package/src/lib/binary_writer.ts +7 -1
- package/src/lib/filter.ts +12 -1
- package/src/lib/query.ts +60 -19
- package/src/lib/table.ts +15 -2
- package/src/react/index.ts +1 -0
- package/src/react/useProcedure.ts +60 -0
- package/src/react/useTable.ts +22 -2
- package/src/sdk/db_connection_builder.ts +16 -7
- package/src/sdk/db_connection_impl.ts +404 -89
- package/src/sdk/decompress.ts +7 -23
- package/src/sdk/table_cache.ts +5 -5
- package/src/sdk/type_utils.ts +10 -1
- package/src/sdk/websocket_decompress_adapter.ts +15 -77
- package/src/sdk/websocket_protocols.ts +25 -0
- package/src/sdk/websocket_test_adapter.ts +65 -29
- package/src/sdk/websocket_v3_frames.ts +126 -0
- package/src/sdk/ws.ts +81 -3
- package/src/server/http_internal.ts +10 -1
- package/src/server/index.ts +2 -1
- package/src/server/runtime.ts +39 -1
- package/src/server/sys.d.ts +4 -0
- package/src/server/view.test-d.ts +4 -0
package/src/server/runtime.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as _syscalls2_0 from 'spacetime:sys@2.0';
|
|
2
|
+
import * as _syscalls2_1 from 'spacetime:sys@2.1';
|
|
2
3
|
|
|
3
4
|
import type { ModuleHooks, u128, u16, u256, u32 } from 'spacetime:sys@2.0';
|
|
4
5
|
import {
|
|
@@ -45,7 +46,7 @@ import type { SchemaInner } from './schema';
|
|
|
45
46
|
|
|
46
47
|
const { freeze } = Object;
|
|
47
48
|
|
|
48
|
-
export const sys = _syscalls2_0;
|
|
49
|
+
export const sys = { ..._syscalls2_0, ..._syscalls2_1 };
|
|
49
50
|
|
|
50
51
|
export function parseJsonObject(json: string): JsonObject {
|
|
51
52
|
let value: unknown;
|
|
@@ -508,6 +509,7 @@ function makeTableView(
|
|
|
508
509
|
);
|
|
509
510
|
return count > 0;
|
|
510
511
|
},
|
|
512
|
+
clear: () => sys.datastore_clear(table_id),
|
|
511
513
|
};
|
|
512
514
|
|
|
513
515
|
const tableView = Object.assign(
|
|
@@ -667,9 +669,37 @@ function makeTableView(
|
|
|
667
669
|
index = base as UniqueIndex<any, any>;
|
|
668
670
|
} else if (serializeSinglePoint) {
|
|
669
671
|
// numColumns == 1
|
|
672
|
+
|
|
673
|
+
const serializeSingleRange = !isHashIndex
|
|
674
|
+
? (buffer: ResizableBuffer, range: Range<any>): IndexScanArgs => {
|
|
675
|
+
BINARY_WRITER.reset(buffer);
|
|
676
|
+
const writer = BINARY_WRITER;
|
|
677
|
+
const writeBound = (bound: Bound<any>) => {
|
|
678
|
+
const tags = { included: 0, excluded: 1, unbounded: 2 };
|
|
679
|
+
writer.writeU8(tags[bound.tag]);
|
|
680
|
+
if (bound.tag !== 'unbounded')
|
|
681
|
+
serializeSingleElement!(writer, bound.value);
|
|
682
|
+
};
|
|
683
|
+
writeBound(range.from);
|
|
684
|
+
const rstartLen = writer.offset;
|
|
685
|
+
writeBound(range.to);
|
|
686
|
+
const rendLen = writer.offset - rstartLen;
|
|
687
|
+
return [0, 0, rstartLen, rendLen];
|
|
688
|
+
}
|
|
689
|
+
: null;
|
|
690
|
+
|
|
670
691
|
const rawIndex = {
|
|
671
692
|
filter: (range: any): IteratorObject<RowType<any>> => {
|
|
672
693
|
const buf = LEAF_BUF;
|
|
694
|
+
if (serializeSingleRange && range instanceof Range) {
|
|
695
|
+
const args = serializeSingleRange(buf, range);
|
|
696
|
+
const iter_id = sys.datastore_index_scan_range_bsatn(
|
|
697
|
+
index_id,
|
|
698
|
+
buf.buffer,
|
|
699
|
+
...args
|
|
700
|
+
);
|
|
701
|
+
return tableIterator(iter_id, deserializeRow);
|
|
702
|
+
}
|
|
673
703
|
const point_len = serializeSinglePoint(buf, range);
|
|
674
704
|
const iter_id = sys.datastore_index_scan_point_bsatn(
|
|
675
705
|
index_id,
|
|
@@ -680,6 +710,14 @@ function makeTableView(
|
|
|
680
710
|
},
|
|
681
711
|
delete: (range: any): u32 => {
|
|
682
712
|
const buf = LEAF_BUF;
|
|
713
|
+
if (serializeSingleRange && range instanceof Range) {
|
|
714
|
+
const args = serializeSingleRange(buf, range);
|
|
715
|
+
return sys.datastore_delete_by_index_scan_range_bsatn(
|
|
716
|
+
index_id,
|
|
717
|
+
buf.buffer,
|
|
718
|
+
...args
|
|
719
|
+
);
|
|
720
|
+
}
|
|
683
721
|
const point_len = serializeSinglePoint(buf, range);
|
|
684
722
|
return sys.datastore_delete_by_index_scan_point_bsatn(
|
|
685
723
|
index_id,
|
package/src/server/sys.d.ts
CHANGED
|
@@ -161,6 +161,10 @@ spacetime.anonymousView({ name: 'v5', public: true }, arrayRetValue, ctx => {
|
|
|
161
161
|
.where(row => row.id.eq(5))
|
|
162
162
|
.leftSemijoin(ctx.from.order, (p, o) => p.name.eq(o.person_name))
|
|
163
163
|
.build();
|
|
164
|
+
const _mixedScopeAndInJoinPredicate = ctx.from.person
|
|
165
|
+
// @ts-expect-error semijoin on(...) only supports one table scope for and/or clauses.
|
|
166
|
+
.leftSemijoin(ctx.from.order, (p, o) => p.id.eq(o.id).and(o.id.eq(5)))
|
|
167
|
+
.build();
|
|
164
168
|
return ctx.from.person
|
|
165
169
|
.where(row => row.id.eq(5))
|
|
166
170
|
.leftSemijoin(ctx.from.order, (p, o) => p.id.eq(o.id))
|