@evolu/common 8.0.0-next.3 → 8.0.0-next.4

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 (73) hide show
  1. package/dist/src/Assert.d.ts +5 -5
  2. package/dist/src/Assert.d.ts.map +1 -1
  3. package/dist/src/Assert.js +4 -4
  4. package/dist/src/Identicon.js +4 -4
  5. package/dist/src/LockManager.d.ts +74 -0
  6. package/dist/src/LockManager.d.ts.map +1 -0
  7. package/dist/src/LockManager.js +103 -0
  8. package/dist/src/Microtask.d.ts.map +1 -1
  9. package/dist/src/Microtask.js +90 -26
  10. package/dist/src/Object.d.ts.map +1 -1
  11. package/dist/src/RefCount.d.ts.map +1 -1
  12. package/dist/src/RefCount.js +153 -68
  13. package/dist/src/Resource.d.ts +6 -6
  14. package/dist/src/Resource.d.ts.map +1 -1
  15. package/dist/src/Resource.js +211 -162
  16. package/dist/src/Schedule.d.ts +5 -5
  17. package/dist/src/Schedule.d.ts.map +1 -1
  18. package/dist/src/Schedule.js +53 -44
  19. package/dist/src/Sqlite.d.ts +2 -0
  20. package/dist/src/Sqlite.d.ts.map +1 -1
  21. package/dist/src/Sqlite.js +64 -40
  22. package/dist/src/Task.d.ts +6 -33
  23. package/dist/src/Task.d.ts.map +1 -1
  24. package/dist/src/Task.js +213 -204
  25. package/dist/src/Test.d.ts +4 -4
  26. package/dist/src/Time.d.ts +5 -0
  27. package/dist/src/Time.d.ts.map +1 -1
  28. package/dist/src/Time.js +5 -0
  29. package/dist/src/Type.d.ts +7 -0
  30. package/dist/src/Type.d.ts.map +1 -1
  31. package/dist/src/Type.js +7 -0
  32. package/dist/src/WebSocket.d.ts.map +1 -1
  33. package/dist/src/WebSocket.js +7 -6
  34. package/dist/src/Worker.d.ts +42 -8
  35. package/dist/src/Worker.d.ts.map +1 -1
  36. package/dist/src/Worker.js +292 -112
  37. package/dist/src/index.d.ts +1 -0
  38. package/dist/src/index.d.ts.map +1 -1
  39. package/dist/src/index.js +1 -0
  40. package/dist/src/local-first/Db.d.ts +5 -4
  41. package/dist/src/local-first/Db.d.ts.map +1 -1
  42. package/dist/src/local-first/Db.js +44 -38
  43. package/dist/src/local-first/Evolu.d.ts +3 -2
  44. package/dist/src/local-first/Evolu.d.ts.map +1 -1
  45. package/dist/src/local-first/Evolu.js +90 -80
  46. package/dist/src/local-first/Owner.d.ts.map +1 -1
  47. package/dist/src/local-first/Shared.d.ts +65 -54
  48. package/dist/src/local-first/Shared.d.ts.map +1 -1
  49. package/dist/src/local-first/Shared.js +387 -373
  50. package/package.json +1 -1
  51. package/src/Array.ts +8 -8
  52. package/src/Assert.ts +5 -5
  53. package/src/Identicon.ts +4 -4
  54. package/src/LockManager.ts +181 -0
  55. package/src/Microtask.ts +17 -11
  56. package/src/Object.ts +3 -3
  57. package/src/RefCount.ts +25 -21
  58. package/src/Resource.ts +63 -56
  59. package/src/Schedule.ts +70 -48
  60. package/src/Set.ts +4 -4
  61. package/src/Sqlite.ts +41 -30
  62. package/src/Task.ts +77 -120
  63. package/src/Test.ts +4 -4
  64. package/src/Time.ts +7 -0
  65. package/src/Type.ts +9 -0
  66. package/src/WebSocket.ts +7 -6
  67. package/src/Worker.ts +195 -53
  68. package/src/index.ts +1 -0
  69. package/src/local-first/Db.ts +69 -46
  70. package/src/local-first/Evolu.ts +74 -68
  71. package/src/local-first/Owner.ts +1 -1
  72. package/src/local-first/Query.ts +1 -1
  73. package/src/local-first/Shared.ts +472 -464
@@ -4,42 +4,51 @@
4
4
  * @module
5
5
  */
6
6
  import { type NonEmptyReadonlyArray } from "../Array.js";
7
+ import type { Brand } from "../Brand.js";
7
8
  import type { ConsoleEntry, ConsoleLevel } from "../Console.js";
9
+ import type { EncryptionKey } from "../Crypto.js";
10
+ import { type LockManagerDep } from "../LockManager.js";
8
11
  import { type Result } from "../Result.js";
