effect 4.0.0-beta.44 → 4.0.0-beta.46

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 (151) hide show
  1. package/dist/Equal.d.ts.map +1 -1
  2. package/dist/Equal.js +16 -0
  3. package/dist/Equal.js.map +1 -1
  4. package/dist/Hash.js +1 -1
  5. package/dist/Hash.js.map +1 -1
  6. package/dist/Semaphore.d.ts +1 -1
  7. package/dist/Semaphore.d.ts.map +1 -1
  8. package/dist/Semaphore.js +1 -3
  9. package/dist/Semaphore.js.map +1 -1
  10. package/dist/unstable/ai/McpServer.d.ts.map +1 -1
  11. package/dist/unstable/ai/McpServer.js +24 -21
  12. package/dist/unstable/ai/McpServer.js.map +1 -1
  13. package/dist/unstable/eventlog/Event.d.ts +0 -6
  14. package/dist/unstable/eventlog/Event.d.ts.map +1 -1
  15. package/dist/unstable/eventlog/Event.js +0 -5
  16. package/dist/unstable/eventlog/Event.js.map +1 -1
  17. package/dist/unstable/eventlog/EventGroup.d.ts +0 -2
  18. package/dist/unstable/eventlog/EventGroup.d.ts.map +1 -1
  19. package/dist/unstable/eventlog/EventGroup.js +0 -2
  20. package/dist/unstable/eventlog/EventGroup.js.map +1 -1
  21. package/dist/unstable/eventlog/EventJournal.d.ts +22 -5
  22. package/dist/unstable/eventlog/EventJournal.d.ts.map +1 -1
  23. package/dist/unstable/eventlog/EventJournal.js +126 -67
  24. package/dist/unstable/eventlog/EventJournal.js.map +1 -1
  25. package/dist/unstable/eventlog/EventLog.d.ts +88 -34
  26. package/dist/unstable/eventlog/EventLog.d.ts.map +1 -1
  27. package/dist/unstable/eventlog/EventLog.js +215 -141
  28. package/dist/unstable/eventlog/EventLog.js.map +1 -1
  29. package/dist/unstable/eventlog/EventLogEncryption.d.ts +9 -7
  30. package/dist/unstable/eventlog/EventLogEncryption.d.ts.map +1 -1
  31. package/dist/unstable/eventlog/EventLogEncryption.js +13 -15
  32. package/dist/unstable/eventlog/EventLogEncryption.js.map +1 -1
  33. package/dist/unstable/eventlog/EventLogMessage.d.ts +228 -0
  34. package/dist/unstable/eventlog/EventLogMessage.d.ts.map +1 -0
  35. package/dist/unstable/eventlog/EventLogMessage.js +214 -0
  36. package/dist/unstable/eventlog/EventLogMessage.js.map +1 -0
  37. package/dist/unstable/eventlog/EventLogRemote.d.ts +109 -194
  38. package/dist/unstable/eventlog/EventLogRemote.d.ts.map +1 -1
  39. package/dist/unstable/eventlog/EventLogRemote.js +165 -320
  40. package/dist/unstable/eventlog/EventLogRemote.js.map +1 -1
  41. package/dist/unstable/eventlog/EventLogServer.d.ts +25 -47
  42. package/dist/unstable/eventlog/EventLogServer.d.ts.map +1 -1
  43. package/dist/unstable/eventlog/EventLogServer.js +127 -198
  44. package/dist/unstable/eventlog/EventLogServer.js.map +1 -1
  45. package/dist/unstable/eventlog/EventLogServerEncrypted.d.ts +60 -0
  46. package/dist/unstable/eventlog/EventLogServerEncrypted.d.ts.map +1 -0
  47. package/dist/unstable/eventlog/EventLogServerEncrypted.js +166 -0
  48. package/dist/unstable/eventlog/EventLogServerEncrypted.js.map +1 -0
  49. package/dist/unstable/eventlog/EventLogServerUnencrypted.d.ts +183 -0
  50. package/dist/unstable/eventlog/EventLogServerUnencrypted.d.ts.map +1 -0
  51. package/dist/unstable/eventlog/EventLogServerUnencrypted.js +461 -0
  52. package/dist/unstable/eventlog/EventLogServerUnencrypted.js.map +1 -0
  53. package/dist/unstable/eventlog/EventLogSessionAuth.d.ts +117 -0
  54. package/dist/unstable/eventlog/EventLogSessionAuth.d.ts.map +1 -0
  55. package/dist/unstable/eventlog/EventLogSessionAuth.js +284 -0
  56. package/dist/unstable/eventlog/EventLogSessionAuth.js.map +1 -0
  57. package/dist/unstable/eventlog/{SqlEventLogJournal.d.ts → SqlEventJournal.d.ts} +2 -2
  58. package/dist/unstable/eventlog/SqlEventJournal.d.ts.map +1 -0
  59. package/dist/unstable/eventlog/{SqlEventLogJournal.js → SqlEventJournal.js} +20 -14
  60. package/dist/unstable/eventlog/SqlEventJournal.js.map +1 -0
  61. package/dist/unstable/eventlog/{SqlEventLogServer.d.ts → SqlEventLogServerEncrypted.d.ts} +5 -5
  62. package/dist/unstable/eventlog/SqlEventLogServerEncrypted.d.ts.map +1 -0
  63. package/dist/unstable/eventlog/{SqlEventLogServer.js → SqlEventLogServerEncrypted.js} +65 -24
  64. package/dist/unstable/eventlog/SqlEventLogServerEncrypted.js.map +1 -0
  65. package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.d.ts +25 -0
  66. package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.d.ts.map +1 -0
  67. package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.js +354 -0
  68. package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.js.map +1 -0
  69. package/dist/unstable/eventlog/index.d.ts +22 -2
  70. package/dist/unstable/eventlog/index.d.ts.map +1 -1
  71. package/dist/unstable/eventlog/index.js +22 -2
  72. package/dist/unstable/eventlog/index.js.map +1 -1
  73. package/dist/unstable/eventlog/internal/identityRootSecretDerivation.d.ts +2 -0
  74. package/dist/unstable/eventlog/internal/identityRootSecretDerivation.d.ts.map +1 -0
  75. package/dist/unstable/eventlog/internal/identityRootSecretDerivation.js +89 -0
  76. package/dist/unstable/eventlog/internal/identityRootSecretDerivation.js.map +1 -0
  77. package/dist/unstable/reactivity/AtomHttpApi.d.ts +1 -2
  78. package/dist/unstable/reactivity/AtomHttpApi.d.ts.map +1 -1
  79. package/dist/unstable/reactivity/AtomHttpApi.js +2 -2
  80. package/dist/unstable/reactivity/AtomHttpApi.js.map +1 -1
  81. package/dist/unstable/reactivity/AtomRpc.d.ts +1 -2
  82. package/dist/unstable/reactivity/AtomRpc.d.ts.map +1 -1
  83. package/dist/unstable/reactivity/AtomRpc.js +3 -3
  84. package/dist/unstable/reactivity/AtomRpc.js.map +1 -1
  85. package/dist/unstable/rpc/Rpc.d.ts +25 -4
  86. package/dist/unstable/rpc/Rpc.d.ts.map +1 -1
  87. package/dist/unstable/rpc/Rpc.js +26 -0
  88. package/dist/unstable/rpc/Rpc.js.map +1 -1
  89. package/dist/unstable/rpc/RpcClient.d.ts +3 -13
  90. package/dist/unstable/rpc/RpcClient.d.ts.map +1 -1
  91. package/dist/unstable/rpc/RpcClient.js +47 -23
  92. package/dist/unstable/rpc/RpcClient.js.map +1 -1
  93. package/dist/unstable/rpc/RpcGroup.d.ts +1 -1
  94. package/dist/unstable/rpc/RpcGroup.d.ts.map +1 -1
  95. package/dist/unstable/rpc/RpcMiddleware.d.ts +2 -2
  96. package/dist/unstable/rpc/RpcMiddleware.d.ts.map +1 -1
  97. package/dist/unstable/rpc/RpcServer.d.ts.map +1 -1
  98. package/dist/unstable/rpc/RpcServer.js +3 -2
  99. package/dist/unstable/rpc/RpcServer.js.map +1 -1
  100. package/dist/unstable/rpc/Utils.d.ts +6 -0
  101. package/dist/unstable/rpc/Utils.d.ts.map +1 -1
  102. package/dist/unstable/rpc/Utils.js +44 -0
  103. package/dist/unstable/rpc/Utils.js.map +1 -1
  104. package/dist/unstable/schema/Model.d.ts +2 -2
  105. package/dist/unstable/schema/Model.d.ts.map +1 -1
  106. package/dist/unstable/schema/Model.js +2 -4
  107. package/dist/unstable/schema/Model.js.map +1 -1
  108. package/dist/unstable/schema/VariantSchema.d.ts +1 -1
  109. package/dist/unstable/schema/VariantSchema.d.ts.map +1 -1
  110. package/dist/unstable/schema/VariantSchema.js +1 -12
  111. package/dist/unstable/schema/VariantSchema.js.map +1 -1
  112. package/dist/unstable/workers/Transferable.d.ts +1 -1
  113. package/dist/unstable/workers/Transferable.d.ts.map +1 -1
  114. package/dist/unstable/workers/Transferable.js +1 -1
  115. package/dist/unstable/workers/Transferable.js.map +1 -1
  116. package/package.json +1 -1
  117. package/src/Equal.ts +17 -0
  118. package/src/Hash.ts +2 -2
  119. package/src/Semaphore.ts +2 -4
  120. package/src/unstable/ai/McpServer.ts +24 -22
  121. package/src/unstable/eventlog/Event.ts +0 -8
  122. package/src/unstable/eventlog/EventGroup.ts +0 -4
  123. package/src/unstable/eventlog/EventJournal.ts +144 -76
  124. package/src/unstable/eventlog/EventLog.ts +342 -221
  125. package/src/unstable/eventlog/EventLogEncryption.ts +16 -30
  126. package/src/unstable/eventlog/EventLogMessage.ts +277 -0
  127. package/src/unstable/eventlog/EventLogRemote.ts +261 -408
  128. package/src/unstable/eventlog/EventLogServer.ts +182 -274
  129. package/src/unstable/eventlog/EventLogServerEncrypted.ts +206 -0
  130. package/src/unstable/eventlog/EventLogServerUnencrypted.ts +749 -0
  131. package/src/unstable/eventlog/EventLogSessionAuth.ts +437 -0
  132. package/src/unstable/eventlog/{SqlEventLogJournal.ts → SqlEventJournal.ts} +26 -18
  133. package/src/unstable/eventlog/{SqlEventLogServer.ts → SqlEventLogServerEncrypted.ts} +102 -40
  134. package/src/unstable/eventlog/SqlEventLogServerUnencrypted.ts +500 -0
  135. package/src/unstable/eventlog/index.ts +27 -2
  136. package/src/unstable/eventlog/internal/identityRootSecretDerivation.ts +153 -0
  137. package/src/unstable/reactivity/AtomHttpApi.ts +23 -8
  138. package/src/unstable/reactivity/AtomRpc.ts +16 -5
  139. package/src/unstable/rpc/Rpc.ts +42 -4
  140. package/src/unstable/rpc/RpcClient.ts +59 -24
  141. package/src/unstable/rpc/RpcGroup.ts +1 -1
  142. package/src/unstable/rpc/RpcMiddleware.ts +2 -2
  143. package/src/unstable/rpc/RpcServer.ts +5 -3
  144. package/src/unstable/rpc/Utils.ts +59 -0
  145. package/src/unstable/schema/Model.ts +4 -6
  146. package/src/unstable/schema/VariantSchema.ts +4 -17
  147. package/src/unstable/workers/Transferable.ts +9 -11
  148. package/dist/unstable/eventlog/SqlEventLogJournal.d.ts.map +0 -1
  149. package/dist/unstable/eventlog/SqlEventLogJournal.js.map +0 -1
  150. package/dist/unstable/eventlog/SqlEventLogServer.d.ts.map +0 -1
  151. package/dist/unstable/eventlog/SqlEventLogServer.js.map +0 -1
