@evolu/common 8.5.0 → 8.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (328) hide show
  1. package/dist/src/Array.d.ts +170 -97
  2. package/dist/src/Array.d.ts.map +1 -1
  3. package/dist/src/Array.js +67 -42
  4. package/dist/src/Assert.d.ts +233 -30
  5. package/dist/src/Assert.d.ts.map +1 -1
  6. package/dist/src/Assert.js +150 -30
  7. package/dist/src/BigInt.d.ts +3 -3
  8. package/dist/src/BigInt.js +3 -3
  9. package/dist/src/Brand.d.ts +7 -7
  10. package/dist/src/Buffer.d.ts +12 -4
  11. package/dist/src/Buffer.d.ts.map +1 -1
  12. package/dist/src/Cache.d.ts +8 -3
  13. package/dist/src/Cache.d.ts.map +1 -1
  14. package/dist/src/Cache.js +8 -3
  15. package/dist/src/Callbacks.d.ts +8 -4
  16. package/dist/src/Callbacks.d.ts.map +1 -1
  17. package/dist/src/Console.d.ts +45 -30
  18. package/dist/src/Console.d.ts.map +1 -1
  19. package/dist/src/Console.js +32 -21
  20. package/dist/src/Crypto.d.ts +13 -8
  21. package/dist/src/Crypto.d.ts.map +1 -1
  22. package/dist/src/Crypto.js +6 -3
  23. package/dist/src/Eq.d.ts +107 -58
  24. package/dist/src/Eq.d.ts.map +1 -1
  25. package/dist/src/Eq.js +308 -112
  26. package/dist/src/Function.d.ts +54 -24
  27. package/dist/src/Function.d.ts.map +1 -1
  28. package/dist/src/Function.js +34 -17
  29. package/dist/src/Http.d.ts +52 -19
  30. package/dist/src/Http.d.ts.map +1 -1
  31. package/dist/src/Identicon.d.ts +9 -4
  32. package/dist/src/Identicon.d.ts.map +1 -1
  33. package/dist/src/Identicon.js +9 -4
  34. package/dist/src/LockManager.d.ts +12 -10
  35. package/dist/src/LockManager.d.ts.map +1 -1
  36. package/dist/src/Lookup.d.ts +4 -2
  37. package/dist/src/Lookup.d.ts.map +1 -1
  38. package/dist/src/Lookup.js +4 -2
  39. package/dist/src/Number.d.ts +28 -24
  40. package/dist/src/Number.d.ts.map +1 -1
  41. package/dist/src/Number.js +16 -17
  42. package/dist/src/Object.d.ts +89 -47
  43. package/dist/src/Object.d.ts.map +1 -1
  44. package/dist/src/Object.js +88 -41
  45. package/dist/src/Option.d.ts +14 -5
  46. package/dist/src/Option.d.ts.map +1 -1
  47. package/dist/src/Option.js +14 -5
  48. package/dist/src/Order.d.ts +12 -12
  49. package/dist/src/Order.js +12 -12
  50. package/dist/src/Platform.d.ts +2 -2
  51. package/dist/src/Random.d.ts +7 -4
  52. package/dist/src/Random.d.ts.map +1 -1
  53. package/dist/src/Redacted.d.ts +13 -6
  54. package/dist/src/Redacted.d.ts.map +1 -1
  55. package/dist/src/Redacted.js +4 -2
  56. package/dist/src/Ref.d.ts +4 -4
  57. package/dist/src/Relation.d.ts +5 -7
  58. package/dist/src/Relation.d.ts.map +1 -1
  59. package/dist/src/Resource.d.ts +27 -12
  60. package/dist/src/Resource.d.ts.map +1 -1
  61. package/dist/src/Result.d.ts +258 -114
  62. package/dist/src/Result.d.ts.map +1 -1
  63. package/dist/src/Result.js +71 -34
  64. package/dist/src/Schedule.d.ts +233 -116
  65. package/dist/src/Schedule.d.ts.map +1 -1
  66. package/dist/src/Schedule.js +204 -110
  67. package/dist/src/Set.d.ts +43 -24
  68. package/dist/src/Set.d.ts.map +1 -1
  69. package/dist/src/Set.js +25 -13
  70. package/dist/src/Sqlite.d.ts +4 -4
  71. package/dist/src/Sqlite.d.ts.map +1 -1
  72. package/dist/src/Sqlite.js +9 -8
  73. package/dist/src/Task.d.ts +441 -212
  74. package/dist/src/Task.d.ts.map +1 -1
  75. package/dist/src/Task.js +238 -115
  76. package/dist/src/Test.d.ts +10 -4
  77. package/dist/src/Test.d.ts.map +1 -1
  78. package/dist/src/Test.js +10 -4
  79. package/dist/src/Time.d.ts +27 -17
  80. package/dist/src/Time.d.ts.map +1 -1
  81. package/dist/src/Time.js +16 -6
  82. package/dist/src/Type.d.ts +1096 -387
  83. package/dist/src/Type.d.ts.map +1 -1
  84. package/dist/src/Type.js +1046 -372
  85. package/dist/src/Types.d.ts +95 -40
  86. package/dist/src/Types.d.ts.map +1 -1
  87. package/dist/src/Types.js +13 -4
  88. package/dist/src/WebSocket.d.ts +14 -6
  89. package/dist/src/WebSocket.d.ts.map +1 -1
  90. package/dist/src/Worker.d.ts +10 -6
  91. package/dist/src/Worker.d.ts.map +1 -1
  92. package/dist/src/intl/_en.d.ts +3 -1
  93. package/dist/src/intl/_en.d.ts.map +1 -1
  94. package/dist/src/intl/_en.js +17 -3
  95. package/dist/src/intl/ar.d.ts +3 -1
  96. package/dist/src/intl/ar.d.ts.map +1 -1
  97. package/dist/src/intl/ar.js +15 -2
  98. package/dist/src/intl/bn.d.ts +3 -1
  99. package/dist/src/intl/bn.d.ts.map +1 -1
  100. package/dist/src/intl/bn.js +16 -3
  101. package/dist/src/intl/ca.d.ts +3 -1
  102. package/dist/src/intl/ca.d.ts.map +1 -1
  103. package/dist/src/intl/ca.js +16 -3
  104. package/dist/src/intl/cs.d.ts +3 -1
  105. package/dist/src/intl/cs.d.ts.map +1 -1
  106. package/dist/src/intl/cs.js +16 -3
  107. package/dist/src/intl/da.d.ts +3 -1
  108. package/dist/src/intl/da.d.ts.map +1 -1
  109. package/dist/src/intl/da.js +16 -3
  110. package/dist/src/intl/de.d.ts +3 -1
  111. package/dist/src/intl/de.d.ts.map +1 -1
  112. package/dist/src/intl/de.js +16 -3
  113. package/dist/src/intl/el.d.ts +3 -1
  114. package/dist/src/intl/el.d.ts.map +1 -1
  115. package/dist/src/intl/el.js +16 -3
  116. package/dist/src/intl/es.d.ts +3 -1
  117. package/dist/src/intl/es.d.ts.map +1 -1
  118. package/dist/src/intl/es.js +16 -3
  119. package/dist/src/intl/fa.d.ts +3 -1
  120. package/dist/src/intl/fa.d.ts.map +1 -1
  121. package/dist/src/intl/fa.js +16 -3
  122. package/dist/src/intl/fi.d.ts +3 -1
  123. package/dist/src/intl/fi.d.ts.map +1 -1
  124. package/dist/src/intl/fi.js +16 -3
  125. package/dist/src/intl/fil.d.ts +3 -1
  126. package/dist/src/intl/fil.d.ts.map +1 -1
  127. package/dist/src/intl/fil.js +16 -3
  128. package/dist/src/intl/fr.d.ts +3 -1
  129. package/dist/src/intl/fr.d.ts.map +1 -1
  130. package/dist/src/intl/fr.js +16 -3
  131. package/dist/src/intl/he.d.ts +3 -1
  132. package/dist/src/intl/he.d.ts.map +1 -1
  133. package/dist/src/intl/he.js +16 -3
  134. package/dist/src/intl/hi.d.ts +3 -1
  135. package/dist/src/intl/hi.d.ts.map +1 -1
  136. package/dist/src/intl/hi.js +16 -3
  137. package/dist/src/intl/hr.d.ts +3 -1
  138. package/dist/src/intl/hr.d.ts.map +1 -1
  139. package/dist/src/intl/hr.js +16 -3
  140. package/dist/src/intl/hu.d.ts +2 -1
  141. package/dist/src/intl/hu.d.ts.map +1 -1
  142. package/dist/src/intl/hu.js +15 -3
  143. package/dist/src/intl/id.d.ts +3 -1
  144. package/dist/src/intl/id.d.ts.map +1 -1
  145. package/dist/src/intl/id.js +16 -3
  146. package/dist/src/intl/it.d.ts +3 -1
  147. package/dist/src/intl/it.d.ts.map +1 -1
  148. package/dist/src/intl/it.js +16 -3
  149. package/dist/src/intl/ja.d.ts +3 -1
  150. package/dist/src/intl/ja.d.ts.map +1 -1
  151. package/dist/src/intl/ja.js +16 -3
  152. package/dist/src/intl/ko.d.ts +3 -1
  153. package/dist/src/intl/ko.d.ts.map +1 -1
  154. package/dist/src/intl/ko.js +16 -3
  155. package/dist/src/intl/ml.d.ts +3 -1
  156. package/dist/src/intl/ml.d.ts.map +1 -1
  157. package/dist/src/intl/ml.js +16 -3
  158. package/dist/src/intl/mr.d.ts +3 -1
  159. package/dist/src/intl/mr.d.ts.map +1 -1
  160. package/dist/src/intl/mr.js +16 -3
  161. package/dist/src/intl/ms.d.ts +3 -1
  162. package/dist/src/intl/ms.d.ts.map +1 -1
  163. package/dist/src/intl/ms.js +15 -2
  164. package/dist/src/intl/nb.d.ts +2 -1
  165. package/dist/src/intl/nb.d.ts.map +1 -1
  166. package/dist/src/intl/nb.js +14 -2
  167. package/dist/src/intl/nl.d.ts +3 -1
  168. package/dist/src/intl/nl.d.ts.map +1 -1
  169. package/dist/src/intl/nl.js +16 -3
  170. package/dist/src/intl/pa.d.ts +3 -1
  171. package/dist/src/intl/pa.d.ts.map +1 -1
  172. package/dist/src/intl/pa.js +16 -3
  173. package/dist/src/intl/pl.d.ts +2 -0
  174. package/dist/src/intl/pl.d.ts.map +1 -1
  175. package/dist/src/intl/pl.js +15 -2
  176. package/dist/src/intl/pt-BR.d.ts +3 -1
  177. package/dist/src/intl/pt-BR.d.ts.map +1 -1
  178. package/dist/src/intl/pt-BR.js +16 -3
  179. package/dist/src/intl/pt.d.ts +3 -1
  180. package/dist/src/intl/pt.d.ts.map +1 -1
  181. package/dist/src/intl/pt.js +15 -2
  182. package/dist/src/intl/ro.d.ts +3 -1
  183. package/dist/src/intl/ro.d.ts.map +1 -1
  184. package/dist/src/intl/ro.js +16 -3
  185. package/dist/src/intl/sk.d.ts +3 -1
  186. package/dist/src/intl/sk.d.ts.map +1 -1
  187. package/dist/src/intl/sk.js +15 -2
  188. package/dist/src/intl/sl.d.ts +3 -1
  189. package/dist/src/intl/sl.d.ts.map +1 -1
  190. package/dist/src/intl/sl.js +16 -3
  191. package/dist/src/intl/sv.d.ts +3 -1
  192. package/dist/src/intl/sv.d.ts.map +1 -1
  193. package/dist/src/intl/sv.js +16 -3
  194. package/dist/src/intl/sw.d.ts +1 -0
  195. package/dist/src/intl/sw.d.ts.map +1 -1
  196. package/dist/src/intl/sw.js +14 -2
  197. package/dist/src/intl/ta.d.ts +3 -1
  198. package/dist/src/intl/ta.d.ts.map +1 -1
  199. package/dist/src/intl/ta.js +16 -3
  200. package/dist/src/intl/te.d.ts +3 -1
  201. package/dist/src/intl/te.d.ts.map +1 -1
  202. package/dist/src/intl/te.js +16 -3
  203. package/dist/src/intl/th.d.ts +3 -1
  204. package/dist/src/intl/th.d.ts.map +1 -1
  205. package/dist/src/intl/th.js +16 -3
  206. package/dist/src/intl/tr.d.ts +3 -1
  207. package/dist/src/intl/tr.d.ts.map +1 -1
  208. package/dist/src/intl/tr.js +16 -3
  209. package/dist/src/intl/uk.d.ts +3 -1
  210. package/dist/src/intl/uk.d.ts.map +1 -1
  211. package/dist/src/intl/uk.js +16 -3
  212. package/dist/src/intl/ur.d.ts +3 -1
  213. package/dist/src/intl/ur.d.ts.map +1 -1
  214. package/dist/src/intl/ur.js +15 -2
  215. package/dist/src/intl/vi.d.ts +3 -1
  216. package/dist/src/intl/vi.d.ts.map +1 -1
  217. package/dist/src/intl/vi.js +16 -3
  218. package/dist/src/intl/zh-CN.d.ts +3 -1
  219. package/dist/src/intl/zh-CN.d.ts.map +1 -1
  220. package/dist/src/intl/zh-CN.js +16 -3
  221. package/dist/src/intl/zh-TW.d.ts +3 -1
  222. package/dist/src/intl/zh-TW.d.ts.map +1 -1
  223. package/dist/src/intl/zh-TW.js +16 -3
  224. package/dist/src/local-first/Evolu.d.ts +47 -24
  225. package/dist/src/local-first/Evolu.d.ts.map +1 -1
  226. package/dist/src/local-first/Owner.d.ts +10 -7
  227. package/dist/src/local-first/Owner.d.ts.map +1 -1
  228. package/dist/src/local-first/Owner.js +10 -7
  229. package/dist/src/local-first/Protocol.d.ts +5 -5
  230. package/dist/src/local-first/Protocol.js +7 -7
  231. package/dist/src/local-first/Query.d.ts +34 -21
  232. package/dist/src/local-first/Query.d.ts.map +1 -1
  233. package/dist/src/local-first/Query.js +25 -13
  234. package/dist/src/local-first/Relay.d.ts +12 -5
  235. package/dist/src/local-first/Relay.d.ts.map +1 -1
  236. package/dist/src/local-first/Schema.d.ts +19 -11
  237. package/dist/src/local-first/Schema.d.ts.map +1 -1
  238. package/dist/src/local-first/Schema.js +11 -6
  239. package/dist/src/local-first/Storage.d.ts +4 -2
  240. package/dist/src/local-first/Storage.d.ts.map +1 -1
  241. package/package.json +3 -4
  242. package/src/Array.ts +170 -97
  243. package/src/Assert.ts +336 -31
  244. package/src/BigInt.ts +3 -3
  245. package/src/Brand.ts +7 -7
  246. package/src/Buffer.ts +12 -4
  247. package/src/Cache.ts +8 -3
  248. package/src/Callbacks.ts +8 -4
  249. package/src/Console.ts +45 -30
  250. package/src/Crypto.ts +13 -8
  251. package/src/Eq.ts +450 -122
  252. package/src/Function.ts +54 -24
  253. package/src/Http.ts +52 -19
  254. package/src/Identicon.ts +9 -4
  255. package/src/LockManager.ts +12 -10
  256. package/src/Lookup.ts +4 -2
  257. package/src/Number.ts +28 -24
  258. package/src/Object.ts +115 -49
  259. package/src/Option.ts +14 -5
  260. package/src/Order.ts +12 -12
  261. package/src/Platform.ts +2 -2
  262. package/src/Random.ts +7 -4
  263. package/src/Redacted.ts +13 -6
  264. package/src/Ref.ts +4 -4
  265. package/src/Relation.ts +5 -7
  266. package/src/Resource.ts +27 -12
  267. package/src/Result.ts +258 -114
  268. package/src/Schedule.ts +233 -116
  269. package/src/Set.ts +43 -24
  270. package/src/Sqlite.ts +9 -8
  271. package/src/Task.ts +441 -212
  272. package/src/Test.ts +10 -4
  273. package/src/Time.ts +27 -17
  274. package/src/Type.ts +2077 -620
  275. package/src/Types.ts +108 -40
  276. package/src/WebSocket.ts +14 -6
  277. package/src/Worker.ts +10 -6
  278. package/src/intl/_en.ts +20 -4
  279. package/src/intl/ar.ts +17 -2
  280. package/src/intl/bn.ts +19 -4
  281. package/src/intl/ca.ts +19 -4
  282. package/src/intl/cs.ts +19 -4
  283. package/src/intl/da.ts +19 -4
  284. package/src/intl/de.ts +19 -4
  285. package/src/intl/el.ts +19 -4
  286. package/src/intl/es.ts +19 -4
  287. package/src/intl/fa.ts +19 -4
  288. package/src/intl/fi.ts +19 -4
  289. package/src/intl/fil.ts +19 -4
  290. package/src/intl/fr.ts +19 -4
  291. package/src/intl/he.ts +19 -4
  292. package/src/intl/hi.ts +19 -4
  293. package/src/intl/hr.ts +19 -4
  294. package/src/intl/hu.ts +18 -4
  295. package/src/intl/id.ts +19 -4
  296. package/src/intl/it.ts +19 -4
  297. package/src/intl/ja.ts +19 -4
  298. package/src/intl/ko.ts +19 -4
  299. package/src/intl/ml.ts +19 -4
  300. package/src/intl/mr.ts +19 -4
  301. package/src/intl/ms.ts +17 -2
  302. package/src/intl/nb.ts +16 -2
  303. package/src/intl/nl.ts +19 -4
  304. package/src/intl/pa.ts +19 -4
  305. package/src/intl/pl.ts +18 -2
  306. package/src/intl/pt-BR.ts +19 -4
  307. package/src/intl/pt.ts +17 -2
  308. package/src/intl/ro.ts +19 -4
  309. package/src/intl/sk.ts +17 -2
  310. package/src/intl/sl.ts +19 -4
  311. package/src/intl/sv.ts +19 -4
  312. package/src/intl/sw.ts +15 -2
  313. package/src/intl/ta.ts +19 -4
  314. package/src/intl/te.ts +19 -4
  315. package/src/intl/th.ts +19 -4
  316. package/src/intl/tr.ts +19 -4
  317. package/src/intl/uk.ts +19 -4
  318. package/src/intl/ur.ts +17 -2
  319. package/src/intl/vi.ts +19 -3
  320. package/src/intl/zh-CN.ts +19 -4
  321. package/src/intl/zh-TW.ts +19 -4
  322. package/src/local-first/Evolu.ts +47 -24
  323. package/src/local-first/Owner.ts +10 -7
  324. package/src/local-first/Protocol.ts +7 -7
  325. package/src/local-first/Query.ts +34 -21
  326. package/src/local-first/Relay.ts +12 -5
  327. package/src/local-first/Schema.ts +19 -11
  328. package/src/local-first/Storage.ts +4 -2
