@evolu/common 8.4.0 → 8.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (353) hide show
  1. package/dist/src/Array.d.ts +191 -94
  2. package/dist/src/Array.d.ts.map +1 -1
  3. package/dist/src/Array.js +91 -40
  4. package/dist/src/Assert.d.ts +233 -30
  5. package/dist/src/Assert.d.ts.map +1 -1
  6. package/dist/src/Assert.js +151 -30
  7. package/dist/src/BigInt.d.ts +3 -3
  8. package/dist/src/BigInt.js +3 -3
  9. package/dist/src/Brand.d.ts +7 -7
  10. package/dist/src/Buffer.d.ts +12 -4
  11. package/dist/src/Buffer.d.ts.map +1 -1
  12. package/dist/src/Cache.d.ts +8 -3
  13. package/dist/src/Cache.d.ts.map +1 -1
  14. package/dist/src/Cache.js +8 -3
  15. package/dist/src/Callbacks.d.ts +8 -4
  16. package/dist/src/Callbacks.d.ts.map +1 -1
  17. package/dist/src/Console.d.ts +45 -30
  18. package/dist/src/Console.d.ts.map +1 -1
  19. package/dist/src/Console.js +32 -21
  20. package/dist/src/Crypto.d.ts +13 -8
  21. package/dist/src/Crypto.d.ts.map +1 -1
  22. package/dist/src/Crypto.js +6 -3
  23. package/dist/src/Eq.d.ts +107 -58
  24. package/dist/src/Eq.d.ts.map +1 -1
  25. package/dist/src/Eq.js +308 -112
  26. package/dist/src/Function.d.ts +54 -24
  27. package/dist/src/Function.d.ts.map +1 -1
  28. package/dist/src/Function.js +34 -17
  29. package/dist/src/Http.d.ts +52 -19
  30. package/dist/src/Http.d.ts.map +1 -1
  31. package/dist/src/Identicon.d.ts +9 -4
  32. package/dist/src/Identicon.d.ts.map +1 -1
  33. package/dist/src/Identicon.js +9 -4
  34. package/dist/src/LeakDetector.d.ts.map +1 -1
  35. package/dist/src/LeakDetector.js +4 -1
  36. package/dist/src/LockManager.d.ts +12 -10
  37. package/dist/src/LockManager.d.ts.map +1 -1
  38. package/dist/src/Lookup.d.ts +4 -2
  39. package/dist/src/Lookup.d.ts.map +1 -1
  40. package/dist/src/Lookup.js +5 -2
  41. package/dist/src/Number.d.ts +28 -24
  42. package/dist/src/Number.d.ts.map +1 -1
  43. package/dist/src/Number.js +16 -17
  44. package/dist/src/Object.d.ts +89 -47
  45. package/dist/src/Object.d.ts.map +1 -1
  46. package/dist/src/Object.js +88 -41
  47. package/dist/src/Option.d.ts +14 -5
  48. package/dist/src/Option.d.ts.map +1 -1
  49. package/dist/src/Option.js +14 -5
  50. package/dist/src/Order.d.ts +12 -12
  51. package/dist/src/Order.js +12 -12
  52. package/dist/src/Platform.d.ts +2 -2
  53. package/dist/src/Platform.js +1 -0
  54. package/dist/src/Random.d.ts +7 -4
  55. package/dist/src/Random.d.ts.map +1 -1
  56. package/dist/src/Redacted.d.ts +13 -6
  57. package/dist/src/Redacted.d.ts.map +1 -1
  58. package/dist/src/Redacted.js +4 -2
  59. package/dist/src/Ref.d.ts +4 -4
  60. package/dist/src/Relation.d.ts +5 -7
  61. package/dist/src/Relation.d.ts.map +1 -1
  62. package/dist/src/Relation.js +3 -3
  63. package/dist/src/Resource.d.ts +27 -12
  64. package/dist/src/Resource.d.ts.map +1 -1
  65. package/dist/src/Resource.js +9 -3
  66. package/dist/src/Result.d.ts +258 -114
  67. package/dist/src/Result.d.ts.map +1 -1
  68. package/dist/src/Result.js +74 -39
  69. package/dist/src/Schedule.d.ts +233 -116
  70. package/dist/src/Schedule.d.ts.map +1 -1
  71. package/dist/src/Schedule.js +204 -110
  72. package/dist/src/Set.d.ts +43 -24
  73. package/dist/src/Set.d.ts.map +1 -1
  74. package/dist/src/Set.js +25 -13
  75. package/dist/src/Sqlite.d.ts +4 -4
  76. package/dist/src/Sqlite.d.ts.map +1 -1
  77. package/dist/src/Sqlite.js +18 -15
  78. package/dist/src/Store.d.ts.map +1 -1
  79. package/dist/src/Store.js +3 -1
  80. package/dist/src/String.d.ts.map +1 -1
  81. package/dist/src/String.js +1 -1
  82. package/dist/src/Task.d.ts +555 -264
  83. package/dist/src/Task.d.ts.map +1 -1
  84. package/dist/src/Task.js +278 -168
  85. package/dist/src/Test.d.ts +10 -4
  86. package/dist/src/Test.d.ts.map +1 -1
  87. package/dist/src/Test.js +11 -4
  88. package/dist/src/Time.d.ts +27 -17
  89. package/dist/src/Time.d.ts.map +1 -1
  90. package/dist/src/Time.js +25 -8
  91. package/dist/src/Type.d.ts +1218 -372
  92. package/dist/src/Type.d.ts.map +1 -1
  93. package/dist/src/Type.js +1056 -379
  94. package/dist/src/Types.d.ts +95 -40
  95. package/dist/src/Types.d.ts.map +1 -1
  96. package/dist/src/Types.js +13 -4
  97. package/dist/src/WebSocket.d.ts +14 -6
  98. package/dist/src/WebSocket.d.ts.map +1 -1
  99. package/dist/src/WebSocket.js +8 -0
  100. package/dist/src/Worker.d.ts +10 -6
  101. package/dist/src/Worker.d.ts.map +1 -1
  102. package/dist/src/Worker.js +1 -1
  103. package/dist/src/intl/_en.d.ts +3 -1
  104. package/dist/src/intl/_en.d.ts.map +1 -1
  105. package/dist/src/intl/_en.js +17 -3
  106. package/dist/src/intl/ar.d.ts +3 -1
  107. package/dist/src/intl/ar.d.ts.map +1 -1
  108. package/dist/src/intl/ar.js +15 -2
  109. package/dist/src/intl/bn.d.ts +3 -1
  110. package/dist/src/intl/bn.d.ts.map +1 -1
  111. package/dist/src/intl/bn.js +16 -3
  112. package/dist/src/intl/ca.d.ts +3 -1
  113. package/dist/src/intl/ca.d.ts.map +1 -1
  114. package/dist/src/intl/ca.js +16 -3
  115. package/dist/src/intl/cs.d.ts +3 -1
  116. package/dist/src/intl/cs.d.ts.map +1 -1
  117. package/dist/src/intl/cs.js +16 -3
  118. package/dist/src/intl/da.d.ts +3 -1
  119. package/dist/src/intl/da.d.ts.map +1 -1
  120. package/dist/src/intl/da.js +16 -3
  121. package/dist/src/intl/de.d.ts +3 -1
  122. package/dist/src/intl/de.d.ts.map +1 -1
  123. package/dist/src/intl/de.js +16 -3
  124. package/dist/src/intl/el.d.ts +3 -1
  125. package/dist/src/intl/el.d.ts.map +1 -1
  126. package/dist/src/intl/el.js +16 -3
  127. package/dist/src/intl/es.d.ts +3 -1
  128. package/dist/src/intl/es.d.ts.map +1 -1
  129. package/dist/src/intl/es.js +16 -3
  130. package/dist/src/intl/fa.d.ts +3 -1
  131. package/dist/src/intl/fa.d.ts.map +1 -1
  132. package/dist/src/intl/fa.js +16 -3
  133. package/dist/src/intl/fi.d.ts +3 -1
  134. package/dist/src/intl/fi.d.ts.map +1 -1
  135. package/dist/src/intl/fi.js +16 -3
  136. package/dist/src/intl/fil.d.ts +3 -1
  137. package/dist/src/intl/fil.d.ts.map +1 -1
  138. package/dist/src/intl/fil.js +16 -3
  139. package/dist/src/intl/fr.d.ts +3 -1
  140. package/dist/src/intl/fr.d.ts.map +1 -1
  141. package/dist/src/intl/fr.js +16 -3
  142. package/dist/src/intl/he.d.ts +3 -1
  143. package/dist/src/intl/he.d.ts.map +1 -1
  144. package/dist/src/intl/he.js +16 -3
  145. package/dist/src/intl/hi.d.ts +3 -1
  146. package/dist/src/intl/hi.d.ts.map +1 -1
  147. package/dist/src/intl/hi.js +16 -3
  148. package/dist/src/intl/hr.d.ts +3 -1
  149. package/dist/src/intl/hr.d.ts.map +1 -1
  150. package/dist/src/intl/hr.js +16 -3
  151. package/dist/src/intl/hu.d.ts +2 -1
  152. package/dist/src/intl/hu.d.ts.map +1 -1
  153. package/dist/src/intl/hu.js +15 -3
  154. package/dist/src/intl/id.d.ts +3 -1
  155. package/dist/src/intl/id.d.ts.map +1 -1
  156. package/dist/src/intl/id.js +16 -3
  157. package/dist/src/intl/it.d.ts +3 -1
  158. package/dist/src/intl/it.d.ts.map +1 -1
  159. package/dist/src/intl/it.js +16 -3
  160. package/dist/src/intl/ja.d.ts +3 -1
  161. package/dist/src/intl/ja.d.ts.map +1 -1
  162. package/dist/src/intl/ja.js +16 -3
  163. package/dist/src/intl/ko.d.ts +3 -1
  164. package/dist/src/intl/ko.d.ts.map +1 -1
  165. package/dist/src/intl/ko.js +16 -3
  166. package/dist/src/intl/ml.d.ts +3 -1
  167. package/dist/src/intl/ml.d.ts.map +1 -1
  168. package/dist/src/intl/ml.js +16 -3
  169. package/dist/src/intl/mr.d.ts +3 -1
  170. package/dist/src/intl/mr.d.ts.map +1 -1
  171. package/dist/src/intl/mr.js +16 -3
  172. package/dist/src/intl/ms.d.ts +3 -1
  173. package/dist/src/intl/ms.d.ts.map +1 -1
  174. package/dist/src/intl/ms.js +15 -2
  175. package/dist/src/intl/nb.d.ts +2 -1
  176. package/dist/src/intl/nb.d.ts.map +1 -1
  177. package/dist/src/intl/nb.js +14 -2
  178. package/dist/src/intl/nl.d.ts +3 -1
  179. package/dist/src/intl/nl.d.ts.map +1 -1
  180. package/dist/src/intl/nl.js +16 -3
  181. package/dist/src/intl/pa.d.ts +3 -1
  182. package/dist/src/intl/pa.d.ts.map +1 -1
  183. package/dist/src/intl/pa.js +16 -3
  184. package/dist/src/intl/pl.d.ts +2 -0
  185. package/dist/src/intl/pl.d.ts.map +1 -1
  186. package/dist/src/intl/pl.js +15 -2
  187. package/dist/src/intl/pt-BR.d.ts +3 -1
  188. package/dist/src/intl/pt-BR.d.ts.map +1 -1
  189. package/dist/src/intl/pt-BR.js +16 -3
  190. package/dist/src/intl/pt.d.ts +3 -1
  191. package/dist/src/intl/pt.d.ts.map +1 -1
  192. package/dist/src/intl/pt.js +15 -2
  193. package/dist/src/intl/ro.d.ts +3 -1
  194. package/dist/src/intl/ro.d.ts.map +1 -1
  195. package/dist/src/intl/ro.js +16 -3
  196. package/dist/src/intl/sk.d.ts +3 -1
  197. package/dist/src/intl/sk.d.ts.map +1 -1
  198. package/dist/src/intl/sk.js +15 -2
  199. package/dist/src/intl/sl.d.ts +3 -1
  200. package/dist/src/intl/sl.d.ts.map +1 -1
  201. package/dist/src/intl/sl.js +16 -3
  202. package/dist/src/intl/sv.d.ts +3 -1
  203. package/dist/src/intl/sv.d.ts.map +1 -1
  204. package/dist/src/intl/sv.js +16 -3
  205. package/dist/src/intl/sw.d.ts +1 -0
  206. package/dist/src/intl/sw.d.ts.map +1 -1
  207. package/dist/src/intl/sw.js +14 -2
  208. package/dist/src/intl/ta.d.ts +3 -1
  209. package/dist/src/intl/ta.d.ts.map +1 -1
  210. package/dist/src/intl/ta.js +16 -3
  211. package/dist/src/intl/te.d.ts +3 -1
  212. package/dist/src/intl/te.d.ts.map +1 -1
  213. package/dist/src/intl/te.js +16 -3
  214. package/dist/src/intl/th.d.ts +3 -1
  215. package/dist/src/intl/th.d.ts.map +1 -1
  216. package/dist/src/intl/th.js +16 -3
  217. package/dist/src/intl/tr.d.ts +3 -1
  218. package/dist/src/intl/tr.d.ts.map +1 -1
  219. package/dist/src/intl/tr.js +16 -3
  220. package/dist/src/intl/uk.d.ts +3 -1
  221. package/dist/src/intl/uk.d.ts.map +1 -1
  222. package/dist/src/intl/uk.js +16 -3
  223. package/dist/src/intl/ur.d.ts +3 -1
  224. package/dist/src/intl/ur.d.ts.map +1 -1
  225. package/dist/src/intl/ur.js +15 -2
  226. package/dist/src/intl/vi.d.ts +3 -1
  227. package/dist/src/intl/vi.d.ts.map +1 -1
  228. package/dist/src/intl/vi.js +16 -3
  229. package/dist/src/intl/zh-CN.d.ts +3 -1
  230. package/dist/src/intl/zh-CN.d.ts.map +1 -1
  231. package/dist/src/intl/zh-CN.js +16 -3
  232. package/dist/src/intl/zh-TW.d.ts +3 -1
  233. package/dist/src/intl/zh-TW.d.ts.map +1 -1
  234. package/dist/src/intl/zh-TW.js +16 -3
  235. package/dist/src/local-first/Db.js +3 -2
  236. package/dist/src/local-first/Evolu.d.ts +47 -24
  237. package/dist/src/local-first/Evolu.d.ts.map +1 -1
  238. package/dist/src/local-first/Evolu.js +1 -0
  239. package/dist/src/local-first/Owner.d.ts +18 -14
  240. package/dist/src/local-first/Owner.d.ts.map +1 -1
  241. package/dist/src/local-first/Owner.js +14 -11
  242. package/dist/src/local-first/Protocol.d.ts +5 -5
  243. package/dist/src/local-first/Protocol.d.ts.map +1 -1
  244. package/dist/src/local-first/Protocol.js +35 -29
  245. package/dist/src/local-first/Query.d.ts +34 -21
  246. package/dist/src/local-first/Query.d.ts.map +1 -1
  247. package/dist/src/local-first/Query.js +27 -14
  248. package/dist/src/local-first/Relay.d.ts +12 -5
  249. package/dist/src/local-first/Relay.d.ts.map +1 -1
  250. package/dist/src/local-first/Relay.js +1 -1
  251. package/dist/src/local-first/Schema.d.ts +19 -11
  252. package/dist/src/local-first/Schema.d.ts.map +1 -1
  253. package/dist/src/local-first/Schema.js +11 -6
  254. package/dist/src/local-first/Shared.d.ts.map +1 -1
  255. package/dist/src/local-first/Shared.js +4 -2
  256. package/dist/src/local-first/Storage.d.ts +4 -2
  257. package/dist/src/local-first/Storage.d.ts.map +1 -1
  258. package/dist/src/local-first/Timestamp.d.ts.map +1 -1
  259. package/dist/src/local-first/Timestamp.js +1 -1
  260. package/package.json +3 -4
  261. package/src/Array.ts +195 -95
  262. package/src/Assert.ts +337 -31
  263. package/src/BigInt.ts +3 -3
  264. package/src/Brand.ts +7 -7
  265. package/src/Buffer.ts +12 -4
  266. package/src/Cache.ts +8 -3
  267. package/src/Callbacks.ts +8 -4
  268. package/src/Console.ts +45 -30
  269. package/src/Crypto.ts +13 -8
  270. package/src/Eq.ts +450 -122
  271. package/src/Function.ts +54 -24
  272. package/src/Http.ts +52 -19
  273. package/src/Identicon.ts +9 -4
  274. package/src/LeakDetector.ts +4 -3
  275. package/src/LockManager.ts +12 -10
  276. package/src/Lookup.ts +5 -2
  277. package/src/Number.ts +28 -24
  278. package/src/Object.ts +115 -49
  279. package/src/Option.ts +14 -5
  280. package/src/Order.ts +12 -12
  281. package/src/Platform.ts +3 -2
  282. package/src/Random.ts +7 -4
  283. package/src/Redacted.ts +13 -6
  284. package/src/Ref.ts +4 -4
  285. package/src/Relation.ts +8 -10
  286. package/src/Resource.ts +36 -15
  287. package/src/Result.ts +263 -119
  288. package/src/Schedule.ts +233 -116
  289. package/src/Set.ts +43 -24
  290. package/src/Sqlite.ts +18 -15
  291. package/src/Store.ts +3 -1
  292. package/src/String.ts +1 -1
  293. package/src/Task.ts +566 -286
  294. package/src/Test.ts +11 -4
  295. package/src/Time.ts +36 -19
  296. package/src/Type.ts +2191 -590
  297. package/src/Types.ts +108 -40
  298. package/src/WebSocket.ts +22 -6
  299. package/src/Worker.ts +11 -7
  300. package/src/intl/_en.ts +20 -4
  301. package/src/intl/ar.ts +17 -2
  302. package/src/intl/bn.ts +19 -4
  303. package/src/intl/ca.ts +19 -4
  304. package/src/intl/cs.ts +19 -4
  305. package/src/intl/da.ts +19 -4
  306. package/src/intl/de.ts +19 -4
  307. package/src/intl/el.ts +19 -4
  308. package/src/intl/es.ts +19 -4
  309. package/src/intl/fa.ts +19 -4
  310. package/src/intl/fi.ts +19 -4
  311. package/src/intl/fil.ts +19 -4
  312. package/src/intl/fr.ts +19 -4
  313. package/src/intl/he.ts +19 -4
  314. package/src/intl/hi.ts +19 -4
  315. package/src/intl/hr.ts +19 -4
  316. package/src/intl/hu.ts +18 -4
  317. package/src/intl/id.ts +19 -4
  318. package/src/intl/it.ts +19 -4
  319. package/src/intl/ja.ts +19 -4
  320. package/src/intl/ko.ts +19 -4
  321. package/src/intl/ml.ts +19 -4
  322. package/src/intl/mr.ts +19 -4
  323. package/src/intl/ms.ts +17 -2
  324. package/src/intl/nb.ts +16 -2
  325. package/src/intl/nl.ts +19 -4
  326. package/src/intl/pa.ts +19 -4
  327. package/src/intl/pl.ts +18 -2
  328. package/src/intl/pt-BR.ts +19 -4
  329. package/src/intl/pt.ts +17 -2
  330. package/src/intl/ro.ts +19 -4
  331. package/src/intl/sk.ts +17 -2
  332. package/src/intl/sl.ts +19 -4
  333. package/src/intl/sv.ts +19 -4
  334. package/src/intl/sw.ts +15 -2
  335. package/src/intl/ta.ts +19 -4
  336. package/src/intl/te.ts +19 -4
  337. package/src/intl/th.ts +19 -4
  338. package/src/intl/tr.ts +19 -4
  339. package/src/intl/uk.ts +19 -4
  340. package/src/intl/ur.ts +17 -2
  341. package/src/intl/vi.ts +19 -3
  342. package/src/intl/zh-CN.ts +19 -4
  343. package/src/intl/zh-TW.ts +19 -4
  344. package/src/local-first/Db.ts +2 -1
  345. package/src/local-first/Evolu.ts +48 -24
  346. package/src/local-first/Owner.ts +18 -14
  347. package/src/local-first/Protocol.ts +45 -35
  348. package/src/local-first/Query.ts +40 -24
  349. package/src/local-first/Relay.ts +13 -6
  350. package/src/local-first/Schema.ts +19 -11
  351. package/src/local-first/Shared.ts +4 -2
  352. package/src/local-first/Storage.ts +4 -2
  353. package/src/local-first/Timestamp.ts +1 -1