@@ -4,19 +4,82 @@
4
4
  import * as Context from "../../Context.js";
5
5
  import * as Effect from "../../Effect.js";
6
6
  import * as FiberMap from "../../FiberMap.js";
7
- import { identity } from "../../Function.js";
7
+ import { constant, identity } from "../../Function.js";
8
8
  import * as Layer from "../../Layer.js";
9
9
  import { pipeArguments } from "../../Pipeable.js";
10
10
  import * as Predicate from "../../Predicate.js";
11
11
  import * as PubSub from "../../PubSub.js";
12
12
  import * as Queue from "../../Queue.js";
13
13
  import * as Redacted from "../../Redacted.js";
14
+ import * as Schedule from "../../Schedule.js";
14
15
  import * as Schema from "../../Schema.js";
15
- import * as Semaphore from "../../Semaphore.js";
16
+ import * as SchemaGetter from "../../SchemaGetter.js";
16
17
  import { Reactivity } from "../reactivity/Reactivity.js";
17
18
  import * as ReactivityLayer from "../reactivity/Reactivity.js";
18
- import * as Event from "./Event.js";
19
19
  import { Entry, EventJournal, makeEntryIdUnsafe } from "./EventJournal.js";
20
+ import * as EventLogEncryption from "./EventLogEncryption.js";
21
+ import { StoreId } from "./EventLogMessage.js";
22
+ /**
23
+ * @since 4.0.0
24
+ * @category tags
25
+ */
26
+ export class EventLog extends /*#__PURE__*/Context.Service()("effect/eventlog/EventLog") {}
27
+ /**
28
+ * @since 4.0.0
29
+ * @category Registry
30
+ */
31
+ export class Registry extends /*#__PURE__*/Context.Service()("effect/unstable/eventlog/EventLog/Registry") {}
32
+ /**
33
+ * @since 4.0.0
34
+ * @category Registry
35
+ */
36
+ export const layerRegistry = /*#__PURE__*/Layer.effect(Registry, /*#__PURE__*/Effect.gen(function* () {
37
+ const handlers = new Map();
38
+ const compactors = new Map();
39
+ const remoteFiberMap = yield* FiberMap.make();
40
+ const remotes = new Map();
41
+ let remoteHandler = _ => Effect.void;
42
+ const reactivityKeys = {};
43
+ return Registry.of({
44
+ registerHandlerUnsafe(options) {
45
+ handlers.set(options.event, options.handler);
46
+ },
47
+ handlers,
48
+ registerCompaction: options => Effect.sync(() => {
49
+ const events = new Set(options.events);
50
+ const compactor = {
51
+ events,
52
+ effect: options.effect
53
+ };
54
+ for (const event of options.events) {
55
+ compactors.set(event, compactor);
56
+ }
57
+ }),
58
+ compactors,
59
+ registerRemote: remote => Effect.acquireRelease(Effect.suspend(() => {
60
+ remotes.set(remote.id, remote);
61
+ return Effect.asVoid(FiberMap.run(remoteFiberMap, remote.id, remoteHandler(remote)));
62
+ }), () => {
63
+ remotes.delete(remote.id);
64
+ return FiberMap.remove(remoteFiberMap, remote.id);
65
+ }),
66
+ handleRemote(handler) {
67
+ remoteHandler = handler;
68
+ return Effect.forEach(remotes, ([id, remote]) => FiberMap.run(remoteFiberMap, id, handler(remote)), {
69
+ discard: true
70
+ });
71
+ },
72
+ registerReactivity: keys => Effect.sync(() => {
73
+ Object.assign(reactivityKeys, keys);
74
+ }),
75
+ reactivityKeys
76
+ });
77
+ }));
78
+ /**
79
+ * @since 4.0.0
80
+ * @category models
81
+ */
82
+ export class Identity extends /*#__PURE__*/Context.Service()("effect/eventlog/EventLog/Identity") {}
20
83
  /**
21
84
  * @since 4.0.0
22
85
  * @category schema
@@ -47,14 +110,20 @@ export const HandlersTypeId = "~effect/eventlog/EventLog/Handlers";
47
110
  * @since 4.0.0
48
111
  * @category models
49
112
  */
50
- export class Identity extends /*#__PURE__*/Context.Service()("effect/eventlog/EventLog/Identity") {}
113
+ export class CurrentStoreId extends /*#__PURE__*/Context.Reference("effect/eventlog/EventLog/CurrentStoreId", {
114
+ defaultValue: /*#__PURE__*/constant(/*#__PURE__*/StoreId.make("default"))
115
+ }) {}
116
+ const RedactedUint8Array = /*#__PURE__*/Schema.Uint8ArrayFromBase64.pipe(/*#__PURE__*/Schema.decodeTo(/*#__PURE__*/Schema.Redacted(Schema.Uint8Array), {
117
+ decode: /*#__PURE__*/SchemaGetter.transform(value => Redacted.make(value)),
118
+ encode: /*#__PURE__*/SchemaGetter.transform(value => Redacted.value(value))
119
+ }));
51
120
  /**
52
121
  * @since 4.0.0
53
122
  * @category schema
54
123
  */
55
124
  export const IdentitySchema = /*#__PURE__*/Schema.Struct({
56
125
  publicKey: Schema.String,
57
- privateKey: /*#__PURE__*/Schema.Redacted(Schema.Uint8ArrayFromBase64)
126
+ privateKey: RedactedUint8Array
58
127
  });
