@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.
- package/dist/src/Array.d.ts +191 -94
- package/dist/src/Array.d.ts.map +1 -1
- package/dist/src/Array.js +91 -40
- package/dist/src/Assert.d.ts +233 -30
- package/dist/src/Assert.d.ts.map +1 -1
- package/dist/src/Assert.js +151 -30
- package/dist/src/BigInt.d.ts +3 -3
- package/dist/src/BigInt.js +3 -3
- package/dist/src/Brand.d.ts +7 -7
- package/dist/src/Buffer.d.ts +12 -4
- package/dist/src/Buffer.d.ts.map +1 -1
- package/dist/src/Cache.d.ts +8 -3
- package/dist/src/Cache.d.ts.map +1 -1
- package/dist/src/Cache.js +8 -3
- package/dist/src/Callbacks.d.ts +8 -4
- package/dist/src/Callbacks.d.ts.map +1 -1
- package/dist/src/Console.d.ts +45 -30
- package/dist/src/Console.d.ts.map +1 -1
- package/dist/src/Console.js +32 -21
- package/dist/src/Crypto.d.ts +13 -8
- package/dist/src/Crypto.d.ts.map +1 -1
- package/dist/src/Crypto.js +6 -3
- package/dist/src/Eq.d.ts +107 -58
- package/dist/src/Eq.d.ts.map +1 -1
- package/dist/src/Eq.js +308 -112
- package/dist/src/Function.d.ts +54 -24
- package/dist/src/Function.d.ts.map +1 -1
- package/dist/src/Function.js +34 -17
- package/dist/src/Http.d.ts +52 -19
- package/dist/src/Http.d.ts.map +1 -1
- package/dist/src/Identicon.d.ts +9 -4
- package/dist/src/Identicon.d.ts.map +1 -1
- package/dist/src/Identicon.js +9 -4
- package/dist/src/LeakDetector.d.ts.map +1 -1
- package/dist/src/LeakDetector.js +4 -1
- package/dist/src/LockManager.d.ts +12 -10
- package/dist/src/LockManager.d.ts.map +1 -1
- package/dist/src/Lookup.d.ts +4 -2
- package/dist/src/Lookup.d.ts.map +1 -1
- package/dist/src/Lookup.js +5 -2
- package/dist/src/Number.d.ts +28 -24
- package/dist/src/Number.d.ts.map +1 -1
- package/dist/src/Number.js +16 -17
- package/dist/src/Object.d.ts +89 -47
- package/dist/src/Object.d.ts.map +1 -1
- package/dist/src/Object.js +88 -41
- package/dist/src/Option.d.ts +14 -5
- package/dist/src/Option.d.ts.map +1 -1
- package/dist/src/Option.js +14 -5
- package/dist/src/Order.d.ts +12 -12
- package/dist/src/Order.js +12 -12
- package/dist/src/Platform.d.ts +2 -2
- package/dist/src/Platform.js +1 -0
- package/dist/src/Random.d.ts +7 -4
- package/dist/src/Random.d.ts.map +1 -1
- package/dist/src/Redacted.d.ts +13 -6
- package/dist/src/Redacted.d.ts.map +1 -1
- package/dist/src/Redacted.js +4 -2
- package/dist/src/Ref.d.ts +4 -4
- package/dist/src/Relation.d.ts +5 -7
- package/dist/src/Relation.d.ts.map +1 -1
- package/dist/src/Relation.js +3 -3
- package/dist/src/Resource.d.ts +27 -12
- package/dist/src/Resource.d.ts.map +1 -1
- package/dist/src/Resource.js +9 -3
- package/dist/src/Result.d.ts +258 -114
- package/dist/src/Result.d.ts.map +1 -1
- package/dist/src/Result.js +74 -39
- package/dist/src/Schedule.d.ts +233 -116
- package/dist/src/Schedule.d.ts.map +1 -1
- package/dist/src/Schedule.js +204 -110
- package/dist/src/Set.d.ts +43 -24
- package/dist/src/Set.d.ts.map +1 -1
- package/dist/src/Set.js +25 -13
- package/dist/src/Sqlite.d.ts +4 -4
- package/dist/src/Sqlite.d.ts.map +1 -1
- package/dist/src/Sqlite.js +18 -15
- package/dist/src/Store.d.ts.map +1 -1
- package/dist/src/Store.js +3 -1
- package/dist/src/String.d.ts.map +1 -1
- package/dist/src/String.js +1 -1
- package/dist/src/Task.d.ts +555 -264
- package/dist/src/Task.d.ts.map +1 -1
- package/dist/src/Task.js +278 -168
- package/dist/src/Test.d.ts +10 -4
- package/dist/src/Test.d.ts.map +1 -1
- package/dist/src/Test.js +11 -4
- package/dist/src/Time.d.ts +27 -17
- package/dist/src/Time.d.ts.map +1 -1
- package/dist/src/Time.js +25 -8
- package/dist/src/Type.d.ts +1218 -372
- package/dist/src/Type.d.ts.map +1 -1
- package/dist/src/Type.js +1056 -379
- package/dist/src/Types.d.ts +95 -40
- package/dist/src/Types.d.ts.map +1 -1
- package/dist/src/Types.js +13 -4
- package/dist/src/WebSocket.d.ts +14 -6
- package/dist/src/WebSocket.d.ts.map +1 -1
- package/dist/src/WebSocket.js +8 -0
- package/dist/src/Worker.d.ts +10 -6
- package/dist/src/Worker.d.ts.map +1 -1
- package/dist/src/Worker.js +1 -1
- package/dist/src/intl/_en.d.ts +3 -1
- package/dist/src/intl/_en.d.ts.map +1 -1
- package/dist/src/intl/_en.js +17 -3
- package/dist/src/intl/ar.d.ts +3 -1
- package/dist/src/intl/ar.d.ts.map +1 -1
- package/dist/src/intl/ar.js +15 -2
- package/dist/src/intl/bn.d.ts +3 -1
- package/dist/src/intl/bn.d.ts.map +1 -1
- package/dist/src/intl/bn.js +16 -3
- package/dist/src/intl/ca.d.ts +3 -1
- package/dist/src/intl/ca.d.ts.map +1 -1
- package/dist/src/intl/ca.js +16 -3
- package/dist/src/intl/cs.d.ts +3 -1
- package/dist/src/intl/cs.d.ts.map +1 -1
- package/dist/src/intl/cs.js +16 -3
- package/dist/src/intl/da.d.ts +3 -1
- package/dist/src/intl/da.d.ts.map +1 -1
- package/dist/src/intl/da.js +16 -3
- package/dist/src/intl/de.d.ts +3 -1
- package/dist/src/intl/de.d.ts.map +1 -1
- package/dist/src/intl/de.js +16 -3
- package/dist/src/intl/el.d.ts +3 -1
- package/dist/src/intl/el.d.ts.map +1 -1
- package/dist/src/intl/el.js +16 -3
- package/dist/src/intl/es.d.ts +3 -1
- package/dist/src/intl/es.d.ts.map +1 -1
- package/dist/src/intl/es.js +16 -3
- package/dist/src/intl/fa.d.ts +3 -1
- package/dist/src/intl/fa.d.ts.map +1 -1
- package/dist/src/intl/fa.js +16 -3
- package/dist/src/intl/fi.d.ts +3 -1
- package/dist/src/intl/fi.d.ts.map +1 -1
- package/dist/src/intl/fi.js +16 -3
- package/dist/src/intl/fil.d.ts +3 -1
- package/dist/src/intl/fil.d.ts.map +1 -1
- package/dist/src/intl/fil.js +16 -3
- package/dist/src/intl/fr.d.ts +3 -1
- package/dist/src/intl/fr.d.ts.map +1 -1
- package/dist/src/intl/fr.js +16 -3
- package/dist/src/intl/he.d.ts +3 -1
- package/dist/src/intl/he.d.ts.map +1 -1
- package/dist/src/intl/he.js +16 -3
- package/dist/src/intl/hi.d.ts +3 -1
- package/dist/src/intl/hi.d.ts.map +1 -1
- package/dist/src/intl/hi.js +16 -3
- package/dist/src/intl/hr.d.ts +3 -1
- package/dist/src/intl/hr.d.ts.map +1 -1
- package/dist/src/intl/hr.js +16 -3
- package/dist/src/intl/hu.d.ts +2 -1
- package/dist/src/intl/hu.d.ts.map +1 -1
- package/dist/src/intl/hu.js +15 -3
- package/dist/src/intl/id.d.ts +3 -1
- package/dist/src/intl/id.d.ts.map +1 -1
- package/dist/src/intl/id.js +16 -3
- package/dist/src/intl/it.d.ts +3 -1
- package/dist/src/intl/it.d.ts.map +1 -1
- package/dist/src/intl/it.js +16 -3
- package/dist/src/intl/ja.d.ts +3 -1
- package/dist/src/intl/ja.d.ts.map +1 -1
- package/dist/src/intl/ja.js +16 -3
- package/dist/src/intl/ko.d.ts +3 -1
- package/dist/src/intl/ko.d.ts.map +1 -1
- package/dist/src/intl/ko.js +16 -3
- package/dist/src/intl/ml.d.ts +3 -1
- package/dist/src/intl/ml.d.ts.map +1 -1
- package/dist/src/intl/ml.js +16 -3
- package/dist/src/intl/mr.d.ts +3 -1
- package/dist/src/intl/mr.d.ts.map +1 -1
- package/dist/src/intl/mr.js +16 -3
- package/dist/src/intl/ms.d.ts +3 -1
- package/dist/src/intl/ms.d.ts.map +1 -1
- package/dist/src/intl/ms.js +15 -2
- package/dist/src/intl/nb.d.ts +2 -1
- package/dist/src/intl/nb.d.ts.map +1 -1
- package/dist/src/intl/nb.js +14 -2
- package/dist/src/intl/nl.d.ts +3 -1
- package/dist/src/intl/nl.d.ts.map +1 -1
- package/dist/src/intl/nl.js +16 -3
- package/dist/src/intl/pa.d.ts +3 -1
- package/dist/src/intl/pa.d.ts.map +1 -1
- package/dist/src/intl/pa.js +16 -3
- package/dist/src/intl/pl.d.ts +2 -0
- package/dist/src/intl/pl.d.ts.map +1 -1
- package/dist/src/intl/pl.js +15 -2
- package/dist/src/intl/pt-BR.d.ts +3 -1
- package/dist/src/intl/pt-BR.d.ts.map +1 -1
- package/dist/src/intl/pt-BR.js +16 -3
- package/dist/src/intl/pt.d.ts +3 -1
- package/dist/src/intl/pt.d.ts.map +1 -1
- package/dist/src/intl/pt.js +15 -2
- package/dist/src/intl/ro.d.ts +3 -1
- package/dist/src/intl/ro.d.ts.map +1 -1
- package/dist/src/intl/ro.js +16 -3
- package/dist/src/intl/sk.d.ts +3 -1
- package/dist/src/intl/sk.d.ts.map +1 -1
- package/dist/src/intl/sk.js +15 -2
- package/dist/src/intl/sl.d.ts +3 -1
- package/dist/src/intl/sl.d.ts.map +1 -1
- package/dist/src/intl/sl.js +16 -3
- package/dist/src/intl/sv.d.ts +3 -1
- package/dist/src/intl/sv.d.ts.map +1 -1
- package/dist/src/intl/sv.js +16 -3
- package/dist/src/intl/sw.d.ts +1 -0
- package/dist/src/intl/sw.d.ts.map +1 -1
- package/dist/src/intl/sw.js +14 -2
- package/dist/src/intl/ta.d.ts +3 -1
- package/dist/src/intl/ta.d.ts.map +1 -1
- package/dist/src/intl/ta.js +16 -3
- package/dist/src/intl/te.d.ts +3 -1
- package/dist/src/intl/te.d.ts.map +1 -1
- package/dist/src/intl/te.js +16 -3
- package/dist/src/intl/th.d.ts +3 -1
- package/dist/src/intl/th.d.ts.map +1 -1
- package/dist/src/intl/th.js +16 -3
- package/dist/src/intl/tr.d.ts +3 -1
- package/dist/src/intl/tr.d.ts.map +1 -1
- package/dist/src/intl/tr.js +16 -3
- package/dist/src/intl/uk.d.ts +3 -1
- package/dist/src/intl/uk.d.ts.map +1 -1
- package/dist/src/intl/uk.js +16 -3
- package/dist/src/intl/ur.d.ts +3 -1
- package/dist/src/intl/ur.d.ts.map +1 -1
- package/dist/src/intl/ur.js +15 -2
- package/dist/src/intl/vi.d.ts +3 -1
- package/dist/src/intl/vi.d.ts.map +1 -1
- package/dist/src/intl/vi.js +16 -3
- package/dist/src/intl/zh-CN.d.ts +3 -1
- package/dist/src/intl/zh-CN.d.ts.map +1 -1
- package/dist/src/intl/zh-CN.js +16 -3
- package/dist/src/intl/zh-TW.d.ts +3 -1
- package/dist/src/intl/zh-TW.d.ts.map +1 -1
- package/dist/src/intl/zh-TW.js +16 -3
- package/dist/src/local-first/Db.js +3 -2
- package/dist/src/local-first/Evolu.d.ts +47 -24
- package/dist/src/local-first/Evolu.d.ts.map +1 -1
- package/dist/src/local-first/Evolu.js +1 -0
- package/dist/src/local-first/Owner.d.ts +18 -14
- package/dist/src/local-first/Owner.d.ts.map +1 -1
- package/dist/src/local-first/Owner.js +14 -11
- package/dist/src/local-first/Protocol.d.ts +5 -5
- package/dist/src/local-first/Protocol.d.ts.map +1 -1
- package/dist/src/local-first/Protocol.js +35 -29
- package/dist/src/local-first/Query.d.ts +34 -21
- package/dist/src/local-first/Query.d.ts.map +1 -1
- package/dist/src/local-first/Query.js +27 -14
- package/dist/src/local-first/Relay.d.ts +12 -5
- package/dist/src/local-first/Relay.d.ts.map +1 -1
- package/dist/src/local-first/Relay.js +1 -1
- package/dist/src/local-first/Schema.d.ts +19 -11
- package/dist/src/local-first/Schema.d.ts.map +1 -1
- package/dist/src/local-first/Schema.js +11 -6
- package/dist/src/local-first/Shared.d.ts.map +1 -1
- package/dist/src/local-first/Shared.js +4 -2
- package/dist/src/local-first/Storage.d.ts +4 -2
- package/dist/src/local-first/Storage.d.ts.map +1 -1
- package/dist/src/local-first/Timestamp.d.ts.map +1 -1
- package/dist/src/local-first/Timestamp.js +1 -1
- package/package.json +3 -4
- package/src/Array.ts +195 -95
- package/src/Assert.ts +337 -31
- package/src/BigInt.ts +3 -3
- package/src/Brand.ts +7 -7
- package/src/Buffer.ts +12 -4
- package/src/Cache.ts +8 -3
- package/src/Callbacks.ts +8 -4
- package/src/Console.ts +45 -30
- package/src/Crypto.ts +13 -8
- package/src/Eq.ts +450 -122
- package/src/Function.ts +54 -24
- package/src/Http.ts +52 -19
- package/src/Identicon.ts +9 -4
- package/src/LeakDetector.ts +4 -3
- package/src/LockManager.ts +12 -10
- package/src/Lookup.ts +5 -2
- package/src/Number.ts +28 -24
- package/src/Object.ts +115 -49
- package/src/Option.ts +14 -5
- package/src/Order.ts +12 -12
- package/src/Platform.ts +3 -2
- package/src/Random.ts +7 -4
- package/src/Redacted.ts +13 -6
- package/src/Ref.ts +4 -4
- package/src/Relation.ts +8 -10
- package/src/Resource.ts +36 -15
- package/src/Result.ts +263 -119
- package/src/Schedule.ts +233 -116
- package/src/Set.ts +43 -24
- package/src/Sqlite.ts +18 -15
- package/src/Store.ts +3 -1
- package/src/String.ts +1 -1
- package/src/Task.ts +566 -286
- package/src/Test.ts +11 -4
- package/src/Time.ts +36 -19
- package/src/Type.ts +2191 -590
- package/src/Types.ts +108 -40
- package/src/WebSocket.ts +22 -6
- package/src/Worker.ts +11 -7
- package/src/intl/_en.ts +20 -4
- package/src/intl/ar.ts +17 -2
- package/src/intl/bn.ts +19 -4
- package/src/intl/ca.ts +19 -4
- package/src/intl/cs.ts +19 -4
- package/src/intl/da.ts +19 -4
- package/src/intl/de.ts +19 -4
- package/src/intl/el.ts +19 -4
- package/src/intl/es.ts +19 -4
- package/src/intl/fa.ts +19 -4
- package/src/intl/fi.ts +19 -4
- package/src/intl/fil.ts +19 -4
- package/src/intl/fr.ts +19 -4
- package/src/intl/he.ts +19 -4
- package/src/intl/hi.ts +19 -4
- package/src/intl/hr.ts +19 -4
- package/src/intl/hu.ts +18 -4
- package/src/intl/id.ts +19 -4
- package/src/intl/it.ts +19 -4
- package/src/intl/ja.ts +19 -4
- package/src/intl/ko.ts +19 -4
- package/src/intl/ml.ts +19 -4
- package/src/intl/mr.ts +19 -4
- package/src/intl/ms.ts +17 -2
- package/src/intl/nb.ts +16 -2
- package/src/intl/nl.ts +19 -4
- package/src/intl/pa.ts +19 -4
- package/src/intl/pl.ts +18 -2
- package/src/intl/pt-BR.ts +19 -4
- package/src/intl/pt.ts +17 -2
- package/src/intl/ro.ts +19 -4
- package/src/intl/sk.ts +17 -2
- package/src/intl/sl.ts +19 -4
- package/src/intl/sv.ts +19 -4
- package/src/intl/sw.ts +15 -2
- package/src/intl/ta.ts +19 -4
- package/src/intl/te.ts +19 -4
- package/src/intl/th.ts +19 -4
- package/src/intl/tr.ts +19 -4
- package/src/intl/uk.ts +19 -4
- package/src/intl/ur.ts +17 -2
- package/src/intl/vi.ts +19 -3
- package/src/intl/zh-CN.ts +19 -4
- package/src/intl/zh-TW.ts +19 -4
- package/src/local-first/Db.ts +2 -1
- package/src/local-first/Evolu.ts +48 -24
- package/src/local-first/Owner.ts +18 -14
- package/src/local-first/Protocol.ts +45 -35
- package/src/local-first/Query.ts +40 -24
- package/src/local-first/Relay.ts +13 -6
- package/src/local-first/Schema.ts +19 -11
- package/src/local-first/Shared.ts +4 -2
- package/src/local-first/Storage.ts +4 -2
- 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
|
-
*
|
|
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 {
|
|
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
|
-
*
|
|
64
|
-
*
|
|
65
|
-
*
|
|
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 {
|
|
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
|
-
*
|
|
107
|
-
*
|
|
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 {
|
|
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
|
-
*
|
|
129
|
-
*
|
|
130
|
-
*
|
|
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
|
-
*
|
|
149
|
-
*
|
|
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
|
-
*
|
|
177
|
-
*
|
|
178
|
-
*
|
|
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
|
-
*
|
|
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
|
-
*
|
|
207
|
-
*
|
|
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
|
-
*
|
|
243
|
+
* assertEqual(firstInSet(set), "a");
|
|
225
244
|
* ```
|
|
226
245
|
*
|
|
227
246
|
* @group Accessors
|
package/dist/src/Set.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Set.d.ts","sourceRoot":"","sources":["../../src/Set.ts"],"names":[],"mappings":"AAAA
|
|
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
|
-
*
|
|
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 {
|
|
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
|
-
*
|
|
71
|
-
*
|
|
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 {
|
|
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
|
-
*
|
|
93
|
-
*
|
|
94
|
-
*
|
|
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
|
-
*
|
|
117
|
-
*
|
|
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
|
-
*
|
|
165
|
+
* assertEqual(firstInSet(set), "a");
|
|
154
166
|
* ```
|
|
155
167
|
*
|
|
156
168
|
* @group Accessors
|
package/dist/src/Sqlite.d.ts
CHANGED
|
@@ -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
|
-
*
|
|
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
|
-
*
|
|
275
|
+
* assertTrue(sqliteBooleanToBoolean(1));
|
|
276
276
|
* ```
|
|
277
277
|
*/
|
|
278
278
|
export declare const sqliteBooleanToBoolean: (value: SqliteBoolean) => boolean;
|
package/dist/src/Sqlite.d.ts.map
CHANGED
|
@@ -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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"}
|
package/dist/src/Sqlite.js
CHANGED
|
@@ -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
|
-
|
|
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
|
-
//
|
|
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 (
|
|
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
|
-
*
|
|
292
|
+
* assertEqual(select, {
|
|
291
293
|
* sql: "select * from users where id = ? and name = ?;",
|
|
292
294
|
* parameters: [42, "Alice"],
|
|
293
295
|
* });
|
|
294
|
-
*
|
|
295
|
-
*
|
|
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.
|
|
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
|
-
*
|
|
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
|
-
*
|
|
465
|
+
* assertTrue(sqliteBooleanToBoolean(1));
|
|
463
466
|
* ```
|
|
464
467
|
*/
|
|
465
468
|
export const sqliteBooleanToBoolean = (value) => value === sqliteTrue;
|
package/dist/src/Store.d.ts.map
CHANGED
|
@@ -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,
|
|
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 () =>
|
|
31
|
+
return () => {
|
|
32
|
+
listeners.delete(listener);
|
|
33
|
+
};
|
|
32
34
|
},
|
|
33
35
|
set: (state) => {
|
|
34
36
|
const previousState = ref.get();
|
package/dist/src/String.d.ts.map
CHANGED
|
@@ -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,
|
|
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"}
|
package/dist/src/String.js
CHANGED
|
@@ -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.
|
|
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")
|