@evolu/common 8.0.0-next.4 → 8.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (237) hide show
  1. package/dist/src/Array.d.ts +279 -173
  2. package/dist/src/Array.d.ts.map +1 -1
  3. package/dist/src/Array.js +105 -101
  4. package/dist/src/Assert.d.ts +44 -44
  5. package/dist/src/Assert.d.ts.map +1 -1
  6. package/dist/src/Assert.js +44 -32
  7. package/dist/src/BigInt.d.ts +6 -3
  8. package/dist/src/BigInt.d.ts.map +1 -1
  9. package/dist/src/BigInt.js +5 -2
  10. package/dist/src/Brand.d.ts +27 -40
  11. package/dist/src/Brand.d.ts.map +1 -1
  12. package/dist/src/Buffer.d.ts +27 -11
  13. package/dist/src/Buffer.d.ts.map +1 -1
  14. package/dist/src/Cache.d.ts +9 -4
  15. package/dist/src/Cache.d.ts.map +1 -1
  16. package/dist/src/Cache.js +8 -3
  17. package/dist/src/Callbacks.d.ts +30 -19
  18. package/dist/src/Callbacks.d.ts.map +1 -1
  19. package/dist/src/Console.d.ts +145 -66
  20. package/dist/src/Console.d.ts.map +1 -1
  21. package/dist/src/Console.js +91 -43
  22. package/dist/src/Crypto.d.ts +85 -42
  23. package/dist/src/Crypto.d.ts.map +1 -1
  24. package/dist/src/Crypto.js +44 -20
  25. package/dist/src/Eq.d.ts +87 -21
  26. package/dist/src/Eq.d.ts.map +1 -1
  27. package/dist/src/Eq.js +67 -19
  28. package/dist/src/Error.d.ts +5 -3
  29. package/dist/src/Error.d.ts.map +1 -1
  30. package/dist/src/Error.js +16 -0
  31. package/dist/src/Function.d.ts +119 -58
  32. package/dist/src/Function.d.ts.map +1 -1
  33. package/dist/src/Function.js +86 -43
  34. package/dist/src/Http.d.ts +394 -0
  35. package/dist/src/Http.d.ts.map +1 -0
  36. package/dist/src/Http.js +102 -0
  37. package/dist/src/Identicon.d.ts +16 -7
  38. package/dist/src/Identicon.d.ts.map +1 -1
  39. package/dist/src/Identicon.js +14 -5
  40. package/dist/src/LeakDetector.d.ts +88 -0
  41. package/dist/src/LeakDetector.d.ts.map +1 -0
  42. package/dist/src/LeakDetector.js +86 -0
  43. package/dist/src/LockManager.d.ts +18 -9
  44. package/dist/src/LockManager.d.ts.map +1 -1
  45. package/dist/src/LockManager.js +7 -8
  46. package/dist/src/Lookup.d.ts +43 -13
  47. package/dist/src/Lookup.d.ts.map +1 -1
  48. package/dist/src/Lookup.js +28 -8
  49. package/dist/src/Microtask.d.ts +1 -1
  50. package/dist/src/Microtask.d.ts.map +1 -1
  51. package/dist/src/Microtask.js +3 -7
  52. package/dist/src/Number.d.ts +49 -13
  53. package/dist/src/Number.d.ts.map +1 -1
  54. package/dist/src/Number.js +34 -5
  55. package/dist/src/Object.d.ts +160 -40
  56. package/dist/src/Object.d.ts.map +1 -1
  57. package/dist/src/Object.js +92 -46
  58. package/dist/src/Option.d.ts +10 -7
  59. package/dist/src/Option.d.ts.map +1 -1
  60. package/dist/src/Option.js +9 -6
  61. package/dist/src/Order.d.ts +21 -21
  62. package/dist/src/Order.d.ts.map +1 -1
  63. package/dist/src/Order.js +18 -21
  64. package/dist/src/Platform.d.ts +31 -0
  65. package/dist/src/Platform.d.ts.map +1 -1
  66. package/dist/src/Platform.js +98 -0
  67. package/dist/src/Random.d.ts +32 -17
  68. package/dist/src/Random.d.ts.map +1 -1
  69. package/dist/src/Random.js +12 -8
  70. package/dist/src/Redacted.d.ts +43 -29
  71. package/dist/src/Redacted.d.ts.map +1 -1
  72. package/dist/src/Redacted.js +14 -3
  73. package/dist/src/Ref.d.ts +11 -3
  74. package/dist/src/Ref.d.ts.map +1 -1
  75. package/dist/src/Ref.js +2 -2
  76. package/dist/src/RefCount.d.ts +2 -6
  77. package/dist/src/RefCount.d.ts.map +1 -1
  78. package/dist/src/RefCount.js +33 -90
  79. package/dist/src/Relation.d.ts +70 -5
  80. package/dist/src/Relation.d.ts.map +1 -1
  81. package/dist/src/Relation.js +77 -2
  82. package/dist/src/Resource.d.ts +590 -155
  83. package/dist/src/Resource.d.ts.map +1 -1
  84. package/dist/src/Resource.js +592 -343
  85. package/dist/src/Result.d.ts +838 -191
  86. package/dist/src/Result.d.ts.map +1 -1
  87. package/dist/src/Result.js +163 -102
  88. package/dist/src/Schedule.d.ts +684 -231
  89. package/dist/src/Schedule.d.ts.map +1 -1
  90. package/dist/src/Schedule.js +766 -295
  91. package/dist/src/Set.d.ts +89 -40
  92. package/dist/src/Set.d.ts.map +1 -1
  93. package/dist/src/Set.js +50 -29
  94. package/dist/src/Sqlite.d.ts +29 -72
  95. package/dist/src/Sqlite.d.ts.map +1 -1
  96. package/dist/src/Sqlite.js +41 -46
  97. package/dist/src/StackTrace.d.ts +40 -0
  98. package/dist/src/StackTrace.d.ts.map +1 -0
  99. package/dist/src/StackTrace.js +140 -0
  100. package/dist/src/Store.d.ts +5 -4
  101. package/dist/src/Store.d.ts.map +1 -1
  102. package/dist/src/Store.js +5 -4
  103. package/dist/src/String.d.ts +7 -1
  104. package/dist/src/String.d.ts.map +1 -1
  105. package/dist/src/String.js +20 -7
  106. package/dist/src/Task.d.ts +3572 -1770
  107. package/dist/src/Task.d.ts.map +1 -1
  108. package/dist/src/Task.js +1879 -1274
  109. package/dist/src/Test.d.ts +17 -125
  110. package/dist/src/Test.d.ts.map +1 -1
  111. package/dist/src/Test.js +17 -68
  112. package/dist/src/Time.d.ts +108 -49
  113. package/dist/src/Time.d.ts.map +1 -1
  114. package/dist/src/Time.js +172 -73
  115. package/dist/src/Type.d.ts +3542 -1926
  116. package/dist/src/Type.d.ts.map +1 -1
  117. package/dist/src/Type.js +3070 -1784
  118. package/dist/src/Types.d.ts +200 -108
  119. package/dist/src/Types.d.ts.map +1 -1
  120. package/dist/src/Types.js +39 -8
  121. package/dist/src/WebSocket.d.ts +48 -23
  122. package/dist/src/WebSocket.d.ts.map +1 -1
  123. package/dist/src/WebSocket.js +15 -6
  124. package/dist/src/Worker.d.ts +94 -36
  125. package/dist/src/Worker.d.ts.map +1 -1
  126. package/dist/src/Worker.js +58 -24
  127. package/dist/src/index.d.ts +55 -52
  128. package/dist/src/index.d.ts.map +1 -1
  129. package/dist/src/index.js +3 -1
  130. package/dist/src/intl/cs.d.ts +94 -0
  131. package/dist/src/intl/cs.d.ts.map +1 -0
  132. package/dist/src/intl/cs.js +220 -0
  133. package/dist/src/intl/index.d.ts +7 -0
  134. package/dist/src/intl/index.d.ts.map +1 -0
  135. package/dist/src/intl/index.js +6 -0
  136. package/dist/src/local-first/Db.d.ts +12 -8
  137. package/dist/src/local-first/Db.d.ts.map +1 -1
  138. package/dist/src/local-first/Db.js +109 -132
  139. package/dist/src/local-first/Error.d.ts +4 -4
  140. package/dist/src/local-first/Evolu.d.ts +338 -92
  141. package/dist/src/local-first/Evolu.d.ts.map +1 -1
  142. package/dist/src/local-first/Evolu.js +47 -55
  143. package/dist/src/local-first/LocalAuth.d.ts +4 -4
  144. package/dist/src/local-first/LocalAuth.d.ts.map +1 -1
  145. package/dist/src/local-first/Owner.d.ts +61 -24
  146. package/dist/src/local-first/Owner.d.ts.map +1 -1
  147. package/dist/src/local-first/Owner.js +45 -8
  148. package/dist/src/local-first/Protocol.d.ts +44 -31
  149. package/dist/src/local-first/Protocol.d.ts.map +1 -1
  150. package/dist/src/local-first/Protocol.js +36 -13
  151. package/dist/src/local-first/Query.d.ts +147 -62
  152. package/dist/src/local-first/Query.d.ts.map +1 -1
  153. package/dist/src/local-first/Query.js +112 -58
  154. package/dist/src/local-first/Relay.d.ts +44 -14
  155. package/dist/src/local-first/Relay.d.ts.map +1 -1
  156. package/dist/src/local-first/Schema.d.ts +92 -41
  157. package/dist/src/local-first/Schema.d.ts.map +1 -1
  158. package/dist/src/local-first/Schema.js +25 -8
  159. package/dist/src/local-first/Shared.d.ts +23 -21
  160. package/dist/src/local-first/Shared.d.ts.map +1 -1
  161. package/dist/src/local-first/Shared.js +100 -57
  162. package/dist/src/local-first/Storage.d.ts +53 -32
  163. package/dist/src/local-first/Storage.d.ts.map +1 -1
  164. package/dist/src/local-first/Storage.js +194 -234
  165. package/dist/src/local-first/Timestamp.d.ts +21 -21
  166. package/dist/src/local-first/Timestamp.d.ts.map +1 -1
  167. package/dist/src/local-first/Timestamp.js +2 -2
  168. package/dist/src/local-first/index.d.ts +11 -11
  169. package/package.json +14 -13
  170. package/src/Array.ts +306 -205
  171. package/src/Assert.ts +54 -69
  172. package/src/BigInt.ts +6 -3
  173. package/src/Brand.ts +27 -40
  174. package/src/Buffer.ts +28 -12
  175. package/src/Cache.ts +9 -4
  176. package/src/Callbacks.ts +30 -19
  177. package/src/Console.ts +156 -84
  178. package/src/Crypto.ts +83 -41
  179. package/src/Eq.ts +95 -22
  180. package/src/Error.ts +8 -4
  181. package/src/Function.ts +167 -59
  182. package/src/Http.ts +549 -0
  183. package/src/Identicon.ts +16 -7
  184. package/src/LeakDetector.ts +182 -0
  185. package/src/LockManager.ts +43 -39
  186. package/src/Lookup.ts +62 -28
  187. package/src/Microtask.ts +19 -23
  188. package/src/Number.ts +64 -12
  189. package/src/Object.ts +173 -49
  190. package/src/Option.ts +10 -7
  191. package/src/Order.ts +23 -21
  192. package/src/Platform.ts +136 -0
  193. package/src/Polyfills.ts +6 -12
  194. package/src/Random.ts +32 -19
  195. package/src/Redacted.ts +44 -30
  196. package/src/Ref.ts +14 -6
  197. package/src/RefCount.ts +38 -80
  198. package/src/Relation.ts +202 -10
  199. package/src/Resource.ts +1199 -591
  200. package/src/Result.ts +930 -271
  201. package/src/Schedule.ts +859 -343
  202. package/src/Set.ts +89 -40
  203. package/src/Sqlite.ts +144 -138
  204. package/src/StackTrace.ts +230 -0
  205. package/src/Store.ts +8 -7
  206. package/src/String.ts +22 -5
  207. package/src/Task.ts +5101 -2832
  208. package/src/Test.ts +20 -168
  209. package/src/Time.ts +293 -90
  210. package/src/Type.ts +10034 -4117
  211. package/src/Types.ts +227 -110
  212. package/src/WebSocket.ts +64 -36
  213. package/src/Worker.ts +180 -72
  214. package/src/index.ts +55 -52
  215. package/src/intl/cs.ts +388 -0
  216. package/src/intl/index.ts +7 -0
  217. package/src/local-first/Db.ts +152 -179
  218. package/src/local-first/Error.ts +4 -4
  219. package/src/local-first/Evolu.ts +495 -250
  220. package/src/local-first/LocalAuth.ts +6 -12
  221. package/src/local-first/Owner.ts +58 -21
  222. package/src/local-first/Protocol.ts +49 -31
  223. package/src/local-first/Query.ts +146 -61
  224. package/src/local-first/Relay.ts +51 -21
  225. package/src/local-first/Schema.ts +109 -51
  226. package/src/local-first/Shared.ts +266 -226
  227. package/src/local-first/Storage.ts +266 -264
  228. package/src/local-first/Timestamp.ts +25 -18
  229. package/src/local-first/index.ts +11 -11
  230. package/dist/src/Skiplist.d.ts +0 -28
  231. package/dist/src/Skiplist.d.ts.map +0 -1
  232. package/dist/src/Skiplist.js +0 -64
  233. package/dist/src/Tracer.d.ts +0 -48
  234. package/dist/src/Tracer.d.ts.map +0 -1
  235. package/dist/src/Tracer.js +0 -6
  236. package/src/Skiplist.ts +0 -108
  237. package/src/Tracer.ts +0 -54