9
12
  import type { NonEmptyReadonlySet } from "../Set.js";
10
- import { type AbortError, type Task } from "../Task.js";
11
- import { type Id, type Name } from "../Type.js";
13
+ import type { SqliteSchema } from "../Sqlite.js";
14
+ import { AbortError, type Task } from "../Task.js";
15
+ import { type Id, type Name, type Typed } from "../Type.js";
12
16
  import type { ExtractType } from "../Types.js";
13
17
  import type { CreateWebSocketDep } from "../WebSocket.js";
14
- import type { SharedWorker as CommonSharedWorker, NativeMessagePort, SharedWorkerSelf, WorkerDeps } from "../Worker.js";
18
+ import type { SharedWorker as CommonSharedWorker, CreateBroadcastChannelDep, CreateMessageChannelDep, NativeMessagePort, SharedWorkerSelf, WorkerDeps } from "../Worker.js";
19
+ import type { DbWorkerInit } from "./Db.js";
15
20
  import type { EvoluError } from "./Error.js";
16
21
  import type { Owner, OwnerId, SyncOwner } from "./Owner.js";
17
22
  import { type ApplyProtocolMessageAsClientResult, type ProtocolError, type ProtocolMessage } from "./Protocol.js";
18
23
  import { type Patch, type Query, type RowsByQueryMap } from "./Query.js";
19
24
  import type { MutationChange } from "./Schema.js";
20
25
  import type { CrdtMessage } from "./Storage.js";
21
- export type SharedWorker = CommonSharedWorker<SharedWorkerInput>;
26
+ export type SharedWorker = CommonSharedWorker<SharedWorkerInput, SharedWorkerOutput>;
22
27
  export interface SharedWorkerDep {
23
28
  readonly sharedWorker: SharedWorker;
24
29
  }
25
- export type SharedWorkerDeps = WorkerDeps & CreateWebSocketDep;
26
30
  export type SharedWorkerInput = {
27
- readonly type: "InitTab";
31
+ readonly type: "AnnounceTabLeader";
28
32
  readonly consoleLevel: ConsoleLevel;
29
- readonly port: NativeMessagePort<EvoluTabOutput>;
30
33
  } | {
31
34
  readonly type: "CreateEvolu";
32
35
  readonly name: Name;
36
+ readonly id: EvoluInstanceId;
37
+ readonly consoleLevel: ConsoleLevel;
38
+ readonly sqliteSchema: SqliteSchema;
39
+ readonly encryptionKey: EncryptionKey;
40
+ readonly memoryOnly: boolean;
33
41
  readonly evoluPort: NativeMessagePort<EvoluOutput, EvoluInput>;
34
- readonly dbWorkerPort: NativeMessagePort<DbWorkerInput, DbWorkerOutput>;
35
42
  };
