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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SqlEventLogServerEncrypted.js","names":["Effect","Layer","PubSub","RcMap","Schema","Stream","SqlClient","EntryId","makeRemoteIdUnsafe","EventLogEncryption","EventLogServerEncrypted","makeStorage","options","gen","encryptions","sql","withoutTransforms","tablePrefix","entryTablePrefix","remoteIdTable","sessionAuthBindingsTable","insertBatchSize","remoteIdTableSql","sessionAuthBindingsTableSql","onDialectOrElse","pg","mysql","mssql","orElse","remoteId","pipe","flatMap","results","length","succeed","remote_id","created","as","resources","make","lookup","fnUntraced","scopeKey","scopeHash","sha256String","TextEncoder","encode","slice","table","tableSql","pubsub","acquireRelease","unbounded","shutdown","idleTimeToLive","getSessionAuthBinding","publicKey","decodeSessionAuthBindings","map","rows","row","undefined","signing_public_key","orDie","Storage","of","getId","getOrCreateSessionAuthBinding","signingPublicKey","existing","withTransaction","write","storeId","entries","makeEncryptedScopeKey","get","forInsert","ids","currentBatch","entry","push","entryId","iv","entry_id","encrypted_entry","encryptedEntry","allEntries","batch","encryptedEntries","insert","andThen","in","decodeEntries","publishAll","scoped","changes","startSequence","subscription","subscribe","initial","fromArray","concat","fromSubscription","unwrap","EncryptedRemoteEntrySql","Struct","sequence","Number","Uint8Array","SessionAuthBindingSql","public_key","String","decodeEntryRows","decodeUnknownEffect","Array","decodeSessionAuthBindingRows","toEncryptedRemoteEntry","layerStorage","effect","layerStorageSubtle","provide","layerSubtle"],"sources":["../../../src/unstable/eventlog/SqlEventLogServerEncrypted.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,25 @@
1
+ import * as Effect from "../../Effect.ts";
2
+ import * as Layer from "../../Layer.ts";
3
+ import type * as Scope from "../../Scope.ts";
4
+ import * as SqlClient from "../sql/SqlClient.ts";
5
+ import * as SqlError from "../sql/SqlError.ts";
6
+ import * as EventLogServerUnencrypted from "./EventLogServerUnencrypted.ts";
7
+ /**
8
+ * @since 4.0.0
9
+ * @category constructors
10
+ */
11
+ export declare const makeStorage: (options?: {
12
+ readonly entryTablePrefix?: string;
13
+ readonly remoteIdTable?: string;
14
+ readonly insertBatchSize?: number;
15
+ }) => Effect.Effect<EventLogServerUnencrypted.Storage["Service"], SqlError.SqlError, SqlClient.SqlClient | Scope.Scope>;
16
+ /**
17
+ * @since 4.0.0
18
+ * @category layers
19
+ */
20
+ export declare const layerStorage: (options?: {
21
+ readonly entryTablePrefix?: string;
22
+ readonly remoteIdTable?: string;
23
+ readonly insertBatchSize?: number;
24
+ }) => Layer.Layer<EventLogServerUnencrypted.Storage, SqlError.SqlError, SqlClient.SqlClient>;
25
+ //# sourceMappingURL=SqlEventLogServerUnencrypted.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SqlEventLogServerUnencrypted.d.ts","sourceRoot":"","sources":["../../../src/unstable/eventlog/SqlEventLogServerUnencrypted.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAA;AACzC,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAA;AAIvC,OAAO,KAAK,KAAK,KAAK,MAAM,gBAAgB,CAAA;AAE5C,OAAO,KAAK,SAAS,MAAM,qBAAqB,CAAA;AAChD,OAAO,KAAK,QAAQ,MAAM,oBAAoB,CAAA;AAE9C,OAAO,KAAK,yBAAyB,MAAM,gCAAgC,CAAA;AAE3E;;;GAGG;AACH,eAAO,MAAM,WAAW,GAAI,UAAU;IACpC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;IAClC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CAClC,KAAG,MAAM,CAAC,MAAM,CACf,yBAAyB,CAAC,OAAO,CAAC,SAAS,CAAC,EAC5C,QAAQ,CAAC,QAAQ,EACjB,SAAS,CAAC,SAAS,GAAG,KAAK,CAAC,KAAK,CAwY/B,CAAA;AAEJ;;;GAGG;AACH,eAAO,MAAM,YAAY,GAAI,UAAU;IACrC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;IAClC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CAClC,KAAG,KAAK,CAAC,KAAK,CAAC,yBAAyB,CAAC,OAAO,EAAE,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,SAAS,CAClB,CAAA"}
@@ -0,0 +1,354 @@
1
+ /**
2
+ * @since 4.0.0
3
+ */
4
+ import * as Arr from "../../Array.js";
5
+ import * as Effect from "../../Effect.js";
6
+ import * as Layer from "../../Layer.js";
7
+ import * as PubSub from "../../PubSub.js";
8
+ import * as RcMap from "../../RcMap.js";
9
+ import * as Schema from "../../Schema.js";
10
+ import * as Stream from "../../Stream.js";
11
+ import * as SqlClient from "../sql/SqlClient.js";
12
+ import * as SqlError from "../sql/SqlError.js";
13
+ import { Entry, EntryId, makeRemoteIdUnsafe, RemoteEntry } from "./EventJournal.js";
14
+ import * as EventLogServerUnencrypted from "./EventLogServerUnencrypted.js";
15
+ /**
16
+ * @since 4.0.0
17
+ * @category constructors
18
+ */
19
+ export const makeStorage = options => Effect.gen(function* () {
20
+ const sql = (yield* SqlClient.SqlClient).withoutTransforms();
21
+ const entriesTable = options?.entryTablePrefix ?? "effect_events";
22
+ const remoteIdTable = options?.remoteIdTable ?? "effect_remote_id";
23
+ const insertBatchSize = options?.insertBatchSize ?? 200;
24
+ const storesTable = `${entriesTable}_stores`;
25
+ const sessionAuthBindingsTable = `${entriesTable}_session_auth_bindings`;
26
+ const remoteIdTableSql = sql(remoteIdTable);
27
+ const entriesTableSql = sql(entriesTable);
28
+ const storesTableSql = sql(storesTable);
29
+ const sessionAuthBindingsTableSql = sql(sessionAuthBindingsTable);
30
+ yield* sql.onDialectOrElse({
31
+ pg: () => sql`
32
+ CREATE TABLE IF NOT EXISTS ${remoteIdTableSql} (
33
+ singleton INT PRIMARY KEY,
34
+ remote_id BYTEA NOT NULL
35
+ )`,
36
+ mysql: () => sql`
37
+ CREATE TABLE IF NOT EXISTS ${remoteIdTableSql} (
38
+ singleton INT PRIMARY KEY,
39
+ remote_id BINARY(16) NOT NULL
40
+ )`,
41
+ mssql: () => sql`
42
+ CREATE TABLE IF NOT EXISTS ${remoteIdTableSql} (
43
+ singleton INT PRIMARY KEY,
44
+ remote_id VARBINARY(16) NOT NULL
45
+ )`,
46
+ orElse: () => sql`
47
+ CREATE TABLE IF NOT EXISTS ${remoteIdTableSql} (
48
+ singleton INTEGER PRIMARY KEY,
49
+ remote_id BLOB NOT NULL
50
+ )`
51
+ });
52
+ yield* sql.onDialectOrElse({
53
+ pg: () => sql`
54
+ CREATE TABLE IF NOT EXISTS ${entriesTableSql} (
55
+ store_id TEXT NOT NULL,
56
+ sequence BIGINT NOT NULL,
57
+ entry_id BYTEA NOT NULL,
58
+ event TEXT NOT NULL,
59
+ primary_key TEXT NOT NULL,
60
+ payload BYTEA NOT NULL,
61
+ PRIMARY KEY (store_id, sequence),
62
+ UNIQUE (store_id, entry_id)
63
+ )`,
64
+ mysql: () => sql`
65
+ CREATE TABLE IF NOT EXISTS ${entriesTableSql} (
66
+ store_id VARCHAR(191) NOT NULL,
67
+ sequence BIGINT NOT NULL,
68
+ entry_id BINARY(16) NOT NULL,
69
+ event TEXT NOT NULL,
70
+ primary_key TEXT NOT NULL,
71
+ payload BLOB NOT NULL,
72
+ PRIMARY KEY (store_id, sequence),
73
+ UNIQUE (store_id, entry_id)
74
+ )`,
75
+ mssql: () => sql`
76
+ CREATE TABLE IF NOT EXISTS ${entriesTableSql} (
77
+ store_id NVARCHAR(191) NOT NULL,
78
+ sequence BIGINT NOT NULL,
79
+ entry_id VARBINARY(16) NOT NULL,
80
+ event NVARCHAR(MAX) NOT NULL,
81
+ primary_key NVARCHAR(MAX) NOT NULL,
82
+ payload VARBINARY(MAX) NOT NULL,
83
+ PRIMARY KEY (store_id, sequence),
84
+ UNIQUE (store_id, entry_id)
85
+ )`,
86
+ orElse: () => sql`
87
+ CREATE TABLE IF NOT EXISTS ${entriesTableSql} (
88
+ store_id TEXT NOT NULL,
89
+ sequence INTEGER NOT NULL,
90
+ entry_id BLOB NOT NULL,
91
+ event TEXT NOT NULL,
92
+ primary_key TEXT NOT NULL,
93
+ payload BLOB NOT NULL,
94
+ PRIMARY KEY (store_id, sequence),
95
+ UNIQUE (store_id, entry_id)
96
+ )`
97
+ });
98
+ yield* sql.onDialectOrElse({
99
+ pg: () => sql`
100
+ CREATE TABLE IF NOT EXISTS ${storesTableSql} (
101
+ store_id TEXT PRIMARY KEY,
102
+ next_sequence BIGINT NOT NULL
103
+ )`,
104
+ mysql: () => sql`
105
+ CREATE TABLE IF NOT EXISTS ${storesTableSql} (
106
+ store_id VARCHAR(191) PRIMARY KEY,
107
+ next_sequence BIGINT NOT NULL
108
+ )`,
109
+ mssql: () => sql`
110
+ CREATE TABLE IF NOT EXISTS ${storesTableSql} (
111
+ store_id NVARCHAR(191) PRIMARY KEY,
112
+ next_sequence BIGINT NOT NULL
113
+ )`,
114
+ orElse: () => sql`
115
+ CREATE TABLE IF NOT EXISTS ${storesTableSql} (
116
+ store_id TEXT PRIMARY KEY,
117
+ next_sequence INTEGER NOT NULL
118
+ )`
119
+ });
120
+ yield* sql.onDialectOrElse({
121
+ pg: () => sql`
122
+ CREATE TABLE IF NOT EXISTS ${sessionAuthBindingsTableSql} (
123
+ public_key TEXT PRIMARY KEY,
124
+ signing_public_key BYTEA NOT NULL
125
+ )`,
126
+ mysql: () => sql`
127
+ CREATE TABLE IF NOT EXISTS ${sessionAuthBindingsTableSql} (
128
+ public_key VARCHAR(191) PRIMARY KEY,
129
+ signing_public_key BINARY(32) NOT NULL
130
+ )`,
131
+ mssql: () => sql`
132
+ CREATE TABLE IF NOT EXISTS ${sessionAuthBindingsTableSql} (
133
+ public_key NVARCHAR(191) PRIMARY KEY,
134
+ signing_public_key VARBINARY(32) NOT NULL
135
+ )`,
136
+ orElse: () => sql`
137
+ CREATE TABLE IF NOT EXISTS ${sessionAuthBindingsTableSql} (
138
+ public_key TEXT PRIMARY KEY,
139
+ signing_public_key BLOB NOT NULL
140
+ )`
141
+ });
142
+ const selectRemoteId = sql`
143
+ SELECT remote_id
144
+ FROM ${remoteIdTableSql}
145
+ WHERE singleton = 1
146
+ `;
147
+ const remoteId = yield* selectRemoteId.pipe(Effect.flatMap(rows => {
148
+ const existing = rows[0];
149
+ if (existing !== undefined) {
150
+ return Effect.succeed(existing.remote_id);
151
+ }
152
+ const created = makeRemoteIdUnsafe();
153
+ return sql`
154
+ INSERT INTO ${remoteIdTableSql} (singleton, remote_id)
155
+ VALUES (1, ${created})
156
+ `.pipe(Effect.catchIf(error => error.reason._tag === "ConstraintError", () => Effect.void), Effect.andThen(selectRemoteId), Effect.map(rows => rows[0]?.remote_id), Effect.map(persisted => persisted ?? created));
157
+ }));
158
+ const pubsubs = yield* RcMap.make({
159
+ lookup: _storeId => Effect.acquireRelease(PubSub.unbounded(), PubSub.shutdown),
160
+ idleTimeToLive: "5 minutes"
161
+ });
162
+ const ensureStore = storeId => sql.onDialectOrElse({
163
+ pg: () => sql`
164
+ INSERT INTO ${storesTableSql} (store_id, next_sequence)
165
+ VALUES (${storeId}, 1)
166
+ ON CONFLICT (store_id) DO NOTHING
167
+ `,
168
+ mysql: () => sql`
169
+ INSERT INTO ${storesTableSql} (store_id, next_sequence)
170
+ VALUES (${storeId}, 1)
171
+ ON DUPLICATE KEY UPDATE store_id = store_id
172
+ `,
173
+ mssql: () => sql`
174
+ MERGE ${storesTableSql} WITH (HOLDLOCK) AS target
175
+ USING (SELECT ${storeId} AS store_id, 1 AS next_sequence) AS source
176
+ ON target.store_id = source.store_id
177
+ WHEN NOT MATCHED THEN
178
+ INSERT (store_id, next_sequence)
179
+ VALUES (source.store_id, source.next_sequence);
180
+ `,
181
+ orElse: () => sql`
182
+ INSERT INTO ${storesTableSql} (store_id, next_sequence)
183
+ VALUES (${storeId}, 1)
184
+ ON CONFLICT DO NOTHING
185
+ `
186
+ });
187
+ const lockStore = storeId => sql.onDialectOrElse({
188
+ pg: () => sql`
189
+ SELECT next_sequence
190
+ FROM ${storesTableSql}
191
+ WHERE store_id = ${storeId}
192
+ FOR UPDATE
193
+ `,
194
+ mysql: () => sql`
195
+ SELECT next_sequence
196
+ FROM ${storesTableSql}
197
+ WHERE store_id = ${storeId}
198
+ FOR UPDATE
199
+ `,
200
+ mssql: () => sql`
201
+ SELECT next_sequence
202
+ FROM ${storesTableSql} WITH (UPDLOCK, HOLDLOCK)
203
+ WHERE store_id = ${storeId}
204
+ `,
205
+ orElse: () => sql`
206
+ UPDATE ${storesTableSql}
207
+ SET next_sequence = next_sequence
208
+ WHERE store_id = ${storeId}
209
+ RETURNING next_sequence
210
+ `
211
+ }).pipe(Effect.flatMap(decodeStoreSequence));
212
+ const setNextSequence = (storeId, nextSequence) => sql`
213
+ UPDATE ${storesTableSql}
214
+ SET next_sequence = ${nextSequence}
215
+ WHERE store_id = ${storeId}
216
+ `;
217
+ const selectEntriesAfter = (storeId, startSequence) => sql`
218
+ SELECT sequence, entry_id, event, primary_key, payload
219
+ FROM ${entriesTableSql}
220
+ WHERE store_id = ${storeId} AND sequence >= ${startSequence}
221
+ ORDER BY sequence ASC
222
+ `.pipe(Effect.flatMap(decodeRemoteEntries));
223
+ const getSessionAuthBinding = publicKey => sql`
224
+ SELECT public_key, signing_public_key
225
+ FROM ${sessionAuthBindingsTableSql}
226
+ WHERE public_key = ${publicKey}
227
+ `.pipe(Effect.flatMap(decodeSessionAuthBindings), Effect.map(rows => {
228
+ const row = rows[0];
229
+ return row === undefined ? undefined : row.signing_public_key;
230
+ }), Effect.orDie);
231
+ return EventLogServerUnencrypted.Storage.of({
232
+ getId: Effect.succeed(remoteId),
233
+ getOrCreateSessionAuthBinding: Effect.fnUntraced(function* (publicKey, signingPublicKey) {
234
+ const existing = yield* getSessionAuthBinding(publicKey);
235
+ if (existing !== undefined) {
236
+ return existing;
237
+ }
238
+ return yield* sql`
239
+ INSERT INTO ${sessionAuthBindingsTableSql} (public_key, signing_public_key)
240
+ VALUES (${publicKey}, ${signingPublicKey})
241
+ `.pipe(Effect.as(signingPublicKey));
242
+ }, sql.withTransaction, Effect.orDie),
243
+ entriesAfter: (storeId, entry) => sql`
244
+ SELECT sequence, entry_id, event, primary_key, payload
245
+ FROM ${entriesTableSql}
246
+ WHERE store_id = ${storeId} AND entry_id >= ${entry.id}
247
+ ORDER BY sequence ASC
248
+ `.pipe(Effect.flatMap(decodeRemoteEntries), Effect.map(Arr.map(r => r.entry)), Effect.orDie),
249
+ write: Effect.fnUntraced(function* (storeId, entries) {
250
+ if (entries.length === 0) {
251
+ return [];
252
+ }
253
+ yield* ensureStore(storeId);
254
+ const currentNextSequence = yield* lockStore(storeId);
255
+ const committed = [];
256
+ let rowsForInsert = [];
257
+ for (let index = 0; index < entries.length; index++) {
258
+ const entry = entries[index];
259
+ const remoteSequence = currentNextSequence + index;
260
+ committed.push(new RemoteEntry({
261
+ remoteSequence,
262
+ entry
263
+ }, {
264
+ disableChecks: true
265
+ }));
266
+ rowsForInsert.push({
267
+ store_id: storeId,
268
+ sequence: remoteSequence,
269
+ entry_id: entry.id,
270
+ event: entry.event,
271
+ primary_key: entry.primaryKey,
272
+ payload: entry.payload
273
+ });
274
+ if (rowsForInsert.length >= insertBatchSize) {
275
+ yield* sql`INSERT INTO ${entriesTableSql} ${sql.insert(rowsForInsert)}`;
276
+ rowsForInsert = [];
277
+ }
278
+ }
279
+ if (rowsForInsert.length > 0) {
280
+ yield* sql`INSERT INTO ${entriesTableSql} ${sql.insert(rowsForInsert)}`;
281
+ }
282
+ const nextSequence = currentNextSequence + entries.length;
283
+ yield* setNextSequence(storeId, nextSequence);
284
+ const pubsub = yield* RcMap.get(pubsubs, storeId);
285
+ yield* PubSub.publishAll(pubsub, committed);
286
+ return committed;
287
+ }, Effect.scoped, sql.withTransaction, Effect.orDie),
288
+ changes: Effect.fnUntraced(function* ({
289
+ storeId,
290
+ startSequence,
291
+ compactors
292
+ }) {
293
+ const pubsub = yield* RcMap.get(pubsubs, storeId);
294
+ const subscription = yield* PubSub.subscribe(pubsub);
295
+ const backlog = yield* EventLogServerUnencrypted.compactBacklog({
296
+ compactors,
297
+ remoteEntries: yield* selectEntriesAfter(storeId, startSequence)
298
+ });
299
+ let watermark = backlog.length > 0 ? backlog[backlog.length - 1].remoteSequence : startSequence - 1;
300
+ return Stream.fromArray(backlog).pipe(Stream.concat(Stream.fromSubscription(subscription).pipe(Stream.filter(entry => entry.remoteSequence > watermark))));
301
+ }, Effect.orDie, Stream.unwrap),
302
+ withTransaction: effect => sql.withTransaction(effect).pipe(Effect.catchIf(SqlError.isSqlError, Effect.die))
303
+ });
304
+ });
305
+ /**
306
+ * @since 4.0.0
307
+ * @category layers
308
+ */
309
+ export const layerStorage = options => Layer.effect(EventLogServerUnencrypted.Storage)(makeStorage(options));
310
+ const EntrySql = /*#__PURE__*/Schema.Struct({
311
+ entry_id: EntryId,
312
+ event: Schema.String,
313
+ primary_key: Schema.String,
314
+ payload: Schema.Uint8Array
315
+ });
316
+ const SqlNumber = /*#__PURE__*/Schema.Union([Schema.Number, Schema.NumberFromString]);
317
+ const RemoteEntrySql = /*#__PURE__*/Schema.Struct({
318
+ ...EntrySql.fields,
319
+ sequence: SqlNumber
320
+ });
321
+ const StoreSequenceSql = /*#__PURE__*/Schema.Struct({
322
+ next_sequence: SqlNumber
323
+ });
324
+ const SessionAuthBindingSql = /*#__PURE__*/Schema.Struct({
325
+ public_key: Schema.String,
326
+ signing_public_key: Schema.Uint8Array
327
+ });
328
+ const decodeRemoteEntryRows = /*#__PURE__*/Schema.decodeUnknownEffect(/*#__PURE__*/Schema.mutable(/*#__PURE__*/Schema.Array(RemoteEntrySql)));
329
+ const decodeStoreSequenceRows = /*#__PURE__*/Schema.decodeUnknownEffect(/*#__PURE__*/Schema.Array(StoreSequenceSql));
330
+ const decodeSessionAuthBindingRows = /*#__PURE__*/Schema.decodeUnknownEffect(/*#__PURE__*/Schema.Array(SessionAuthBindingSql));
331
+ const toEntry = row => new Entry({
332
+ id: row.entry_id,
333
+ event: row.event,
334
+ primaryKey: row.primary_key,
335
+ payload: row.payload
336
+ }, {
337
+ disableChecks: true
338
+ });
339
+ const toRemoteEntry = row => new RemoteEntry({
340
+ remoteSequence: row.sequence,
341
+ entry: toEntry(row)
342
+ }, {
343
+ disableChecks: true
344
+ });
345
+ const decodeRemoteEntries = rows => decodeRemoteEntryRows(rows).pipe(Effect.map(rows => rows.map(toRemoteEntry)));
346
+ const decodeStoreSequence = rows => decodeStoreSequenceRows(rows).pipe(Effect.flatMap(rows => {
347
+ const row = rows[0];
348
+ if (row === undefined) {
349
+ return Effect.die("SqlEventLogServerUnencrypted missing store sequence row");
350
+ }
351
+ return Effect.succeed(row.next_sequence);
352
+ }));
353
+ const decodeSessionAuthBindings = rows => decodeSessionAuthBindingRows(rows);
354
+ //# sourceMappingURL=SqlEventLogServerUnencrypted.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SqlEventLogServerUnencrypted.js","names":["Arr","Effect","Layer","PubSub","RcMap","Schema","Stream","SqlClient","SqlError","Entry","EntryId","makeRemoteIdUnsafe","RemoteEntry","EventLogServerUnencrypted","makeStorage","options","gen","sql","withoutTransforms","entriesTable","entryTablePrefix","remoteIdTable","insertBatchSize","storesTable","sessionAuthBindingsTable","remoteIdTableSql","entriesTableSql","storesTableSql","sessionAuthBindingsTableSql","onDialectOrElse","pg","mysql","mssql","orElse","selectRemoteId","remoteId","pipe","flatMap","rows","existing","undefined","succeed","remote_id","created","catchIf","error","reason","_tag","void","andThen","map","persisted","pubsubs","make","lookup","_storeId","acquireRelease","unbounded","shutdown","idleTimeToLive","ensureStore","storeId","lockStore","decodeStoreSequence","setNextSequence","nextSequence","selectEntriesAfter","startSequence","decodeRemoteEntries","getSessionAuthBinding","publicKey","decodeSessionAuthBindings","row","signing_public_key","orDie","Storage","of","getId","getOrCreateSessionAuthBinding","fnUntraced","signingPublicKey","as","withTransaction","entriesAfter","entry","id","r","write","entries","length","currentNextSequence","committed","rowsForInsert","index","remoteSequence","push","disableChecks","store_id","sequence","entry_id","event","primary_key","primaryKey","payload","insert","pubsub","get","publishAll","scoped","changes","compactors","subscription","subscribe","backlog","compactBacklog","remoteEntries","watermark","fromArray","concat","fromSubscription","filter","unwrap","effect","isSqlError","die","layerStorage","EntrySql","Struct","String","Uint8Array","SqlNumber","Union","Number","NumberFromString","RemoteEntrySql","fields","StoreSequenceSql","next_sequence","SessionAuthBindingSql","public_key","decodeRemoteEntryRows","decodeUnknownEffect","mutable","Array","decodeStoreSequenceRows","decodeSessionAuthBindingRows","toEntry","toRemoteEntry"],"sources":["../../../src/unstable/eventlog/SqlEventLogServerUnencrypted.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -21,6 +21,10 @@ export * as EventLog from "./EventLog.ts";
21
21
  * @since 4.0.0
