@evolu/common 8.7.0 → 8.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/Array.d.ts +21 -21
- package/dist/src/Array.js +5 -5
- package/dist/src/Assert.d.ts +498 -141
- package/dist/src/Assert.d.ts.map +1 -1
- package/dist/src/Assert.js +648 -99
- package/dist/src/{Buffer.d.ts → Binary.d.ts} +85 -12
- package/dist/src/Binary.d.ts.map +1 -0
- package/dist/src/{Buffer.js → Binary.js} +206 -24
- package/dist/src/Console.d.ts +2 -10
- package/dist/src/Console.d.ts.map +1 -1
- package/dist/src/Console.js +6 -12
- package/dist/src/Crypto.d.ts +5 -5
- package/dist/src/Crypto.js +1 -1
- package/dist/src/Eq.d.ts +35 -40
- package/dist/src/Eq.d.ts.map +1 -1
- package/dist/src/Eq.js +51 -87
- package/dist/src/Function.d.ts +9 -14
- package/dist/src/Function.d.ts.map +1 -1
- package/dist/src/Function.js +7 -9
- package/dist/src/Http.d.ts +6 -7
- package/dist/src/Http.d.ts.map +1 -1
- package/dist/src/LeakDetector.d.ts.map +1 -1
- package/dist/src/LeakDetector.js +1 -0
- package/dist/src/LockManager.d.ts +1 -1
- package/dist/src/LockManager.js +1 -1
- package/dist/src/Lookup.d.ts +3 -2
- package/dist/src/Lookup.d.ts.map +1 -1
- package/dist/src/Lookup.js +4 -3
- package/dist/src/Number.d.ts +1 -1
- package/dist/src/Number.d.ts.map +1 -1
- package/dist/src/Number.js +1 -1
- package/dist/src/Object.d.ts +4 -4
- package/dist/src/Object.d.ts.map +1 -1
- package/dist/src/Object.js +5 -4
- package/dist/src/Option.d.ts +1 -2
- package/dist/src/Option.d.ts.map +1 -1
- package/dist/src/Option.js +1 -2
- package/dist/src/Platform.js +2 -0
- package/dist/src/Polyfills.d.ts +6 -0
- package/dist/src/Polyfills.d.ts.map +1 -1
- package/dist/src/Polyfills.js +10 -1
- package/dist/src/Random.d.ts +1 -1
- package/dist/src/Result.d.ts +49 -54
- package/dist/src/Result.d.ts.map +1 -1
- package/dist/src/Result.js +17 -22
- package/dist/src/Set.d.ts +6 -6
- package/dist/src/Set.js +2 -2
- package/dist/src/Sqlite.js +1 -1
- package/dist/src/String.js +3 -2
- package/dist/src/Task.d.ts +32 -32
- package/dist/src/Task.d.ts.map +1 -1
- package/dist/src/Task.js +20 -22
- package/dist/src/Test.d.ts +31 -3
- package/dist/src/Test.d.ts.map +1 -1
- package/dist/src/Test.js +46 -3
- package/dist/src/Time.d.ts +3 -11
- package/dist/src/Time.d.ts.map +1 -1
- package/dist/src/Time.js +10 -18
- package/dist/src/Type.d.ts +87 -85
- package/dist/src/Type.d.ts.map +1 -1
- package/dist/src/Type.js +70 -63
- package/dist/src/Types.d.ts +12 -12
- package/dist/src/Types.js +1 -1
- package/dist/src/WebSocket.d.ts +4 -7
- package/dist/src/WebSocket.d.ts.map +1 -1
- package/dist/src/Worker.d.ts +1 -1
- package/dist/src/Worker.js +7 -7
- package/dist/src/index.d.ts +1 -1
- package/dist/src/index.js +1 -1
- package/dist/src/intl/_en.d.ts.map +1 -1
- package/dist/src/intl/_en.js +1 -1
- package/dist/src/intl/ar.d.ts.map +1 -1
- package/dist/src/intl/ar.js +1 -1
- package/dist/src/intl/bn.d.ts.map +1 -1
- package/dist/src/intl/bn.js +1 -1
- package/dist/src/intl/ca.d.ts.map +1 -1
- package/dist/src/intl/ca.js +1 -1
- package/dist/src/intl/cs.d.ts.map +1 -1
- package/dist/src/intl/cs.js +1 -1
- package/dist/src/intl/da.d.ts.map +1 -1
- package/dist/src/intl/da.js +1 -1
- package/dist/src/intl/de.d.ts.map +1 -1
- package/dist/src/intl/de.js +1 -1
- package/dist/src/intl/el.d.ts.map +1 -1
- package/dist/src/intl/el.js +1 -1
- package/dist/src/intl/es.d.ts.map +1 -1
- package/dist/src/intl/es.js +1 -1
- package/dist/src/intl/fa.d.ts.map +1 -1
- package/dist/src/intl/fa.js +1 -1
- package/dist/src/intl/fi.d.ts.map +1 -1
- package/dist/src/intl/fi.js +1 -1
- package/dist/src/intl/fil.d.ts.map +1 -1
- package/dist/src/intl/fil.js +1 -1
- package/dist/src/intl/fr.d.ts.map +1 -1
- package/dist/src/intl/fr.js +1 -1
- package/dist/src/intl/he.d.ts.map +1 -1
- package/dist/src/intl/he.js +1 -1
- package/dist/src/intl/hi.d.ts.map +1 -1
- package/dist/src/intl/hi.js +1 -1
- package/dist/src/intl/hr.d.ts.map +1 -1
- package/dist/src/intl/hr.js +1 -1
- package/dist/src/intl/hu.d.ts.map +1 -1
- package/dist/src/intl/hu.js +1 -1
- package/dist/src/intl/id.d.ts.map +1 -1
- package/dist/src/intl/id.js +1 -1
- package/dist/src/intl/it.d.ts.map +1 -1
- package/dist/src/intl/it.js +1 -1
- package/dist/src/intl/ja.d.ts.map +1 -1
- package/dist/src/intl/ja.js +1 -1
- package/dist/src/intl/ko.d.ts.map +1 -1
- package/dist/src/intl/ko.js +1 -1
- package/dist/src/intl/ml.d.ts.map +1 -1
- package/dist/src/intl/ml.js +1 -1
- package/dist/src/intl/mr.d.ts.map +1 -1
- package/dist/src/intl/mr.js +1 -1
- package/dist/src/intl/ms.d.ts.map +1 -1
- package/dist/src/intl/ms.js +1 -1
- package/dist/src/intl/nb.d.ts.map +1 -1
- package/dist/src/intl/nb.js +1 -1
- package/dist/src/intl/nl.d.ts.map +1 -1
- package/dist/src/intl/nl.js +1 -1
- package/dist/src/intl/pa.d.ts.map +1 -1
- package/dist/src/intl/pa.js +1 -1
- package/dist/src/intl/pl.d.ts.map +1 -1
- package/dist/src/intl/pl.js +1 -1
- package/dist/src/intl/pt-BR.d.ts.map +1 -1
- package/dist/src/intl/pt-BR.js +1 -1
- package/dist/src/intl/pt.d.ts.map +1 -1
- package/dist/src/intl/pt.js +1 -1
- package/dist/src/intl/ro.d.ts.map +1 -1
- package/dist/src/intl/ro.js +1 -1
- package/dist/src/intl/sk.d.ts.map +1 -1
- package/dist/src/intl/sk.js +1 -1
- package/dist/src/intl/sl.d.ts.map +1 -1
- package/dist/src/intl/sl.js +1 -1
- package/dist/src/intl/sv.d.ts.map +1 -1
- package/dist/src/intl/sv.js +1 -1
- package/dist/src/intl/sw.d.ts.map +1 -1
- package/dist/src/intl/sw.js +1 -1
- package/dist/src/intl/ta.d.ts.map +1 -1
- package/dist/src/intl/ta.js +1 -1
- package/dist/src/intl/te.d.ts.map +1 -1
- package/dist/src/intl/te.js +1 -1
- package/dist/src/intl/th.d.ts.map +1 -1
- package/dist/src/intl/th.js +1 -1
- package/dist/src/intl/tr.d.ts.map +1 -1
- package/dist/src/intl/tr.js +1 -1
- package/dist/src/intl/uk.d.ts.map +1 -1
- package/dist/src/intl/uk.js +1 -1
- package/dist/src/intl/ur.d.ts.map +1 -1
- package/dist/src/intl/ur.js +1 -1
- package/dist/src/intl/vi.d.ts.map +1 -1
- package/dist/src/intl/vi.js +1 -1
- package/dist/src/intl/zh-CN.d.ts.map +1 -1
- package/dist/src/intl/zh-CN.js +1 -1
- package/dist/src/intl/zh-TW.d.ts.map +1 -1
- package/dist/src/intl/zh-TW.js +1 -1
- package/dist/src/local-first/Evolu.d.ts +12 -12
- package/dist/src/local-first/Evolu.d.ts.map +1 -1
- package/dist/src/local-first/Evolu.js +2 -2
- package/dist/src/local-first/Protocol.d.ts +14 -76
- package/dist/src/local-first/Protocol.d.ts.map +1 -1
- package/dist/src/local-first/Protocol.js +29 -206
- package/dist/src/local-first/Query.d.ts +11 -11
- package/dist/src/local-first/Query.js +6 -6
- package/dist/src/local-first/Relay.d.ts +2 -2
- package/dist/src/local-first/Schema.d.ts +3 -5
- package/dist/src/local-first/Schema.d.ts.map +1 -1
- package/dist/src/local-first/Schema.js +2 -4
- package/dist/src/local-first/Shared.d.ts.map +1 -1
- package/dist/src/local-first/Shared.js +5 -5
- package/dist/src/local-first/Storage.js +4 -4
- package/dist/src/local-first/Timestamp.d.ts +9 -0
- package/dist/src/local-first/Timestamp.d.ts.map +1 -1
- package/dist/src/local-first/Timestamp.js +13 -10
- package/package.json +7 -4
- package/src/Array.test.ts +809 -0
- package/src/Array.ts +21 -21
- package/src/Assert.test.ts +1232 -0
- package/src/Assert.ts +1023 -227
- package/src/BigInt.test.ts +28 -0
- package/src/Binary.test.ts +1128 -0
- package/src/{Buffer.ts → Binary.ts} +273 -46
- package/src/Brand.test.ts +90 -0
- package/src/Cache.test.ts +183 -0
- package/src/Callbacks.test.ts +66 -0
- package/src/Console.test.ts +809 -0
- package/src/Console.ts +9 -17
- package/src/Crypto.test.ts +138 -0
- package/src/Crypto.ts +5 -5
- package/src/Eq.test.ts +333 -0
- package/src/Eq.ts +110 -176
- package/src/Error.test.ts +118 -0
- package/src/Function.test.ts +204 -0
- package/src/Function.ts +10 -15
- package/src/Http.test.ts +816 -0
- package/src/Http.ts +6 -7
- package/src/LeakDetector.test.ts +210 -0
- package/src/LeakDetector.ts +1 -0
- package/src/LockManager.ts +2 -2
- package/src/Lookup.test.ts +418 -0
- package/src/Lookup.ts +4 -3
- package/src/Microtask.test.ts +140 -0
- package/src/Number.test.ts +218 -0
- package/src/Number.ts +2 -2
- package/src/Object.test.ts +293 -0
- package/src/Object.ts +5 -4
- package/src/Option.test.ts +104 -0
- package/src/Option.ts +1 -2
- package/src/Order.test.ts +56 -0
- package/src/Platform.ts +2 -0
- package/src/Polyfills.ts +9 -4
- package/src/Random.test.ts +89 -0
- package/src/Random.ts +1 -1
- package/src/Ref.test.ts +139 -0
- package/src/RefCount.test.ts +184 -0
- package/src/Relation.test.ts +505 -0
- package/src/Resource.test.ts +4623 -0
- package/src/Result.test.ts +1829 -0
- package/src/Result.ts +49 -54
- package/src/Schedule.test.ts +1554 -0
- package/src/Set.test.ts +279 -0
- package/src/Set.ts +6 -6
- package/src/Sqlite.ts +1 -1
- package/src/Store.test.ts +288 -0
- package/src/String.test.ts +54 -0
- package/src/String.ts +3 -3
- package/src/Task.test.ts +10820 -0
- package/src/Task.ts +38 -43
- package/src/Test.test.ts +88 -0
- package/src/Test.ts +49 -3
- package/src/Time.test.ts +926 -0
- package/src/Time.ts +13 -21
- package/src/Type.base64.test.ts +88 -0
- package/src/Type.test.ts +20465 -0
- package/src/Type.ts +114 -111
- package/src/Types.test.ts +324 -0
- package/src/Types.ts +13 -13
- package/src/WebSocket.ts +4 -7
- package/src/Worker.test.ts +755 -0
- package/src/Worker.ts +13 -18
- package/src/index.ts +1 -1
- package/src/intl/_en.ts +1 -1
- package/src/intl/ar.ts +1 -1
- package/src/intl/bn.ts +1 -1
- package/src/intl/ca.ts +1 -1
- package/src/intl/cs.ts +1 -1
- package/src/intl/da.ts +1 -1
- package/src/intl/de.ts +1 -1
- package/src/intl/el.ts +1 -1
- package/src/intl/es.ts +1 -1
- package/src/intl/fa.ts +1 -1
- package/src/intl/fi.ts +1 -1
- package/src/intl/fil.ts +1 -1
- package/src/intl/fr.ts +1 -1
- package/src/intl/he.ts +1 -1
- package/src/intl/hi.ts +1 -1
- package/src/intl/hr.ts +1 -1
- package/src/intl/hu.ts +1 -1
- package/src/intl/id.ts +1 -1
- package/src/intl/intl.test.ts +3106 -0
- package/src/intl/it.ts +1 -1
- package/src/intl/ja.ts +1 -1
- package/src/intl/ko.ts +1 -1
- package/src/intl/ml.ts +1 -1
- package/src/intl/mr.ts +1 -1
- package/src/intl/ms.ts +1 -1
- package/src/intl/nb.ts +1 -1
- package/src/intl/nl.ts +1 -1
- package/src/intl/pa.ts +1 -1
- package/src/intl/pl.ts +1 -1
- package/src/intl/pt-BR.ts +1 -1
- package/src/intl/pt.ts +1 -1
- package/src/intl/ro.ts +1 -1
- package/src/intl/sk.ts +1 -1
- package/src/intl/sl.ts +1 -1
- package/src/intl/sv.ts +1 -1
- package/src/intl/sw.ts +1 -1
- package/src/intl/ta.ts +1 -1
- package/src/intl/te.ts +1 -1
- package/src/intl/th.ts +1 -1
- package/src/intl/tr.ts +1 -1
- package/src/intl/uk.ts +1 -1
- package/src/intl/ur.ts +1 -1
- package/src/intl/vi.ts +1 -1
- package/src/intl/zh-CN.ts +1 -1
- package/src/intl/zh-TW.ts +1 -1
- package/src/local-first/Evolu.test.ts +1921 -0
- package/src/local-first/Evolu.ts +18 -14
- package/src/local-first/Owner.test.ts +83 -0
- package/src/local-first/Protocol.test.ts +1037 -0
- package/src/local-first/Protocol.ts +58 -261
- package/src/local-first/Query.test.ts +349 -0
- package/src/local-first/Query.ts +11 -11
- package/src/local-first/Relay.ts +2 -2
- package/src/local-first/Schema.ts +3 -5
- package/src/local-first/Shared.test.ts +1828 -0
- package/src/local-first/Shared.ts +9 -8
- package/src/local-first/Storage.ts +4 -4
- package/src/local-first/Timestamp.test.ts +374 -0
- package/src/local-first/Timestamp.ts +22 -10
- package/dist/src/Buffer.d.ts.map +0 -1
package/dist/src/Eq.d.ts
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* @module
|
|
5
5
|
*/
|
|
6
6
|
import type { Order } from "./Order.ts";
|
|
7
|
-
import type { IsData
|
|
7
|
+
import type { IsData } from "./Type.ts";
|
|
8
8
|
import type { CompileTimeError } from "./Types.ts";
|
|
9
9
|
/**
|
|
10
10
|
* Compares two values of the same type `A` for equality.
|
|
@@ -18,6 +18,13 @@ import type { CompileTimeError } from "./Types.ts";
|
|
|
18
18
|
* - **Transitive**: if `eq(a, b)` and `eq(b, c)` are `true`, then `eq(a, c)` is
|
|
19
19
|
* `true`.
|
|
20
20
|
*
|
|
21
|
+
* Evolu does not provide `eqStrict`: JavaScript strict equality (`===`) is not
|
|
22
|
+
* reflexive because `NaN === NaN` is `false`, so it cannot define an
|
|
23
|
+
* `Eq<number>`. Use `===` directly when that behavior is required. See [MDN's
|
|
24
|
+
* equality comparisons and sameness
|
|
25
|
+
* guide](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Equality_comparisons_and_sameness)
|
|
26
|
+
* for how JavaScript's equality algorithms differ.
|
|
27
|
+
*
|
|
21
28
|
* Use {@link eqFromOrder} to derive equality from an {@link Order}.
|
|
22
29
|
*
|
|
23
30
|
* ### Example
|
|
@@ -46,13 +53,13 @@ export type Eq<in A> = (x: A, y: A) => boolean;
|
|
|
46
53
|
* ### Example
|
|
47
54
|
*
|
|
48
55
|
* ```ts
|
|
49
|
-
* import { assertFalse, assertTrue,
|
|
56
|
+
* import { assertFalse, assertTrue, eqSameValue } from "@evolu/common";
|
|
50
57
|
*
|
|
51
|
-
* assertTrue(
|
|
52
|
-
* assertFalse(
|
|
58
|
+
* assertTrue(eqSameValue(NaN, NaN));
|
|
59
|
+
* assertFalse(eqSameValue(0, -0));
|
|
53
60
|
* ```
|
|
54
61
|
*/
|
|
55
|
-
export declare const
|
|
62
|
+
export declare const eqSameValue: <A>(x: A, y: A) => boolean;
|
|
56
63
|
/**
|
|
57
64
|
* Compares two values using SameValueZero equality.
|
|
58
65
|
*
|
|
@@ -71,13 +78,13 @@ export declare const eqStrict: <A>(x: A, y: A) => boolean;
|
|
|
71
78
|
* ```
|
|
72
79
|
*/
|
|
73
80
|
export declare const eqSameValueZero: <A>(x: A, y: A) => boolean;
|
|
74
|
-
/** An {@link Eq} for strings using {@link
|
|
81
|
+
/** An {@link Eq} for strings using {@link eqSameValue}. */
|
|
75
82
|
export declare const eqString: Eq<string>;
|
|
76
|
-
/** An {@link Eq} for numbers using {@link
|
|
83
|
+
/** An {@link Eq} for numbers using {@link eqSameValue}. */
|
|
77
84
|
export declare const eqNumber: Eq<number>;
|
|
78
|
-
/** An {@link Eq} for bigints using {@link
|
|
85
|
+
/** An {@link Eq} for bigints using {@link eqSameValue}. */
|
|
79
86
|
export declare const eqBigInt: Eq<bigint>;
|
|
80
|
-
/** An {@link Eq} for booleans using {@link
|
|
87
|
+
/** An {@link Eq} for booleans using {@link eqSameValue}. */
|
|
81
88
|
export declare const eqBoolean: Eq<boolean>;
|
|
82
89
|
/** An {@link Eq} for `undefined`. */
|
|
83
90
|
export declare const eqUndefined: Eq<undefined>;
|
|
@@ -110,7 +117,8 @@ export declare const eqFromOrder: <A>(order: Order<A>) => Eq<A>;
|
|
|
110
117
|
*/
|
|
111
118
|
export declare const createEqArrayLike: <A>(item: Eq<A>) => Eq<ArrayLike<A>>;
|
|
112
119
|
/**
|
|
113
|
-
* Compares two array-like structures element by element using
|
|
120
|
+
* Compares two array-like structures element by element using
|
|
121
|
+
* {@link eqSameValue}.
|
|
114
122
|
*
|
|
115
123
|
* Useful for structural sharing checks where objects are compared by reference
|
|
116
124
|
* identity. `NaN` elements are equal, while `0` and `-0` elements differ.
|
|
@@ -118,15 +126,19 @@ export declare const createEqArrayLike: <A>(item: Eq<A>) => Eq<ArrayLike<A>>;
|
|
|
118
126
|
* ### Example
|
|
119
127
|
*
|
|
120
128
|
* ```ts
|
|
121
|
-
* import {
|
|
129
|
+
* import {
|
|
130
|
+
* assertFalse,
|
|
131
|
+
* assertTrue,
|
|
132
|
+
* eqArraySameValue,
|
|
133
|
+
* } from "@evolu/common";
|
|
122
134
|
*
|
|
123
135
|
* const a = { x: 1 };
|
|
124
136
|
* const b = { x: 1 };
|
|
125
|
-
* assertTrue(
|
|
126
|
-
* assertFalse(
|
|
137
|
+
* assertTrue(eqArraySameValue([a, a], [a, a]));
|
|
138
|
+
* assertFalse(eqArraySameValue([a], [b]));
|
|
127
139
|
* ```
|
|
128
140
|
*/
|
|
129
|
-
export declare const
|
|
141
|
+
export declare const eqArraySameValue: <A>(x: ArrayLike<A>, y: ArrayLike<A>) => boolean;
|
|
130
142
|
/**
|
|
131
143
|
* Compares two array-like structures of numbers for equality.
|
|
132
144
|
*
|
|
@@ -176,17 +188,17 @@ export declare const eqUint8Array: Eq<Uint8Array>;
|
|
|
176
188
|
*/
|
|
177
189
|
export declare const createEqObject: <A>(eqs: { [K in keyof A]: Eq<A[K]>; }) => Eq<{ readonly [K in keyof A]: A[K]; }>;
|
|
178
190
|
/**
|
|
179
|
-
*
|
|
191
|
+
* Deeply compares two {@link Data} values using platform-independent structural
|
|
192
|
+
* equality.
|
|
180
193
|
*
|
|
181
|
-
* Primitive values use
|
|
182
|
-
*
|
|
183
|
-
* and Maps
|
|
184
|
-
*
|
|
185
|
-
*
|
|
194
|
+
* Primitive values use `Object.is`. Arrays are ordered; plain Objects compare
|
|
195
|
+
* their own string-keyed properties regardless of property order or prototype;
|
|
196
|
+
* Sets and Maps ignore insertion order; Dates compare their time values; and
|
|
197
|
+
* Uint8Arrays compare their bytes. Cyclic and shared data graphs are
|
|
198
|
+
* supported.
|
|
186
199
|
*
|
|
187
|
-
*
|
|
188
|
-
*
|
|
189
|
-
* use the {@link Data} Type at an unknown boundary.
|
|
200
|
+
* Arguments are restricted to Data at compile time. Use the {@link Data} Type at
|
|
201
|
+
* an unknown boundary.
|
|
190
202
|
*
|
|
191
203
|
* ### Example
|
|
192
204
|
*
|
|
@@ -208,23 +220,6 @@ export declare const createEqObject: <A>(eqs: { [K in keyof A]: Eq<A[K]>; }) =>
|
|
|
208
220
|
* ```
|
|
209
221
|
*/
|
|
210
222
|
export declare function eqData<Actual, Expected>(actual: Actual, expected: Expected, ...dataError: EqDataError<Actual | Expected>): boolean;
|
|
211
|
-
/**
|
|
212
|
-
* Compares two {@link JsonValue} values using {@link eqData}.
|
|
213
|
-
*
|
|
214
|
-
* ### Example
|
|
215
|
-
*
|
|
216
|
-
* ```ts
|
|
217
|
-
* import { assertTrue, eqJsonValue, type JsonValue } from "@evolu/common";
|
|
218
|
-
*
|
|
219
|
-
* const first: JsonValue = { profile: { name: "Ada" } };
|
|
220
|
-
* const second: JsonValue = { profile: { name: "Ada" } };
|
|
221
|
-
*
|
|
222
|
-
* assertTrue(eqJsonValue(first, second));
|
|
223
|
-
* ```
|
|
224
|
-
*/
|
|
225
|
-
export declare const eqJsonValue: Eq<JsonValue>;
|
|
226
|
-
/** Compares two {@link JsonValueInput} values using {@link eqData}. */
|
|
227
|
-
export declare const eqJsonValueInput: Eq<JsonValueInput>;
|
|
228
223
|
type EqDataError<Value> = IsData<Value> extends true ? [] : [
|
|
229
224
|
error: CompileTimeError<"eqData", "Actual and expected values must consist only of Data.">
|
|
230
225
|
];
|
package/dist/src/Eq.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Eq.d.ts","sourceRoot":"","sources":["../../src/Eq.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC,OAAO,KAAK,EAAQ,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"Eq.d.ts","sourceRoot":"","sources":["../../src/Eq.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC,OAAO,KAAK,EAAQ,MAAM,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,MAAM,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC;AAE/C;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,WAAW,GAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAG,OAA0B,CAAC;AAEvE;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,eAAe,GAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAG,OACpB,CAAC;AAE7B,2DAA2D;AAC3D,eAAO,MAAM,QAAQ,EAAE,EAAE,CAAC,MAAM,CAAe,CAAC;AAEhD,2DAA2D;AAC3D,eAAO,MAAM,QAAQ,EAAE,EAAE,CAAC,MAAM,CAAe,CAAC;AAEhD,2DAA2D;AAC3D,eAAO,MAAM,QAAQ,EAAE,EAAE,CAAC,MAAM,CAAe,CAAC;AAEhD,4DAA4D;AAC5D,eAAO,MAAM,SAAS,EAAE,EAAE,CAAC,OAAO,CAAe,CAAC;AAElD,qCAAqC;AACrC,eAAO,MAAM,WAAW,EAAE,EAAE,CAAC,SAAS,CAAe,CAAC;AAEtD,gCAAgC;AAChC,eAAO,MAAM,MAAM,EAAE,EAAE,CAAC,IAAI,CAAe,CAAC;AAE5C,mDAAmD;AACnD,eAAO,MAAM,WAAW,GACrB,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,KAAG,EAAE,CAAC,CAAC,CAEP,CAAC;AAEtB;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,iBAAiB,GAC3B,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,KAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAUhC,CAAC;AAEJ;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,gBAAgB,GAxGD,CAAC,uCAjBU,OAyHqC,CAAC;AAE7E;;;;;;;;;;GAUG;AACH,eAAO,MAAM,aAAa,uBAA4C,CAAC;AAEvE;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,YAAY,EAAE,EAAE,CAAC,UAAU,CAAiB,CAAC;AAE1D;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,cAAc,GACxB,CAAC,OAAO,GAAG,CAAC,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAE,KAAG,EAAE,CAAC,EACzC,QAAQ,EAAE,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAC9B,CASA,CAAC;AAEJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,MAAM,CAAC,MAAM,EAAE,QAAQ,EACrC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,EAClB,GAAG,SAAS,EAAE,WAAW,CAAC,MAAM,GAAG,QAAQ,CAAC,GAC3C,OAAO,CAAC;AAmQX,KAAK,WAAW,CAAC,KAAK,IACpB,MAAM,CAAC,KAAK,CAAC,SAAS,IAAI,GACtB,EAAE,GACF;IACE,KAAK,EAAE,gBAAgB,CACrB,QAAQ,EACR,uDAAuD,CACxD;CACF,CAAC"}
|
package/dist/src/Eq.js
CHANGED
|
@@ -13,13 +13,13 @@ import { getObjectKind } from "./Object.js";
|
|
|
13
13
|
* ### Example
|
|
14
14
|
*
|
|
15
15
|
* ```ts
|
|
16
|
-
* import { assertFalse, assertTrue,
|
|
16
|
+
* import { assertFalse, assertTrue, eqSameValue } from "@evolu/common";
|
|
17
17
|
*
|
|
18
|
-
* assertTrue(
|
|
19
|
-
* assertFalse(
|
|
18
|
+
* assertTrue(eqSameValue(NaN, NaN));
|
|
19
|
+
* assertFalse(eqSameValue(0, -0));
|
|
20
20
|
* ```
|
|
21
21
|
*/
|
|
22
|
-
export const
|
|
22
|
+
export const eqSameValue = (x, y) => Object.is(x, y);
|
|
23
23
|
/**
|
|
24
24
|
* Compares two values using SameValueZero equality.
|
|
25
25
|
*
|
|
@@ -38,18 +38,18 @@ export const eqStrict = (x, y) => Object.is(x, y);
|
|
|
38
38
|
* ```
|
|
39
39
|
*/
|
|
40
40
|
export const eqSameValueZero = (x, y) => x === y || Object.is(x, y);
|
|
41
|
-
/** An {@link Eq} for strings using {@link
|
|
42
|
-
export const eqString =
|
|
43
|
-
/** An {@link Eq} for numbers using {@link
|
|
44
|
-
export const eqNumber =
|
|
45
|
-
/** An {@link Eq} for bigints using {@link
|
|
46
|
-
export const eqBigInt =
|
|
47
|
-
/** An {@link Eq} for booleans using {@link
|
|
48
|
-
export const eqBoolean =
|
|
41
|
+
/** An {@link Eq} for strings using {@link eqSameValue}. */
|
|
42
|
+
export const eqString = eqSameValue;
|
|
43
|
+
/** An {@link Eq} for numbers using {@link eqSameValue}. */
|
|
44
|
+
export const eqNumber = eqSameValue;
|
|
45
|
+
/** An {@link Eq} for bigints using {@link eqSameValue}. */
|
|
46
|
+
export const eqBigInt = eqSameValue;
|
|
47
|
+
/** An {@link Eq} for booleans using {@link eqSameValue}. */
|
|
48
|
+
export const eqBoolean = eqSameValue;
|
|
49
49
|
/** An {@link Eq} for `undefined`. */
|
|
50
|
-
export const eqUndefined =
|
|
50
|
+
export const eqUndefined = eqSameValue;
|
|
51
51
|
/** An {@link Eq} for `null`. */
|
|
52
|
-
export const eqNull =
|
|
52
|
+
export const eqNull = eqSameValue;
|
|
53
53
|
/** Derives an {@link Eq} from an {@link Order}. */
|
|
54
54
|
export const eqFromOrder = (order) => (x, y) => order(x, y) === 0;
|
|
55
55
|
/**
|
|
@@ -87,7 +87,8 @@ export const createEqArrayLike = (item) => (x, y) => {
|
|
|
87
87
|
return true;
|
|
88
88
|
};
|
|
89
89
|
/**
|
|
90
|
-
* Compares two array-like structures element by element using
|
|
90
|
+
* Compares two array-like structures element by element using
|
|
91
|
+
* {@link eqSameValue}.
|
|
91
92
|
*
|
|
92
93
|
* Useful for structural sharing checks where objects are compared by reference
|
|
93
94
|
* identity. `NaN` elements are equal, while `0` and `-0` elements differ.
|
|
@@ -95,15 +96,19 @@ export const createEqArrayLike = (item) => (x, y) => {
|
|
|
95
96
|
* ### Example
|
|
96
97
|
*
|
|
97
98
|
* ```ts
|
|
98
|
-
* import {
|
|
99
|
+
* import {
|
|
100
|
+
* assertFalse,
|
|
101
|
+
* assertTrue,
|
|
102
|
+
* eqArraySameValue,
|
|
103
|
+
* } from "@evolu/common";
|
|
99
104
|
*
|
|
100
105
|
* const a = { x: 1 };
|
|
101
106
|
* const b = { x: 1 };
|
|
102
|
-
* assertTrue(
|
|
103
|
-
* assertFalse(
|
|
107
|
+
* assertTrue(eqArraySameValue([a, a], [a, a]));
|
|
108
|
+
* assertFalse(eqArraySameValue([a], [b]));
|
|
104
109
|
* ```
|
|
105
110
|
*/
|
|
106
|
-
export const
|
|
111
|
+
export const eqArraySameValue = /*#__PURE__*/ createEqArrayLike(eqSameValue);
|
|
107
112
|
/**
|
|
108
113
|
* Compares two array-like structures of numbers for equality.
|
|
109
114
|
*
|
|
@@ -162,46 +167,16 @@ export const createEqObject = (eqs) => (x, y) => {
|
|
|
162
167
|
return true;
|
|
163
168
|
};
|
|
164
169
|
export function eqData(actual, expected) {
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
rightsByLeft: new Map(),
|
|
168
|
-
});
|
|
169
|
-
}
|
|
170
|
-
/**
|
|
171
|
-
* Compares two {@link JsonValue} values using {@link eqData}.
|
|
172
|
-
*
|
|
173
|
-
* ### Example
|
|
174
|
-
*
|
|
175
|
-
* ```ts
|
|
176
|
-
* import { assertTrue, eqJsonValue, type JsonValue } from "@evolu/common";
|
|
177
|
-
*
|
|
178
|
-
* const first: JsonValue = { profile: { name: "Ada" } };
|
|
179
|
-
* const second: JsonValue = { profile: { name: "Ada" } };
|
|
180
|
-
*
|
|
181
|
-
* assertTrue(eqJsonValue(first, second));
|
|
182
|
-
* ```
|
|
183
|
-
*/
|
|
184
|
-
export const eqJsonValue = eqData;
|
|
185
|
-
/** Compares two {@link JsonValueInput} values using {@link eqData}. */
|
|
186
|
-
export const eqJsonValueInput = eqData;
|
|
187
|
-
const eqDataInternal = (actual, expected, context) => {
|
|
170
|
+
const pairs = [];
|
|
171
|
+
const rightsByLeft = new Map();
|
|
188
172
|
const frames = [{ kind: "Compare", actual, expected }];
|
|
189
173
|
const attempts = [];
|
|
190
|
-
const retryFailedCandidate = (_frame) => {
|
|
191
|
-
const attempt = attempts.pop();
|
|
192
|
-
if (attempt === undefined)
|
|
193
|
-
return false;
|
|
194
|
-
rollbackEqDataContext(context, attempt.contextCheckpoint);
|
|
195
|
-
frames.length = attempt.frameCheckpoint;
|
|
196
|
-
frames.push(attempt.retry);
|
|
197
|
-
return true;
|
|
198
|
-
};
|
|
199
174
|
while (frames.length > 0) {
|
|
200
175
|
const frame = frames.pop();
|
|
201
176
|
if (frame.kind === "Compare") {
|
|
202
177
|
const x = frame.actual;
|
|
203
178
|
const y = frame.expected;
|
|
204
|
-
if (
|
|
179
|
+
if (eqSameValue(x, y))
|
|
205
180
|
continue;
|
|
206
181
|
if (typeof x !== typeof y) {
|
|
207
182
|
frames.push({ kind: "Fail" });
|
|
@@ -214,16 +189,16 @@ const eqDataInternal = (actual, expected, context) => {
|
|
|
214
189
|
frames.push({ kind: "Fail" });
|
|
215
190
|
continue;
|
|
216
191
|
}
|
|
217
|
-
const rights =
|
|
192
|
+
const rights = rightsByLeft.get(x);
|
|
218
193
|
if (rights?.has(y))
|
|
219
194
|
continue;
|
|
220
195
|
if (rights === undefined) {
|
|
221
|
-
|
|
196
|
+
rightsByLeft.set(x, new Set([y]));
|
|
222
197
|
}
|
|
223
198
|
else {
|
|
224
199
|
rights.add(y);
|
|
225
200
|
}
|
|
226
|
-
|
|
201
|
+
pairs.push([x, y]);
|
|
227
202
|
const xKind = getObjectKind(x);
|
|
228
203
|
const yKind = getObjectKind(y);
|
|
229
204
|
if (xKind !== yKind) {
|
|
@@ -353,13 +328,12 @@ const eqDataInternal = (actual, expected, context) => {
|
|
|
353
328
|
frames.push({ kind: "Fail" });
|
|
354
329
|
continue;
|
|
355
330
|
}
|
|
356
|
-
|
|
357
|
-
|
|
331
|
+
attempts.push({
|
|
332
|
+
pairsCheckpoint: pairs.length,
|
|
358
333
|
frameCheckpoint: frames.length,
|
|
359
334
|
retry: { ...frame, candidateIndex: frame.candidateIndex + 1 },
|
|
360
|
-
};
|
|
361
|
-
|
|
362
|
-
frames.push({ kind: "CommitSet", match: frame });
|
|
335
|
+
});
|
|
336
|
+
frames.push({ kind: "Commit", match: frame });
|
|
363
337
|
frames.push({
|
|
364
338
|
kind: "Compare",
|
|
365
339
|
actual: frame.actual[frame.actualIndex],
|
|
@@ -376,13 +350,12 @@ const eqDataInternal = (actual, expected, context) => {
|
|
|
376
350
|
}
|
|
377
351
|
const [actualKey, actualValue] = frame.actual[frame.actualIndex];
|
|
378
352
|
const [expectedKey, expectedValue] = frame.unmatched[frame.candidateIndex];
|
|
379
|
-
|
|
380
|
-
|
|
353
|
+
attempts.push({
|
|
354
|
+
pairsCheckpoint: pairs.length,
|
|
381
355
|
frameCheckpoint: frames.length,
|
|
382
356
|
retry: { ...frame, candidateIndex: frame.candidateIndex + 1 },
|
|
383
|
-
};
|
|
384
|
-
|
|
385
|
-
frames.push({ kind: "CommitMap", match: frame });
|
|
357
|
+
});
|
|
358
|
+
frames.push({ kind: "Commit", match: frame });
|
|
386
359
|
frames.push({
|
|
387
360
|
kind: "Compare",
|
|
388
361
|
actual: actualValue,
|
|
@@ -395,17 +368,7 @@ const eqDataInternal = (actual, expected, context) => {
|
|
|
395
368
|
});
|
|
396
369
|
continue;
|
|
397
370
|
}
|
|
398
|
-
if (frame.kind === "
|
|
399
|
-
attempts.pop();
|
|
400
|
-
frame.match.unmatched.splice(frame.match.candidateIndex, 1);
|
|
401
|
-
frames.push({
|
|
402
|
-
...frame.match,
|
|
403
|
-
actualIndex: frame.match.actualIndex + 1,
|
|
404
|
-
candidateIndex: 0,
|
|
405
|
-
});
|
|
406
|
-
continue;
|
|
407
|
-
}
|
|
408
|
-
if (frame.kind === "CommitMap") {
|
|
371
|
+
if (frame.kind === "Commit") {
|
|
409
372
|
attempts.pop();
|
|
410
373
|
frame.match.unmatched.splice(frame.match.candidateIndex, 1);
|
|
411
374
|
frames.push({
|
|
@@ -415,17 +378,18 @@ const eqDataInternal = (actual, expected, context) => {
|
|
|
415
378
|
});
|
|
416
379
|
continue;
|
|
417
380
|
}
|
|
418
|
-
|
|
381
|
+
const attempt = attempts.pop();
|
|
382
|
+
if (attempt === undefined)
|
|
419
383
|
return false;
|
|
384
|
+
while (pairs.length > attempt.pairsCheckpoint) {
|
|
385
|
+
const [left, right] = pairs.pop();
|
|
386
|
+
const rights = rightsByLeft.get(left);
|
|
387
|
+
rights.delete(right);
|
|
388
|
+
if (rights.size === 0)
|
|
389
|
+
rightsByLeft.delete(left);
|
|
390
|
+
}
|
|
391
|
+
frames.length = attempt.frameCheckpoint;
|
|
392
|
+
frames.push(attempt.retry);
|
|
420
393
|
}
|
|
421
394
|
return true;
|
|
422
|
-
}
|
|
423
|
-
const rollbackEqDataContext = (context, checkpoint) => {
|
|
424
|
-
while (context.pairs.length > checkpoint) {
|
|
425
|
-
const [left, right] = context.pairs.pop();
|
|
426
|
-
const rights = context.rightsByLeft.get(left);
|
|
427
|
-
rights.delete(right);
|
|
428
|
-
if (rights.size === 0)
|
|
429
|
-
context.rightsByLeft.delete(left);
|
|
430
|
-
}
|
|
431
|
-
};
|
|
395
|
+
}
|
package/dist/src/Function.d.ts
CHANGED
|
@@ -135,9 +135,9 @@ export declare const identity: <A>(a: A) => A;
|
|
|
135
135
|
*
|
|
136
136
|
* ```ts
|
|
137
137
|
* import {
|
|
138
|
-
* assert,
|
|
139
138
|
* assertEqual,
|
|
140
139
|
* assertErr,
|
|
140
|
+
* assertInstanceOf,
|
|
141
141
|
* assertTrue,
|
|
142
142
|
* disposable,
|
|
143
143
|
* trySync,
|
|
@@ -159,11 +159,8 @@ export declare const identity: <A>(a: A) => A;
|
|
|
159
159
|
* assertTrue(cleaned);
|
|
160
160
|
* const result = trySync(() => resource.read());
|
|
161
161
|
* assertErr(result);
|
|
162
|
-
*
|
|
163
|
-
*
|
|
164
|
-
* result.error.message === "Cannot use a disposed object.",
|
|
165
|
-
* "Expected the disposed-object error.",
|
|
166
|
-
* );
|
|
162
|
+
* assertInstanceOf(result.error, Error);
|
|
163
|
+
* assertEqual(result.error.message, "Cannot use a disposed object.");
|
|
167
164
|
* ```
|
|
168
165
|
*/
|
|
169
166
|
export declare function disposable<T extends object>(value: T extends Disposable ? Omit<T, typeof Symbol.dispose> : T, disposer?: DisposableStack): T extends Disposable ? T : T & Disposable;
|
|
@@ -248,8 +245,9 @@ export declare const constVoid: Thunk<void>;
|
|
|
248
245
|
*
|
|
249
246
|
* ```ts
|
|
250
247
|
* import {
|
|
251
|
-
*
|
|
248
|
+
* assertEqual,
|
|
252
249
|
* assertErr,
|
|
250
|
+
* assertInstanceOf,
|
|
253
251
|
* assertType,
|
|
254
252
|
* todo,
|
|
255
253
|
* trySync,
|
|
@@ -263,16 +261,13 @@ export declare const constVoid: Thunk<void>;
|
|
|
263
261
|
* const getConfig = () => todo<Config>();
|
|
264
262
|
*
|
|
265
263
|
* assertType<
|
|
266
|
-
* [
|
|
267
|
-
* [
|
|
264
|
+
* [ReturnType<typeof getCount>, ReturnType<typeof getConfig>],
|
|
265
|
+
* [number, Config]
|
|
268
266
|
* >();
|
|
269
267
|
* const result = trySync(getCount);
|
|
270
268
|
* assertErr(result);
|
|
271
|
-
*
|
|
272
|
-
*
|
|
273
|
-
* result.error.message === "not yet implemented",
|
|
274
|
-
* "Expected the not-yet-implemented error.",
|
|
275
|
-
* );
|
|
269
|
+
* assertInstanceOf(result.error, Error);
|
|
270
|
+
* assertEqual(result.error.message, "not yet implemented");
|
|
276
271
|
* ```
|
|
277
272
|
*/
|
|
278
273
|
export declare const todo: <T>() => T;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Function.d.ts","sourceRoot":"","sources":["../../src/Function.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuFG;AACH,eAAO,MAAM,eAAe,UAAW,KAAK,KAAG,KAE9C,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,QAAQ,GAAI,CAAC,KAAK,CAAC,KAAG,CAAM,CAAC;AAE1C
|
|
1
|
+
{"version":3,"file":"Function.d.ts","sourceRoot":"","sources":["../../src/Function.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuFG;AACH,eAAO,MAAM,eAAe,UAAW,KAAK,KAAG,KAE9C,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,QAAQ,GAAI,CAAC,KAAK,CAAC,KAAG,CAAM,CAAC;AAE1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,MAAM,EACzC,KAAK,EAAE,CAAC,SAAS,UAAU,GAAG,IAAI,CAAC,CAAC,EAAE,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAChE,QAAQ,CAAC,EAAE,eAAe,GACzB,CAAC,SAAS,UAAU,GAAG,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC;AAE7C,mDAAmD;AACnD,wBAAgB,UAAU,CAAC,CAAC,SAAS,MAAM,EACzC,KAAK,EAAE,CAAC,SAAS,eAAe,GAAG,IAAI,CAAC,CAAC,EAAE,OAAO,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,EAC1E,QAAQ,EAAE,oBAAoB,GAC7B,CAAC,SAAS,eAAe,GAAG,CAAC,GAAG,CAAC,GAAG,eAAe,CAAC;AA2BvD,eAAO,MAAM,YAAY,UAChB,OAAO,KACb,KAAK,IAAI,UAAU,GAAG,eAOxB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,MAAM,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC;AAE/B;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,QAAQ,GAClB,CAAC,SAAS,CAAC,KAAG,KAAK,CAAC,CAAC,CAEf,CAAC;AAEV,2CAA2C;AAC3C,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,IAAI,CAAgC,CAAC;AAEnE,4CAA4C;AAC5C,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,KAAK,CAAiC,CAAC;AAEtE,2CAA2C;AAC3C,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,IAAI,CAAgC,CAAC;AAEnE,gDAAgD;AAChD,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,SAAS,CACT,CAAC;AAEpC,mEAAmE;AACnE,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,IAAI,CAAkB,CAAC;AAErD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,eAAO,MAAM,IAAI,GAAI,CAAC,OAAK,CAE1B,CAAC"}
|
package/dist/src/Function.js
CHANGED
|
@@ -188,8 +188,9 @@ export const constVoid = constUndefined;
|
|
|
188
188
|
*
|
|
189
189
|
* ```ts
|
|
190
190
|
* import {
|
|
191
|
-
*
|
|
191
|
+
* assertEqual,
|
|
192
192
|
* assertErr,
|
|
193
|
+
* assertInstanceOf,
|
|
193
194
|
* assertType,
|
|
194
195
|
* todo,
|
|
195
196
|
* trySync,
|
|
@@ -203,19 +204,16 @@ export const constVoid = constUndefined;
|
|
|
203
204
|
* const getConfig = () => todo<Config>();
|
|
204
205
|
*
|
|
205
206
|
* assertType<
|
|
206
|
-
* [
|
|
207
|
-
* [
|
|
207
|
+
* [ReturnType<typeof getCount>, ReturnType<typeof getConfig>],
|
|
208
|
+
* [number, Config]
|
|
208
209
|
* >();
|
|
209
210
|
* const result = trySync(getCount);
|
|
210
211
|
* assertErr(result);
|
|
211
|
-
*
|
|
212
|
-
*
|
|
213
|
-
* result.error.message === "not yet implemented",
|
|
214
|
-
* "Expected the not-yet-implemented error.",
|
|
215
|
-
* );
|
|
212
|
+
* assertInstanceOf(result.error, Error);
|
|
213
|
+
* assertEqual(result.error.message, "not yet implemented");
|
|
216
214
|
* ```
|
|
217
215
|
*/
|
|
218
|
-
//
|
|
216
|
+
// oxlint-disable-next-line typescript/no-unnecessary-type-parameters
|
|
219
217
|
export const todo = () => {
|
|
220
218
|
throw new Error("not yet implemented");
|
|
221
219
|
};
|
package/dist/src/Http.d.ts
CHANGED
|
@@ -332,8 +332,8 @@ export type FetchConsume<T, E = never> = (response: Response) => Awaitable<Resul
|
|
|
332
332
|
* }),
|
|
333
333
|
* );
|
|
334
334
|
* assertType<
|
|
335
|
-
*
|
|
336
|
-
*
|
|
335
|
+
* typeof metadata,
|
|
336
|
+
* Task<{ status: number; cache: string | null }, FetchTransportError>
|
|
337
337
|
* >();
|
|
338
338
|
* assertOk(user);
|
|
339
339
|
* assertType(Data, user.value);
|
|
@@ -349,7 +349,8 @@ export type FetchConsume<T, E = never> = (response: Response) => Awaitable<Resul
|
|
|
349
349
|
*
|
|
350
350
|
* ```ts
|
|
351
351
|
* import {
|
|
352
|
-
*
|
|
352
|
+
* assertErr,
|
|
353
|
+
* assertType,
|
|
353
354
|
* AbortError,
|
|
354
355
|
* createRun,
|
|
355
356
|
* fetch,
|
|
@@ -371,10 +372,8 @@ export type FetchConsume<T, E = never> = (response: Response) => Awaitable<Resul
|
|
|
371
372
|
* fiber.abort();
|
|
372
373
|
* const result = await fiber;
|
|
373
374
|
*
|
|
374
|
-
*
|
|
375
|
-
*
|
|
376
|
-
* "Expected an AbortError.",
|
|
377
|
-
* );
|
|
375
|
+
* assertErr(result);
|
|
376
|
+
* assertType(AbortError, result.error);
|
|
378
377
|
* ```
|
|
379
378
|
*
|
|
380
379
|
* @group Fetch
|
package/dist/src/Http.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Http.d.ts","sourceRoot":"","sources":["../../src/Http.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAA+B,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AACvE,OAAO,KAAK,EAAqB,IAAI,EAAW,MAAM,WAAW,CAAC;AAClE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C;;;;;;;;;GASG;AACH,MAAM,MAAM,WAAW,GAAG,OAAO,UAAU,CAAC,KAAK,CAAC;AAElD;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;CACnC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;AAE9D;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,aAAa,GAAG,IAAI,CAC9B,QAAQ,EACN,aAAa,GACb,MAAM,GACN,MAAM,GACN,UAAU,GACV,OAAO,GACP,OAAO,GACP,UAAU,GACV,MAAM,GACN,MAAM,CACT,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,MAAM,UAAU,GACpB,mBAAmB,GAAG,gBAAgB,GAAG,cAAc,CAAC;AAE1D;;;;GAIG;AACH,MAAM,WAAW,mBAAoB,SAAQ,KAAK,CAAC,qBAAqB,CAAC;IACvE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,gBAAiB,SAAQ,KAAK,CAAC,kBAAkB,CAAC;IACjE,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACxC;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,cAAe,SAAQ,KAAK,CAAC,gBAAgB,CAAC;IAC7D,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;IACjC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,IAAI,CACvC,QAAQ,EAAE,QAAQ,KACf,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAE7B
|
|
1
|
+
{"version":3,"file":"Http.d.ts","sourceRoot":"","sources":["../../src/Http.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LeakDetector.d.ts","sourceRoot":"","sources":["../../src/LeakDetector.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAG/C;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;;;;OAOG;IACH,QAAQ,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,KAAK,IAAI,CAAC;IAE9E,mEAAmE;IACnE,QAAQ,CAAC,OAAO,EAAE,CAAC,eAAe,EAAE,MAAM,KAAK,IAAI,CAAC;CACrD;AAED,iEAAiE;AACjE,MAAM,WAAW,IAAI;IACnB,8DAA8D;IAC9D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,sEAAsE;IACtE,QAAQ,CAAC,QAAQ,EAAE,MAAM,OAAO,CAAC;CAClC;AAED;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;CACrC;AAED;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,SAAU,UAAU,KAAG,
|
|
1
|
+
{"version":3,"file":"LeakDetector.d.ts","sourceRoot":"","sources":["../../src/LeakDetector.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAG/C;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;;;;OAOG;IACH,QAAQ,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,KAAK,IAAI,CAAC;IAE9E,mEAAmE;IACnE,QAAQ,CAAC,OAAO,EAAE,CAAC,eAAe,EAAE,MAAM,KAAK,IAAI,CAAC;CACrD;AAED,iEAAiE;AACjE,MAAM,WAAW,IAAI;IACnB,8DAA8D;IAC9D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,sEAAsE;IACtE,QAAQ,CAAC,QAAQ,EAAE,MAAM,OAAO,CAAC;CAClC;AAED;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;CACrC;AAED;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,SAAU,UAAU,KAAG,YAsBrD,CAAC;AAEF,iDAAiD;AACjD,eAAO,MAAM,gBAAgB,EAAE,YAG9B,CAAC;AAyBF;;;;GAIG;AACH,MAAM,WAAW,gBAAiB,SAAQ,YAAY;IACpD;;;;;OAKG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,MAAM,CAAC;IAE/B,uDAAuD;IACvD,QAAQ,CAAC,eAAe,EAAE,CAAC,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,MAAM,CAAC;CACnE;AAED;;;;GAIG;AACH,MAAM,WAAW,mBAAoB,SAAQ,eAAe;IAC1D,QAAQ,CAAC,YAAY,EAAE,gBAAgB,CAAC;CACzC;AAED,wCAAwC;AACxC,eAAO,MAAM,sBAAsB,SAAU,UAAU,KAAG,gBAsCzD,CAAC"}
|
package/dist/src/LeakDetector.js
CHANGED
|
@@ -15,6 +15,7 @@ export const createLeakDetector = (deps) => {
|
|
|
15
15
|
if (typeof globalThis.FinalizationRegistry !== "function")
|
|
16
16
|
return noopLeakDetector;
|
|
17
17
|
const report = reportLeak(deps);
|
|
18
|
+
// oxlint-disable-next-line evolu/no-unnecessary-global-this -- Construct the same global object FinalizationRegistry verified by the feature check.
|
|
18
19
|
const registry = new globalThis.FinalizationRegistry((leak) => {
|
|
19
20
|
report(leak);
|
|
20
21
|
});
|
|
@@ -17,7 +17,7 @@ import type { Callback } from "./Types.ts";
|
|
|
17
17
|
* import { assertEqual, type LockManagerDep } from "@evolu/common";
|
|
18
18
|
*
|
|
19
19
|
* const deps: LockManagerDep = {
|
|
20
|
-
* lockManager:
|
|
20
|
+
* lockManager: navigator.locks,
|
|
21
21
|
* };
|
|
22
22
|
*
|
|
23
23
|
* const result = await deps.lockManager.request(
|
package/dist/src/LockManager.js
CHANGED
|
@@ -20,7 +20,7 @@ import { createId } from "./Type.js";
|
|
|
20
20
|
* contending through the global Web Locks. Query results are filtered to that
|
|
21
21
|
* private namespace and returned with the original visible names.
|
|
22
22
|
*/
|
|
23
|
-
export const testCreateLockManager = (nativeLockManager =
|
|
23
|
+
export const testCreateLockManager = (nativeLockManager = navigator.locks) => {
|
|
24
24
|
const namespace = createId({ randomBytes: createRandomBytes() });
|
|
25
25
|
const filterLockInfosByNamespace = (locks) => locks.flatMap((lock) => lock.name?.endsWith(namespace) === true
|
|
26
26
|
? [{ ...lock, name: lock.name.slice(0, -namespace.length) }]
|
package/dist/src/Lookup.d.ts
CHANGED
|
@@ -144,8 +144,9 @@ export type StructuralFunction = (...args: ReadonlyArray<unknown>) => unknown;
|
|
|
144
144
|
*
|
|
145
145
|
* Structural lookup keys are derived from JSON-like values plus `Uint8Array`.
|
|
146
146
|
* Equal structures produce the same lookup key even when they are different
|
|
147
|
-
* JavaScript instances.
|
|
148
|
-
*
|
|
147
|
+
* JavaScript instances. Primitive values use SameValue (`Object.is`), so `NaN`
|
|
148
|
+
* equals itself while `0` and `-0` produce different keys. `undefined` values
|
|
149
|
+
* and sparse array holes are rejected rather than skipped.
|
|
149
150
|
*
|
|
150
151
|
* The derived key is memoized by non-null object identity in a module-scoped
|
|
151
152
|
* `WeakMap` shared by all callers, so keys must be immutable.
|
package/dist/src/Lookup.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Lookup.d.ts","sourceRoot":"","sources":["../../src/Lookup.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Lookup.d.ts","sourceRoot":"","sources":["../../src/Lookup.ts"],"names":[],"mappings":"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"}
|
package/dist/src/Lookup.js
CHANGED
|
@@ -113,8 +113,9 @@ export const createLookupSet = ({ lookup, values, }) => {
|
|
|
113
113
|
*
|
|
114
114
|
* Structural lookup keys are derived from JSON-like values plus `Uint8Array`.
|
|
115
115
|
* Equal structures produce the same lookup key even when they are different
|
|
116
|
-
* JavaScript instances.
|
|
117
|
-
*
|
|
116
|
+
* JavaScript instances. Primitive values use SameValue (`Object.is`), so `NaN`
|
|
117
|
+
* equals itself while `0` and `-0` produce different keys. `undefined` values
|
|
118
|
+
* and sparse array holes are rejected rather than skipped.
|
|
118
119
|
*
|
|
119
120
|
* The derived key is memoized by non-null object identity in a module-scoped
|
|
120
121
|
* `WeakMap` shared by all callers, so keys must be immutable.
|
|
@@ -173,7 +174,7 @@ const structuralLookupInternal = (value, path = new Set()) => {
|
|
|
173
174
|
return "n:Infinity";
|
|
174
175
|
if (value === Number.NEGATIVE_INFINITY)
|
|
175
176
|
return "n:-Infinity";
|
|
176
|
-
return Object.is(value, -0) ? "n
|
|
177
|
+
return Object.is(value, -0) ? "n:-0" : `n:${value}`;
|
|
177
178
|
case "boolean":
|
|
178
179
|
return value ? "b:true" : "b:false";
|
|
179
180
|
case "object": {
|
package/dist/src/Number.d.ts
CHANGED
|
@@ -72,7 +72,7 @@ export type Int1To100OrPositiveInt = Int1To100 | PositiveInt;
|
|
|
72
72
|
* const readableJitter = jitter("50%");
|
|
73
73
|
* const computedJitter = jitter(Ratio.orThrow(0.5));
|
|
74
74
|
*
|
|
75
|
-
* assertType<typeof
|
|
75
|
+
* assertType<typeof readableJitter, typeof computedJitter>();
|
|
76
76
|
* ```
|
|
77
77
|
*/
|
|
78
78
|
export type Percentage = PercentageLiteral | Ratio;
|