@guveno/wallet-sdk 1.0.0 → 1.0.1

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 (59) hide show
  1. package/README.md +2 -1
  2. package/dist/api/client.d.ts +3 -17
  3. package/dist/api/client.d.ts.map +1 -1
  4. package/dist/api/client.js +15 -76
  5. package/dist/api/client.js.map +1 -1
  6. package/dist/api/types.d.ts +9 -31
  7. package/dist/api/types.d.ts.map +1 -1
  8. package/dist/api/types.js.map +1 -1
  9. package/dist/config/file-store.d.ts +40 -0
  10. package/dist/config/file-store.d.ts.map +1 -0
  11. package/dist/config/file-store.js +118 -0
  12. package/dist/config/file-store.js.map +1 -0
  13. package/dist/constants.d.ts +8 -1
  14. package/dist/constants.d.ts.map +1 -1
  15. package/dist/constants.js +17 -1
  16. package/dist/constants.js.map +1 -1
  17. package/dist/crypto/sealed-box.d.ts +7 -0
  18. package/dist/crypto/sealed-box.d.ts.map +1 -1
  19. package/dist/crypto/sealed-box.js +36 -1
  20. package/dist/crypto/sealed-box.js.map +1 -1
  21. package/dist/crypto/user-keys.d.ts +31 -0
  22. package/dist/crypto/user-keys.d.ts.map +1 -0
  23. package/dist/crypto/user-keys.js +36 -0
  24. package/dist/crypto/user-keys.js.map +1 -0
  25. package/dist/encryption-session.d.ts +33 -0
  26. package/dist/encryption-session.d.ts.map +1 -0
  27. package/dist/encryption-session.js +59 -0
  28. package/dist/encryption-session.js.map +1 -0
  29. package/dist/hot-wallet.d.ts +19 -2
  30. package/dist/hot-wallet.d.ts.map +1 -1
  31. package/dist/hot-wallet.js +26 -3
  32. package/dist/hot-wallet.js.map +1 -1
  33. package/dist/index.d.ts +12 -8
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.js +6 -6
  36. package/dist/index.js.map +1 -1
  37. package/dist/types.d.ts +1 -177
  38. package/dist/types.d.ts.map +1 -1
  39. package/dist/wallet-service.d.ts +75 -0
  40. package/dist/wallet-service.d.ts.map +1 -0
  41. package/dist/wallet-service.js +113 -0
  42. package/dist/wallet-service.js.map +1 -0
  43. package/package.json +5 -4
  44. package/dist/manager.d.ts +0 -28
  45. package/dist/manager.d.ts.map +0 -1
  46. package/dist/manager.js +0 -499
  47. package/dist/manager.js.map +0 -1
  48. package/dist/session/file-store.d.ts +0 -10
  49. package/dist/session/file-store.d.ts.map +0 -1
  50. package/dist/session/file-store.js +0 -88
  51. package/dist/session/file-store.js.map +0 -1
  52. package/dist/storage/crypto.d.ts +0 -7
  53. package/dist/storage/crypto.d.ts.map +0 -1
  54. package/dist/storage/crypto.js +0 -80
  55. package/dist/storage/crypto.js.map +0 -1
  56. package/dist/storage/file-store.d.ts +0 -21
  57. package/dist/storage/file-store.d.ts.map +0 -1
  58. package/dist/storage/file-store.js +0 -219
  59. package/dist/storage/file-store.js.map +0 -1
