@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
package/dist/src/Set.d.ts CHANGED
@@ -13,6 +13,7 @@
13
13
  * ```ts
14
14
  * import {
15
15
  * addToSet,
16
+ * assertEqual,
16
17
  * deleteFromSet,
17
18
  * filterSet,
18
19
  * firstInSet,
@@ -31,7 +32,7 @@
31
32
  * const difference = intersection.difference(new Set([4]));
32
33
  *
33
34
  * if (!isNonEmptySet(difference)) throw new Error("Expected values");
34
- * expect(firstInSet(difference)).toBe(6);
35
+ * assertEqual(firstInSet(difference), 6);
35
36
  * ```
36
37
  *
37
38
  * @module
@@ -55,14 +56,19 @@ export declare const emptySet: ReadonlySet<never>;
55
56
  * ### Preserving non-empty inputs
56
57
  *
57
58
  * ```ts
58
- * import { createSet, type NonEmptyReadonlySet } from "@evolu/common";
59
+ * import {
60
+ * assertEqual,
61
+ * assertType,
62
+ * createSet,
63
+ * type NonEmptyReadonlySet,
64
+ * } from "@evolu/common";
59
65
  *
60
66
  * const values = createSet([1, 2, 3]);
61
67
  * const empty = createSet([] as ReadonlyArray<number>);
62
68
  *
63
- * expectTypeOf(values).toEqualTypeOf<NonEmptyReadonlySet<number>>();
64
- * expectTypeOf(empty).toEqualTypeOf<ReadonlySet<number>>();
65
- * expect(values).toEqual(new Set([1, 2, 3]));
69
+ * assertType<NonEmptyReadonlySet<number>, typeof values>();
70
+ * assertType<ReadonlySet<number>, typeof empty>();
71
+ * assertEqual(values, new Set([1, 2, 3]));
66
72
  * ```
67
73
  *
68
74
  * @group Constructors
@@ -98,13 +104,18 @@ export type NonEmptyReadonlySet<T> = ReadonlySet<T> & Brand<"NonEmpty">;
98
104
  * ### Narrowing before access
99
105
  *
100
106
  * ```ts
101
- * import { isNonEmptySet, type NonEmptyReadonlySet } from "@evolu/common";
107
+ * import {
108
+ * assertEqual,
109
+ * assertType,
110
+ * isNonEmptySet,
111
+ * type NonEmptyReadonlySet,
112
+ * } from "@evolu/common";
102
113
  *
103
114
  * const set: ReadonlySet<number> = new Set([1, 2, 3]);
104
115
  * if (!isNonEmptySet(set)) throw new Error("Expected a non-empty set");
105
116
  *
106
- * expectTypeOf(set).toEqualTypeOf<NonEmptyReadonlySet<number>>();
107
- * expect(set.size).toBe(3);
117
+ * assertType<NonEmptyReadonlySet<number>, typeof set>();
118
+ * assertEqual(set.size, 3);
108
119
  * ```
109
120
  *
110
121
  * @group Type guards
@@ -119,15 +130,21 @@ export declare const isNonEmptySet: <T>(set: ReadonlySet<T>) => set is NonEmptyR
119
130
  * ### Adding without mutation
120
131
  *
121
132
  * ```ts
122
- * import { addToSet, type NonEmptyReadonlySet } from "@evolu/common";
133
+ * import {
134
+ * addToSet,
135
+ * assertEqual,
136
+ * assertTrue,
137
+ * assertType,
138
+ * type NonEmptyReadonlySet,
139
+ * } from "@evolu/common";
123
140
  *
124
141
  * const original: ReadonlySet<number> = new Set([1, 2]);
125
142
  * const added = addToSet(original, 3);
126
143
  * const unchanged = addToSet(original, 2);
127
144
  *
128
- * expectTypeOf(added).toEqualTypeOf<NonEmptyReadonlySet<number>>();
129
- * expect(added).toEqual(new Set([1, 2, 3]));
130
- * expect(unchanged).not.toBe(original);
145
+ * assertType<NonEmptyReadonlySet<number>, typeof added>();
146
+ * assertEqual(added, new Set([1, 2, 3]));
147
+ * assertTrue(unchanged !== original);
131
148
  * ```
132
149
  *
133
150
  * @group Transformations
@@ -142,11 +159,11 @@ export declare const addToSet: <T>(set: ReadonlySet<T>, item: T) => NonEmptyRead
142
159
  * ### Deleting without mutation
143
160
  *
