@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.
Files changed (237) hide show
  1. package/dist/src/Array.d.ts +279 -173
  2. package/dist/src/Array.d.ts.map +1 -1
  3. package/dist/src/Array.js +105 -101
  4. package/dist/src/Assert.d.ts +44 -44
  5. package/dist/src/Assert.d.ts.map +1 -1
  6. package/dist/src/Assert.js +44 -32
  7. package/dist/src/BigInt.d.ts +6 -3
  8. package/dist/src/BigInt.d.ts.map +1 -1
  9. package/dist/src/BigInt.js +5 -2
  10. package/dist/src/Brand.d.ts +27 -40
  11. package/dist/src/Brand.d.ts.map +1 -1
  12. package/dist/src/Buffer.d.ts +27 -11
  13. package/dist/src/Buffer.d.ts.map +1 -1
  14. package/dist/src/Cache.d.ts +9 -4
  15. package/dist/src/Cache.d.ts.map +1 -1
  16. package/dist/src/Cache.js +8 -3
  17. package/dist/src/Callbacks.d.ts +30 -19
  18. package/dist/src/Callbacks.d.ts.map +1 -1
  19. package/dist/src/Console.d.ts +145 -66
  20. package/dist/src/Console.d.ts.map +1 -1
  21. package/dist/src/Console.js +91 -43
  22. package/dist/src/Crypto.d.ts +85 -42
  23. package/dist/src/Crypto.d.ts.map +1 -1
  24. package/dist/src/Crypto.js +44 -20
  25. package/dist/src/Eq.d.ts +87 -21
  26. package/dist/src/Eq.d.ts.map +1 -1
  27. package/dist/src/Eq.js +67 -19
  28. package/dist/src/Error.d.ts +5 -3
  29. package/dist/src/Error.d.ts.map +1 -1
  30. package/dist/src/Error.js +16 -0
  31. package/dist/src/Function.d.ts +119 -58
  32. package/dist/src/Function.d.ts.map +1 -1
  33. package/dist/src/Function.js +86 -43
  34. package/dist/src/Http.d.ts +394 -0
  35. package/dist/src/Http.d.ts.map +1 -0
  36. package/dist/src/Http.js +102 -0
  37. package/dist/src/Identicon.d.ts +16 -7
  38. package/dist/src/Identicon.d.ts.map +1 -1
  39. package/dist/src/Identicon.js +14 -5
  40. package/dist/src/LeakDetector.d.ts +88 -0
  41. package/dist/src/LeakDetector.d.ts.map +1 -0
  42. package/dist/src/LeakDetector.js +86 -0
  43. package/dist/src/LockManager.d.ts +18 -9
  44. package/dist/src/LockManager.d.ts.map +1 -1
  45. package/dist/src/LockManager.js +7 -8
  46. package/dist/src/Lookup.d.ts +43 -13
  47. package/dist/src/Lookup.d.ts.map +1 -1
  48. package/dist/src/Lookup.js +28 -8
  49. package/dist/src/Microtask.d.ts +1 -1
  50. package/dist/src/Microtask.d.ts.map +1 -1
  51. package/dist/src/Microtask.js +3 -7
  52. package/dist/src/Number.d.ts +49 -13
  53. package/dist/src/Number.d.ts.map +1 -1
  54. package/dist/src/Number.js +34 -5
  55. package/dist/src/Object.d.ts +160 -40
  56. package/dist/src/Object.d.ts.map +1 -1
  57. package/dist/src/Object.js +92 -46
  58. package/dist/src/Option.d.ts +10 -7
  59. package/dist/src/Option.d.ts.map +1 -1
  60. package/dist/src/Option.js +9 -6
  61. package/dist/src/Order.d.ts +21 -21
  62. package/dist/src/Order.d.ts.map +1 -1
  63. package/dist/src/Order.js +18 -21
  64. package/dist/src/Platform.d.ts +31 -0
  65. package/dist/src/Platform.d.ts.map +1 -1
  66. package/dist/src/Platform.js +98 -0
  67. package/dist/src/Random.d.ts +32 -17
  68. package/dist/src/Random.d.ts.map +1 -1
  69. package/dist/src/Random.js +12 -8
  70. package/dist/src/Redacted.d.ts +43 -29
  71. package/dist/src/Redacted.d.ts.map +1 -1
  72. package/dist/src/Redacted.js +14 -3
  73. package/dist/src/Ref.d.ts +11 -3
  74. package/dist/src/Ref.d.ts.map +1 -1
  75. package/dist/src/Ref.js +2 -2
  76. package/dist/src/RefCount.d.ts +2 -6
  77. package/dist/src/RefCount.d.ts.map +1 -1
  78. package/dist/src/RefCount.js +33 -90
  79. package/dist/src/Relation.d.ts +70 -5
  80. package/dist/src/Relation.d.ts.map +1 -1
  81. package/dist/src/Relation.js +77 -2
  82. package/dist/src/Resource.d.ts +590 -155
  83. package/dist/src/Resource.d.ts.map +1 -1
  84. package/dist/src/Resource.js +592 -343
  85. package/dist/src/Result.d.ts +838 -191
  86. package/dist/src/Result.d.ts.map +1 -1
  87. package/dist/src/Result.js +163 -102
  88. package/dist/src/Schedule.d.ts +684 -231
  89. package/dist/src/Schedule.d.ts.map +1 -1
  90. package/dist/src/Schedule.js +766 -295
  91. package/dist/src/Set.d.ts +89 -40
  92. package/dist/src/Set.d.ts.map +1 -1
  93. package/dist/src/Set.js +50 -29
  94. package/dist/src/Sqlite.d.ts +29 -72
  95. package/dist/src/Sqlite.d.ts.map +1 -1
  96. package/dist/src/Sqlite.js +41 -46
  97. package/dist/src/StackTrace.d.ts +40 -0
  98. package/dist/src/StackTrace.d.ts.map +1 -0
  99. package/dist/src/StackTrace.js +140 -0
  100. package/dist/src/Store.d.ts +5 -4
  101. package/dist/src/Store.d.ts.map +1 -1
  102. package/dist/src/Store.js +5 -4
  103. package/dist/src/String.d.ts +7 -1
  104. package/dist/src/String.d.ts.map +1 -1
  105. package/dist/src/String.js +20 -7
  106. package/dist/src/Task.d.ts +3572 -1770
  107. package/dist/src/Task.d.ts.map +1 -1
  108. package/dist/src/Task.js +1879 -1274
  109. package/dist/src/Test.d.ts +17 -125
  110. package/dist/src/Test.d.ts.map +1 -1
  111. package/dist/src/Test.js +17 -68
  112. package/dist/src/Time.d.ts +108 -49
  113. package/dist/src/Time.d.ts.map +1 -1
  114. package/dist/src/Time.js +172 -73
  115. package/dist/src/Type.d.ts +3542 -1926
  116. package/dist/src/Type.d.ts.map +1 -1
  117. package/dist/src/Type.js +3070 -1784
  118. package/dist/src/Types.d.ts +200 -108
  119. package/dist/src/Types.d.ts.map +1 -1
  120. package/dist/src/Types.js +39 -8
  121. package/dist/src/WebSocket.d.ts +48 -23
  122. package/dist/src/WebSocket.d.ts.map +1 -1
  123. package/dist/src/WebSocket.js +15 -6
  124. package/dist/src/Worker.d.ts +94 -36
  125. package/dist/src/Worker.d.ts.map +1 -1
  126. package/dist/src/Worker.js +58 -24
  127. package/dist/src/index.d.ts +55 -52
  128. package/dist/src/index.d.ts.map +1 -1
  129. package/dist/src/index.js +3 -1
  130. package/dist/src/intl/cs.d.ts +94 -0
  131. package/dist/src/intl/cs.d.ts.map +1 -0
  132. package/dist/src/intl/cs.js +220 -0
  133. package/dist/src/intl/index.d.ts +7 -0
  134. package/dist/src/intl/index.d.ts.map +1 -0
  135. package/dist/src/intl/index.js +6 -0
  136. package/dist/src/local-first/Db.d.ts +12 -8
  137. package/dist/src/local-first/Db.d.ts.map +1 -1
  138. package/dist/src/local-first/Db.js +109 -132
  139. package/dist/src/local-first/Error.d.ts +4 -4
  140. package/dist/src/local-first/Evolu.d.ts +338 -92
  141. package/dist/src/local-first/Evolu.d.ts.map +1 -1
  142. package/dist/src/local-first/Evolu.js +47 -55
  143. package/dist/src/local-first/LocalAuth.d.ts +4 -4
  144. package/dist/src/local-first/LocalAuth.d.ts.map +1 -1
  145. package/dist/src/local-first/Owner.d.ts +61 -24
  146. package/dist/src/local-first/Owner.d.ts.map +1 -1
  147. package/dist/src/local-first/Owner.js +45 -8
  148. package/dist/src/local-first/Protocol.d.ts +44 -31
  149. package/dist/src/local-first/Protocol.d.ts.map +1 -1
  150. package/dist/src/local-first/Protocol.js +36 -13
  151. package/dist/src/local-first/Query.d.ts +147 -62
  152. package/dist/src/local-first/Query.d.ts.map +1 -1
  153. package/dist/src/local-first/Query.js +112 -58
  154. package/dist/src/local-first/Relay.d.ts +44 -14
  155. package/dist/src/local-first/Relay.d.ts.map +1 -1
  156. package/dist/src/local-first/Schema.d.ts +92 -41
  157. package/dist/src/local-first/Schema.d.ts.map +1 -1
  158. package/dist/src/local-first/Schema.js +25 -8
  159. package/dist/src/local-first/Shared.d.ts +23 -21
  160. package/dist/src/local-first/Shared.d.ts.map +1 -1
  161. package/dist/src/local-first/Shared.js +100 -57
  162. package/dist/src/local-first/Storage.d.ts +53 -32
  163. package/dist/src/local-first/Storage.d.ts.map +1 -1
  164. package/dist/src/local-first/Storage.js +194 -234
  165. package/dist/src/local-first/Timestamp.d.ts +21 -21
  166. package/dist/src/local-first/Timestamp.d.ts.map +1 -1
  167. package/dist/src/local-first/Timestamp.js +2 -2
  168. package/dist/src/local-first/index.d.ts +11 -11
  169. package/package.json +14 -13
  170. package/src/Array.ts +306 -205
  171. package/src/Assert.ts +54 -69
  172. package/src/BigInt.ts +6 -3
  173. package/src/Brand.ts +27 -40
  174. package/src/Buffer.ts +28 -12
  175. package/src/Cache.ts +9 -4
  176. package/src/Callbacks.ts +30 -19
  177. package/src/Console.ts +156 -84
  178. package/src/Crypto.ts +83 -41
  179. package/src/Eq.ts +95 -22
  180. package/src/Error.ts +8 -4
  181. package/src/Function.ts +167 -59
  182. package/src/Http.ts +549 -0
  183. package/src/Identicon.ts +16 -7
  184. package/src/LeakDetector.ts +182 -0
  185. package/src/LockManager.ts +43 -39
  186. package/src/Lookup.ts +62 -28
  187. package/src/Microtask.ts +19 -23
  188. package/src/Number.ts +64 -12
  189. package/src/Object.ts +173 -49
  190. package/src/Option.ts +10 -7
  191. package/src/Order.ts +23 -21
  192. package/src/Platform.ts +136 -0
  193. package/src/Polyfills.ts +6 -12
  194. package/src/Random.ts +32 -19
  195. package/src/Redacted.ts +44 -30
  196. package/src/Ref.ts +14 -6
  197. package/src/RefCount.ts +38 -80
  198. package/src/Relation.ts +202 -10
  199. package/src/Resource.ts +1199 -591
  200. package/src/Result.ts +930 -271
  201. package/src/Schedule.ts +859 -343
  202. package/src/Set.ts +89 -40
  203. package/src/Sqlite.ts +144 -138
  204. package/src/StackTrace.ts +230 -0
  205. package/src/Store.ts +8 -7
  206. package/src/String.ts +22 -5
  207. package/src/Task.ts +5101 -2832
  208. package/src/Test.ts +20 -168
  209. package/src/Time.ts +293 -90
  210. package/src/Type.ts +10034 -4117
  211. package/src/Types.ts +227 -110
  212. package/src/WebSocket.ts +64 -36
  213. package/src/Worker.ts +180 -72
  214. package/src/index.ts +55 -52
  215. package/src/intl/cs.ts +388 -0
  216. package/src/intl/index.ts +7 -0
  217. package/src/local-first/Db.ts +152 -179
  218. package/src/local-first/Error.ts +4 -4
  219. package/src/local-first/Evolu.ts +495 -250
  220. package/src/local-first/LocalAuth.ts +6 -12
  221. package/src/local-first/Owner.ts +58 -21
  222. package/src/local-first/Protocol.ts +49 -31
  223. package/src/local-first/Query.ts +146 -61
  224. package/src/local-first/Relay.ts +51 -21
  225. package/src/local-first/Schema.ts +109 -51
  226. package/src/local-first/Shared.ts +266 -226
  227. package/src/local-first/Storage.ts +266 -264
  228. package/src/local-first/Timestamp.ts +25 -18
  229. package/src/local-first/index.ts +11 -11
  230. package/dist/src/Skiplist.d.ts +0 -28
  231. package/dist/src/Skiplist.d.ts.map +0 -1
  232. package/dist/src/Skiplist.js +0 -64
  233. package/dist/src/Tracer.d.ts +0 -48
  234. package/dist/src/Tracer.d.ts.map +0 -1
  235. package/dist/src/Tracer.js +0 -6
  236. package/src/Skiplist.ts +0 -108
  237. package/src/Tracer.ts +0 -54