36
- export type EvoluTabOutput = {
37
- readonly type: "OnConsoleEntry";
43
+ export type SharedWorkerOutput = DbWorkerInit;
44
+ export type ConsoleEntryOrError = {
45
+ readonly type: "ConsoleEntry";
38
46
  readonly entry: ConsoleEntry;
39
47
  } | {
40
- readonly type: "OnError";
48
+ readonly type: "Error";
41
49
  readonly error: EvoluError;
42
50
  };
51
+ export declare const consoleEntryOrErrorBroadcastChannelName = "evolu:console-entry-or-error";
43
52
  export type EvoluInput = {
44
53
  readonly type: "Mutate";
45
54
  readonly changes: NonEmptyReadonlyArray<MutationChange>;
@@ -56,8 +65,6 @@ export type EvoluInput = {
56
65
  readonly queries: NonEmptyReadonlySet<Query>;
57
66
  } | {
58
67
  readonly type: "Export";
59
- } | {
60
- readonly type: "Dispose";
61
68
  };
62
69
  export type EvoluOutput = {
63
70
  readonly type: "OnPatchesByQuery";
@@ -69,57 +76,61 @@ export type EvoluOutput = {
69
76
  readonly type: "OnExport";
70
77
  readonly file: Uint8Array<ArrayBuffer>;
71
78
  };
72
- export declare const initSharedWorker: (self: SharedWorkerSelf<SharedWorkerInput>) => Task<AsyncDisposableStack, never, SharedWorkerDeps>;
73
- export interface DbWorkerInput {
79
+ export type DbWorkerInput = (Typed<"Request"> & {
74
80
  readonly callbackId: Id;
75
- readonly request: {
76
- readonly type: "ForEvolu";
77
- readonly evoluPortId: Id;
78
- readonly message: ExtractType<EvoluInput, "Mutate" | "Query" | "Export">;
81
+ readonly request: DbWorkerRequest;
82
+ }) | Typed<"Dispose">;
83
+ export type DbWorkerRequest = {
84
+ readonly type: "ForEvolu";
85
+ readonly id: EvoluInstanceId;
86
+ readonly message: ExtractType<EvoluInput, "Mutate" | "Query" | "Export">;
87
+ } | {
88
+ readonly type: "ForSharedWorker";
89
+ readonly message: {
90
+ readonly type: "CreateSyncMessages";
91
+ readonly owners: NonEmptyReadonlyArray<Owner>;
79
92
  } | {
80
- readonly type: "ForSharedWorker";
81
- readonly message: {
82
- readonly type: "CreateSyncMessages";
83
- readonly owners: NonEmptyReadonlyArray<Owner>;
84
- } | {
85
- readonly type: "ApplySyncMessage";
86
- readonly owner: Owner;
87
- readonly inputMessage: Uint8Array;
88
- };
93
+ readonly type: "ApplySyncMessage";
94
+ readonly owner: Owner;
95
+ readonly inputMessage: Uint8Array;
89
96
  };
90
- }
91
- export type DbWorkerOutput = EvoluTabOutput | {
97
+ };
98
+ export type DbWorkerOutput = {
92
99
  readonly type: "LeaderAcquired";
93
100
  readonly name: Name;
94
101
  } | {
95
102
  readonly type: "OnQueuedResponse";
96
103
  readonly callbackId: Id;
97
- readonly response: {
98
- readonly type: "ForEvolu";
99
- readonly evoluPortId: Id;
100
- readonly message: {
101
- readonly type: "Mutate";
102
- readonly messagesByOwnerId: ReadonlyMap<OwnerId, NonEmptyReadonlyArray<CrdtMessage>>;
103
- readonly rowsByQuery: RowsByQueryMap;
104
- } | {
105
- readonly type: "Query";
106
- readonly rowsByQuery: RowsByQueryMap;
107
- } | {
108
- readonly type: "Export";
109
- readonly file: Uint8Array<ArrayBuffer>;
110
- };
104
+ readonly response: DbWorkerQueuedResponse;
105
+ };
106
+ export type DbWorkerQueuedResponse = {
107
+ readonly type: "ForEvolu";
108
+ readonly id: EvoluInstanceId;
109
+ readonly message: {
110
+ readonly type: "Mutate";
111
+ readonly messagesByOwnerId: ReadonlyMap<OwnerId, NonEmptyReadonlyArray<CrdtMessage>>;
112
+ readonly rowsByQuery: RowsByQueryMap;
113
+ } | {
114
+ readonly type: "Query";
115
+ readonly rowsByQuery: RowsByQueryMap;
116
+ } | {
117
+ readonly type: "Export";
118
+ readonly file: Uint8Array<ArrayBuffer>;
119
+ };
120
+ } | {
121
+ readonly type: "ForSharedWorker";
122
+ readonly message: {
123
+ readonly type: "CreateSyncMessages";
124
+ readonly protocolMessagesByOwnerId: ReadonlyMap<OwnerId, ProtocolMessage>;
111
125
  } | {
112
- readonly type: "ForSharedWorker";
113
- readonly message: {
114
- readonly type: "CreateSyncMessages";
115
- readonly protocolMessagesByOwnerId: ReadonlyMap<OwnerId, ProtocolMessage>;
116
- } | {
117
- readonly type: "ApplySyncMessage";
118
- readonly ownerId: OwnerId;
119
- readonly didWriteMessages: boolean;
120
- readonly result: Result<ApplyProtocolMessageAsClientResult, ProtocolError | AbortError>;
121
- };
126
+ readonly type: "ApplySyncMessage";
127
+ readonly ownerId: OwnerId;
128
+ readonly didWriteMessages: boolean;
129
+ readonly result: Result<ApplyProtocolMessageAsClientResult, ProtocolError | AbortError>;
122
130
  };
123
131
  };
132
+ export type SharedWorkerDeps = WorkerDeps & CreateBroadcastChannelDep & CreateMessageChannelDep & CreateWebSocketDep & LockManagerDep;
133
+ export type EvoluInstanceId = Id & Brand<"EvoluInstance">;
124
134
  export type SyncState = 123;
135
+ export declare const initSharedWorker: (self: SharedWorkerSelf<SharedWorkerInput, SharedWorkerOutput>) => Task<AsyncDisposableStack, never, SharedWorkerDeps>;
125
136
  //# sourceMappingURL=Shared.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Shared.d.ts","sourceRoot":"","sources":["../../../src/local-first/Shared.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Shared.d.ts","sourceRoot":"","sources":["../../../src/local-first/Shared.ts"],"names":[],"mappings":"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"}