@evolu/common 8.5.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 +170 -97
- package/dist/src/Array.d.ts.map +1 -1
- package/dist/src/Array.js +67 -42
- package/dist/src/Assert.d.ts +233 -30
- package/dist/src/Assert.d.ts.map +1 -1
- package/dist/src/Assert.js +150 -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/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 +4 -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/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/Resource.d.ts +27 -12
- package/dist/src/Resource.d.ts.map +1 -1
- package/dist/src/Result.d.ts +258 -114
- package/dist/src/Result.d.ts.map +1 -1
- package/dist/src/Result.js +71 -34
- 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 +9 -8
- package/dist/src/Task.d.ts +441 -212
- package/dist/src/Task.d.ts.map +1 -1
- package/dist/src/Task.js +238 -115
- package/dist/src/Test.d.ts +10 -4
- package/dist/src/Test.d.ts.map +1 -1
- package/dist/src/Test.js +10 -4
- package/dist/src/Time.d.ts +27 -17
- package/dist/src/Time.d.ts.map +1 -1
- package/dist/src/Time.js +16 -6
- package/dist/src/Type.d.ts +1096 -387
- package/dist/src/Type.d.ts.map +1 -1
- package/dist/src/Type.js +1046 -372
- 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/Worker.d.ts +10 -6
- package/dist/src/Worker.d.ts.map +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/Evolu.d.ts +47 -24
- package/dist/src/local-first/Evolu.d.ts.map +1 -1
- package/dist/src/local-first/Owner.d.ts +10 -7
- package/dist/src/local-first/Owner.d.ts.map +1 -1
- package/dist/src/local-first/Owner.js +10 -7
- package/dist/src/local-first/Protocol.d.ts +5 -5
- package/dist/src/local-first/Protocol.js +5 -5
- 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 +25 -13
- 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/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/Storage.d.ts +4 -2
- package/dist/src/local-first/Storage.d.ts.map +1 -1
- package/package.json +3 -4
- package/src/Array.ts +170 -97
- package/src/Assert.ts +336 -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/LockManager.ts +12 -10
- package/src/Lookup.ts +4 -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 +2 -2
- package/src/Random.ts +7 -4
- package/src/Redacted.ts +13 -6
- package/src/Ref.ts +4 -4
- package/src/Relation.ts +5 -7
- package/src/Resource.ts +27 -12
- package/src/Result.ts +258 -114
- package/src/Schedule.ts +233 -116
- package/src/Set.ts +43 -24
- package/src/Sqlite.ts +9 -8
- package/src/Task.ts +441 -212
- package/src/Test.ts +10 -4
- package/src/Time.ts +27 -17
- package/src/Type.ts +2077 -620
- package/src/Types.ts +108 -40
- package/src/WebSocket.ts +14 -6
- package/src/Worker.ts +10 -6
- 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/Evolu.ts +47 -24
- package/src/local-first/Owner.ts +10 -7
- package/src/local-first/Protocol.ts +5 -5
- package/src/local-first/Query.ts +34 -21
- package/src/local-first/Relay.ts +12 -5
- package/src/local-first/Schema.ts +19 -11
- package/src/local-first/Storage.ts +4 -2
package/src/local-first/Query.ts
CHANGED
|
@@ -41,6 +41,7 @@ export type { NotNull as KyselyNotNull } from "kysely";
|
|
|
41
41
|
*
|
|
42
42
|
* ```ts
|
|
43
43
|
* import {
|
|
44
|
+
* assertType,
|
|
44
45
|
* createQueryBuilder,
|
|
45
46
|
* id,
|
|
46
47
|
* NonEmptyTrimmedString100,
|
|
@@ -56,11 +57,12 @@ export type { NotNull as KyselyNotNull } from "kysely";
|
|
|
56
57
|
* const allTodos = createQuery((db) => db.selectFrom("todo").selectAll());
|
|
57
58
|
*
|
|
58
59
|
* type AllTodosRow = typeof allTodos.Row;
|
|
59
|
-
*
|
|
60
|
-
*
|
|
61
|
-
*
|
|
62
|
-
*
|
|
63
|
-
*
|
|
60
|
+
* assertType<
|
|
61
|
+
* true,
|
|
62
|
+
* typeof allTodos extends Query<typeof Schema> ? true : false
|
|
63
|
+
* >();
|
|
64
|
+
* assertType<TodoId, AllTodosRow["id"]>();
|
|
65
|
+
* assertType<NonEmptyTrimmedString100 | null, AllTodosRow["title"]>();
|
|
64
66
|
* ```
|
|
65
67
|
*/
|
|
66
68
|
export type Query<
|
|
@@ -78,6 +80,7 @@ export type Query<
|
|
|
78
80
|
*
|
|
79
81
|
* ```ts
|
|
80
82
|
* import {
|
|
83
|
+
* assertType,
|
|
81
84
|
* createQueryBuilder,
|
|
82
85
|
* id,
|
|
83
86
|
* type InferRow,
|
|
@@ -93,9 +96,7 @@ export type Query<
|
|
|
93
96
|
* );
|
|
94
97
|
*
|
|
95
98
|
* type AllTodosRow = typeof allTodos.Row;
|
|
96
|
-
*
|
|
97
|
-
* InferRow<typeof allTodos>
|
|
98
|
-
* >();
|
|
99
|
+
* assertType<InferRow<typeof allTodos>, AllTodosRow>();
|
|
99
100
|
* ```
|
|
100
101
|
*/
|
|
101
102
|
Row: R;
|
|
@@ -126,6 +127,7 @@ export interface Row {
|
|
|
126
127
|
*
|
|
127
128
|
* ```ts
|
|
128
129
|
* import {
|
|
130
|
+
* assertType,
|
|
129
131
|
* createQueryBuilder,
|
|
130
132
|
* evoluJsonArrayFrom,
|
|
131
133
|
* id,
|
|
@@ -157,10 +159,13 @@ export interface Row {
|
|
|
157
159
|
* ]),
|
|
158
160
|
* );
|
|
159
161
|
*
|
|
160
|
-
*
|
|
161
|
-
*
|
|
162
|
-
*
|
|
163
|
-
*
|
|
162
|
+
* assertType<
|
|
163
|
+
* {
|
|
164
|
+
* petId: typeof Schema.pet.id.Output;
|
|
165
|
+
* name: NonEmptyTrimmedString100 | null;
|
|
166
|
+
* },
|
|
167
|
+
* (typeof people.Row.pets)[number]
|
|
168
|
+
* >();
|
|
164
169
|
* ```
|
|
165
170
|
*/
|
|
166
171
|
export const evoluJsonArrayFrom = <O>(
|
|
@@ -185,6 +190,7 @@ export const evoluJsonArrayFrom = <O>(
|
|
|
185
190
|
*
|
|
186
191
|
* ```ts
|
|
187
192
|
* import {
|
|
193
|
+
* assertType,
|
|
188
194
|
* createQueryBuilder,
|
|
189
195
|
* evoluJsonObjectFrom,
|
|
190
196
|
* id,
|
|
@@ -218,10 +224,13 @@ export const evoluJsonArrayFrom = <O>(
|
|
|
218
224
|
* ]),
|
|
219
225
|
* );
|
|
220
226
|
*
|
|
221
|
-
*
|
|
222
|
-
*
|
|
223
|
-
*
|
|
224
|
-
*
|
|
227
|
+
* assertType<
|
|
228
|
+
* {
|
|
229
|
+
* petId: typeof Schema.pet.id.Output;
|
|
230
|
+
* name: NonEmptyTrimmedString100 | null;
|
|
231
|
+
* } | null,
|
|
232
|
+
* typeof people.Row.favoritePet
|
|
233
|
+
* >();
|
|
225
234
|
* ```
|
|
226
235
|
*/
|
|
227
236
|
export const evoluJsonObjectFrom = <O>(
|
|
@@ -244,6 +253,7 @@ export const evoluJsonObjectFrom = <O>(
|
|
|
244
253
|
*
|
|
245
254
|
* ```ts
|
|
246
255
|
* import {
|
|
256
|
+
* assertType,
|
|
247
257
|
* createQueryBuilder,
|
|
248
258
|
* evoluJsonBuildObject,
|
|
249
259
|
* id,
|
|
@@ -274,11 +284,14 @@ export const evoluJsonObjectFrom = <O>(
|
|
|
274
284
|
* ]),
|
|
275
285
|
* );
|
|
276
286
|
*
|
|
277
|
-
*
|
|
278
|
-
*
|
|
279
|
-
*
|
|
280
|
-
*
|
|
281
|
-
*
|
|
287
|
+
* assertType<
|
|
288
|
+
* {
|
|
289
|
+
* first: NonEmptyTrimmedString100 | null;
|
|
290
|
+
* last: NonEmptyTrimmedString100 | null;
|
|
291
|
+
* full: string;
|
|
292
|
+
* },
|
|
293
|
+
* typeof people.Row.name
|
|
294
|
+
* >();
|
|
282
295
|
* ```
|
|
283
296
|
*/
|
|
284
297
|
export const evoluJsonBuildObject = <
|
package/src/local-first/Relay.ts
CHANGED
|
@@ -79,6 +79,9 @@ export interface RelayConfig extends StorageConfig {
|
|
|
79
79
|
* ```ts
|
|
80
80
|
* import {
|
|
81
81
|
* AppName,
|
|
82
|
+
* assertEqual,
|
|
83
|
+
* assertTrue,
|
|
84
|
+
* assertType,
|
|
82
85
|
* createAppOwner,
|
|
83
86
|
* createEvolu,
|
|
84
87
|
* createOwnerWebSocketTransport,
|
|
@@ -107,7 +110,10 @@ export interface RelayConfig extends StorageConfig {
|
|
|
107
110
|
* transports: [transport],
|
|
108
111
|
* },
|
|
109
112
|
* );
|
|
110
|
-
*
|
|
113
|
+
* assertType<
|
|
114
|
+
* true,
|
|
115
|
+
* typeof createTodoEvolu extends AnyTask ? true : false
|
|
116
|
+
* >();
|
|
111
117
|
*
|
|
112
118
|
* // Relay: accept owners allowed by the app's access policy.
|
|
113
119
|
* type IsOwnerAllowed = NonNullable<RelayConfig["isOwnerAllowed"]>;
|
|
@@ -115,12 +121,13 @@ export interface RelayConfig extends StorageConfig {
|
|
|
115
121
|
* const isOwnerAllowed: IsOwnerAllowed = (ownerId, { signal }) =>
|
|
116
122
|
* !signal.aborted && allowedOwnerIds.has(ownerId);
|
|
117
123
|
*
|
|
118
|
-
*
|
|
119
|
-
* isOwnerAllowed(appOwner.id, {
|
|
124
|
+
* assertEqual(
|
|
125
|
+
* await isOwnerAllowed(appOwner.id, {
|
|
120
126
|
* signal: new AbortController().signal,
|
|
121
127
|
* }),
|
|
122
|
-
*
|
|
123
|
-
*
|
|
128
|
+
* true,
|
|
129
|
+
* );
|
|
130
|
+
* assertTrue(transport.url.includes(`ownerId=${appOwner.id}`));
|
|
124
131
|
* ```
|
|
125
132
|
*/
|
|
126
133
|
readonly isOwnerAllowed?: (
|
|
@@ -62,6 +62,8 @@ export type AnyStandardSchemaV1 = StandardSchemaV1<any, any>;
|
|
|
62
62
|
* ```ts
|
|
63
63
|
* import * as z from "zod";
|
|
64
64
|
* import {
|
|
65
|
+
* assertOk,
|
|
66
|
+
* assertTrue,
|
|
65
67
|
* id,
|
|
66
68
|
* NonEmptyTrimmedString100,
|
|
67
69
|
* nullOr,
|
|
@@ -79,7 +81,7 @@ export type AnyStandardSchemaV1 = StandardSchemaV1<any, any>;
|
|
|
79
81
|
* isCompleted: nullOr(SqliteBoolean),
|
|
80
82
|
* },
|
|
81
83
|
* };
|
|
82
|
-
*
|
|
84
|
+
* assertOk(Schema.todo.title.fromUnknown("Write docs"), "Write docs");
|
|
83
85
|
*
|
|
84
86
|
* // Zod, or another Standard Schema library
|
|
85
87
|
* const ZodSchema = {
|
|
@@ -89,7 +91,7 @@ export type AnyStandardSchemaV1 = StandardSchemaV1<any, any>;
|
|
|
89
91
|
* isCompleted: z.union([z.literal(0), z.literal(1)]).nullable(),
|
|
90
92
|
* },
|
|
91
93
|
* };
|
|
92
|
-
*
|
|
94
|
+
* assertTrue(ZodSchema.todo.title.safeParse("Write docs").success);
|
|
93
95
|
* ```
|
|
94
96
|
*/
|
|
95
97
|
export type EvoluSchema = ReadonlyRecord<
|
|
@@ -238,6 +240,7 @@ export interface MutationOptions {
|
|
|
238
240
|
*
|
|
239
241
|
* ```ts
|
|
240
242
|
* import {
|
|
243
|
+
* assertEqual,
|
|
241
244
|
* createAppOwner,
|
|
242
245
|
* createOwnerSecret,
|
|
243
246
|
* createRandomBytes,
|
|
@@ -263,7 +266,7 @@ export interface MutationOptions {
|
|
|
263
266
|
* createOwnerSecret({ randomBytes }),
|
|
264
267
|
* );
|
|
265
268
|
*
|
|
266
|
-
* const
|
|
269
|
+
* const _insertOwnedRows = (evolu: Evolu<typeof Schema>): void => {
|
|
267
270
|
* // Partition app data by project.
|
|
268
271
|
* evolu.insert(
|
|
269
272
|
* "task",
|
|
@@ -279,8 +282,8 @@ export interface MutationOptions {
|
|
|
279
282
|
* );
|
|
280
283
|
* };
|
|
281
284
|
*
|
|
282
|
-
*
|
|
283
|
-
*
|
|
285
|
+
* assertEqual(projectOwner.type, "ShardOwner");
|
|
286
|
+
* assertEqual(sharedOwner.type, "SharedOwner");
|
|
284
287
|
* ```
|
|
285
288
|
*/
|
|
286
289
|
readonly ownerId?: OwnerId;
|
|
@@ -448,6 +451,8 @@ export const evoluSchemaToSqliteSchema = <S extends EvoluSchema>(
|
|
|
448
451
|
*
|
|
449
452
|
* ```ts
|
|
450
453
|
* import {
|
|
454
|
+
* assertTrue,
|
|
455
|
+
* assertType,
|
|
451
456
|
* createQueryBuilder,
|
|
452
457
|
* id,
|
|
453
458
|
* NonEmptyTrimmedString100,
|
|
@@ -471,12 +476,15 @@ export const evoluSchemaToSqliteSchema = <S extends EvoluSchema>(
|
|
|
471
476
|
* db.selectFrom("todo").select(["id", "title", "isCompleted"]),
|
|
472
477
|
* );
|
|
473
478
|
*
|
|
474
|
-
*
|
|
475
|
-
*
|
|
476
|
-
*
|
|
477
|
-
*
|
|
478
|
-
*
|
|
479
|
-
*
|
|
479
|
+
* assertType<
|
|
480
|
+
* {
|
|
481
|
+
* id: TodoId;
|
|
482
|
+
* title: NonEmptyTrimmedString100 | null;
|
|
483
|
+
* isCompleted: SqliteBoolean | null;
|
|
484
|
+
* },
|
|
485
|
+
* typeof todosQuery.Row
|
|
486
|
+
* >();
|
|
487
|
+
* assertTrue(typeof todosQuery === "string");
|
|
480
488
|
* ```
|
|
481
489
|
*/
|
|
482
490
|
export const createQueryBuilder = <S extends EvoluSchema>(
|
|
@@ -70,6 +70,7 @@ export interface StorageConfig {
|
|
|
70
70
|
*
|
|
71
71
|
* ```ts
|
|
72
72
|
* import {
|
|
73
|
+
* assertEqual,
|
|
73
74
|
* createAppOwner,
|
|
74
75
|
* createOwnerSecret,
|
|
75
76
|
* createRandomBytes,
|
|
@@ -87,12 +88,13 @@ export interface StorageConfig {
|
|
|
87
88
|
* ownerId === appOwner.id && requiredBytes <= maxBytes,
|
|
88
89
|
* };
|
|
89
90
|
*
|
|
90
|
-
*
|
|
91
|
+
* assertEqual(
|
|
91
92
|
* await relayStorageConfig.isOwnerWithinQuota(
|
|
92
93
|
* appOwner.id,
|
|
93
94
|
* PositiveInt.orThrow(2048),
|
|
94
95
|
* ),
|
|
95
|
-
*
|
|
96
|
+
* false,
|
|
97
|
+
* );
|
|
96
98
|
* ```
|
|
97
99
|
*/
|
|
98
100
|
readonly isOwnerWithinQuota: (
|