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
@@ -6,14 +6,16 @@ import * as Effect from "../../Effect.js";
6
6
  import * as Layer from "../../Layer.js";
7
7
  import * as Redacted from "../../Redacted.js";
8
8
  import * as Schema from "../../Schema.js";
9
+ import * as Transferable from "../workers/Transferable.js";
9
10
  import { Entry, EntryId, RemoteEntry } from "./EventJournal.js";
11
+ import { makeGetIdentityRootSecretMaterial } from "./internal/identityRootSecretDerivation.js";
10
12
  /**
11
13
  * @since 4.0.0
12
14
  * @category models
13
15
  */
14
16
  export const EncryptedEntry = /*#__PURE__*/Schema.Struct({
15
17
  entryId: EntryId,
16
- encryptedEntry: Schema.Uint8Array
18
+ encryptedEntry: Transferable.Uint8Array
17
19
  });
18
20
  /**
19
21
  * @since 4.0.0
@@ -21,9 +23,9 @@ export const EncryptedEntry = /*#__PURE__*/Schema.Struct({
21
23
  */
22
24
  export const EncryptedRemoteEntry = /*#__PURE__*/Schema.Struct({
23
25
  sequence: Schema.Number,
24
- iv: Schema.Uint8Array,
26
+ iv: Transferable.Uint8Array,
25
27
  entryId: EntryId,
26
- encryptedEntry: Schema.Uint8Array
28
+ encryptedEntry: Transferable.Uint8Array
27
29
  });
28
30
  const toArrayBuffer = data => {
29
31
  const buffer = new ArrayBuffer(data.byteLength);
@@ -41,19 +43,11 @@ export class EventLogEncryption extends /*#__PURE__*/Context.Service()("effect/e
41
43
  * @category encryption
42
44
  */
43
45
  export const makeEncryptionSubtle = crypto => Effect.sync(() => {
44
- const keyCache = new WeakMap();
45
- const getKey = identity => Effect.suspend(() => {
46
- if (keyCache.has(identity)) {
47
- return Effect.succeed(keyCache.get(identity));
48
- }
49
- return Effect.promise(() => crypto.subtle.importKey("raw", toArrayBuffer(Redacted.value(identity.privateKey)), "AES-GCM", true, ["encrypt", "decrypt"])).pipe(Effect.tap(key => Effect.sync(() => {
50
- keyCache.set(identity, key);
51
- })));
52
- });
46
+ const getIdentityRootSecretMaterial = makeGetIdentityRootSecretMaterial(crypto);
53
47
  return EventLogEncryption.of({
54
48
  encrypt: Effect.fnUntraced(function* (identity, entries) {
55
49
  const data = yield* Effect.orDie(Entry.encodeArray(entries));
56
- const key = yield* getKey(identity);
50
+ const key = (yield* getIdentityRootSecretMaterial(identity)).encryptionKey;
57
51
  const iv = crypto.getRandomValues(new Uint8Array(12));
58
52
  const encryptedEntries = yield* Effect.promise(() => Promise.all(data.map(entry => crypto.subtle.encrypt({
59
53
  name: "AES-GCM",
@@ -66,7 +60,7 @@ export const makeEncryptionSubtle = crypto => Effect.sync(() => {
66
60
  };
67
61
  }),
68
62
  decrypt: Effect.fnUntraced(function* (identity, entries) {
69
- const key = yield* getKey(identity);
63
+ const key = (yield* getIdentityRootSecretMaterial(identity)).encryptionKey;
70
64
  const decryptedData = (yield* Effect.promise(() => Promise.all(entries.map(data => crypto.subtle.decrypt({
71
65
  name: "AES-GCM",
72
66
  iv: toBufferSource(data.iv),
@@ -83,7 +77,11 @@ export const makeEncryptionSubtle = crypto => Effect.sync(() => {
83
77
  const hashArray = Array.from(new Uint8Array(hash));
84
78
  const hashHex = hashArray.map(bytes => bytes.toString(16).padStart(2, "0")).join("");
85
79
  return hashHex;
86
- })
80
+ }),
81
+ generateIdentity: Effect.sync(() => ({
82
+ publicKey: crypto.randomUUID(),
83
+ privateKey: Redacted.make(crypto.getRandomValues(new Uint8Array(32)))
84
+ }))
87
85
  });
88
86
  });
89
87
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"EventLogEncryption.js","names":["Context","Effect","Layer","Redacted","Schema","Entry","EntryId","RemoteEntry","EncryptedEntry","Struct","entryId","encryptedEntry","Uint8Array","EncryptedRemoteEntry","sequence","Number","iv","toArrayBuffer","data","buffer","ArrayBuffer","byteLength","set","toBufferSource","EventLogEncryption","Service","makeEncryptionSubtle","crypto","sync","keyCache","WeakMap","getKey","identity","suspend","has","succeed","get","promise","subtle","importKey","value","privateKey","pipe","tap","key","of","encrypt","fnUntraced","entries","orDie","encodeArray","getRandomValues","encryptedEntries","Promise","all","map","entry","name","tagLength","decrypt","decryptedData","decoded","decodeArray","index","remoteSequence","sha256","digest","hash","sha256String","hashArray","Array","from","hashHex","bytes","toString","padStart","join","layerSubtle","effect","globalThis"],"sources":["../../../src/unstable/eventlog/EventLogEncryption.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"EventLogEncryption.js","names":["Context","Effect","Layer","Redacted","Schema","Transferable","Entry","EntryId","RemoteEntry","makeGetIdentityRootSecretMaterial","EncryptedEntry","Struct","entryId","encryptedEntry","Uint8Array","EncryptedRemoteEntry","sequence","Number","iv","toArrayBuffer","data","buffer","ArrayBuffer","byteLength","set","toBufferSource","EventLogEncryption","Service","makeEncryptionSubtle","crypto","sync","getIdentityRootSecretMaterial","of","encrypt","fnUntraced","identity","entries","orDie","encodeArray","key","encryptionKey","getRandomValues","encryptedEntries","promise","Promise","all","map","entry","subtle","name","tagLength","decrypt","decryptedData","decoded","decodeArray","index","remoteSequence","sha256","digest","pipe","hash","sha256String","hashArray","Array","from","hashHex","bytes","toString","padStart","join","generateIdentity","publicKey","randomUUID","privateKey","make","layerSubtle","effect","globalThis"],"sources":["../../../src/unstable/eventlog/EventLogEncryption.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,228 @@
1
+ /**
2
+ * @since 4.0.0
3
+ */
4
+ import type { NonEmptyReadonlyArray } from "../../Array.ts";
5
+ import type { Brand } from "../../Brand.ts";
6
+ import * as Schema from "../../Schema.ts";
7
+ import * as Msgpack from "../encoding/Msgpack.ts";
8
+ import * as Rpc from "../rpc/Rpc.ts";
9
+ import * as RpcGroup from "../rpc/RpcGroup.ts";
10
+ import * as RpcMiddleware from "../rpc/RpcMiddleware.ts";
11
+ import * as Transferable from "../workers/Transferable.ts";
12
+ import { Entry, RemoteEntry } from "./EventJournal.ts";
13
+ import type { Identity } from "./EventLog.ts";
14
+ /**
15
+ * @since 4.0.0
16
+ * @category StoreId
17
+ */
18
+ export type StoreIdTypeId = "effect/eventlog/EventLog/StoreId";
19
+ /**
20
+ * @since 4.0.0
21
+ * @category StoreId
22
+ */
23
+ export declare const StoreIdTypeId: StoreIdTypeId;
24
+ /**
25
+ * @since 4.0.0
26
+ * @category StoreId
27
+ */
28
+ export type StoreId = string & Brand<StoreIdTypeId>;
29
+ /**
30
+ * @since 4.0.0
31
+ * @category StoreId
32
+ */
33
+ export declare const StoreId: Schema.brand<Schema.String, "effect/eventlog/EventLog/StoreId">;
34
+ declare const EventLogProtocolError_base: Schema.Class<EventLogProtocolError, Schema.TaggedStruct<"EventLogProtocolError", {
35
+ readonly requestTag: Schema.String;
36
+ readonly publicKey: Schema.optional<Schema.String>;
37
+ readonly storeId: Schema.optional<Schema.brand<Schema.String, "effect/eventlog/EventLog/StoreId">>;
38
+ readonly code: Schema.Literals<readonly ["Unauthorized", "Forbidden", "NotFound", "InvalidRequest", "InternalServerError"]>;
39
+ readonly message: Schema.String;
40
+ }>, import("../../Cause.ts").YieldableError>;
41
+ /**
42
+ * @since 4.0.0
43
+ * @category protocol
44
+ */
45
+ export declare class EventLogProtocolError extends EventLogProtocolError_base {
46
+ }
47
+ declare const EventLogAuthentication_base: RpcMiddleware.ServiceClass<EventLogAuthentication, "effect/eventlog/EventLogMessage/EventLogAuthentication", Identity, typeof EventLogProtocolError, never, never, false>;
48
+ /**
49
+ * @since 4.0.0
50
+ * @category Middleware
51
+ */
52
+ export declare class EventLogAuthentication extends EventLogAuthentication_base {
53
+ }
54
+ declare const HelloResponse_base: Schema.Class<HelloResponse, Schema.Struct<{
55
+ readonly remoteId: Schema.brand<Schema.Uint8Array, "effect/eventlog/EventJournal/RemoteId">;
56
+ readonly challenge: Transferable.Transferable<Schema.instanceOf<Uint8Array<ArrayBuffer>, Uint8Array<ArrayBuffer>>>;
57
+ }>, {}>;
58
+ /**
59
+ * @since 4.0.0
60
+ * @category protocol
61
+ */
62
+ export declare class HelloResponse extends HelloResponse_base {
63
+ }
64
+ declare const HelloRpc_base: Rpc.Rpc<"EventLog.Hello", Schema.Void, typeof HelloResponse, Schema.Never, never, never>;
65
+ /**
66
+ * @since 4.0.0
67
+ * @category protocol
68
+ */
69
+ export declare class HelloRpc extends HelloRpc_base {
70
+ }
71
+ declare const Authenticate_base: Schema.Class<Authenticate, Schema.Struct<{
72
+ readonly publicKey: Schema.String;
73
+ readonly signingPublicKey: Transferable.Transferable<Schema.instanceOf<Uint8Array<ArrayBuffer>, Uint8Array<ArrayBuffer>>>;
74
+ readonly signature: Transferable.Transferable<Schema.instanceOf<Uint8Array<ArrayBuffer>, Uint8Array<ArrayBuffer>>>;
75
+ readonly algorithm: Schema.Literal<"Ed25519">;
76
+ }>, {}>;
77
+ /**
78
+ * @since 4.0.0
79
+ * @category protocol
80
+ */
81
+ export declare class Authenticate extends Authenticate_base {
82
+ }
83
+ declare const AuthenticateRpc_base: Rpc.Rpc<"EventLog.Authenticate", typeof Authenticate, Schema.Void, typeof EventLogProtocolError, never, never>;
84
+ /**
85
+ * @since 4.0.0
86
+ * @category protocol
87
+ */
88
+ export declare class AuthenticateRpc extends AuthenticateRpc_base {
89
+ }
90
+ declare const SingleMessage_base: Schema.Class<SingleMessage, Schema.TaggedStruct<"Single", {
91
+ readonly data: Transferable.Transferable<Schema.instanceOf<Uint8Array<ArrayBuffer>, Uint8Array<ArrayBuffer>>>;
92
+ }>, {}>;
93
+ /**
94
+ * @since 4.0.0
95
+ * @category protocol
96
+ */
97
+ export declare class SingleMessage extends SingleMessage_base {
98
+ }
99
+ declare const ChunkedMessage_base: Schema.Class<ChunkedMessage, Schema.TaggedStruct<"Chunked", {
100
+ readonly id: Schema.Number;
101
+ readonly part: Schema.Tuple<readonly [Schema.Number, Schema.Number]>;
102
+ readonly data: Transferable.Transferable<Schema.instanceOf<Uint8Array<ArrayBuffer>, Uint8Array<ArrayBuffer>>>;
103
+ }>, {}>;
104
+ /**
105
+ * @since 4.0.0
106
+ * @category protocol
107
+ */
108
+ export declare class ChunkedMessage extends ChunkedMessage_base {
109
+ static chunkSize: number;
110
+ static initialJoinState(): Map<number, {
111
+ readonly parts: Array<Uint8Array>;
112
+ count: number;
113
+ bytes: number;
114
+ }>;
115
+ /**
116
+ * @since 4.0.0
117
+ */
118
+ static split(id: number, data: Uint8Array): NonEmptyReadonlyArray<ChunkedMessage>;
119
+ /**
120
+ * @since 4.0.0
121
+ */
122
+ static join(map: Map<number, {
123
+ readonly parts: Array<Uint8Array>;
124
+ count: number;
125
+ bytes: number;
126
+ }>, part: ChunkedMessage): Uint8Array<ArrayBuffer> | undefined;
127
+ }
128
+ declare const WriteChunkedRpc_base: Rpc.Rpc<"EventLog.WriteChunked", typeof ChunkedMessage, Schema.Void, typeof EventLogProtocolError, typeof EventLogAuthentication, never>;
129
+ /**
130
+ * @since 4.0.0
131
+ * @category protocol
132
+ */
133
+ export declare class WriteChunkedRpc extends WriteChunkedRpc_base {
134
+ }
135
+ declare const WriteEntries_base: Schema.Class<WriteEntries, Schema.Struct<{
136
+ readonly publicKey: Schema.String;
137
+ readonly storeId: Schema.brand<Schema.String, "effect/eventlog/EventLog/StoreId">;
138
+ readonly iv: Transferable.Transferable<Schema.instanceOf<Uint8Array<ArrayBuffer>, Uint8Array<ArrayBuffer>>>;
139
+ readonly encryptedEntries: Schema.$Array<Schema.Struct<{
140
+ readonly entryId: Schema.brand<Schema.instanceOf<Uint8Array<ArrayBuffer>, Uint8Array<ArrayBuffer>>, "effect/eventlog/EventJournal/EntryId">;
141
+ readonly encryptedEntry: Transferable.Transferable<Schema.instanceOf<Uint8Array<ArrayBuffer>, Uint8Array<ArrayBuffer>>>;
142
+ }>>;
143
+ }>, {}>;
144
+ /**
145
+ * @since 4.0.0
146
+ * @category protocol
147
+ */
148
+ export declare class WriteEntries extends WriteEntries_base {
149
+ static FromMsgpack: Msgpack.schema<typeof WriteEntries>;
150
+ static encode: (input: WriteEntries, options?: import("../../SchemaAST.ts").ParseOptions) => import("../../Effect.ts").Effect<Uint8Array<ArrayBuffer>, Schema.SchemaError, never>;
151
+ static decode: (input: Uint8Array<ArrayBuffer>, options?: import("../../SchemaAST.ts").ParseOptions) => import("../../Effect.ts").Effect<WriteEntries, Schema.SchemaError, never>;
152
+ get encoded(): import("../../Effect.ts").Effect<Uint8Array<ArrayBuffer>, Schema.SchemaError, never>;
153
+ }
154
+ declare const WriteEntriesUnencrypted_base: Schema.Class<WriteEntriesUnencrypted, Schema.Struct<{
155
+ readonly publicKey: Schema.String;
156
+ readonly storeId: Schema.brand<Schema.String, "effect/eventlog/EventLog/StoreId">;
157
+ readonly entries: Schema.$Array<typeof Entry>;
158
+ }>, {}>;
159
+ /**
160
+ * @since 4.0.0
161
+ * @category protocol
162
+ */
163
+ export declare class WriteEntriesUnencrypted extends WriteEntriesUnencrypted_base {
164
+ static FromMsgpack: Msgpack.schema<typeof WriteEntriesUnencrypted>;
165
+ static encode: (input: WriteEntriesUnencrypted, options?: import("../../SchemaAST.ts").ParseOptions) => import("../../Effect.ts").Effect<Uint8Array<ArrayBuffer>, Schema.SchemaError, never>;
166
+ static decode: (input: Uint8Array<ArrayBuffer>, options?: import("../../SchemaAST.ts").ParseOptions) => import("../../Effect.ts").Effect<WriteEntriesUnencrypted, Schema.SchemaError, never>;
167
+ get encoded(): import("../../Effect.ts").Effect<Uint8Array<ArrayBuffer>, Schema.SchemaError, never>;
168
+ }
169
+ declare const WriteSingleRpc_base: Rpc.Rpc<"EventLog.WriteSingle", Schema.Struct<{
170
+ data: Transferable.Transferable<Schema.instanceOf<Uint8Array<ArrayBuffer>, Uint8Array<ArrayBuffer>>>;
171
+ }>, Schema.Void, typeof EventLogProtocolError, typeof EventLogAuthentication, never>;
172
+ /**
173
+ * @since 4.0.0
174
+ * @category protocol
175
+ */
176
+ export declare class WriteSingleRpc extends WriteSingleRpc_base {
177
+ }
178
+ declare const ChangesRpc_base: Rpc.Rpc<"EventLog.Changes", Schema.Struct<{
179
+ publicKey: Schema.String;
180
+ storeId: Schema.brand<Schema.String, "effect/eventlog/EventLog/StoreId">;
181
+ startSequence: Schema.Number;
182
+ }>, import("../rpc/RpcSchema.ts").Stream<Schema.Union<readonly [typeof SingleMessage, typeof ChunkedMessage]>, typeof EventLogProtocolError>, Schema.Never, typeof EventLogAuthentication, never>;
183
+ /**
184
+ * @since 4.0.0
185
+ * @category protocol
186
+ */
187
+ export declare class ChangesRpc extends ChangesRpc_base {
188
+ static EncryptedFromMsgpack: Msgpack.schema<Schema.NonEmptyArray<Schema.Struct<{
189
+ readonly sequence: Schema.Number;
190
+ readonly iv: Transferable.Transferable<Schema.instanceOf<Uint8Array<ArrayBuffer>, Uint8Array<ArrayBuffer>>>;
191
+ readonly entryId: Schema.brand<Schema.instanceOf<Uint8Array<ArrayBuffer>, Uint8Array<ArrayBuffer>>, "effect/eventlog/EventJournal/EntryId">;
192
+ readonly encryptedEntry: Transferable.Transferable<Schema.instanceOf<Uint8Array<ArrayBuffer>, Uint8Array<ArrayBuffer>>>;
193
+ }>>>;
194
+ static UnencryptedFromMsgpack: Msgpack.schema<Schema.NonEmptyArray<typeof RemoteEntry>>;
195
+ static encodeEncrypted: (input: readonly [{
196
+ readonly sequence: number;
197
+ readonly entryId: Uint8Array<ArrayBuffer> & Brand<"effect/eventlog/EventJournal/EntryId">;
198
+ readonly encryptedEntry: Uint8Array<ArrayBuffer>;
199
+ readonly iv: Uint8Array<ArrayBuffer>;
200
+ }, ...{
201
+ readonly sequence: number;
202
+ readonly entryId: Uint8Array<ArrayBuffer> & Brand<"effect/eventlog/EventJournal/EntryId">;
203
+ readonly encryptedEntry: Uint8Array<ArrayBuffer>;
204
+ readonly iv: Uint8Array<ArrayBuffer>;
205
+ }[]], options?: import("../../SchemaAST.ts").ParseOptions) => import("../../Effect.ts").Effect<Uint8Array<ArrayBuffer>, Schema.SchemaError, never>;
206
+ static decodeEncrypted: (input: Uint8Array<ArrayBuffer>, options?: import("../../SchemaAST.ts").ParseOptions) => import("../../Effect.ts").Effect<readonly [{
207
+ readonly sequence: number;
208
+ readonly entryId: Uint8Array<ArrayBuffer> & Brand<"effect/eventlog/EventJournal/EntryId">;
209
+ readonly encryptedEntry: Uint8Array<ArrayBuffer>;
210
+ readonly iv: Uint8Array<ArrayBuffer>;
211
+ }, ...{
212
+ readonly sequence: number;
213
+ readonly entryId: Uint8Array<ArrayBuffer> & Brand<"effect/eventlog/EventJournal/EntryId">;
214
+ readonly encryptedEntry: Uint8Array<ArrayBuffer>;
215
+ readonly iv: Uint8Array<ArrayBuffer>;
216
+ }[]], Schema.SchemaError, never>;
217
+ static encodeUnencrypted: (input: readonly [RemoteEntry, ...RemoteEntry[]], options?: import("../../SchemaAST.ts").ParseOptions) => import("../../Effect.ts").Effect<Uint8Array<ArrayBuffer>, Schema.SchemaError, never>;
218
+ static decodeUnencrypted: (input: Uint8Array<ArrayBuffer>, options?: import("../../SchemaAST.ts").ParseOptions) => import("../../Effect.ts").Effect<readonly [RemoteEntry, ...RemoteEntry[]], Schema.SchemaError, never>;
219
+ }
220
+ declare const EventLogRemoteRpcs_base: RpcGroup.RpcGroup<typeof HelloRpc | typeof AuthenticateRpc | typeof WriteChunkedRpc | typeof WriteSingleRpc | typeof ChangesRpc>;
221
+ /**
222
+ * @since 4.0.0
223
+ * @category protocol
224
+ */
225
+ export declare class EventLogRemoteRpcs extends EventLogRemoteRpcs_base {
226
+ }
227
+ export {};
228
+ //# sourceMappingURL=EventLogMessage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EventLogMessage.d.ts","sourceRoot":"","sources":["../../../src/unstable/eventlog/EventLogMessage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,214 @@
1
+ import * as Schema from "../../Schema.js";
2
+ import * as Msgpack from "../encoding/Msgpack.js";
3
+ import * as Rpc from "../rpc/Rpc.js";
4
+ import * as RpcGroup from "../rpc/RpcGroup.js";
5
+ import * as RpcMiddleware from "../rpc/RpcMiddleware.js";
6
+ import * as Transferable from "../workers/Transferable.js";
7
+ import { Entry, RemoteEntry, RemoteId } from "./EventJournal.js";
8
+ import { EncryptedEntry, EncryptedRemoteEntry } from "./EventLogEncryption.js";
9
+ /**
10
+ * @since 4.0.0
11
+ * @category StoreId
12
+ */
13
+ export const StoreIdTypeId = "effect/eventlog/EventLog/StoreId";
14
+ /**
15
+ * @since 4.0.0
16
+ * @category StoreId
17
+ */
18
+ export const StoreId = /*#__PURE__*/Schema.String.pipe(/*#__PURE__*/Schema.brand(StoreIdTypeId));
19
+ /**
20
+ * @since 4.0.0
21
+ * @category protocol
22
+ */
23
+ export class EventLogProtocolError extends /*#__PURE__*/Schema.TaggedErrorClass("effect/eventlog/EventLogRemote/ProtocolError")("EventLogProtocolError", {
24
+ requestTag: Schema.String,
25
+ publicKey: /*#__PURE__*/Schema.optional(Schema.String),
26
+ storeId: /*#__PURE__*/Schema.optional(StoreId),
27
+ code: /*#__PURE__*/Schema.Literals(["Unauthorized", "Forbidden", "NotFound", "InvalidRequest", "InternalServerError"]),
28
+ message: Schema.String
29
+ }) {}
30
+ /**
31
+ * @since 4.0.0
32
+ * @category Middleware
33
+ */
34
+ export class EventLogAuthentication extends /*#__PURE__*/RpcMiddleware.Service()("effect/eventlog/EventLogMessage/EventLogAuthentication", {
35
+ error: EventLogProtocolError
36
+ }) {}
37
+ /**
38
+ * @since 4.0.0
39
+ * @category protocol
40
+ */
41
+ export class HelloResponse extends /*#__PURE__*/Schema.Class("effect/eventlog/EventLogRemote/HelloResponse")({
42
+ remoteId: RemoteId,
43
+ challenge: Transferable.Uint8Array
44
+ }) {}
45
+ /**
46
+ * @since 4.0.0
47
+ * @category protocol
48
+ */
49
+ export class HelloRpc extends /*#__PURE__*/Rpc.make("EventLog.Hello", {
50
+ success: HelloResponse
51
+ }) {}
52
+ /**
53
+ * @since 4.0.0
54
+ * @category protocol
55
+ */
56
+ export class Authenticate extends /*#__PURE__*/Schema.Class("effect/eventlog/EventLogRemote/Authenticate")({
57
+ publicKey: Schema.String,
58
+ signingPublicKey: Transferable.Uint8Array,
59
+ signature: Transferable.Uint8Array,
60
+ algorithm: /*#__PURE__*/Schema.Literal("Ed25519")
61
+ }) {}
62
+ /**
63
+ * @since 4.0.0
64
+ * @category protocol
65
+ */
66
+ export class AuthenticateRpc extends /*#__PURE__*/Rpc.make("EventLog.Authenticate", {
67
+ payload: Authenticate,
68
+ error: EventLogProtocolError
69
+ }) {}
70
+ /**
71
+ * @since 4.0.0
72
+ * @category protocol
73
+ */
74
+ export class SingleMessage extends /*#__PURE__*/Schema.TaggedClass("effect/eventlog/EventLogRemote/SingleMessage")("Single", {
75
+ data: Transferable.Uint8Array
76
+ }) {}
77
+ /**
78
+ * @since 4.0.0
79
+ * @category protocol
80
+ */
81
+ export class ChunkedMessage extends /*#__PURE__*/Schema.TaggedClass("effect/eventlog/EventLogRemote/ChunkedMessage")("Chunked", {
82
+ id: Schema.Number,
83
+ part: /*#__PURE__*/Schema.Tuple([Schema.Number, Schema.Number]),
84
+ data: Transferable.Uint8Array
85
+ }) {
86
+ static chunkSize = 512_000;
87
+ static initialJoinState() {
88
+ return new Map();
89
+ }
90
+ /**
91
+ * @since 4.0.0
92
+ */
93
+ static split(id, data) {
94
+ const parts = Math.ceil(data.byteLength / ChunkedMessage.chunkSize);
95
+ const result = new Array(parts);
96
+ for (let i = 0; i < parts; i++) {
97
+ const start = i * ChunkedMessage.chunkSize;
98
+ const end = Math.min((i + 1) * ChunkedMessage.chunkSize, data.byteLength);
99
+ result[i] = new ChunkedMessage({
100
+ id,
101
+ part: [i, parts],
102
+ data: data.subarray(start, end)
103
+ });
104
+ }
105
+ return result;
106
+ }
107
+ /**
108
+ * @since 4.0.0
109
+ */
110
+ static join(map, part) {
111
+ const [index, total] = part.part;
112
+ let entry = map.get(part.id);
113
+ if (!entry) {
114
+ entry = {
115
+ parts: new Array(total),
116
+ count: 0,
117
+ bytes: 0
118
+ };
119
+ map.set(part.id, entry);
120
+ }
121
+ entry.parts[index] = part.data;
122
+ entry.count++;
123
+ entry.bytes += part.data.byteLength;
124
+ if (entry.count !== total) {
125
+ return;
126
+ }
127
+ const data = new Uint8Array(entry.bytes);
128
+ let offset = 0;
129
+ for (const part of entry.parts) {
130
+ data.set(part, offset);
131
+ offset += part.byteLength;
132
+ }
133
+ map.delete(part.id);
134
+ return data;
135
+ }
136
+ }
137
+ /**
138
+ * @since 4.0.0
139
+ * @category protocol
140
+ */
141
+ export class WriteChunkedRpc extends /*#__PURE__*/Rpc.make("EventLog.WriteChunked", {
142
+ payload: ChunkedMessage,
143
+ error: EventLogProtocolError
144
+ }).middleware(EventLogAuthentication) {}
145
+ /**
146
+ * @since 4.0.0
147
+ * @category protocol
148
+ */
149
+ export class WriteEntries extends /*#__PURE__*/Schema.Class("effect/eventlog/EventLogRemote/WriteEntries")({
150
+ publicKey: Schema.String,
151
+ storeId: StoreId,
152
+ iv: Transferable.Uint8Array,
153
+ encryptedEntries: /*#__PURE__*/Schema.Array(EncryptedEntry)
154
+ }) {
155
+ static FromMsgpack = /*#__PURE__*/Msgpack.schema(WriteEntries);
156
+ static encode = /*#__PURE__*/Schema.encodeEffect(this.FromMsgpack);
157
+ static decode = /*#__PURE__*/Schema.decodeEffect(this.FromMsgpack);
158
+ get encoded() {
159
+ return WriteEntries.encode(this);
160
+ }
161
+ }
162
+ /**
163
+ * @since 4.0.0
164
+ * @category protocol
165
+ */
166
+ export class WriteEntriesUnencrypted extends /*#__PURE__*/Schema.Class("effect/eventlog/EventLogRemote/WriteEntriesUnencrypted")({
167
+ publicKey: Schema.String,
168
+ storeId: StoreId,
169
+ entries: /*#__PURE__*/Schema.Array(Entry)
170
+ }) {
171
+ static FromMsgpack = /*#__PURE__*/Msgpack.schema(WriteEntriesUnencrypted);
172
+ static encode = /*#__PURE__*/Schema.encodeEffect(this.FromMsgpack);
173
+ static decode = /*#__PURE__*/Schema.decodeEffect(this.FromMsgpack);
174
+ get encoded() {
175
+ return WriteEntriesUnencrypted.encode(this);
176
+ }
177
+ }
178
+ /**
179
+ * @since 4.0.0
180
+ * @category protocol
181
+ */
182
+ export class WriteSingleRpc extends /*#__PURE__*/Rpc.make("EventLog.WriteSingle", {
183
+ payload: {
184
+ data: Transferable.Uint8Array
185
+ },
186
+ error: EventLogProtocolError
187
+ }).middleware(EventLogAuthentication) {}
188
+ /**
189
+ * @since 4.0.0
190
+ * @category protocol
191
+ */
192
+ export class ChangesRpc extends /*#__PURE__*/Rpc.make("EventLog.Changes", {
193
+ payload: {
194
+ publicKey: Schema.String,
195
+ storeId: StoreId,
196
+ startSequence: Schema.Number
197
+ },
198
+ success: Schema.Union([SingleMessage, ChunkedMessage]),
199
+ error: EventLogProtocolError,
200
+ stream: true
201
+ }).middleware(EventLogAuthentication) {
202
+ static EncryptedFromMsgpack = /*#__PURE__*/Msgpack.schema(/*#__PURE__*/Schema.NonEmptyArray(EncryptedRemoteEntry));
203
+ static UnencryptedFromMsgpack = /*#__PURE__*/Msgpack.schema(/*#__PURE__*/Schema.NonEmptyArray(RemoteEntry));
204
+ static encodeEncrypted = /*#__PURE__*/Schema.encodeEffect(ChangesRpc.EncryptedFromMsgpack);
205
+ static decodeEncrypted = /*#__PURE__*/Schema.decodeEffect(ChangesRpc.EncryptedFromMsgpack);
206
+ static encodeUnencrypted = /*#__PURE__*/Schema.encodeEffect(ChangesRpc.UnencryptedFromMsgpack);
207
+ static decodeUnencrypted = /*#__PURE__*/Schema.decodeEffect(ChangesRpc.UnencryptedFromMsgpack);
208
+ }
209
+ /**
210
+ * @since 4.0.0
211
+ * @category protocol
212
+ */
213
+ export class EventLogRemoteRpcs extends /*#__PURE__*/RpcGroup.make(HelloRpc, AuthenticateRpc, WriteChunkedRpc, WriteSingleRpc, ChangesRpc) {}
214
+ //# sourceMappingURL=EventLogMessage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EventLogMessage.js","names":["Schema","Msgpack","Rpc","RpcGroup","RpcMiddleware","Transferable","Entry","RemoteEntry","RemoteId","EncryptedEntry","EncryptedRemoteEntry","StoreIdTypeId","StoreId","String","pipe","brand","EventLogProtocolError","TaggedErrorClass","requestTag","publicKey","optional","storeId","code","Literals","message","EventLogAuthentication","Service","error","HelloResponse","Class","remoteId","challenge","Uint8Array","HelloRpc","make","success","Authenticate","signingPublicKey","signature","algorithm","Literal","AuthenticateRpc","payload","SingleMessage","TaggedClass","data","ChunkedMessage","id","Number","part","Tuple","chunkSize","initialJoinState","Map","split","parts","Math","ceil","byteLength","result","Array","i","start","end","min","subarray","join","map","index","total","entry","get","count","bytes","set","offset","delete","WriteChunkedRpc","middleware","WriteEntries","iv","encryptedEntries","FromMsgpack","schema","encode","encodeEffect","decode","decodeEffect","encoded","WriteEntriesUnencrypted","entries","WriteSingleRpc","ChangesRpc","startSequence","Union","stream","EncryptedFromMsgpack","NonEmptyArray","UnencryptedFromMsgpack","encodeEncrypted","decodeEncrypted","encodeUnencrypted","decodeUnencrypted","EventLogRemoteRpcs"],"sources":["../../../src/unstable/eventlog/EventLogMessage.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}