@@ -14,57 +14,42 @@
14
14
  * Avoid primitive types in domain code—brand everything. Evolu Type provides
15
15
  * many brand helpers.
16
16
  *
17
- * ### Single Brand
17
+ * ### Single brand
18
18
  *
19
19
  * ```ts
20
- * // A branded type definition
21
- * type UserId = number & Brand<"UserId">;
22
- *
23
- * // A function that creates `UserId` values.
24
- * // Casting with `as UserId` is unsafe, so `createUserId` must be unit-tested.
25
- * const createUserId = (): UserId => {
26
- * return 123 as UserId; // Unsafe casting
27
- * };
20
+ * import type { Brand } from "@evolu/common";
28
21
  *
29
- * const userId = createUserId();
30
- *
31
- * // A function that accepts only `UserId`.
32
- * const getUser = (id: UserId) => {
33
- * // Implementation
34
- * };
22
+ * type UserId = number & Brand<"UserId">;
35
23
  *
36
- * getUser(userId); // Valid
37
- * getUser(123); // TypeScript error
38
- * getUser("123"); // TypeScript error
24
+ * // Branding does not validate at runtime, so isolate the cast in a trusted
25
+ * // factory.
26
+ * const createUserId = (value: number): UserId => value as UserId;
27
+ * const getUser = (id: UserId): number => id;
28
+ * const userId = createUserId(123);
29
+ * expect(getUser(userId)).toBe(123);
30
+ * // @ts-expect-error A plain number is not a UserId.
31
+ * getUser(123);
39
32
  * ```
