@evolu/common 8.0.0-next.4 → 8.0.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/dist/src/Array.d.ts +279 -173
- package/dist/src/Array.d.ts.map +1 -1
- package/dist/src/Array.js +105 -101
- package/dist/src/Assert.d.ts +44 -44
- package/dist/src/Assert.d.ts.map +1 -1
- package/dist/src/Assert.js +44 -32
- package/dist/src/BigInt.d.ts +6 -3
- package/dist/src/BigInt.d.ts.map +1 -1
- package/dist/src/BigInt.js +5 -2
- package/dist/src/Brand.d.ts +27 -40
- package/dist/src/Brand.d.ts.map +1 -1
- package/dist/src/Buffer.d.ts +27 -11
- package/dist/src/Buffer.d.ts.map +1 -1
- package/dist/src/Cache.d.ts +9 -4
- package/dist/src/Cache.d.ts.map +1 -1
- package/dist/src/Cache.js +8 -3
- package/dist/src/Callbacks.d.ts +30 -19
- package/dist/src/Callbacks.d.ts.map +1 -1
- package/dist/src/Console.d.ts +145 -66
- package/dist/src/Console.d.ts.map +1 -1
- package/dist/src/Console.js +91 -43
- package/dist/src/Crypto.d.ts +85 -42
- package/dist/src/Crypto.d.ts.map +1 -1
- package/dist/src/Crypto.js +44 -20
- package/dist/src/Eq.d.ts +87 -21
- package/dist/src/Eq.d.ts.map +1 -1
- package/dist/src/Eq.js +67 -19
- package/dist/src/Error.d.ts +5 -3
- package/dist/src/Error.d.ts.map +1 -1
- package/dist/src/Error.js +16 -0
- package/dist/src/Function.d.ts +119 -58
- package/dist/src/Function.d.ts.map +1 -1
- package/dist/src/Function.js +86 -43
- package/dist/src/Http.d.ts +394 -0
- package/dist/src/Http.d.ts.map +1 -0
- package/dist/src/Http.js +102 -0
- package/dist/src/Identicon.d.ts +16 -7
- package/dist/src/Identicon.d.ts.map +1 -1
- package/dist/src/Identicon.js +14 -5
- package/dist/src/LeakDetector.d.ts +88 -0
- package/dist/src/LeakDetector.d.ts.map +1 -0
- package/dist/src/LeakDetector.js +86 -0
- package/dist/src/LockManager.d.ts +18 -9
- package/dist/src/LockManager.d.ts.map +1 -1
- package/dist/src/LockManager.js +7 -8
- package/dist/src/Lookup.d.ts +43 -13
- package/dist/src/Lookup.d.ts.map +1 -1
- package/dist/src/Lookup.js +28 -8
- package/dist/src/Microtask.d.ts +1 -1
- package/dist/src/Microtask.d.ts.map +1 -1
- package/dist/src/Microtask.js +3 -7
- package/dist/src/Number.d.ts +49 -13
- package/dist/src/Number.d.ts.map +1 -1
- package/dist/src/Number.js +34 -5
- package/dist/src/Object.d.ts +160 -40
- package/dist/src/Object.d.ts.map +1 -1
- package/dist/src/Object.js +92 -46
- package/dist/src/Option.d.ts +10 -7
- package/dist/src/Option.d.ts.map +1 -1
- package/dist/src/Option.js +9 -6
- package/dist/src/Order.d.ts +21 -21
- package/dist/src/Order.d.ts.map +1 -1
- package/dist/src/Order.js +18 -21
- package/dist/src/Platform.d.ts +31 -0
- package/dist/src/Platform.d.ts.map +1 -1
- package/dist/src/Platform.js +98 -0
- package/dist/src/Random.d.ts +32 -17
- package/dist/src/Random.d.ts.map +1 -1
- package/dist/src/Random.js +12 -8
- package/dist/src/Redacted.d.ts +43 -29
- package/dist/src/Redacted.d.ts.map +1 -1
- package/dist/src/Redacted.js +14 -3
- package/dist/src/Ref.d.ts +11 -3
- package/dist/src/Ref.d.ts.map +1 -1
- package/dist/src/Ref.js +2 -2
- package/dist/src/RefCount.d.ts +2 -6
- package/dist/src/RefCount.d.ts.map +1 -1
- package/dist/src/RefCount.js +33 -90
- package/dist/src/Relation.d.ts +70 -5
- package/dist/src/Relation.d.ts.map +1 -1
- package/dist/src/Relation.js +77 -2
- package/dist/src/Resource.d.ts +590 -155
- package/dist/src/Resource.d.ts.map +1 -1
- package/dist/src/Resource.js +592 -343
- package/dist/src/Result.d.ts +838 -191
- package/dist/src/Result.d.ts.map +1 -1
- package/dist/src/Result.js +163 -102
- package/dist/src/Schedule.d.ts +684 -231
- package/dist/src/Schedule.d.ts.map +1 -1
- package/dist/src/Schedule.js +766 -295
- package/dist/src/Set.d.ts +89 -40
- package/dist/src/Set.d.ts.map +1 -1
- package/dist/src/Set.js +50 -29
- package/dist/src/Sqlite.d.ts +29 -72
- package/dist/src/Sqlite.d.ts.map +1 -1
- package/dist/src/Sqlite.js +41 -46
- package/dist/src/StackTrace.d.ts +40 -0
- package/dist/src/StackTrace.d.ts.map +1 -0
- package/dist/src/StackTrace.js +140 -0
- package/dist/src/Store.d.ts +5 -4
- package/dist/src/Store.d.ts.map +1 -1
- package/dist/src/Store.js +5 -4
- package/dist/src/String.d.ts +7 -1
- package/dist/src/String.d.ts.map +1 -1
- package/dist/src/String.js +20 -7
- package/dist/src/Task.d.ts +3572 -1770
- package/dist/src/Task.d.ts.map +1 -1
- package/dist/src/Task.js +1879 -1274
- package/dist/src/Test.d.ts +17 -125
- package/dist/src/Test.d.ts.map +1 -1
- package/dist/src/Test.js +17 -68
- package/dist/src/Time.d.ts +108 -49
- package/dist/src/Time.d.ts.map +1 -1
- package/dist/src/Time.js +172 -73
- package/dist/src/Type.d.ts +3542 -1926
- package/dist/src/Type.d.ts.map +1 -1
- package/dist/src/Type.js +3070 -1784
- package/dist/src/Types.d.ts +200 -108
- package/dist/src/Types.d.ts.map +1 -1
- package/dist/src/Types.js +39 -8
- package/dist/src/WebSocket.d.ts +48 -23
- package/dist/src/WebSocket.d.ts.map +1 -1
- package/dist/src/WebSocket.js +15 -6
- package/dist/src/Worker.d.ts +94 -36
- package/dist/src/Worker.d.ts.map +1 -1
- package/dist/src/Worker.js +58 -24
- package/dist/src/index.d.ts +55 -52
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +3 -1
- package/dist/src/intl/cs.d.ts +94 -0
- package/dist/src/intl/cs.d.ts.map +1 -0
- package/dist/src/intl/cs.js +220 -0
- package/dist/src/intl/index.d.ts +7 -0
- package/dist/src/intl/index.d.ts.map +1 -0
- package/dist/src/intl/index.js +6 -0
- package/dist/src/local-first/Db.d.ts +12 -8
- package/dist/src/local-first/Db.d.ts.map +1 -1
- package/dist/src/local-first/Db.js +109 -132
- package/dist/src/local-first/Error.d.ts +4 -4
- package/dist/src/local-first/Evolu.d.ts +338 -92
- package/dist/src/local-first/Evolu.d.ts.map +1 -1
- package/dist/src/local-first/Evolu.js +47 -55
- package/dist/src/local-first/LocalAuth.d.ts +4 -4
- package/dist/src/local-first/LocalAuth.d.ts.map +1 -1
- package/dist/src/local-first/Owner.d.ts +61 -24
- package/dist/src/local-first/Owner.d.ts.map +1 -1
- package/dist/src/local-first/Owner.js +45 -8
- package/dist/src/local-first/Protocol.d.ts +44 -31
- package/dist/src/local-first/Protocol.d.ts.map +1 -1
- package/dist/src/local-first/Protocol.js +36 -13
- package/dist/src/local-first/Query.d.ts +147 -62
- package/dist/src/local-first/Query.d.ts.map +1 -1
- package/dist/src/local-first/Query.js +112 -58
- package/dist/src/local-first/Relay.d.ts +44 -14
- package/dist/src/local-first/Relay.d.ts.map +1 -1
- package/dist/src/local-first/Schema.d.ts +92 -41
- package/dist/src/local-first/Schema.d.ts.map +1 -1
- package/dist/src/local-first/Schema.js +25 -8
- package/dist/src/local-first/Shared.d.ts +23 -21
- package/dist/src/local-first/Shared.d.ts.map +1 -1
- package/dist/src/local-first/Shared.js +100 -57
- package/dist/src/local-first/Storage.d.ts +53 -32
- package/dist/src/local-first/Storage.d.ts.map +1 -1
- package/dist/src/local-first/Storage.js +194 -234
- package/dist/src/local-first/Timestamp.d.ts +21 -21
- package/dist/src/local-first/Timestamp.d.ts.map +1 -1
- package/dist/src/local-first/Timestamp.js +2 -2
- package/dist/src/local-first/index.d.ts +11 -11
- package/package.json +14 -13
- package/src/Array.ts +306 -205
- package/src/Assert.ts +54 -69
- package/src/BigInt.ts +6 -3
- package/src/Brand.ts +27 -40
- package/src/Buffer.ts +28 -12
- package/src/Cache.ts +9 -4
- package/src/Callbacks.ts +30 -19
- package/src/Console.ts +156 -84
- package/src/Crypto.ts +83 -41
- package/src/Eq.ts +95 -22
- package/src/Error.ts +8 -4
- package/src/Function.ts +167 -59
- package/src/Http.ts +549 -0
- package/src/Identicon.ts +16 -7
- package/src/LeakDetector.ts +182 -0
- package/src/LockManager.ts +43 -39
- package/src/Lookup.ts +62 -28
- package/src/Microtask.ts +19 -23
- package/src/Number.ts +64 -12
- package/src/Object.ts +173 -49
- package/src/Option.ts +10 -7
- package/src/Order.ts +23 -21
- package/src/Platform.ts +136 -0
- package/src/Polyfills.ts +6 -12
- package/src/Random.ts +32 -19
- package/src/Redacted.ts +44 -30
- package/src/Ref.ts +14 -6
- package/src/RefCount.ts +38 -80
- package/src/Relation.ts +202 -10
- package/src/Resource.ts +1199 -591
- package/src/Result.ts +930 -271
- package/src/Schedule.ts +859 -343
- package/src/Set.ts +89 -40
- package/src/Sqlite.ts +144 -138
- package/src/StackTrace.ts +230 -0
- package/src/Store.ts +8 -7
- package/src/String.ts +22 -5
- package/src/Task.ts +5101 -2832
- package/src/Test.ts +20 -168
- package/src/Time.ts +293 -90
- package/src/Type.ts +10034 -4117
- package/src/Types.ts +227 -110
- package/src/WebSocket.ts +64 -36
- package/src/Worker.ts +180 -72
- package/src/index.ts +55 -52
- package/src/intl/cs.ts +388 -0
- package/src/intl/index.ts +7 -0
- package/src/local-first/Db.ts +152 -179
- package/src/local-first/Error.ts +4 -4
- package/src/local-first/Evolu.ts +495 -250
- package/src/local-first/LocalAuth.ts +6 -12
- package/src/local-first/Owner.ts +58 -21
- package/src/local-first/Protocol.ts +49 -31
- package/src/local-first/Query.ts +146 -61
- package/src/local-first/Relay.ts +51 -21
- package/src/local-first/Schema.ts +109 -51
- package/src/local-first/Shared.ts +266 -226
- package/src/local-first/Storage.ts +266 -264
- package/src/local-first/Timestamp.ts +25 -18
- package/src/local-first/index.ts +11 -11
- package/dist/src/Skiplist.d.ts +0 -28
- package/dist/src/Skiplist.d.ts.map +0 -1
- package/dist/src/Skiplist.js +0 -64
- package/dist/src/Tracer.d.ts +0 -48
- package/dist/src/Tracer.d.ts.map +0 -1
- package/dist/src/Tracer.js +0 -6
- package/src/Skiplist.ts +0 -108
- package/src/Tracer.ts +0 -54
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Protocol.d.ts","sourceRoot":"","sources":["../../../src/local-first/Protocol.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgKG;AAoBH,OAAO,EAAmB,KAAK,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAE1E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EACL,KAAK,MAAM,EAMZ,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAGL,KAAK,iCAAiC,EACtC,aAAa,EAGb,KAAK,cAAc,EAGpB,MAAM,cAAc,CAAC;AAItB,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"Protocol.d.ts","sourceRoot":"","sources":["../../../src/local-first/Protocol.ts"],"names":[],"mappings":"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"}
|
|
@@ -177,14 +177,15 @@
|
|
|
177
177
|
*/
|
|
178
178
|
import { Packr } from "msgpackr";
|
|
179
179
|
import { isNonEmptyArray } from "../Array.js";
|
|
180
|
-
import { assert } from "../Assert.js";
|
|
180
|
+
import { assert, assertNonNullable } from "../Assert.js";
|
|
181
181
|
import { bytesToHex, bytesToUtf8, createBuffer, hexToBytes, utf8ToBytes, } from "../Buffer.js";
|
|
182
182
|
import { createPadmePadding, decryptWithXChaCha20Poly1305, EncryptionKey, encryptWithXChaCha20Poly1305, Entropy24, XChaCha20Poly1305Ciphertext, xChaCha20Poly1305NonceLength, } from "../Crypto.js";
|
|
183
183
|
import { eqArrayNumber } from "../Eq.js";
|
|
184
184
|
import { computeBalancedBuckets } from "../Number.js";
|
|
185
|
-
import {
|
|
185
|
+
import { createMutableRecord, objectToEntries } from "../Object.js";
|
|
186
186
|
import { err, ok } from "../Result.js";
|
|
187
187
|
import { SqliteValue } from "../Sqlite.js";
|
|
188
|
+
import { AbortError } from "../Task.js";
|
|
188
189
|
import { Millis } from "../Time.js";
|
|
189
190
|
import { Base64Url, base64UrlToUint8Array, between, DateIso, Id, IdBytes, idBytesToId, idBytesTypeValueLength, idToIdBytes, Int, Json, jsonToJsonValue, NonNegativeInt, Number, onePositiveInt, PositiveInt, uint8ArrayToBase64Url, zeroNonNegativeInt, } from "../Type.js";
|
|
190
191
|
import { OwnerId, OwnerIdBytes, ownerIdToOwnerIdBytes, OwnerWriteKey, ownerWriteKeyLength, } from "./Owner.js";
|
|
@@ -609,6 +610,8 @@ export const applyProtocolMessageAsClient = (inputMessage, options = {}) => asyn
|
|
|
609
610
|
return ok({ type: "NoResponse" });
|
|
610
611
|
}
|
|
611
612
|
catch (error) {
|
|
613
|
+
if (AbortError.is(error))
|
|
614
|
+
throw error;
|
|
612
615
|
run.deps.console.error(error);
|
|
613
616
|
return ok({ type: "NoResponse" });
|
|
614
617
|
}
|
|
@@ -642,6 +645,8 @@ export const applyProtocolMessageAsClient = (inputMessage, options = {}) => asyn
|
|
|
642
645
|
return ok({ type: "Response", message: output.unwrap() });
|
|
643
646
|
}
|
|
644
647
|
catch (error) {
|
|
648
|
+
if (AbortError.is(error))
|
|
649
|
+
throw error;
|
|
645
650
|
return err({
|
|
646
651
|
type: "ProtocolInvalidDataError",
|
|
647
652
|
data: inputMessage,
|
|
@@ -719,6 +724,8 @@ version = protocolVersion) => async (run) => {
|
|
|
719
724
|
}
|
|
720
725
|
}
|
|
721
726
|
catch (error) {
|
|
727
|
+
if (AbortError.is(error))
|
|
728
|
+
throw error;
|
|
722
729
|
run.deps.console.error(error);
|
|
723
730
|
const message = createProtocolMessageBuffer(ownerId, {
|
|
724
731
|
messageType: MessageType.Response,
|
|
@@ -779,6 +786,8 @@ version = protocolVersion) => async (run) => {
|
|
|
779
786
|
return ok({ type: "Response", message });
|
|
780
787
|
}
|
|
781
788
|
catch (error) {
|
|
789
|
+
if (AbortError.is(error))
|
|
790
|
+
throw error;
|
|
782
791
|
return err({
|
|
783
792
|
type: "ProtocolInvalidDataError",
|
|
784
793
|
data: inputMessage,
|
|
@@ -1115,14 +1124,14 @@ const decodeTimestamps = (buffer, length) => {
|
|
|
1115
1124
|
const millises = new Array(length);
|
|
1116
1125
|
for (let i = 0; i < length; i++) {
|
|
1117
1126
|
const deltaMillis = decodeNonNegativeInt(buffer);
|
|
1118
|
-
const millis = Millis.
|
|
1127
|
+
const millis = Millis.fromUnknown(previousMillis + deltaMillis);
|
|
1119
1128
|
if (!millis.ok)
|
|
1120
1129
|
throw new ProtocolDecodeError(millis.error.type);
|
|
1121
1130
|
millises[i] = millis.value;
|
|
1122
1131
|
previousMillis = millis.value;
|
|
1123
1132
|
}
|
|
1124
1133
|
const counters = decodeRle(buffer, length, () => {
|
|
1125
|
-
const counter = Counter.
|
|
1134
|
+
const counter = Counter.fromUnknown(decodeNonNegativeInt(buffer));
|
|
1126
1135
|
if (!counter.ok)
|
|
1127
1136
|
throw new ProtocolDecodeError(counter.error.type);
|
|
1128
1137
|
return counter.value;
|
|
@@ -1197,7 +1206,13 @@ export const decodeNumber = (buffer) => {
|
|
|
1197
1206
|
* ### Example
|
|
1198
1207
|
*
|
|
1199
1208
|
* ```ts
|
|
1200
|
-
*
|
|
1209
|
+
* import { createBuffer } from "@evolu/common";
|
|
1210
|
+
* import { encodeFlags } from "@evolu/common/local-first";
|
|
1211
|
+
*
|
|
1212
|
+
* const buffer = createBuffer();
|
|
1213
|
+
* encodeFlags(buffer, [true, false, true]);
|
|
1214
|
+
*
|
|
1215
|
+
* expect(buffer.unwrap()).toEqual(new Uint8Array([0b101]));
|
|
1201
1216
|
* ```
|
|
1202
1217
|
*/
|
|
1203
1218
|
export const encodeFlags = (buffer, flags) => {
|
|
@@ -1215,7 +1230,14 @@ export const encodeFlags = (buffer, flags) => {
|
|
|
1215
1230
|
* ### Example
|
|
1216
1231
|
*
|
|
1217
1232
|
* ```ts
|
|
1218
|
-
*
|
|
1233
|
+
* import { createBuffer, PositiveInt } from "@evolu/common";
|
|
1234
|
+
* import { decodeFlags } from "@evolu/common/local-first";
|
|
1235
|
+
*
|
|
1236
|
+
* const buffer = createBuffer([0b101]);
|
|
1237
|
+
* const flags = decodeFlags(buffer, PositiveInt.orThrow(3));
|
|
1238
|
+
*
|
|
1239
|
+
* expect(flags).toEqual([true, false, true]);
|
|
1240
|
+
* expect(buffer.getLength()).toBe(0);
|
|
1219
1241
|
* ```
|
|
1220
1242
|
*/
|
|
1221
1243
|
export const decodeFlags = (buffer, count) => {
|
|
@@ -1252,6 +1274,7 @@ export const encodeAndEncryptDbChange = (deps) => (message, key) => {
|
|
|
1252
1274
|
const entries = objectToEntries(message.change.values);
|
|
1253
1275
|
encodeLength(buffer, entries);
|
|
1254
1276
|
for (const [column, value] of entries) {
|
|
1277
|
+
assertNonNullable(value);
|
|
1255
1278
|
encodeString(buffer, column);
|
|
1256
1279
|
encodeSqliteValue(buffer, value);
|
|
1257
1280
|
}
|
|
@@ -1293,7 +1316,7 @@ export const decryptAndDecodeDbChange = (message, key) => {
|
|
|
1293
1316
|
const table = decodeString(buffer);
|
|
1294
1317
|
const id = decodeId(buffer);
|
|
1295
1318
|
const length = decodeLength(buffer);
|
|
1296
|
-
const values =
|
|
1319
|
+
const values = createMutableRecord();
|
|
1297
1320
|
for (let i = 0; i < length; i++) {
|
|
1298
1321
|
const column = decodeString(buffer);
|
|
1299
1322
|
const value = decodeSqliteValue(buffer);
|
|
@@ -1356,7 +1379,7 @@ export const decodeNonNegativeInt = (buffer) => {
|
|
|
1356
1379
|
break;
|
|
1357
1380
|
shift += 7n;
|
|
1358
1381
|
}
|
|
1359
|
-
const int = NonNegativeInt.
|
|
1382
|
+
const int = NonNegativeInt.fromUnknown(globalThis.Number(result));
|
|
1360
1383
|
if (!int.ok)
|
|
1361
1384
|
throw new ProtocolDecodeError(int.error.type);
|
|
1362
1385
|
return int.value;
|
|
@@ -1418,7 +1441,7 @@ export const encodeSqliteValue = (buffer, value) => {
|
|
|
1418
1441
|
encodeNonNegativeInt(buffer, ProtocolValueType.EmptyString);
|
|
1419
1442
|
return;
|
|
1420
1443
|
}
|
|
1421
|
-
const dateIso = DateIso.
|
|
1444
|
+
const dateIso = DateIso.from.parent(value);
|
|
1422
1445
|
if (dateIso.ok) {
|
|
1423
1446
|
const time = new Date(dateIso.value).getTime();
|
|
1424
1447
|
if (NonNegativeInt.is(time)) {
|
|
@@ -1431,13 +1454,13 @@ export const encodeSqliteValue = (buffer, value) => {
|
|
|
1431
1454
|
}
|
|
1432
1455
|
return;
|
|
1433
1456
|
}
|
|
1434
|
-
const id = Id.
|
|
1457
|
+
const id = Id.from.parent(value);
|
|
1435
1458
|
if (id.ok) {
|
|
1436
1459
|
encodeNonNegativeInt(buffer, ProtocolValueType.Id);
|
|
1437
1460
|
buffer.extend(idToIdBytes(id.value));
|
|
1438
1461
|
return;
|
|
1439
1462
|
}
|
|
1440
|
-
const json = Json.
|
|
1463
|
+
const json = Json.from.parent(value);
|
|
1441
1464
|
// Only encode as Json if it survives JSON.parse/JSON.stringify round-trip.
|
|
1442
1465
|
// Some valid JSON strings like "-0E0" get normalized to "0" during parsing,
|
|
1443
1466
|
// which would cause data corruption if we don't verify round-trip safety.
|
|
@@ -1448,7 +1471,7 @@ export const encodeSqliteValue = (buffer, value) => {
|
|
|
1448
1471
|
buffer.extend(jsonBytes);
|
|
1449
1472
|
return;
|
|
1450
1473
|
}
|
|
1451
|
-
const base64Url = Base64Url.
|
|
1474
|
+
const base64Url = Base64Url.from.parent(value);
|
|
1452
1475
|
if (base64Url.ok) {
|
|
1453
1476
|
encodeNonNegativeInt(buffer, ProtocolValueType.Base64Url);
|
|
1454
1477
|
const bytes = base64UrlToUint8Array(base64Url.value);
|
|
@@ -1509,7 +1532,7 @@ export const decodeSqliteValue = (buffer) => {
|
|
|
1509
1532
|
const time = type === ProtocolValueType.DateIsoWithNonNegativeTime
|
|
1510
1533
|
? decodeNonNegativeInt(buffer)
|
|
1511
1534
|
: decodeNumber(buffer);
|
|
1512
|
-
const dateIso = DateIso.
|
|
1535
|
+
const dateIso = DateIso.from.parent(new Date(time).toISOString());
|
|
1513
1536
|
if (!dateIso.ok)
|
|
1514
1537
|
throw new ProtocolDecodeError(dateIso.error.type);
|
|
1515
1538
|
return dateIso.value;
|
|
@@ -4,11 +4,10 @@
|
|
|
4
4
|
* @module
|
|
5
5
|
*/
|
|
6
6
|
import type { AliasableExpression, Expression, Simplify as KyselySimplify, RawBuilder, SelectQueryNode } from "kysely";
|
|
7
|
-
import type { Brand } from "../Brand.
|
|
8
|
-
import type { SqliteQueryString } from "../Sqlite.
|
|
9
|
-
import { SqliteValue } from "../Sqlite.
|
|
10
|
-
import type {
|
|
11
|
-
import type { EvoluSchema } from "./Schema.js";
|
|
7
|
+
import type { Brand } from "../Brand.ts";
|
|
8
|
+
import type { SqliteQueryString } from "../Sqlite.ts";
|
|
9
|
+
import { SqliteValue } from "../Sqlite.ts";
|
|
10
|
+
import type { EvoluSchema } from "./Schema.ts";
|
|
12
11
|
export { sql as kyselySql } from "kysely";
|
|
13
12
|
export type { NotNull as KyselyNotNull } from "kysely";
|
|
14
13
|
/**
|
|
@@ -17,9 +16,27 @@ export type { NotNull as KyselyNotNull } from "kysely";
|
|
|
17
16
|
* ### Example
|
|
18
17
|
*
|
|
19
18
|
* ```ts
|
|
19
|
+
* import {
|
|
20
|
+
* createQueryBuilder,
|
|
21
|
+
* id,
|
|
22
|
+
* NonEmptyTrimmedString100,
|
|
23
|
+
* type Query,
|
|
24
|
+
* } from "@evolu/common";
|
|
25
|
+
*
|
|
26
|
+
* const TodoId = id("Todo");
|
|
27
|
+
* type TodoId = typeof TodoId.Output;
|
|
28
|
+
* const Schema = {
|
|
29
|
+
* todo: { id: TodoId, title: NonEmptyTrimmedString100 },
|
|
30
|
+
* };
|
|
20
31
|
* const createQuery = createQueryBuilder(Schema);
|
|
21
32
|
* const allTodos = createQuery((db) => db.selectFrom("todo").selectAll());
|
|
33
|
+
*
|
|
22
34
|
* type AllTodosRow = typeof allTodos.Row;
|
|
35
|
+
* expectTypeOf<typeof allTodos>().toExtend<Query<typeof Schema>>();
|
|
36
|
+
* expectTypeOf<AllTodosRow["id"]>().toEqualTypeOf<TodoId>();
|
|
37
|
+
* expectTypeOf<
|
|
38
|
+
* AllTodosRow["title"]
|
|
39
|
+
* >().toEqualTypeOf<NonEmptyTrimmedString100 | null>();
|
|
23
40
|
* ```
|
|
24
41
|
*/
|
|
25
42
|
export type Query<S extends EvoluSchema = EvoluSchema, R extends Row = Row> = SqliteQueryString & Brand<"Query"> & {
|
|
@@ -31,11 +48,25 @@ export type Query<S extends EvoluSchema = EvoluSchema, R extends Row = Row> = Sq
|
|
|
31
48
|
* ### Example
|
|
32
49
|
*
|
|
33
50
|
* ```ts
|
|
51
|
+
* import {
|
|
52
|
+
* createQueryBuilder,
|
|
53
|
+
* id,
|
|
54
|
+
* type InferRow,
|
|
55
|
+
* NonEmptyTrimmedString100,
|
|
56
|
+
* } from "@evolu/common";
|
|
57
|
+
*
|
|
58
|
+
* const Schema = {
|
|
59
|
+
* todo: { id: id("Todo"), title: NonEmptyTrimmedString100 },
|
|
60
|
+
* };
|
|
34
61
|
* const createQuery = createQueryBuilder(Schema);
|
|
35
62
|
* const allTodos = createQuery((db) =>
|
|
36
63
|
* db.selectFrom("todo").selectAll(),
|
|
37
64
|
* );
|
|
65
|
+
*
|
|
38
66
|
* type AllTodosRow = typeof allTodos.Row;
|
|
67
|
+
* expectTypeOf<AllTodosRow>().toEqualTypeOf<
|
|
68
|
+
* InferRow<typeof allTodos>
|
|
69
|
+
* >();
|
|
39
70
|
* ```
|
|
40
71
|
*/
|
|
41
72
|
Row: R;
|
|
@@ -56,25 +87,42 @@ export interface Row {
|
|
|
56
87
|
* ### Example
|
|
57
88
|
*
|
|
58
89
|
* ```ts
|
|
59
|
-
* import {
|
|
60
|
-
*
|
|
61
|
-
*
|
|
62
|
-
*
|
|
63
|
-
*
|
|
64
|
-
*
|
|
65
|
-
*
|
|
66
|
-
*
|
|
67
|
-
*
|
|
68
|
-
*
|
|
69
|
-
*
|
|
70
|
-
*
|
|
71
|
-
*
|
|
72
|
-
*
|
|
73
|
-
*
|
|
74
|
-
*
|
|
75
|
-
*
|
|
76
|
-
*
|
|
77
|
-
*
|
|
90
|
+
* import {
|
|
91
|
+
* createQueryBuilder,
|
|
92
|
+
* evoluJsonArrayFrom,
|
|
93
|
+
* id,
|
|
94
|
+
* NonEmptyTrimmedString100,
|
|
95
|
+
* } from "@evolu/common";
|
|
96
|
+
*
|
|
97
|
+
* const PersonId = id("Person");
|
|
98
|
+
* const Schema = {
|
|
99
|
+
* person: { id: PersonId },
|
|
100
|
+
* pet: {
|
|
101
|
+
* id: id("Pet"),
|
|
102
|
+
* name: NonEmptyTrimmedString100,
|
|
103
|
+
* personId: PersonId,
|
|
104
|
+
* },
|
|
105
|
+
* };
|
|
106
|
+
* const createQuery = createQueryBuilder(Schema);
|
|
107
|
+
* const people = createQuery((db) =>
|
|
108
|
+
* db
|
|
109
|
+
* .selectFrom("person")
|
|
110
|
+
* .select(["person.id"])
|
|
111
|
+
* .select((eb) => [
|
|
112
|
+
* evoluJsonArrayFrom(
|
|
113
|
+
* eb
|
|
114
|
+
* .selectFrom("pet")
|
|
115
|
+
* .select(["pet.id as petId", "pet.name"])
|
|
116
|
+
* .whereRef("pet.personId", "=", "person.id")
|
|
117
|
+
* .orderBy("pet.name"),
|
|
118
|
+
* ).as("pets"),
|
|
119
|
+
* ]),
|
|
120
|
+
* );
|
|
121
|
+
*
|
|
122
|
+
* expectTypeOf<(typeof people.Row.pets)[number]>().toEqualTypeOf<{
|
|
123
|
+
* petId: typeof Schema.pet.id.Output;
|
|
124
|
+
* name: NonEmptyTrimmedString100 | null;
|
|
125
|
+
* }>();
|
|
78
126
|
* ```
|
|
79
127
|
*/
|
|
80
128
|
export declare const evoluJsonArrayFrom: <O>(expr: SelectQueryBuilderExpression<O>) => RawBuilder<Array<KyselySimplify<O>>>;
|
|
@@ -92,25 +140,44 @@ export declare const evoluJsonArrayFrom: <O>(expr: SelectQueryBuilderExpression<
|
|
|
92
140
|
* ### Example
|
|
93
141
|
*
|
|
94
142
|
* ```ts
|
|
95
|
-
* import {
|
|
96
|
-
*
|
|
97
|
-
*
|
|
98
|
-
*
|
|
99
|
-
*
|
|
100
|
-
*
|
|
101
|
-
*
|
|
102
|
-
*
|
|
103
|
-
*
|
|
104
|
-
*
|
|
105
|
-
*
|
|
106
|
-
*
|
|
107
|
-
*
|
|
108
|
-
*
|
|
109
|
-
*
|
|
110
|
-
*
|
|
111
|
-
*
|
|
112
|
-
*
|
|
113
|
-
*
|
|
143
|
+
* import {
|
|
144
|
+
* createQueryBuilder,
|
|
145
|
+
* evoluJsonObjectFrom,
|
|
146
|
+
* id,
|
|
147
|
+
* NonEmptyTrimmedString100,
|
|
148
|
+
* SqliteBoolean,
|
|
149
|
+
* } from "@evolu/common";
|
|
150
|
+
*
|
|
151
|
+
* const PersonId = id("Person");
|
|
152
|
+
* const Schema = {
|
|
153
|
+
* person: { id: PersonId },
|
|
154
|
+
* pet: {
|
|
155
|
+
* id: id("Pet"),
|
|
156
|
+
* name: NonEmptyTrimmedString100,
|
|
157
|
+
* personId: PersonId,
|
|
158
|
+
* isFavorite: SqliteBoolean,
|
|
159
|
+
* },
|
|
160
|
+
* };
|
|
161
|
+
* const createQuery = createQueryBuilder(Schema);
|
|
162
|
+
* const people = createQuery((db) =>
|
|
163
|
+
* db
|
|
164
|
+
* .selectFrom("person")
|
|
165
|
+
* .select(["person.id"])
|
|
166
|
+
* .select((eb) => [
|
|
167
|
+
* evoluJsonObjectFrom(
|
|
168
|
+
* eb
|
|
169
|
+
* .selectFrom("pet")
|
|
170
|
+
* .select(["pet.id as petId", "pet.name"])
|
|
171
|
+
* .whereRef("pet.personId", "=", "person.id")
|
|
172
|
+
* .where("pet.isFavorite", "=", 1),
|
|
173
|
+
* ).as("favoritePet"),
|
|
174
|
+
* ]),
|
|
175
|
+
* );
|
|
176
|
+
*
|
|
177
|
+
* expectTypeOf<typeof people.Row.favoritePet>().toEqualTypeOf<{
|
|
178
|
+
* petId: typeof Schema.pet.id.Output;
|
|
179
|
+
* name: NonEmptyTrimmedString100 | null;
|
|
180
|
+
* } | null>();
|
|
114
181
|
* ```
|
|
115
182
|
*/
|
|
116
183
|
export declare const evoluJsonObjectFrom: <O>(expr: SelectQueryBuilderExpression<O>) => RawBuilder<KyselySimplify<O> | null>;
|
|
@@ -126,30 +193,48 @@ export declare const evoluJsonObjectFrom: <O>(expr: SelectQueryBuilderExpression
|
|
|
126
193
|
* ### Example
|
|
127
194
|
*
|
|
128
195
|
* ```ts
|
|
129
|
-
* import {
|
|
130
|
-
*
|
|
131
|
-
*
|
|
132
|
-
*
|
|
133
|
-
*
|
|
134
|
-
*
|
|
135
|
-
*
|
|
136
|
-
*
|
|
137
|
-
*
|
|
138
|
-
*
|
|
139
|
-
*
|
|
140
|
-
*
|
|
141
|
-
*
|
|
142
|
-
*
|
|
143
|
-
*
|
|
144
|
-
*
|
|
145
|
-
*
|
|
146
|
-
*
|
|
196
|
+
* import {
|
|
197
|
+
* createQueryBuilder,
|
|
198
|
+
* evoluJsonBuildObject,
|
|
199
|
+
* id,
|
|
200
|
+
* kyselySql,
|
|
201
|
+
* NonEmptyTrimmedString100,
|
|
202
|
+
* } from "@evolu/common";
|
|
203
|
+
*
|
|
204
|
+
* const Schema = {
|
|
205
|
+
* person: {
|
|
206
|
+
* id: id("Person"),
|
|
207
|
+
* firstName: NonEmptyTrimmedString100,
|
|
208
|
+
* lastName: NonEmptyTrimmedString100,
|
|
209
|
+
* },
|
|
210
|
+
* };
|
|
211
|
+
* const createQuery = createQueryBuilder(Schema);
|
|
212
|
+
* const people = createQuery((db) =>
|
|
213
|
+
* db
|
|
214
|
+
* .selectFrom("person")
|
|
215
|
+
* .select("person.id")
|
|
216
|
+
* .select((eb) => [
|
|
217
|
+
* evoluJsonBuildObject({
|
|
218
|
+
* first: eb.ref("firstName"),
|
|
219
|
+
* last: eb.ref("lastName"),
|
|
220
|
+
* full: kyselySql<string>`${eb.ref("firstName")} || ' ' || ${eb.ref(
|
|
221
|
+
* "lastName",
|
|
222
|
+
* )}`,
|
|
223
|
+
* }).as("name"),
|
|
224
|
+
* ]),
|
|
225
|
+
* );
|
|
226
|
+
*
|
|
227
|
+
* expectTypeOf<typeof people.Row.name>().toEqualTypeOf<{
|
|
228
|
+
* first: NonEmptyTrimmedString100 | null;
|
|
229
|
+
* last: NonEmptyTrimmedString100 | null;
|
|
230
|
+
* full: string;
|
|
231
|
+
* }>();
|
|
147
232
|
* ```
|
|
148
233
|
*/
|
|
149
234
|
export declare const evoluJsonBuildObject: <O extends Record<string, Expression<unknown>>>(obj: O) => RawBuilder<KyselySimplify<{ [K in keyof O]: O[K] extends Expression<infer V> ? V : never; }>>;
|
|
150
235
|
export declare const getJsonObjectArgs: (node: SelectQueryNode, table: string) => Array<Expression<unknown> | string>;
|
|
151
236
|
/** Rows returned by a query. */
|
|
152
|
-
export type QueryRows<R extends Row = Row> = ReadonlyArray<Readonly<
|
|
237
|
+
export type QueryRows<R extends Row = Row> = ReadonlyArray<Readonly<KyselySimplify<R>>>;
|
|
153
238
|
export type Queries<S extends EvoluSchema = EvoluSchema, R extends Row = Row> = ReadonlyArray<Query<S, R>>;
|
|
154
239
|
export type QueriesToQueryRows<Q extends Queries> = {
|
|
155
240
|
[P in keyof Q]: Q[P] extends Query<any, infer R> ? QueryRows<R> : never;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Query.d.ts","sourceRoot":"","sources":["../../../src/local-first/Query.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,mBAAmB,EACnB,UAAU,EACV,QAAQ,IAAI,cAAc,EAC1B,UAAU,EACV,eAAe,EAChB,MAAM,QAAQ,CAAC;AAWhB,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAIzC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAiB,WAAW,EAAE,MAAM,cAAc,CAAC;AAE1D,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"Query.d.ts","sourceRoot":"","sources":["../../../src/local-first/Query.ts"],"names":[],"mappings":"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"}
|