@evolu/common 8.10.0 → 8.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (144) hide show
  1. package/dist/src/Config.d.ts +22 -22
  2. package/dist/src/Config.d.ts.map +1 -1
  3. package/dist/src/Console.d.ts +62 -7
  4. package/dist/src/Console.d.ts.map +1 -1
  5. package/dist/src/Console.js +20 -4
  6. package/dist/src/Crypto.d.ts +76 -4
  7. package/dist/src/Crypto.d.ts.map +1 -1
  8. package/dist/src/Crypto.js +55 -4
  9. package/dist/src/Error.d.ts +45 -0
  10. package/dist/src/Error.d.ts.map +1 -1
  11. package/dist/src/Error.js +69 -0
  12. package/dist/src/Fs.d.ts +92 -18
  13. package/dist/src/Fs.d.ts.map +1 -1
  14. package/dist/src/Fs.js +2 -0
  15. package/dist/src/Identicon.d.ts +2 -2
  16. package/dist/src/Identicon.js +2 -2
  17. package/dist/src/LeakDetector.d.ts +22 -3
  18. package/dist/src/LeakDetector.d.ts.map +1 -1
  19. package/dist/src/LeakDetector.js +12 -2
  20. package/dist/src/LockManager.d.ts +8 -0
  21. package/dist/src/LockManager.d.ts.map +1 -1
  22. package/dist/src/LockManager.js +6 -0
  23. package/dist/src/Object.d.ts.map +1 -1
  24. package/dist/src/Object.js +5 -0
  25. package/dist/src/Platform.d.ts +47 -7
  26. package/dist/src/Platform.d.ts.map +1 -1
  27. package/dist/src/Platform.js +24 -5
  28. package/dist/src/Random.d.ts +25 -2
  29. package/dist/src/Random.d.ts.map +1 -1
  30. package/dist/src/Random.js +14 -2
  31. package/dist/src/Resource.d.ts +156 -1
  32. package/dist/src/Resource.d.ts.map +1 -1
  33. package/dist/src/Resource.js +201 -72
  34. package/dist/src/Schedule.d.ts +11 -10
  35. package/dist/src/Schedule.d.ts.map +1 -1
  36. package/dist/src/Schedule.js +1 -1
  37. package/dist/src/Sqlite.d.ts +132 -16
  38. package/dist/src/Sqlite.d.ts.map +1 -1
  39. package/dist/src/Sqlite.js +63 -9
  40. package/dist/src/Task.d.ts +15 -4
  41. package/dist/src/Task.d.ts.map +1 -1
  42. package/dist/src/Task.js +41 -15
  43. package/dist/src/Test.d.ts +9 -0
  44. package/dist/src/Test.d.ts.map +1 -1
  45. package/dist/src/Test.js +4 -0
  46. package/dist/src/Time.d.ts +106 -9
  47. package/dist/src/Time.d.ts.map +1 -1
  48. package/dist/src/Time.js +55 -4
  49. package/dist/src/Type.d.ts +1455 -1310
  50. package/dist/src/Type.d.ts.map +1 -1
  51. package/dist/src/Type.js +1274 -517
  52. package/dist/src/WebSocket.d.ts +164 -13
  53. package/dist/src/WebSocket.d.ts.map +1 -1
  54. package/dist/src/WebSocket.js +133 -24
  55. package/dist/src/Worker.d.ts +90 -8
  56. package/dist/src/Worker.d.ts.map +1 -1
  57. package/dist/src/Worker.js +28 -2
  58. package/dist/src/index.d.ts +6 -7
  59. package/dist/src/index.d.ts.map +1 -1
  60. package/dist/src/index.js +2 -3
  61. package/dist/src/local-first/Db.d.ts +52 -3
  62. package/dist/src/local-first/Db.d.ts.map +1 -1
  63. package/dist/src/local-first/Db.js +412 -137
  64. package/dist/src/local-first/Evolu.d.ts +336 -211
  65. package/dist/src/local-first/Evolu.d.ts.map +1 -1
  66. package/dist/src/local-first/Evolu.js +102 -15
  67. package/dist/src/local-first/Owner.d.ts +13 -30
  68. package/dist/src/local-first/Owner.d.ts.map +1 -1
  69. package/dist/src/local-first/Owner.js +13 -30
  70. package/dist/src/local-first/Protocol.d.ts +94 -16
  71. package/dist/src/local-first/Protocol.d.ts.map +1 -1
  72. package/dist/src/local-first/Protocol.js +118 -38
  73. package/dist/src/local-first/Query.d.ts +8 -15
  74. package/dist/src/local-first/Query.d.ts.map +1 -1
  75. package/dist/src/local-first/Schema.d.ts +335 -21
  76. package/dist/src/local-first/Schema.d.ts.map +1 -1
  77. package/dist/src/local-first/Schema.js +214 -17
  78. package/dist/src/local-first/Shared.d.ts +537 -22
  79. package/dist/src/local-first/Shared.d.ts.map +1 -1
  80. package/dist/src/local-first/Shared.js +1437 -234
  81. package/dist/src/local-first/Storage.d.ts +192 -14
  82. package/dist/src/local-first/Storage.d.ts.map +1 -1
  83. package/dist/src/local-first/Storage.js +81 -20
  84. package/dist/src/local-first/Timestamp.d.ts +392 -41
  85. package/dist/src/local-first/Timestamp.d.ts.map +1 -1
  86. package/dist/src/local-first/Timestamp.js +403 -81
  87. package/dist/src/local-first/index.d.ts +0 -1
  88. package/dist/src/local-first/index.d.ts.map +1 -1
  89. package/dist/src/local-first/index.js +0 -1
  90. package/package.json +1 -1
  91. package/src/Assert.test.ts +2 -5
  92. package/src/Config.test.ts +2 -6
  93. package/src/Config.ts +133 -133
  94. package/src/Console.ts +62 -7
  95. package/src/Crypto.ts +76 -4
  96. package/src/Eq.test.ts +2 -3
  97. package/src/Error.test.ts +76 -3
  98. package/src/Error.ts +71 -0
  99. package/src/Fs.ts +92 -18
  100. package/src/Identicon.ts +2 -2
  101. package/src/LeakDetector.ts +22 -3
  102. package/src/LockManager.ts +8 -0
  103. package/src/Object.test.ts +27 -12
  104. package/src/Object.ts +5 -0
  105. package/src/Platform.ts +50 -8
  106. package/src/Random.ts +25 -2
  107. package/src/Resource.test.ts +837 -0
  108. package/src/Resource.ts +235 -15
  109. package/src/Schedule.test.ts +50 -12
  110. package/src/Schedule.ts +24 -14
  111. package/src/Sqlite.ts +137 -17
  112. package/src/Task.test.ts +189 -8
  113. package/src/Task.ts +56 -17
  114. package/src/Test.ts +9 -0
  115. package/src/Time.ts +106 -9
  116. package/src/Type.test.ts +946 -1028
  117. package/src/Type.ts +4195 -3136
  118. package/src/Types.test.ts +4 -14
  119. package/src/WebSocket.ts +313 -40
  120. package/src/Worker.ts +90 -8
  121. package/src/index.ts +15 -6
  122. package/src/local-first/Db.ts +644 -339
  123. package/src/local-first/Evolu.test.ts +686 -21
  124. package/src/local-first/Evolu.ts +450 -228
  125. package/src/local-first/Owner.ts +13 -30
  126. package/src/local-first/Protocol.test.ts +617 -10
  127. package/src/local-first/Protocol.ts +196 -72
  128. package/src/local-first/Query.ts +8 -15
  129. package/src/local-first/Schema.test.ts +143 -0
  130. package/src/local-first/Schema.ts +363 -24
  131. package/src/local-first/Shared.test.ts +7731 -559
  132. package/src/local-first/Shared.ts +2036 -267
  133. package/src/local-first/Storage.ts +218 -32
  134. package/src/local-first/Timestamp.test.ts +344 -70
  135. package/src/local-first/Timestamp.ts +434 -118
  136. package/src/local-first/index.ts +0 -1
  137. package/dist/src/local-first/Error.d.ts +0 -12
  138. package/dist/src/local-first/Error.d.ts.map +0 -1
  139. package/dist/src/local-first/Error.js +0 -6
  140. package/dist/src/local-first/LocalAuth.d.ts +0 -150
  141. package/dist/src/local-first/LocalAuth.d.ts.map +0 -1
  142. package/dist/src/local-first/LocalAuth.js +0 -179
  143. package/src/local-first/Error.ts +0 -17
  144. package/src/local-first/LocalAuth.ts +0 -457
