@evolu/common 8.7.0 → 8.9.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 (302) hide show
  1. package/dist/src/Array.d.ts +21 -21
  2. package/dist/src/Array.js +5 -5
  3. package/dist/src/Assert.d.ts +498 -141
  4. package/dist/src/Assert.d.ts.map +1 -1
  5. package/dist/src/Assert.js +648 -99
  6. package/dist/src/{Buffer.d.ts → Binary.d.ts} +85 -12
  7. package/dist/src/Binary.d.ts.map +1 -0
  8. package/dist/src/{Buffer.js → Binary.js} +206 -24
  9. package/dist/src/Console.d.ts +2 -10
  10. package/dist/src/Console.d.ts.map +1 -1
  11. package/dist/src/Console.js +6 -12
  12. package/dist/src/Crypto.d.ts +5 -5
  13. package/dist/src/Crypto.js +1 -1
  14. package/dist/src/Eq.d.ts +35 -40
  15. package/dist/src/Eq.d.ts.map +1 -1
  16. package/dist/src/Eq.js +51 -87
  17. package/dist/src/Function.d.ts +9 -14
  18. package/dist/src/Function.d.ts.map +1 -1
  19. package/dist/src/Function.js +7 -9
  20. package/dist/src/Http.d.ts +6 -7
  21. package/dist/src/Http.d.ts.map +1 -1
  22. package/dist/src/LeakDetector.d.ts.map +1 -1
  23. package/dist/src/LeakDetector.js +1 -0
  24. package/dist/src/LockManager.d.ts +1 -1
  25. package/dist/src/LockManager.js +1 -1
  26. package/dist/src/Lookup.d.ts +3 -2
  27. package/dist/src/Lookup.d.ts.map +1 -1
  28. package/dist/src/Lookup.js +4 -3
  29. package/dist/src/Number.d.ts +1 -1
  30. package/dist/src/Number.d.ts.map +1 -1
  31. package/dist/src/Number.js +1 -1
  32. package/dist/src/Object.d.ts +4 -4
  33. package/dist/src/Object.d.ts.map +1 -1
  34. package/dist/src/Object.js +5 -4
  35. package/dist/src/Option.d.ts +1 -2
  36. package/dist/src/Option.d.ts.map +1 -1
  37. package/dist/src/Option.js +1 -2
  38. package/dist/src/Platform.js +2 -0
  39. package/dist/src/Polyfills.d.ts +6 -0
  40. package/dist/src/Polyfills.d.ts.map +1 -1
  41. package/dist/src/Polyfills.js +10 -1
  42. package/dist/src/Random.d.ts +1 -1
  43. package/dist/src/Result.d.ts +49 -54
  44. package/dist/src/Result.d.ts.map +1 -1
  45. package/dist/src/Result.js +17 -22
  46. package/dist/src/Set.d.ts +6 -6
  47. package/dist/src/Set.js +2 -2
  48. package/dist/src/Sqlite.js +1 -1
  49. package/dist/src/String.js +3 -2
  50. package/dist/src/Task.d.ts +32 -32
  51. package/dist/src/Task.d.ts.map +1 -1
  52. package/dist/src/Task.js +20 -22
  53. package/dist/src/Test.d.ts +31 -3
  54. package/dist/src/Test.d.ts.map +1 -1
  55. package/dist/src/Test.js +46 -3
  56. package/dist/src/Time.d.ts +3 -11
  57. package/dist/src/Time.d.ts.map +1 -1
  58. package/dist/src/Time.js +10 -18
  59. package/dist/src/Type.d.ts +87 -85
  60. package/dist/src/Type.d.ts.map +1 -1
  61. package/dist/src/Type.js +70 -63
  62. package/dist/src/Types.d.ts +12 -12
  63. package/dist/src/Types.js +1 -1
  64. package/dist/src/WebSocket.d.ts +4 -7
  65. package/dist/src/WebSocket.d.ts.map +1 -1
  66. package/dist/src/Worker.d.ts +1 -1
  67. package/dist/src/Worker.js +7 -7
  68. package/dist/src/index.d.ts +1 -1
  69. package/dist/src/index.js +1 -1
  70. package/dist/src/intl/_en.d.ts.map +1 -1
  71. package/dist/src/intl/_en.js +1 -1
  72. package/dist/src/intl/ar.d.ts.map +1 -1
  73. package/dist/src/intl/ar.js +1 -1
  74. package/dist/src/intl/bn.d.ts.map +1 -1
  75. package/dist/src/intl/bn.js +1 -1
  76. package/dist/src/intl/ca.d.ts.map +1 -1
  77. package/dist/src/intl/ca.js +1 -1
  78. package/dist/src/intl/cs.d.ts.map +1 -1
  79. package/dist/src/intl/cs.js +1 -1
  80. package/dist/src/intl/da.d.ts.map +1 -1
  81. package/dist/src/intl/da.js +1 -1
  82. package/dist/src/intl/de.d.ts.map +1 -1
  83. package/dist/src/intl/de.js +1 -1
  84. package/dist/src/intl/el.d.ts.map +1 -1
  85. package/dist/src/intl/el.js +1 -1
  86. package/dist/src/intl/es.d.ts.map +1 -1
  87. package/dist/src/intl/es.js +1 -1
  88. package/dist/src/intl/fa.d.ts.map +1 -1
  89. package/dist/src/intl/fa.js +1 -1
  90. package/dist/src/intl/fi.d.ts.map +1 -1
  91. package/dist/src/intl/fi.js +1 -1
  92. package/dist/src/intl/fil.d.ts.map +1 -1
  93. package/dist/src/intl/fil.js +1 -1
  94. package/dist/src/intl/fr.d.ts.map +1 -1
  95. package/dist/src/intl/fr.js +1 -1
  96. package/dist/src/intl/he.d.ts.map +1 -1
  97. package/dist/src/intl/he.js +1 -1
  98. package/dist/src/intl/hi.d.ts.map +1 -1
  99. package/dist/src/intl/hi.js +1 -1
  100. package/dist/src/intl/hr.d.ts.map +1 -1
  101. package/dist/src/intl/hr.js +1 -1
  102. package/dist/src/intl/hu.d.ts.map +1 -1
  103. package/dist/src/intl/hu.js +1 -1
  104. package/dist/src/intl/id.d.ts.map +1 -1
  105. package/dist/src/intl/id.js +1 -1
  106. package/dist/src/intl/it.d.ts.map +1 -1
  107. package/dist/src/intl/it.js +1 -1
  108. package/dist/src/intl/ja.d.ts.map +1 -1
  109. package/dist/src/intl/ja.js +1 -1
  110. package/dist/src/intl/ko.d.ts.map +1 -1
  111. package/dist/src/intl/ko.js +1 -1
  112. package/dist/src/intl/ml.d.ts.map +1 -1
  113. package/dist/src/intl/ml.js +1 -1
  114. package/dist/src/intl/mr.d.ts.map +1 -1
  115. package/dist/src/intl/mr.js +1 -1
  116. package/dist/src/intl/ms.d.ts.map +1 -1
  117. package/dist/src/intl/ms.js +1 -1
  118. package/dist/src/intl/nb.d.ts.map +1 -1
  119. package/dist/src/intl/nb.js +1 -1
  120. package/dist/src/intl/nl.d.ts.map +1 -1
  121. package/dist/src/intl/nl.js +1 -1
  122. package/dist/src/intl/pa.d.ts.map +1 -1
  123. package/dist/src/intl/pa.js +1 -1
  124. package/dist/src/intl/pl.d.ts.map +1 -1
  125. package/dist/src/intl/pl.js +1 -1
  126. package/dist/src/intl/pt-BR.d.ts.map +1 -1
  127. package/dist/src/intl/pt-BR.js +1 -1
  128. package/dist/src/intl/pt.d.ts.map +1 -1
  129. package/dist/src/intl/pt.js +1 -1
  130. package/dist/src/intl/ro.d.ts.map +1 -1
  131. package/dist/src/intl/ro.js +1 -1
  132. package/dist/src/intl/sk.d.ts.map +1 -1
  133. package/dist/src/intl/sk.js +1 -1
  134. package/dist/src/intl/sl.d.ts.map +1 -1
  135. package/dist/src/intl/sl.js +1 -1
  136. package/dist/src/intl/sv.d.ts.map +1 -1
  137. package/dist/src/intl/sv.js +1 -1
  138. package/dist/src/intl/sw.d.ts.map +1 -1
  139. package/dist/src/intl/sw.js +1 -1
  140. package/dist/src/intl/ta.d.ts.map +1 -1
  141. package/dist/src/intl/ta.js +1 -1
  142. package/dist/src/intl/te.d.ts.map +1 -1
  143. package/dist/src/intl/te.js +1 -1
  144. package/dist/src/intl/th.d.ts.map +1 -1
  145. package/dist/src/intl/th.js +1 -1
  146. package/dist/src/intl/tr.d.ts.map +1 -1
  147. package/dist/src/intl/tr.js +1 -1
  148. package/dist/src/intl/uk.d.ts.map +1 -1
  149. package/dist/src/intl/uk.js +1 -1
  150. package/dist/src/intl/ur.d.ts.map +1 -1
  151. package/dist/src/intl/ur.js +1 -1
  152. package/dist/src/intl/vi.d.ts.map +1 -1
  153. package/dist/src/intl/vi.js +1 -1
  154. package/dist/src/intl/zh-CN.d.ts.map +1 -1
  155. package/dist/src/intl/zh-CN.js +1 -1
  156. package/dist/src/intl/zh-TW.d.ts.map +1 -1
  157. package/dist/src/intl/zh-TW.js +1 -1
  158. package/dist/src/local-first/Evolu.d.ts +12 -12
  159. package/dist/src/local-first/Evolu.d.ts.map +1 -1
  160. package/dist/src/local-first/Evolu.js +2 -2
  161. package/dist/src/local-first/Protocol.d.ts +14 -76
  162. package/dist/src/local-first/Protocol.d.ts.map +1 -1
  163. package/dist/src/local-first/Protocol.js +29 -206
  164. package/dist/src/local-first/Query.d.ts +11 -11
  165. package/dist/src/local-first/Query.js +6 -6
  166. package/dist/src/local-first/Relay.d.ts +2 -2
  167. package/dist/src/local-first/Schema.d.ts +3 -5
  168. package/dist/src/local-first/Schema.d.ts.map +1 -1
  169. package/dist/src/local-first/Schema.js +2 -4
  170. package/dist/src/local-first/Shared.d.ts.map +1 -1
  171. package/dist/src/local-first/Shared.js +5 -5
  172. package/dist/src/local-first/Storage.js +4 -4
  173. package/dist/src/local-first/Timestamp.d.ts +9 -0
  174. package/dist/src/local-first/Timestamp.d.ts.map +1 -1
  175. package/dist/src/local-first/Timestamp.js +13 -10
  176. package/package.json +7 -4
  177. package/src/Array.test.ts +809 -0
  178. package/src/Array.ts +21 -21
  179. package/src/Assert.test.ts +1232 -0
  180. package/src/Assert.ts +1023 -227
  181. package/src/BigInt.test.ts +28 -0
  182. package/src/Binary.test.ts +1128 -0
  183. package/src/{Buffer.ts → Binary.ts} +273 -46
  184. package/src/Brand.test.ts +90 -0
  185. package/src/Cache.test.ts +183 -0
  186. package/src/Callbacks.test.ts +66 -0
  187. package/src/Console.test.ts +809 -0
  188. package/src/Console.ts +9 -17
  189. package/src/Crypto.test.ts +138 -0
  190. package/src/Crypto.ts +5 -5
  191. package/src/Eq.test.ts +333 -0
  192. package/src/Eq.ts +110 -176
  193. package/src/Error.test.ts +118 -0
  194. package/src/Function.test.ts +204 -0
  195. package/src/Function.ts +10 -15
  196. package/src/Http.test.ts +816 -0
  197. package/src/Http.ts +6 -7
  198. package/src/LeakDetector.test.ts +210 -0
  199. package/src/LeakDetector.ts +1 -0
  200. package/src/LockManager.ts +2 -2
  201. package/src/Lookup.test.ts +418 -0
  202. package/src/Lookup.ts +4 -3
  203. package/src/Microtask.test.ts +140 -0
  204. package/src/Number.test.ts +218 -0
  205. package/src/Number.ts +2 -2
  206. package/src/Object.test.ts +293 -0
  207. package/src/Object.ts +5 -4
  208. package/src/Option.test.ts +104 -0
  209. package/src/Option.ts +1 -2
  210. package/src/Order.test.ts +56 -0
  211. package/src/Platform.ts +2 -0
  212. package/src/Polyfills.ts +9 -4
  213. package/src/Random.test.ts +89 -0
  214. package/src/Random.ts +1 -1
  215. package/src/Ref.test.ts +139 -0
  216. package/src/RefCount.test.ts +184 -0
  217. package/src/Relation.test.ts +505 -0
  218. package/src/Resource.test.ts +4623 -0
  219. package/src/Result.test.ts +1829 -0
  220. package/src/Result.ts +49 -54
  221. package/src/Schedule.test.ts +1554 -0
  222. package/src/Set.test.ts +279 -0
  223. package/src/Set.ts +6 -6
  224. package/src/Sqlite.ts +1 -1
  225. package/src/Store.test.ts +288 -0
  226. package/src/String.test.ts +54 -0
  227. package/src/String.ts +3 -3
  228. package/src/Task.test.ts +10820 -0
  229. package/src/Task.ts +38 -43
  230. package/src/Test.test.ts +88 -0
  231. package/src/Test.ts +49 -3
  232. package/src/Time.test.ts +926 -0
  233. package/src/Time.ts +13 -21
  234. package/src/Type.base64.test.ts +88 -0
  235. package/src/Type.test.ts +20465 -0
  236. package/src/Type.ts +114 -111
  237. package/src/Types.test.ts +324 -0
  238. package/src/Types.ts +13 -13
  239. package/src/WebSocket.ts +4 -7
  240. package/src/Worker.test.ts +755 -0
  241. package/src/Worker.ts +13 -18
  242. package/src/index.ts +1 -1
  243. package/src/intl/_en.ts +1 -1
  244. package/src/intl/ar.ts +1 -1
  245. package/src/intl/bn.ts +1 -1
  246. package/src/intl/ca.ts +1 -1
  247. package/src/intl/cs.ts +1 -1
  248. package/src/intl/da.ts +1 -1
  249. package/src/intl/de.ts +1 -1
  250. package/src/intl/el.ts +1 -1
  251. package/src/intl/es.ts +1 -1
  252. package/src/intl/fa.ts +1 -1
  253. package/src/intl/fi.ts +1 -1
  254. package/src/intl/fil.ts +1 -1
  255. package/src/intl/fr.ts +1 -1
  256. package/src/intl/he.ts +1 -1
  257. package/src/intl/hi.ts +1 -1
  258. package/src/intl/hr.ts +1 -1
  259. package/src/intl/hu.ts +1 -1
  260. package/src/intl/id.ts +1 -1
  261. package/src/intl/intl.test.ts +3106 -0
  262. package/src/intl/it.ts +1 -1
  263. package/src/intl/ja.ts +1 -1
  264. package/src/intl/ko.ts +1 -1
  265. package/src/intl/ml.ts +1 -1
  266. package/src/intl/mr.ts +1 -1
  267. package/src/intl/ms.ts +1 -1
  268. package/src/intl/nb.ts +1 -1
  269. package/src/intl/nl.ts +1 -1
  270. package/src/intl/pa.ts +1 -1
  271. package/src/intl/pl.ts +1 -1
  272. package/src/intl/pt-BR.ts +1 -1
  273. package/src/intl/pt.ts +1 -1
  274. package/src/intl/ro.ts +1 -1
  275. package/src/intl/sk.ts +1 -1
  276. package/src/intl/sl.ts +1 -1
  277. package/src/intl/sv.ts +1 -1
  278. package/src/intl/sw.ts +1 -1
  279. package/src/intl/ta.ts +1 -1
  280. package/src/intl/te.ts +1 -1
  281. package/src/intl/th.ts +1 -1
  282. package/src/intl/tr.ts +1 -1
  283. package/src/intl/uk.ts +1 -1
  284. package/src/intl/ur.ts +1 -1
  285. package/src/intl/vi.ts +1 -1
  286. package/src/intl/zh-CN.ts +1 -1
  287. package/src/intl/zh-TW.ts +1 -1
  288. package/src/local-first/Evolu.test.ts +1921 -0
  289. package/src/local-first/Evolu.ts +18 -14
  290. package/src/local-first/Owner.test.ts +83 -0
  291. package/src/local-first/Protocol.test.ts +1037 -0
  292. package/src/local-first/Protocol.ts +58 -261
  293. package/src/local-first/Query.test.ts +349 -0
  294. package/src/local-first/Query.ts +11 -11
  295. package/src/local-first/Relay.ts +2 -2
  296. package/src/local-first/Schema.ts +3 -5
  297. package/src/local-first/Shared.test.ts +1828 -0
  298. package/src/local-first/Shared.ts +9 -8
  299. package/src/local-first/Storage.ts +4 -4
  300. package/src/local-first/Timestamp.test.ts +374 -0
  301. package/src/local-first/Timestamp.ts +22 -10
  302. package/dist/src/Buffer.d.ts.map +0 -1