package/dist/src/Set.d.ts CHANGED
@@ -8,32 +8,37 @@
8
8
  * Use {@link isNonEmptySet} to narrow to {@link NonEmptyReadonlySet} before
9
9
  * calling functions like {@link firstInSet} that require a non-empty set.
10
10
  *
11
- * ### Example
11
+ * ### Composing immutable and native operations
12
12
  *
13
13
  * ```ts
14
- * // Type guards
15
- * const set: ReadonlySet<number> = new Set([1, 2, 3]);
16
- * if (isNonEmptySet(set)) {
17
- * firstInSet(set);
18
- * }
19
- *
20
- * // Immutable transformations
21
- * const added = addToSet(new Set([1, 2]), 3); // Set {1, 2, 3}
22
- * const removed = deleteFromSet(new Set([1, 2, 3]), 2); // Set {1, 3}
23
- * const mapped = mapSet(new Set([1, 2, 3]), (x) => x * 2); // Set {2, 4, 6}
24
- * const filtered = filterSet(new Set([1, 2, 3, 4]), (x) => x % 2 === 0); // Set {2, 4}
25
- *
26
- * // Set operations
27
- * const union = unionSets(new Set([1, 2]), new Set([2, 3])); // Set {1, 2, 3}
28
- * const intersection = intersectSets(new Set([1, 2]), new Set([2, 3])); // Set {2}
29
- * const difference = differenceSets(new Set([1, 2, 3]), new Set([2])); // Set {1, 3}
14
+ * import {
15
+ * addToSet,
16
+ * deleteFromSet,
17
+ * filterSet,
18
+ * firstInSet,
19
+ * isNonEmptySet,
20
+ * mapSet,
21
+ * } from "@evolu/common";
22
+ *
23
+ * const values = addToSet(new Set([1, 2]), 3);
24
+ * const withoutOne = deleteFromSet(values, 1);
25
+ * const doubled = mapSet(withoutOne, (x) => x * 2);
26
+ * const atLeastFour = filterSet(doubled, (x) => x >= 4);
27
+ *
28
+ * // Evolu's readonly results compose with native Set operations.
29
+ * const union = atLeastFour.union(new Set([6, 8]));
30
+ * const intersection = union.intersection(new Set([4, 6, 8, 10]));
31
+ * const difference = intersection.difference(new Set([4]));
32
+ *
33
+ * if (!isNonEmptySet(difference)) throw new Error("Expected values");
34
+ * expect(firstInSet(difference)).toBe(6);
30
35
  * ```