144
161
  * ```ts
145
- * import { deleteFromSet } from "@evolu/common";
162
+ * import { assertEqual, assertTrue, deleteFromSet } from "@evolu/common";
146
163
  *
147
164
  * const original = new Set([1, 2, 3]);
148
- * expect(deleteFromSet(original, 2)).toEqual(new Set([1, 3]));
149
- * expect(deleteFromSet(original, 5)).not.toBe(original);
165
+ * assertEqual(deleteFromSet(original, 2), new Set([1, 3]));
166
+ * assertTrue(deleteFromSet(original, 5) !== original);
150
167
  * ```
151
168
  *
152
169
  * @group Transformations
@@ -164,6 +181,8 @@ export declare const deleteFromSet: <T>(set: ReadonlySet<T>, item: T) => Readonl
164
181
  *
165
182
  * ```ts
166
183
  * import {
184
+ * assertEqual,
185
+ * assertType,
167
186
  * createSet,
168
187
  * mapSet,
169
188
  * type NonEmptyReadonlySet,
@@ -173,9 +192,9 @@ export declare const deleteFromSet: <T>(set: ReadonlySet<T>, item: T) => Readonl
173
192
  * const doubled = mapSet(original, (x) => x * 2);
174
193
  * const parity = mapSet(original, (x) => x % 2);
175
194
  *
176
- * expectTypeOf(doubled).toEqualTypeOf<NonEmptyReadonlySet<number>>();
177
- * expect(doubled).toEqual(new Set([2, 4, 6]));
178
- * expect(parity).toEqual(new Set([1, 0]));
195
+ * assertType<NonEmptyReadonlySet<number>, typeof doubled>();
196
+ * assertEqual(doubled, new Set([2, 4, 6]));
197
+ * assertEqual(parity, new Set([1, 0]));
179
198
  * ```
180
199
  *
181
200
  * @group Transformations