@@ -175,16 +175,16 @@
175
175
  */
176
176
  import { type NonEmptyReadonlyArray } from "../Array.ts";
177
177
  import type { Brand } from "../Brand.ts";
178
- import { type Buffer } from "../Buffer.ts";
178
+ import { type Buffer } from "../Binary.ts";
179
179
  import type { ConsoleDep } from "../Console.ts";
180
180
  import { type DecryptWithXChaCha20Poly1305Error, EncryptionKey, type RandomBytesDep } from "../Crypto.ts";
181
181
  import { type Result } from "../Result.ts";
182
- import { SqliteValue } from "../Sqlite.ts";
182
+ import type { SqliteValue } from "../Sqlite.ts";
183
183
  import { type Task } from "../Task.ts";
184
- import { FiniteNumber, NonNegativeInt, PositiveInt, type Typed } from "../Type.ts";
184
+ import { NonNegativeInt, PositiveInt, type Typed } from "../Type.ts";
185
185
  import { type Owner, type OwnerError, OwnerId, OwnerWriteKey } from "./Owner.ts";
186
186
  import { type BaseRange, type CrdtMessage, DbChange, type EncryptedCrdtMessage, type EncryptedDbChange, type FingerprintRange, RangeType, type SkipRange, type StorageDep } from "./Storage.ts";
