@evolu/common 8.5.0 → 8.6.1
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 +170 -97
- package/dist/src/Array.d.ts.map +1 -1
- package/dist/src/Array.js +67 -42
- package/dist/src/Assert.d.ts +233 -30
- package/dist/src/Assert.d.ts.map +1 -1
- package/dist/src/Assert.js +150 -30
- package/dist/src/BigInt.d.ts +3 -3
- package/dist/src/BigInt.js +3 -3
- package/dist/src/Brand.d.ts +7 -7
- package/dist/src/Buffer.d.ts +12 -4
- package/dist/src/Buffer.d.ts.map +1 -1
- package/dist/src/Cache.d.ts +8 -3
- package/dist/src/Cache.d.ts.map +1 -1
- package/dist/src/Cache.js +8 -3
- package/dist/src/Callbacks.d.ts +8 -4
- package/dist/src/Callbacks.d.ts.map +1 -1
- package/dist/src/Console.d.ts +45 -30
- package/dist/src/Console.d.ts.map +1 -1
- package/dist/src/Console.js +32 -21
- package/dist/src/Crypto.d.ts +13 -8
- package/dist/src/Crypto.d.ts.map +1 -1
- package/dist/src/Crypto.js +6 -3
- package/dist/src/Eq.d.ts +107 -58
- package/dist/src/Eq.d.ts.map +1 -1
- package/dist/src/Eq.js +308 -112
- package/dist/src/Function.d.ts +54 -24
- package/dist/src/Function.d.ts.map +1 -1
- package/dist/src/Function.js +34 -17
- package/dist/src/Http.d.ts +52 -19
- package/dist/src/Http.d.ts.map +1 -1
- package/dist/src/Identicon.d.ts +9 -4
- package/dist/src/Identicon.d.ts.map +1 -1
- package/dist/src/Identicon.js +9 -4
- package/dist/src/LockManager.d.ts +12 -10
- package/dist/src/LockManager.d.ts.map +1 -1
- package/dist/src/Lookup.d.ts +4 -2
- package/dist/src/Lookup.d.ts.map +1 -1
- package/dist/src/Lookup.js +4 -2
- package/dist/src/Number.d.ts +28 -24
- package/dist/src/Number.d.ts.map +1 -1
- package/dist/src/Number.js +16 -17
- package/dist/src/Object.d.ts +89 -47
- package/dist/src/Object.d.ts.map +1 -1
- package/dist/src/Object.js +88 -41
- package/dist/src/Option.d.ts +14 -5
- package/dist/src/Option.d.ts.map +1 -1
- package/dist/src/Option.js +14 -5
- package/dist/src/Order.d.ts +12 -12
- package/dist/src/Order.js +12 -12
- package/dist/src/Platform.d.ts +2 -2
- package/dist/src/Random.d.ts +7 -4
- package/dist/src/Random.d.ts.map +1 -1
- package/dist/src/Redacted.d.ts +13 -6
- package/dist/src/Redacted.d.ts.map +1 -1
- package/dist/src/Redacted.js +4 -2
- package/dist/src/Ref.d.ts +4 -4
- package/dist/src/Relation.d.ts +5 -7
- package/dist/src/Relation.d.ts.map +1 -1
- package/dist/src/Resource.d.ts +27 -12
- package/dist/src/Resource.d.ts.map +1 -1
- package/dist/src/Result.d.ts +258 -114
- package/dist/src/Result.d.ts.map +1 -1
- package/dist/src/Result.js +71 -34
- package/dist/src/Schedule.d.ts +233 -116
- package/dist/src/Schedule.d.ts.map +1 -1
- package/dist/src/Schedule.js +204 -110
- package/dist/src/Set.d.ts +43 -24
- package/dist/src/Set.d.ts.map +1 -1
- package/dist/src/Set.js +25 -13
- package/dist/src/Sqlite.d.ts +4 -4
- package/dist/src/Sqlite.d.ts.map +1 -1
- package/dist/src/Sqlite.js +9 -8
- package/dist/src/Task.d.ts +441 -212
- package/dist/src/Task.d.ts.map +1 -1
- package/dist/src/Task.js +238 -115
- package/dist/src/Test.d.ts +10 -4
- package/dist/src/Test.d.ts.map +1 -1
- package/dist/src/Test.js +10 -4
- package/dist/src/Time.d.ts +27 -17
- package/dist/src/Time.d.ts.map +1 -1
- package/dist/src/Time.js +16 -6
- package/dist/src/Type.d.ts +1096 -387
- package/dist/src/Type.d.ts.map +1 -1
- package/dist/src/Type.js +1046 -372
- package/dist/src/Types.d.ts +95 -40
- package/dist/src/Types.d.ts.map +1 -1
- package/dist/src/Types.js +13 -4
- package/dist/src/WebSocket.d.ts +14 -6
- package/dist/src/WebSocket.d.ts.map +1 -1
- package/dist/src/Worker.d.ts +10 -6
- package/dist/src/Worker.d.ts.map +1 -1
- package/dist/src/intl/_en.d.ts +3 -1
- package/dist/src/intl/_en.d.ts.map +1 -1
- package/dist/src/intl/_en.js +17 -3
- package/dist/src/intl/ar.d.ts +3 -1
- package/dist/src/intl/ar.d.ts.map +1 -1
- package/dist/src/intl/ar.js +15 -2
- package/dist/src/intl/bn.d.ts +3 -1
- package/dist/src/intl/bn.d.ts.map +1 -1
- package/dist/src/intl/bn.js +16 -3
- package/dist/src/intl/ca.d.ts +3 -1
- package/dist/src/intl/ca.d.ts.map +1 -1
- package/dist/src/intl/ca.js +16 -3
- package/dist/src/intl/cs.d.ts +3 -1
- package/dist/src/intl/cs.d.ts.map +1 -1
- package/dist/src/intl/cs.js +16 -3
- package/dist/src/intl/da.d.ts +3 -1
- package/dist/src/intl/da.d.ts.map +1 -1
- package/dist/src/intl/da.js +16 -3
- package/dist/src/intl/de.d.ts +3 -1
- package/dist/src/intl/de.d.ts.map +1 -1
- package/dist/src/intl/de.js +16 -3
- package/dist/src/intl/el.d.ts +3 -1
- package/dist/src/intl/el.d.ts.map +1 -1
- package/dist/src/intl/el.js +16 -3
- package/dist/src/intl/es.d.ts +3 -1
- package/dist/src/intl/es.d.ts.map +1 -1
- package/dist/src/intl/es.js +16 -3
- package/dist/src/intl/fa.d.ts +3 -1
- package/dist/src/intl/fa.d.ts.map +1 -1
- package/dist/src/intl/fa.js +16 -3
- package/dist/src/intl/fi.d.ts +3 -1
- package/dist/src/intl/fi.d.ts.map +1 -1
- package/dist/src/intl/fi.js +16 -3
- package/dist/src/intl/fil.d.ts +3 -1
- package/dist/src/intl/fil.d.ts.map +1 -1
- package/dist/src/intl/fil.js +16 -3
- package/dist/src/intl/fr.d.ts +3 -1
- package/dist/src/intl/fr.d.ts.map +1 -1
- package/dist/src/intl/fr.js +16 -3
- package/dist/src/intl/he.d.ts +3 -1
- package/dist/src/intl/he.d.ts.map +1 -1
- package/dist/src/intl/he.js +16 -3
- package/dist/src/intl/hi.d.ts +3 -1
- package/dist/src/intl/hi.d.ts.map +1 -1
- package/dist/src/intl/hi.js +16 -3
- package/dist/src/intl/hr.d.ts +3 -1
- package/dist/src/intl/hr.d.ts.map +1 -1
- package/dist/src/intl/hr.js +16 -3
- package/dist/src/intl/hu.d.ts +2 -1
- package/dist/src/intl/hu.d.ts.map +1 -1
- package/dist/src/intl/hu.js +15 -3
- package/dist/src/intl/id.d.ts +3 -1
- package/dist/src/intl/id.d.ts.map +1 -1
- package/dist/src/intl/id.js +16 -3
- package/dist/src/intl/it.d.ts +3 -1
- package/dist/src/intl/it.d.ts.map +1 -1
- package/dist/src/intl/it.js +16 -3
- package/dist/src/intl/ja.d.ts +3 -1
- package/dist/src/intl/ja.d.ts.map +1 -1
- package/dist/src/intl/ja.js +16 -3
- package/dist/src/intl/ko.d.ts +3 -1
- package/dist/src/intl/ko.d.ts.map +1 -1
- package/dist/src/intl/ko.js +16 -3
- package/dist/src/intl/ml.d.ts +3 -1
- package/dist/src/intl/ml.d.ts.map +1 -1
- package/dist/src/intl/ml.js +16 -3
- package/dist/src/intl/mr.d.ts +3 -1
- package/dist/src/intl/mr.d.ts.map +1 -1
- package/dist/src/intl/mr.js +16 -3
- package/dist/src/intl/ms.d.ts +3 -1
- package/dist/src/intl/ms.d.ts.map +1 -1
- package/dist/src/intl/ms.js +15 -2
- package/dist/src/intl/nb.d.ts +2 -1
- package/dist/src/intl/nb.d.ts.map +1 -1
- package/dist/src/intl/nb.js +14 -2
- package/dist/src/intl/nl.d.ts +3 -1
- package/dist/src/intl/nl.d.ts.map +1 -1
- package/dist/src/intl/nl.js +16 -3
- package/dist/src/intl/pa.d.ts +3 -1
- package/dist/src/intl/pa.d.ts.map +1 -1
- package/dist/src/intl/pa.js +16 -3
- package/dist/src/intl/pl.d.ts +2 -0
- package/dist/src/intl/pl.d.ts.map +1 -1
- package/dist/src/intl/pl.js +15 -2
- package/dist/src/intl/pt-BR.d.ts +3 -1
- package/dist/src/intl/pt-BR.d.ts.map +1 -1
- package/dist/src/intl/pt-BR.js +16 -3
- package/dist/src/intl/pt.d.ts +3 -1
- package/dist/src/intl/pt.d.ts.map +1 -1
- package/dist/src/intl/pt.js +15 -2
- package/dist/src/intl/ro.d.ts +3 -1
- package/dist/src/intl/ro.d.ts.map +1 -1
- package/dist/src/intl/ro.js +16 -3
- package/dist/src/intl/sk.d.ts +3 -1
- package/dist/src/intl/sk.d.ts.map +1 -1
- package/dist/src/intl/sk.js +15 -2
- package/dist/src/intl/sl.d.ts +3 -1
- package/dist/src/intl/sl.d.ts.map +1 -1
- package/dist/src/intl/sl.js +16 -3
- package/dist/src/intl/sv.d.ts +3 -1
- package/dist/src/intl/sv.d.ts.map +1 -1
- package/dist/src/intl/sv.js +16 -3
- package/dist/src/intl/sw.d.ts +1 -0
- package/dist/src/intl/sw.d.ts.map +1 -1
- package/dist/src/intl/sw.js +14 -2
- package/dist/src/intl/ta.d.ts +3 -1
- package/dist/src/intl/ta.d.ts.map +1 -1
- package/dist/src/intl/ta.js +16 -3
- package/dist/src/intl/te.d.ts +3 -1
- package/dist/src/intl/te.d.ts.map +1 -1
- package/dist/src/intl/te.js +16 -3
- package/dist/src/intl/th.d.ts +3 -1
- package/dist/src/intl/th.d.ts.map +1 -1
- package/dist/src/intl/th.js +16 -3
- package/dist/src/intl/tr.d.ts +3 -1
- package/dist/src/intl/tr.d.ts.map +1 -1
- package/dist/src/intl/tr.js +16 -3
- package/dist/src/intl/uk.d.ts +3 -1
- package/dist/src/intl/uk.d.ts.map +1 -1
- package/dist/src/intl/uk.js +16 -3
- package/dist/src/intl/ur.d.ts +3 -1
- package/dist/src/intl/ur.d.ts.map +1 -1
- package/dist/src/intl/ur.js +15 -2
- package/dist/src/intl/vi.d.ts +3 -1
- package/dist/src/intl/vi.d.ts.map +1 -1
- package/dist/src/intl/vi.js +16 -3
- package/dist/src/intl/zh-CN.d.ts +3 -1
- package/dist/src/intl/zh-CN.d.ts.map +1 -1
- package/dist/src/intl/zh-CN.js +16 -3
- package/dist/src/intl/zh-TW.d.ts +3 -1
- package/dist/src/intl/zh-TW.d.ts.map +1 -1
- package/dist/src/intl/zh-TW.js +16 -3
- package/dist/src/local-first/Evolu.d.ts +47 -24
- package/dist/src/local-first/Evolu.d.ts.map +1 -1
- package/dist/src/local-first/Owner.d.ts +10 -7
- package/dist/src/local-first/Owner.d.ts.map +1 -1
- package/dist/src/local-first/Owner.js +10 -7
- package/dist/src/local-first/Protocol.d.ts +5 -5
- package/dist/src/local-first/Protocol.js +7 -7
- package/dist/src/local-first/Query.d.ts +34 -21
- package/dist/src/local-first/Query.d.ts.map +1 -1
- package/dist/src/local-first/Query.js +25 -13
- package/dist/src/local-first/Relay.d.ts +12 -5
- package/dist/src/local-first/Relay.d.ts.map +1 -1
- package/dist/src/local-first/Schema.d.ts +19 -11
- package/dist/src/local-first/Schema.d.ts.map +1 -1
- package/dist/src/local-first/Schema.js +11 -6
- package/dist/src/local-first/Storage.d.ts +4 -2
- package/dist/src/local-first/Storage.d.ts.map +1 -1
- package/package.json +3 -4
- package/src/Array.ts +170 -97
- package/src/Assert.ts +336 -31
- package/src/BigInt.ts +3 -3
- package/src/Brand.ts +7 -7
- package/src/Buffer.ts +12 -4
- package/src/Cache.ts +8 -3
- package/src/Callbacks.ts +8 -4
- package/src/Console.ts +45 -30
- package/src/Crypto.ts +13 -8
- package/src/Eq.ts +450 -122
- package/src/Function.ts +54 -24
- package/src/Http.ts +52 -19
- package/src/Identicon.ts +9 -4
- package/src/LockManager.ts +12 -10
- package/src/Lookup.ts +4 -2
- package/src/Number.ts +28 -24
- package/src/Object.ts +115 -49
- package/src/Option.ts +14 -5
- package/src/Order.ts +12 -12
- package/src/Platform.ts +2 -2
- package/src/Random.ts +7 -4
- package/src/Redacted.ts +13 -6
- package/src/Ref.ts +4 -4
- package/src/Relation.ts +5 -7
- package/src/Resource.ts +27 -12
- package/src/Result.ts +258 -114
- package/src/Schedule.ts +233 -116
- package/src/Set.ts +43 -24
- package/src/Sqlite.ts +9 -8
- package/src/Task.ts +441 -212
- package/src/Test.ts +10 -4
- package/src/Time.ts +27 -17
- package/src/Type.ts +2077 -620
- package/src/Types.ts +108 -40
- package/src/WebSocket.ts +14 -6
- package/src/Worker.ts +10 -6
- package/src/intl/_en.ts +20 -4
- package/src/intl/ar.ts +17 -2
- package/src/intl/bn.ts +19 -4
- package/src/intl/ca.ts +19 -4
- package/src/intl/cs.ts +19 -4
- package/src/intl/da.ts +19 -4
- package/src/intl/de.ts +19 -4
- package/src/intl/el.ts +19 -4
- package/src/intl/es.ts +19 -4
- package/src/intl/fa.ts +19 -4
- package/src/intl/fi.ts +19 -4
- package/src/intl/fil.ts +19 -4
- package/src/intl/fr.ts +19 -4
- package/src/intl/he.ts +19 -4
- package/src/intl/hi.ts +19 -4
- package/src/intl/hr.ts +19 -4
- package/src/intl/hu.ts +18 -4
- package/src/intl/id.ts +19 -4
- package/src/intl/it.ts +19 -4
- package/src/intl/ja.ts +19 -4
- package/src/intl/ko.ts +19 -4
- package/src/intl/ml.ts +19 -4
- package/src/intl/mr.ts +19 -4
- package/src/intl/ms.ts +17 -2
- package/src/intl/nb.ts +16 -2
- package/src/intl/nl.ts +19 -4
- package/src/intl/pa.ts +19 -4
- package/src/intl/pl.ts +18 -2
- package/src/intl/pt-BR.ts +19 -4
- package/src/intl/pt.ts +17 -2
- package/src/intl/ro.ts +19 -4
- package/src/intl/sk.ts +17 -2
- package/src/intl/sl.ts +19 -4
- package/src/intl/sv.ts +19 -4
- package/src/intl/sw.ts +15 -2
- package/src/intl/ta.ts +19 -4
- package/src/intl/te.ts +19 -4
- package/src/intl/th.ts +19 -4
- package/src/intl/tr.ts +19 -4
- package/src/intl/uk.ts +19 -4
- package/src/intl/ur.ts +17 -2
- package/src/intl/vi.ts +19 -3
- package/src/intl/zh-CN.ts +19 -4
- package/src/intl/zh-TW.ts +19 -4
- package/src/local-first/Evolu.ts +47 -24
- package/src/local-first/Owner.ts +10 -7
- package/src/local-first/Protocol.ts +7 -7
- package/src/local-first/Query.ts +34 -21
- package/src/local-first/Relay.ts +12 -5
- package/src/local-first/Schema.ts +19 -11
- package/src/local-first/Storage.ts +4 -2
package/src/Console.ts
CHANGED
|
@@ -49,8 +49,11 @@ import {
|
|
|
49
49
|
*
|
|
50
50
|
* ```ts
|
|
51
51
|
* import {
|
|
52
|
+
* assertEqual,
|
|
53
|
+
* assertType,
|
|
52
54
|
* createConsole,
|
|
53
55
|
* createConsoleArrayOutput,
|
|
56
|
+
* Data,
|
|
54
57
|
* type Console,
|
|
55
58
|
* type ConsoleEntry,
|
|
56
59
|
* type ConsoleLevel,
|
|
@@ -66,12 +69,11 @@ import {
|
|
|
66
69
|
* relay.info("polling");
|
|
67
70
|
* root.info("Creating instance", { config: { port: 4000 } });
|
|
68
71
|
*
|
|
69
|
-
*
|
|
70
|
-
*
|
|
71
|
-
*
|
|
72
|
-
*
|
|
73
|
-
*
|
|
74
|
-
* ]);
|
|
72
|
+
* assertEqual(root.getLevel(), "log");
|
|
73
|
+
* assertEqual(relay.getLevel(), "silent");
|
|
74
|
+
* const args = entries[0]?.args;
|
|
75
|
+
* assertType(Data, args);
|
|
76
|
+
* assertEqual(args, ["Creating instance", { config: { port: 4000 } }]);
|
|
75
77
|
*
|
|
76
78
|
* const setLevelRecursive = (
|
|
77
79
|
* console: Console,
|
|
@@ -81,8 +83,8 @@ import {
|
|
|
81
83
|
* for (const child of console.children) setLevelRecursive(child, level);
|
|
82
84
|
* };
|
|
83
85
|
* setLevelRecursive(root, "warn");
|
|
84
|
-
*
|
|
85
|
-
*
|
|
86
|
+
* assertEqual(root.getLevel(), "warn");
|
|
87
|
+
* assertEqual(relay.getLevel(), "warn");
|
|
86
88
|
* ```
|
|
87
89
|
*
|
|
88
90
|
* Console intentionally does not use {@link Task}. Logging must be as fast as
|
|
@@ -316,8 +318,10 @@ export type ConsoleEntryTimestampFormat =
|
|
|
316
318
|
*
|
|
317
319
|
* ```ts
|
|
318
320
|
* import {
|
|
321
|
+
* assertOk,
|
|
319
322
|
* createConsole,
|
|
320
323
|
* createConsoleStoreOutput,
|
|
324
|
+
* Data,
|
|
321
325
|
* type ConsoleEntry,
|
|
322
326
|
* } from "@evolu/common";
|
|
323
327
|
*
|
|
@@ -331,7 +335,7 @@ export type ConsoleEntryTimestampFormat =
|
|
|
331
335
|
* console.child("relay").info("connected");
|
|
332
336
|
* unsubscribe();
|
|
333
337
|
*
|
|
334
|
-
*
|
|
338
|
+
* assertOk(Data.fromUnknown(forwardedEntry), {
|
|
335
339
|
* method: "info",
|
|
336
340
|
* path: ["relay"],
|
|
337
341
|
* args: ["connected"],
|
|
@@ -454,14 +458,16 @@ export const createConsole = ({
|
|
|
454
458
|
*
|
|
455
459
|
* ```ts
|
|
456
460
|
* import {
|
|
461
|
+
* assertEqual,
|
|
462
|
+
* assertType,
|
|
457
463
|
* createNativeConsoleOutput,
|
|
458
464
|
* type ConsoleOutput,
|
|
459
465
|
* } from "@evolu/common";
|
|
460
466
|
*
|
|
461
467
|
* const output = createNativeConsoleOutput();
|
|
462
468
|
*
|
|
463
|
-
*
|
|
464
|
-
*
|
|
469
|
+
* assertType<ConsoleOutput, typeof output>();
|
|
470
|
+
* assertEqual(typeof output.write, "function");
|
|
465
471
|
* ```
|
|
466
472
|
*/
|
|
467
473
|
export const createNativeConsoleOutput = (): ConsoleOutput => ({
|
|
@@ -485,7 +491,10 @@ export const createNativeConsoleOutput = (): ConsoleOutput => ({
|
|
|
485
491
|
*
|
|
486
492
|
* ```ts
|
|
487
493
|
* import {
|
|
494
|
+
* assertEqual,
|
|
495
|
+
* assertType,
|
|
488
496
|
* createConsoleFormatter,
|
|
497
|
+
* Data,
|
|
489
498
|
* Millis,
|
|
490
499
|
* testCreateTime,
|
|
491
500
|
* type ConsoleEntry,
|
|
@@ -501,18 +510,17 @@ export const createNativeConsoleOutput = (): ConsoleOutput => ({
|
|
|
501
510
|
* args: ["connected"],
|
|
502
511
|
* };
|
|
503
512
|
*
|
|
504
|
-
*
|
|
505
|
-
*
|
|
506
|
-
*
|
|
507
|
-
* ]);
|
|
513
|
+
* const relative = formatRelative(connected);
|
|
514
|
+
* assertType(Data, relative);
|
|
515
|
+
* assertEqual(relative, ["+0.000s [relay]", "connected"]);
|
|
508
516
|
* time.advance("1.5s");
|
|
509
|
-
*
|
|
510
|
-
*
|
|
511
|
-
*
|
|
512
|
-
*
|
|
513
|
-
*
|
|
514
|
-
*
|
|
515
|
-
*
|
|
517
|
+
* const nested = formatRelative({
|
|
518
|
+
* ...connected,
|
|
519
|
+
* path: ["relay", "db"],
|
|
520
|
+
* args: ["opened"],
|
|
521
|
+
* });
|
|
522
|
+
* assertType(Data, nested);
|
|
523
|
+
* assertEqual(nested, ["+1.500s [relay] [db]", "opened"]);
|
|
516
524
|
*
|
|
517
525
|
* const localTimestamp = new globalThis.Date(
|
|
518
526
|
* 2026,
|
|
@@ -526,10 +534,9 @@ export const createNativeConsoleOutput = (): ConsoleOutput => ({
|
|
|
526
534
|
* const formatAbsolute = createConsoleFormatter({
|
|
527
535
|
* time: testCreateTime({ startAt: Millis.orThrow(localTimestamp) }),
|
|
528
536
|
* })({ timestampFormat: "absolute" });
|
|
529
|
-
*
|
|
530
|
-
*
|
|
531
|
-
*
|
|
532
|
-
* ]);
|
|
537
|
+
* const absolute = formatAbsolute(connected);
|
|
538
|
+
* assertType(Data, absolute);
|
|
539
|
+
* assertEqual(absolute, ["14:30:15.123 [relay]", "connected"]);
|
|
533
540
|
* ```
|
|
534
541
|
*/
|
|
535
542
|
export const createConsoleFormatter =
|
|
@@ -585,8 +592,10 @@ export const createConsoleStoreOutput = (): ConsoleStoreOutput => {
|
|
|
585
592
|
*
|
|
586
593
|
* ```ts
|
|
587
594
|
* import {
|
|
595
|
+
* assertOk,
|
|
588
596
|
* createConsole,
|
|
589
597
|
* createConsoleArrayOutput,
|
|
598
|
+
* Data,
|
|
590
599
|
* type ConsoleEntry,
|
|
591
600
|
* } from "@evolu/common";
|
|
592
601
|
*
|
|
@@ -595,7 +604,7 @@ export const createConsoleStoreOutput = (): ConsoleStoreOutput => {
|
|
|
595
604
|
* output: createConsoleArrayOutput(entries),
|
|
596
605
|
* });
|
|
597
606
|
* console.info("connected");
|
|
598
|
-
*
|
|
607
|
+
* assertOk(Data.fromUnknown(entries), [
|
|
599
608
|
* { method: "info", path: [], args: ["connected"] },
|
|
600
609
|
* ]);
|
|
601
610
|
* ```
|
|
@@ -618,10 +627,13 @@ export const createConsoleArrayOutput = (
|
|
|
618
627
|
*
|
|
619
628
|
* ```ts
|
|
620
629
|
* import {
|
|
630
|
+
* assertEqual,
|
|
631
|
+
* assertType,
|
|
621
632
|
* createConsole,
|
|
622
633
|
* createConsoleArrayOutput,
|
|
623
634
|
* createConsoleStoreOutput,
|
|
624
635
|
* createMultiOutput,
|
|
636
|
+
* Data,
|
|
625
637
|
* type ConsoleEntry,
|
|
626
638
|
* } from "@evolu/common";
|
|
627
639
|
*
|
|
@@ -635,7 +647,10 @@ export const createConsoleArrayOutput = (
|
|
|
635
647
|
* });
|
|
636
648
|
* console.error("disconnected");
|
|
637
649
|
*
|
|
638
|
-
*
|
|
650
|
+
* const storedEntry = storeOutput.entry.get();
|
|
651
|
+
* assertType(Data, storedEntry);
|
|
652
|
+
* assertType(Data, entries[0]);
|
|
653
|
+
* assertEqual(storedEntry, entries[0]);
|
|
639
654
|
* ```
|
|
640
655
|
*/
|
|
641
656
|
export const createMultiOutput = (
|
|
@@ -655,13 +670,13 @@ export const createMultiOutput = (
|
|
|
655
670
|
* ### Example
|
|
656
671
|
*
|
|
657
672
|
* ```ts
|
|
658
|
-
* import { testCreateConsole } from "@evolu/common";
|
|
673
|
+
* import { assertOk, Data, testCreateConsole } from "@evolu/common";
|
|
659
674
|
*
|
|
660
675
|
* const console = testCreateConsole({ level: "info" });
|
|
661
676
|
* console.debug("ignored");
|
|
662
677
|
* console.child("relay").info("connected");
|
|
663
678
|
*
|
|
664
|
-
*
|
|
679
|
+
* assertOk(Data.fromUnknown(console.getEntriesSnapshot()), [
|
|
665
680
|
* { method: "info", path: ["relay"], args: ["connected"] },
|
|
666
681
|
* ]);
|
|
667
682
|
* ```
|
package/src/Crypto.ts
CHANGED
|
@@ -47,6 +47,8 @@ export interface RandomBytes {
|
|
|
47
47
|
*
|
|
48
48
|
* ```ts
|
|
49
49
|
* import {
|
|
50
|
+
* assertEqual,
|
|
51
|
+
* assertType,
|
|
50
52
|
* createRandomBytes,
|
|
51
53
|
* type Entropy16,
|
|
52
54
|
* type Entropy24,
|
|
@@ -61,11 +63,11 @@ export interface RandomBytes {
|
|
|
61
63
|
* const seed = randomBytes.create(64);
|
|
62
64
|
* const custom = randomBytes.create(48);
|
|
63
65
|
*
|
|
64
|
-
*
|
|
65
|
-
*
|
|
66
|
-
*
|
|
67
|
-
*
|
|
68
|
-
*
|
|
66
|
+
* assertType<Entropy16, typeof nonce16>();
|
|
67
|
+
* assertType<Entropy24, typeof nonce24>();
|
|
68
|
+
* assertType<Entropy32, typeof key>();
|
|
69
|
+
* assertType<Entropy64, typeof seed>();
|
|
70
|
+
* assertEqual(custom.length, 48);
|
|
69
71
|
* ```
|
|
70
72
|
*/
|
|
71
73
|
create(bytesLength: 16): Entropy16;
|
|
@@ -175,6 +177,8 @@ export type XChaCha20Poly1305Ciphertext =
|
|
|
175
177
|
*
|
|
176
178
|
* ```ts
|
|
177
179
|
* import {
|
|
180
|
+
* assertEqual,
|
|
181
|
+
* assertType,
|
|
178
182
|
* createRandomBytes,
|
|
179
183
|
* EncryptionKey,
|
|
180
184
|
* encryptWithXChaCha20Poly1305,
|
|
@@ -188,8 +192,8 @@ export type XChaCha20Poly1305Ciphertext =
|
|
|
188
192
|
* randomBytes: createRandomBytes(),
|
|
189
193
|
* })(plaintext, encryptionKey);
|
|
190
194
|
*
|
|
191
|
-
*
|
|
192
|
-
*
|
|
195
|
+
* assertType<XChaCha20Poly1305Ciphertext, typeof ciphertext>();
|
|
196
|
+
* assertEqual(nonce.length, 24);
|
|
193
197
|
* ```
|
|
194
198
|
*
|
|
195
199
|
* @see https://github.com/paulmillr/noble-ciphers
|
|
@@ -222,6 +226,7 @@ export interface DecryptWithXChaCha20Poly1305Error extends Typed<"DecryptWithXCh
|
|
|
222
226
|
*
|
|
223
227
|
* ```ts
|
|
224
228
|
* import {
|
|
229
|
+
* assertOk,
|
|
225
230
|
* bytesToUtf8,
|
|
226
231
|
* createRandomBytes,
|
|
227
232
|
* decryptWithXChaCha20Poly1305,
|
|
@@ -247,7 +252,7 @@ export interface DecryptWithXChaCha20Poly1305Error extends Typed<"DecryptWithXCh
|
|
|
247
252
|
* return ok(bytesToUtf8(result.value));
|
|
248
253
|
* };
|
|
249
254
|
*
|
|
250
|
-
*
|
|
255
|
+
* assertOk(decryptMessage(), "secret message");
|
|
251
256
|
* ```
|
|
252
257
|
*/
|
|
253
258
|
export const decryptWithXChaCha20Poly1305 = (
|