@@ -193,18 +212,18 @@ export declare function mapSet<T, U>(set: ReadonlySet<T>, mapper: (item: T) => U
193
212
  * ### Filtering and refining
194
213
  *
195
214
  * ```ts
196
- * import { filterSet } from "@evolu/common";
215
+ * import { assertEqual, assertType, filterSet } from "@evolu/common";
197
216
  *
198
217
  * const evens = filterSet(new Set([1, 2, 3, 4, 5]), (x) => x % 2 === 0);
199
- * expect(evens).toEqual(new Set([2, 4]));
218
+ * assertEqual(evens, new Set([2, 4]));
200
219
  *
201
220
  * const mixed: ReadonlySet<string | number> = new Set([1, "a", 2, "b"]);
202
221
  * const strings = filterSet(
203
222
  * mixed,
204
223
  * (value): value is string => typeof value === "string",
205
224
  * );
206
- * expectTypeOf(strings).toEqualTypeOf<ReadonlySet<string>>();
207
- * expect(strings).toEqual(new Set(["a", "b"]));
225
+ * assertType<ReadonlySet<string>, typeof strings>();
226
+ * assertEqual(strings, new Set(["a", "b"]));
208
227
  * ```
209
228
  *
210
229
  * @group Transformations
@@ -218,10 +237,10 @@ export declare function filterSet<T>(set: ReadonlySet<T>, predicate: PredicateWi
218
237
  * ### Reading the first value
219
238
  *
220
239
  * ```ts
221
- * import { createSet, firstInSet } from "@evolu/common";
240
+ * import { assertEqual, createSet, firstInSet } from "@evolu/common";
222
241
  *
223
242
  * const set = createSet(["a", "b", "c"]);
224
- * expect(firstInSet(set)).toBe("a");
243
+ * assertEqual(firstInSet(set), "a");
225
244
  * ```
226
245
  *
227
246
  * @group Accessors
@@ -1 +1 @@
1
- {"version":3,"file":"Set.d.ts","sourceRoot":"","sources":["../../src/Set.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAE1E;;;;;;GAMG;AACH,eAAO,MAAM,QAAQ,EAAE,WAAW,CAAC,KAAK,CAA2B,CAAC;AAEpE;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,SAAS,CAAC,CAAC,EACzB,KAAK,EAAE,qBAAqB,CAAC,CAAC,CAAC,GAC9B,mBAAmB,CAAC,CAAC,CAAC,CAAC;AAC1B,0BAA0B;AAC1B,wBAAgB,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;AAKtE;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC;AAExE;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,aAAa,GAAI,CAAC,OACxB,WAAW,CAAC,CAAC,CAAC,KAClB,GAAG,IAAI,mBAAmB,CAAC,CAAC,CAAiB,CAAC;AAEjD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,QAAQ,GAAI,CAAC,OACnB,WAAW,CAAC,CAAC,CAAC,QACb,CAAC,KACN,mBAAmB,CAAC,CAAC,CAIvB,CAAC;AAEF;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,aAAa,GAAI,CAAC,OACxB,WAAW,CAAC,CAAC,CAAC,QACb,CAAC,KACN,WAAW,CAAC,CAAC,CAIf,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,CAAC,EACzB,GAAG,EAAE,mBAAmB,CAAC,CAAC,CAAC,EAC3B,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GACrB,mBAAmB,CAAC,CAAC,CAAC,CAAC;AAC1B,0BAA0B;AAC1B,wBAAgB,MAAM,CAAC,CAAC,EAAE,CAAC,EACzB,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,EACnB,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GACrB,WAAW,CAAC,CAAC,CAAC,CAAC;AAYlB;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,EACtC,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,EACnB,UAAU,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,GACpC,WAAW,CAAC,CAAC,CAAC,CAAC;AAClB,sBAAsB;AACtB,wBAAgB,SAAS,CAAC,CAAC,EACzB,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,EACnB,SAAS,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAC/B,WAAW,CAAC,CAAC,CAAC,CAAC;AAelB;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,UAAU,GAAI,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAAC,KAAG,CAC5B,CAAC"}
1
+ {"version":3,"file":"Set.d.ts","sourceRoot":"","sources":["../../src/Set.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAE1E;;;;;;GAMG;AACH,eAAO,MAAM,QAAQ,EAAE,WAAW,CAAC,KAAK,CAA2B,CAAC;AAEpE;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,SAAS,CAAC,CAAC,EACzB,KAAK,EAAE,qBAAqB,CAAC,CAAC,CAAC,GAC9B,mBAAmB,CAAC,CAAC,CAAC,CAAC;AAC1B,0BAA0B;AAC1B,wBAAgB,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;AAKtE;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC;AAExE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,eAAO,MAAM,aAAa,GAAI,CAAC,OACxB,WAAW,CAAC,CAAC,CAAC,KAClB,GAAG,IAAI,mBAAmB,CAAC,CAAC,CAAiB,CAAC;AAEjD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,eAAO,MAAM,QAAQ,GAAI,CAAC,OACnB,WAAW,CAAC,CAAC,CAAC,QACb,CAAC,KACN,mBAAmB,CAAC,CAAC,CAIvB,CAAC;AAEF;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,aAAa,GAAI,CAAC,OACxB,WAAW,CAAC,CAAC,CAAC,QACb,CAAC,KACN,WAAW,CAAC,CAAC,CAIf,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,CAAC,EACzB,GAAG,EAAE,mBAAmB,CAAC,CAAC,CAAC,EAC3B,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GACrB,mBAAmB,CAAC,CAAC,CAAC,CAAC;AAC1B,0BAA0B;AAC1B,wBAAgB,MAAM,CAAC,CAAC,EAAE,CAAC,EACzB,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,EACnB,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GACrB,WAAW,CAAC,CAAC,CAAC,CAAC;AAYlB;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,EACtC,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,EACnB,UAAU,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,GACpC,WAAW,CAAC,CAAC,CAAC,CAAC;AAClB,sBAAsB;AACtB,wBAAgB,SAAS,CAAC,CAAC,EACzB,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,EACnB,SAAS,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAC/B,WAAW,CAAC,CAAC,CAAC,CAAC;AAelB;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,UAAU,GAAI,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAAC,KAAG,CAC5B,CAAC"}
package/dist/src/Set.js CHANGED
@@ -13,6 +13,7 @@
13
13
  * ```ts
14
14
  * import {
15
15
  * addToSet,
16
+ * assertEqual,
16
17
  * deleteFromSet,
17
18
  * filterSet,
18
19
  * firstInSet,
@@ -31,7 +32,7 @@
31
32
  * const difference = intersection.difference(new Set([4]));
32
33
  *
33
34
  * if (!isNonEmptySet(difference)) throw new Error("Expected values");
34
- * expect(firstInSet(difference)).toBe(6);
35
+ * assertEqual(firstInSet(difference), 6);
35
36
  * ```
36
37
  *
37
38
  * @module
@@ -62,13 +63,18 @@ export function createSet(items) {
62
63
  * ### Narrowing before access
63
64
  *
64
65
  * ```ts
65
- * import { isNonEmptySet, type NonEmptyReadonlySet } from "@evolu/common";
66
+ * import {
67
+ * assertEqual,
68
+ * assertType,
69
+ * isNonEmptySet,
70
+ * type NonEmptyReadonlySet,
71
+ * } from "@evolu/common";
66
72
  *
67
73
  * const set: ReadonlySet<number> = new Set([1, 2, 3]);
68
74
  * if (!isNonEmptySet(set)) throw new Error("Expected a non-empty set");
69
75
  *
70
- * expectTypeOf(set).toEqualTypeOf<NonEmptyReadonlySet<number>>();
71
- * expect(set.size).toBe(3);
76
+ * assertType<NonEmptyReadonlySet<number>, typeof set>();
77
+ * assertEqual(set.size, 3);
72
78
  * ```
73
79
  *
74
80
  * @group Type guards
@@ -83,15 +89,21 @@ export const isNonEmptySet = (set) => set.size > 0;
83
89
  * ### Adding without mutation
84
90
  *
85
91
  * ```ts
86
- * import { addToSet, type NonEmptyReadonlySet } from "@evolu/common";
92
+ * import {
93
+ * addToSet,
94
+ * assertEqual,
95
+ * assertTrue,
96
+ * assertType,
97
+ * type NonEmptyReadonlySet,
98
+ * } from "@evolu/common";
87
99
  *
88
100
  * const original: ReadonlySet<number> = new Set([1, 2]);
89
101
  * const added = addToSet(original, 3);
90
102
  * const unchanged = addToSet(original, 2);
91
103
  *
92
- * expectTypeOf(added).toEqualTypeOf<NonEmptyReadonlySet<number>>();
93
- * expect(added).toEqual(new Set([1, 2, 3]));
94
- * expect(unchanged).not.toBe(original);
104
+ * assertType<NonEmptyReadonlySet<number>, typeof added>();
105
+ * assertEqual(added, new Set([1, 2, 3]));
106
+ * assertTrue(unchanged !== original);
95
107
  * ```
96
108
  *
97
109
  * @group Transformations
@@ -110,11 +122,11 @@ export const addToSet = (set, item) => {
110
122
  * ### Deleting without mutation
111
123
  *
112
124
  * ```ts
113
- * import { deleteFromSet } from "@evolu/common";
125
+ * import { assertEqual, assertTrue, deleteFromSet } from "@evolu/common";
114
126
  *
115
127
  * const original = new Set([1, 2, 3]);
116
- * expect(deleteFromSet(original, 2)).toEqual(new Set([1, 3]));
117
- * expect(deleteFromSet(original, 5)).not.toBe(original);
128
+ * assertEqual(deleteFromSet(original, 2), new Set([1, 3]));
129
+ * assertTrue(deleteFromSet(original, 5) !== original);
118
130
  * ```
119
131
  *
120
132
  * @group Transformations
@@ -147,10 +159,10 @@ export function filterSet(set, predicate) {
147
159
  * ### Reading the first value
148
160
  *
149
161
  * ```ts
150
- * import { createSet, firstInSet } from "@evolu/common";
162
+ * import { assertEqual, createSet, firstInSet } from "@evolu/common";
151
163
  *
152
164
  * const set = createSet(["a", "b", "c"]);
153
- * expect(firstInSet(set)).toBe("a");
165
+ * assertEqual(firstInSet(set), "a");
154
166
  * ```
155
167
  *
156
168
  * @group Accessors
@@ -258,9 +258,9 @@ export declare const sqliteFalse = 0;
258
258
  * ### Example
259
259
  *
260
260
  * ```ts
261
- * import { booleanToSqliteBoolean } from "@evolu/common";
261
+ * import { assertEqual, booleanToSqliteBoolean } from "@evolu/common";
262
262
  *
263
- * expect(booleanToSqliteBoolean(true)).toBe(1);
263
+ * assertEqual(booleanToSqliteBoolean(true), 1);
264
264
  * ```
265
265
  */
266
266
  export declare const booleanToSqliteBoolean: (value: boolean) => SqliteBoolean;
@@ -270,9 +270,9 @@ export declare const booleanToSqliteBoolean: (value: boolean) => SqliteBoolean;
270
270
  * ### Example
271
271
  *
272
272
  * ```ts
273
- * import { sqliteBooleanToBoolean } from "@evolu/common";
273
+ * import { assertTrue, sqliteBooleanToBoolean } from "@evolu/common";
274
274
  *
275
- * expect(sqliteBooleanToBoolean(1)).toBe(true);
275
+ * assertTrue(sqliteBooleanToBoolean(1));
276
276
  * ```
277
277
  */
278
278
  export declare const sqliteBooleanToBoolean: (value: SqliteBoolean) => boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"Sqlite.d.ts","sourceRoot":"","sources":["../../src/Sqlite.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Sqlite.d.ts","sourceRoot":"","sources":["../../src/Sqlite.ts"],"names":[],"mappings":"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"}
@@ -111,12 +111,13 @@ export const createSqlite = (name, options) => async (run) => {
111
111
  return ok(disposable({
112
112
  exec: (query) => {
113
113
  console.debug({ query });
114
- const label = query.options?.logQueryExecutionTime &&
115
- `SqliteQueryExecutionTime ${query.sql}`;
116
- if (label)
114
+ const label = query.options?.logQueryExecutionTime === true
115
+ ? `SqliteQueryExecutionTime ${query.sql}`
116
+ : null;
117
+ if (label !== null)
117
118
  console.time(label);
118
119
  const result = driver.exec(query);
119
- if (label)
120
+ if (label !== null)
120
121
  console.timeEnd(label);
121
122
  if (query.options?.logExplainQueryPlan) {
122
123
  const result = driver.exec({
@@ -201,12 +202,13 @@ const drawSqliteQueryPlan = (rows) => rows
201
202
  let parentId = row.parent;
202
203
  let indent = 0;
203
204
  do {
205
+ // oxlint-disable-next-line eslint/no-loop-func -- find invokes the callback synchronously before parentId changes.
204
206
  const parent = rows.find((r) => r.id === parentId);
205
207
  if (!parent)
206
208
  break;
207
209
  parentId = parent.parent;
208
210
  indent++;
209
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition, no-constant-condition
211
+ // oxlint-disable-next-line eslint/no-constant-condition -- A missing parent terminates the traversal above.
210
212
  } while (true);
211
213
  return `${" ".repeat(indent)}${row.detail}`;
212
214
  })
@@ -244,7 +246,7 @@ export const createPreparedStatementsCache = (factory, disposeFn) => {
244
246
  if (alwaysPrepare !== true && !query.options?.prepare)
245
247
  return null;
246
248
  let statement = statementsBySql.get(query.sql);
247
- if (!statement) {
249
+ if (statement === undefined) {
248
250
  statement = factory(query.sql);
249
251
  statementsBySql.set(query.sql, statement);
250
252
  }
@@ -269,7 +271,7 @@ export const createPreparedStatementsCache = (factory, disposeFn) => {
269
271
  * ### Example
270
272
  *
271
273
  * ```ts
272
- * import { sql } from "@evolu/common";
274
+ * import { assertEqual, assertTrue, sql } from "@evolu/common";
273
275
  *
274
276
  * const id = 42;
275
277
  * const name = "Alice";
@@ -287,12 +289,13 @@ export const createPreparedStatementsCache = (factory, disposeFn) => {
287
289
  * const orderBy = "created_at desc";
288
290
  * const ordered = sql`select * from users order by ${sql.raw(orderBy)};`;
289
291
  *
290
- * expect(select).toEqual({
292
+ * assertEqual(select, {
291
293
  * sql: "select * from users where id = ? and name = ?;",
292
294
  * parameters: [42, "Alice"],
293
295
  * });
294
- * expect(createTable.sql).toContain('create table "users"');
295
- * expect(ordered.sql).toBe(
296
+ * assertTrue(createTable.sql.includes('create table "users"'));
297
+ * assertEqual(
298
+ * ordered.sql,
296
299
  * "select * from users order by created_at desc;",
297
300
  * );
298
301
  * ```
@@ -324,7 +327,7 @@ export const sql = (strings, ...parameters) => {
324
327
  sql.identifier = (identifier) => ({
325
328
  type: "SqlIdentifier",
326
329
  // From Kysely
327
- sql: `"${identifier.replace(/"/g, '""')}"`,
330
+ sql: `"${identifier.replaceAll('"', '""')}"`,
328
331
  });
329
332
  /**
330
333
  * Insert any string verbatim.
@@ -445,9 +448,9 @@ export const sqliteFalse = 0;
445
448
  * ### Example
446
449
  *
447
450
  * ```ts
448
- * import { booleanToSqliteBoolean } from "@evolu/common";
451
+ * import { assertEqual, booleanToSqliteBoolean } from "@evolu/common";
449
452
  *
450
- * expect(booleanToSqliteBoolean(true)).toBe(1);
453
+ * assertEqual(booleanToSqliteBoolean(true), 1);
451
454
  * ```
452
455
  */
453
456
  export const booleanToSqliteBoolean = (value) => value ? sqliteTrue : sqliteFalse;
@@ -457,9 +460,9 @@ export const booleanToSqliteBoolean = (value) => value ? sqliteTrue : sqliteFals
457
460
  * ### Example
458
461
  *
459
462
  * ```ts
460
- * import { sqliteBooleanToBoolean } from "@evolu/common";
463
+ * import { assertTrue, sqliteBooleanToBoolean } from "@evolu/common";
461
464
  *
462
- * expect(sqliteBooleanToBoolean(1)).toBe(true);
465
+ * assertTrue(sqliteBooleanToBoolean(1));
463
466
  * ```
464
467
  */
465
468
  export const sqliteBooleanToBoolean = (value) => value === sqliteTrue;
@@ -1 +1 @@
1
- {"version":3,"file":"Store.d.ts","sourceRoot":"","sources":["../../src/Store.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAElC,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAGpC;;;;;;;GAOG;AACH,MAAM,WAAW,KAAK,CAAC,CAAC,CAAE,SAAQ,aAAa,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;CAAG;AAE7D;;;;;;GAMG;AACH,MAAM,WAAW,aAAa,CAAC,CAAC,CAAE,SAAQ,UAAU;IAClD,8CAA8C;IAC9C,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAEtB;;;OAGG;IACH,QAAQ,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,WAAW,CAAC;CACzD;AAED,2EAA2E;AAC3E,MAAM,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC;AAElC;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC;AAErC;;;;;;;;GAQG;AACH,eAAO,MAAM,WAAW,GAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,KAAG,KAAK,CAAC,CAAC,CAqEnE,CAAC"}
1
+ {"version":3,"file":"Store.d.ts","sourceRoot":"","sources":["../../src/Store.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAElC,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAGpC;;;;;;;GAOG;AACH,MAAM,WAAW,KAAK,CAAC,CAAC,CAAE,SAAQ,aAAa,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;CAAG;AAE7D;;;;;;GAMG;AACH,MAAM,WAAW,aAAa,CAAC,CAAC,CAAE,SAAQ,UAAU;IAClD,8CAA8C;IAC9C,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAEtB;;;OAGG;IACH,QAAQ,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,WAAW,CAAC;CACzD;AAED,2EAA2E;AAC3E,MAAM,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC;AAElC;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC;AAErC;;;;;;;;GAQG;AACH,eAAO,MAAM,WAAW,GAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,KAAG,KAAK,CAAC,CAAC,CAuEnE,CAAC"}
package/dist/src/Store.js CHANGED
@@ -28,7 +28,9 @@ export const createStore = (initialState, eq) => {
28
28
  get: ref.get,
29
29
  subscribe: (listener) => {
30
30
  listeners.add(listener);
31
- return () => listeners.delete(listener);
31
+ return () => {
32
+ listeners.delete(listener);
33
+ };
32
34
  },
33
35
  set: (state) => {
34
36
  const previousState = ref.get();
@@ -1 +1 @@
1
- {"version":3,"file":"String.d.ts","sourceRoot":"","sources":["../../src/String.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;GAGG;AACH,eAAO,MAAM,YAAY,UAAW,MAAM,KAAG,MACC,CAAC;AAE/C,gFAAgF;AAChF,eAAO,MAAM,2BAA2B,UAAW,OAAO,KAAG,MAkB5D,CAAC"}
1
+ {"version":3,"file":"String.d.ts","sourceRoot":"","sources":["../../src/String.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;GAGG;AACH,eAAO,MAAM,YAAY,UAAW,MAAM,KAAG,MACK,CAAC;AAEnD,gFAAgF;AAChF,eAAO,MAAM,2BAA2B,UAAW,OAAO,KAAG,MAkB5D,CAAC"}
@@ -7,7 +7,7 @@
7
7
  * Escapes regular-expression syntax so a string can be used as a literal
8
8
  * pattern.
9
9
  */
10
- export const escapeRegExp = (value) => value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
10
+ export const escapeRegExp = (value) => value.replaceAll(/[.*+?^${}()|[\]\\]/gu, "\\$&");
11
11
  /** Converts an unknown value to a compact, human-readable diagnostic string. */
12
12
  export const safelyStringifyUnknownValue = (value) => {
13
13
  if (typeof value === "string")