31
36
  *
32
37
  * @module
33
38
  */
34
- import type { NonEmptyReadonlyArray } from "./Array.js";
35
- import type { Brand } from "./Brand.js";
36
- import type { PredicateWithIndex, RefinementWithIndex } from "./Types.js";
39
+ import type { NonEmptyReadonlyArray } from "./Array.ts";
40
+ import type { Brand } from "./Brand.ts";
41
+ import type { PredicateWithIndex, RefinementWithIndex } from "./Types.ts";
37
42
  /**
38
43
  * An empty readonly set.
39
44
  *
@@ -47,11 +52,17 @@ export declare const emptySet: ReadonlySet<never>;
47
52
  *
48
53
  * Preserves non-empty type when the input array is non-empty.
49
54
  *
50
- * ### Example
55
+ * ### Preserving non-empty inputs
51
56
  *
52
57
  * ```ts
53
- * createSet([1, 2, 3]); // NonEmptyReadonlySet<number>
54
- * createSet([] as ReadonlyArray<number>); // ReadonlySet<number>
58
+ * import { createSet, type NonEmptyReadonlySet } from "@evolu/common";
59
+ *
60
+ * const values = createSet([1, 2, 3]);
61
+ * const empty = createSet([] as ReadonlyArray<number>);
62
+ *
63
+ * expectTypeOf(values).toEqualTypeOf<NonEmptyReadonlySet<number>>();
64
+ * expectTypeOf(empty).toEqualTypeOf<ReadonlySet<number>>();
65
+ * expect(values).toEqual(new Set([1, 2, 3]));
55
66
  * ```
56
67
  *
57
68
  * @group Constructors
@@ -84,13 +95,16 @@ export type NonEmptyReadonlySet<T> = ReadonlySet<T> & Brand<"NonEmpty">;
84
95
  * negated guard is better than `.size === 0` for early returns because
85
96
  * TypeScript narrows the type after the check.
86
97
  *
87
- * ### Example
98
+ * ### Narrowing before access
88
99
  *
89
100
  * ```ts
101
+ * import { isNonEmptySet, type NonEmptyReadonlySet } from "@evolu/common";
102
+ *
90
103
  * const set: ReadonlySet<number> = new Set([1, 2, 3]);
91
- * if (isNonEmptySet(set)) {
92
- * firstInSet(set); // set is NonEmptyReadonlySet<number>
93
- * }
104
+ * if (!isNonEmptySet(set)) throw new Error("Expected a non-empty set");
105
+ *
106
+ * expectTypeOf(set).toEqualTypeOf<NonEmptyReadonlySet<number>>();
107
+ * expect(set.size).toBe(3);
94
108
  * ```
95
109
  *
96
110
  * @group Type guards
@@ -102,11 +116,18 @@ export declare const isNonEmptySet: <T>(set: ReadonlySet<T>) => set is NonEmptyR
102
116
  * If the item already exists, returns a new set with the same elements (still a
103
117
  * new reference for change detection).
104
118
  *
105
- * ### Example
119
+ * ### Adding without mutation
106
120
  *
107
121
  * ```ts
108
- * addToSet(new Set([1, 2]), 3); // Set {1, 2, 3}
109
- * addToSet(new Set([1, 2]), 2); // Set {1, 2} (new reference)
122
+ * import { addToSet, type NonEmptyReadonlySet } from "@evolu/common";
123
+ *
124
+ * const original: ReadonlySet<number> = new Set([1, 2]);
125
+ * const added = addToSet(original, 3);
126
+ * const unchanged = addToSet(original, 2);
127
+ *
128
+ * expectTypeOf(added).toEqualTypeOf<NonEmptyReadonlySet<number>>();
129
+ * expect(added).toEqual(new Set([1, 2, 3]));
130
+ * expect(unchanged).not.toBe(original);
110
131
  * ```
111
132
  *
112
133
  * @group Transformations
@@ -118,11 +139,14 @@ export declare const addToSet: <T>(set: ReadonlySet<T>, item: T) => NonEmptyRead
118
139
  * If the item doesn't exist, returns a new set with the same elements (still a
119
140
  * new reference for change detection).
120
141
  *
121
- * ### Example
142
+ * ### Deleting without mutation
122
143
  *
123
144
  * ```ts
124
- * deleteFromSet(new Set([1, 2, 3]), 2); // Set {1, 3}
125
- * deleteFromSet(new Set([1, 2]), 5); // Set {1, 2} (new reference)
145
+ * import { deleteFromSet } from "@evolu/common";
146
+ *
147
+ * 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);
126
150
  * ```
127
151
  *
128
152
  * @group Transformations
@@ -136,11 +160,22 @@ export declare const deleteFromSet: <T>(set: ReadonlySet<T>, item: T) => Readonl
136
160
  * Note: If the mapper produces duplicate values, the resulting set will have
137
161
  * fewer elements.
138
162
  *
139
- * ### Example
163
+ * ### Mapping non-empty sets
140
164
  *
141
165
  * ```ts
142
- * mapSet(new Set([1, 2, 3]), (x) => x * 2); // Set {2, 4, 6}
143
- * mapSet(new Set([1, 2, 3]), (x) => x % 2); // Set {1, 0} (duplicates merged)
166
+ * import {
167
+ * createSet,
168
+ * mapSet,
169
+ * type NonEmptyReadonlySet,
170
+ * } from "@evolu/common";
171
+ *
172
+ * const original = createSet([1, 2, 3]);
173
+ * const doubled = mapSet(original, (x) => x * 2);
174
+ * const parity = mapSet(original, (x) => x % 2);
175
+ *
176
+ * expectTypeOf(doubled).toEqualTypeOf<NonEmptyReadonlySet<number>>();
177
+ * expect(doubled).toEqual(new Set([2, 4, 6]));
178
+ * expect(parity).toEqual(new Set([1, 0]));
144
179
  * ```
145
180
  *
146
181
  * @group Transformations
@@ -155,10 +190,21 @@ export declare function mapSet<T, U>(set: ReadonlySet<T>, mapper: (item: T) => U
155
190
  * When used with a refinement function (with `value is Type` syntax),
156
191
  * TypeScript will narrow the result type.
157
192
  *
158
- * ### Example
193
+ * ### Filtering and refining
159
194
  *
160
195
  * ```ts
161
- * filterSet(new Set([1, 2, 3, 4, 5]), (x) => x % 2 === 0); // Set {2, 4}
196
+ * import { filterSet } from "@evolu/common";
197
+ *
198
+ * const evens = filterSet(new Set([1, 2, 3, 4, 5]), (x) => x % 2 === 0);
199
+ * expect(evens).toEqual(new Set([2, 4]));
200
+ *
201
+ * const mixed: ReadonlySet<string | number> = new Set([1, "a", 2, "b"]);
202
+ * const strings = filterSet(
203
+ * mixed,
204
+ * (value): value is string => typeof value === "string",
205
+ * );
206
+ * expectTypeOf(strings).toEqualTypeOf<ReadonlySet<string>>();
207
+ * expect(strings).toEqual(new Set(["a", "b"]));
162
208
  * ```
163
209
  *
164
210
  * @group Transformations
@@ -169,10 +215,13 @@ export declare function filterSet<T>(set: ReadonlySet<T>, predicate: PredicateWi
169
215
  /**
170
216
  * Returns the first element of a non-empty set (by insertion order).
171
217
  *
172
- * ### Example
218
+ * ### Reading the first value
173
219
  *
174
220
  * ```ts
175
- * firstInSet(new Set(["a", "b", "c"])); // "a"
221
+ * import { createSet, firstInSet } from "@evolu/common";
222
+ *
223
+ * const set = createSet(["a", "b", "c"]);
224
+ * expect(firstInSet(set)).toBe("a");
176
225
  * ```
177
226
  *
178
227
  * @group Accessors
@@ -1 +1 @@
1
- {"version":3,"file":"Set.d.ts","sourceRoot":"","sources":["../../src/Set.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;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;;;;;;;;;;;;;GAaG;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;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,aAAa,GAAI,CAAC,EAC7B,KAAK,WAAW,CAAC,CAAC,CAAC,KAClB,GAAG,IAAI,mBAAmB,CAAC,CAAC,CAAiB,CAAC;AAEjD;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,QAAQ,GAAI,CAAC,EACxB,KAAK,WAAW,CAAC,CAAC,CAAC,EACnB,MAAM,CAAC,KACN,mBAAmB,CAAC,CAAC,CAIvB,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,aAAa,GAAI,CAAC,EAC7B,KAAK,WAAW,CAAC,CAAC,CAAC,EACnB,MAAM,CAAC,KACN,WAAW,CAAC,CAAC,CAIf,CAAC;AAEF;;;;;;;;;;;;;;;;GAgBG;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;;;;;;;;;;;;;;GAcG;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;;;;;;;;;;GAUG;AACH,eAAO,MAAM,UAAU,GAAI,CAAC,EAAE,KAAK,mBAAmB,CAAC,CAAC,CAAC,KAAG,CAC5B,CAAC"}
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"}
package/dist/src/Set.js CHANGED
@@ -8,25 +8,30 @@
8
8
  * Use {@link isNonEmptySet} to narrow to {@link NonEmptyReadonlySet} before
9
9
  * calling functions like {@link firstInSet} that require a non-empty set.
10
10
  *
11
- * ### Example
11
+ * ### Composing immutable and native operations
12
12
  *
13
13
  * ```ts
14
- * // Type guards
15
- * const set: ReadonlySet<number> = new Set([1, 2, 3]);
16
- * if (isNonEmptySet(set)) {
17
- * firstInSet(set);
18
- * }
19
- *
20
- * // Immutable transformations
21
- * const added = addToSet(new Set([1, 2]), 3); // Set {1, 2, 3}
22
- * const removed = deleteFromSet(new Set([1, 2, 3]), 2); // Set {1, 3}
23
- * const mapped = mapSet(new Set([1, 2, 3]), (x) => x * 2); // Set {2, 4, 6}
24
- * const filtered = filterSet(new Set([1, 2, 3, 4]), (x) => x % 2 === 0); // Set {2, 4}
25
- *
26
- * // Set operations
27
- * const union = unionSets(new Set([1, 2]), new Set([2, 3])); // Set {1, 2, 3}
28
- * const intersection = intersectSets(new Set([1, 2]), new Set([2, 3])); // Set {2}
29
- * const difference = differenceSets(new Set([1, 2, 3]), new Set([2])); // Set {1, 3}
14
+ * import {
15
+ * addToSet,
16
+ * deleteFromSet,
17
+ * filterSet,
18
+ * firstInSet,
19
+ * isNonEmptySet,
20
+ * mapSet,
21
+ * } from "@evolu/common";
22
+ *
23
+ * const values = addToSet(new Set([1, 2]), 3);
24
+ * const withoutOne = deleteFromSet(values, 1);
25
+ * const doubled = mapSet(withoutOne, (x) => x * 2);
26
+ * const atLeastFour = filterSet(doubled, (x) => x >= 4);
27
+ *
28
+ * // Evolu's readonly results compose with native Set operations.
29
+ * const union = atLeastFour.union(new Set([6, 8]));
30
+ * const intersection = union.intersection(new Set([4, 6, 8, 10]));
31
+ * const difference = intersection.difference(new Set([4]));
32
+ *
33
+ * if (!isNonEmptySet(difference)) throw new Error("Expected values");
34
+ * expect(firstInSet(difference)).toBe(6);
30
35
  * ```
31
36
  *
32
37
  * @module
@@ -54,13 +59,16 @@ export function createSet(items) {
54
59
  * negated guard is better than `.size === 0` for early returns because
55
60
  * TypeScript narrows the type after the check.
56
61
  *
57
- * ### Example
62
+ * ### Narrowing before access
58
63
  *
59
64
  * ```ts
65
+ * import { isNonEmptySet, type NonEmptyReadonlySet } from "@evolu/common";
66
+ *
60
67
  * const set: ReadonlySet<number> = new Set([1, 2, 3]);
61
- * if (isNonEmptySet(set)) {
62
- * firstInSet(set); // set is NonEmptyReadonlySet<number>
63
- * }
68
+ * if (!isNonEmptySet(set)) throw new Error("Expected a non-empty set");
69
+ *
70
+ * expectTypeOf(set).toEqualTypeOf<NonEmptyReadonlySet<number>>();
71
+ * expect(set.size).toBe(3);
64
72
  * ```
65
73
  *
66
74
  * @group Type guards
@@ -72,11 +80,18 @@ export const isNonEmptySet = (set) => set.size > 0;
72
80
  * If the item already exists, returns a new set with the same elements (still a
73
81
  * new reference for change detection).
74
82
  *
75
- * ### Example
83
+ * ### Adding without mutation
76
84
  *
77
85
  * ```ts
78
- * addToSet(new Set([1, 2]), 3); // Set {1, 2, 3}
79
- * addToSet(new Set([1, 2]), 2); // Set {1, 2} (new reference)
86
+ * import { addToSet, type NonEmptyReadonlySet } from "@evolu/common";
87
+ *
88
+ * const original: ReadonlySet<number> = new Set([1, 2]);
89
+ * const added = addToSet(original, 3);
90
+ * const unchanged = addToSet(original, 2);
91
+ *
92
+ * expectTypeOf(added).toEqualTypeOf<NonEmptyReadonlySet<number>>();
93
+ * expect(added).toEqual(new Set([1, 2, 3]));
94
+ * expect(unchanged).not.toBe(original);
80
95
  * ```
81
96
  *
82
97
  * @group Transformations
@@ -92,11 +107,14 @@ export const addToSet = (set, item) => {
92
107
  * If the item doesn't exist, returns a new set with the same elements (still a
93
108
  * new reference for change detection).
94
109
  *
95
- * ### Example
110
+ * ### Deleting without mutation
96
111
  *
97
112
  * ```ts
98
- * deleteFromSet(new Set([1, 2, 3]), 2); // Set {1, 3}
99
- * deleteFromSet(new Set([1, 2]), 5); // Set {1, 2} (new reference)
113
+ * import { deleteFromSet } from "@evolu/common";
114
+ *
115
+ * 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);
100
118
  * ```
101
119
  *
102
120
  * @group Transformations
@@ -126,10 +144,13 @@ export function filterSet(set, predicate) {
126
144
  /**
127
145
  * Returns the first element of a non-empty set (by insertion order).
128
146
  *
129
- * ### Example
147
+ * ### Reading the first value
130
148
  *
131
149
  * ```ts
132
- * firstInSet(new Set(["a", "b", "c"])); // "a"
150
+ * import { createSet, firstInSet } from "@evolu/common";
151
+ *
152
+ * const set = createSet(["a", "b", "c"]);
153
+ * expect(firstInSet(set)).toBe("a");
133
154
  * ```
134
155
  *
135
156
  * @group Accessors
@@ -3,13 +3,12 @@
3
3
  *
4
4
  * @module
5
5
  */