22
22
  */
23
23
  export * as EventLogEncryption from "./EventLogEncryption.ts";
24
+ /**
25
+ * @since 4.0.0
26
+ */
27
+ export * as EventLogMessage from "./EventLogMessage.ts";
24
28
  /**
25
29
  * @since 4.0.0
26
30
  */
@@ -32,9 +36,25 @@ export * as EventLogServer from "./EventLogServer.ts";
32
36
  /**
33
37
  * @since 4.0.0
34
38
  */
35
- export * as SqlEventLogJournal from "./SqlEventLogJournal.ts";
39
+ export * as EventLogServerEncrypted from "./EventLogServerEncrypted.ts";
40
+ /**
41
+ * @since 4.0.0
42
+ */
43
+ export * as EventLogServerUnencrypted from "./EventLogServerUnencrypted.ts";
44
+ /**
45
+ * @since 4.0.0
46
+ */
47
+ export * as EventLogSessionAuth from "./EventLogSessionAuth.ts";
48
+ /**
49
+ * @since 4.0.0
50
+ */
51
+ export * as SqlEventJournal from "./SqlEventJournal.ts";
52
+ /**
53
+ * @since 4.0.0
54
+ */
55
+ export * as SqlEventLogServerEncrypted from "./SqlEventLogServerEncrypted.ts";
36
56
  /**
37
57
  * @since 4.0.0
38
58
  */