59
128
  const IdentityEncodedSchema = /*#__PURE__*/Schema.Struct({
60
129
  publicKey: Schema.String,
@@ -84,10 +153,7 @@ export const encodeIdentityString = identity => Schema.encodeSync(IdentityString
84
153
  * @since 4.0.0
85
154
  * @category constructors
86
155
  */
87
- export const makeIdentityUnsafe = () => ({
88
- publicKey: globalThis.crypto.randomUUID(),
89
- privateKey: Redacted.make(globalThis.crypto.getRandomValues(new Uint8Array(32)))
90
- });
156
+ export const makeIdentity = /*#__PURE__*/EventLogEncryption.EventLogEncryption.use(_ => _.generateIdentity);
91
157
  const handlersProto = {
92
158
  [HandlersTypeId]: {
93
159
  _Events: identity
@@ -115,7 +181,8 @@ const makeHandlers = options => Object.assign(Object.create(handlersProto), opti
115
181
  * @since 4.0.0
116
182
  * @category handlers
117
183
  */
118
- export const group = (group, f) => Layer.effectContext(Effect.gen(function* () {
184
+ export const group = (group, f) => Layer.effectDiscard(Effect.gen(function* () {
185
+ const registry = yield* Registry;
119
186
  const context = yield* Effect.context();
120
187
  const result = f(makeHandlers({
121
188
  group: group,
@@ -123,21 +190,21 @@ export const group = (group, f) => Layer.effectContext(Effect.gen(function* () {
123
190
  context
124
191
  }));
125
192
  const handlers = Effect.isEffect(result) ? yield* result : result;
126
- const contextMap = new Map();
127
193
  for (const tag in handlers.handlers) {
128
- const handler = handlers.handlers[tag];
129
- contextMap.set(handler.event.key, handlers.handlers[tag]);
194
+ registry.registerHandlerUnsafe({
195
+ event: tag,
196
+ handler: handlers.handlers[tag]
197
+ });
130
198
  }
131
- return Context.makeUnsafe(contextMap);
132
199
  }));
133
200
  /**
134
201
  * @since 4.0.0
135
202
  * @category compaction
136
203
  */
137
204
  export const groupCompaction = (group, effect) => Layer.effectDiscard(Effect.gen(function* () {
138
- const log = yield* EventLog;
205
+ const registry = yield* Registry;
139
206
  const services = yield* Effect.context();
140
- yield* log.registerCompaction({
207
+ yield* registry.registerCompaction({
141
208
  events: Object.keys(group.events),
142
209
  effect: Effect.fnUntraced(function* ({
143
210
  entries,
@@ -195,184 +262,191 @@ export const groupCompaction = (group, effect) => Layer.effectDiscard(Effect.gen
195
262
  }
196
263
  })
197
264
  });
198
- })).pipe(Layer.provide(layerEventLog));
265
+ }));
199
266
  /**
200
267
  * @since 4.0.0
201
268
  * @category reactivity
202
269
  */
203
270
  export const groupReactivity = (group, keys) => Effect.gen(function* () {
204
- const log = yield* EventLog;
271
+ const registry = yield* Registry;
205
272
  if (!Array.isArray(keys)) {
206
- yield* log.registerReactivity(keys);
273
+ yield* registry.registerReactivity(keys);
207
274
  return;
208
275
  }
209
276
  const obj = {};
210
277
  for (const tag in group.events) {
211
278
  obj[tag] = keys;
212
279
  }
213
- yield* log.registerReactivity(obj);
214
- }).pipe(Layer.effectDiscard, Layer.provide(layerEventLog));
280
+ yield* registry.registerReactivity(obj);
281
+ }).pipe(Layer.effectDiscard);
215
282
  /**
216
283
  * @since 4.0.0
217
- * @category tags
284
+ * @category handlers
218
285
  */
219
- export class EventLog extends /*#__PURE__*/Context.Service()("effect/eventlog/EventLog") {}
286
+ export const makeReplayFromRemote = options => Effect.fnUntraced(function* ({
287
+ conflicts,
288
+ entry
289
+ }) {
290
+ const handler = options.handlers.get(entry.event);
291
+ if (!handler) {
292
+ return yield* Effect.logDebug(`Event handler not found for: "${entry.event}"`);
293
+ }
294
+ const decodePayload = Schema.decodeUnknownEffect(handler.event.payloadMsgPack);
295
+ const decodedConflicts = new Array(conflicts.length);
296
+ for (let i = 0; i < conflicts.length; i++) {
297
+ decodedConflicts[i] = {
298
+ entry: conflicts[i],
299
+ payload: yield* decodePayload(conflicts[i].payload).pipe(Effect.updateContext(input => Context.merge(handler.context, input)))
300
+ };
301
+ }
302
+ yield* decodePayload(entry.payload).pipe(Effect.flatMap(payload => handler.handler({
303
+ storeId: options.storeId,
304
+ payload,
305
+ entry,
306
+ conflicts: decodedConflicts
307
+ })), Effect.provideService(Identity, options.identity), Effect.updateContext(input => Context.merge(handler.context, input)), Effect.asVoid);
308
+ const keys = options.reactivityKeys[entry.event];
309
+ if (keys) {
310
+ for (const key of keys) {
311
+ options.reactivity.invalidateUnsafe({
312
+ [key]: [entry.primaryKey]
313
+ });
314
+ }
315
+ }
316
+ }, Effect.catchCause(Effect.logError), (effect, {
317
+ entry
318
+ }) => Effect.annotateLogs(effect, {
319
+ ...options.logAnnotations,
320
+ entryId: entry.idString
321
+ }));
220
322
  const make = /*#__PURE__*/Effect.gen(function* () {
323
+ const storeId = yield* CurrentStoreId;
221
324
  const identity = yield* Identity;
222
325
  const journal = yield* EventJournal;
223
- const services = yield* Effect.context();
224
- const remotes = yield* FiberMap.make();
225
- const compactors = new Map();
226
- const journalSemaphore = yield* Semaphore.make(1);
326
+ const registry = yield* Registry;
227
327
  const reactivity = yield* Reactivity;
228
- const reactivityKeys = {};
328
+ const replayFromRemote = makeReplayFromRemote({
329
+ handlers: registry.handlers,
330
+ storeId,
331
+ identity,
332
+ reactivity,
333
+ reactivityKeys: registry.reactivityKeys,
334
+ logAnnotations: {
335
+ service: "EventLog",
336
+ effect: "writeFromRemote"
337
+ }
338
+ });
339
+ const invalidateReactivityEntries = entries => Effect.sync(() => {
340
+ for (const entry of entries) {
341
+ const keys = registry.reactivityKeys[entry.event];
342
+ if (!keys) {
343
+ continue;
344
+ }
345
+ for (const key of keys) {
346
+ reactivity.invalidateUnsafe({
347
+ [key]: [entry.primaryKey]
348
+ });
349
+ }
350
+ }
351
+ });
229
352
  const runRemote = Effect.fnUntraced(function* (remote) {
230
353
  const startSequence = yield* journal.nextRemoteSequence(remote.id);
231
- const changes = yield* remote.changes(identity, startSequence);
232
- yield* Queue.takeAll(changes).pipe(Effect.flatMap(entries => journal.writeFromRemote({
233
- remoteId: remote.id,
234
- entries: entries.flat(),
235
- compact: compactors.size > 0 ? Effect.fnUntraced(function* (remoteEntries) {
236
- const brackets = [];
237
- let uncompacted = [];
238
- let uncompactedRemote = [];
239
- let index = 0;
240
- while (index < remoteEntries.length) {
241
- const remoteEntry = remoteEntries[index];
242
- const compactor = compactors.get(remoteEntry.entry.event);
243
- if (!compactor) {
244
- uncompacted.push(remoteEntry.entry);
245
- uncompactedRemote.push(remoteEntry);
246
- index++;
247
- continue;
248
- }
249
- if (uncompacted.length > 0) {
250
- brackets.push([uncompacted, uncompactedRemote]);
251
- uncompacted = [];
252
- uncompactedRemote = [];
253
- }
254
- const entries = [remoteEntry.entry];
255
- const remoteGroup = [remoteEntry];
256
- const compacted = [];
257
- index++;
258
- while (index < remoteEntries.length) {
259
- const nextRemoteEntry = remoteEntries[index];
260
- if (!compactor.events.has(nextRemoteEntry.entry.event)) {
261
- break;
354
+ yield* Effect.gen(function* () {
355
+ const changes = yield* remote.changes({
356
+ identity,
357
+ startSequence,
358
+ storeId
359
+ });
360
+ while (true) {
361
+ const entries = yield* Queue.takeAll(changes);
362
+ yield* journal.writeFromRemote({
363
+ remoteId: remote.id,
364
+ entries: entries.flat(),
365
+ compact: registry.compactors.size > 0 ? Effect.fnUntraced(function* (remoteEntries) {
366
+ const finalEntries = [];
367
+ const compactable = new Map();
368
+ for (let i = 0; i < remoteEntries.length; i++) {
369
+ const remoteEntry = remoteEntries[i];
370
+ const entry = remoteEntry.entry;
371
+ const compactor = registry.compactors.get(entry.event);
372
+ if (!compactor) {
373
+ finalEntries.push(entry);
374
+ continue;
375
+ }
376
+ let arr = compactable.get(compactor.effect);
377
+ if (!arr) {
378
+ arr = [];
379
+ compactable.set(compactor.effect, arr);
380
+ }
381
+ arr.push(entry);
262
382
  }
263
- entries.push(nextRemoteEntry.entry);
264
- remoteGroup.push(nextRemoteEntry);
265
- index++;
266
- }
267
- yield* compactor.effect({
268
- entries,
269
- write(entry) {
270
- return Effect.sync(() => {
271
- compacted.push(entry);
383
+ for (const [compact, entries] of compactable) {
384
+ yield* compact({
385
+ entries,
386
+ write(entry) {
387
+ return Effect.sync(() => {
388
+ finalEntries.push(entry);
389
+ });
390
+ }
272
391
  });
273
392
  }
274
- }).pipe(Effect.orDie);
275
- brackets.push([compacted, remoteGroup]);
276
- }
277
- if (uncompacted.length > 0) {
278
- brackets.push([uncompacted, uncompactedRemote]);
279
- }
280
- return brackets;
281
- }) : undefined,
282
- effect: Effect.fnUntraced(function* ({
283
- conflicts,
284
- entry
285
- }) {
286
- const handler = services.mapUnsafe.get(Event.serviceKey(entry.event));
287
- if (!handler) {
288
- return yield* Effect.logDebug(`Event handler not found for: "${entry.event}"`);
289
- }
290
- const decodePayload = Schema.decodeUnknownEffect(handler.event.payloadMsgPack);
291
- const decodedConflicts = new Array(conflicts.length);
292
- for (let i = 0; i < conflicts.length; i++) {
293
- decodedConflicts[i] = {
294
- entry: conflicts[i],
295
- payload: yield* decodePayload(conflicts[i].payload).pipe(Effect.updateContext(input => Context.merge(handler.context, input)))
296
- };
297
- }
298
- yield* decodePayload(entry.payload).pipe(Effect.flatMap(payload => handler.handler({
299
- payload,
300
- entry,
301
- conflicts: decodedConflicts
302
- })), Effect.updateContext(input => Context.merge(handler.context, input)), Effect.asVoid);
303
- if (reactivityKeys[entry.event]) {
304
- for (const key of reactivityKeys[entry.event]) {
305
- yield* Effect.sync(() => reactivity.invalidateUnsafe({
306
- [key]: [entry.primaryKey]
307
- }));
308
- }
309
- }
310
- }, Effect.catchCause(Effect.logError), (effect, {
311
- entry
312
- }) => Effect.annotateLogs(effect, {
313
- service: "EventLog",
314
- effect: "writeFromRemote",
315
- entryId: entry.idString
316
- }))
317
- }).pipe(journalSemaphore.withPermits(1))), Effect.catchCause(Effect.logError), Effect.forever, Effect.annotateLogs({
393
+ return finalEntries.sort(Entry.Order);
394
+ }) : undefined,
395
+ effect: replayFromRemote
396
+ }).pipe(Effect.tap(({
397
+ duplicateEntries
398
+ }) => invalidateReactivityEntries(duplicateEntries)), journal.withLock(storeId));
399
+ }
400
+ }).pipe(Effect.scoped, Effect.catchCause(Effect.logError), Effect.repeat(Schedule.exponential(200, 1.5).pipe(Schedule.either(Schedule.spaced({
401
+ seconds: 10
402
+ })))), Effect.annotateLogs({
318
403
  service: "EventLog",
319
404
  effect: "runRemote consume"
320
405
  }), Effect.forkScoped);
321
- const write = journal.withRemoteUncommited(remote.id, entries => remote.write(identity, entries));
406
+ const write = journal.withRemoteUncommited(remote.id, entries => remote.write({
407
+ identity,
408
+ entries,
409
+ storeId
410
+ }));
322
411
  yield* Effect.addFinalizer(() => Effect.ignore(write));
323
412
  yield* write;
324
413
  const changesSub = yield* journal.changes;
325
- return yield* PubSub.takeAll(changesSub).pipe(Effect.andThen(Effect.sleep("500 millis")), Effect.andThen(write), Effect.catchCause(Effect.logError), Effect.forever);
326
- }, Effect.scoped, Effect.provideService(Identity, identity), Effect.interruptible);
414
+ return yield* PubSub.takeAll(changesSub).pipe(Effect.andThen(write), Effect.catchCause(Effect.logError), Effect.forever);
415
+ }, Effect.scoped, Effect.provideService(Identity, identity), Effect.orDie);
327
416
  const writeHandler = Effect.fnUntraced(function* (handler, options) {
328
417
  const payload = yield* Schema.encodeUnknownEffect(handler.event.payloadMsgPack)(options.payload).pipe(Effect.orDie);
329
- return yield* journalSemaphore.withPermits(1)(journal.write({
418
+ return yield* journal.withLock(storeId)(journal.write({
330
419
  event: options.event,
331
420
  primaryKey: handler.event.primaryKey(options.payload),
332
421
  payload,
333
422
  effect: entry => handler.handler({
423
+ storeId,
334
424
  payload: options.payload,
335
425
  entry,
336
426
  conflicts: []
337
- }).pipe(Effect.updateContext(input => Context.merge(handler.context, input)), Effect.tap(() => Effect.sync(() => {
338
- if (reactivityKeys[entry.event]) {
339
- for (const key of reactivityKeys[entry.event]) {
427
+ }).pipe(Effect.updateContext(input => Context.merge(handler.context, input)), Effect.provideService(Identity, identity), Effect.tap(() => {
428
+ if (registry.reactivityKeys[entry.event]) {
429
+ for (const key of registry.reactivityKeys[entry.event]) {
340
430
  reactivity.invalidateUnsafe({
341
431
  [key]: [entry.primaryKey]
342
432
  });
343
433
  }
344
434
  }
345
- })))
435
+ return Effect.void;
436
+ }))
346
437
  }));
347
438
  });
348
439
  const eventLogWrite = options => {
349
- const handler = services.mapUnsafe.get(Event.serviceKey(options.event));
440
+ const handler = registry.handlers.get(options.event);
350
441
  if (handler === undefined) {
351
442
  return Effect.die(`Event handler not found for: "${options.event}"`);
352
443
  }
353
444
  return writeHandler(handler, options);
354
445
  };
446
+ yield* registry.handleRemote(runRemote);
355
447
  return EventLog.of({
356
448
  write: eventLogWrite,
357
449
  entries: journal.entries,
358
- registerRemote: remote => Effect.acquireRelease(FiberMap.run(remotes, remote.id, runRemote(remote)), () => FiberMap.remove(remotes, remote.id)).pipe(Effect.asVoid),
359
- registerCompaction: options => Effect.acquireRelease(Effect.sync(() => {
360
- const events = new Set(options.events);
361
- const compactor = {
362
- events,
363
- effect: options.effect
364
- };
365
- for (const event of options.events) {
366
- compactors.set(event, compactor);
367
- }
368
- }), () => Effect.sync(() => {
369
- for (const event of options.events) {
370
- compactors.delete(event);
371
- }
372
- })),
373
- registerReactivity: keys => Effect.sync(() => {
374
- Object.assign(reactivityKeys, keys);
375
- }),
376
450
  destroy: journal.destroy
377
451
  });
378
452
  });
@@ -380,12 +454,12 @@ const make = /*#__PURE__*/Effect.gen(function* () {
380
454
  * @since 4.0.0
381
455
  * @category layers
382
456
  */
383
- export const layerEventLog = /*#__PURE__*/Layer.effect(EventLog, make).pipe(/*#__PURE__*/Layer.provide(ReactivityLayer.layer));
457
+ export const layerEventLog = /*#__PURE__*/Layer.effect(EventLog, make).pipe(/*#__PURE__*/Layer.provide(ReactivityLayer.layer), /*#__PURE__*/Layer.provideMerge(layerRegistry));
384
458
  /**
385
459
  * @since 4.0.0
386
460
  * @category layers
387
461
  */
388
- export const layer = _schema => layerEventLog;
462
+ export const layer = (_schema, layer) => layer.pipe(Layer.provideMerge(layerEventLog));
389
463
  /**
390
464
  * @since 4.0.0
391
465
  * @category client
@@ -1 +1 @@
1
- {"version":3,"file":"EventLog.js","names":["Context","Effect","FiberMap","identity","Layer","pipeArguments","Predicate","PubSub","Queue","Redacted","Schema","Semaphore","Reactivity","ReactivityLayer","Event","Entry","EventJournal","makeEntryIdUnsafe","SchemaTypeId","isEventLogSchema","u","hasProperty","schema","groups","EventLog","Object","assign","HandlersTypeId","Identity","Service","IdentitySchema","Struct","publicKey","String","privateKey","Uint8ArrayFromBase64","IdentityEncodedSchema","IdentityStringSchema","fromJsonString","decodeIdentityString","value","decoded","decodeUnknownSync","make","encodeIdentityString","encodeSync","makeIdentityUnsafe","globalThis","crypto","randomUUID","getRandomValues","Uint8Array","handlersProto","_Events","handle","tag","handler","makeHandlers","group","context","handlers","event","events","pipe","arguments","options","create","f","effectContext","gen","result","isEffect","contextMap","Map","set","key","makeUnsafe","groupCompaction","effect","effectDiscard","log","services","registerCompaction","keys","fnUntraced","entries","write","isEventTag","decodePayload","payload","decodeUnknownEffect","payloadMsgPack","updateContext","input","merge","orDie","writePayload","timestamp","entry","id","msecs","encodeUnknownEffect","primaryKey","disableChecks","byPrimaryKey","record","get","taggedPayload","_tag","push","taggedPayloads","createdAtMillis","provide","layerEventLog","groupReactivity","Array","isArray","registerReactivity","obj","journal","remotes","compactors","journalSemaphore","reactivity","reactivityKeys","runRemote","remote","startSequence","nextRemoteSequence","changes","takeAll","flatMap","writeFromRemote","remoteId","flat","compact","size","remoteEntries","brackets","uncompacted","uncompactedRemote","index","length","remoteEntry","compactor","remoteGroup","compacted","nextRemoteEntry","has","sync","undefined","conflicts","mapUnsafe","serviceKey","logDebug","decodedConflicts","i","asVoid","invalidateUnsafe","catchCause","logError","annotateLogs","service","entryId","idString","withPermits","forever","forkScoped","withRemoteUncommited","addFinalizer","ignore","changesSub","andThen","sleep","scoped","provideService","interruptible","writeHandler","tap","eventLogWrite","die","of","registerRemote","acquireRelease","run","remove","Set","delete","destroy","layer","_schema","makeClient"],"sources":["../../../src/unstable/eventlog/EventLog.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"EventLog.js","names":["Context","Effect","FiberMap","constant","identity","Layer","pipeArguments","Predicate","PubSub","Queue","Redacted","Schedule","Schema","SchemaGetter","Reactivity","ReactivityLayer","Entry","EventJournal","makeEntryIdUnsafe","EventLogEncryption","StoreId","EventLog","Service","Registry","layerRegistry","effect","gen","handlers","Map","compactors","remoteFiberMap","make","remotes","remoteHandler","_","void","reactivityKeys","of","registerHandlerUnsafe","options","set","event","handler","registerCompaction","sync","events","Set","compactor","registerRemote","remote","acquireRelease","suspend","id","asVoid","run","delete","remove","handleRemote","forEach","discard","registerReactivity","keys","Object","assign","Identity","SchemaTypeId","isEventLogSchema","u","hasProperty","schema","groups","HandlersTypeId","CurrentStoreId","Reference","defaultValue","RedactedUint8Array","Uint8ArrayFromBase64","pipe","decodeTo","Uint8Array","decode","transform","value","encode","IdentitySchema","Struct","publicKey","String","privateKey","IdentityEncodedSchema","IdentityStringSchema","fromJsonString","decodeIdentityString","decoded","decodeUnknownSync","encodeIdentityString","encodeSync","makeIdentity","use","generateIdentity","handlersProto","_Events","handle","tag","makeHandlers","group","context","arguments","create","f","effectDiscard","registry","result","isEffect","groupCompaction","services","fnUntraced","entries","write","isEventTag","decodePayload","payload","decodeUnknownEffect","payloadMsgPack","updateContext","input","merge","orDie","writePayload","timestamp","entry","msecs","encodeUnknownEffect","primaryKey","disableChecks","byPrimaryKey","record","get","taggedPayload","_tag","push","taggedPayloads","createdAtMillis","groupReactivity","Array","isArray","obj","makeReplayFromRemote","conflicts","logDebug","decodedConflicts","length","i","flatMap","storeId","provideService","key","reactivity","invalidateUnsafe","catchCause","logError","annotateLogs","logAnnotations","entryId","idString","journal","replayFromRemote","service","invalidateReactivityEntries","runRemote","startSequence","nextRemoteSequence","changes","takeAll","writeFromRemote","remoteId","flat","compact","size","remoteEntries","finalEntries","compactable","remoteEntry","arr","sort","Order","undefined","tap","duplicateEntries","withLock","scoped","repeat","exponential","either","spaced","seconds","forkScoped","withRemoteUncommited","addFinalizer","ignore","changesSub","andThen","forever","writeHandler","eventLogWrite","die","destroy","layerEventLog","provide","layer","provideMerge","_schema","makeClient","log"],"sources":["../../../src/unstable/eventlog/EventLog.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,OAAO,KAAKA,OAAO,MAAM,kBAAkB;AAC3C,OAAO,KAAKC,MAAM,MAAM,iBAAiB;AACzC,OAAO,KAAKC,QAAQ,MAAM,mBAAmB;AAC7C,SAASC,QAAQ,EAAEC,QAAQ,QAAQ,mBAAmB;AACtD,OAAO,KAAKC,KAAK,MAAM,gBAAgB;AAEvC,SAASC,aAAa,QAAQ,mBAAmB;AACjD,OAAO,KAAKC,SAAS,MAAM,oBAAoB;AAC/C,OAAO,KAAKC,MAAM,MAAM,iBAAiB;AACzC,OAAO,KAAKC,KAAK,MAAM,gBAAgB;AAEvC,OAAO,KAAKC,QAAQ,MAAM,mBAAmB;AAC7C,OAAO,KAAKC,QAAQ,MAAM,mBAAmB;AAC7C,OAAO,KAAKC,MAAM,MAAM,iBAAiB;AACzC,OAAO,KAAKC,YAAY,MAAM,uBAAuB;AAGrD,SAASC,UAAU,QAAQ,6BAA6B;AACxD,OAAO,KAAKC,eAAe,MAAM,6BAA6B;AAG9D,SAASC,KAAK,EAAEC,YAAY,EAA0BC,iBAAiB,QAAuB,mBAAmB;AACjH,OAAO,KAAKC,kBAAkB,MAAM,yBAAyB;AAC7D,SAASC,OAAO,QAAQ,sBAAsB;AAG9C;;;;AAIA,OAAM,MAAOC,QAAS,sBAAQrB,OAAO,CAACsB,OAAO,EAWzC,CAAC,0BAA0B,CAAC;AAEhC;;;;AAIA,OAAM,MAAOC,QAAS,sBAAQvB,OAAO,CAACsB,OAAO,EA8BzC,CAAC,4CAA4C,CAAC;AAElD;;;;AAIA,OAAO,MAAME,aAAa,gBAAGnB,KAAK,CAACoB,MAAM,CACvCF,QAAQ,eACRtB,MAAM,CAACyB,GAAG,CAAC,aAAS;EAClB,MAAMC,QAAQ,GAAG,IAAIC,GAAG,EAA8B;EACtD,MAAMC,UAAU,GAAG,IAAID,GAAG,EAMtB;EAEJ,MAAME,cAAc,GAAG,OAAO5B,QAAQ,CAAC6B,IAAI,EAAY;EACvD,MAAMC,OAAO,GAAG,IAAIJ,GAAG,EAAuC;EAC9D,IAAIK,aAAa,GAAgEC,CAAC,IAAKjC,MAAM,CAACkC,IAAI;EAElG,MAAMC,cAAc,GAA0C,EAAE;EAChE,OAAOb,QAAQ,CAACc,EAAE,CAAC;IACjBC,qBAAqBA,CAACC,OAAO;MAC3BZ,QAAQ,CAACa,GAAG,CAACD,OAAO,CAACE,KAAK,EAAEF,OAAO,CAACG,OAAO,CAAC;IAC9C,CAAC;IACDf,QAAQ;IACRgB,kBAAkB,EAAGJ,OAAO,IAC1BtC,MAAM,CAAC2C,IAAI,CAAC,MAAK;MACf,MAAMC,MAAM,GAAG,IAAIC,GAAG,CAACP,OAAO,CAACM,MAAM,CAAC;MACtC,MAAME,SAAS,GAAG;QAChBF,MAAM;QACNpB,MAAM,EAAEc,OAAO,CAACd;OACjB;MACD,KAAK,MAAMgB,KAAK,IAAIF,OAAO,CAACM,MAAM,EAAE;QAClChB,UAAU,CAACW,GAAG,CAACC,KAAK,EAAEM,SAAS,CAAC;MAClC;IACF,CAAC,CAAC;IACJlB,UAAU;IACVmB,cAAc,EAAGC,MAAM,IACrBhD,MAAM,CAACiD,cAAc,CACnBjD,MAAM,CAACkD,OAAO,CAAC,MAAK;MAClBnB,OAAO,CAACQ,GAAG,CAACS,MAAM,CAACG,EAAE,EAAEH,MAAM,CAAC;MAC9B,OAAOhD,MAAM,CAACoD,MAAM,CAACnD,QAAQ,CAACoD,GAAG,CAACxB,cAAc,EAAEmB,MAAM,CAACG,EAAE,EAAEnB,aAAa,CAACgB,MAAM,CAAC,CAAC,CAAC;IACtF,CAAC,CAAC,EACF,MAAK;MACHjB,OAAO,CAACuB,MAAM,CAACN,MAAM,CAACG,EAAE,CAAC;MACzB,OAAOlD,QAAQ,CAACsD,MAAM,CAAC1B,cAAc,EAAEmB,MAAM,CAACG,EAAE,CAAC;IACnD,CAAC,CACF;IACHK,YAAYA,CAACf,OAAO;MAClBT,aAAa,GAAGS,OAAO;MACvB,OAAOzC,MAAM,CAACyD,OAAO,CAAC1B,OAAO,EAAE,CAAC,CAACoB,EAAE,EAAEH,MAAM,CAAC,KAAK/C,QAAQ,CAACoD,GAAG,CAACxB,cAAc,EAAEsB,EAAE,EAAEV,OAAO,CAACO,MAAM,CAAC,CAAC,EAAE;QAClGU,OAAO,EAAE;OACV,CAAC;IACJ,CAAC;IACDC,kBAAkB,EAAGC,IAAI,IACvB5D,MAAM,CAAC2C,IAAI,CAAC,MAAK;MACfkB,MAAM,CAACC,MAAM,CAAC3B,cAAc,EAAEyB,IAAI,CAAC;IACrC,CAAC,CAAC;IACJzB;GACD,CAAC;AACJ,CAAC,CAAC,CACH;AAED;;;;AAIA,OAAM,MAAO4B,QAAS,sBAAQhE,OAAO,CAACsB,OAAO,EAGzC,CAAC,mCAAmC,CAAC;AAQzC;;;;AAIA,OAAO,MAAM2C,YAAY,GAAiB,kCAAkC;AAE5E;;;;AAIA,OAAO,MAAMC,gBAAgB,GAAIC,CAAU,IACzC5D,SAAS,CAAC6D,WAAW,CAACD,CAAC,EAAEF,YAAY,CAAC;AAWxC;;;;AAIA,OAAO,MAAMI,MAAM,GAAGA,CACpB,GAAGC,MAAc,KACiB;EAClC,MAAMjD,QAAQ,GAAGyC,MAAM,CAACC,MAAM,CAAC,SAAS1C,QAAQA,CAAA,GAAI,CAAC,EAAE;IACrD,CAAC4C,YAAY,GAAGA,YAAY;IAC5BK;GACD,CAA0C;EAC3C,OAAOjD,QAAQ;AACjB,CAAC;AAQD;;;;AAIA,OAAO,MAAMkD,cAAc,GAAmB,oCAAoC;AA4HlF;;;;AAIA,OAAM,MAAOC,cAAe,sBAAQxE,OAAO,CAACyE,SAAS,CAAU,yCAAyC,EAAE;EACxGC,YAAY,eAAEvE,QAAQ,cAACiB,OAAO,CAACW,IAAI,CAAC,SAAS,CAAC;CAC/C,CAAC;AAEF,MAAM4C,kBAAkB,gBAAG/D,MAAM,CAACgE,oBAAoB,CAACC,IAAI,cACzDjE,MAAM,CAACkE,QAAQ,cAAClE,MAAM,CAACF,QAAQ,CAACE,MAAM,CAACmE,UAAU,CAAC,EAAE;EAClDC,MAAM,eAAEnE,YAAY,CAACoE,SAAS,CAAEC,KAAK,IAAKxE,QAAQ,CAACqB,IAAI,CAACmD,KAAK,CAAC,CAAC;EAC/DC,MAAM,eAAEtE,YAAY,CAACoE,SAAS,CAAEC,KAAK,IAAKxE,QAAQ,CAACwE,KAAK,CAACA,KAAK,CAAC;CAChE,CAAC,CACH;AAED;;;;AAIA,OAAO,MAAME,cAAc,gBAAGxE,MAAM,CAACyE,MAAM,CAAC;EAC1CC,SAAS,EAAE1E,MAAM,CAAC2E,MAAM;EACxBC,UAAU,EAAEb;CACb,CAAC;AAEF,MAAMc,qBAAqB,gBAAG7E,MAAM,CAACyE,MAAM,CAAC;EAC1CC,SAAS,EAAE1E,MAAM,CAAC2E,MAAM;EACxBC,UAAU,EAAE5E,MAAM,CAACgE;CACpB,CAAC;AAEF,MAAMc,oBAAoB,gBAAG9E,MAAM,CAAC+E,cAAc,CAACF,qBAAqB,CAAC;AAEzE;;;;AAIA,OAAO,MAAMG,oBAAoB,GAAIV,KAAa,IAAyB;EACzE,MAAMW,OAAO,GAAGjF,MAAM,CAACkF,iBAAiB,CAACJ,oBAAoB,CAAC,CAACR,KAAK,CAAC;EACrE,OAAO;IACLI,SAAS,EAAEO,OAAO,CAACP,SAAS;IAC5BE,UAAU,EAAE9E,QAAQ,CAACqB,IAAI,CAAC8D,OAAO,CAACL,UAAqC;GACxE;AACH,CAAC;AAED;;;;AAIA,OAAO,MAAMO,oBAAoB,GAAI3F,QAA6B,IAChEQ,MAAM,CAACoF,UAAU,CAACN,oBAAoB,CAAC,CAAC;EACtCJ,SAAS,EAAElF,QAAQ,CAACkF,SAAS;EAC7BE,UAAU,EAAE9E,QAAQ,CAACwE,KAAK,CAAC9E,QAAQ,CAACoF,UAAU;CAC/C,CAAC;AAEJ;;;;AAIA,OAAO,MAAMS,YAAY,gBACvB9E,kBAAkB,CAACA,kBAAkB,CAAC+E,GAAG,CAAEhE,CAAC,IAAKA,CAAC,CAACiE,gBAAgB,CAAC;AAEtE,MAAMC,aAAa,GAAG;EACpB,CAAC7B,cAAc,GAAG;IAChB8B,OAAO,EAAEjG;GACV;EACDkG,MAAMA,CAEJC,GAAQ,EACR7D,OAAkE;IAElE,OAAO8D,YAAY,CAAC;MAClBC,KAAK,EAAE,IAAI,CAACA,KAAK;MACjBC,OAAO,EAAE,IAAI,CAACA,OAAO;MACrB/E,QAAQ,EAAE;QACR,GAAG,IAAI,CAACA,QAAQ;QAChB,CAAC4E,GAAG,GAAG;UACL9D,KAAK,EAAE,IAAI,CAACgE,KAAK,CAAC5D,MAAM,CAAC0D,GAAG,CAAC;UAC7BG,OAAO,EAAE,IAAI,CAACA,OAAO;UACrBhE;;;KAGL,CAAC;EACJ,CAAC;EACDmC,IAAIA,CAAA;IACF,OAAOvE,aAAa,CAAC,IAAI,EAAEqG,SAAS,CAAC;EACvC;CACD;AAED,MAAMH,YAAY,GAAIjE,OAIrB,IAAyBuB,MAAM,CAACC,MAAM,CAACD,MAAM,CAAC8C,MAAM,CAACR,aAAa,CAAC,EAAE7D,OAAO,CAAC;AAE9E;;;;AAIA,OAAO,MAAMkE,KAAK,GAAGA,CACnBA,KAAoC,EACpCI,CAAyE,KAMzExG,KAAK,CAACyG,aAAa,CACjB7G,MAAM,CAACyB,GAAG,CAAC,aAAS;EAClB,MAAMqF,QAAQ,GAAG,OAAOxF,QAAQ;EAChC,MAAMmF,OAAO,GAAG,OAAOzG,MAAM,CAACyG,OAAO,EAA8D;EACnG,MAAMM,MAAM,GAAGH,CAAC,CAACL,YAAY,CAAC;IAC5BC,KAAK,EAAEA,KAAgC;IACvC9E,QAAQ,EAAE,EAAE;IACZ+E;GACD,CAAuC,CAAC;EACzC,MAAM/E,QAAQ,GAAG1B,MAAM,CAACgH,QAAQ,CAACD,MAAM,CAAC,GACnC,OAAQA,MAAkD,GAC1DA,MAAmC;EACxC,KAAK,MAAMT,GAAG,IAAI5E,QAAQ,CAACA,QAAQ,EAAE;IACnCoF,QAAQ,CAACzE,qBAAqB,CAAC;MAAEG,KAAK,EAAE8D,GAAG;MAAE7D,OAAO,EAAEf,QAAQ,CAACA,QAAQ,CAAC4E,GAAG;IAAC,CAAE,CAAC;EACjF;AACF,CAAC,CAAC,CACI;AAEV;;;;AAIA,OAAO,MAAMW,eAAe,GAAGA,CAC7BT,KAAoC,EACpChF,MAQmC,KAEnCpB,KAAK,CAACyG,aAAa,CACjB7G,MAAM,CAACyB,GAAG,CAAC,aAAS;EAClB,MAAMqF,QAAQ,GAAG,OAAOxF,QAAQ;EAChC,MAAM4F,QAAQ,GAAG,OAAOlH,MAAM,CAACyG,OAAO,EAAuD;EAE7F,OAAOK,QAAQ,CAACpE,kBAAkB,CAAC;IACjCE,MAAM,EAAEiB,MAAM,CAACD,IAAI,CAAC4C,KAAK,CAAC5D,MAAM,CAAC;IACjCpB,MAAM,EAAExB,MAAM,CAACmH,UAAU,CAAC,WAAU;MAAEC,OAAO;MAAEC;IAAK,CAAE;MACpD,MAAMC,UAAU,GAAIhB,GAAW,IAA+BA,GAAG,IAAIE,KAAK,CAAC5D,MAAM;MACjF,MAAM2E,aAAa,GAAGA,CAAgCjB,GAAQ,EAAEkB,OAAmB,KACjF7G,MAAM,CAAC8G,mBAAmB,CAACjB,KAAK,CAAC5D,MAAM,CAAC0D,GAAG,CAAC,CAACoB,cAAc,CAAC,CAACF,OAAO,CAAC,CAAC5C,IAAI,CACxE5E,MAAM,CAAC2H,aAAa,CAAEC,KAAK,IAAK7H,OAAO,CAAC8H,KAAK,CAACX,QAAQ,EAAEU,KAAK,CAAC,CAAC,EAC/D5H,MAAM,CAAC8H,KAAK,CACkD;MAClE,MAAMC,YAAY,GAAG/H,MAAM,CAACmH,UAAU,CAAC,WACrCa,SAAiB,EACjB1B,GAAQ,EACRkB,OAA0C;QAE1C,MAAMhF,KAAK,GAAGgE,KAAK,CAAC5D,MAAM,CAAC0D,GAAG,CAAC;QAC/B,MAAM2B,KAAK,GAAG,IAAIlH,KAAK,CAAC;UACtBoC,EAAE,EAAElC,iBAAiB,CAAC;YAAEiH,KAAK,EAAEF;UAAS,CAAE,CAAC;UAC3CxF,KAAK,EAAE8D,GAAG;UACVkB,OAAO,EAAE,OAAO7G,MAAM,CAACwH,mBAAmB,CAAC3F,KAAK,CAACkF,cAAc,CAAC,CAACF,OAAO,CAAC,CAAC5C,IAAI,CAC5E5E,MAAM,CAAC8H,KAAK,CACN;UACRM,UAAU,EAAE5F,KAAK,CAAC4F,UAAU,CAACZ,OAAO;SACrC,EAAE;UAAEa,aAAa,EAAE;QAAI,CAAE,CAAC;QAC3B,OAAOhB,KAAK,CAACY,KAAK,CAAC;MACrB,CAAC,CAAC;MAEF,MAAMK,YAAY,GAAG,IAAI3G,GAAG,EAMzB;MACH,KAAK,MAAMsG,KAAK,IAAIb,OAAO,EAAE;QAC3B,IAAI,CAACE,UAAU,CAACW,KAAK,CAACzF,KAAK,CAAC,EAAE;UAC5B;QACF;QACA,MAAMgF,OAAO,GAAG,OAAOD,aAAa,CAACU,KAAK,CAACzF,KAAK,EAAEyF,KAAK,CAACT,OAAO,CAAC;QAChE,MAAMe,MAAM,GAAGD,YAAY,CAACE,GAAG,CAACP,KAAK,CAACG,UAAU,CAAC;QACjD,MAAMK,aAAa,GAAG;UAAEC,IAAI,EAAET,KAAK,CAACzF,KAAK;UAAEgF;QAAO,CAA4C;QAC9F,IAAIe,MAAM,EAAE;UACVA,MAAM,CAACnB,OAAO,CAACuB,IAAI,CAACV,KAAK,CAAC;UAC1BM,MAAM,CAACK,cAAc,CAACD,IAAI,CAACF,aAAa,CAAC;QAC3C,CAAC,MAAM;UACLH,YAAY,CAAC/F,GAAG,CAAC0F,KAAK,CAACG,UAAU,EAAE;YACjChB,OAAO,EAAE,CAACa,KAAK,CAAC;YAChBW,cAAc,EAAE,CAACH,aAAa;WAC/B,CAAC;QACJ;MACF;MAEA,KAAK,MAAM,CAACL,UAAU,EAAE;QAAEhB,OAAO;QAAEwB;MAAc,CAAE,CAAC,IAAIN,YAAY,EAAE;QACpE,OAAOtI,MAAM,CAAC8H,KAAK,CACjBtG,MAAM,CAAC;UACL4G,UAAU;UACVhB,OAAO;UACPxE,MAAM,EAAEgG,cAAc;UACtBvB,KAAKA,CAACf,GAAG,EAAEkB,OAAO;YAChB,OAAOxH,MAAM,CAAC8H,KAAK,CAACC,YAAY,CAACX,OAAO,CAAC,CAAC,CAAC,CAACyB,eAAe,EAAEvC,GAAG,EAAEkB,OAAO,CAAC,CAAC;UAC7E;SACD,CAAC,CAAC5C,IAAI,CACL5E,MAAM,CAAC2H,aAAa,CAAEC,KAAK,IAAK7H,OAAO,CAAC8H,KAAK,CAACX,QAAQ,EAAEU,KAAK,CAAC,CAAC,CAChE,CACK;MACV;IACF,CAAC;GACF,CAAC;AACJ,CAAC,CAAC,CACH;AAEH;;;;AAIA,OAAO,MAAMkB,eAAe,GAAGA,CAC7BtC,KAAoC,EACpC5C,IAEyB,KAEzB5D,MAAM,CAACyB,GAAG,CAAC,aAAS;EAClB,MAAMqF,QAAQ,GAAG,OAAOxF,QAAQ;EAChC,IAAI,CAACyH,KAAK,CAACC,OAAO,CAACpF,IAAI,CAAC,EAAE;IACxB,OAAOkD,QAAQ,CAACnD,kBAAkB,CAACC,IAA4D,CAAC;IAChG;EACF;EACA,MAAMqF,GAAG,GAA0C,EAAE;EACrD,KAAK,MAAM3C,GAAG,IAAIE,KAAK,CAAC5D,MAAM,EAAE;IAC9BqG,GAAG,CAAC3C,GAAG,CAAC,GAAG1C,IAAI;EACjB;EACA,OAAOkD,QAAQ,CAACnD,kBAAkB,CAACsF,GAAG,CAAC;AACzC,CAAC,CAAC,CAACrE,IAAI,CACLxE,KAAK,CAACyG,aAAa,CACpB;AAEH;;;;AAIA,OAAO,MAAMqC,oBAAoB,GAAI5G,OAUpC,IACCtC,MAAM,CAACmH,UAAU,CACf,WAAU;EAAEgC,SAAS;EAAElB;AAAK,CAAE;EAC5B,MAAMxF,OAAO,GAAGH,OAAO,CAACZ,QAAQ,CAAC8G,GAAG,CAACP,KAAK,CAACzF,KAAK,CAAmC;EACnF,IAAI,CAACC,OAAO,EAAE;IACZ,OAAO,OAAOzC,MAAM,CAACoJ,QAAQ,CAAC,iCAAiCnB,KAAK,CAACzF,KAAK,GAAG,CAAC;EAChF;EAEA,MAAM+E,aAAa,GAAG5G,MAAM,CAAC8G,mBAAmB,CAAChF,OAAO,CAACD,KAAK,CAACkF,cAAc,CAAC;EAC9E,MAAM2B,gBAAgB,GAA8C,IAAIN,KAAK,CAACI,SAAS,CAACG,MAAM,CAAC;EAC/F,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGJ,SAAS,CAACG,MAAM,EAAEC,CAAC,EAAE,EAAE;IACzCF,gBAAgB,CAACE,CAAC,CAAC,GAAG;MACpBtB,KAAK,EAAEkB,SAAS,CAACI,CAAC,CAAC;MACnB/B,OAAO,EAAE,OAAOD,aAAa,CAAC4B,SAAS,CAACI,CAAC,CAAC,CAAC/B,OAAO,CAAC,CAAC5C,IAAI,CACtD5E,MAAM,CAAC2H,aAAa,CAAEC,KAAK,IAAK7H,OAAO,CAAC8H,KAAK,CAACpF,OAAO,CAACgE,OAAO,EAAEmB,KAAK,CAAC,CAAC;KAEzE;EACH;EAEA,OAAOL,aAAa,CAACU,KAAK,CAACT,OAAO,CAAC,CAAC5C,IAAI,CACtC5E,MAAM,CAACwJ,OAAO,CAAEhC,OAAO,IACrB/E,OAAO,CAACA,OAAO,CAAC;IACdgH,OAAO,EAAEnH,OAAO,CAACmH,OAAO;IACxBjC,OAAO;IACPS,KAAK;IACLkB,SAAS,EAAEE;GACZ,CAAC,CACH,EACDrJ,MAAM,CAAC0J,cAAc,CAAC3F,QAAQ,EAAEzB,OAAO,CAACnC,QAAQ,CAAC,EACjDH,MAAM,CAAC2H,aAAa,CAAEC,KAAK,IAAK7H,OAAO,CAAC8H,KAAK,CAACpF,OAAO,CAACgE,OAAO,EAAEmB,KAAK,CAAC,CAAC,EACtE5H,MAAM,CAACoD,MAAM,CACP;EAER,MAAMQ,IAAI,GAAGtB,OAAO,CAACH,cAAc,CAAC8F,KAAK,CAACzF,KAAK,CAAC;EAChD,IAAIoB,IAAI,EAAE;IACR,KAAK,MAAM+F,GAAG,IAAI/F,IAAI,EAAE;MACtBtB,OAAO,CAACsH,UAAU,CAACC,gBAAgB,CAAC;QAClC,CAACF,GAAG,GAAG,CAAC1B,KAAK,CAACG,UAAU;OACzB,CAAC;IACJ;EACF;AACF,CAAC,EACDpI,MAAM,CAAC8J,UAAU,CAAC9J,MAAM,CAAC+J,QAAQ,CAAC,EAClC,CAACvI,MAAM,EAAE;EAAEyG;AAAK,CAAE,KAChBjI,MAAM,CAACgK,YAAY,CAACxI,MAAM,EAAE;EAC1B,GAAGc,OAAO,CAAC2H,cAAc;EACzBC,OAAO,EAAEjC,KAAK,CAACkC;CAChB,CAAC,CACL;AAEH,MAAMrI,IAAI,gBAAG9B,MAAM,CAACyB,GAAG,CAAC,aAAS;EAC/B,MAAMgI,OAAO,GAAG,OAAOlF,cAAc;EACrC,MAAMpE,QAAQ,GAAG,OAAO4D,QAAQ;EAChC,MAAMqG,OAAO,GAAG,OAAOpJ,YAAY;EACnC,MAAM8F,QAAQ,GAAG,OAAOxF,QAAQ;EAEhC,MAAMsI,UAAU,GAAG,OAAO/I,UAAU;EACpC,MAAMwJ,gBAAgB,GAAGnB,oBAAoB,CAAC;IAC5CxH,QAAQ,EAAEoF,QAAQ,CAACpF,QAAQ;IAC3B+H,OAAO;IACPtJ,QAAQ;IACRyJ,UAAU;IACVzH,cAAc,EAAE2E,QAAQ,CAAC3E,cAAc;IACvC8H,cAAc,EAAE;MACdK,OAAO,EAAE,UAAU;MACnB9I,MAAM,EAAE;;GAEX,CAAC;EAEF,MAAM+I,2BAA2B,GAAInD,OAA6B,IAChEpH,MAAM,CAAC2C,IAAI,CAAC,MAAK;IACf,KAAK,MAAMsF,KAAK,IAAIb,OAAO,EAAE;MAC3B,MAAMxD,IAAI,GAAGkD,QAAQ,CAAC3E,cAAc,CAAC8F,KAAK,CAACzF,KAAK,CAAC;MACjD,IAAI,CAACoB,IAAI,EAAE;QACT;MACF;MACA,KAAK,MAAM+F,GAAG,IAAI/F,IAAI,EAAE;QACtBgG,UAAU,CAACC,gBAAgB,CAAC;UAC1B,CAACF,GAAG,GAAG,CAAC1B,KAAK,CAACG,UAAU;SACzB,CAAC;MACJ;IACF;EACF,CAAC,CAAC;EAEJ,MAAMoC,SAAS,GAAGxK,MAAM,CAACmH,UAAU,CACjC,WAAUnE,MAAiC;IACzC,MAAMyH,aAAa,GAAG,OAAOL,OAAO,CAACM,kBAAkB,CAAC1H,MAAM,CAACG,EAAE,CAAC;IAElE,OAAOnD,MAAM,CAACyB,GAAG,CAAC,aAAS;MACzB,MAAMkJ,OAAO,GAAG,OAAO3H,MAAM,CAAC2H,OAAO,CAAC;QAAExK,QAAQ;QAAEsK,aAAa;QAAEhB;MAAO,CAAE,CAAC;MAC3E,OAAO,IAAI,EAAE;QACX,MAAMrC,OAAO,GAAG,OAAO5G,KAAK,CAACoK,OAAO,CAACD,OAAO,CAAC;QAC7C,OAAOP,OAAO,CAACS,eAAe,CAAC;UAC7BC,QAAQ,EAAE9H,MAAM,CAACG,EAAE;UACnBiE,OAAO,EAAEA,OAAO,CAAC2D,IAAI,EAAE;UACvBC,OAAO,EAAElE,QAAQ,CAAClF,UAAU,CAACqJ,IAAI,GAAG,CAAC,GACjCjL,MAAM,CAACmH,UAAU,CAAC,WAAU+D,aAAa;YACzC,MAAMC,YAAY,GAAiB,EAAE;YACrC,MAAMC,WAAW,GAAG,IAAIzJ,GAAG,EAMxB;YAEH,KAAK,IAAI4H,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG2B,aAAa,CAAC5B,MAAM,EAAEC,CAAC,EAAE,EAAE;cAC7C,MAAM8B,WAAW,GAAGH,aAAa,CAAC3B,CAAC,CAAC;cACpC,MAAMtB,KAAK,GAAGoD,WAAW,CAACpD,KAAK;cAC/B,MAAMnF,SAAS,GAAGgE,QAAQ,CAAClF,UAAU,CAAC4G,GAAG,CAACP,KAAK,CAACzF,KAAK,CAAC;cACtD,IAAI,CAACM,SAAS,EAAE;gBACdqI,YAAY,CAACxC,IAAI,CAACV,KAAK,CAAC;gBACxB;cACF;cACA,IAAIqD,GAAG,GAAGF,WAAW,CAAC5C,GAAG,CAAC1F,SAAS,CAACtB,MAAM,CAAC;cAC3C,IAAI,CAAC8J,GAAG,EAAE;gBACRA,GAAG,GAAG,EAAE;gBACRF,WAAW,CAAC7I,GAAG,CAACO,SAAS,CAACtB,MAAM,EAAE8J,GAAG,CAAC;cACxC;cACAA,GAAG,CAAC3C,IAAI,CAACV,KAAK,CAAC;YACjB;YAEA,KAAK,MAAM,CAAC+C,OAAO,EAAE5D,OAAO,CAAC,IAAIgE,WAAW,EAAE;cAC5C,OAAOJ,OAAO,CAAC;gBACb5D,OAAO;gBACPC,KAAKA,CAACY,KAAK;kBACT,OAAOjI,MAAM,CAAC2C,IAAI,CAAC,MAAK;oBACtBwI,YAAY,CAACxC,IAAI,CAACV,KAAK,CAAC;kBAC1B,CAAC,CAAC;gBACJ;eACD,CAAC;YACJ;YAEA,OAAOkD,YAAY,CAACI,IAAI,CAACxK,KAAK,CAACyK,KAAK,CAAC;UACvC,CAAC,CAAC,GACAC,SAAS;UACbjK,MAAM,EAAE6I;SACT,CAAC,CAACzF,IAAI,CACL5E,MAAM,CAAC0L,GAAG,CAAC,CAAC;UAAEC;QAAgB,CAAE,KAAKpB,2BAA2B,CAACoB,gBAAgB,CAAC,CAAC,EACnFvB,OAAO,CAACwB,QAAQ,CAACnC,OAAO,CAAC,CAC1B;MACH;IACF,CAAC,CAAC,CAAC7E,IAAI,CACL5E,MAAM,CAAC6L,MAAM,EACb7L,MAAM,CAAC8J,UAAU,CAAC9J,MAAM,CAAC+J,QAAQ,CAAC,EAClC/J,MAAM,CAAC8L,MAAM,CACXpL,QAAQ,CAACqL,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAACnH,IAAI,CACjClE,QAAQ,CAACsL,MAAM,CAACtL,QAAQ,CAACuL,MAAM,CAAC;MAAEC,OAAO,EAAE;IAAE,CAAE,CAAC,CAAC,CAClD,CACF,EACDlM,MAAM,CAACgK,YAAY,CAAC;MAClBM,OAAO,EAAE,UAAU;MACnB9I,MAAM,EAAE;KACT,CAAC,EACFxB,MAAM,CAACmM,UAAU,CAClB;IAED,MAAM9E,KAAK,GAAG+C,OAAO,CAACgC,oBAAoB,CAACpJ,MAAM,CAACG,EAAE,EAAGiE,OAAO,IAAKpE,MAAM,CAACqE,KAAK,CAAC;MAAElH,QAAQ;MAAEiH,OAAO;MAAEqC;IAAO,CAAE,CAAC,CAAC;IAChH,OAAOzJ,MAAM,CAACqM,YAAY,CAAC,MAAMrM,MAAM,CAACsM,MAAM,CAACjF,KAAK,CAAC,CAAC;IACtD,OAAOA,KAAK;IACZ,MAAMkF,UAAU,GAAG,OAAOnC,OAAO,CAACO,OAAO;IACzC,OAAO,OAAOpK,MAAM,CAACqK,OAAO,CAAC2B,UAAU,CAAC,CAAC3H,IAAI,CAC3C5E,MAAM,CAACwM,OAAO,CAACnF,KAAK,CAAC,EACrBrH,MAAM,CAAC8J,UAAU,CAAC9J,MAAM,CAAC+J,QAAQ,CAAC,EAClC/J,MAAM,CAACyM,OAAO,CACf;EACH,CAAC,EACDzM,MAAM,CAAC6L,MAAM,EACb7L,MAAM,CAAC0J,cAAc,CAAC3F,QAAQ,EAAE5D,QAAQ,CAAC,EACzCH,MAAM,CAAC8H,KAAK,CACb;EAED,MAAM4E,YAAY,GAAG1M,MAAM,CAACmH,UAAU,CAAC,WAAU1E,OAA2B,EAAEH,OAI7E;IACC,MAAMkF,OAAO,GAAG,OAAO7G,MAAM,CAACwH,mBAAmB,CAAC1F,OAAO,CAACD,KAAK,CAACkF,cAAc,CAAC,CAACpF,OAAO,CAACkF,OAAO,CAAC,CAAC5C,IAAI,CACnG5E,MAAM,CAAC8H,KAAK,CACb;IACD,OAAO,OAAOsC,OAAO,CAACwB,QAAQ,CAACnC,OAAO,CAAC,CAACW,OAAO,CAAC/C,KAAK,CAAC;MACpD7E,KAAK,EAAEF,OAAO,CAACE,KAAK;MACpB4F,UAAU,EAAE3F,OAAO,CAACD,KAAK,CAAC4F,UAAU,CAAC9F,OAAO,CAACkF,OAAgB,CAAC;MAC9DA,OAAO;MACPhG,MAAM,EAAGyG,KAAK,IACZxF,OAAO,CAACA,OAAO,CAAC;QACdgH,OAAO;QACPjC,OAAO,EAAElF,OAAO,CAACkF,OAAO;QACxBS,KAAK;QACLkB,SAAS,EAAE;OACZ,CAAC,CAACvE,IAAI,CACL5E,MAAM,CAAC2H,aAAa,CAAEC,KAAK,IAAK7H,OAAO,CAAC8H,KAAK,CAACpF,OAAO,CAACgE,OAAO,EAAEmB,KAAK,CAAC,CAAC,EACtE5H,MAAM,CAAC0J,cAAc,CAAC3F,QAAQ,EAAE5D,QAAQ,CAAC,EACzCH,MAAM,CAAC0L,GAAG,CAAC,MAAK;QACd,IAAI5E,QAAQ,CAAC3E,cAAc,CAAC8F,KAAK,CAACzF,KAAK,CAAC,EAAE;UACxC,KAAK,MAAMmH,GAAG,IAAI7C,QAAQ,CAAC3E,cAAc,CAAC8F,KAAK,CAACzF,KAAK,CAAC,EAAE;YACtDoH,UAAU,CAACC,gBAAgB,CAAC;cAC1B,CAACF,GAAG,GAAG,CAAC1B,KAAK,CAACG,UAAU;aACzB,CAAC;UACJ;QACF;QACA,OAAOpI,MAAM,CAACkC,IAAI;MACpB,CAAC,CAAC;KAEP,CAAC,CAAC;EACL,CAAC,CAAC;EAEF,MAAMyK,aAAa,GAAIrK,OAItB,IAAI;IACH,MAAMG,OAAO,GAAGqE,QAAQ,CAACpF,QAAQ,CAAC8G,GAAG,CAAClG,OAAO,CAACE,KAAK,CAAmC;IACtF,IAAIC,OAAO,KAAKgJ,SAAS,EAAE;MACzB,OAAOzL,MAAM,CAAC4M,GAAG,CAAC,iCAAiCtK,OAAO,CAACE,KAAK,GAAG,CAAC;IACtE;IACA,OAAOkK,YAAY,CAACjK,OAAO,EAAEH,OAAO,CAAC;EACvC,CAAC;EAED,OAAOwE,QAAQ,CAACtD,YAAY,CAACgH,SAAS,CAAC;EAEvC,OAAOpJ,QAAQ,CAACgB,EAAE,CAAC;IACjBiF,KAAK,EAAEsF,aAA6C;IACpDvF,OAAO,EAAEgD,OAAO,CAAChD,OAAO;IACxByF,OAAO,EAAEzC,OAAO,CAACyC;GAClB,CAAC;AACJ,CAAC,CAAC;AAEF;;;;AAIA,OAAO,MAAMC,aAAa,gBAAqE1M,KAAK,CAACoB,MAAM,CACzGJ,QAAQ,EACRU,IAAI,CACL,CAAC8C,IAAI,cACJxE,KAAK,CAAC2M,OAAO,CAACjM,eAAe,CAACkM,KAAK,CAAC,eACpC5M,KAAK,CAAC6M,YAAY,CAAC1L,aAAa,CAAC,CAClC;AAED;;;;AAIA,OAAO,MAAMyL,KAAK,GAAGA,CACnBE,OAA+B,EAC/BF,KAAsD,KAMtDA,KAAK,CAACpI,IAAI,CACRxE,KAAK,CAAC6M,YAAY,CAACH,aAAa,CAAC,CAClC;AAEH;;;;AAIA,OAAO,MAAMK,UAAU,GACrB/I,MAA8B,IAY9BpE,MAAM,CAACyB,GAAG,CAAC,aAAS;EAClB,MAAM2L,GAAG,GAAG,OAAOhM,QAAQ;EAE3B,OAAO,CACLoB,KAAU,EACVgF,OAA6D,KAI1D4F,GAAG,CAAC/F,KAAK,CAAC;IAAEjD,MAAM;IAAE5B,KAAK;IAAEgF;EAAO,CAAE,CAAC;AAC5C,CAAC,CAAC","ignoreList":[]}
@@ -5,6 +5,7 @@ import * as Context from "../../Context.ts";
5
5
  import * as Effect from "../../Effect.ts";
6
6
  import * as Layer from "../../Layer.ts";
7
7
  import * as Schema from "../../Schema.ts";
8
+ import * as Transferable from "../workers/Transferable.ts";
8
9
  import { Entry, RemoteEntry } from "./EventJournal.ts";
9
10
  import type { Identity } from "./EventLog.ts";
10
11
  /**
@@ -12,8 +13,8 @@ import type { Identity } from "./EventLog.ts";
12
13
  * @category models
13
14
  */
14
15
  export declare const EncryptedEntry: Schema.Struct<{
15
- readonly entryId: Schema.brand<Schema.Uint8Array, "effect/eventlog/EventJournal/EntryId">;
16
- readonly encryptedEntry: Schema.Uint8Array;
16
+ readonly entryId: Schema.brand<Schema.instanceOf<Uint8Array<ArrayBuffer>, Uint8Array<ArrayBuffer>>, "effect/eventlog/EventJournal/EntryId">;
17
+ readonly encryptedEntry: Transferable.Transferable<Schema.instanceOf<Uint8Array<ArrayBuffer>, Uint8Array<ArrayBuffer>>>;
17
18
  }>;
18
19
  /**
19
20
  * @since 4.0.0
@@ -27,18 +28,19 @@ export interface EncryptedRemoteEntry extends Schema.Schema.Type<typeof Encrypte
27
28
  */
28
29
  export declare const EncryptedRemoteEntry: Schema.Struct<{
29
30
  readonly sequence: Schema.Number;
30
- readonly iv: Schema.Uint8Array;
31
- readonly entryId: Schema.brand<Schema.Uint8Array, "effect/eventlog/EventJournal/EntryId">;
32
- readonly encryptedEntry: Schema.Uint8Array;
31
+ readonly iv: Transferable.Transferable<Schema.instanceOf<Uint8Array<ArrayBuffer>, Uint8Array<ArrayBuffer>>>;
32
+ readonly entryId: Schema.brand<Schema.instanceOf<Uint8Array<ArrayBuffer>, Uint8Array<ArrayBuffer>>, "effect/eventlog/EventJournal/EntryId">;
33
+ readonly encryptedEntry: Transferable.Transferable<Schema.instanceOf<Uint8Array<ArrayBuffer>, Uint8Array<ArrayBuffer>>>;
33
34
  }>;
34
35
  declare const EventLogEncryption_base: Context.ServiceClass<EventLogEncryption, "effect/eventlog/EventLogEncryption", {
35
36
  readonly encrypt: (identity: Identity["Service"], entries: ReadonlyArray<Entry>) => Effect.Effect<{
36
- readonly iv: Uint8Array;
37
- readonly encryptedEntries: ReadonlyArray<Uint8Array>;
37
+ readonly iv: Uint8Array<ArrayBuffer>;
38
+ readonly encryptedEntries: ReadonlyArray<Uint8Array<ArrayBuffer>>;
38
39
  }>;
39
40
  readonly decrypt: (identity: Identity["Service"], entries: ReadonlyArray<EncryptedRemoteEntry>) => Effect.Effect<Array<RemoteEntry>>;
40
41
  readonly sha256String: (data: Uint8Array) => Effect.Effect<string>;
41
42
  readonly sha256: (data: Uint8Array) => Effect.Effect<Uint8Array>;
43
+ readonly generateIdentity: Effect.Effect<Identity["Service"]>;
42
44
  }>;
43
45
  /**
44
46
  * @since 4.0.0
@@ -1 +1 @@
1
- {"version":3,"file":"EventLogEncryption.d.ts","sourceRoot":"","sources":["../../../src/unstable/eventlog/EventLogEncryption.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAA;AAC3C,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAA;AACzC,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAA;AAEvC,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAA;AACzC,OAAO,EAAE,KAAK,EAAW,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAE7C;;;GAGG;AACH,eAAO,MAAM,cAAc;;;EAGzB,CAAA;AAEF;;;GAGG;AACH,MAAM,WAAW,oBAAqB,SAAQ,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,oBAAoB,CAAC;CAAG;AAEhG;;;GAGG;AACH,eAAO,MAAM,oBAAoB;;;;;EAK/B,CAAA;;sBAekB,CAChB,QAAQ,EAAE,QAAQ,CAAC,SAAS,CAAC,EAC7B,OAAO,EAAE,aAAa,CAAC,KAAK,CAAC,KAC1B,MAAM,CAAC,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAA;QACvB,QAAQ,CAAC,gBAAgB,EAAE,aAAa,CAAC,UAAU,CAAC,CAAA;KACrD,CAAC;sBACgB,CAChB,QAAQ,EAAE,QAAQ,CAAC,SAAS,CAAC,EAC7B,OAAO,EAAE,aAAa,CAAC,oBAAoB,CAAC,KACzC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;2BACf,CAAC,IAAI,EAAE,UAAU,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;qBACjD,CAAC,IAAI,EAAE,UAAU,KAAK,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC;;AAjBlE;;;GAGG;AACH,qBAAa,kBAAmB,SAAQ,uBAcE;CAAG;AAE7C;;;GAGG;AACH,eAAO,MAAM,oBAAoB,GAAI,QAAQ,MAAM,KAAG,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,SAAS,CAAC,CA4E7F,CAAA;AAEJ;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,KAAK,CAAC,kBAAkB,CAGvD,CAAA"}
1
+ {"version":3,"file":"EventLogEncryption.d.ts","sourceRoot":"","sources":["../../../src/unstable/eventlog/EventLogEncryption.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAA;AAC3C,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAA;AACzC,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAA;AAEvC,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAA;AACzC,OAAO,KAAK,YAAY,MAAM,4BAA4B,CAAA;AAC1D,OAAO,EAAE,KAAK,EAAW,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAG7C;;;GAGG;AACH,eAAO,MAAM,cAAc;;;EAGzB,CAAA;AAEF;;;GAGG;AACH,MAAM,WAAW,oBAAqB,SAAQ,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,oBAAoB,CAAC;CAAG;AAEhG;;;GAGG;AACH,eAAO,MAAM,oBAAoB;;;;;EAK/B,CAAA;;sBAekB,CAChB,QAAQ,EAAE,QAAQ,CAAC,SAAS,CAAC,EAC7B,OAAO,EAAE,aAAa,CAAC,KAAK,CAAC,KAC1B,MAAM,CAAC,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAC,WAAW,CAAC,CAAA;QACpC,QAAQ,CAAC,gBAAgB,EAAE,aAAa,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAA;KAClE,CAAC;sBACgB,CAChB,QAAQ,EAAE,QAAQ,CAAC,SAAS,CAAC,EAC7B,OAAO,EAAE,aAAa,CAAC,oBAAoB,CAAC,KACzC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;2BACf,CAAC,IAAI,EAAE,UAAU,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;qBACjD,CAAC,IAAI,EAAE,UAAU,KAAK,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC;+BACrC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;;AAlB/D;;;GAGG;AACH,qBAAa,kBAAmB,SAAQ,uBAeE;CAAG;AAE7C;;;GAGG;AACH,eAAO,MAAM,oBAAoB,GAAI,QAAQ,MAAM,KAAG,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,SAAS,CAAC,CA2D7F,CAAA;AAEJ;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,KAAK,CAAC,kBAAkB,CAGvD,CAAA"}