accounts 0.6.1 → 0.6.2

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 (50) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/core/Schema.d.ts +12 -12
  3. package/dist/core/adapters/dialog.d.ts.map +1 -1
  4. package/dist/core/adapters/dialog.js +3 -1
  5. package/dist/core/adapters/dialog.js.map +1 -1
  6. package/dist/core/zod/rpc.d.ts +9 -9
  7. package/dist/core/zod/rpc.js +1 -1
  8. package/dist/core/zod/rpc.js.map +1 -1
  9. package/dist/server/CliAuth.d.ts +11 -11
  10. package/dist/server/CliAuth.js +1 -1
  11. package/dist/server/CliAuth.js.map +1 -1
  12. package/dist/server/Handler.d.ts +4 -252
  13. package/dist/server/Handler.d.ts.map +1 -1
  14. package/dist/server/Handler.js +4 -573
  15. package/dist/server/Handler.js.map +1 -1
  16. package/dist/server/internal/handlers/codeAuth.d.ts +41 -0
  17. package/dist/server/internal/handlers/codeAuth.d.ts.map +1 -0
  18. package/dist/server/internal/handlers/codeAuth.js +104 -0
  19. package/dist/server/internal/handlers/codeAuth.js.map +1 -0
  20. package/dist/server/internal/handlers/feePayer.d.ts +73 -0
  21. package/dist/server/internal/handlers/feePayer.d.ts.map +1 -0
  22. package/dist/server/internal/handlers/feePayer.js +184 -0
  23. package/dist/server/internal/handlers/feePayer.js.map +1 -0
  24. package/dist/server/internal/handlers/relay.d.ts +148 -0
  25. package/dist/server/internal/handlers/relay.d.ts.map +1 -0
  26. package/dist/server/internal/handlers/relay.js +600 -0
  27. package/dist/server/internal/handlers/relay.js.map +1 -0
  28. package/dist/server/internal/handlers/utils.d.ts +12 -0
  29. package/dist/server/internal/handlers/utils.d.ts.map +1 -0
  30. package/dist/server/internal/handlers/utils.js +80 -0
  31. package/dist/server/internal/handlers/utils.js.map +1 -0
  32. package/dist/server/internal/handlers/webAuthn.d.ts +57 -0
  33. package/dist/server/internal/handlers/webAuthn.d.ts.map +1 -0
  34. package/dist/server/internal/handlers/webAuthn.js +143 -0
  35. package/dist/server/internal/handlers/webAuthn.js.map +1 -0
  36. package/package.json +2 -2
  37. package/src/core/Provider.connect.browser.test.ts +23 -2
  38. package/src/core/adapters/dialog.ts +6 -1
  39. package/src/core/zod/rpc.ts +1 -1
  40. package/src/server/CliAuth.ts +1 -1
  41. package/src/server/Handler.test.ts +3 -418
  42. package/src/server/Handler.ts +5 -766
  43. package/src/server/internal/handlers/codeAuth.ts +148 -0
  44. package/src/server/internal/handlers/feePayer.test.ts +335 -0
  45. package/src/server/internal/handlers/feePayer.ts +271 -0
  46. package/src/server/internal/handlers/relay.test.ts +767 -0
  47. package/src/server/internal/handlers/relay.ts +817 -0
  48. package/src/server/internal/handlers/utils.ts +96 -0
  49. package/src/server/internal/handlers/webAuthn.test.ts +170 -0
  50. package/src/server/internal/handlers/webAuthn.ts +213 -0
@@ -1,16 +1,9 @@
1
1
  import { Hono } from 'hono';
2
- import { Base64, Bytes, Hex, RpcRequest, RpcResponse, Signature } from 'ox';
3
- import { Transaction as core_Transaction, TxEnvelopeTempo } from 'ox/tempo';
4
- import { Credential } from 'ox/webauthn';
5
- import { createClient, http } from 'viem';
6
- import { signTransaction } from 'viem/actions';
7
- import { tempo, tempoModerato } from 'viem/chains';
8
- import { Transaction } from 'viem/tempo';
9
- import { Authentication, Registration, } from 'webauthx/server';
10
- import * as z from 'zod/mini';
11
- import * as CliAuth from './CliAuth.js';
12
2
  import * as RequestListener from './internal/requestListener.js';