@@ -11,7 +11,12 @@
11
11
  * ### Completion callbacks
12
12
  *
13
13
  * ```ts
14
- * import { ok, type Callback, type Result } from "@evolu/common";
14
+ * import {
15
+ * assertEqual,
16
+ * ok,
17
+ * type Callback,
18
+ * type Result,
19
+ * } from "@evolu/common";
15
20
  *
16
21
  * const completedValues: Array<string> = [];
17
22
  * const onComplete: Callback<string> = (value) => {
@@ -25,7 +30,7 @@
25
30
  * onComplete("direct");
26
31
  * for (const callback of queue) callback(ok("queued"));
27
32
  *
28
- * expect(completedValues).toEqual(["direct", "queued"]);
33
+ * assertEqual(completedValues, ["direct", "queued"]);
29
34
  * ```
30
35
  */
31
36
  export type Callback<T> = (value: T) => void;
@@ -37,7 +42,7 @@ export type Callback<T> = (value: T) => void;
37
42
  * ### Subscription teardown
38
43
  *
39
44
  * ```ts
40
- * import type { CallbackWithTeardown } from "@evolu/common";
45
+ * import { assertEqual, type CallbackWithTeardown } from "@evolu/common";
41
46
  *
42
47
  * interface EventSource {
43
48
  * readonly start: () => void;
@@ -46,8 +51,12 @@ export type Callback<T> = (value: T) => void;
46
51
  *
47
52
  * const events: Array<string> = [];
48
53
  * const source: EventSource = {
49
- * start: () => events.push("started"),
50
- * stop: () => events.push("stopped"),
54
+ * start: () => {
55
+ * events.push("started");
56
+ * },
57
+ * stop: () => {
58
+ * events.push("stopped");
59
+ * },
51
60
  * };
52
61
  * const subscribe: CallbackWithTeardown<EventSource> = (source) => {
53
62
  * source.start();
@@ -56,7 +65,7 @@ export type Callback<T> = (value: T) => void;
56
65
  * const teardown = subscribe(source);
57
66
  * if (teardown) teardown();
58
67
  *
59
- * expect(events).toEqual(["started", "stopped"]);
68
+ * assertEqual(events, ["started", "stopped"]);
60
69
  * ```
