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/src/lib/binary_reader.ts
CHANGED
|
@@ -1,188 +1,188 @@
|
|
|
1
|
-
export default class BinaryReader {
|
|
2
|
-
/**
|
|
3
|
-
* The DataView used to read values from the binary data.
|
|
4
|
-
*
|
|
5
|
-
* Note: The DataView's `byteOffset` is relative to the beginning of the
|
|
6
|
-
* underlying ArrayBuffer, not the start of the provided Uint8Array input.
|
|
7
|
-
* This `BinaryReader`'s `#offset` field is used to track the current read position
|
|
8
|
-
* relative to the start of the provided Uint8Array input.
|
|
9
|
-
*/
|
|
10
|
-
view: DataView;
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* Represents the offset (in bytes) relative to the start of the DataView
|
|
14
|
-
* and provided Uint8Array input.
|
|
15
|
-
*
|
|
16
|
-
* Note: This is *not* the absolute byte offset within the underlying ArrayBuffer.
|
|
17
|
-
*/
|
|
18
|
-
offset: number = 0;
|
|
19
|
-
|
|
20
|
-
constructor(input: Uint8Array | DataView) {
|
|
21
|
-
this.view =
|
|
22
|
-
input instanceof DataView
|
|
23
|
-
? input
|
|
24
|
-
: new DataView(input.buffer, input.byteOffset, input.byteLength);
|
|
25
|
-
this.offset = 0;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
reset(input: Uint8Array | DataView) {
|
|
29
|
-
this.view =
|
|
30
|
-
input instanceof DataView
|
|
31
|
-
? input
|
|
32
|
-
: new DataView(input.buffer, input.byteOffset, input.byteLength);
|
|
33
|
-
this.offset = 0;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
get remaining(): number {
|
|
37
|
-
return this.view.byteLength - this.offset;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
/** Ensure we have at least `n` bytes left to read */
|
|
41
|
-
#ensure(n: number): void {
|
|
42
|
-
if (this.offset + n > this.view.byteLength) {
|
|
43
|
-
throw new RangeError(
|
|
44
|
-
`Tried to read ${n} byte(s) at relative offset ${this.offset}, but only ${this.remaining} byte(s) remain`
|
|
45
|
-
);
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
readUInt8Array(): Uint8Array {
|
|
50
|
-
const length = this.readU32();
|
|
51
|
-
this.#ensure(length);
|
|
52
|
-
return this.readBytes(length);
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
readBool(): boolean {
|
|
56
|
-
const value = this.view.getUint8(this.offset);
|
|
57
|
-
this.offset += 1;
|
|
58
|
-
return value !== 0;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
readByte(): number {
|
|
62
|
-
const value = this.view.getUint8(this.offset);
|
|
63
|
-
this.offset += 1;
|
|
64
|
-
return value;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
readBytes(length: number): Uint8Array {
|
|
68
|
-
// Create a Uint8Array view over the DataView's buffer at the current offset
|
|
69
|
-
// The #view.buffer is the whole ArrayBuffer, so we need to account for the
|
|
70
|
-
// #view's starting position in that buffer (#view.byteOffset) and the current #offset
|
|
71
|
-
const array = new Uint8Array(
|
|
72
|
-
this.view.buffer,
|
|
73
|
-
this.view.byteOffset + this.offset,
|
|
74
|
-
length
|
|
75
|
-
);
|
|
76
|
-
this.offset += length;
|
|
77
|
-
return array;
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
readI8(): number {
|
|
81
|
-
const value = this.view.getInt8(this.offset);
|
|
82
|
-
this.offset += 1;
|
|
83
|
-
return value;
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
readU8(): number {
|
|
87
|
-
return this.readByte();
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
readI16(): number {
|
|
91
|
-
const value = this.view.getInt16(this.offset, true);
|
|
92
|
-
this.offset += 2;
|
|
93
|
-
return value;
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
readU16(): number {
|
|
97
|
-
const value = this.view.getUint16(this.offset, true);
|
|
98
|
-
this.offset += 2;
|
|
99
|
-
return value;
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
readI32(): number {
|
|
103
|
-
const value = this.view.getInt32(this.offset, true);
|
|
104
|
-
this.offset += 4;
|
|
105
|
-
return value;
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
readU32(): number {
|
|
109
|
-
const value = this.view.getUint32(this.offset, true);
|
|
110
|
-
this.offset += 4;
|
|
111
|
-
return value;
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
readI64(): bigint {
|
|
115
|
-
const value = this.view.getBigInt64(this.offset, true);
|
|
116
|
-
this.offset += 8;
|
|
117
|
-
return value;
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
readU64(): bigint {
|
|
121
|
-
const value = this.view.getBigUint64(this.offset, true);
|
|
122
|
-
this.offset += 8;
|
|
123
|
-
return value;
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
readU128(): bigint {
|
|
127
|
-
const lowerPart = this.view.getBigUint64(this.offset, true);
|
|
128
|
-
const upperPart = this.view.getBigUint64(this.offset + 8, true);
|
|
129
|
-
this.offset += 16;
|
|
130
|
-
|
|
131
|
-
return (upperPart << BigInt(64)) + lowerPart;
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
readI128(): bigint {
|
|
135
|
-
const lowerPart = this.view.getBigUint64(this.offset, true);
|
|
136
|
-
const upperPart = this.view.getBigInt64(this.offset + 8, true);
|
|
137
|
-
this.offset += 16;
|
|
138
|
-
|
|
139
|
-
return (upperPart << BigInt(64)) + lowerPart;
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
readU256(): bigint {
|
|
143
|
-
const p0 = this.view.getBigUint64(this.offset, true);
|
|
144
|
-
const p1 = this.view.getBigUint64(this.offset + 8, true);
|
|
145
|
-
const p2 = this.view.getBigUint64(this.offset + 16, true);
|
|
146
|
-
const p3 = this.view.getBigUint64(this.offset + 24, true);
|
|
147
|
-
this.offset += 32;
|
|
148
|
-
|
|
149
|
-
return (
|
|
150
|
-
(p3 << BigInt(3 * 64)) +
|
|
151
|
-
(p2 << BigInt(2 * 64)) +
|
|
152
|
-
(p1 << BigInt(1 * 64)) +
|
|
153
|
-
p0
|
|
154
|
-
);
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
readI256(): bigint {
|
|
158
|
-
const p0 = this.view.getBigUint64(this.offset, true);
|
|
159
|
-
const p1 = this.view.getBigUint64(this.offset + 8, true);
|
|
160
|
-
const p2 = this.view.getBigUint64(this.offset + 16, true);
|
|
161
|
-
const p3 = this.view.getBigInt64(this.offset + 24, true);
|
|
162
|
-
this.offset += 32;
|
|
163
|
-
|
|
164
|
-
return (
|
|
165
|
-
(p3 << BigInt(3 * 64)) +
|
|
166
|
-
(p2 << BigInt(2 * 64)) +
|
|
167
|
-
(p1 << BigInt(1 * 64)) +
|
|
168
|
-
p0
|
|
169
|
-
);
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
readF32(): number {
|
|
173
|
-
const value = this.view.getFloat32(this.offset, true);
|
|
174
|
-
this.offset += 4;
|
|
175
|
-
return value;
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
readF64(): number {
|
|
179
|
-
const value = this.view.getFloat64(this.offset, true);
|
|
180
|
-
this.offset += 8;
|
|
181
|
-
return value;
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
readString(): string {
|
|
185
|
-
const uint8Array = this.readUInt8Array();
|
|
186
|
-
return new TextDecoder('utf-8').decode(uint8Array);
|
|
187
|
-
}
|
|
188
|
-
}
|
|
1
|
+
export default class BinaryReader {
|
|
2
|
+
/**
|
|
3
|
+
* The DataView used to read values from the binary data.
|
|
4
|
+
*
|
|
5
|
+
* Note: The DataView's `byteOffset` is relative to the beginning of the
|
|
6
|
+
* underlying ArrayBuffer, not the start of the provided Uint8Array input.
|
|
7
|
+
* This `BinaryReader`'s `#offset` field is used to track the current read position
|
|
8
|
+
* relative to the start of the provided Uint8Array input.
|
|
9
|
+
*/
|
|
10
|
+
view: DataView;
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Represents the offset (in bytes) relative to the start of the DataView
|
|
14
|
+
* and provided Uint8Array input.
|
|
15
|
+
*
|
|
16
|
+
* Note: This is *not* the absolute byte offset within the underlying ArrayBuffer.
|
|
17
|
+
*/
|
|
18
|
+
offset: number = 0;
|
|
19
|
+
|
|
20
|
+
constructor(input: Uint8Array | DataView) {
|
|
21
|
+
this.view =
|
|
22
|
+
input instanceof DataView
|
|
23
|
+
? input
|
|
24
|
+
: new DataView(input.buffer, input.byteOffset, input.byteLength);
|
|
25
|
+
this.offset = 0;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
reset(input: Uint8Array | DataView) {
|
|
29
|
+
this.view =
|
|
30
|
+
input instanceof DataView
|
|
31
|
+
? input
|
|
32
|
+
: new DataView(input.buffer, input.byteOffset, input.byteLength);
|
|
33
|
+
this.offset = 0;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
get remaining(): number {
|
|
37
|
+
return this.view.byteLength - this.offset;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/** Ensure we have at least `n` bytes left to read */
|
|
41
|
+
#ensure(n: number): void {
|
|
42
|
+
if (this.offset + n > this.view.byteLength) {
|
|
43
|
+
throw new RangeError(
|
|
44
|
+
`Tried to read ${n} byte(s) at relative offset ${this.offset}, but only ${this.remaining} byte(s) remain`
|
|
45
|
+
);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
readUInt8Array(): Uint8Array {
|
|
50
|
+
const length = this.readU32();
|
|
51
|
+
this.#ensure(length);
|
|
52
|
+
return this.readBytes(length);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
readBool(): boolean {
|
|
56
|
+
const value = this.view.getUint8(this.offset);
|
|
57
|
+
this.offset += 1;
|
|
58
|
+
return value !== 0;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
readByte(): number {
|
|
62
|
+
const value = this.view.getUint8(this.offset);
|
|
63
|
+
this.offset += 1;
|
|
64
|
+
return value;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
readBytes(length: number): Uint8Array {
|
|
68
|
+
// Create a Uint8Array view over the DataView's buffer at the current offset
|
|
69
|
+
// The #view.buffer is the whole ArrayBuffer, so we need to account for the
|
|
70
|
+
// #view's starting position in that buffer (#view.byteOffset) and the current #offset
|
|
71
|
+
const array = new Uint8Array(
|
|
72
|
+
this.view.buffer,
|
|
73
|
+
this.view.byteOffset + this.offset,
|
|
74
|
+
length
|
|
75
|
+
);
|
|
76
|
+
this.offset += length;
|
|
77
|
+
return array;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
readI8(): number {
|
|
81
|
+
const value = this.view.getInt8(this.offset);
|
|
82
|
+
this.offset += 1;
|
|
83
|
+
return value;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
readU8(): number {
|
|
87
|
+
return this.readByte();
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
readI16(): number {
|
|
91
|
+
const value = this.view.getInt16(this.offset, true);
|
|
92
|
+
this.offset += 2;
|
|
93
|
+
return value;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
readU16(): number {
|
|
97
|
+
const value = this.view.getUint16(this.offset, true);
|
|
98
|
+
this.offset += 2;
|
|
99
|
+
return value;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
readI32(): number {
|
|
103
|
+
const value = this.view.getInt32(this.offset, true);
|
|
104
|
+
this.offset += 4;
|
|
105
|
+
return value;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
readU32(): number {
|
|
109
|
+
const value = this.view.getUint32(this.offset, true);
|
|
110
|
+
this.offset += 4;
|
|
111
|
+
return value;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
readI64(): bigint {
|
|
115
|
+
const value = this.view.getBigInt64(this.offset, true);
|
|
116
|
+
this.offset += 8;
|
|
117
|
+
return value;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
readU64(): bigint {
|
|
121
|
+
const value = this.view.getBigUint64(this.offset, true);
|
|
122
|
+
this.offset += 8;
|
|
123
|
+
return value;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
readU128(): bigint {
|
|
127
|
+
const lowerPart = this.view.getBigUint64(this.offset, true);
|
|
128
|
+
const upperPart = this.view.getBigUint64(this.offset + 8, true);
|
|
129
|
+
this.offset += 16;
|
|
130
|
+
|
|
131
|
+
return (upperPart << BigInt(64)) + lowerPart;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
readI128(): bigint {
|
|
135
|
+
const lowerPart = this.view.getBigUint64(this.offset, true);
|
|
136
|
+
const upperPart = this.view.getBigInt64(this.offset + 8, true);
|
|
137
|
+
this.offset += 16;
|
|
138
|
+
|
|
139
|
+
return (upperPart << BigInt(64)) + lowerPart;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
readU256(): bigint {
|
|
143
|
+
const p0 = this.view.getBigUint64(this.offset, true);
|
|
144
|
+
const p1 = this.view.getBigUint64(this.offset + 8, true);
|
|
145
|
+
const p2 = this.view.getBigUint64(this.offset + 16, true);
|
|
146
|
+
const p3 = this.view.getBigUint64(this.offset + 24, true);
|
|
147
|
+
this.offset += 32;
|
|
148
|
+
|
|
149
|
+
return (
|
|
150
|
+
(p3 << BigInt(3 * 64)) +
|
|
151
|
+
(p2 << BigInt(2 * 64)) +
|
|
152
|
+
(p1 << BigInt(1 * 64)) +
|
|
153
|
+
p0
|
|
154
|
+
);
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
readI256(): bigint {
|
|
158
|
+
const p0 = this.view.getBigUint64(this.offset, true);
|
|
159
|
+
const p1 = this.view.getBigUint64(this.offset + 8, true);
|
|
160
|
+
const p2 = this.view.getBigUint64(this.offset + 16, true);
|
|
161
|
+
const p3 = this.view.getBigInt64(this.offset + 24, true);
|
|
162
|
+
this.offset += 32;
|
|
163
|
+
|
|
164
|
+
return (
|
|
165
|
+
(p3 << BigInt(3 * 64)) +
|
|
166
|
+
(p2 << BigInt(2 * 64)) +
|
|
167
|
+
(p1 << BigInt(1 * 64)) +
|
|
168
|
+
p0
|
|
169
|
+
);
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
readF32(): number {
|
|
173
|
+
const value = this.view.getFloat32(this.offset, true);
|
|
174
|
+
this.offset += 4;
|
|
175
|
+
return value;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
readF64(): number {
|
|
179
|
+
const value = this.view.getFloat64(this.offset, true);
|
|
180
|
+
this.offset += 8;
|
|
181
|
+
return value;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
readString(): string {
|
|
185
|
+
const uint8Array = this.readUInt8Array();
|
|
186
|
+
return new TextDecoder('utf-8').decode(uint8Array);
|
|
187
|
+
}
|
|
188
|
+
}
|