13
- import * as Kv from './Kv.js';
3
+ export { codeAuth } from './internal/handlers/codeAuth.js';
4
+ export { feePayer } from './internal/handlers/feePayer.js';
5
+ export { relay } from './internal/handlers/relay.js';
6
+ export { webAuthn } from './internal/handlers/webAuthn.js';
14
7
  export function compose(handlers, options = {}) {
15
8
  const path = options.path ?? '/';
16
9
  const app = from(options);
@@ -52,567 +45,6 @@ export function from(options = {}) {
52
45
  listener: RequestListener.fromFetchHandler((request) => app.fetch(request)),
53
46
  });
54
47
  }
55
- /**
56
- * Instantiates a fee payer service request handler that can be used to
57
- * sponsor the fee for user transactions.
58
- *
59
- * @example
60
- * ### Cloudflare Worker
61
- *
62
- * ```ts
63
- * import { privateKeyToAccount } from 'viem/accounts'
64
- * import { Handler } from 'accounts/server'
65
- *
66
- * export default {
67
- * fetch(request) {
68
- * return Handler.feePayer({
69
- * account: privateKeyToAccount('0x...'),
70
- * }).fetch(request)
71
- * }
72
- * }
73
- * ```
74
- *
75
- * @example
76
- * ### Next.js
77
- *
78
- * ```ts
79
- * import { privateKeyToAccount } from 'viem/accounts'
80
- * import { Handler } from 'accounts/server'
81
- *
82
- * const handler = Handler.feePayer({
83
- * account: privateKeyToAccount('0x...'),
84
- * })
85
- *
86
- * export GET = handler.fetch
87
- * export POST = handler.fetch
88
- * ```
89
- *
90
- * @example
91
- * ### Hono
92
- *
93
- * ```ts
94
- * import { privateKeyToAccount } from 'viem/accounts'
95
- * import { Handler } from 'accounts/server'
96
- *
97
- * const handler = Handler.feePayer({
98
- * account: privateKeyToAccount('0x...'),
99
- * })
100
- *
101
- * const app = new Hono()
102
- * app.all('*', handler)
103
- *
104
- * export default app
105
- * ```
106
- *
107
- * @example
108
- * ### Node.js
109
- *
110
- * ```ts
111
- * import { privateKeyToAccount } from 'viem/accounts'
112
- * import { Handler } from 'accounts/server'
113
- *
114
- * const handler = Handler.feePayer({
115
- * account: privateKeyToAccount('0x...'),
116
- * })
117
- *
118
- * const server = createServer(handler.listener)
119
- * server.listen(3000)
120
- * ```
121
- *
122
- * @example
123
- * ### Bun
124
- *
125
- * ```ts
126
- * import { privateKeyToAccount } from 'viem/accounts'
127
- * import { Handler } from 'accounts/server'
128
- *
129
- * const handler = Handler.feePayer({
130
- * account: privateKeyToAccount('0x...'),
131
- * })
132
- *
133
- * Bun.serve(handler)
134
- * ```
135
- *
136
- * @example
137
- * ### Deno
138
- *
139
- * ```ts
140
- * import { privateKeyToAccount } from 'viem/accounts'
141
- * import { Handler } from 'accounts/server'
142
- *
143
- * const handler = Handler.feePayer({
144
- * account: privateKeyToAccount('0x...'),
145
- * })
146
- *
147
- * Deno.serve(handler)
148
- * ```
149
- *
150
- * @example
151
- * ### Express
152
- *
153
- * ```ts
154
- * import { privateKeyToAccount } from 'viem/accounts'
155
- * import { Handler } from 'accounts/server'
156
- *
157
- * const handler = Handler.feePayer({
158
- * account: privateKeyToAccount('0x...'),
159
- * })
160
- *
161
- * const app = express()
162
- * app.use(handler.listener)
163
- * app.listen(3000)
164
- * ```
165
- *
166
- * @example
167
- * ### Custom chains & transports
168
- *
169
- * ```ts
170
- * import { http } from 'viem'
171
- * import { privateKeyToAccount } from 'viem/accounts'
172
- * import { tempo, tempoModerato } from 'viem/chains'
173
- * import { Handler } from 'accounts/server'
174
- *
175
- * const handler = Handler.feePayer({
176
- * account: privateKeyToAccount('0x...'),
177
- * chains: [tempo, tempoModerato],
178
- * transports: {
179
- * [tempo.id]: http('https://rpc.tempo.xyz'),
180
- * [tempoModerato.id]: http('https://rpc.testnet.tempo.xyz'),
181
- * },
182
- * })
183
- * ```
184
- *
185
- * @param options - Options.
186
- * @returns Request handler.
187
- */
188
- export function feePayer(options) {
189
- const { account, chains = [tempo, tempoModerato], name, onRequest, path = '/', transports = {}, url, ...rest } = options;
190
- const clients = new Map();
191
- for (const chain of chains) {
192
- const transport = transports[chain.id] ?? http();
193
- clients.set(chain.id, createClient({ chain, transport }));
194
- }
195
- function getClient(chainId) {
196
- if (chainId) {
197
- const client = clients.get(chainId);
198
- if (!client)
199
- throw new Error(`Chain ${chainId} not configured`);
200
- return client;
201
- }
202
- return clients.get(chains[0].id);
203
- }
204
- const sponsor = {
205
- address: account.address,
206
- ...(name ? { name } : {}),
207
- ...(url ? { url } : {}),
208
- };
209
- const router = from(rest);
210
- router.post(path, async (c) => {
211
- const request = RpcRequest.from((await c.req.raw.json()));
212
- try {
213
- await onRequest?.(request);
214
- const method = request.method;
215
- if (method !== 'eth_fillTransaction' &&
216
- method !== 'eth_signRawTransaction' &&
217
- method !== 'eth_sendRawTransaction' &&
218
- method !== 'eth_sendRawTransactionSync')
219
- return Response.json(RpcResponse.from({
220
- error: new RpcResponse.MethodNotSupportedError({
221
- message: `Method not supported: ${request.method}`,
222
- }),
223
- }, { request }));
224
- if (method === 'eth_fillTransaction') {
225
- const [parameters] = z
226
- .readonly(z.tuple([z.record(z.string(), z.unknown())]))
227
- .parse(request.params);
228
- const chainId = resolveChainId(parameters.chainId);
229
- const client = getClient(chainId);
230
- const transaction = await (async () => {
231
- if (isPreparedFeePayerTransaction(parameters))
232
- return normalizeTempoTransaction(parameters);
233
- const fillRequest = formatFillTransactionRequest(client, {
234
- ...normalizeFillTransactionRequest(parameters),
235
- ...(typeof chainId !== 'undefined' ? { chainId } : {}),
236
- feePayer: true,
237
- });
238
- const result = (await client.request({
239
- method: 'eth_fillTransaction',
240
- params: [fillRequest],
241
- }));
242
- return normalizeTempoTransaction(result.tx);
243
- })();
244
- const from = transaction.from ??
245
- (typeof parameters.from === 'string' ? parameters.from : undefined);
246
- const { signature: _, ...withoutSenderSig } = transaction;
247
- const prepared = { ...withoutSenderSig, from };
248
- if (!prepared.from)
249
- throw new RpcResponse.InvalidParamsError({
250
- message: 'Transaction sender must be provided before fee payer signing.',
251
- });
252
- if (!account.sign)
253
- throw new Error('Fee payer account cannot sign transactions.');
254
- const feePayerSignature = Signature.from(await account.sign({
255
- hash: TxEnvelopeTempo.getFeePayerSignPayload(TxEnvelopeTempo.from(prepared), {
256
- sender: prepared.from,
257
- }),
258
- }));
259
- return rpcResult(request, {
260
- sponsor,
261
- tx: core_Transaction.toRpc({
262
- ...prepared,
263
- feePayerSignature,
264
- }),
265
- });
266
- }
267
- const serialized = request.params?.[0];
268
- if (!serialized?.startsWith('0x76') && !serialized?.startsWith('0x78'))
269
- throw new RpcResponse.InvalidParamsError({
270
- message: 'Only Tempo (0x76/0x78) transactions are supported.',
271
- });
272
- const transaction = Transaction.deserialize(serialized);
273
- if (!transaction.signature || !transaction.from)
274
- throw new RpcResponse.InvalidParamsError({
275
- message: 'Transaction must be signed by the sender before fee payer signing.',
276
- });
277
- const client = getClient(transaction.chainId);
278
- const serializedTransaction = toSerializedTransaction(await signTransaction(client, {
279
- ...transaction,
280
- account,
281
- feePayer: account,
282
- }));
283
- if (method === 'eth_signRawTransaction')
284
- return Response.json(RpcResponse.from({ result: serializedTransaction }, { request }));
285
- const result = await client.request({
286
- method: method,
287
- params: [serializedTransaction],
288
- });
289
- return Response.json(RpcResponse.from({ result }, { request }));
290
- }
291
- catch (error) {
292
- return rpcError(request, error);
293
- }
294
- });
295
- return router;
296
- }
297
- /**
298
- * Instantiates a generic device-code handler for access-key bootstrap.
299
- *
300
- * Exposes 4 endpoints:
301
- * - `GET /auth/pkce/pending/:code`
302
- * - `POST /auth/pkce/code`
303
- * - `POST /auth/pkce/poll/:code`
304
- * - `POST /auth/pkce`
305
- *
306
- * @param options - Options.
307
- * @returns Request handler.
308
- */
309
- export function codeAuth(options = {}) {
310
- const { chains = [tempo, tempoModerato], now, path = '/auth/pkce', policy, random, store = CliAuth.Store.memory(), transports = {}, ttlMs, ...rest } = options;
311
- const clients = new Map();
312
- for (const chain of chains) {
313
- const transport = transports[chain.id] ?? http();
314
- clients.set(chain.id, createClient({ chain, transport }));
315
- }
316
- function getClient(chainId) {
317
- if (typeof chainId !== 'undefined') {
318
- const id = Number(chainId);
319
- const client = clients.get(id);
320
- if (!client)
321
- throw new Error(`Chain ${id} not configured`);
322
- return client;
323
- }
324
- return clients.get(chains[0].id);
325
- }
326
- const router = from(rest);
327
- router.get(`${path}/pending/:code`, async (c) => {
328
- try {
329
- const code = c.req.param('code');
330
- const result = await CliAuth.pending({
331
- code,
332
- ...(now ? { now } : {}),
333
- store,
334
- });
335
- return Response.json(z.encode(CliAuth.pendingResponse, result));
336
- }
337
- catch (error) {
338
- const status = error instanceof CliAuth.PendingError ? error.status : 400;
339
- return Response.json({ error: error.message }, { status });
340
- }
341
- });
342
- router.post(`${path}/code`, async (c) => {
343
- try {
344
- const request = z.decode(CliAuth.createRequest, await c.req.raw.json());
345
- const chainId = request.chainId ?? chains[0].id;
346
- getClient(chainId);
347
- const result = await CliAuth.createDeviceCode({
348
- chainId,
349
- ...(now ? { now } : {}),
350
- ...(policy ? { policy } : {}),
351
- ...(random ? { random } : {}),
352
- request,
353
- store,
354
- ...(typeof ttlMs !== 'undefined' ? { ttlMs } : {}),
355
- });
356
- return Response.json(z.encode(CliAuth.createResponse, result));
357
- }
358
- catch (error) {
359
- return Response.json({ error: error.message }, { status: 400 });
360
- }
361
- });
362
- router.post(`${path}/poll/:code`, async (c) => {
363
- try {
364
- const request = z.decode(CliAuth.pollRequest, await c.req.raw.json());
365
- const code = c.req.param('code');
366
- const result = await CliAuth.poll({
367
- code,
368
- ...(now ? { now } : {}),
369
- request,
370
- store,
371
- });
372
- return Response.json(z.encode(CliAuth.pollResponse, result));
373
- }
374
- catch (error) {
375
- return Response.json({ error: error.message }, { status: 400 });
376
- }
377
- });
378
- router.post(path, async (c) => {
379
- try {
380
- const request = z.decode(CliAuth.authorizeRequest, await c.req.raw.json());
381
- const result = await CliAuth.authorize({
382
- client: getClient(request.keyAuthorization.chainId),
383
- ...(now ? { now } : {}),
384
- request,
385
- store,
386
- });
387
- return Response.json(z.encode(CliAuth.authorizeResponse, result));
388
- }
389
- catch (error) {
390
- return Response.json({ error: error.message }, { status: 400 });
391
- }
392
- });
393
- return router;
394
- }
395
- /**
396
- * Instantiates a WebAuthn ceremony handler that manages registration and
397
- * authentication flows server-side.
398
- *
399
- * Exposes 4 POST endpoints following the webauthx convention:
400
- * - `POST /register/options` — generate credential creation options
401
- * - `POST /register` — verify registration and store credential
402
- * - `POST /login/options` — generate credential request options
403
- * - `POST /login` — verify authentication
404
- *
405
- * @example
406
- * ```ts
407
- * import { Handler, Kv } from 'accounts/server'
408
- *
409
- * const handler = Handler.webAuthn({
410
- * kv: Kv.memory(),
411
- * origin: 'https://example.com',
412
- * rpId: 'example.com',
413
- * })
414
- *
415
- * export default handler
416
- * ```
417
- *
418
- * @param options - Options.
419
- * @returns Request handler.
420
- */
421
- export function webAuthn(options) {
422
- const { challengeTtl = 300, kv, onAuthenticate, onRegister, path = '', rpId, ...rest } = options;
423
- const origin = options.origin;
424
- const router = from(rest);
425
- router.post(`${path}/register/options`, async (c) => {
426
- try {
427
- const body = await c.req.raw.json();
428
- const { excludeCredentialIds, name, userId } = body;
429
- const { challenge, options } = Registration.getOptions({
430
- excludeCredentialIds,
431
- name,
432
- rp: { id: rpId, name: rpId },
433
- ...(userId ? { user: { id: new TextEncoder().encode(userId), name } } : undefined),
434
- });
435
- await kv.set(`challenge:${challenge}`, Date.now());
436
- return Response.json({ options });
437
- }
438
- catch (error) {
439
- return Response.json({ error: error.message }, { status: 400 });
440
- }
441
- });
442
- router.post(`${path}/register`, async (c) => {
443
- try {
444
- const credential = (await c.req.raw.json());
445
- const deserialized = Credential.deserialize(credential);
446
- const clientData = JSON.parse(Bytes.toString(new Uint8Array(deserialized.clientDataJSON)));
447
- const challenge = Hex.fromBytes(Base64.toBytes(clientData.challenge));
448
- const stored = await kv.get(`challenge:${challenge}`);
449
- if (!stored || Date.now() - stored > challengeTtl * 1_000)
450
- throw new Error('Missing or expired challenge');
451
- await kv.delete(`challenge:${challenge}`);
452
- const result = Registration.verify(credential, {
453
- challenge,
454
- origin,
455
- rpId,
456
- });
457
- const { publicKey } = result.credential;
458
- const credentialId = credential.id;
459
- await kv.set(`credential:${credentialId}`, { publicKey });
460
- const json = { credentialId, publicKey };
461
- const hook = await onRegister?.({ credentialId, publicKey, request: c.req.raw });
462
- return mergeResponse(json, hook);
463
- }
464
- catch (error) {
465
- return Response.json({ error: error.message }, { status: 400 });
466
- }
467
- });
468
- router.post(`${path}/login/options`, async (c) => {
469
- try {
470
- const body = await c.req.raw.json();
471
- const { allowCredentialIds, challenge: requestChallenge, credentialId, mediation, } = body;
472
- const { challenge, options: authOptions } = Authentication.getOptions({
473
- challenge: requestChallenge,
474
- credentialId: allowCredentialIds ?? credentialId,
475
- rpId,
476
- });
477
- const options = mediation ? { ...authOptions, mediation } : authOptions;
478
- await kv.set(`challenge:${challenge}`, Date.now());
479
- return Response.json({ options });
480
- }
481
- catch (error) {
482
- return Response.json({ error: error.message }, { status: 400 });
483
- }
484
- });
485
- router.post(`${path}/login`, async (c) => {
486
- try {
487
- const response = (await c.req.raw.json());
488
- const clientData = JSON.parse(response.metadata.clientDataJSON);
489
- const challenge = Hex.fromBytes(Base64.toBytes(clientData.challenge));
490
- const stored = await kv.get(`challenge:${challenge}`);
491
- if (!stored || Date.now() - stored > challengeTtl * 1_000)
492
- throw new Error('Missing or expired challenge');
493
- await kv.delete(`challenge:${challenge}`);
494
- const credentialData = await kv.get(`credential:${response.id}`);
495
- if (!credentialData)
496
- throw new Error('Unknown credential');
497
- const valid = Authentication.verify(response, {
498
- challenge,
499
- origin,
500
- publicKey: credentialData.publicKey,
501
- rpId,
502
- });
503
- if (!valid)
504
- throw new Error('Authentication failed');
505
- const rawResponse = response.raw?.response;
506
- const userHandle = rawResponse?.userHandle;
507
- const json = {
508
- credentialId: response.id,
509
- publicKey: credentialData.publicKey,
510
- ...(userHandle && userHandle.length > 0 ? { userId: userHandle } : undefined),
511
- };
512
- const hook = await onAuthenticate?.({ ...json, request: c.req.raw });
513
- return mergeResponse(json, hook);
514
- }
515
- catch (error) {
516
- return Response.json({ error: error.message }, { status: 400 });
517
- }
518
- });
519
- return router;
520
- }
521
- /** @internal */
522
- function resolveChainId(value) {
523
- if (typeof value === 'number')
524
- return value;
525
- if (typeof value === 'bigint')
526
- return Number(value);
527
- if (typeof value === 'string' && Hex.validate(value))
528
- return Hex.toNumber(value);
529
- return undefined;
530
- }
531
- /** @internal */
532
- function isPreparedFeePayerTransaction(value) {
533
- return (typeof value.from === 'string' &&
534
- typeof resolveChainId(value.chainId) === 'number' &&
535
- typeof value.gas !== 'undefined' &&
536
- typeof value.nonce !== 'undefined' &&
537
- (typeof value.maxFeePerGas !== 'undefined' || typeof value.gasPrice !== 'undefined'));
538
- }
539
- /** @internal */
540
- function formatFillTransactionRequest(client, value) {
541
- const format = client.chain?.formatters?.transactionRequest?.format;
542
- if (!format)
543
- return value;
544
- return format({ ...value }, 'fillTransaction');
545
- }
546
- /** @internal */
547
- function normalizeFillTransactionRequest(value) {
548
- if (typeof value.to !== 'undefined' || typeof value.data !== 'undefined')
549
- return value;
550
- if (!Array.isArray(value.calls) || value.calls.length !== 1)
551
- return value;
552
- const [call] = value.calls;
553
- const { calls: _, ...rest } = value;
554
- return {
555
- ...rest,
556
- ...(typeof call?.data !== 'undefined' ? { data: call.data } : {}),
557
- ...(typeof call?.to !== 'undefined' ? { to: call.to } : {}),
558
- ...(typeof call?.value !== 'undefined' ? { value: normalizeFillValue(call.value) } : {}),
559
- };
560
- }
561
- /** @internal */
562
- function normalizeFillValue(value) {
563
- if (typeof value !== 'string' || !value.startsWith('0x'))
564
- return value;
565
- return BigInt(value === '0x' ? '0x0' : value);
566
- }
567
- /** @internal */
568
- function normalizeTempoTransaction(value) {
569
- if (!value)
570
- throw new Error('Expected `tx` in eth_fillTransaction response.');
571
- return core_Transaction.fromRpc({ type: '0x76', ...value });
572
- }
573
- /** @internal */
574
- function rpcError(request, error) {
575
- if (error instanceof RpcResponse.InvalidParamsError)
576
- return Response.json(RpcResponse.from({ error }, { request }));
577
- if (error instanceof RpcResponse.MethodNotSupportedError)
578
- return Response.json(RpcResponse.from({ error }, { request }));
579
- if (error.name === 'ZodError')
580
- return Response.json(RpcResponse.from({
581
- error: new RpcResponse.InvalidParamsError({
582
- message: error.message,
583
- }),
584
- }, { request }));
585
- return Response.json(RpcResponse.from({
586
- error: new RpcResponse.InternalError({
587
- message: error.message,
588
- }),
589
- }, { request }));
590
- }
591
- /** @internal */
592
- function rpcResult(request, result) {
593
- return Response.json(RpcResponse.from({ result }, { request }));
594
- }
595
- /** @internal */
596
- function toSerializedTransaction(value) {
597
- if (typeof value === 'string')
598
- return value;
599
- if (value && typeof value === 'object' && 'raw' in value && typeof value.raw === 'string')
600
- return value.raw;
601
- throw new Error('Expected a serialized transaction result.');
602
- }
603
- /** @internal */
604
- async function mergeResponse(json, hook) {
605
- if (!hook)
606
- return Response.json(json);
607
- const extra = (await hook.json().catch(() => ({})));
608
- const headers = new Headers(hook.headers);
609
- headers.set('content-type', 'application/json');
610
- return new Response(JSON.stringify({ ...json, ...extra }), {
611
- headers,
612
- status: hook.status,
613
- });
614
- }
615
- /** @internal */
616
48
  function normalizeHeaders(headers) {
617
49
  if (!headers)
618
50
  return new Headers();
@@ -620,7 +52,6 @@ function normalizeHeaders(headers) {
620
52
  return headers;
621
53
  return new Headers(headers);
622
54
  }
623
- /** @internal */
624
55
  function corsToHeaders(cors) {
625
56
  if (cors === false)
626
57
  return new Headers();
@@ -1 +1 @@
1
- {"version":3,"file":"Handler.js","sourceRoot":"","sources":["../../src/server/Handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Handler.js","sourceRoot":"","sources":["../../src/server/Handler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ import type { Chain, Transport } from 'viem';
2
+ import * as CliAuth from '../../CliAuth.js';
3
+ import { type Handler, from } from '../../Handler.js';
4
+ /**
5
+ * Instantiates a generic device-code handler for access-key bootstrap.
6
+ *
7
+ * Exposes 4 endpoints:
8
+ * - `GET /auth/pkce/pending/:code`
9
+ * - `POST /auth/pkce/code`
10
+ * - `POST /auth/pkce/poll/:code`
11
+ * - `POST /auth/pkce`
12
+ *
13
+ * @param options - Options.
14
+ * @returns Request handler.
15
+ */
16
+ export declare function codeAuth(options?: codeAuth.Options): Handler;
17
+ export declare namespace codeAuth {
18
+ type Options = from.Options & {
19
+ /**
20
+ * Supported chains. The handler resolves the client based on chain IDs carried
21
+ * by device-code requests and key authorizations.
22
+ * @default [tempo, tempoModerato]
23
+ */
24
+ chains?: readonly [Chain, ...Chain[]] | undefined;
25
+ /** Time source used for TTL evaluation. */
26
+ now?: (() => number) | undefined;
27
+ /** Path prefix for the code auth endpoints. @default "/auth/pkce" */
28
+ path?: string | undefined;
29
+ /** Policy used to validate and default requested CLI auth fields. */
30
+ policy?: CliAuth.Policy | undefined;
31
+ /** Random byte generator used for device-code allocation. */
32
+ random?: ((size: number) => Uint8Array) | undefined;
33
+ /** Device-code store. */
34
+ store?: CliAuth.Store | undefined;
35
+ /** Transports keyed by chain ID. Defaults to `http()` for each chain. */
36
+ transports?: Record<number, Transport> | undefined;
37
+ /** Pending entry TTL in milliseconds. @default 600000 */
38
+ ttlMs?: number | undefined;
39
+ };
40
+ }
41
+ //# sourceMappingURL=codeAuth.d.ts.map