40
33
  *
41
- * ### Multiple Brands (to act like flags)
34
+ * ### Multiple brands
42
35
  *
43
36
  * ```ts
44
- * // Define branded types
37
+ * import type { Brand } from "@evolu/common";
38
+ *
45
39
  * type Min1 = string & Brand<"Min1">;
46
40
  * type Max100 = string & Brand<"Max100">;
47
41
  * type Min1Max100 = string & Brand<"Min1" | "Max100">;
48
42
  *
49
- * // Functions requiring specific brands
50
- * const requiresMin1 = (value: Min1): void => {};
51
- * const requiresMax100 = (value: Max100): void => {};
52
- *
53
- * // Values with single brands
54
- * const min1Value: Min1 = "hello" as Min1;
55
- * const max100Value: Max100 = "world" as Max100;
43
+ * const requiresMin1 = (value: Min1): string => value;
44
+ * const requiresMax100 = (value: Max100): string => value;
56
45
  *
57
- * // Value with multiple brands
58
46
  * const min1Max100Value: Min1Max100 = "typescript" as Min1Max100;
59
47
  *
60
- * // Valid cases
61
- * requiresMin1(min1Value); // Valid
62
- * requiresMax100(max100Value); // Valid
63
- * requiresMin1(min1Max100Value); // Valid: Min1Max100 satisfies Min1
64
- * requiresMax100(min1Max100Value); // Valid: Min1Max100 satisfies Max100
48
+ * expect(requiresMin1(min1Max100Value)).toBe("typescript");
49
+ * expect(requiresMax100(min1Max100Value)).toBe("typescript");
65
50
  * ```
66
51
  *