@@ -8,6 +8,7 @@ import type { ConsoleDep, ConsoleStoreOutputEntryDep } from "./Console.ts";
8
8
  /**
9
9
  * Typed, disposable Worker.
10
10
  *
11
+ * @group Core
11
12
  * @see https://developer.mozilla.org/en-US/docs/Web/API/Worker
12
13
  */
13
14
  export interface Worker<Input, Output = never> extends MessagePort<Input, Output> {
@@ -18,6 +19,7 @@ export interface Worker<Input, Output = never> extends MessagePort<Input, Output
18
19
  * A shared worker is shared across multiple clients (tabs, windows, iframes)
19
20
  * and provides a port for bidirectional communication with each client.
20
21
  *
22
+ * @group Core
21
23
  * @see https://developer.mozilla.org/en-US/docs/Web/API/SharedWorker
22
24
  */
23
25
  export interface SharedWorker<Input, Output = never> extends Disposable {
@@ -33,6 +35,7 @@ export interface SharedWorker<Input, Output = never> extends Disposable {
33
35
  * end periodically sends "alive" messages and stale ports are pruned after a
34
36
  * timeout.
35
37
  *
38
+ * @group Core
36
39
  * @see https://developer.mozilla.org/en-US/docs/Web/API/MessagePort
37
40
  */
38
41
  export interface MessagePort<Input, Output = never> extends Disposable {
@@ -78,6 +81,8 @@ export interface MessagePort<Input, Output = never> extends Disposable {
78
81
  * Intentionally scoped to types Evolu uses. The web platform defines additional
79
82
  * transferable types (`ImageBitmap`, `OffscreenCanvas`, `ReadableStream`, etc.)
80
83
  * that can be added here if needed.
84
+ *
85
+ * @group Core
81
86
  */
82
87
  export type Transferable = NativeMessagePort<any, any> | ArrayBuffer;
83
88
  /**
@@ -86,6 +91,8 @@ export type Transferable = NativeMessagePort<any, any> | ArrayBuffer;
86
91
  * Exists because `postMessage` transfer requires the native object itself, not
87
92
  * a wrapper. Ensures type-safe wiring between {@link MessagePort.native} and
88
93
  * {@link CreateMessagePort} without exposing platform details.
94
+ *
95
+ * @group Core
89
96
  */
90
97
  export type NativeMessagePort<Input = unknown, Output = never> = Brand<"NativeMessagePort"> & {
91
98
  readonly [nativeMessagePortInput]?: Input;
@@ -93,12 +100,25 @@ export type NativeMessagePort<Input = unknown, Output = never> = Brand<"NativeMe
93
100
  };
94
101
  declare const nativeMessagePortInput: unique symbol;
95
102
  declare const nativeMessagePortOutput: unique symbol;
96
- /** Factory function to create a {@link MessagePort} from a native port. */
103
+ /**
104
+ * Factory function to create a {@link MessagePort} from a native port.
105
+ *
106
+ * @group Construction
107
+ */
97
108
  export type CreateMessagePort = <Input, Output = never>(nativePort: NativeMessagePort<Input, Output>) => MessagePort<Input, Output>;
109
+ /**
110
+ * Dependency wrapper for {@link CreateMessagePort}.
111
+ *
112
+ * @group Construction
113
+ */
98
114
  export interface CreateMessagePortDep {
99
115
  readonly createMessagePort: CreateMessagePort;
100
116
  }
101
- /** Common dependencies for worker entry points. */
117
+ /**
118
+ * Common dependencies for worker entry points.
119
+ *
120
+ * @group Core
121
+ */
102
122
  export type WorkerDeps = ConsoleDep & ConsoleStoreOutputEntryDep & CreateMessagePortDep;
103
123
  /**
104
124
  * Typed, disposable MessageChannel.
@@ -194,6 +214,7 @@ export type WorkerDeps = ConsoleDep & ConsoleStoreOutputEntryDep & CreateMessage
194
214
  * ]);
195
215
  * ```
196
216
  *
217
+ * @group Core
197
218
  * @see https://developer.mozilla.org/en-US/docs/Web/API/MessageChannel
198
219
  */
199
220
  export interface MessageChannel<Input, Output = never> extends Disposable {
@@ -202,8 +223,17 @@ export interface MessageChannel<Input, Output = never> extends Disposable {
202
223
  /** The second port of the channel. */
203
224
  readonly port2: MessagePort<Output, Input>;
204
225
  }
205
- /** Factory function to create a {@link MessageChannel}. */
226
+ /**
227
+ * Factory function to create a {@link MessageChannel}.
228
+ *
229
+ * @group Construction
230
+ */
206
231
  export type CreateMessageChannel = <Input, Output = never>() => MessageChannel<Input, Output>;
232
+ /**
233
+ * Dependency wrapper for {@link CreateMessageChannel}.
234
+ *
235
+ * @group Construction
236
+ */
207
237
  export interface CreateMessageChannelDep {
208
238
  readonly createMessageChannel: CreateMessageChannel;
209
239
  }
@@ -213,6 +243,7 @@ export interface CreateMessageChannelDep {
213
243
  * Broadcast channels deliver messages to other channels opened with the same
214
244
  * name. The sending channel does not receive its own messages.
215
245
  *
246
+ * @group Core
216
247
  * @see https://developer.mozilla.org/en-US/docs/Web/API/BroadcastChannel
217
248
  */
218
249
  export interface BroadcastChannel<Input, Output = Input> extends Disposable {
@@ -221,8 +252,17 @@ export interface BroadcastChannel<Input, Output = Input> extends Disposable {
221
252
  /** Handler for incoming broadcast messages. */
222
253
  onMessage: ((message: Output) => void) | null;
223
254
  }
224
- /** Factory function to create a {@link BroadcastChannel}. */
255
+ /**
256
+ * Factory function to create a {@link BroadcastChannel}.
257
+ *
258
+ * @group Construction
259
+ */
225
260
  export type CreateBroadcastChannel = <Input, Output = Input>(name: string) => BroadcastChannel<Input, Output>;
261
+ /**
262
+ * Dependency wrapper for {@link CreateBroadcastChannel}.
263
+ *
264
+ * @group Construction
265
+ */
226
266
  export interface CreateBroadcastChannelDep {
227
267
  readonly createBroadcastChannel: CreateBroadcastChannel;
228
268
  }
@@ -231,6 +271,8 @@ export interface CreateBroadcastChannelDep {
231
271
  *
232
272
  * This is the worker-side counterpart to {@link Worker} — a typed
233
273
  * {@link MessagePort} that wraps `self` inside the worker.
274
+ *
275
+ * @group Core
234
276
  */
235
277
  export interface WorkerSelf<Input, Output = never> extends MessagePort<Output, Input> {
236
278
  }
@@ -239,6 +281,8 @@ export interface WorkerSelf<Input, Output = never> extends MessagePort<Output, I
239
281
  *
240
282
  * This is the worker-side counterpart to {@link SharedWorker}. It wraps `self`
241
283
  * inside the shared worker, providing typed `onConnect` callbacks.
284
+ *
285
+ * @group Core
242
286
  */
243
287
  export interface SharedWorkerSelf<Input, Output = never> extends Disposable {
244
288
  onConnect: ((port: MessagePort<Output, Input>) => void) | null;
@@ -248,6 +292,8 @@ export interface SharedWorkerSelf<Input, Output = never> extends Disposable {
248
292
  *
249
293
  * This is a memory-only fallback for platforms without native worker support.
250
294
  * Message delivery is asynchronous in-process.
295
+ *
296
+ * @group Construction
251
297
  */
252
298
  export declare const createWorker: <Input, Output = never>(initWorker: (self: WorkerSelf<Input, Output>) => void) => Worker<Input, Output>;
253
299
  /**
@@ -258,6 +304,8 @@ export declare const createWorker: <Input, Output = never>(initWorker: (self: Wo
258
304
  * in-process.
259
305
  *
260
306
  * Intended usage is one shared worker instance per process/app runtime.
307
+ *
308
+ * @group Construction
261
309
  */
262
310
  export declare const createSharedWorker: <Input, Output = never>(initWorker: (self: SharedWorkerSelf<Input, Output>) => void) => SharedWorker<Input, Output>;
263
311
  /**
@@ -265,6 +313,8 @@ export declare const createSharedWorker: <Input, Output = never>(initWorker: (se
265
313
  *
266
314
  * This is a memory-only fallback for platforms without native MessageChannel
267
315
  * support. Message delivery is asynchronous in-process.
316
+ *
317
+ * @group Construction
268
318
  */
269
319
  export declare const createMessageChannel: CreateMessageChannel;
270
320
  /**
@@ -272,6 +322,8 @@ export declare const createMessageChannel: CreateMessageChannel;
272
322
  *
273
323
  * This is a memory-only fallback for platforms without native MessagePort
274
324
  * support. Message delivery through returned ports is asynchronous in-process.
325
+ *
326
+ * @group Construction
275
327
  */
276
328
  export declare const createMessagePort: CreateMessagePort;
277
329
  /**
@@ -279,12 +331,16 @@ export declare const createMessagePort: CreateMessagePort;
279
331
  *
280
332
  * This is a memory-only fallback for platforms without native BroadcastChannel
281
333
  * support. Message delivery is asynchronous in-process.
334
+ *
335
+ * @group Construction
282
336
  */
283
337
  export declare const createBroadcastChannel: CreateBroadcastChannel;
284
338
  /**
285
339
  * Test {@link Worker} with access to its paired worker-side `self`.
286
340
  *
287
341
  * Use `self` to simulate messages and behavior from inside the worker.
342
+ *
343
+ * @group Testing
288
344
  */
289
345
  export interface TestWorker<Input, Output = never> extends Worker<Input, Output> {
290
346
  /** Typed `self` counterpart for worker-side testing assertions. */
@@ -295,16 +351,26 @@ export interface TestWorker<Input, Output = never> extends Worker<Input, Output>
295
351
  *
296
352
  * Call `connect()` to simulate a client connection and trigger
297
353
  * `self.onConnect`.
354
+ *
355
+ * @group Testing
298
356
  */
299
357
  export interface TestSharedWorker<Input, Output = never> extends SharedWorker<Input, Output> {
300
358
  readonly self: SharedWorkerSelf<Input, Output>;
301
359
  readonly connect: () => void;
302
360
  }
303
- /** {@link MessageChannel} with disposal tracking for testing. */
361
+ /**
362
+ * {@link MessageChannel} with disposal tracking for testing.
363
+ *
364
+ * @group Testing
365
+ */
304
366
  export interface TestMessageChannel<Input, Output = never> extends MessageChannel<Input, Output> {
305
367
  readonly isDisposed: () => boolean;
306
368
  }
307
- /** {@link BroadcastChannel} with disposal tracking for testing. */
369
+ /**
370
+ * {@link BroadcastChannel} with disposal tracking for testing.
371
+ *
372
+ * @group Testing
373
+ */
308
374
  export interface TestBroadcastChannel<Input, Output = Input> extends BroadcastChannel<Input, Output> {
309
375
  readonly isDisposed: () => boolean;
310
376
  }
@@ -313,6 +379,8 @@ export interface TestBroadcastChannel<Input, Output = Input> extends BroadcastCh
313
379
  *
314
380
  * The returned worker includes its typed {@link TestWorker.self} counterpart, so
315
381
  * tests can exercise dedicated worker communication without a real thread.
382
+ *
383
+ * @group Testing
316
384
  */
317
385
  export declare const testCreateWorker: <Input, Output = never>() => TestWorker<Input, Output>;
318
386
  /**
@@ -320,6 +388,8 @@ export declare const testCreateWorker: <Input, Output = never>() => TestWorker<I
320
388
  *
321
389
  * The returned worker includes `self` and `connect` so tests can exercise the
322
390
  * full worker ↔ client pipeline without a real worker thread.
391
+ *
392
+ * @group Testing
323
393
  */
324
394
  export declare const testCreateSharedWorker: <Input, Output = never>() => TestSharedWorker<Input, Output>;
325
395
  /**
@@ -330,11 +400,21 @@ export declare const testCreateSharedWorker: <Input, Output = never>() => TestSh
330
400
  *
331
401
  * Both ports are registered in the native port registry so
332
402
  * {@link testCreateMessagePort} can look them up by their native token.
403
+ *
404
+ * @group Testing
333
405
  */
334
406
  export declare const testCreateMessageChannel: <Input, Output = never>() => TestMessageChannel<Input, Output>;
335
- /** Creates an in-memory {@link CreateMessagePort} for testing. */
407
+ /**
408
+ * Creates an in-memory {@link CreateMessagePort} for testing.
409
+ *
410
+ * @group Testing
411
+ */
336
412
  export declare const testCreateMessagePort: CreateMessagePort;
337
- /** Creates an in-memory {@link BroadcastChannel} for testing. */
413
+ /**
414
+ * Creates an in-memory {@link BroadcastChannel} for testing.
415
+ *
416
+ * @group Testing
417
+ */
338
418
  export declare const testCreateBroadcastChannel: <Input, Output = Input>(name: string) => TestBroadcastChannel<Input, Output>;
339
419
  /**
340
420
  * Waits until scheduled in-memory worker message delivery becomes idle.
@@ -342,6 +422,8 @@ export declare const testCreateBroadcastChannel: <Input, Output = Input>(name: s
342
422
  * This observes actual transport tasks instead of waiting for an arbitrary
343
423
  * duration. It also waits through message handlers that schedule more worker
344
424
  * tasks before the current microtask checkpoint completes.
425
+ *
426
+ * @group Testing
345
427
  */
346
428
  export declare const testWaitForWorkerMessage: () => Promise<void>;
347
429
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"Worker.d.ts","sourceRoot":"","sources":["../../src/Worker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Worker.d.ts","sourceRoot":"","sources":["../../src/Worker.ts"],"names":[],"mappings":"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"}
@@ -62,6 +62,8 @@ import { disposable } from "./Function.js";
62
62
  *
63
63
  * This is a memory-only fallback for platforms without native worker support.
64
64
  * Message delivery is asynchronous in-process.
65
+ *
66
+ * @group Construction
65
67
  */
66
68
  export const createWorker = (initWorker) => {
67
69
  const { worker, self } = createMemoryWorkerPair();
@@ -76,6 +78,8 @@ export const createWorker = (initWorker) => {
76
78
  * in-process.
77
79
  *
78
80
  * Intended usage is one shared worker instance per process/app runtime.
81
+ *
82
+ * @group Construction
79
83
  */
80
84
  export const createSharedWorker = (initWorker) => {
81
85
  const { worker, self, connect } = createMemorySharedWorkerPair();
@@ -88,6 +92,8 @@ export const createSharedWorker = (initWorker) => {
88
92
  *
89
93
  * This is a memory-only fallback for platforms without native MessageChannel
90
94
  * support. Message delivery is asynchronous in-process.
95
+ *
96
+ * @group Construction
91
97
  */
92
98
  export const createMessageChannel = () => {
93
99
  const env_1 = { stack: [], error: void 0, hasError: false };
@@ -145,6 +151,8 @@ export const createMessageChannel = () => {
145
151
  *
146
152
  * This is a memory-only fallback for platforms without native MessagePort
147
153
  * support. Message delivery through returned ports is asynchronous in-process.
154
+ *
155
+ * @group Construction
148
156
  */
149
157
  export const createMessagePort = (nativePort) => {
150
158
  const registration = nativePortRegistry.get(nativePort);
@@ -156,6 +164,8 @@ export const createMessagePort = (nativePort) => {
156
164
  *
157
165
  * This is a memory-only fallback for platforms without native BroadcastChannel
158
166
  * support. Message delivery is asynchronous in-process.
167
+ *
168
+ * @group Construction
159
169
  */
160
170
  export const createBroadcastChannel = (name) => {
161
171
  const env_2 = { stack: [], error: void 0, hasError: false };
@@ -217,6 +227,8 @@ const broadcastChannelDispatchesByName = new Map();
217
227
  *
218
228
  * The returned worker includes its typed {@link TestWorker.self} counterpart, so
219
229
  * tests can exercise dedicated worker communication without a real thread.
230
+ *
231
+ * @group Testing
220
232
  */
221
233
  export const testCreateWorker = () => {
222
234
  let self;
@@ -230,6 +242,8 @@ export const testCreateWorker = () => {
230
242
  *
231
243
  * The returned worker includes `self` and `connect` so tests can exercise the
232
244
  * full worker ↔ client pipeline without a real worker thread.
245
+ *
246
+ * @group Testing
233
247
  */
234
248
  export const testCreateSharedWorker = () => {
235
249
  const { worker, self, connect } = createMemorySharedWorkerPair();
@@ -246,6 +260,8 @@ export const testCreateSharedWorker = () => {
246
260
  *
247
261
  * Both ports are registered in the native port registry so
248
262
  * {@link testCreateMessagePort} can look them up by their native token.
263
+ *
264
+ * @group Testing
249
265
  */
250
266
  export const testCreateMessageChannel = () => {
251
267
  const env_3 = { stack: [], error: void 0, hasError: false };
@@ -268,9 +284,17 @@ export const testCreateMessageChannel = () => {
268
284
  __disposeResources(env_3);
269
285
  }
270
286
  };
271
- /** Creates an in-memory {@link CreateMessagePort} for testing. */
287
+ /**
288
+ * Creates an in-memory {@link CreateMessagePort} for testing.
289
+ *
290
+ * @group Testing
291
+ */
272
292
  export const testCreateMessagePort = (nativePort) => createMessagePort(nativePort);
273
- /** Creates an in-memory {@link BroadcastChannel} for testing. */
293
+ /**
294
+ * Creates an in-memory {@link BroadcastChannel} for testing.
295
+ *
296
+ * @group Testing
297
+ */
274
298
  export const testCreateBroadcastChannel = (name) => {
275
299
  const env_4 = { stack: [], error: void 0, hasError: false };
276
300
  try {
@@ -303,6 +327,8 @@ export const testCreateBroadcastChannel = (name) => {
303
327
  * This observes actual transport tasks instead of waiting for an arbitrary
304
328
  * duration. It also waits through message handlers that schedule more worker
305
329
  * tasks before the current microtask checkpoint completes.
330
+ *
331
+ * @group Testing
306
332
  */
307
333
  export const testWaitForWorkerMessage = () => new Promise((resolve) => {
308
334
  workerTaskIdleWaiters.add(resolve);
@@ -48,16 +48,15 @@ export * from "./Type.ts";
48
48
  export * from "./Types.ts";
49
49
  export * from "./WebSocket.ts";
50
50
  export * from "./Worker.ts";
51
- export type { EvoluError } from "./local-first/Error.ts";
52
- export { AppName, createEvolu } from "./local-first/Evolu.ts";
53
- export type { AppNameError, Evolu, EvoluConfig, EvoluDeps, UnuseOwner, } from "./local-first/Evolu.ts";
54
- export * from "./local-first/LocalAuth.ts";
51
+ export type { UnsupportedDbVersionError } from "./local-first/Db.ts";
52
+ export { AppName, createEvolu, testAppName } from "./local-first/Evolu.ts";
53
+ export type { AppNameError, Evolu, EvoluConfig, EvoluDeps, EvoluError, UnuseOwner, } from "./local-first/Evolu.ts";
55
54
  export * from "./local-first/Owner.ts";
56
55
  export type { SyncOwner } from "./local-first/Owner.ts";
57
56
  export { evoluJsonArrayFrom, evoluJsonBuildObject, evoluJsonObjectFrom, getJsonObjectArgs, kyselySql, type InferRow, type KyselyNotNull, type Query, type QueryRows, type Row, } from "./local-first/Query.ts";
58
- export { createQueryBuilder } from "./local-first/Schema.ts";
59
- export type { AnyStandardSchemaV1, EvoluSchema, InsertValues, Mutation, MutationKind, MutationOptions, MutationValues, NullableColumnsToOptional, OptionalColumnKeys, RequiredColumnKeys, TableSchema, UpdateValues, UpsertValues, } from "./local-first/Schema.ts";
57
+ export { createQueryBuilder, QuarantineOrigin, QuarantineReason, testEvoluSchema, testLocalOnlyEvoluSchema, TestProjectId, testProjectId, TestTodoId, testTodoId, } from "./local-first/Schema.ts";
58
+ export type { AnyStandardSchemaV1, EvoluSchema, InsertValues, Mutation, MutationKind, MutationOptions, MutationValues, NullableColumnsToOptional, OptionalColumnKeys, RequiredColumnKeys, TableSchema, TestEvoluSchema, UpdateValues, UpsertValues, } from "./local-first/Schema.ts";
60
59
  export type { SyncState, } from "./local-first/Shared.ts";
61
60
  export { Timestamp, timestampBytesToTimestamp, timestampToTimestampBytes, } from "./local-first/Timestamp.ts";
62
- export type { TimestampBytes, TimestampCounterOverflowError, TimestampDriftError, TimestampError, TimestampTimeOutOfRangeError, } from "./local-first/Timestamp.ts";
61
+ export type { TimestampBytes, TimestampDriftError, TimestampError, } from "./local-first/Timestamp.ts";
63
62
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAG5B,YAAY,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC9D,YAAY,EACV,YAAY,EACZ,KAAK,EACL,WAAW,EACX,SAAS,EACT,UAAU,GACX,MAAM,wBAAwB,CAAC;AAChC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,YAAY,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,EACjB,SAAS,EACT,KAAK,QAAQ,EACb,KAAK,aAAa,EAClB,KAAK,KAAK,EACV,KAAK,SAAS,EACd,KAAK,GAAG,GACT,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,YAAY,EACV,mBAAmB,EACnB,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,YAAY,EACZ,eAAe,EACf,cAAc,EACd,yBAAyB,EACzB,kBAAkB,EAClB,kBAAkB,EAClB,WAAW,EACX,YAAY,EACZ,YAAY,GACb,MAAM,yBAAyB,CAAC;AACjC,YAAY,EAIV,SAAS,GACV,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,SAAS,EACT,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,4BAA4B,CAAC;AACpC,YAAY,EACV,cAAc,EACd,6BAA6B,EAC7B,mBAAmB,EACnB,cAAc,EACd,4BAA4B,GAC7B,MAAM,4BAA4B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAG5B,YAAY,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC3E,YAAY,EACV,YAAY,EACZ,KAAK,EACL,WAAW,EACX,SAAS,EACT,UAAU,EACV,UAAU,GACX,MAAM,wBAAwB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,YAAY,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,EACjB,SAAS,EACT,KAAK,QAAQ,EACb,KAAK,aAAa,EAClB,KAAK,KAAK,EACV,KAAK,SAAS,EACd,KAAK,GAAG,GACT,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,wBAAwB,EACxB,aAAa,EACb,aAAa,EACb,UAAU,EACV,UAAU,GACX,MAAM,yBAAyB,CAAC;AACjC,YAAY,EACV,mBAAmB,EACnB,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,YAAY,EACZ,eAAe,EACf,cAAc,EACd,yBAAyB,EACzB,kBAAkB,EAClB,kBAAkB,EAClB,WAAW,EACX,eAAe,EACf,YAAY,EACZ,YAAY,GACb,MAAM,yBAAyB,CAAC;AACjC,YAAY,EAIV,SAAS,GACV,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,SAAS,EACT,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,4BAA4B,CAAC;AACpC,YAAY,EACV,cAAc,EACd,mBAAmB,EACnB,cAAc,GACf,MAAM,4BAA4B,CAAC"}
package/dist/src/index.js CHANGED
@@ -47,9 +47,8 @@ export * from "./Type.js";
47
47
  export * from "./Types.js";
48
48
  export * from "./WebSocket.js";
49
49
  export * from "./Worker.js";
50
- export { AppName, createEvolu } from "./local-first/Evolu.js";
51
- export * from "./local-first/LocalAuth.js";
50
+ export { AppName, createEvolu, testAppName } from "./local-first/Evolu.js";
52
51
  export * from "./local-first/Owner.js";
53
52
  export { evoluJsonArrayFrom, evoluJsonBuildObject, evoluJsonObjectFrom, getJsonObjectArgs, kyselySql, } from "./local-first/Query.js";
54
- export { createQueryBuilder } from "./local-first/Schema.js";
53
+ export { createQueryBuilder, QuarantineOrigin, QuarantineReason, testEvoluSchema, testLocalOnlyEvoluSchema, TestProjectId, testProjectId, TestTodoId, testTodoId, } from "./local-first/Schema.js";
55
54
  export { Timestamp, timestampBytesToTimestamp, timestampToTimestampBytes, } from "./local-first/Timestamp.js";
@@ -1,6 +1,39 @@
1
1
  /**
2
2
  * Platform-agnostic Evolu DbWorker.
3
3
  *
4
+ * ### Database version
5
+ *
6
+ * Every database records `dbVersion` in `evolu_version`. The version describes
7
+ * Evolu's internal persisted format: the layout of its system tables and the
8
+ * meaning of the data stored in them. It is independent of the application
9
+ * schema, which evolves append-only through {@link ensureSqliteSchema}, and of
10
+ * the network protocol version, which is checked per message. Many Evolu
11
+ * releases can share one database version.
12
+ *
13
+ * Bump `dbVersion` for any change that older code would misread, not only for
14
+ * changed SQL. A new quarantine reason, for example, changes what startup may
15
+ * replay even when its columns are additive. Each bump ships with a migration
16
+ * from the previous version; fresh databases are created at the latest layout
17
+ * directly.
18
+ *
19
+ * Startup holds the database leader lock, then checks the stored version record
20
+ * before it reads the clock, ensures the application schema, or replays
21
+ * quarantine. Databases written before the version record existed hold one
22
+ * `protocolVersion` row instead; that known legacy layout is converted to
23
+ * version 1. A newer stored version refuses startup with
24
+ * {@link UnsupportedDbVersionError}. The refusal returns from the startup
25
+ * transaction before anything is written and is posted to the SharedWorker; the
26
+ * worker then exits and releases its resources. The single version row is
27
+ * created in the same transaction as the other system tables.
28
+ *
29
+ * Code released before the version record existed never reads it. It recognizes
30
+ * an initialized database by the `evolu_version` table alone, so it opens a
31
+ * newer database and replays all quarantine regardless of reason, applying
32
+ * drift quarantine at once without advancing the clock. Renaming the table
33
+ * would make such code fail at startup instead. That was declined: the replay
34
+ * needs drift quarantine and an earlier release on the same device at once, and
35
+ * failing would break a rollback to an earlier release outright.
36
+ *
4
37
  * @module
5
38
  */
6
39
  import type { ConsoleLevel } from "../Console.ts";
@@ -8,7 +41,7 @@ import { EncryptionKey } from "../Crypto.ts";
8
41
  import type { LockManagerDep } from "../LockManager.ts";
9
42
  import type { CreateSqliteDriverDep, SqliteSchema } from "../Sqlite.ts";
10
43
  import { type Task } from "../Task.ts";
11
- import { type Name } from "../Type.ts";
44
+ import { PositiveInt, type Name, type Typed } from "../Type.ts";
12
45
  import type { CreateBroadcastChannelDep, NativeMessagePort, Worker, WorkerDeps, WorkerSelf } from "../Worker.ts";
13
46
  import type { DbWorkerInput, DbWorkerOutput } from "./Shared.ts";
14
47
  export type DbWorker = Worker<DbWorkerInit>;
@@ -27,8 +60,24 @@ export interface CreateDbWorkerDep {
27
60
  }
28
61
  export type DbWorkerDeps = WorkerDeps & CreateBroadcastChannelDep & LockManagerDep & CreateSqliteDriverDep;
29
62
  /**
30
- * Starts the platform-agnostic Evolu DbWorker and owns its resources until the
31
- * worker receives a dispose message or its {@link Run} is aborted.
63
+ * The stored database version is newer than this code supports. Newer code
64
+ * created or migrated the database, which is left unchanged. This happens when
65
+ * older code opens a database a newer build migrated, for example an older
66
+ * build loaded from a cache, or when the app was downgraded after a newer
67
+ * version migrated the local data. On the web, a refused tab reloads once for
68
+ * each stored version, so it loads the build the server now serves, and the
69
+ * error is reported when that build refuses too. Then close all tabs of the
70
+ * app, which lets a service worker replace a cached older build, or update the
71
+ * app to a version that supports `storedVersion`.
72
+ */
73
+ export interface UnsupportedDbVersionError extends Typed<"UnsupportedDbVersionError"> {
74
+ readonly storedVersion: PositiveInt;
75
+ readonly supportedVersion: PositiveInt;
76
+ }
77
+ /**
78
+ * Starts the platform-agnostic Evolu DbWorker and owns its resources until
79
+ * startup is refused, the worker receives a dispose message, or its {@link Run}
80
+ * is aborted.
32
81
  */
33
82
  export declare const startDbWorker: (self: WorkerSelf<DbWorkerInit>) => Task<void, never, DbWorkerDeps>;
34
83
  //# sourceMappingURL=Db.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Db.d.ts","sourceRoot":"","sources":["../../../src/local-first/Db.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAaH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EACL,aAAa,EAGd,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAIxD,OAAO,KAAK,EACV,qBAAqB,EAGrB,YAAY,EACb,MAAM,cAAc,CAAC;AAUtB,OAAO,EAAsB,KAAK,IAAI,EAAE,MAAM,YAAY,CAAC;AAE3D,OAAO,EASL,KAAK,IAAI,EACV,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EACV,yBAAyB,EACzB,iBAAiB,EACjB,MAAM,EACN,UAAU,EACV,UAAU,EACX,MAAM,cAAc,CAAC;AAqBtB,OAAO,KAAK,EAEV,aAAa,EACb,cAAc,EAGf,MAAM,aAAa,CAAC;AA+BrB,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;AAE5C,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IACtC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;CACjE;AAED,MAAM,MAAM,cAAc,GAAG,MAAM,QAAQ,CAAC;AAE5C,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;CACzC;AAED,MAAM,MAAM,YAAY,GAAG,UAAU,GACnC,yBAAyB,GACzB,cAAc,GACd,qBAAqB,CAAC;AAExB;;;GAGG;AACH,eAAO,MAAM,aAAa,SACjB,UAAU,CAAC,YAAY,CAAC,KAAG,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,YAAY,CAwM/D,CAAC"}
1
+ {"version":3,"file":"Db.d.ts","sourceRoot":"","sources":["../../../src/local-first/Db.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAcH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,aAAa,EAAuB,MAAM,cAAc,CAAC;AAElE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAIxD,OAAO,KAAK,EACV,qBAAqB,EAGrB,YAAY,EACb,MAAM,cAAc,CAAC;AAUtB,OAAO,EAAsB,KAAK,IAAI,EAAE,MAAM,YAAY,CAAC;AAO3D,OAAO,EASL,WAAW,EAEX,KAAK,IAAI,EACT,KAAK,KAAK,EACX,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EACV,yBAAyB,EACzB,iBAAiB,EACjB,MAAM,EACN,UAAU,EACV,UAAU,EACX,MAAM,cAAc,CAAC;AAoBtB,OAAO,KAAK,EAEV,aAAa,EACb,cAAc,EAGf,MAAM,aAAa,CAAC;AA6BrB,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;AAE5C,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IACtC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;CACjE;AAED,MAAM,MAAM,cAAc,GAAG,MAAM,QAAQ,CAAC;AAE5C,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;CACzC;AAED,MAAM,MAAM,YAAY,GAAG,UAAU,GACnC,yBAAyB,GACzB,cAAc,GACd,qBAAqB,CAAC;AAKxB;;;;;;;;;;GAUG;AACH,MAAM,WAAW,yBAA0B,SAAQ,KAAK,CAAC,2BAA2B,CAAC;IACnF,QAAQ,CAAC,aAAa,EAAE,WAAW,CAAC;IACpC,QAAQ,CAAC,gBAAgB,EAAE,WAAW,CAAC;CACxC;AAED;;;;GAIG;AACH,eAAO,MAAM,aAAa,SACjB,UAAU,CAAC,YAAY,CAAC,KAAG,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,YAAY,CAuP/D,CAAC"}