package/dist/manager.js DELETED
@@ -1,499 +0,0 @@
1
- import { createHash, randomUUID } from 'node:crypto';
2
- import { assertSupportedChain, assertSupportedNetwork } from './chains.js';
3
- import { ENCRYPTION_ALGORITHM, ENCRYPTION_KDF, STORAGE_SCHEMA_VERSION, SUPPORTED_MNEMONIC_WORD_COUNTS } from './constants.js';
4
- import { deriveAddress } from './derivation.js';
5
- import { ConflictError, EncryptionRequiredError, NotFoundError, ValidationError } from './errors.js';
6
- import { assertValidMnemonic, generateRandomMnemonic } from './mnemonic.js';
7
- import { decryptMnemonic, encryptSecretRecord } from './storage/crypto.js';
8
- import { FileSystemWalletStore } from './storage/file-store.js';
9
- import { sealSecret } from './crypto/sealed-box.js';
10
- function nowIso() {
11
- return new Date().toISOString();
12
- }
13
- function normalizeGroupName(name) {
14
- const normalized = name.trim();
15
- if (!normalized) {
16
- throw new ValidationError('Wallet group name cannot be empty.');
17
- }
18
- return normalized;
19
- }
20
- function normalizeLabel(label) {
21
- if (label == null) {
22
- return null;
23
- }
24
- const normalized = label.trim();
25
- return normalized.length === 0 ? null : normalized;
26
- }
27
- function canonicalName(name) {
28
- return normalizeGroupName(name).toLowerCase();
29
- }
30
- function fingerprintMnemonic(mnemonic) {
31
- return createHash('sha256').update(mnemonic, 'utf8').digest('hex');
32
- }
33
- function toDerivedAccount(address) {
34
- return {
35
- chain: address.chain,
36
- network: address.network,
37
- address: address.address,
38
- derivationPath: address.derivationPath,
39
- index: address.index,
40
- label: address.label,
41
- createdAt: address.createdAt,
42
- updatedAt: address.updatedAt
43
- };
44
- }
45
- function findWalletByIdOrName(wallets, identifier) {
46
- const trimmed = identifier.trim();
47
- return wallets.find((wallet) => wallet.id === trimmed || canonicalName(wallet.name) === trimmed.toLowerCase());
48
- }
49
- function findWalletByKeyAndChain(wallets, keyId, chain, network) {
50
- return wallets.find((wallet) => wallet.keyId === keyId && wallet.chain === chain && wallet.network === network);
51
- }
52
- function findKeyById(keys, keyId) {
53
- return keys.find((key) => key.id === keyId);
54
- }
55
- function findKeyByFingerprint(keys, fingerprint) {
56
- return keys.find((key) => key.fingerprint === fingerprint);
57
- }
58
- function listWalletAddresses(state, walletId) {
59
- return state.metadata.addresses
60
- .filter((address) => address.walletId === walletId)
61
- .slice()
62
- .sort((left, right) => left.index - right.index);
63
- }
64
- function countWalletsForKey(wallets, keyId) {
65
- return wallets.reduce((count, wallet) => count + (wallet.keyId === keyId ? 1 : 0), 0);
66
- }
67
- function toWalletKeySummary(state, key) {
68
- return {
69
- id: key.id,
70
- fingerprint: key.fingerprint,
71
- walletCount: countWalletsForKey(state.metadata.wallets, key.id),
72
- createdAt: key.createdAt,
73
- updatedAt: key.updatedAt,
74
- encryption: key.encryption
75
- };
76
- }
77
- function toWalletGroup(state, wallet) {
78
- const key = findKeyById(state.metadata.keys, wallet.keyId);
79
- if (key == null) {
80
- throw new NotFoundError(`No key material was found for wallet "${wallet.id}".`);
81
- }
82
- const accounts = listWalletAddresses(state, wallet.id).map(toDerivedAccount);
83
- const [firstAccount] = accounts;
84
- if (firstAccount == null) {
85
- throw new ValidationError(`Wallet group "${wallet.name}" does not contain any derived accounts.`);
86
- }
87
- return {
88
- id: wallet.id,
89
- keyId: key.id,
90
- keyFingerprint: key.fingerprint,
91
- name: wallet.name,
92
- chain: wallet.chain,
93
- network: wallet.network,
94
- firstAddress: firstAccount.address,
95
- addressCount: accounts.length,
96
- createdAt: wallet.createdAt,
97
- updatedAt: wallet.updatedAt,
98
- encryption: key.encryption,
99
- accounts
100
- };
101
- }
102
- function toWalletGroupSummary(state, wallet) {
103
- const group = toWalletGroup(state, wallet);
104
- return {
105
- id: group.id,
106
- keyId: group.keyId,
107
- keyFingerprint: group.keyFingerprint,
108
- name: group.name,
109
- chain: group.chain,
110
- network: group.network,
111
- firstAddress: group.firstAddress,
112
- addressCount: group.addressCount,
113
- createdAt: group.createdAt,
114
- updatedAt: group.updatedAt,
115
- encryption: group.encryption
116
- };
117
- }
118
- function assertUniqueWalletName(wallets, name, excludeWalletId) {
119
- const normalized = canonicalName(name);
120
- const conflictingWallet = wallets.find((wallet) => canonicalName(wallet.name) === normalized && wallet.id !== excludeWalletId);
121
- if (conflictingWallet != null) {
122
- throw new ConflictError(`A wallet group named "${name}" already exists.`);
123
- }
124
- }
125
- function findSecretRecord(state, keyId) {
126
- const secret = state.secrets.keys.find((entry) => entry.keyId === keyId);
127
- if (secret == null) {
128
- throw new NotFoundError(`No secret material was found for key "${keyId}".`);
129
- }
130
- return secret;
131
- }
132
- function resolveEncryptionPassword(options, requirement = 'optional') {
133
- const password = options.encryptionPassword;
134
- if (password == null) {
135
- if (requirement === 'required') {
136
- throw new EncryptionRequiredError('An encryption password is required to persist wallet secrets.');
137
- }
138
- return undefined;
139
- }
140
- if (password.trim().length === 0) {
141
- throw new ValidationError('Encryption password cannot be empty.');
142
- }
143
- return password;
144
- }
145
- function requireEncryptionPassword(options) {
146
- const password = resolveEncryptionPassword(options, 'required');
147
- if (password == null) {
148
- throw new EncryptionRequiredError('An encryption password is required to persist wallet secrets.');
149
- }
150
- return password;
151
- }
152
- function encryptedStatus() {
153
- return {
154
- enabled: true,
155
- algorithm: ENCRYPTION_ALGORITHM,
156
- kdf: ENCRYPTION_KDF
157
- };
158
- }
159
- async function resolveMnemonicFromSecret(secret, encryptionPassword) {
160
- if (!encryptionPassword) {
161
- throw new EncryptionRequiredError('This wallet key is encrypted. Supply its encryption password to decrypt or derive addresses.');
162
- }
163
- return decryptMnemonic(secret.envelope, encryptionPassword);
164
- }
165
- function assertSupportedWordCount(value) {
166
- const wordCount = value ?? 12;
167
- if (!SUPPORTED_MNEMONIC_WORD_COUNTS.includes(wordCount)) {
168
- throw new ValidationError('Mnemonic word count must be 12 or 24.');
169
- }
170
- return wordCount;
171
- }
172
- async function buildSecretRecord(keyId, mnemonic, encryptionPassword) {
173
- return encryptSecretRecord(keyId, mnemonic, encryptionPassword);
174
- }
175
- async function createStoredWalletAddress(walletId, chain, network, index, mnemonic, label) {
176
- const derived = await deriveAddress(mnemonic, index, { chain, network });
177
- const timestamp = nowIso();
178
- return {
179
- id: randomUUID(),
180
- walletId,
181
- chain: derived.chain,
182
- network: derived.network,
183
- address: derived.address,
184
- derivationPath: derived.derivationPath,
185
- index: derived.index,
186
- label,
187
- createdAt: timestamp,
188
- updatedAt: timestamp
189
- };
190
- }
191
- async function assertKeyMatchesMnemonic(state, key, mnemonic, encryptionPassword) {
192
- const secret = findSecretRecord(state, key.id);
193
- const storedMnemonic = await resolveMnemonicFromSecret(secret, encryptionPassword);
194
- if (storedMnemonic !== mnemonic) {
195
- throw new ConflictError('The provided mnemonic does not match the existing local key material.');
196
- }
197
- }
198
- export class WalletManager {
199
- store;
200
- constructor(options = {}) {
201
- this.store = options.store ?? new FileSystemWalletStore(options.storageDir);
202
- }
203
- async createWalletGroup(options) {
204
- const groupName = normalizeGroupName(options.name);
205
- const chain = assertSupportedChain(options.chain);
206
- const network = assertSupportedNetwork(options.network);
207
- const accountLabel = normalizeLabel(options.accountLabel);
208
- const wordCount = assertSupportedWordCount(options.words);
209
- const encryptionPassword = requireEncryptionPassword(options);
210
- return this.store.mutate(async (state) => {
211
- assertUniqueWalletName(state.metadata.wallets, groupName);
212
- let mnemonic = generateRandomMnemonic(wordCount);
213
- let fingerprint = fingerprintMnemonic(mnemonic);
214
- while (state.metadata.keys.some((key) => key.fingerprint === fingerprint)) {
215
- mnemonic = generateRandomMnemonic(wordCount);
216
- fingerprint = fingerprintMnemonic(mnemonic);
217
- }
218
- const timestamp = nowIso();
219
- const keyId = randomUUID();
220
- const walletId = randomUUID();
221
- const key = {
222
- id: keyId,
223
- fingerprint,
224
- encryption: encryptedStatus(),
225
- createdAt: timestamp,
226
- updatedAt: timestamp
227
- };
228
- const wallet = {
229
- id: walletId,
230
- keyId,
231
- name: groupName,
232
- chain,
233
- network,
234
- nextAccountIndex: 1,
235
- createdAt: timestamp,
236
- updatedAt: timestamp
237
- };
238
- const firstAddress = await createStoredWalletAddress(walletId, chain, network, 0, mnemonic, accountLabel);
239
- state.metadata.keys.push(key);
240
- state.metadata.wallets.push(wallet);
241
- state.metadata.addresses.push(firstAddress);
242
- state.secrets.keys.push(await buildSecretRecord(keyId, mnemonic, encryptionPassword));
243
- return {
244
- result: {
245
- group: toWalletGroup(state, wallet),
246
- firstAccount: toDerivedAccount(firstAddress),
247
- mnemonic
248
- },
249
- state
250
- };
251
- });
252
- }
253
- async importWalletGroup(options) {
254
- const groupName = normalizeGroupName(options.name);
255
- const chain = assertSupportedChain(options.chain);
256
- const network = assertSupportedNetwork(options.network);
257
- const accountLabel = normalizeLabel(options.accountLabel);
258
- const mnemonic = assertValidMnemonic(options.mnemonic);
259
- const fingerprint = fingerprintMnemonic(mnemonic);
260
- const encryptionPassword = requireEncryptionPassword(options);
261
- return this.store.mutate(async (state) => {
262
- const existingKey = findKeyByFingerprint(state.metadata.keys, fingerprint);
263
- if (existingKey != null) {
264
- await assertKeyMatchesMnemonic(state, existingKey, mnemonic, encryptionPassword);
265
- const existingWallet = findWalletByKeyAndChain(state.metadata.wallets, existingKey.id, chain, network);
266
- if (existingWallet != null) {
267
- const nextAddress = await createStoredWalletAddress(existingWallet.id, existingWallet.chain, existingWallet.network, existingWallet.nextAccountIndex, mnemonic, accountLabel);
268
- existingWallet.nextAccountIndex += 1;
269
- existingWallet.updatedAt = nowIso();
270
- state.metadata.addresses.push(nextAddress);
271
- return {
272
- result: {
273
- group: toWalletGroup(state, existingWallet),
274
- account: toDerivedAccount(nextAddress),
275
- reusedExistingGroup: true
276
- },
277
- state
278
- };
279
- }
280
- assertUniqueWalletName(state.metadata.wallets, groupName);
281
- const timestamp = nowIso();
282
- const wallet = {
283
- id: randomUUID(),
284
- keyId: existingKey.id,
285
- name: groupName,
286
- chain,
287
- network,
288
- nextAccountIndex: 1,
289
- createdAt: timestamp,
290
- updatedAt: timestamp
291
- };
292
- const firstAddress = await createStoredWalletAddress(wallet.id, chain, network, 0, mnemonic, accountLabel);
293
- state.metadata.wallets.push(wallet);
294
- state.metadata.addresses.push(firstAddress);
295
- return {
296
- result: {
297
- group: toWalletGroup(state, wallet),
298
- account: toDerivedAccount(firstAddress),
299
- reusedExistingGroup: false
300
- },
301
- state
302
- };
303
- }
304
- assertUniqueWalletName(state.metadata.wallets, groupName);
305
- const timestamp = nowIso();
306
- const keyId = randomUUID();
307
- const walletId = randomUUID();
308
- const key = {
309
- id: keyId,
310
- fingerprint,
311
- encryption: encryptedStatus(),
312
- createdAt: timestamp,
313
- updatedAt: timestamp
314
- };
315
- const wallet = {
316
- id: walletId,
317
- keyId,
318
- name: groupName,
319
- chain,
320
- network,
321
- nextAccountIndex: 1,
322
- createdAt: timestamp,
323
- updatedAt: timestamp
324
- };
325
- const firstAddress = await createStoredWalletAddress(walletId, chain, network, 0, mnemonic, accountLabel);
326
- state.metadata.keys.push(key);
327
- state.metadata.wallets.push(wallet);
328
- state.metadata.addresses.push(firstAddress);
329
- state.secrets.keys.push(await buildSecretRecord(keyId, mnemonic, encryptionPassword));
330
- return {
331
- result: {
332
- group: toWalletGroup(state, wallet),
333
- account: toDerivedAccount(firstAddress),
334
- reusedExistingGroup: false
335
- },
336
- state
337
- };
338
- });
339
- }
340
- async deriveAddress(options) {
341
- const label = normalizeLabel(options.label);
342
- const encryptionPassword = resolveEncryptionPassword(options);
343
- return this.store.mutate(async (state) => {
344
- const wallet = findWalletByIdOrName(state.metadata.wallets, options.group);
345
- if (wallet == null) {
346
- throw new NotFoundError(`Wallet group "${options.group}" was not found.`);
347
- }
348
- const secret = findSecretRecord(state, wallet.keyId);
349
- const mnemonic = await resolveMnemonicFromSecret(secret, encryptionPassword);
350
- const nextAddress = await createStoredWalletAddress(wallet.id, wallet.chain, wallet.network, wallet.nextAccountIndex, mnemonic, label);
351
- wallet.nextAccountIndex += 1;
352
- wallet.updatedAt = nowIso();
353
- state.metadata.addresses.push(nextAddress);
354
- return {
355
- result: toDerivedAccount(nextAddress),
356
- state
357
- };
358
- });
359
- }
360
- async listWalletGroups() {
361
- const state = await this.store.read();
362
- return state.metadata.wallets
363
- .slice()
364
- .sort((left, right) => left.createdAt.localeCompare(right.createdAt))
365
- .map((wallet) => toWalletGroupSummary(state, wallet));
366
- }
367
- async getWalletGroup(groupIdentifier) {
368
- const state = await this.store.read();
369
- const wallet = findWalletByIdOrName(state.metadata.wallets, groupIdentifier);
370
- if (wallet == null) {
371
- throw new NotFoundError(`Wallet group "${groupIdentifier}" was not found.`);
372
- }
373
- return toWalletGroup(state, wallet);
374
- }
375
- async getFirstAddress(groupIdentifier) {
376
- const group = await this.getWalletGroup(groupIdentifier);
377
- const [firstAccount] = group.accounts;
378
- if (firstAccount == null) {
379
- throw new NotFoundError(`Wallet group "${groupIdentifier}" does not have any derived accounts.`);
380
- }
381
- return firstAccount;
382
- }
383
- async listDerivedAccounts(groupIdentifier) {
384
- const group = await this.getWalletGroup(groupIdentifier);
385
- return group.accounts;
386
- }
387
- async renameWalletGroup(groupIdentifier, newName) {
388
- const normalizedName = normalizeGroupName(newName);
389
- return this.store.mutate(async (state) => {
390
- const wallet = findWalletByIdOrName(state.metadata.wallets, groupIdentifier);
391
- if (wallet == null) {
392
- throw new NotFoundError(`Wallet group "${groupIdentifier}" was not found.`);
393
- }
394
- assertUniqueWalletName(state.metadata.wallets, normalizedName, wallet.id);
395
- wallet.name = normalizedName;
396
- wallet.updatedAt = nowIso();
397
- return {
398
- result: toWalletGroup(state, wallet),
399
- state
400
- };
401
- });
402
- }
403
- async labelAccount(options) {
404
- const label = normalizeLabel(options.label);
405
- return this.store.mutate(async (state) => {
406
- const wallet = findWalletByIdOrName(state.metadata.wallets, options.group);
407
- if (wallet == null) {
408
- throw new NotFoundError(`Wallet group "${options.group}" was not found.`);
409
- }
410
- const address = state.metadata.addresses.find((candidate) => candidate.walletId === wallet.id && candidate.index === options.index);
411
- if (address == null) {
412
- throw new NotFoundError(`Wallet group "${wallet.name}" does not have an account at index ${options.index}.`);
413
- }
414
- address.label = label;
415
- address.updatedAt = nowIso();
416
- wallet.updatedAt = address.updatedAt;
417
- return {
418
- result: toDerivedAccount(address),
419
- state
420
- };
421
- });
422
- }
423
- async exportWalletGroupMetadata(groupIdentifier) {
424
- const state = await this.store.read();
425
- const wallet = findWalletByIdOrName(state.metadata.wallets, groupIdentifier);
426
- if (wallet == null) {
427
- throw new NotFoundError(`Wallet group "${groupIdentifier}" was not found.`);
428
- }
429
- const key = findKeyById(state.metadata.keys, wallet.keyId);
430
- if (key == null) {
431
- throw new NotFoundError(`No key material was found for wallet "${wallet.id}".`);
432
- }
433
- return {
434
- version: STORAGE_SCHEMA_VERSION,
435
- exportedAt: nowIso(),
436
- key: toWalletKeySummary(state, key),
437
- wallet: toWalletGroupSummary(state, wallet),
438
- addresses: listWalletAddresses(state, wallet.id).map(toDerivedAccount)
439
- };
440
- }
441
- async exportWalletGroupRecord(groupIdentifier, options = {}) {
442
- const state = await this.store.read();
443
- const wallet = findWalletByIdOrName(state.metadata.wallets, groupIdentifier);
444
- if (wallet == null) {
445
- throw new NotFoundError(`Wallet group "${groupIdentifier}" was not found.`);
446
- }
447
- const key = findKeyById(state.metadata.keys, wallet.keyId);
448
- if (key == null) {
449
- throw new NotFoundError(`No key material was found for wallet "${wallet.id}".`);
450
- }
451
- const walletAddresses = listWalletAddresses(state, wallet.id);
452
- const encryptedSecret = findSecretRecord(state, key.id);
453
- return {
454
- groupName: wallet.name,
455
- chain: wallet.chain,
456
- keyFingerprint: key.fingerprint,
457
- metadataJson: {
458
- version: STORAGE_SCHEMA_VERSION,
459
- key: JSON.parse(JSON.stringify(key)),
460
- wallet: JSON.parse(JSON.stringify(wallet)),
461
- addresses: JSON.parse(JSON.stringify(walletAddresses))
462
- },
463
- secretsJson: {
464
- version: STORAGE_SCHEMA_VERSION,
465
- secret: JSON.parse(JSON.stringify(encryptedSecret))
466
- },
467
- addresses: walletAddresses.map((address) => ({
468
- address: address.address,
469
- derivationPath: address.derivationPath,
470
- accountIndex: address.index,
471
- label: address.label
472
- }))
473
- };
474
- }
475
- async exportWalletForApi(groupIdentifier, options) {
476
- const record = await this.exportWalletGroupRecord(groupIdentifier);
477
- const mnemonic = await this.revealMnemonic(groupIdentifier, options.encryptionPassword);
478
- return {
479
- name: record.groupName,
480
- chain: record.chain,
481
- network: record.metadataJson.wallet.network,
482
- keyFingerprint: record.keyFingerprint,
483
- encryptedSecretJson: sealSecret(mnemonic, options.recipientPublicKey),
484
- addresses: record.addresses
485
- };
486
- }
487
- async revealMnemonic(groupIdentifier, encryptionPassword) {
488
- const state = await this.store.read();
489
- const wallet = findWalletByIdOrName(state.metadata.wallets, groupIdentifier);
490
- if (wallet == null) {
491
- throw new NotFoundError(`Wallet group "${groupIdentifier}" was not found.`);
492
- }
493
- const secret = findSecretRecord(state, wallet.keyId);
494
- return resolveMnemonicFromSecret(secret, encryptionPassword);
495
- }
496
- }
497
- export class EthereumWalletManager extends WalletManager {
498
- }
499
- //# sourceMappingURL=manager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"manager.js","sourceRoot":"","sources":["../src/manager.ts"],"names":[],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- import type { ApiSession, ApiSessionStore } from '../api/types.js';
2
- export declare class FileSystemApiSessionStore implements ApiSessionStore {
3
- readonly rootDir: string;
4
- private readonly sessionPath;
5
- constructor(storageDir?: string);
6
- read(): Promise<ApiSession | null>;
7
- write(session: ApiSession): Promise<void>;
8
- clear(): Promise<void>;
9
- }
10
- //# sourceMappingURL=file-store.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"file-store.d.ts","sourceRoot":"","sources":["../../src/session/file-store.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AA6CnE,qBAAa,yBAA0B,YAAW,eAAe;IAC/D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;gBAEzB,UAAU,CAAC,EAAE,MAAM;IAKzB,IAAI,IAAI,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAmBlC,KAAK,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAUzC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAa7B"}
@@ -1,88 +0,0 @@
1
- import { promises as fs } from 'node:fs';
2
- import { randomUUID } from 'node:crypto';
3
- import path from 'node:path';
4
- import { z } from 'zod';
5
- import { StorageError } from '../errors.js';
6
- import { resolveStorageDir } from '../storage/file-store.js';
7
- const jsonObjectSchema = z.record(z.string(), z.unknown());
8
- const companyMembershipSchema = z.object({
9
- id: z.number().int().positive(),
10
- name: z.string(),
11
- role: z.enum(['owner', 'admin', 'manager', 'signer', 'viewer'])
12
- });
13
- const userEncryptionKeySchema = z.object({
14
- id: z.uuid(),
15
- publicKey: z.string(),
16
- encryptedPrivateKeyJson: jsonObjectSchema,
17
- createdAt: z.iso.datetime(),
18
- updatedAt: z.iso.datetime()
19
- });
20
- const apiUserSchema = z.object({
21
- id: z.number().int().positive(),
22
- email: z.email(),
23
- company: companyMembershipSchema.nullable(),
24
- encryptionKey: userEncryptionKeySchema.nullable(),
25
- createdAt: z.iso.datetime(),
26
- updatedAt: z.iso.datetime()
27
- });
28
- const sessionSchema = z.object({
29
- baseUrl: z.url(),
30
- accessToken: z.string().min(1),
31
- tokenType: z.literal('Bearer'),
32
- expiresIn: z.string().min(1),
33
- user: apiUserSchema,
34
- authenticatedAt: z.iso.datetime()
35
- });
36
- async function writeJsonAtomic(filePath, value) {
37
- const dir = path.dirname(filePath);
38
- const tempPath = path.join(dir, `${path.basename(filePath)}.${randomUUID()}.tmp`);
39
- const payload = `${JSON.stringify(value, null, 2)}\n`;
40
- await fs.writeFile(tempPath, payload, { encoding: 'utf8', mode: 0o600 });
41
- await fs.rename(tempPath, filePath);
42
- }
43
- export class FileSystemApiSessionStore {
44
- rootDir;
45
- sessionPath;
46
- constructor(storageDir) {
47
- this.rootDir = resolveStorageDir(storageDir);
48
- this.sessionPath = path.join(this.rootDir, 'auth-session.json');
49
- }
50
- async read() {
51
- await fs.mkdir(this.rootDir, { recursive: true, mode: 0o700 });
52
- try {
53
- const raw = await fs.readFile(this.sessionPath, 'utf8');
54
- return sessionSchema.parse(JSON.parse(raw));
55
- }
56
- catch (error) {
57
- if (error.code === 'ENOENT') {
58
- return null;
59
- }
60
- if (error instanceof z.ZodError) {
61
- throw new StorageError(`Session file ${this.sessionPath} is malformed.`, { cause: error });
62
- }
63
- throw new StorageError('Failed to read the API session store.', { cause: error });
64
- }
65
- }
66
- async write(session) {
67
- await fs.mkdir(this.rootDir, { recursive: true, mode: 0o700 });
68
- try {
69
- await writeJsonAtomic(this.sessionPath, session);
70
- }
71
- catch (error) {
72
- throw new StorageError('Failed to persist the API session store.', { cause: error });
73
- }
74
- }
75
- async clear() {
76
- try {
77
- await fs.unlink(this.sessionPath);
78
- }
79
- catch (error) {
80
- const code = error.code;
81
- if (code === 'ENOENT') {
82
- return;
83
- }
84
- throw new StorageError('Failed to clear the API session store.', { cause: error });
85
- }
86
- }
87
- }
88
- //# sourceMappingURL=file-store.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"file-store.js","sourceRoot":"","sources":["../../src/session/file-store.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- import type { EncryptedSecretEnvelope, EncryptedStoredSecretRecord, WalletGroupSecretsJson } from '../types.js';
2
- export declare function assertEncryptionPassword(password: string | undefined): string;
3
- export declare function encryptMnemonic(mnemonic: string, password: string): Promise<EncryptedSecretEnvelope>;
4
- export declare function decryptMnemonic(envelope: EncryptedSecretEnvelope, password: string | undefined): Promise<string>;
5
- export declare function encryptSecretRecord(keyId: string, mnemonic: string, password: string): Promise<EncryptedStoredSecretRecord>;
6
- export declare function decryptSecretsJson(secretsJson: WalletGroupSecretsJson, password: string | undefined): Promise<string>;
7
- //# sourceMappingURL=crypto.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"crypto.d.ts","sourceRoot":"","sources":["../../src/storage/crypto.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,uBAAuB,EACvB,2BAA2B,EAC3B,sBAAsB,EACvB,MAAM,aAAa,CAAC;AAErB,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAM7E;AAUD,wBAAsB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC,CA4B1G;AAED,wBAAsB,eAAe,CACnC,QAAQ,EAAE,uBAAuB,EACjC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAC3B,OAAO,CAAC,MAAM,CAAC,CAoBjB;AAED,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,2BAA2B,CAAC,CAMtC;AAED,wBAAsB,kBAAkB,CACtC,WAAW,EAAE,sBAAsB,EACnC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAC3B,OAAO,CAAC,MAAM,CAAC,CAMjB"}