61
70
  */
62
71
  export type CallbackWithTeardown<T> = (value: T) => void | (() => void);
@@ -68,11 +77,11 @@ export type CallbackWithTeardown<T> = (value: T) => void | (() => void);
68
77
  * ### Filtering values
69
78
  *
70
79
  * ```ts
71
- * import type { Predicate } from "@evolu/common";
80
+ * import { assertEqual, type Predicate } from "@evolu/common";
72
81
  *
73
82
  * const isEven: Predicate<number> = (n) => n % 2 === 0;
74
83
  *
75
- * expect([1, 2, 3, 4].filter(isEven)).toEqual([2, 4]);
84
+ * assertEqual([1, 2, 3, 4].filter(isEven), [2, 4]);
76
85
  * ```
77
86
  */
78
87
  export type Predicate<T> = (value: T) => boolean;
@@ -84,12 +93,12 @@ export type Predicate<T> = (value: T) => boolean;
84
93
  * ### Filtering by position
85
94
  *
86
95
  * ```ts
87
- * import type { PredicateWithIndex } from "@evolu/common";
96
+ * import { assertEqual, type PredicateWithIndex } from "@evolu/common";
88
97
  *
89
- * const isEvenIndex: PredicateWithIndex<string> = (value, index) =>
98
+ * const isEvenIndex: PredicateWithIndex<string> = (_value, index) =>
90
99
  * index % 2 === 0;
91
100
  *
92
- * expect(["a", "b", "c", "d"].filter(isEvenIndex)).toEqual(["a", "c"]);
101
+ * assertEqual(["a", "b", "c", "d"].filter(isEvenIndex), ["a", "c"]);
93
102
  * ```