187
- import { NodeId, Timestamp } from "./Timestamp.ts";
187
+ import { Timestamp } from "./Timestamp.ts";
188
188
  /**
189
189
  * Protocol message maximum size.
190
190
  *
@@ -289,7 +289,7 @@ export interface ProtocolVersionError extends OwnerError, Typed<"ProtocolVersion
289
289
  }
290
290
  /** Error for invalid or corrupted protocol message data. */
291
291
  export interface ProtocolInvalidDataError extends Typed<"ProtocolInvalidDataError"> {
292
- readonly data: globalThis.Uint8Array;
292
+ readonly data: Uint8Array;
293
293
  readonly error: unknown;
294
294
  }
295
295
  /** Error when a {@link OwnerWriteKey} is invalid, missing, or fails validation. */
@@ -425,49 +425,6 @@ export interface ApplyProtocolMessageAsRelayResult extends Typed<"Response"> {
425
425
  export declare const applyProtocolMessageAsRelay: (inputMessage: Uint8Array, options?: ApplyProtocolMessageAsRelayOptions,
426
426
  /** For tests only. */
427
427
  version?: NonNegativeInt) => Task<ApplyProtocolMessageAsRelayResult, ProtocolInvalidDataError, StorageDep>;
428
- export declare const decodeRle: <T>(buffer: Buffer, length: NonNegativeInt, decodeValue: () => T) => ReadonlyArray<T>;
429
- /**
430
- * Evolu uses MessagePack to handle finite numbers except for NonNegativeInt.
431
- * For NonNegativeInt, Evolu provides more efficient encoding.
432
- */
433
- export declare const encodeNumber: (buffer: Buffer, number: FiniteNumber) => void;
434
- export declare const decodeNumber: (buffer: Buffer) => FiniteNumber;
435
- /**
436
- * Encodes an array of boolean flags into a single byte.
437
- *
438
- * Each element in the array corresponds to a bit (0-7). Array can have 0-8
439
- * elements.
440
- *
441
- * ### Example
442
- *
443
- * ```ts
444
- * import { assertEqual, createBuffer } from "@evolu/common";
445
- * import { encodeFlags } from "@evolu/common/local-first";
446
- *
447
- * const buffer = createBuffer();
448
- * encodeFlags(buffer, [true, false, true]);
449
- *
450
- * assertEqual(buffer.unwrap(), new Uint8Array([0b101]));
451
- * ```
452
- */
453
- export declare const encodeFlags: (buffer: Buffer, flags: ReadonlyArray<boolean>) => void;
454
- /**
455
- * Decodes a byte into an array of boolean flags.
456
- *
457
- * ### Example
458
- *
459
- * ```ts
460
- * import { assertEqual, createBuffer, PositiveInt } from "@evolu/common";
461
- * import { decodeFlags } from "@evolu/common/local-first";
462
- *
463
- * const buffer = createBuffer([0b101]);
464
- * const flags = decodeFlags(buffer, PositiveInt.orThrow(3));
465
- *
466
- * assertEqual(flags, [true, false, true]);
467
- * assertEqual(buffer.getLength(), 0);
468
- * ```
469
- */
470
- export declare const decodeFlags: (buffer: Buffer, count: PositiveInt) => ReadonlyArray<boolean>;
471
428
  /**
472
429
  * Encodes and encrypts a {@link DbChange} using the provided owner's encryption
473
430
  * key. Returns an encrypted binary representation as {@link EncryptedDbChange}.
@@ -484,24 +441,18 @@ export declare const encodeAndEncryptDbChange: (deps: RandomBytesDep) => (messag
484
441
  */
485
442
  export declare const decryptAndDecodeDbChange: (message: EncryptedCrdtMessage, key: EncryptionKey) => Result<DbChange, DecryptWithXChaCha20Poly1305Error | ProtocolInvalidDataError | ProtocolTimestampMismatchError>;
486
443
  /**
487
- * Encodes a non-negative integer into a variable-length integer format. It's
488
- * more efficient than encoding via {@link encodeNumber}.
444
+ * Decodes a ProtocolMessage into a readable JSON object for debugging.
489
445
  *
490
- * https://en.wikipedia.org/wiki/Variable-length_quantity
491
- */
492
- export declare const encodeNonNegativeInt: (buffer: Buffer, int: NonNegativeInt) => void;
493
- /**
494
- * Decodes a non-negative integer from a variable-length integer format.
446
+ * Note: This is a stub for future implementation. It should use:
495
447
  *
496
- * https://en.wikipedia.org/wiki/Variable-length_quantity
448
+ * - DecodeVersionAndOwner
449
+ * - DecodeError or decodeWriteKeys (depending on context)
450
+ * - DecodeMessages
451
+ * - DecodeRanges
452
+ *
453
+ * If you want to help, please contribute to this function.
497
454
  */
498
- export declare const decodeNonNegativeInt: (buffer: Buffer) => NonNegativeInt;
499
- export declare const encodeLength: (buffer: Buffer, value: ArrayLike<any>) => void;
500
- export declare const decodeLength: typeof decodeNonNegativeInt;
501
- export declare const encodeString: (buffer: Buffer, value: string) => void;
502
- export declare const decodeString: (buffer: Buffer) => string;
503
- export declare const encodeNodeId: (buffer: Buffer, nodeId: NodeId) => void;
504
- export declare const decodeNodeId: (buffer: Buffer) => NodeId;
455
+ export declare const decodeProtocolMessageToJson: (_protocolMessage: ProtocolMessage, _isInitiator: boolean) => unknown;
505
456
  export declare const ProtocolValueType: {
506
457
  readonly String: number & Brand<"NonNaN"> & Brand<"Finite"> & Brand<"Int"> & Brand<"NonNegative">;
507
458
  readonly Number: number & Brand<"NonNaN"> & Brand<"Finite"> & Brand<"Int"> & Brand<"NonNegative">;
@@ -517,18 +468,5 @@ export declare const ProtocolValueType: {
517
468
  };
518
469
  export declare const encodeSqliteValue: (buffer: Buffer, value: SqliteValue) => void;
519
470
  export declare const decodeSqliteValue: (buffer: Buffer) => SqliteValue;
520
- /**
521
- * Decodes a ProtocolMessage into a readable JSON object for debugging.
522
- *
523
- * Note: This is a stub for future implementation. It should use:
524
- *
525
- * - DecodeVersionAndOwner
526
- * - DecodeError or decodeWriteKeys (depending on context)
527
- * - DecodeMessages
528
- * - DecodeRanges
529
- *
530
- * If you want to help, please contribute to this function.
531
- */
532
- export declare const decodeProtocolMessageToJson: (_protocolMessage: ProtocolMessage, _isInitiator: boolean) => unknown;
533
471
  export {};
534
472
  //# sourceMappingURL=Protocol.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Protocol.d.ts","sourceRoot":"","sources":["../../../src/local-first/Protocol.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Protocol.d.ts","sourceRoot":"","sources":["../../../src/local-first/Protocol.ts"],"names":[],"mappings":"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"}
@@ -174,21 +174,19 @@
174
174
  * indicators) to be forwarded by relays without storage overhead.
175
175
  */
176
176
  import { createMutableArray, isNonEmptyArray, } from "../Array.js";
177
- import { assert, assertNonNullable, assertNotUndefined } from "../Assert.js";
178
- import { bytesToHex, bytesToUtf8, createBuffer, decodeJsonValue, encodeJsonValue, hexToBytes, utf8ToBytes, } from "../Buffer.js";
177
+ import { assert, assertNonNullable, assertNotUndefined, assertSame, } from "../Assert.js";
178
+ import { createBuffer, createRunLengthEncoder, decodeFlags, decodeJsonValue, decodeLength, decodeNonNegativeInt, decodeNumber, decodeRle, decodeString, encodeFlags, encodeJsonValue, encodeLength, encodeNonNegativeInt, encodeNumber, encodeString, } from "../Binary.js";
179
179
  import { createPadmePadding, decryptWithXChaCha20Poly1305, EncryptionKey, encryptWithXChaCha20Poly1305, Entropy24, XChaCha20Poly1305Ciphertext, xChaCha20Poly1305NonceLength, } from "../Crypto.js";
180
180
  import { eqArrayNumber } from "../Eq.js";
181
181
  import { computeBalancedBuckets } from "../Number.js";
182
182
  import { createMutableRecord, objectToEntries } from "../Object.js";
183
183
  import { err, ok } from "../Result.js";
184
- import { SqliteValue } from "../Sqlite.js";
185
184
  import { AbortError } from "../Task.js";
186
185
  import { Millis } from "../Time.js";
187
- import { Base64Url, base64UrlToUint8Array, between, DateIso, FiniteNumber, Id, IdBytes, idBytesToId, idBytesTypeValueLength, idToIdBytes, Int, Json, jsonToJsonValue, NonNegativeInt, onePositiveInt, PositiveInt, uint8ArrayToBase64Url, zeroNonNegativeInt, } from "../Type.js";
186
+ import { assertType, Base64Url, base64UrlToUint8Array, between, DateIso, FiniteNumber, Id, IdBytes, idBytesToId, idBytesTypeValueLength, idToIdBytes, Int, Json, jsonToJsonValue, NonNegativeInt, onePositiveInt, PositiveInt, uint8ArrayToBase64Url, zeroNonNegativeInt, } from "../Type.js";
188
187
  import { OwnerId, OwnerIdBytes, ownerIdToOwnerIdBytes, OwnerWriteKey, ownerWriteKeyLength, } from "./Owner.js";
189
188
  import { DbChange, fingerprintSize, InfiniteUpperBound, RangeType, } from "./Storage.js";
190
- import { Counter, eqTimestamp, NodeId, Timestamp, TimestampBytes, timestampBytesLength, timestampBytesToTimestamp, timestampToTimestampBytes, } from "./Timestamp.js";
191
- const jsonBuffer = createBuffer();
189
+ import { Counter, eqTimestamp, NodeId, nodeIdBytesLength, nodeIdBytesToNodeId, nodeIdToNodeIdBytes, Timestamp, TimestampBytes, timestampBytesLength, timestampBytesToTimestamp, timestampToTimestampBytes, } from "./Timestamp.js";
192
190
  const minProtocolMessageMaxSize = 1_000_000;
193
191
  const maxProtocolMessageMaxSize = 100_000_000;
194
192
  /**
@@ -497,12 +495,12 @@ export const createTimestampsBuffer = () => {
497
495
  encodeNonNegativeInt(buffer, value);
498
496
  });
499
497
  const nodeIdEncoder = createRunLengthEncoder((buffer, value) => {
500
- encodeNodeId(buffer, value);
498
+ buffer.extend(nodeIdToNodeIdBytes(value));
501
499
  });
502
500
  return {
503
501
  add: (timestamp) => {
504
502
  const delta = timestamp.millis - previousMillis;
505
- assert(NonNegativeInt.is(delta), "The delta must be NonNegativeInt");
503
+ assertType(NonNegativeInt, delta);
506
504
  count++;
507
505
  syncCount();
508
506
  previousMillis = timestamp.millis;
@@ -527,29 +525,6 @@ export const createTimestampsBuffer = () => {
527
525
  },
528
526
  };
529
527
  };
530
- const createRunLengthEncoder = (encodeValue) => {
531
- const buffer = createBuffer();
532
- let previousLength = zeroNonNegativeInt;
533
- let previousValue = null;
534
- let runLength = zeroNonNegativeInt;
535
- return {
536
- add: (value) => {
537
- if (value === previousValue) {
538
- runLength++;
539
- buffer.truncate(previousLength);
540
- }
541
- else {
542
- previousValue = value;
543
- runLength = NonNegativeInt.orThrow(1);
544
- }
545
- previousLength = buffer.getLength();
546
- encodeValue(buffer, value);
547
- encodeNonNegativeInt(buffer, runLength);
548
- },
549
- getLength: () => buffer.getLength(),
550
- unwrap: () => buffer.unwrap(),
551
- };
552
- };
553
528
  export const applyProtocolMessageAsClient = (inputMessage, options = {}) => async (run) => {
554
529
  const { storage } = run.deps;
555
530
  try {
@@ -669,7 +644,7 @@ version = protocolVersion) => async (run) => {
669
644
  });
670
645
  }
671
646
  const messageType = input.shift();
672
- assert(messageType === MessageType.Request, "Invalid MessageType");
647
+ assertSame(messageType, MessageType.Request);
673
648
  const hasWriteKey = input.shift();
674
649
  let writeKey;
675
650
  if (hasWriteKey === 1) {
@@ -1130,7 +1105,7 @@ const decodeTimestamps = (buffer, length) => {
1130
1105
  throw new ProtocolDecodeError(counter.error.type);
1131
1106
  return counter.value;
1132
1107
  });
1133
- const nodeIds = decodeRle(buffer, length, () => decodeNodeId(buffer));
1108
+ const nodeIds = decodeRle(buffer, length, () => nodeIdBytesToNodeId(buffer.shiftN(nodeIdBytesLength)));
1134
1109
  const timestamps = createMutableArray(length);
1135
1110
  for (let i = 0; i < length; i++) {
1136
1111
  timestamps[i] = {
@@ -1141,97 +1116,10 @@ const decodeTimestamps = (buffer, length) => {
1141
1116
  }
1142
1117
  return timestamps;
1143
1118
  };
1144
- export const decodeRle = (buffer, length, decodeValue) => {
1145
- const values = createMutableArray(length);
1146
- let index = 0;
1147
- while (index < length) {
1148
- const value = decodeValue();
1149
- const runLength = decodeNonNegativeInt(buffer);
1150
- // Prevent infinite loop on malformed input.
1151
- if (runLength === 0) {
1152
- throw new ProtocolDecodeError("Invalid RLE encoding: runLength must be positive");
1153
- }
1154
- const remaining = length - index;
1155
- // Prevent CPU/memory amplification via oversized runLength.
1156
- if (runLength > remaining) {
1157
- throw new ProtocolDecodeError(`Invalid RLE encoding: runLength ${runLength} exceeds remaining ${remaining}`);
1158
- }
1159
- for (let i = 0; i < runLength; i++) {
1160
- values[index] = value;
1161
- index++;
1162
- }
1163
- }
1164
- return values;
1165
- };
1166
1119
  const decodeId = (buffer) => {
1167
1120
  const bytes = buffer.shiftN(idBytesTypeValueLength);
1168
1121
  return idBytesToId(bytes);
1169
1122
  };
1170
- /**
1171
- * Evolu uses MessagePack to handle finite numbers except for NonNegativeInt.
1172
- * For NonNegativeInt, Evolu provides more efficient encoding.
1173
- */
1174
- export const encodeNumber = (buffer, number) => {
1175
- encodeJsonValue(buffer, number);
1176
- };
1177
- export const decodeNumber = (buffer) => {
1178
- const numberResult = FiniteNumber.fromUnknown(decodeJsonValue(buffer));
1179
- if (!numberResult.ok)
1180
- throw new ProtocolDecodeError(numberResult.error.type);
1181
- return numberResult.value;
1182
- };
1183
- /**
1184
- * Encodes an array of boolean flags into a single byte.
1185
- *
1186
- * Each element in the array corresponds to a bit (0-7). Array can have 0-8
1187
- * elements.
1188
- *
1189
- * ### Example
1190
- *
1191
- * ```ts
1192
- * import { assertEqual, createBuffer } from "@evolu/common";
1193
- * import { encodeFlags } from "@evolu/common/local-first";
1194
- *
1195
- * const buffer = createBuffer();
1196
- * encodeFlags(buffer, [true, false, true]);
1197
- *
1198
- * assertEqual(buffer.unwrap(), new Uint8Array([0b101]));
1199
- * ```
1200
- */
1201
- export const encodeFlags = (buffer, flags) => {
1202
- let byte = 0;
1203
- for (let i = 0; i < flags.length && i < 8; i++) {
1204
- if (flags[i]) {
1205
- byte |= 1 << i;
1206
- }
1207
- }
1208
- buffer.extend([byte]);
1209
- };
1210
- /**
1211
- * Decodes a byte into an array of boolean flags.
1212
- *
1213
- * ### Example
1214
- *
1215
- * ```ts
1216
- * import { assertEqual, createBuffer, PositiveInt } from "@evolu/common";
1217
- * import { decodeFlags } from "@evolu/common/local-first";
1218
- *
1219
- * const buffer = createBuffer([0b101]);
1220
- * const flags = decodeFlags(buffer, PositiveInt.orThrow(3));
1221
- *
1222
- * assertEqual(flags, [true, false, true]);
1223
- * assertEqual(buffer.getLength(), 0);
1224
- * ```
1225
- */
1226
- export const decodeFlags = (buffer, count) => {
1227
- const byte = buffer.shift();
1228
- const length = globalThis.Math.min(count, 8);
1229
- const flags = createMutableArray(length);
1230
- for (let i = 0; i < length; i++) {
1231
- flags[i] = (byte & (1 << i)) !== 0;
1232
- }
1233
- return flags;
1234
- };
1235
1123
  /**
1236
1124
  * Encodes and encrypts a {@link DbChange} using the provided owner's encryption
1237
1125
  * key. Returns an encrypted binary representation as {@link EncryptedDbChange}.
@@ -1323,73 +1211,26 @@ export const decryptAndDecodeDbChange = (message, key) => {
1323
1211
  }
1324
1212
  };
1325
1213
  /**
1326
- * Encodes a non-negative integer into a variable-length integer format. It's
1327
- * more efficient than encoding via {@link encodeNumber}.
1214
+ * Decodes a ProtocolMessage into a readable JSON object for debugging.
1328
1215
  *
1329
- * https://en.wikipedia.org/wiki/Variable-length_quantity
1330
- */
1331
- export const encodeNonNegativeInt = (buffer, int) => {
1332
- if (int === 0) {
1333
- buffer.extend([0]);
1334
- return;
1335
- }
1336
- let remaining = BigInt(int);
1337
- const bytes = [];
1338
- while (remaining !== 0n) {
1339
- const byte = globalThis.Number(remaining & 127n);
1340
- bytes.push(byte);
1341
- remaining >>= 7n;
1342
- }
1343
- for (let i = 0; i < bytes.length - 1; i++) {
1344
- bytes[i] |= 128;
1345
- }
1346
- buffer.extend(bytes);
1347
- };
1348
- /**
1349
- * Decodes a non-negative integer from a variable-length integer format.
1216
+ * Note: This is a stub for future implementation. It should use:
1217
+ *
1218
+ * - DecodeVersionAndOwner
1219
+ * - DecodeError or decodeWriteKeys (depending on context)
1220
+ * - DecodeMessages
1221
+ * - DecodeRanges
1350
1222
  *
1351
- * https://en.wikipedia.org/wiki/Variable-length_quantity
1223
+ * If you want to help, please contribute to this function.
1352
1224
  */
1353
- export const decodeNonNegativeInt = (buffer) => {
1354
- let result = 0n;
1355
- let shift = 0n;
1356
- let byte;
1357
- // 8 is the smallest required count
1358
- for (let byteCount = 0; byteCount < 8; byteCount++) {
1359
- byte = buffer.shift();
1360
- result |= BigInt(byte & 127) << shift;
1361
- if ((byte & 128) === 0)
1362
- break;
1363
- shift += 7n;
1364
- }
1365
- const int = NonNegativeInt.fromUnknown(globalThis.Number(result));
1366
- if (!int.ok)
1367
- throw new ProtocolDecodeError(int.error.type);
1368
- return int.value;
1369
- };
1370
- export const encodeLength = (buffer, value) => {
1371
- encodeNonNegativeInt(buffer, NonNegativeInt.orThrow(value.length));
1372
- };
1373
- export const decodeLength = decodeNonNegativeInt;
1374
- export const encodeString = (buffer, value) => {
1375
- const bytes = utf8ToBytes(value);
1376
- encodeLength(buffer, bytes);
1377
- buffer.extend(bytes);
1378
- };
1379
- export const decodeString = (buffer) => {
1380
- const length = decodeLength(buffer);
1381
- const bytes = buffer.shiftN(length);
1382
- return bytesToUtf8(bytes);
1383
- };
1384
- export const encodeNodeId = (buffer, nodeId) => {
1385
- buffer.extend(hexToBytes(nodeId));
1386
- };
1387
- export const decodeNodeId = (buffer) => {
1388
- const bytes = buffer.shiftN(NonNegativeInt.orThrow(8));
1389
- return bytesToHex(bytes);
1225
+ export const decodeProtocolMessageToJson = (_protocolMessage, _isInitiator) => {
1226
+ // TODO: Implement using
1227
+ // - decodeVersionAndOwner
1228
+ // -- decodeError or decodeWriteKeys (should be refactored out),
1229
+ // -- decodeMessages, and decodeRanges.
1230
+ // This is a stub for PRs and community contributions.
1231
+ throw new Error("decodeProtocolMessageToJson is not implemented yet.");
1390
1232
  };
1391
1233
  // Small ints are encoded into ProtocolValueType, saving one byte per int.
1392
- const isSmallInt = (value) => value >= 0 && value < 20;
1393
1234
  export const ProtocolValueType = {
1394
1235
  // 0-19 small ints
1395
1236
  // SQLite types
@@ -1479,7 +1320,7 @@ export const encodeSqliteValue = (buffer, value) => {
1479
1320
  case "number": {
1480
1321
  // Negative zero is a non-negative integer in JavaScript, but integer
1481
1322
  // encoding would lose its observable sign.
1482
- if (!globalThis.Object.is(value, -0) && NonNegativeInt.is(value)) {
1323
+ if (!Object.is(value, -0) && NonNegativeInt.is(value)) {
1483
1324
  if (isSmallInt(value)) {
1484
1325
  encodeNonNegativeInt(buffer, value);
1485
1326
  return;
@@ -1519,9 +1360,9 @@ export const decodeSqliteValue = (buffer) => {
1519
1360
  return decodeNonNegativeInt(buffer);
1520
1361
  case ProtocolValueType.Json: {
1521
1362
  const length = decodeLength(buffer);
1522
- const lengthBeforeDecoding = buffer.getLength();
1523
- const value = decodeJsonValue(buffer);
1524
- if (lengthBeforeDecoding - buffer.getLength() !== length) {
1363
+ const jsonValueBuffer = createBuffer(buffer.shiftN(length));
1364
+ const value = decodeJsonValue(jsonValueBuffer);
1365
+ if (jsonValueBuffer.getLength() !== 0) {
1525
1366
  throw new ProtocolDecodeError("Invalid JSON MessagePack length");
1526
1367
  }
1527
1368
  return JSON.stringify(value);
@@ -1547,23 +1388,5 @@ export const decodeSqliteValue = (buffer) => {
1547
1388
  throw new ProtocolDecodeError("invalid ProtocolValueType");
1548
1389
  }
1549
1390
  };
1550
- /**
1551
- * Decodes a ProtocolMessage into a readable JSON object for debugging.
1552
- *
1553
- * Note: This is a stub for future implementation. It should use:
1554
- *
1555
- * - DecodeVersionAndOwner
1556
- * - DecodeError or decodeWriteKeys (depending on context)
1557
- * - DecodeMessages
1558
- * - DecodeRanges
1559
- *
1560
- * If you want to help, please contribute to this function.
1561
- */
1562
- export const decodeProtocolMessageToJson = (_protocolMessage, _isInitiator) => {
1563
- // TODO: Implement using
1564
- // - decodeVersionAndOwner
1565
- // -- decodeError or decodeWriteKeys (should be refactored out),
1566
- // -- decodeMessages, and decodeRanges.
1567
- // This is a stub for PRs and community contributions.
1568
- throw new Error("decodeProtocolMessageToJson is not implemented yet.");
1569
- };
1391
+ const jsonBuffer = createBuffer();
1392
+ const isSmallInt = (value) => value >= 0 && value < 20;
@@ -33,11 +33,11 @@ export type { NotNull as KyselyNotNull } from "kysely";
33
33
  *
34
34
  * type AllTodosRow = typeof allTodos.Row;
35
35
  * assertType<
36
- * true,
37
- * typeof allTodos extends Query<typeof Schema> ? true : false
36
+ * typeof allTodos extends Query<typeof Schema> ? true : false,
37
+ * true
38
38
  * >();
39
- * assertType<TodoId, AllTodosRow["id"]>();
40
- * assertType<NonEmptyTrimmedString100 | null, AllTodosRow["title"]>();
39
+ * assertType<AllTodosRow["id"], TodoId>();
40
+ * assertType<AllTodosRow["title"], NonEmptyTrimmedString100 | null>();
41
41
  * ```
42
42
  */
43
43
  export type Query<S extends EvoluSchema = EvoluSchema, R extends Row = Row> = SqliteQueryString & Brand<"Query"> & {
@@ -66,7 +66,7 @@ export type Query<S extends EvoluSchema = EvoluSchema, R extends Row = Row> = Sq
66
66
  * );
67
67
  *
68
68
  * type AllTodosRow = typeof allTodos.Row;
69
- * assertType<InferRow<typeof allTodos>, AllTodosRow>();
69
+ * assertType<AllTodosRow, InferRow<typeof allTodos>>();
70
70
  * ```
71
71
  */
72
72
  Row: R;
@@ -121,11 +121,11 @@ export interface Row {
121
121
  * );
122
122
  *
123
123
  * assertType<
124
+ * (typeof people.Row.pets)[number],
124
125
  * {
125
126
  * petId: typeof Schema.pet.id.Output;
126
127
  * name: NonEmptyTrimmedString100 | null;
127
- * },
128
- * (typeof people.Row.pets)[number]
128
+ * }
129
129
  * >();
130
130
  * ```
131
131
  */
@@ -180,11 +180,11 @@ export declare const evoluJsonArrayFrom: <O>(expr: SelectQueryBuilderExpression<
180
180
  * );
181
181
  *
182
182
  * assertType<
183
+ * typeof people.Row.favoritePet,
183
184
  * {
184
185
  * petId: typeof Schema.pet.id.Output;
185
186
  * name: NonEmptyTrimmedString100 | null;
186
- * } | null,
187
- * typeof people.Row.favoritePet
187
+ * } | null
188
188
  * >();
189
189
  * ```
190
190
  */
@@ -234,12 +234,12 @@ export declare const evoluJsonObjectFrom: <O>(expr: SelectQueryBuilderExpression
234
234
  * );
235
235
  *
236
236
  * assertType<
237
+ * typeof people.Row.name,
237
238
  * {
238
239
  * first: NonEmptyTrimmedString100 | null;
239
240
  * last: NonEmptyTrimmedString100 | null;
240
241
  * full: string;
241
- * },
242
- * typeof people.Row.name
242
+ * }
243
243
  * >();
244
244
  * ```
245
245
  */
@@ -56,11 +56,11 @@ export { sql as kyselySql } from "kysely";
56
56
  * );
57
57
  *
58
58
  * assertType<
59
+ * (typeof people.Row.pets)[number],
59
60
  * {
60
61
  * petId: typeof Schema.pet.id.Output;
61
62
  * name: NonEmptyTrimmedString100 | null;
62
- * },
63
- * (typeof people.Row.pets)[number]
63
+ * }
64
64
  * >();
65
65
  * ```
66
66
  */
@@ -115,11 +115,11 @@ export const evoluJsonArrayFrom = (expr) => kyselySqlBuilder `(select ${kyselySq
115
115
  * );
116
116
  *
117
117
  * assertType<
118
+ * typeof people.Row.favoritePet,
118
119
  * {
119
120
  * petId: typeof Schema.pet.id.Output;
120
121
  * name: NonEmptyTrimmedString100 | null;
121
- * } | null,
122
- * typeof people.Row.favoritePet
122
+ * } | null
123
123
  * >();
124
124
  * ```
125
125
  */
@@ -169,12 +169,12 @@ export const evoluJsonObjectFrom = (expr) => kyselySqlBuilder `(select ${kyselyS
169
169
  * );
170
170
  *
171
171
  * assertType<
172
+ * typeof people.Row.name,
172
173
  * {
173
174
  * first: NonEmptyTrimmedString100 | null;
174
175
  * last: NonEmptyTrimmedString100 | null;
175
176
  * full: string;
176
- * },
177
- * typeof people.Row.name
177
+ * }
178
178
  * >();
179
179
  * ```
180
180
  */
@@ -79,8 +79,8 @@ export interface RelayConfig extends StorageConfig {
79
79
  * },
80
80
  * );
81
81
  * assertType<
82
- * true,
83
- * typeof createTodoEvolu extends AnyTask ? true : false
82
+ * typeof createTodoEvolu extends AnyTask ? true : false,
83
+ * true
84
84
  * >();
85
85
  *
86
86
  * // Relay: accept owners allowed by the app's access policy.
@@ -62,7 +62,7 @@ export type AnyStandardSchemaV1 = StandardSchemaV1<any, any>;
62
62
  * const ZodFiniteNumber = z
63
63
  * .number()
64
64
  * .transform((value): FiniteNumber => value as FiniteNumber);
65
- * assertType<FiniteNumber, z.output<typeof ZodFiniteNumber>>();
65
+ * assertType<z.output<typeof ZodFiniteNumber>, FiniteNumber>();
66
66
  *
67
67
  * const ZodSchema = {
68
68
  * todo: {
@@ -289,7 +289,6 @@ export declare const evoluSchemaToSqliteSchema: <S extends EvoluSchema>(schema:
289
289
  *
290
290
  * ```ts
291
291
  * import {
292
- * assertTrue,
293
292
  * assertType,
294
293
  * createQueryBuilder,
295
294
  * id,
@@ -315,14 +314,13 @@ export declare const evoluSchemaToSqliteSchema: <S extends EvoluSchema>(schema:
315
314
  * );
316
315
  *
317
316
  * assertType<
317
+ * typeof todosQuery.Row,
318
318
  * {
319
319
  * id: TodoId;
320
320
  * title: NonEmptyTrimmedString100 | null;
321
321
  * isCompleted: SqliteBoolean | null;
322
- * },
323
- * typeof todosQuery.Row
322
+ * }
324
323
  * >();
325
- * assertTrue(typeof todosQuery === "string");
326
324
  * ```
327
325
  */
328
326
  export declare const createQueryBuilder: <S extends EvoluSchema>(_schema: S) => CreateQuery<S>;