67
- * ### Standalone Brand
52
+ * ### Standalone brand
68
53
  *
69
54
  * Brand can be used alone without a base type for purely nominal typing. This
70
55
  * is useful for opaque values where the internal structure is hidden and type
@@ -73,15 +58,17 @@
73
58
  * code platform-agnostic.
74
59
  *
75
60
  * ```ts
76
- * // A nominal type with no underlying structure exposed
61
+ * import type { Brand } from "@evolu/common";
62
+ *
77
63
  * type NativePort = Brand<"NativePort">;
78
64
  *
79
- * // Only values explicitly cast to NativePort are accepted
80
- * const requiresNativePort = (port: NativePort): void => {};
65
+ * const requiresNativePort = (port: NativePort): NativePort => port;
81
66
  *
82
- * const port: NativePort = nativeValue as NativePort;
83
- * requiresNativePort(port); // Valid
84
- * requiresNativePort(nativeValue); // TypeScript error
67
+ * const nativeValue: unknown = { id: 1 };
68
+ * const port = nativeValue as NativePort;
69
+ * expect(requiresNativePort(port)).toBe(nativeValue);
70
+ * // @ts-expect-error An unknown value is not a NativePort.
71
+ * requiresNativePort(nativeValue);
85
72
  * ```
86
73
  */