94
103
  */
95
104
  export type PredicateWithIndex<T> = (value: T, index: number) => boolean;
@@ -99,7 +108,7 @@ export type PredicateWithIndex<T> = (value: T, index: number) => boolean;
99
108
  * ### Narrowing a value
100
109
  *
101
110
  * ```ts
102
- * import type { Refinement } from "@evolu/common";
111
+ * import { assert, assertEqual, type Refinement } from "@evolu/common";
103
112
  *
104
113
  * interface Animal {
105
114
  * readonly name: string;
@@ -112,9 +121,9 @@ export type PredicateWithIndex<T> = (value: T, index: number) => boolean;
112
121
  * "breed" in animal;
113
122
  * const dog: Dog = { name: "Dog", breed: "Beagle" };
114
123
  * const animal: Animal = dog;
115
- * if (!isDog(animal)) throw new Error("Expected a dog");
124
+ * assert(isDog(animal), "Expected a dog.");
116
125
  *
117
- * expect(animal.breed).toBe("Beagle");
126
+ * assertEqual(animal.breed, "Beagle");
118
127
  * ```
119
128
  */
120
129
  export type Refinement<in A, out B extends A> = (a: A) => a is B;
@@ -128,7 +137,12 @@ export type Refinement<in A, out B extends A> = (a: A) => a is B;
128
137
  * ### Indexed refinement
129
138
  *
130
139
  * ```ts
131
- * import { partitionArray, type RefinementWithIndex } from "@evolu/common";
140
+ * import {
141
+ * assertTrue,
142
+ * assertType,
143
+ * partitionArray,
144
+ * type RefinementWithIndex,
145
+ * } from "@evolu/common";
132
146
  *
133
147
  * type Item = {
134
148
  * readonly type: "number" | "string";
@@ -146,9 +160,9 @@ export type Refinement<in A, out B extends A> = (a: A) => a is B;
146
160
  * ];
147
161
  * const [numbers, others] = partitionArray(items, isNumberItem);
148
162
  *
149
- * expectTypeOf(numbers).toEqualTypeOf<ReadonlyArray<NumberItem>>();
150
- * expect(numbers[0]?.value).toBe(2);
151
- * expect(others[0]?.value).toBe(1);
163
+ * assertType<ReadonlyArray<NumberItem>, typeof numbers>();
164
+ * assertTrue(numbers[0]?.value === 2);
165
+ * assertTrue(others[0]?.value === 1);
152
166
  * ```
153
167
  */
154
168
  export type RefinementWithIndex<in A, out B extends A> = (a: A, index: number) => a is B;
@@ -167,7 +181,7 @@ export type RefinementWithIndex<in A, out B extends A> = (a: A, index: number) =
167
181
  * ### Adding runtime identity
168
182
  *
169
183
  * ```ts
170
- * import { instance, type Instance } from "@evolu/common";
184
+ * import { assertEqual, instance, type Instance } from "@evolu/common";
171
185
  *
172
186
  * interface Foo extends Instance<"Foo"> {
173
187
  * readonly value: string;
@@ -178,7 +192,7 @@ export type RefinementWithIndex<in A, out B extends A> = (a: A, index: number) =
178
192
  * value: "value",
179
193
  * };
180
194
  *
181
- * expect(foo["~evolu/instance"]).toBe("Foo");
195
+ * assertEqual(foo["~evolu/instance"], "Foo");
182
196
  * ```
183
197
  */