39
- export * as SqlEventLogServer from "./SqlEventLogServer.ts";
59
+ export * as SqlEventLogServerUnencrypted from "./SqlEventLogServerUnencrypted.ts";
40
60
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/unstable/eventlog/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;GAEG;AACH,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AAEnC;;GAEG;AACH,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAE7C;;GAEG;AACH,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AAEjD;;GAEG;AACH,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AAEzC;;GAEG;AACH,OAAO,KAAK,kBAAkB,MAAM,yBAAyB,CAAA;AAE7D;;GAEG;AACH,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AAErD;;GAEG;AACH,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AAErD;;GAEG;AACH,OAAO,KAAK,kBAAkB,MAAM,yBAAyB,CAAA;AAE7D;;GAEG;AACH,OAAO,KAAK,iBAAiB,MAAM,wBAAwB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/unstable/eventlog/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;GAEG;AACH,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AAEnC;;GAEG;AACH,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAE7C;;GAEG;AACH,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AAEjD;;GAEG;AACH,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AAEzC;;GAEG;AACH,OAAO,KAAK,kBAAkB,MAAM,yBAAyB,CAAA;AAE7D;;GAEG;AACH,OAAO,KAAK,eAAe,MAAM,sBAAsB,CAAA;AAEvD;;GAEG;AACH,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AAErD;;GAEG;AACH,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AAErD;;GAEG;AACH,OAAO,KAAK,uBAAuB,MAAM,8BAA8B,CAAA;AAEvE;;GAEG;AACH,OAAO,KAAK,yBAAyB,MAAM,gCAAgC,CAAA;AAE3E;;GAEG;AACH,OAAO,KAAK,mBAAmB,MAAM,0BAA0B,CAAA;AAE/D;;GAEG;AACH,OAAO,KAAK,eAAe,MAAM,sBAAsB,CAAA;AAEvD;;GAEG;AACH,OAAO,KAAK,0BAA0B,MAAM,iCAAiC,CAAA;AAE7E;;GAEG;AACH,OAAO,KAAK,4BAA4B,MAAM,mCAAmC,CAAA"}
@@ -22,6 +22,10 @@ export * as EventLog from "./EventLog.js";
22
22
  * @since 4.0.0