87
74
  export interface Brand<B extends string> {
@@ -1 +1 @@
1
- {"version":3,"file":"Brand.d.ts","sourceRoot":"","sources":["../../src/Brand.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgFG;AACH,MAAM,WAAW,KAAK,CAAC,CAAC,SAAS,MAAM;IACrC,QAAQ,CAAC,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;CAC/C;AAED,OAAO,CAAC,MAAM,OAAO,EAAE,OAAO,MAAM,CAAC;AAErC;;;;;;;;;GASG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC"}
1
+ {"version":3,"file":"Brand.d.ts","sourceRoot":"","sources":["../../src/Brand.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmEG;AACH,MAAM,WAAW,KAAK,CAAC,CAAC,SAAS,MAAM;IACrC,QAAQ,CAAC,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;CAC/C;AAED,OAAO,CAAC,MAAM,OAAO,EAAE,OAAO,MAAM,CAAC;AAErC;;;;;;;;;GASG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC"}
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * @module
5
5
  */
6
- import { NonNegativeInt } from "./Type.js";
6
+ import { NonNegativeInt } from "./Type.ts";
7
7
  export { bytesToHex, bytesToUtf8, concatBytes, hexToBytes, utf8ToBytes, } from "@noble/ciphers/utils.js";
8
8
  /**
9
9
  * Custom error for {@link Buffer}-related failures like premature end of data.
@@ -36,18 +36,34 @@ export declare class BufferError extends Error {
36
36
  * ### Example
37
37
  *
38
38
  * ```ts
39
+ * import {
40
+ * createBuffer,
41
+ * createIdFromString,
42
+ * IdBytes,
43
+ * idBytesToId,
44
+ * idBytesTypeValueLength,
45
+ * idToIdBytes,
46
+ * NonNegativeInt,
47
+ * } from "@evolu/common";
48
+ * import {
49
+ * decodeNonNegativeInt,
50
+ * encodeNonNegativeInt,
51
+ * } from "@evolu/common/local-first";
52
+ *
39
53
  * const buffer = createBuffer();
40
- * encodeNonNegativeInt(buffer, someInt);
41
- * encodeId(buffer, someId);
42
- * const result = buffer.unwrap(); // Final serialized data
54
+ * const id = createIdFromString("buffer-example");
55
+ * encodeNonNegativeInt(buffer, NonNegativeInt.orThrow(300));
56
+ * buffer.extend(idToIdBytes(id));
43
57
  *
44
- * // Decoding example (throws on error)
45
- * try {
46
- * const num = decodeNonNegativeInt(buffer);
47
- * const id = decodeId(buffer);
48
- * } catch (e) {
49
- * console.error(e.stack); // Stack trace for debugging
50
- * }
58
+ * const decoder = createBuffer(buffer.unwrap());
59
+ * expect(decodeNonNegativeInt(decoder)).toBe(300);
60
+ * const decodedId = idBytesToId(
61
+ * IdBytes.orThrow(decoder.shiftN(idBytesTypeValueLength)),
62
+ * );
63
+ * expect(decodedId).toBe(id);
64
+ * expect(() => decodeNonNegativeInt(decoder)).toThrow(
65
+ * "Buffer parse ended prematurely",
66
+ * );
51
67
  * ```
52
68
  *
53
69
  * For more on exponential growth, see:
@@ -1 +1 @@
1
- {"version":3,"file":"Buffer.d.ts","sourceRoot":"","sources":["../../src/Buffer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,cAAc,EAAsB,MAAM,WAAW,CAAC;AAC/D,OAAO,EACL,UAAU,EACV,WAAW,EACX,WAAW,EACX,UAAU,EACV,WAAW,GACZ,MAAM,yBAAyB,CAAC;AAEjC;;;GAGG;AACH,qBAAa,WAAY,SAAQ,KAAK;gBACxB,OAAO,EAAE,MAAM;CAM5B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,MAAM,WAAW,MAAM;IACrB,kDAAkD;IAClD,WAAW,EAAE,MAAM,cAAc,CAAC;IAElC,gEAAgE;IAChE,SAAS,EAAE,MAAM,cAAc,CAAC;IAEhC;;;OAGG;IACH,MAAM,EAAE,CAAC,GAAG,EAAE,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;IAEtD;;;OAGG;IACH,KAAK,EAAE,MAAM,cAAc,CAAC;IAE5B;;;OAGG;IACH,MAAM,EAAE,CAAC,CAAC,EAAE,cAAc,KAAK,UAAU,CAAC;IAE1C;;;OAGG;IACH,QAAQ,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,CAAC;IAE3C;;;;;;OAMG;IACH,KAAK,EAAE,MAAM,IAAI,CAAC;IAElB;;;;OAIG;IACH,MAAM,EAAE,MAAM,UAAU,CAAC;CAC1B;AAED,8DAA8D;AAC9D,eAAO,MAAM,YAAY,GACvB,YAAY,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC,KACzC,MA4DF,CAAC"}
1
+ {"version":3,"file":"Buffer.d.ts","sourceRoot":"","sources":["../../src/Buffer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,cAAc,EAAsB,MAAM,WAAW,CAAC;AAC/D,OAAO,EACL,UAAU,EACV,WAAW,EACX,WAAW,EACX,UAAU,EACV,WAAW,GACZ,MAAM,yBAAyB,CAAC;AAEjC;;;GAGG;AACH,qBAAa,WAAY,SAAQ,KAAK;IACpC,YAAY,OAAO,EAAE,MAAM,EAK1B;CACF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwDG;AACH,MAAM,WAAW,MAAM;IACrB,kDAAkD;IAClD,WAAW,EAAE,MAAM,cAAc,CAAC;IAElC,gEAAgE;IAChE,SAAS,EAAE,MAAM,cAAc,CAAC;IAEhC;;;OAGG;IACH,MAAM,EAAE,CAAC,GAAG,EAAE,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;IAEtD;;;OAGG;IACH,KAAK,EAAE,MAAM,cAAc,CAAC;IAE5B;;;OAGG;IACH,MAAM,EAAE,CAAC,CAAC,EAAE,cAAc,KAAK,UAAU,CAAC;IAE1C;;;OAGG;IACH,QAAQ,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,CAAC;IAE3C;;;;;;OAMG;IACH,KAAK,EAAE,MAAM,IAAI,CAAC;IAElB;;;;OAIG;IACH,MAAM,EAAE,MAAM,UAAU,CAAC;CAC1B;AAED,8DAA8D;AAC9D,eAAO,MAAM,YAAY,eACX,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC,KACzC,MA4DF,CAAC"}
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * @module
5
5
  */
6
- import { PositiveInt } from "./Type.js";
6
+ import { PositiveInt } from "./Type.ts";
7
7
  /**
8
8
  * Generic cache interface providing basic key-value storage operations.
9
9
  *
@@ -36,11 +36,16 @@ export interface Cache<K, V> {
36
36
  * ### Example
37
37
  *
38
38
  * ```ts
39
- * const cache = createLruCache<string, number>(2);
39
+ * import { createLruCache, PositiveInt } from "@evolu/common";
40
+ *
41
+ * const cache = createLruCache<string, number>(PositiveInt.orThrow(2));
40
42
  * cache.set("a", 1);
41
43
  * cache.set("b", 2);
42
- * cache.set("c", 3); // Evicts "a"
43
- * cache.has("a"); // false
44
+ * // Reading "a" makes "b" the least recently used entry.
45
+ * expect(cache.get("a")).toBe(1);
46
+ * cache.set("c", 3);
47
+ *
48
+ * expect(cache.has("b")).toBe(false);
44
49
  * ```
45
50
  */
46
51
  export declare const createLruCache: <K, V>(capacity: PositiveInt) => Cache<K, V>;
@@ -1 +1 @@
1
- {"version":3,"file":"Cache.d.ts","sourceRoot":"","sources":["../../src/Cache.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC;;;;;;;;;;GAUG;AACH,MAAM,WAAW,KAAK,CAAC,CAAC,EAAE,CAAC;IACzB,2CAA2C;IAC3C,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,OAAO,CAAC;IAEzB,kEAAkE;IAClE,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;IAE/B,4CAA4C;IAC5C,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC;IAE9B,oCAAoC;IACpC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC;IAEzB,mDAAmD;IACnD,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;CACjC;AAED;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,cAAc,GAAI,CAAC,EAAE,CAAC,EAAE,UAAU,WAAW,KAAG,KAAK,CAAC,CAAC,EAAE,CAAC,CAmCtE,CAAC"}
1
+ {"version":3,"file":"Cache.d.ts","sourceRoot":"","sources":["../../src/Cache.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC;;;;;;;;;;GAUG;AACH,MAAM,WAAW,KAAK,CAAC,CAAC,EAAE,CAAC;IACzB,2CAA2C;IAC3C,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,OAAO,CAAC;IAEzB,kEAAkE;IAClE,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;IAE/B,4CAA4C;IAC5C,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC;IAE9B,oCAAoC;IACpC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC;IAEzB,mDAAmD;IACnD,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;CACjC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,cAAc,GAAI,CAAC,EAAE,CAAC,YAAY,WAAW,KAAG,KAAK,CAAC,CAAC,EAAE,CAAC,CAmCtE,CAAC"}
package/dist/src/Cache.js CHANGED
@@ -13,11 +13,16 @@ import { PositiveInt } from "./Type.js";
13
13
  * ### Example
14
14
  *
15
15
  * ```ts
16
- * const cache = createLruCache<string, number>(2);
16
+ * import { createLruCache, PositiveInt } from "@evolu/common";
17
+ *
18
+ * const cache = createLruCache<string, number>(PositiveInt.orThrow(2));
17
19
  * cache.set("a", 1);
18
20
  * cache.set("b", 2);
19
- * cache.set("c", 3); // Evicts "a"
20
- * cache.has("a"); // false
21
+ * // Reading "a" makes "b" the least recently used entry.
22
+ * expect(cache.get("a")).toBe(1);
23
+ * cache.set("c", 3);
24
+ *
25
+ * expect(cache.has("b")).toBe(false);
21
26
  * ```
22
27
  */
23
28
  export const createLruCache = (capacity) => {
@@ -3,9 +3,9 @@
3
3
  *
4
4
  * @module
5
5
  */
6
- import type { RandomBytesDep } from "./Crypto.js";
7
- import { Id } from "./Type.js";
8
- import type { Callback } from "./Types.js";
6
+ import type { RandomBytesDep } from "./Crypto.ts";
7
+ import { Id } from "./Type.ts";
8
+ import type { Callback } from "./Types.ts";
9
9
  /**
10
10
  * Request-response correlation for callbacks across boundaries.
11
11
  *
@@ -19,27 +19,38 @@ import type { Callback } from "./Types.js";
19
19
  * The `execute` method intentionally does not use try-catch or {@link Result}
20
20
  * because it's the callback's responsibility to handle its own errors.
21
21
  *
22
- * ### Example
22
+ * ### Correlating callback responses
23
23
  *
24
24
  * ```ts
25
- * // No-argument callbacks
26
- * const callbacks = createCallbacks(deps);
27
- * const id = callbacks.register(() => console.log("called"));
28
- * callbacks.execute(id);
29
- *
30
- * // With argument callbacks
31
- * const stringCallbacks = createCallbacks<string>(deps);
32
- * const id = stringCallbacks.register((value) => {
33
- * console.log(value);
25
+ * import { createCallbacks, testCreateDeps } from "@evolu/common";
26
+ *
27
+ * const deps = testCreateDeps();
28
+ *
29
+ * // No-argument callback
30
+ * using callbacks = createCallbacks(deps);
31
+ * let noArgumentCalls = 0;
32
+ * const noArgumentId = callbacks.register(() => {
33
+ * noArgumentCalls++;
34
+ * });
35
+ * callbacks.execute(noArgumentId);
36
+ * callbacks.execute(noArgumentId);
37
+ * expect(noArgumentCalls).toBe(1);
38
+ *
39
+ * // Typed callback
40
+ * using stringCallbacks = createCallbacks<string>(deps);
41
+ * let received = "";
42
+ * const stringCallbackId = stringCallbacks.register((value) => {
43
+ * received = value;
34
44
  * });
35
- * stringCallbacks.execute(id, "hello");
45
+ * stringCallbacks.execute(stringCallbackId, "hello");
46
+ * expect(received).toBe("hello");
36
47
  *
37
- * // Promise.withResolvers pattern
38
- * const promiseCallbacks = createCallbacks<string>(deps);
48
+ * // Promise.withResolvers
49
+ * using promiseCallbacks = createCallbacks<string>(deps);
39
50
  * const { promise, resolve } = Promise.withResolvers<string>();
40
- * const id = promiseCallbacks.register(resolve);
41
- * promiseCallbacks.execute(id, "resolved value");
42
- * await promise; // "resolved value"
51
+ * const promiseCallbackId = promiseCallbacks.register(resolve);
52
+ * promiseCallbacks.execute(promiseCallbackId, "resolved value");
53
+ * expect(await promise).toBe("resolved value");
43
54
  * ```
44
55
  *
45
56
  * @template T - The type of argument passed to callbacks (defaults to undefined
@@ -1 +1 @@
1
- {"version":3,"file":"Callbacks.d.ts","sourceRoot":"","sources":["../../src/Callbacks.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,OAAO,EAAY,EAAE,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,MAAM,WAAW,SAAS,CAAC,CAAC,GAAG,SAAS,CAAE,SAAQ,UAAU;IAC1D,6DAA6D;IAC7D,QAAQ,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;IAEjD,oEAAoE;IACpE,QAAQ,CAAC,OAAO,EAAE,CAAC,SAAS,SAAS,GACjC,CAAC,EAAE,EAAE,EAAE,KAAK,SAAS,GACrB,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,KAAK,SAAS,CAAC;CACnC;AAED,mEAAmE;AACnE,eAAO,MAAM,eAAe,GAAI,CAAC,GAAG,SAAS,EAC3C,MAAM,cAAc,KACnB,SAAS,CAAC,CAAC,CA6Bb,CAAC"}
1
+ {"version":3,"file":"Callbacks.d.ts","sourceRoot":"","sources":["../../src/Callbacks.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,OAAO,EAAY,EAAE,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AACH,MAAM,WAAW,SAAS,CAAC,CAAC,GAAG,SAAS,CAAE,SAAQ,UAAU;IAC1D,6DAA6D;IAC7D,QAAQ,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;IAEjD,oEAAoE;IACpE,QAAQ,CAAC,OAAO,EAAE,CAAC,SAAS,SAAS,GACjC,CAAC,EAAE,EAAE,EAAE,KAAK,SAAS,GACrB,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,KAAK,SAAS,CAAC;CACnC;AAED,mEAAmE;AACnE,eAAO,MAAM,eAAe,GAAI,CAAC,GAAG,SAAS,QACrC,cAAc,KACnB,SAAS,CAAC,CAAC,CA6Bb,CAAC"}
@@ -3,8 +3,8 @@
3
3
  *
4
4
  * @module
5
5
  */
6
- import type { ReadonlyStore } from "./Store.js";
7
- import { type Millis, type TimeDep } from "./Time.js";
6
+ import type { ReadonlyStore } from "./Store.ts";
7
+ import { type Millis, type TimeDep } from "./Time.ts";
8
8
  /**
9
9
  * Platform-agnostic console with structured logging.
10
10
  *
@@ -31,31 +31,47 @@ import { type Millis, type TimeDep } from "./Time.js";
31
31
  * {@link ReadonlyStore} for subscribing
32
32
  * - {@link createMultiOutput} — fans out to multiple outputs
33
33
  *
34
+ * Wrap logged values in named objects such as `{ config }` so developer tools
35
+ * display useful, expandable labels.
36
+ *
34
37
  * ### Example
35
38
  *
36
39
  * ```ts
37
- * // Basic usage - defaults to "log"
38
- * const console = createConsole();
40
+ * import {
41
+ * createConsole,
42
+ * createConsoleArrayOutput,
43
+ * type Console,
44
+ * type ConsoleEntry,
45
+ * type ConsoleLevel,
46
+ * } from "@evolu/common";
39
47
  *
40
- * // With formatting (timestamps and path prefixes)
41
- * const console = createConsole({
42
- * level: "info",
43
- * formatter: createConsoleFormatter()({ timestampFormat: "relative" }),
48
+ * const entries: Array<ConsoleEntry> = [];
49
+ * const root = createConsole({
50
+ * output: createConsoleArrayOutput(entries),
44
51
  * });
45
- *
46
- * // Children inherit level at creation, then are independent
47
- * const console = run.deps.console.child("relay");
48
- * console.setLevel("silent");
49
- *
50
- * // Tip: Wrap logged values in objects for labeled output in DevTools
51
- * console.info("Creating instance", { config }); // Good — expandable "config:" label
52
- * console.info("Creating instance", config); // Avoid — anonymous object, no label
53
- *
54
- * // Batch update via children
55
- * const setLevelRecursive = (c: Console, level: ConsoleLevel): void => {
56
- * c.setLevel(level);
57
- * for (const child of c.children) setLevelRecursive(child, level);
52
+ * const relay = root.child("relay");
53
+ * // Silence a noisy subsystem without affecting root logs.
54
+ * relay.setLevel("silent");
55
+ * relay.info("polling");
56
+ * root.info("Creating instance", { config: { port: 4000 } });
57
+ *
58
+ * expect(root.getLevel()).toBe("log");
59
+ * expect(relay.getLevel()).toBe("silent");
60
+ * expect(entries[0]?.args).toEqual([
61
+ * "Creating instance",
62
+ * { config: { port: 4000 } },
63
+ * ]);
64
+ *
65
+ * const setLevelRecursive = (
66
+ * console: Console,
67
+ * level: ConsoleLevel,
68
+ * ): void => {
69
+ * console.setLevel(level);
70
+ * for (const child of console.children) setLevelRecursive(child, level);
58
71
  * };
72
+ * setLevelRecursive(root, "warn");
73
+ * expect(root.getLevel()).toBe("warn");
74
+ * expect(relay.getLevel()).toBe("warn");
59
75
  * ```
60
76
  *
61
77
  * Console intentionally does not use {@link Task}. Logging must be as fast as
@@ -237,12 +253,26 @@ export type ConsoleEntryTimestampFormat = "relative" | "absolute" | "iso" | "non
237
253
  * ### Example
238
254
  *
239
255
  * ```ts
256
+ * import {
257
+ * createConsole,
258
+ * createConsoleStoreOutput,
259
+ * type ConsoleEntry,
260
+ * } from "@evolu/common";
261
+ *
240
262
  * const storeOutput = createConsoleStoreOutput();
241
263
  * const console = createConsole({ output: storeOutput });
264
+ * let forwardedEntry: ConsoleEntry | null = null;
265
+ * const unsubscribe = storeOutput.entry.subscribe(() => {
266
+ * forwardedEntry = storeOutput.entry.get();
267
+ * });
242
268
  *
243
- * storeOutput.entry.subscribe(() => {
244
- * const entry = storeOutput.entry.get();
245
- * if (entry) forwardToClient(entry);
269
+ * console.child("relay").info("connected");
270
+ * unsubscribe();
271
+ *
272
+ * expect(forwardedEntry).toEqual({
273
+ * method: "info",
274
+ * path: ["relay"],
275
+ * args: ["connected"],
246
276
  * });
247
277
  * ```
248
278
  */
@@ -283,7 +313,15 @@ export declare const createConsole: ({ name, level, output, path, formatter, }?:
283
313
  * ### Example
284
314
  *
285
315
  * ```ts
316
+ * import {
317
+ * createNativeConsoleOutput,
318
+ * type ConsoleOutput,
319
+ * } from "@evolu/common";
320
+ *
286
321
  * const output = createNativeConsoleOutput();
322
+ *
323
+ * expectTypeOf(output).toEqualTypeOf<ConsoleOutput>();
324
+ * expect(output.write).toBeTypeOf("function");
287
325
  * ```
288
326
  */
289
327
  export declare const createNativeConsoleOutput: () => ConsoleOutput;
@@ -295,23 +333,52 @@ export declare const createNativeConsoleOutput: () => ConsoleOutput;
295
333
  * ### Example
296
334
  *
297
335
  * ```ts
298
- * const root = createConsole({
299
- * formatter: createConsoleFormatter()({
300
- * timestampFormat: "relative",
301
- * }),
336
+ * import {
337
+ * createConsoleFormatter,
338
+ * Millis,
339
+ * testCreateTime,
340
+ * type ConsoleEntry,
341
+ * } from "@evolu/common";
342
+ *
343
+ * const time = testCreateTime({ startAt: Millis.orThrow(0) });
344
+ * const formatRelative = createConsoleFormatter({ time })({
345
+ * timestampFormat: "relative",
302
346
  * });
347
+ * const connected: ConsoleEntry = {
348
+ * method: "log",
349
+ * path: ["relay"],
350
+ * args: ["connected"],
351
+ * };
303
352
  *
304
- * // Relative — elapsed since start
305
- * const relay = root.child("relay");
306
- * relay.log("connected"); // +0.000s [relay] connected
307
- * relay.log("synced"); // +1.500s [relay] synced
308
- *
309
- * // Nested children
310
- * const db = relay.child("db");
311
- * db.log("opened"); // +1.500s [relay] [db] opened
312
- *
313
- * // Absolute — local clock time (HH:MM:SS.mmm)
314
- * // relay.log("connected"); // 15:30:15.123 [relay] connected
353
+ * expect(formatRelative(connected)).toEqual([
354
+ * "+0.000s [relay]",
355
+ * "connected",
356
+ * ]);
357
+ * time.advance("1.5s");
358
+ * expect(
359
+ * formatRelative({
360
+ * ...connected,
361
+ * path: ["relay", "db"],
362
+ * args: ["opened"],
363
+ * }),
364
+ * ).toEqual(["+1.500s [relay] [db]", "opened"]);
365
+ *
366
+ * const localTimestamp = new globalThis.Date(
367
+ * 2026,
368
+ * 0,
369
+ * 28,
370
+ * 14,
371
+ * 30,
372
+ * 15,
373
+ * 123,
374
+ * ).getTime();
375
+ * const formatAbsolute = createConsoleFormatter({
376
+ * time: testCreateTime({ startAt: Millis.orThrow(localTimestamp) }),
377
+ * })({ timestampFormat: "absolute" });
378
+ * expect(formatAbsolute(connected)).toEqual([
379
+ * "14:30:15.123 [relay]",
380
+ * "connected",
381
+ * ]);
315
382
  * ```
316
383
  */
317
384
  export declare const createConsoleFormatter: ({ time }?: Partial<TimeDep>) => (config?: ConsoleFormatterConfig) => ConsoleFormatter;
@@ -325,11 +392,20 @@ export declare const createConsoleStoreOutput: () => ConsoleStoreOutput;
325
392
  * ### Example
326
393
  *
327
394
  * ```ts
328
- * const entries: Array<ConsoleEntry> = [];
329
- * const output = createConsoleArrayOutput(entries);
395
+ * import {
396
+ * createConsole,
397
+ * createConsoleArrayOutput,
398
+ * type ConsoleEntry,
399
+ * } from "@evolu/common";
330
400
  *
331
- * // After logging...
332
- * expect(entries).toMatchInlineSnapshot();
401
+ * const entries: Array<ConsoleEntry> = [];
402
+ * const console = createConsole({
403
+ * output: createConsoleArrayOutput(entries),
404
+ * });
405
+ * console.info("connected");
406
+ * expect(entries).toEqual([
407
+ * { method: "info", path: [], args: ["connected"] },
408
+ * ]);
333
409
  * ```
334
410
  */
335
411
  export declare const createConsoleArrayOutput: (entries: Array<ConsoleEntry>) => ConsoleOutput;
@@ -342,43 +418,46 @@ export declare const createConsoleArrayOutput: (entries: Array<ConsoleEntry>) =>
342
418
  * ### Example
343
419
  *
344
420
  * ```ts
421
+ * import {
422
+ * createConsole,
423
+ * createConsoleArrayOutput,
424
+ * createConsoleStoreOutput,
425
+ * createMultiOutput,
426
+ * type ConsoleEntry,
427
+ * } from "@evolu/common";
428
+ *
429
+ * const entries: Array<ConsoleEntry> = [];
345
430
  * const storeOutput = createConsoleStoreOutput();
346
431
  * const console = createConsole({
347
- * output: createMultiOutput([createNativeConsoleOutput(), storeOutput]),
432
+ * output: createMultiOutput([
433
+ * createConsoleArrayOutput(entries),
434
+ * storeOutput,
435
+ * ]),
348
436
  * });
437
+ * console.error("disconnected");
438
+ *
439
+ * expect(storeOutput.entry.get()).toEqual(entries[0]);
349
440
  * ```
350
441
  */
351
442
  export declare const createMultiOutput: (outputs: ReadonlyArray<ConsoleOutput>) => ConsoleOutput;
352
443
  /**
353
444
  * Creates a {@link TestConsole} that captures all output for testing.
354
445
  *
355
- * Unlike {@link createConsole}, this doesn't require dependencies and uses a
356
- * simple incrementing counter for timestamps (starting at 0).
446
+ * Unlike {@link createConsole}, this doesn't require dependencies and captures
447
+ * entries in memory.
357
448
  *
358
449
  * ### Example
359
450
  *
360
451
  * ```ts
361
- * test("logging", () => {
362
- * const console = testCreateConsole();
363
- * console.info("Hello");
364
- *
365
- * expect(console.getEntriesSnapshot()).toMatchInlineSnapshot(`
366
- * [
367
- * {
368
- * "method": "info",
369
- * "path": [],
370
- * "args": ["Hello"]
371
- * }
372
- * ]
373
- * `);
374
- * });
452
+ * import { testCreateConsole } from "@evolu/common";
375
453
  *
376
- * test("level filtering", () => {
377
- * const console = testCreateConsole({ level: "warn" });
378
- * console.debug("ignored");
379
- * console.warn("logged");
380
- * expect(console.getEntriesSnapshot()).toHaveLength(1);
381
- * });
454
+ * const console = testCreateConsole({ level: "info" });
455
+ * console.debug("ignored");
456
+ * console.child("relay").info("connected");
457
+ *
458
+ * expect(console.getEntriesSnapshot()).toEqual([
459
+ * { method: "info", path: ["relay"], args: ["connected"] },
460
+ * ]);
382
461
  * ```
383
462
  */
384
463
  export declare const testCreateConsole: ({ level, }?: {
@@ -1 +1 @@
1
- {"version":3,"file":"Console.d.ts","sourceRoot":"","sources":["../../src/Console.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Console.d.ts","sourceRoot":"","sources":["../../src/Console.ts"],"names":[],"mappings":"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"}