6
- import type { Brand } from "./Brand.js";
7
- import type { EncryptionKey } from "./Crypto.js";
8
- import type { Eq } from "./Eq.js";
9
- import type { Result } from "./Result.js";
10
- import type { Run, Task } from "./Task.js";
11
- import { type TestDeps } from "./Test.js";
12
- import type { InferType, Name, Typed } from "./Type.js";
6
+ import type { Brand } from "./Brand.ts";
7
+ import type { EncryptionKey } from "./Crypto.ts";
8
+ import type { Eq } from "./Eq.ts";
9
+ import type { Result } from "./Result.ts";
10
+ import { type Task, type TestRunDep } from "./Task.ts";
11
+ import { type ArrayType, type InferType, type Name, type ObjectType, type RecordType, type SetType, String, type Typed } from "./Type.ts";
13
12
  /**
14
13
  * Platform-agnostic SQLite wrapping a {@link SqliteDriver}.
15
14
  *
@@ -61,8 +60,8 @@ export type SafeSql = string & Brand<"SafeSql">;
61
60
  * Note that Evolu can't support Int64 because expo-sqlite (and some others) do
62
61
  * not support it.
63
62
  */
64
- export declare const SqliteValue: import("./Type.js").UnionType<[import("./Type.js").Type<"Null", null, null, import("./Type.js").NullError, null, import("./Type.js").NullError>, import("./Type.js").Type<"String", string, string, import("./Type.js").StringError, string, import("./Type.js").StringError>, import("./Type.js").Type<"Number", number, number, import("./Type.js").NumberError, number, import("./Type.js").NumberError>, import("./Type.js").Type<"Uint8Array", Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>, import("./Type.js").Uint8ArrayError, Uint8Array<ArrayBufferLike>, import("./Type.js").Uint8ArrayError>]>;
65
- export type SqliteValue = typeof SqliteValue.Type;
63
+ export declare const SqliteValue: import("./Type.ts").UnionType<readonly [import("./Type.ts").LiteralType<null>, import("./Type.ts").Type<"String", string, string, import("./Type.ts").TypeOfError<"String">, null, import("./Type.ts").TypeOfError<"String">, never, string, true>, import("./Type.ts").Type<"Number", number, number, import("./Type.ts").TypeOfError<"Number">, null, import("./Type.ts").TypeOfError<"Number">, never, number, true>, import("./Type.ts").Type<"Uint8Array", Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>, import("./Type.ts").ObjectTagError<"Uint8Array">, null, import("./Type.ts").ObjectTagError<"Uint8Array">, never, Uint8Array<ArrayBufferLike>, true>]>;
64
+ export type SqliteValue = typeof SqliteValue.Output;
66
65
  /** Equality comparison for {@link SqliteValue}. */