@@ -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
- * expectTypeOf<typeof allTodos>().toExtend<Query<typeof Schema>>();
60
- * expectTypeOf<AllTodosRow["id"]>().toEqualTypeOf<TodoId>();
61
- * expectTypeOf<
62
- * AllTodosRow["title"]
63
- * >().toEqualTypeOf<NonEmptyTrimmedString100 | null>();
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
- * expectTypeOf<AllTodosRow>().toEqualTypeOf<
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
- * expectTypeOf<(typeof people.Row.pets)[number]>().toEqualTypeOf<{
161
- * petId: typeof Schema.pet.id.Output;
162
- * name: NonEmptyTrimmedString100 | null;
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
- * expectTypeOf<typeof people.Row.favoritePet>().toEqualTypeOf<{
222
- * petId: typeof Schema.pet.id.Output;
223
- * name: NonEmptyTrimmedString100 | null;
224
- * } | null>();
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
- * expectTypeOf<typeof people.Row.name>().toEqualTypeOf<{
278
- * first: NonEmptyTrimmedString100 | null;
279
- * last: NonEmptyTrimmedString100 | null;
280
- * full: string;
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 = <
@@ -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
- * expectTypeOf(createTodoEvolu).toExtend<AnyTask>();
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
- * expect(
119
- * isOwnerAllowed(appOwner.id, {
124
+ * assertEqual(
125
+ * await isOwnerAllowed(appOwner.id, {
120
126
  * signal: new AbortController().signal,
121
127
  * }),
122
- * ).toBe(true);
123
- * expect(transport.url).toContain(`ownerId=${appOwner.id}`);
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
- * expectOk(Schema.todo.title.fromUnknown("Write docs"), "Write docs");
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
- * expect(ZodSchema.todo.title.safeParse("Write docs").success).toBe(true);
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 insertOwnedRows = (evolu: Evolu<typeof Schema>): void => {
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
- * expect(projectOwner.type).toBe("ShardOwner");
283
- * expect(sharedOwner.type).toBe("SharedOwner");
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
- * expectTypeOf<typeof todosQuery.Row>().toEqualTypeOf<{
475
- * id: TodoId;
476
- * title: NonEmptyTrimmedString100 | null;
477
- * isCompleted: SqliteBoolean | null;
478
- * }>();
479
- * expect(todosQuery).toBeTypeOf("string");
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
- * expect(
91
+ * assertEqual(
91
92
  * await relayStorageConfig.isOwnerWithinQuota(
92
93
  * appOwner.id,
93
94
  * PositiveInt.orThrow(2048),
94
95
  * ),
95
- * ).toBe(false);
96
+ * false,
97
+ * );
96
98
  * ```
97
99
  */
98
100
  readonly isOwnerWithinQuota: (