23
23
  */
24
24
  export * as EventLogEncryption from "./EventLogEncryption.js";
25
+ /**
26
+ * @since 4.0.0
27
+ */
28
+ export * as EventLogMessage from "./EventLogMessage.js";
25
29
  /**
26
30
  * @since 4.0.0
27
31
  */
@@ -33,9 +37,25 @@ export * as EventLogServer from "./EventLogServer.js";
33
37
  /**
34
38
  * @since 4.0.0
35
39
  */
36
- export * as SqlEventLogJournal from "./SqlEventLogJournal.js";
40
+ export * as EventLogServerEncrypted from "./EventLogServerEncrypted.js";
41
+ /**
42
+ * @since 4.0.0
43
+ */
44
+ export * as EventLogServerUnencrypted from "./EventLogServerUnencrypted.js";
45
+ /**
46
+ * @since 4.0.0
47
+ */
48
+ export * as EventLogSessionAuth from "./EventLogSessionAuth.js";
49
+ /**
50
+ * @since 4.0.0
51
+ */
52
+ export * as SqlEventJournal from "./SqlEventJournal.js";
53
+ /**
54
+ * @since 4.0.0
55
+ */
56
+ export * as SqlEventLogServerEncrypted from "./SqlEventLogServerEncrypted.js";
37
57
  /**
38
58
  * @since 4.0.0
39
59
  */