184
198
  export interface Instance<Name extends string> {
@@ -198,7 +212,12 @@ export declare const instance: <const Name extends string>(name: Name) => Instan
198
212
  * ### Checking runtime identity
199
213
  *
200
214
  * ```ts
201
- * import { instance, isInstance, type Instance } from "@evolu/common";
215
+ * import {
216
+ * assertTrue,
217
+ * instance,
218
+ * isInstance,
219
+ * type Instance,
220
+ * } from "@evolu/common";
202
221
  *
203
222
  * interface Foo extends Instance<"Foo"> {
204
223
  * readonly value: string;
@@ -207,7 +226,7 @@ export declare const instance: <const Name extends string>(name: Name) => Instan
207
226
  * const isFoo = isInstance<Foo>("Foo");
208
227
  * const value: unknown = { ...instance("Foo"), value: "value" };
209
228
  *
210
- * expect(isFoo(value)).toBe(true);
229
+ * assertTrue(isFoo(value));
211
230
  * ```
212
231
  */
213
232
  export declare const isInstance: <Value extends Instance<string>>(name: Value["~evolu/instance"]) => (value: unknown) => value is Value;
@@ -220,17 +239,20 @@ export declare const isInstance: <Value extends Instance<string>>(name: Value["~
220
239
  * ### Optional nullable properties
221
240
  *
222
241
  * ```ts
223
- * import type { NullablePartial } from "@evolu/common";
242
+ * import { assertType, type NullablePartial } from "@evolu/common";
224
243
  *
225
244
  * type Example = {
226
245
  * required: string;
227
246
  * optionalWithNull: string | null;
228
247
  * };
229
248
  *
230
- * expectTypeOf<NullablePartial<Example>>().toEqualTypeOf<{
231
- * required: string;
232
- * optionalWithNull?: string | null;
233
- * }>();
249
+ * assertType<
250
+ * {
251
+ * required: string;
252
+ * optionalWithNull?: string | null;
253
+ * },
254
+ * NullablePartial<Example>
255
+ * >();
234
256
  * ```
235
257
  */
236
258
  export type NullablePartial<T, NK extends keyof T = {
@@ -272,15 +294,18 @@ export type Writable<T> = {
272
294
  * ### Flattening an intersection
273
295
  *
274
296
  * ```ts
275
- * import type { Simplify } from "@evolu/common";
297
+ * import { assertType, type Simplify } from "@evolu/common";
276
298
  *
277
299
  * type A = { a: string } & { b: number };
278
300
  * type B = Simplify<A>;
279
301
  *
280
- * expectTypeOf<B>().toEqualTypeOf<{
281
- * a: string;
282
- * b: number;
283
- * }>();
302
+ * assertType<
303
+ * {
304
+ * a: string;
305
+ * b: number;
306
+ * },
307
+ * B
308
+ * >();
284
309
  * ```
285
310
  */
286
311
  export type Simplify<T> = {
@@ -300,7 +325,11 @@ export type PartialProp<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>
300
325
  * ### Sync and async completion
301
326
  *
302
327
  * ```ts
303
- * import { isPromiseLike, type Awaitable } from "@evolu/common";
328
+ * import {
329
+ * assertEqual,
330
+ * isPromiseLike,
331
+ * type Awaitable,
332
+ * } from "@evolu/common";
304
333
  *
305
334
  * const cache = new Map([["cached", "from cache"]]);
306
335
  * const getData = (id: string): Awaitable<string> =>
@@ -310,8 +339,8 @@ export type PartialProp<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>
310
339
  * const result = getData("cached");
311
340
  * const cached = isPromiseLike(result) ? await result : result;
312
341
  *
313
- * expect(fetched).toBe("fetched missing");
314
- * expect(cached).toBe("from cache");
342
+ * assertEqual(fetched, "fetched missing");
343
+ * assertEqual(cached, "from cache");
315
344
  * ```
316
345
  */
317
346
  export type Awaitable<T> = T | PromiseLike<T>;
@@ -324,7 +353,11 @@ export type Awaitable<T> = T | PromiseLike<T>;
324
353
  * ### Conditional awaiting
325
354
  *
326
355
  * ```ts
327
- * import { isPromiseLike, type Awaitable } from "@evolu/common";
356
+ * import {
357
+ * assertTrue,
358
+ * isPromiseLike,
359
+ * type Awaitable,
360
+ * } from "@evolu/common";
328
361
  *
329
362
  * const cache = new Map([["cached", true]]);
330
363
  * const validate = (id: string): Awaitable<boolean> =>
@@ -333,12 +366,33 @@ export type Awaitable<T> = T | PromiseLike<T>;
333
366
  * const result = validate("cached");
334
367
  * const isValid = isPromiseLike(result) ? await result : result;
335
368
  *
336
- * expect(isValid).toBe(true);
369
+ * assertTrue(isValid);
337
370
  * ```
338
371
  */
339
372
  export declare const isPromiseLike: <T>(value: Awaitable<T>) => value is PromiseLike<T>;
340
373
  /** Creates a readable compiler-facing error message. */
341
374
  export type CompileTimeError<Context extends string, Message extends string> = `⛔ ${Context} error: ${Message}`;
375
+ /**
376
+ * Returns whether two types are identical according to TypeScript.
377
+ *
378
+ * Unlike mutual assignability, this distinguishes narrower literals, `any`,
379
+ * `unknown`, `never`, optional properties, and readonly properties.
380
+ * Intersection types are not normalized; apply {@link Simplify} explicitly when
381
+ * normalization is part of the intended comparison.
382
+ *
383
+ * ### Exact type equality
384
+ *
385
+ * ```ts
386
+ * import { assertType, type IsSameType } from "@evolu/common";
387
+ *
388
+ * assertType<
389
+ * true,
390
+ * IsSameType<{ readonly id: string }, { readonly id: string }>
391
+ * >();
392
+ * assertType<false, IsSameType<"ready", string>>();
393
+ * ```
394
+ */
395
+ export type IsSameType<A, B> = (<T>() => T extends (A & T) | T ? true : false) extends <T>() => (T extends (B & T) | T ? true : false) ? [A] extends [never] ? [B] extends [never] ? true : false : [B] extends [never] ? false : true : false;
342
396
  /** Returns whether a type is a union. */
343
397
  export type IsUnion<T, Whole = T> = [T] extends [never] ? false : T extends Whole ? [Whole] extends [T] ? false : true : never;
344
398
  /** Returns every property key present in any member of a union. */
@@ -356,7 +410,7 @@ export type ParameterIntersection<T> = [T] extends [(value: infer I) => void] ?
356
410
  * ### Preserving discriminated unions
357
411
  *
358
412
  * ```ts
359
- * import type { DistributiveOmit } from "@evolu/common";
413
+ * import { assertType, type DistributiveOmit } from "@evolu/common";
360
414
  *
361
415
  * type Event =
362
416
  * | { type: "a"; a: string; shared: number }
@@ -364,8 +418,9 @@ export type ParameterIntersection<T> = [T] extends [(value: infer I) => void] ?
364
418
  *
365
419
  * type Payload = DistributiveOmit<Event, "shared">;
366
420
  *
367
- * expectTypeOf<Payload>().toEqualTypeOf<
368
- * { type: "a"; a: string } | { type: "b"; b: number }
421
+ * assertType<
422
+ * { type: "a"; a: string } | { type: "b"; b: number },
423
+ * Payload
369
424
  * >();
370
425
  * ```
371
426
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Types.d.ts","sourceRoot":"","sources":["../../src/Types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;AAE7C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,MAAM,oBAAoB,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC;AAExE;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,CAAC;AAEjD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,kBAAkB,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;AAEzE;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,MAAM,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAEjE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,MAAM,MAAM,mBAAmB,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,IAAI,CACvD,CAAC,EAAE,CAAC,EACJ,KAAK,EAAE,MAAM,KACV,CAAC,IAAI,CAAC,CAAC;AAEZ;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,WAAW,QAAQ,CAAC,IAAI,SAAS,MAAM;IAC3C,QAAQ,CAAC,iBAAiB,EAAE,IAAI,CAAC;CAClC;AAED,0EAA0E;AAC1E,eAAO,MAAM,QAAQ,GAAI,KAAK,CAAC,IAAI,SAAS,MAAM,QAC1C,IAAI,KACT,QAAQ,CAAC,IAAI,CAAkC,CAAC;AAEnD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,UAAU,GACpB,KAAK,SAAS,QAAQ,CAAC,MAAM,CAAC,QAAQ,KAAK,CAAC,iBAAiB,CAAC,aACvD,OAAO,KAAG,KAAK,IAAI,KAI8B,CAAC;AAE5D;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,MAAM,eAAe,CACzB,CAAC,EACD,EAAE,SAAS,MAAM,CAAC,GAAG;KAClB,CAAC,IAAI,MAAM,CAAC,GAAG,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK;CAC9C,CAAC,MAAM,CAAC,CAAC,EACV,EAAE,GAAG,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IACvD;KAAG,CAAC,IAAI,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;CAAE,CAAC;AAE/B,qCAAqC;AACrC,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED;;;;GAIG;AACH,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC;AAE5E;;;;;;;;;GASG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,OAAO,IAAI,CAAC,SAAS,MAAM,GAC1D,MAAM,GACN,CAAC,SAAS,MAAM,GACd,MAAM,GACN,CAAC,SAAS,OAAO,GACf,OAAO,GACP,CAAC,SAAS,MAAM,GACd,MAAM,GACN,CAAC,CAAC;AAEZ,iEAAiE;AACjE,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI;IACxB,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAC/B,CAAC;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI;KACvB,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACrB,GAAG,EAAE,CAAC;AAEP;;;GAGG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GACxD,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAEtB;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;AAE9C;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,aAAa,GAAI,CAAC,SACtB,SAAS,CAAC,CAAC,CAAC,KAClB,KAAK,IAAI,WAAW,CAAC,CAAC,CACiD,CAAC;AAE3E,wDAAwD;AACxD,MAAM,MAAM,gBAAgB,CAC1B,OAAO,SAAS,MAAM,EACtB,OAAO,SAAS,MAAM,IACpB,KAAK,OAAO,WAAW,OAAO,EAAE,CAAC;AAErC,yCAAyC;AACzC,MAAM,MAAM,OAAO,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GACnD,KAAK,GACL,CAAC,SAAS,KAAK,GACb,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,GACjB,KAAK,GACL,IAAI,GACN,KAAK,CAAC;AAEZ,mEAAmE;AACnE,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,GAAG,KAAK,CAAC;AAE3D,2CAA2C;AAC3C,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI,CACnC,CAAC,SAAS,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,GAAG,KAAK,CAC3C,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,IAAI,GAC1B,CAAC,GACD,KAAK,CAAC;AAEV,oEAAoE;AACpE,MAAM,MAAM,qBAAqB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC,GACzE,CAAC,GACD,OAAO,CAAC;AAEZ;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,MAAM,gBAAgB,CAAC,CAAC,EAAE,CAAC,SAAS,WAAW,IAAI,CAAC,SAAS,OAAO,GACtE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GACV,KAAK,CAAC"}
1
+ {"version":3,"file":"Types.d.ts","sourceRoot":"","sources":["../../src/Types.ts"],"names":[],"mappings":"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"}
package/dist/src/Types.js CHANGED
@@ -17,7 +17,12 @@ export const instance = (name) => ({ "~evolu/instance": name });
17
17
  * ### Checking runtime identity
18
18
  *
19
19
  * ```ts
20
- * import { instance, isInstance, type Instance } from "@evolu/common";
20
+ * import {
21
+ * assertTrue,
22
+ * instance,
23
+ * isInstance,
24
+ * type Instance,
25
+ * } from "@evolu/common";
21
26
  *
22
27
  * interface Foo extends Instance<"Foo"> {
23
28
  * readonly value: string;
@@ -26,7 +31,7 @@ export const instance = (name) => ({ "~evolu/instance": name });
26
31
  * const isFoo = isInstance<Foo>("Foo");
27
32
  * const value: unknown = { ...instance("Foo"), value: "value" };
28
33
  *
29
- * expect(isFoo(value)).toBe(true);
34
+ * assertTrue(isFoo(value));
30
35
  * ```
31
36
  */
32
37
  export const isInstance = (name) => (value) => value !== null &&
@@ -42,7 +47,11 @@ export const isInstance = (name) => (value) => value !== null &&
42
47
  * ### Conditional awaiting
43
48
  *
44
49
  * ```ts
45
- * import { isPromiseLike, type Awaitable } from "@evolu/common";
50
+ * import {
51
+ * assertTrue,
52
+ * isPromiseLike,
53
+ * type Awaitable,
54
+ * } from "@evolu/common";
46
55
  *
47
56
  * const cache = new Map([["cached", true]]);
48
57
  * const validate = (id: string): Awaitable<boolean> =>
@@ -51,7 +60,7 @@ export const isInstance = (name) => (value) => value !== null &&
51
60
  * const result = validate("cached");
52
61
  * const isValid = isPromiseLike(result) ? await result : result;
53
62
  *
54
- * expect(isValid).toBe(true);
63
+ * assertTrue(isValid);
55
64
  * ```
56
65
  */
57
66
  export const isPromiseLike = (value) => typeof value?.then === "function";
@@ -46,6 +46,10 @@ import { type Typed } from "./Type.ts";
46
46
  *
47
47
  * ```ts
48
48
  * import {
49
+ * assert,
50
+ * assertEqual,
51
+ * assertOk,
52
+ * assertTrue,
49
53
  * createRun,
50
54
  * createWebSocket,
51
55
  * testCreateWebSocket,
@@ -63,9 +67,6 @@ import { type Typed } from "./Type.ts";
63
67
  * createSocket("wss://example.com", {
64
68
  * protocols: ["evolu"],
65
69
  * binaryType: "arraybuffer",
66
- * onOpen: () => console.log("Connected"),
67
- * onMessage: (data) => console.log("Received:", data),
68
- * onClose: () => console.log("Disconnected"),
69
70
  * }),
70
71
  * );
71
72
  * return socket.send("Hello");
@@ -74,10 +75,17 @@ import { type Typed } from "./Type.ts";
74
75
  * const socketFactory = testCreateWebSocket();
75
76
  * await using run = createRun();
76
77
  *
77
- * expectOk(await run(connectAndSend(socketFactory)), undefined);
78
- * expect(socketFactory.sentMessages).toEqual([
78
+ * assertOk(await run(connectAndSend(socketFactory)), undefined);
79
+ * assertTrue(socketFactory.sentMessages.length === 1);
80
+ * const message = socketFactory.sentMessages[0];
81
+ * assert(
82
+ * message !== undefined && typeof message.data === "string",
83
+ * "Expected a text message.",
84
+ * );
85
+ * assertEqual(
86
+ * { url: message.url, data: message.data },
79
87
  * { url: "wss://example.com", data: "Hello" },
80
- * ]);
88
+ * );
81
89
  * ```
82
90
  */
83
91
  export interface WebSocket extends AsyncDisposable {
@@ -1 +1 @@
1
- {"version":3,"file":"WebSocket.d.ts","sourceRoot":"","sources":["../../src/WebSocket.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WebSocket.d.ts","sourceRoot":"","sources":["../../src/WebSocket.ts"],"names":[],"mappings":"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"}
@@ -79,9 +79,13 @@ export const createWebSocket = (url, { protocols, binaryType, onOpen, onClose, s
79
79
  const closeSocket = () => {
80
80
  if (!socket)
81
81
  return;
82
+ // oxlint-disable-next-line unicorn/prefer-add-event-listener -- This adapter owns and clears one handler.
82
83
  socket.onopen = null;
84
+ // oxlint-disable-next-line unicorn/prefer-add-event-listener -- This adapter owns and clears one handler.
83
85
  socket.onclose = null;
86
+ // oxlint-disable-next-line unicorn/prefer-add-event-listener -- This adapter owns and clears one handler.
84
87
  socket.onmessage = null;
88
+ // oxlint-disable-next-line unicorn/prefer-add-event-listener -- This adapter owns and clears one handler.
85
89
  socket.onerror = null;
86
90
  if (socket.readyState !== socket.CLOSING &&
87
91
  socket.readyState !== socket.CLOSED) {
@@ -99,10 +103,12 @@ export const createWebSocket = (url, { protocols, binaryType, onOpen, onClose, s
99
103
  if (binaryType)
100
104
  socket.binaryType = binaryType;
101
105
  let isOpen = false;
106
+ // oxlint-disable-next-line unicorn/prefer-add-event-listener -- This adapter owns and clears one handler.
102
107
  socket.onopen = () => {
103
108
  isOpen = true;
104
109
  onOpen?.();
105
110
  };
111
+ // oxlint-disable-next-line unicorn/prefer-add-event-listener -- This adapter owns and clears one handler.
106
112
  socket.onclose = (event) => {
107
113
  onClose?.(event);
108
114
  if (shouldRetryOnClose(event)) {
@@ -112,9 +118,11 @@ export const createWebSocket = (url, { protocols, binaryType, onOpen, onClose, s
112
118
  resolve(ok());
113
119
  }
114
120
  };
121
+ // oxlint-disable-next-line unicorn/prefer-add-event-listener -- This adapter owns and clears one handler.
115
122
  socket.onmessage = (event) => {
116
123
  onMessage?.(event.data);
117
124
  };
125
+ // oxlint-disable-next-line unicorn/prefer-add-event-listener -- This adapter owns and clears one handler.
118
126
  socket.onerror = (event) => {
119
127
  const error = isOpen
120
128
  ? { type: "WebSocketConnectionError", event }
@@ -51,6 +51,7 @@ export interface MessagePort<Input, Output = never> extends Disposable {
51
51
  *
52
52
  * ```ts
53
53
  * import {
54
+ * assertType,
54
55
  * createMessageChannel,
55
56
  * type NativeMessagePort,
56
57
  * } from "@evolu/common";
@@ -66,9 +67,7 @@ export interface MessagePort<Input, Output = never> extends Disposable {
66
67
  * port: consoleChannel.port1.native,
67
68
  * };
68
69
  *
69
- * expectTypeOf(init.port).toEqualTypeOf<
70
- * NativeMessagePort<ConsoleMessage>
71
- * >();
70
+ * assertType<NativeMessagePort<ConsoleMessage>, typeof init.port>();
72
71
  * ```
73
72
  */
74
73
  readonly native: NativeMessagePort<Input, Output>;
@@ -119,6 +118,7 @@ export type WorkerDeps = ConsoleDep & ConsoleStoreOutputEntryDep & CreateMessage
119
118
  *
120
119
  * ```ts
121
120
  * import {
121
+ * assertEqual,
122
122
  * createMessageChannel,
123
123
  * createMessagePort,
124
124
  * createSharedWorker,
@@ -156,14 +156,18 @@ export type WorkerDeps = ConsoleDep & ConsoleStoreOutputEntryDep & CreateMessage
156
156
  * ]);
157
157
  * queryChannel.port1.postMessage({ text: "all todos" });
158
158
  *
159
- * expect(await response.promise).toEqual({ rows: ["all todos"] });
159
+ * assertEqual(await response.promise, { rows: ["all todos"] });
160
160
  * ```
161
161
  *
162
162
  * On the worker side, attach the handler after asynchronous initialization;
163
163
  * messages sent earlier remain queued:
164
164
  *
165
165
  * ```ts
166
- * import { createMessageChannel, createMessagePort } from "@evolu/common";
166
+ * import {
167
+ * assertEqual,
168
+ * createMessageChannel,
169
+ * createMessagePort,
170
+ * } from "@evolu/common";
167
171
  *
168
172
  * interface Query {
169
173
  * readonly text: string;
@@ -184,7 +188,7 @@ export type WorkerDeps = ConsoleDep & ConsoleStoreOutputEntryDep & CreateMessage
184
188
  * };
185
189
  * await allReceived.promise;
186
190
  *
187
- * expect(received).toEqual([
191
+ * assertEqual(received, [
188
192
  * { text: "all todos" },
189
193
  * { text: "completed todos" },
190
194
  * ]);
@@ -1 +1 @@
1
- {"version":3,"file":"Worker.d.ts","sourceRoot":"","sources":["../../src/Worker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Worker.d.ts","sourceRoot":"","sources":["../../src/Worker.ts"],"names":[],"mappings":"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"}
@@ -183,7 +183,7 @@ export const createBroadcastChannel = (name) => {
183
183
  postMessage: (message) => {
184
184
  const dispatches = broadcastChannelDispatchesByName.get(name);
185
185
  assert(dispatches, "Expected broadcast channel dispatches");
186
- for (const otherDispatch of [...dispatches]) {
186
+ for (const otherDispatch of dispatches) {
187
187
  if (otherDispatch === dispatch)
188
188
  continue;
189
189
  scheduleWorkerTask(() => {
@@ -12,7 +12,7 @@
12
12
  *
13
13
  * @module
14
14
  */
15
- import type { ArrayError, Base64UrlError, BetweenError, CapitalizedError, DateIsoError, DateIsoFromDateError, DecimalStringError, DiscriminatedUnionError, EvoluTypeError, FiniteError, GreaterThanError, GreaterThanOrEqualToError, InstanceOfError, Int64Error, Int64StringError, IntError, IdError, JsonError, JsonValueError, LengthError, LessThanError, LessThanOrEqualToError, LiteralError, MaxLengthError, MinLengthError, MnemonicError, MultipleOfError, NegativeDecimalStringError, NegativeError, NameError, NeverError, NonNaNError, NonNegativeDecimalStringError, NonNegativeError, NonPositiveDecimalStringError, NonPositiveError, ObjectError, ObjectTagError, PositiveDecimalStringError, PositiveError, RecordError, RegexError, SetError, TableIdError, TemplateLiteralError, TrimmedError, TupleElementsError, TupleError, TypeError, TypeErrorFormatter, TypeOfError, UInt64Error, UnionError } from "../Type.ts";
15
+ import type { ArrayError, Base64UrlError, BetweenError, CapitalizedError, DateIsoError, DateIsoFromDateError, DecimalStringError, DiscriminatedUnionError, EvoluTypeError, FiniteError, GreaterThanError, GreaterThanOrEqualToError, InstanceOfError, Int64Error, Int64StringError, IntError, IdError, JsonError, JsonValueError, LengthError, LessThanError, LessThanOrEqualToError, LiteralError, MapError, MaxLengthError, MinLengthError, MnemonicError, MultipleOfError, NegativeDecimalStringError, NegativeError, NameError, NeverError, NonNaNError, NonNegativeDecimalStringError, NonNegativeError, NonPositiveDecimalStringError, NonPositiveError, ObjectError, ObjectTagError, PositiveDecimalStringError, PositiveError, RecordError, RegexError, SetError, TableIdError, TemplateLiteralError, TrimmedError, TupleElementsError, TupleError, TypeError, TypeErrorFormatter, TypeOfError, UInt64Error, UnionError } from "../Type.ts";
16
16
  /** Formats a NeverError in English. */
17
17
  export declare const formatNeverError: TypeErrorFormatter<NeverError>;
18
18
  /** Formats a String TypeOfError in English. */
@@ -111,6 +111,8 @@ export declare const formatBetweenError: TypeErrorFormatter<BetweenError>;
111
111
  export declare const formatArrayError: TypeErrorFormatter<ArrayError>;
112
112
  /** Formats a SetError in English. */
113
113
  export declare const formatSetError: TypeErrorFormatter<SetError>;
114
+ /** Formats a MapError in English. */
115
+ export declare const formatMapError: TypeErrorFormatter<MapError>;
114
116
  /** Formats a TupleError in English. */
115
117
  export declare const formatTupleError: TypeErrorFormatter<TupleError | TupleElementsError<TypeError>>;
116
118
  /** Formats a RecordError in English. */
@@ -1 +1 @@
1
- {"version":3,"file":"_en.d.ts","sourceRoot":"","sources":["../../../src/intl/_en.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,OAAO,KAAK,EACV,UAAU,EACV,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,oBAAoB,EACpB,kBAAkB,EAClB,uBAAuB,EACvB,cAAc,EACd,WAAW,EACX,gBAAgB,EAChB,yBAAyB,EACzB,eAAe,EACf,UAAU,EACV,gBAAgB,EAChB,QAAQ,EACR,OAAO,EACP,SAAS,EACT,cAAc,EACd,WAAW,EACX,aAAa,EACb,sBAAsB,EACtB,YAAY,EACZ,cAAc,EACd,cAAc,EACd,aAAa,EACb,eAAe,EACf,0BAA0B,EAC1B,aAAa,EACb,SAAS,EACT,UAAU,EACV,WAAW,EACX,6BAA6B,EAC7B,gBAAgB,EAChB,6BAA6B,EAC7B,gBAAgB,EAChB,WAAW,EAGX,cAAc,EAEd,0BAA0B,EAC1B,aAAa,EACb,WAAW,EACX,UAAU,EACV,QAAQ,EACR,YAAY,EACZ,oBAAoB,EACpB,YAAY,EACZ,kBAAkB,EAClB,UAAU,EACV,SAAS,EACT,kBAAkB,EAClB,WAAW,EACX,WAAW,EACX,UAAU,EACX,MAAM,YAAY,CAAC;AAoBpB,uCAAuC;AACvC,eAAO,MAAM,gBAAgB,EAAE,kBAAkB,CAAC,UAAU,CACwB,CAAC;AAErF,+CAA+C;AAC/C,eAAO,MAAM,iBAAiB,EAAE,kBAAkB,CAAC,WAAW,CAAC,QAAQ,CAAC,CACrD,CAAC;AAEpB,iDAAiD;AACjD,eAAO,MAAM,0BAA0B,EAAE,kBAAkB,CACzD,oBAAoB,CAEwE,CAAC;AAE/F,+CAA+C;AAC/C,eAAO,MAAM,iBAAiB,EAAE,kBAAkB,CAAC,WAAW,CAAC,QAAQ,CAAC,CACrD,CAAC;AAEpB,+CAA+C;AAC/C,eAAO,MAAM,iBAAiB,EAAE,kBAAkB,CAAC,WAAW,CAAC,QAAQ,CAAC,CACrD,CAAC;AAEpB,gDAAgD;AAChD,eAAO,MAAM,kBAAkB,EAAE,kBAAkB,CAAC,WAAW,CAAC,SAAS,CAAC,CACvD,CAAC;AAEpB,+CAA+C;AAC/C,eAAO,MAAM,iBAAiB,EAAE,kBAAkB,CAAC,WAAW,CAAC,QAAQ,CAAC,CACrD,CAAC;AAEpB,iDAAiD;AACjD,eAAO,MAAM,mBAAmB,EAAE,kBAAkB,CAAC,WAAW,CAAC,UAAU,CAAC,CACzD,CAAC;AAEpB,4CAA4C;AAC5C,eAAO,MAAM,oBAAoB,EAAE,kBAAkB,CAAC,cAAc,CAGS,CAAC;AAE9E,4CAA4C;AAC5C,eAAO,MAAM,oBAAoB,EAAE,kBAAkB,CAAC,cAAc,CAGyE,CAAC;AAE9I,6CAA6C;AAC7C,eAAO,MAAM,qBAAqB,EAAE,kBAAkB,CAAC,eAAe,CAGiC,CAAC;AAExG,yCAAyC;AACzC,eAAO,MAAM,kBAAkB,EAAE,kBAAkB,CAAC,YAAY,CAC8E,CAAC;AAE/I,uCAAuC;AACvC,eAAO,MAAM,gBAAgB,EAAE,kBAAkB,CAAC,UAAU,CACb,CAAC;AAEhD,yCAAyC;AACzC,eAAO,MAAM,kBAAkB,EAAE,kBAAkB,CAAC,YAAY,CACkC,CAAC;AAEnG,iDAAiD;AACjD,eAAO,MAAM,0BAA0B,EAAE,kBAAkB,CACzD,oBAAoB,CACgC,CAAC;AAEvD,+CAA+C;AAC/C,eAAO,MAAM,wBAAwB,EAAE,kBAAkB,CACvD,kBAAkB,CAEyE,CAAC;AAE9F,wCAAwC;AACxC,eAAO,MAAM,gBAAgB,EAAE,kBAAkB,CAAC,UAAU,CAC2C,CAAC;AAExG,wCAAwC;AACxC,eAAO,MAAM,iBAAiB,EAAE,kBAAkB,CAAC,WAAW,CAC4C,CAAC;AAE3G,8CAA8C;AAC9C,eAAO,MAAM,sBAAsB,EAAE,kBAAkB,CAAC,gBAAgB,CAGc,CAAC;AAEvF,6CAA6C;AAC7C,eAAO,MAAM,sBAAsB,EAAE,kBAAkB,CAAC,gBAAgB,CAGM,CAAC;AAE/E,yCAAyC;AACzC,eAAO,MAAM,kBAAkB,EAAE,kBAAkB,CAAC,YAAY,CACU,CAAC;AAE3E,2CAA2C;AAC3C,eAAO,MAAM,oBAAoB,EAAE,kBAAkB,CAAC,cAAc,CAGuC,CAAC;AAE5G,2CAA2C;AAC3C,eAAO,MAAM,oBAAoB,EAAE,kBAAkB,CAAC,cAAc,CAGiC,CAAC;AAEtG,wCAAwC;AACxC,eAAO,MAAM,iBAAiB,EAAE,kBAAkB,CAAC,WAAW,CACgD,CAAC;AAE/G,uCAAuC;AACvC,eAAO,MAAM,gBAAgB,EAAE,kBAAkB,CAAC,UAAU,CAC6C,CAAC;AAE1G,2CAA2C;AAC3C,eAAO,MAAM,oBAAoB,EAAE,kBAAkB,CAAC,cAAc,CAGsB,CAAC;AAE3F,sCAAsC;AACtC,eAAO,MAAM,eAAe,EAAE,kBAAkB,CAAC,SAAS,CACoB,CAAC;AAE/E,0CAA0C;AAC1C,eAAO,MAAM,mBAAmB,EAAE,kBAAkB,CAAC,aAAa,CAC8B,CAAC;AAEjG,qCAAqC;AACrC,eAAO,MAAM,aAAa,EAAE,kBAAkB,CAAC,OAAO,CACsB,CAAC;AAE7E,yCAAyC;AACzC,eAAO,MAAM,kBAAkB,EAAE,kBAAkB,CAAC,YAAY,CACqC,CAAC;AAEtG,6CAA6C;AAC7C,eAAO,MAAM,sBAAsB,EAAE,kBAAkB,CAAC,gBAAgB,CAGc,CAAC;AAEvF,0DAA0D;AAC1D,eAAO,MAAM,mCAAmC,EAAE,kBAAkB,CAClE,6BAA6B,CAEiE,CAAC;AAEjG,0CAA0C;AAC1C,eAAO,MAAM,mBAAmB,EAAE,kBAAkB,CAAC,aAAa,CACe,CAAC;AAElF,uDAAuD;AACvD,eAAO,MAAM,gCAAgC,EAAE,kBAAkB,CAC/D,0BAA0B,CAEgE,CAAC;AAE7F,6CAA6C;AAC7C,eAAO,MAAM,sBAAsB,EAAE,kBAAkB,CAAC,gBAAgB,CAGc,CAAC;AAEvF,0DAA0D;AAC1D,eAAO,MAAM,mCAAmC,EAAE,kBAAkB,CAClE,6BAA6B,CAEiE,CAAC;AAEjG,0CAA0C;AAC1C,eAAO,MAAM,mBAAmB,EAAE,kBAAkB,CAAC,aAAa,CACe,CAAC;AAElF,uDAAuD;AACvD,eAAO,MAAM,gCAAgC,EAAE,kBAAkB,CAC/D,0BAA0B,CAEgE,CAAC;AAE7F,sCAAsC;AACtC,eAAO,MAAM,cAAc,EAAE,kBAAkB,CAAC,QAAQ,CACyB,CAAC;AAElF,6CAA6C;AAC7C,eAAO,MAAM,sBAAsB,EAAE,kBAAkB,CAAC,gBAAgB,CAGoB,CAAC;AAE7F,sDAAsD;AACtD,eAAO,MAAM,+BAA+B,EAAE,kBAAkB,CAC9D,yBAAyB,CAE6E,CAAC;AAEzG,0CAA0C;AAC1C,eAAO,MAAM,mBAAmB,EAAE,kBAAkB,CAAC,aAAa,CACuB,CAAC;AAE1F,mDAAmD;AACnD,eAAO,MAAM,4BAA4B,EAAE,kBAAkB,CAC3D,sBAAsB,CAE6E,CAAC;AAEtG,wCAAwC;AACxC,eAAO,MAAM,iBAAiB,EAAE,kBAAkB,CAAC,WAAW,CAChC,CAAC;AAE/B,wCAAwC;AACxC,eAAO,MAAM,iBAAiB,EAAE,kBAAkB,CAAC,WAAW,CACW,CAAC;AAE1E,4CAA4C;AAC5C,eAAO,MAAM,qBAAqB,EAAE,kBAAkB,CAAC,eAAe,CAG2B,CAAC;AAElG,yCAAyC;AACzC,eAAO,MAAM,kBAAkB,EAAE,kBAAkB,CAAC,YAAY,CACmD,CAAC;AAEpH,wCAAwC;AACxC,eAAO,MAAM,gBAAgB,EAAE,kBAAkB,CAAC,UAAU,CAgB3D,CAAC;AAEF,qCAAqC;AACrC,eAAO,MAAM,cAAc,EAAE,kBAAkB,CAAC,QAAQ,CAgBvD,CAAC;AAEF,uCAAuC;AACvC,eAAO,MAAM,gBAAgB,EAAE,kBAAkB,CAC/C,UAAU,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAqB3C,CAAC;AAEF,wCAAwC;AACxC,eAAO,MAAM,iBAAiB,EAAE,kBAAkB,CAAC,WAAW,CAsB7D,CAAC;AAEF,yCAAyC;AACzC,eAAO,MAAM,iBAAiB,EAAE,kBAAkB,CAAC,WAAW,CA4B7D,CAAC;AAEF,oDAAoD;AACpD,eAAO,MAAM,6BAA6B,EAAE,kBAAkB,CAC5D,uBAAuB,CAoBxB,CAAC;AAEF,2CAA2C;AAC3C,eAAO,MAAM,oBAAoB,EAAE,kBAAkB,CAAC,cAAc,CAyBnE,CAAC;AAEF,sCAAsC;AACtC,eAAO,MAAM,eAAe,EAAE,kBAAkB,CAAC,SAAS,CACkC,CAAC"}
1
+ {"version":3,"file":"_en.d.ts","sourceRoot":"","sources":["../../../src/intl/_en.ts"],"names":[],"mappings":"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"}
@@ -137,9 +137,6 @@ export const formatSetError = (error) => {
137
137
  if (error.reason.kind === "NotSet") {
138
138
  return `A value ${safelyStringifyUnknownValue(error.reason.value)} is not a Set.`;
139
139
  }
140
- if (error.reason.kind === "UnexpectedPrototype") {
141
- return "The value is an instance of a Set subclass, but a Set Output must be a direct Set instance.";
142
- }
143
140
  const issue = error.reason.issues[0];
144
141
  switch (issue.kind) {
145
142
  case "ExcessProperty":
@@ -148,6 +145,23 @@ export const formatSetError = (error) => {
148
145
  return `A Set element at index ${issue.index} is invalid.`;
149
146
  }
150
147
  };
148
+ /** Formats a MapError in English. */
149
+ export const formatMapError = (error) => {
150
+ if (error.reason.kind === "NotMap") {
151
+ return `A value ${safelyStringifyUnknownValue(error.reason.value)} is not a Map.`;
152
+ }
153
+ const issue = error.reason.issues[0];
154
+ switch (issue.kind) {
155
+ case "ExcessProperty":
156
+ return `An excess Map property ${safelyStringifyUnknownValue(issue.key)} is not allowed.`;
157
+ case "Key":
158
+ return `A Map key at index ${issue.index} is invalid.`;
159
+ case "Value":
160
+ return `A Map value at index ${issue.index} is invalid.`;
161
+ case "Collision":
162
+ return `Map keys at indexes ${issue.previousIndex} and ${issue.index} decode to the same key ${safelyStringifyUnknownValue(issue.outputKey)}.`;
163
+ }
164
+ };
151
165
  /** Formats a TupleError in English. */
152
166
  export const formatTupleError = (error) => {
153
167
  if (error.reason.kind === "NotArray") {