67
66
  export declare const eqSqliteValue: Eq<SqliteValue>;
68
67
  /** Options for configuring {@link SqliteQuery} execution behavior. */
@@ -145,10 +144,7 @@ export type SqliteDriverOptions = {
145
144
  */
146
145
  export declare const createSqlite: (name: Name, options?: SqliteDriverOptions) => Task<Sqlite, never, CreateSqliteDriverDep>;
147
146
  /** Creates a test setup with a in-memory {@link Sqlite}. */
148
- export declare const testSetupSqlite: (deps: CreateSqliteDriverDep) => Promise<AsyncDisposable & SqliteDep & {
149
- readonly run: Run<TestDeps & CreateSqliteDriverDep & SqliteDep>;
150
- readonly sqlite: Sqlite;
151
- }>;
147
+ export declare const testSetupSqlite: (deps: CreateSqliteDriverDep) => Promise<AsyncDisposable & SqliteDep & TestRunDep<CreateSqliteDriverDep & SqliteDep>>;
152
148
  /**
153
149
  * Cache for compiled prepared statements.
154
150
  *
@@ -177,54 +173,16 @@ export interface RawSql extends Typed<"RawSql"> {
177
173
  }
178
174
  /** A parameter accepted by the {@link sql} tagged template. */
179
175
  export type SqlTemplateParam = SqliteValue | SqlIdentifier | RawSql;
180
- /**
181
- * Creates a safe SQL query using a tagged template literal.
182
- *
183
- * Parameters are automatically escaped and bound as SQLite values. Use
184
- * `sql.identifier` for column/table names and `sql.raw` for unescaped SQL.
185
- *
186
- * ### Example
187
- *
188
- * ```ts
189
- * const id = 42;
190
- * const name = "Alice";
191
- *
192
- * const result = sqlite.exec(sql`
193
- * select *
194
- * from users
195
- * where id = ${id} and name = ${name};
196
- * `);
197
- *
198
- * // For identifiers
199
- * const tableName = "users";
200
- * sqlite.exec(sql`
201
- * create table ${sql.identifier(tableName)} (
202
- * "id" text primary key,
203
- * "name" text not null
204
- * );
205
- * `);
206
- *
207
- * // For raw SQL (use with caution)
208
- * const orderBy = "created_at desc";
209
- * sqlite.exec(sql`select * from users order by ${sql.raw(orderBy)};`);
210
- * ```
211
- *
212
- * ## TIP
213
- *
214
- * Use `prettier-plugin-sql-cst` for SQL formatting. Like Prettier for
215
- * JavaScript, this plugin formats SQL expressions differently depending on
216
- * their length.
217
- */
218
- export declare const sql: {
219
- (strings: TemplateStringsArray, ...parameters: Array<SqlTemplateParam>): SqliteQuery;
220
- identifier(identifier: string): SqlIdentifier;
221
- raw(raw: string): RawSql;
222
- prepared(strings: TemplateStringsArray, ...parameters: Array<SqlTemplateParam>): SqliteQuery;
223
- };
176
+ export declare function sql(strings: TemplateStringsArray, ...parameters: Array<SqlTemplateParam>): SqliteQuery;
177
+ export declare namespace sql {
178
+ var identifier: (identifier: string) => SqlIdentifier;
179
+ var raw: (raw: string) => RawSql;
180
+ var prepared: (strings: TemplateStringsArray, ...parameters: Array<SqlTemplateParam>) => SqliteQuery;
181
+ }
224
182
  /** Index metadata stored in `sqlite_master` for a {@link Sqlite} database. */
225
- export declare const SqliteIndex: import("./Type.js").ObjectType<{
226
- name: import("./Type.js").Type<"String", string, string, import("./Type.js").StringError, string, import("./Type.js").StringError>;
227
- sql: import("./Type.js").Type<"String", string, string, import("./Type.js").StringError, string, import("./Type.js").StringError>;
183
+ export declare const SqliteIndex: ObjectType<{
184
+ readonly name: typeof String;
185
+ readonly sql: typeof String;
228
186
  }>;
229
187
  export interface SqliteIndex extends InferType<typeof SqliteIndex> {
230
188
  }
@@ -235,12 +193,9 @@ export declare const eqSqliteIndex: Eq<SqliteIndex>;
235
193
  *
236
194
  * Includes table-column mappings and user-visible indexes.
237
195
  */
238
- export declare const SqliteSchema: import("./Type.js").ObjectType<{
239
- tables: import("./Type.js").RecordType<"String", string, string, import("./Type.js").StringError, string, import("./Type.js").StringError, import("./Type.js").SetType<import("./Type.js").Type<"String", string, string, import("./Type.js").StringError, string, import("./Type.js").StringError>>>;
240
- indexes: import("./Type.js").ArrayType<import("./Type.js").ObjectType<{
241
- name: import("./Type.js").Type<"String", string, string, import("./Type.js").StringError, string, import("./Type.js").StringError>;
242
- sql: import("./Type.js").Type<"String", string, string, import("./Type.js").StringError, string, import("./Type.js").StringError>;
243
- }>>;
196
+ export declare const SqliteSchema: ObjectType<{
197
+ readonly tables: RecordType<typeof String, SetType<typeof String>>;
198
+ readonly indexes: ArrayType<typeof SqliteIndex>;
244
199
  }>;
245
200
  export interface SqliteSchema extends InferType<typeof SqliteSchema> {
246
201
  }
@@ -283,8 +238,8 @@ export declare const getSqliteSnapshot: (deps: SqliteDep) => SqliteSnapshot;
283
238
  * - Use {@link booleanToSqliteBoolean} and {@link sqliteBooleanToBoolean} for
284
239
  * converting between JavaScript booleans and SQLite boolean values.
285
240
  */
286
- export declare const SqliteBoolean: import("./Type.js").UnionType<[import("./Type.js").LiteralType<0>, import("./Type.js").LiteralType<1>]>;
287
- export type SqliteBoolean = typeof SqliteBoolean.Type;
241
+ export declare const SqliteBoolean: import("./Type.ts").UnionType<readonly [import("./Type.ts").LiteralType<0>, import("./Type.ts").LiteralType<1>]>;
242
+ export type SqliteBoolean = typeof SqliteBoolean.Output;
288
243
  /**
289
244
  * Represents the {@link SqliteBoolean} value for `true`.
290
245
  *
@@ -303,8 +258,9 @@ export declare const sqliteFalse = 0;
303
258
  * ### Example
304
259
  *
305
260
  * ```ts
306
- * const isActive = true;
307
- * const sqlValue = booleanToSqliteBoolean(isActive); // Returns 1
261
+ * import { booleanToSqliteBoolean } from "@evolu/common";
262
+ *
263
+ * expect(booleanToSqliteBoolean(true)).toBe(1);
308
264
  * ```
309
265
  */
310
266
  export declare const booleanToSqliteBoolean: (value: boolean) => SqliteBoolean;
@@ -314,8 +270,9 @@ export declare const booleanToSqliteBoolean: (value: boolean) => SqliteBoolean;
314
270
  * ### Example
315
271
  *
316
272
  * ```ts
317
- * const sqlValue: SqliteBoolean = 1;
318
- * const bool = sqliteBooleanToBoolean(sqlValue); // Returns true
273
+ * import { sqliteBooleanToBoolean } from "@evolu/common";
274
+ *
275
+ * expect(sqliteBooleanToBoolean(1)).toBe(true);
319
276
  * ```
320
277
  */
321
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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"}