40
- export * as SqlEventLogServer from "./SqlEventLogServer.js";
60
+ export * as SqlEventLogServerUnencrypted from "./SqlEventLogServerUnencrypted.js";
41
61
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["Event","EventGroup","EventJournal","EventLog","EventLogEncryption","EventLogRemote","EventLogServer","SqlEventLogJournal","SqlEventLogServer"],"sources":["../../../src/unstable/eventlog/index.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAIA;AAEA;;;AAGA,OAAO,KAAKA,KAAK,MAAM,YAAY;AAEnC;;;AAGA,OAAO,KAAKC,UAAU,MAAM,iBAAiB;AAE7C;;;AAGA,OAAO,KAAKC,YAAY,MAAM,mBAAmB;AAEjD;;;AAGA,OAAO,KAAKC,QAAQ,MAAM,eAAe;AAEzC;;;AAGA,OAAO,KAAKC,kBAAkB,MAAM,yBAAyB;AAE7D;;;AAGA,OAAO,KAAKC,cAAc,MAAM,qBAAqB;AAErD;;;AAGA,OAAO,KAAKC,cAAc,MAAM,qBAAqB;AAErD;;;AAGA,OAAO,KAAKC,kBAAkB,MAAM,yBAAyB;AAE7D;;;AAGA,OAAO,KAAKC,iBAAiB,MAAM,wBAAwB","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["Event","EventGroup","EventJournal","EventLog","EventLogEncryption","EventLogMessage","EventLogRemote","EventLogServer","EventLogServerEncrypted","EventLogServerUnencrypted","EventLogSessionAuth","SqlEventJournal","SqlEventLogServerEncrypted","SqlEventLogServerUnencrypted"],"sources":["../../../src/unstable/eventlog/index.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAIA;AAEA;;;AAGA,OAAO,KAAKA,KAAK,MAAM,YAAY;AAEnC;;;AAGA,OAAO,KAAKC,UAAU,MAAM,iBAAiB;AAE7C;;;AAGA,OAAO,KAAKC,YAAY,MAAM,mBAAmB;AAEjD;;;AAGA,OAAO,KAAKC,QAAQ,MAAM,eAAe;AAEzC;;;AAGA,OAAO,KAAKC,kBAAkB,MAAM,yBAAyB;AAE7D;;;AAGA,OAAO,KAAKC,eAAe,MAAM,sBAAsB;AAEvD;;;AAGA,OAAO,KAAKC,cAAc,MAAM,qBAAqB;AAErD;;;AAGA,OAAO,KAAKC,cAAc,MAAM,qBAAqB;AAErD;;;AAGA,OAAO,KAAKC,uBAAuB,MAAM,8BAA8B;AAEvE;;;AAGA,OAAO,KAAKC,yBAAyB,MAAM,gCAAgC;AAE3E;;;AAGA,OAAO,KAAKC,mBAAmB,MAAM,0BAA0B;AAE/D;;;AAGA,OAAO,KAAKC,eAAe,MAAM,sBAAsB;AAEvD;;;AAGA,OAAO,KAAKC,0BAA0B,MAAM,iCAAiC;AAE7E;;;AAGA,OAAO,KAAKC,4BAA4B,MAAM,mCAAmC","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=identityRootSecretDerivation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"identityRootSecretDerivation.d.ts","sourceRoot":"","sources":["../../../../src/unstable/eventlog/internal/identityRootSecretDerivation.ts"],"names":[],"mappings":""}
@@ -0,0 +1,89 @@
1
+ import * as Effect from "../../../Effect.js";
2
+ import * as Redacted from "../../../Redacted.js";
3
+ const textEncoder = /*#__PURE__*/new TextEncoder();
4
+ const Ed25519PublicKeyLength = 32;
5
+ const Ed25519Pkcs8SeedPrefix = /*#__PURE__*/Uint8Array.from([0x30, 0x2e, 0x02, 0x01, 0x00, 0x30, 0x05, 0x06, 0x03, 0x2b, 0x65, 0x70, 0x04, 0x22, 0x04, 0x20]);
6
+ /** @internal */
7
+ export const EncryptionDerivationLabelV1 = "effect/eventlog/identity/v1/encryption";
8
+ /** @internal */
9
+ export const SigningDerivationLabelV1 = "effect/eventlog/identity/v1/signing";
10
+ const toArrayBuffer = data => {
11
+ const copy = new Uint8Array(data.byteLength);
12
+ copy.set(data);
13
+ return copy.buffer;
14
+ };
15
+ const decodeBase64Url = value => {
16
+ const normalized = value.replaceAll("-", "+").replaceAll("_", "/");
17
+ const remainder = normalized.length % 4;
18
+ const padded = remainder === 0 ? normalized : `${normalized}${"=".repeat(4 - remainder)}`;
19
+ const decoded = atob(padded);
20
+ const bytes = new Uint8Array(decoded.length);
21
+ for (let i = 0; i < decoded.length; i++) {
22
+ bytes[i] = decoded.charCodeAt(i);
23
+ }
24
+ return bytes;
25
+ };
26
+ const makeEd25519Pkcs8FromSeed = seed => {
27
+ const key = new Uint8Array(Ed25519Pkcs8SeedPrefix.byteLength + seed.byteLength);
28
+ key.set(Ed25519Pkcs8SeedPrefix, 0);
29
+ key.set(seed, Ed25519Pkcs8SeedPrefix.byteLength);
30
+ return key;
31
+ };
32
+ const deriveSecretBytes = /*#__PURE__*/Effect.fnUntraced(function* (options) {
33
+ const labelBytes = textEncoder.encode(options.label);
34
+ const derivationInput = new Uint8Array(labelBytes.byteLength + 1 + options.rootSecret.byteLength);
35
+ derivationInput.set(labelBytes, 0);
36
+ derivationInput[labelBytes.byteLength] = 0;
37
+ derivationInput.set(options.rootSecret, labelBytes.byteLength + 1);
38
+ const digest = yield* Effect.promise(() => options.crypto.subtle.digest("SHA-256", toArrayBuffer(derivationInput)));
39
+ return new Uint8Array(digest);
40
+ });
41
+ /** @internal */
42
+ export const deriveIdentityRootSecretMaterial = /*#__PURE__*/Effect.fnUntraced(function* (options) {
43
+ const encryptionKeyMaterial = yield* deriveSecretBytes({
44
+ crypto: options.crypto,
45
+ rootSecret: options.rootSecret,
46
+ label: EncryptionDerivationLabelV1
47
+ });
48
+ const signingSeed = yield* deriveSecretBytes({
49
+ crypto: options.crypto,
50
+ rootSecret: options.rootSecret,
51
+ label: SigningDerivationLabelV1
52
+ });
53
+ const signingPrivateKeyBytes = makeEd25519Pkcs8FromSeed(signingSeed);
54
+ const encryptionKey = yield* Effect.promise(() => options.crypto.subtle.importKey("raw", toArrayBuffer(encryptionKeyMaterial), "AES-GCM", true, ["encrypt", "decrypt"]));
55
+ const signingPrivateKey = yield* Effect.promise(() => options.crypto.subtle.importKey("pkcs8", toArrayBuffer(signingPrivateKeyBytes), "Ed25519", true, ["sign"]));
56
+ const signingJwk = yield* Effect.promise(() => options.crypto.subtle.exportKey("jwk", signingPrivateKey));
57
+ if (typeof signingJwk.x !== "string") {
58
+ return yield* Effect.die(new Error("Unable to export deterministic Ed25519 public key"));
59
+ }
60
+ const signingPublicKey = decodeBase64Url(signingJwk.x);
61
+ if (signingPublicKey.byteLength !== Ed25519PublicKeyLength) {
62
+ return yield* Effect.die(new Error(`Expected derived signing public key to be ${Ed25519PublicKeyLength} bytes`));
63
+ }
64
+ return {
65
+ encryptionKeyMaterial,
66
+ encryptionKey,
67
+ signingPublicKey,
68
+ signingPrivateKey: Redacted.make(signingPrivateKeyBytes)
69
+ };
70
+ });
71
+ /** @internal */
72
+ export const makeGetIdentityRootSecretMaterial = crypto => {
73
+ const cache = new WeakMap();
74
+ return Effect.fnUntraced(function* (identity) {
75
+ const cached = cache.get(identity);
76
+ if (cached !== undefined) {
77
+ return cached;
78
+ }
79
+ const derived = yield* deriveIdentityRootSecretMaterial({
80
+ crypto,
81
+ rootSecret: Redacted.value(identity.privateKey)
82
+ });
83
+ yield* Effect.sync(() => {
84
+ cache.set(identity, derived);
85
+ });
86
+ return derived;
87
+ });
88
+ };
89
+ //# sourceMappingURL=identityRootSecretDerivation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"identityRootSecretDerivation.js","names":["Effect","Redacted","textEncoder","TextEncoder","Ed25519PublicKeyLength","Ed25519Pkcs8SeedPrefix","Uint8Array","from","EncryptionDerivationLabelV1","SigningDerivationLabelV1","toArrayBuffer","data","copy","byteLength","set","buffer","decodeBase64Url","value","normalized","replaceAll","remainder","length","padded","repeat","decoded","atob","bytes","i","charCodeAt","makeEd25519Pkcs8FromSeed","seed","key","deriveSecretBytes","fnUntraced","options","labelBytes","encode","label","derivationInput","rootSecret","digest","promise","crypto","subtle","deriveIdentityRootSecretMaterial","encryptionKeyMaterial","signingSeed","signingPrivateKeyBytes","encryptionKey","importKey","signingPrivateKey","signingJwk","exportKey","x","die","Error","signingPublicKey","make","makeGetIdentityRootSecretMaterial","cache","WeakMap","identity","cached","get","undefined","derived","privateKey","sync"],"sources":["../../../../src/unstable/eventlog/internal/identityRootSecretDerivation.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}