@renown/sdk 6.2.2-dev.5 → 6.2.2-dev.51

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 (75) hide show
  1. package/README.md +162 -1
  2. package/dist/{browser-key-storage-v4O-fjz0.js → browser-key-storage-e3RQsnLS.js} +1 -1
  3. package/dist/{browser-key-storage-v4O-fjz0.js.map → browser-key-storage-e3RQsnLS.js.map} +1 -1
  4. package/dist/constants-B7wOp9oo.js +79 -0
  5. package/dist/constants-B7wOp9oo.js.map +1 -0
  6. package/dist/crypto.d.ts +2 -2
  7. package/dist/crypto.js +2 -2
  8. package/dist/index-BF2qTv7d.d.ts +131 -0
  9. package/dist/index-BF2qTv7d.d.ts.map +1 -0
  10. package/dist/index.d.ts +11 -8
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +21 -9
  13. package/dist/index.js.map +1 -1
  14. package/dist/meta-CHgd9Qd0.js +31 -0
  15. package/dist/meta-CHgd9Qd0.js.map +1 -0
  16. package/dist/meta-D-5kvwx8.js +27 -0
  17. package/dist/meta-D-5kvwx8.js.map +1 -0
  18. package/dist/meta-DY5WCada.d.ts +19 -0
  19. package/dist/meta-DY5WCada.d.ts.map +1 -0
  20. package/dist/meta-DbqBJa4j.d.ts +19 -0
  21. package/dist/meta-DbqBJa4j.d.ts.map +1 -0
  22. package/dist/meta-DjoNJy1t.d.ts +16 -0
  23. package/dist/meta-DjoNJy1t.d.ts.map +1 -0
  24. package/dist/node.d.ts +11 -11
  25. package/dist/node.d.ts.map +1 -1
  26. package/dist/node.js +104 -12
  27. package/dist/node.js.map +1 -1
  28. package/dist/renown-builder-KOzzCXrQ.js +804 -0
  29. package/dist/renown-builder-KOzzCXrQ.js.map +1 -0
  30. package/dist/{signer-CgYhXTV7.js → signer-BpvojvCh.js} +13 -6
  31. package/dist/signer-BpvojvCh.js.map +1 -0
  32. package/dist/types-C_qc_62W.js +20 -0
  33. package/dist/types-C_qc_62W.js.map +1 -0
  34. package/dist/types-CxKG5UsV.d.ts +59 -0
  35. package/dist/types-CxKG5UsV.d.ts.map +1 -0
  36. package/dist/{signer-DYKGoYHB.d.ts → types-ocCFjR5j.d.ts} +128 -118
  37. package/dist/types-ocCFjR5j.d.ts.map +1 -0
  38. package/dist/{utils-C9ZgMs_C.d.ts → utils-DS2Ha4Bg.d.ts} +91 -96
  39. package/dist/utils-DS2Ha4Bg.d.ts.map +1 -0
  40. package/dist/wallet/index.d.ts +8 -0
  41. package/dist/wallet/index.d.ts.map +1 -0
  42. package/dist/wallet/index.js +30 -0
  43. package/dist/wallet/index.js.map +1 -0
  44. package/dist/wallet/mock/factory.d.ts +9 -0
  45. package/dist/wallet/mock/factory.d.ts.map +1 -0
  46. package/dist/wallet/mock/factory.js +35 -0
  47. package/dist/wallet/mock/factory.js.map +1 -0
  48. package/dist/wallet/mock/index.d.ts +9 -0
  49. package/dist/wallet/mock/index.d.ts.map +1 -0
  50. package/dist/wallet/mock/index.js +16 -0
  51. package/dist/wallet/mock/index.js.map +1 -0
  52. package/dist/wallet/privy/factory.d.ts +58 -0
  53. package/dist/wallet/privy/factory.d.ts.map +1 -0
  54. package/dist/wallet/privy/factory.js +258 -0
  55. package/dist/wallet/privy/factory.js.map +1 -0
  56. package/dist/wallet/privy/index.d.ts +9 -0
  57. package/dist/wallet/privy/index.d.ts.map +1 -0
  58. package/dist/wallet/privy/index.js +16 -0
  59. package/dist/wallet/privy/index.js.map +1 -0
  60. package/dist/wallet/rainbow/factory.d.ts +7 -0
  61. package/dist/wallet/rainbow/factory.d.ts.map +1 -0
  62. package/dist/wallet/rainbow/factory.js +219 -0
  63. package/dist/wallet/rainbow/factory.js.map +1 -0
  64. package/dist/wallet/rainbow/index.d.ts +9 -0
  65. package/dist/wallet/rainbow/index.d.ts.map +1 -0
  66. package/dist/wallet/rainbow/index.js +21 -0
  67. package/dist/wallet/rainbow/index.js.map +1 -0
  68. package/package.json +76 -3
  69. package/dist/browser-key-storage-DSkDBAhU.d.ts +0 -14
  70. package/dist/browser-key-storage-DSkDBAhU.d.ts.map +0 -1
  71. package/dist/renown-builder-Sn_Y2Cb2.js +0 -496
  72. package/dist/renown-builder-Sn_Y2Cb2.js.map +0 -1
  73. package/dist/signer-CgYhXTV7.js.map +0 -1
  74. package/dist/signer-DYKGoYHB.d.ts.map +0 -1
  75. package/dist/utils-C9ZgMs_C.d.ts.map +0 -1
@@ -1,9 +1,11 @@
1
- import { Action, AppActionSigner, ISigner, ISigner as ISigner$1, Signature, SignatureVerificationHandler, User, UserActionSigner } from "@powerhousedao/shared/document-model";
1
+ import { ISigner as ISigner$1, User } from "@powerhousedao/shared/document-model";
2
2
 
3
3
  //#region src/constants.d.ts
4
4
  declare const DEFAULT_RENOWN_URL = "https://www.renown.id";
5
5
  declare const DEFAULT_RENOWN_NETWORK_ID = "eip155";
6
6
  declare const DEFAULT_RENOWN_CHAIN_ID = "1";
7
+ /** Default cookie name for a server-readable Renown session (bearer token). */
8
+ declare const RENOWN_SESSION_COOKIE = "renown_session";
7
9
  declare const DOMAIN_TYPE: readonly [{
8
10
  readonly name: "version";
9
11
  readonly type: "string";
@@ -113,6 +115,105 @@ declare const CREDENTIAL_TYPES: {
113
115
  }];
114
116
  };
115
117
  //#endregion
118
+ //#region src/credential.d.ts
119
+ type Hex = `0x${string}`;
120
+ type TypedDataDomain = {
121
+ name?: string;
122
+ version?: string;
123
+ chainId?: number;
124
+ verifyingContract?: Hex;
125
+ salt?: Hex;
126
+ };
127
+ type TypedDataParameter = {
128
+ name: string;
129
+ type: string;
130
+ };
131
+ /** EIP-712 domain as signed by the credential issuer. */
132
+ type CredentialDomain = {
133
+ version: string;
134
+ chainId: number;
135
+ };
136
+ /** The credential body that is EIP-712 signed (everything except `proof`). */
137
+ type CredentialMessage = {
138
+ "@context": string[];
139
+ type: string[];
140
+ id: string;
141
+ issuer: {
142
+ id: string;
143
+ ethereumAddress: Hex;
144
+ };
145
+ credentialSubject: {
146
+ id: string;
147
+ app: string;
148
+ };
149
+ credentialSchema: {
150
+ id: string;
151
+ type: string;
152
+ };
153
+ issuanceDate: string;
154
+ expirationDate: string;
155
+ };
156
+ /** Typed-data signer; matches the loose shape used by wallet adapters. */
157
+ type SignCredentialTypedData = (args: {
158
+ domain: TypedDataDomain;
159
+ types: Record<string, readonly TypedDataParameter[]>;
160
+ primaryType: string;
161
+ message: Record<string, unknown>;
162
+ }) => Promise<Hex>;
163
+ interface BuildCredentialParams {
164
+ signTypedData: SignCredentialTypedData;
165
+ address: Hex;
166
+ chainId: number;
167
+ app: string;
168
+ /** Credential subject id: the app/client DID the credential delegates to. */
169
+ appId: string;
170
+ expiresInDays?: number;
171
+ }
172
+ /** Assemble a Renown delegation VC and sign it with the provided signer. */
173
+ declare function buildAndSignCredential(params: BuildCredentialParams): Promise<PowerhouseVerifiableCredential>;
174
+ /** Recover the address that signed a credential's EIP-712 proof. */
175
+ declare function recoverCredentialSigner(credential: PowerhouseVerifiableCredential): Promise<Hex>;
176
+ /** True when the proof was signed by the credential's declared issuer address. */
177
+ declare function verifyCredentialSignature(credential: PowerhouseVerifiableCredential): Promise<boolean>;
178
+ interface FetchDelegationCredentialOptions {
179
+ /** Ethereum address that must have issued the credential. */
180
+ address: string;
181
+ /** Chain id the credential must be scoped to. */
182
+ chainId: number;
183
+ /** App/client DID the credential must delegate to (credentialSubject.id). */
184
+ appDid: string;
185
+ /** Renown service base URL. Defaults to DEFAULT_RENOWN_URL. */
186
+ baseUrl?: string;
187
+ /** Switchboard GraphQL endpoint; when reachable, read the reactor directly. */
188
+ switchboardUrl?: string;
189
+ /** Probe {baseUrl}/api/switchboard for an endpoint (default true). */
190
+ discover?: boolean;
191
+ /** Re-verify the EIP-712 proof signature (default true). */
192
+ verifySignature?: boolean;
193
+ }
194
+ declare function fetchDelegationCredential(options: FetchDelegationCredentialOptions): Promise<PowerhouseVerifiableCredential | undefined>;
195
+ interface VerifiedAuthCredential {
196
+ address: string;
197
+ chainId: number;
198
+ networkId: string;
199
+ /** Owner identity: the pkh DID (did:pkh:<net>:<chainId>:<address>). */
200
+ did: string;
201
+ /** App/client DID the bearer token was issued by. */
202
+ appDid: string;
203
+ credential: PowerhouseVerifiableCredential;
204
+ }
205
+ interface VerifyAuthCredentialOptions {
206
+ /** Expected `aud` claim on the bearer token. */
207
+ audience?: string;
208
+ /** Renown service base URL. */
209
+ renownUrl?: string;
210
+ /** Switchboard GraphQL endpoint; when reachable, read the reactor directly. */
211
+ switchboardUrl?: string;
212
+ /** Re-verify the credential's EIP-712 proof (default true). */
213
+ verifySignature?: boolean;
214
+ }
215
+ declare function verifyAuthCredential(jwt: string, options?: VerifyAuthCredentialOptions): Promise<VerifiedAuthCredential | undefined>;
216
+ //#endregion
116
217
  //#region src/event/types.d.ts
117
218
  interface IEventEmitter<Events extends Record<string, unknown>> {
118
219
  /**
@@ -302,9 +403,9 @@ type RenownProfile = {
302
403
  documentId: string;
303
404
  username: string | null;
304
405
  ethAddress: string | null;
305
- userImage: string | null;
306
- createdAt: string;
307
- updatedAt: string;
406
+ userImage: string | null; /** Absent on a profile seeded from the session cookie (see RenownSessionProfile). */
407
+ createdAt?: string;
408
+ updatedAt?: string;
308
409
  };
309
410
  type InternalUser = User & {
310
411
  did: string;
@@ -319,6 +420,20 @@ type User$1 = InternalUser;
319
420
  * Must not throw — return undefined on failure.
320
421
  */
321
422
  type ProfileFetcher = (user: User$1, baseUrl: string) => Promise<RenownProfile | undefined>;
423
+ interface SignInParams {
424
+ /** Ethereum address of the signing wallet. */
425
+ address: `0x${string}`;
426
+ /** Chain id the credential is scoped to. */
427
+ chainId: number;
428
+ /** Wallet/Privy EIP-712 typed-data signer that authorizes the app key. */
429
+ signTypedData: SignCredentialTypedData;
430
+ /** Optional profile username to set on the RenownUser. */
431
+ username?: string;
432
+ /** Optional profile image URL to set on the RenownUser. */
433
+ userImage?: string;
434
+ /** Delegation credential lifetime in days (default 7). */
435
+ expiresInDays?: number;
436
+ }
322
437
  type Unsubscribe = () => void;
323
438
  type LoginStatus = "initial" | "checking" | "authorized" | "not-authorized";
324
439
  type RenownStorageMap = {
@@ -335,7 +450,12 @@ interface IRenown extends Pick<RenownEventEmitter, "on"> {
335
450
  readonly user: User$1 | undefined;
336
451
  readonly status: LoginStatus;
337
452
  login: (userDid: string) => Promise<User$1>;
453
+ signIn: (params: SignInParams) => Promise<User$1>;
338
454
  logout: () => Promise<void>;
455
+ /** Re-check the current credential at the source; logs out if revoked/expired. */
456
+ revalidate: () => Promise<boolean>;
457
+ /** Re-read profile attributes at the source; never logs out. Resolves true if they changed. */
458
+ refreshProfile: () => Promise<boolean>;
339
459
  readonly crypto: IRenownCrypto;
340
460
  readonly signer: ISigner$1;
341
461
  readonly did: string;
@@ -423,6 +543,8 @@ interface JsonWebKeyPairStorage {
423
543
  type DID = `did:${string}`;
424
544
  interface IRenownCrypto {
425
545
  did: DID;
546
+ /** Chain the bearer token is scoped to. Optional so an external implementation still satisfies this; the builder warns when it differs from the issuing chain. */
547
+ chainId?: number;
426
548
  publicKey: CryptoKey;
427
549
  removeDid(): Promise<void>;
428
550
  sign: (data: Uint8Array) => Promise<Uint8Array>;
@@ -435,117 +557,5 @@ interface IRenownCrypto {
435
557
  */
436
558
  interface IConnectCrypto extends IRenownCrypto {}
437
559
  //#endregion
438
- //#region src/crypto/renown-crypto.d.ts
439
- declare class RenownCrypto implements IRenownCrypto {
440
- #private;
441
- readonly did: DID;
442
- static algorithm: EcKeyAlgorithm;
443
- static signAlgorithm: {
444
- name: string;
445
- namedCurve: string;
446
- hash: string;
447
- };
448
- constructor(keyPairStorage: JsonWebKeyPairStorage, crypto: SubtleCrypto, keyPair: CryptoKeyPair, did: DID);
449
- get publicKey(): CryptoKey;
450
- getBearerToken(address: string | undefined, options?: CreateBearerTokenOptions): Promise<string>;
451
- removeDid(): Promise<void>;
452
- sign(data: Uint8Array | string): Promise<Uint8Array>;
453
- verify(data: Uint8Array, signature: Uint8Array): Promise<boolean>;
454
- get issuer(): Issuer;
455
- }
456
- /**
457
- * @deprecated Use RenownCrypto instead
458
- */
459
- declare class ConnectCrypto extends RenownCrypto {}
460
- //#endregion
461
- //#region src/crypto/renown-crypto-builder.d.ts
462
- declare class RenownCryptoBuilder {
463
- #private;
464
- private keyPairStorage?;
465
- private subtleCrypto?;
466
- withKeyPairStorage(storage: JsonWebKeyPairStorage): this;
467
- withSubtleCrypto(crypto: SubtleCrypto): this;
468
- build(): Promise<RenownCrypto>;
469
- }
470
- //#endregion
471
- //#region src/crypto/memory-key-storage.d.ts
472
- declare class MemoryKeyStorage implements JsonWebKeyPairStorage {
473
- private keyPair;
474
- constructor(keyPair?: JwkKeyPair);
475
- loadKeyPair(): Promise<JwkKeyPair | undefined>;
476
- saveKeyPair(keyPair: JwkKeyPair): Promise<void>;
477
- removeKeyPair(): Promise<void>;
478
- }
479
- //#endregion
480
- //#region src/crypto/signer.d.ts
481
- declare class RenownCryptoSigner implements ISigner {
482
- private readonly crypto;
483
- private readonly appName;
484
- user?: UserActionSigner | undefined;
485
- readonly app: AppActionSigner;
486
- constructor(crypto: IRenownCrypto, appName: string, user?: UserActionSigner | undefined);
487
- get publicKey(): CryptoKey;
488
- sign(data: Uint8Array): Promise<Uint8Array>;
489
- verify(data: Uint8Array, signature: Uint8Array): Promise<void>;
490
- signAction(action: Action, abortSignal?: AbortSignal): Promise<Signature>;
491
- /**
492
- * Signs an action including a predicted resulting state hash.
493
- *
494
- * The resulting hash is packed into the signature tuple's 4th element (index 3)
495
- * using the format: `${prevStateHash}:${resultingStateHash}`
496
- *
497
- * This allows offline verification of documents without reducer logic:
498
- * - Verifier can check that the signature is valid for the claimed resulting state
499
- * - Verifier can compare claimed resulting state to actual operation.hash
500
- *
501
- * @param action - The action to sign
502
- * @param resultingStateHash - The predicted hash of document state AFTER this action runs
503
- * @param abortSignal - Optional abort signal
504
- * @returns A Signature tuple with the resulting hash encoded in element [3]
505
- */
506
- signActionWithResultingState(action: Action, resultingStateHash: string, abortSignal?: AbortSignal): Promise<Signature>;
507
- /**
508
- * Internal signing implementation shared by signAction and signActionWithResultingState.
509
- */
510
- private _signAction;
511
- private hashAction;
512
- private buildSignatureMessage;
513
- private arrayBufferToHex;
514
- private arrayBufferToBase64;
515
- }
516
- /**
517
- * Creates a signature verification handler that verifies signatures using the Web Crypto API.
518
- * The verification uses ECDSA with P-256 curve and SHA-256 hash, matching the RenownCrypto signing algorithm.
519
- */
520
- declare function createSignatureVerifier(requireSignature?: boolean): SignatureVerificationHandler;
521
- /**
522
- * Parses the hash field (element [3]) from a signature tuple.
523
- *
524
- * Supports two formats:
525
- * - Old format: just `prevStateHash` (no colon)
526
- * - New format: `prevStateHash:resultingStateHash` (colon-separated)
527
- *
528
- * @param hashField - The 4th element of a Signature tuple
529
- * @returns Object with prevStateHash and optional resultingStateHash
530
- */
531
- declare function parseSignatureHashField(hashField: string): {
532
- prevStateHash: string;
533
- resultingStateHash: string | undefined;
534
- };
535
- /**
536
- * Extracts the resulting state hash from a signature, if present.
537
- *
538
- * @param signature - A Signature tuple
539
- * @returns The resulting state hash, or undefined if not present
540
- */
541
- declare function extractResultingHashFromSignature(signature: Signature): string | undefined;
542
- /**
543
- * Checks if a signature includes a resulting state hash.
544
- *
545
- * @param signature - A Signature tuple
546
- * @returns true if the signature includes a resulting state hash
547
- */
548
- declare function signatureHasResultingHash(signature: Signature): boolean;
549
- //#endregion
550
- export { User$1 as $, ISigner$1 as A, PKHDid as B, DIDResolutionResult as C, IPowerhouseIssuerType as D, IPowerhouseCredentialSubject as E, JWTVerified as F, RenownEvents as G, ProfileFetcher as H, JWTVerifyPolicies as I, RenownStorageMap as J, RenownProfile as K, JsonWebKey$1 as L, InternalUser as M, Issuer as N, IProof as O, JWTPayload as P, Unsubscribe as Q, KeyCapabilitySection as R, DIDResolutionMetadata as S, IAuthCredentialSubject as T, Proof as U, PowerhouseVerifiableCredential as V, RenownEventEmitter as W, ServiceEndpoint as X, Service as Y, Signer as Z, ConditionWeightedThreshold as _, signatureHasResultingHash as a, BaseStorage as at, DIDDocument as b, ConnectCrypto as c, CREDENTIAL_SCHEMA_EIP712_TYPE as ct, IConnectCrypto as d, DEFAULT_RENOWN_CHAIN_ID as dt, Verifiable as et, IRenownCrypto as f, DEFAULT_RENOWN_NETWORK_ID as ft, AuthVerifiedCredential as g, VERIFIABLE_CREDENTIAL_EIP712_TYPE as gt, AuthVerifiableCredential as h, ISSUER_TYPE as ht, parseSignatureHashField as i, W3CCredential as it, IVerifiableCredential as j, IRenown as k, RenownCrypto as l, CREDENTIAL_SUBJECT_TYPE as lt, JwkKeyPair as m, DOMAIN_TYPE as mt, createSignatureVerifier as n, VerifiedCredential as nt, MemoryKeyStorage as o, MemoryStorage as ot, JsonWebKeyPairStorage as p, DEFAULT_RENOWN_URL as pt, RenownStorage as q, extractResultingHashFromSignature as r, VerifiedJWT as rt, RenownCryptoBuilder as s, IEventEmitter as st, RenownCryptoSigner as t, VerificationMethod as tt, DID as u, CREDENTIAL_TYPES as ut, CreateBearerTokenOptions as v, EcdsaSignature as w, DIDDocumentMetadata as x, CredentialStatus as y, LoginStatus as z };
551
- //# sourceMappingURL=signer-DYKGoYHB.d.ts.map
560
+ export { IEventEmitter as $, LoginStatus as A, Service as B, InternalUser as C, JWTVerifyPolicies as D, JWTVerified as E, RenownEventEmitter as F, User$1 as G, SignInParams as H, RenownEvents as I, VerifiedCredential as J, Verifiable as K, RenownProfile as L, PowerhouseVerifiableCredential as M, ProfileFetcher as N, JsonWebKey$1 as O, Proof as P, MemoryStorage as Q, RenownStorage as R, IVerifiableCredential as S, JWTPayload as T, Signer as U, ServiceEndpoint as V, Unsubscribe as W, W3CCredential as X, VerifiedJWT as Y, BaseStorage as Z, IPowerhouseCredentialSubject as _, DEFAULT_RENOWN_URL as _t, JwkKeyPair as a, VerifiedAuthCredential as at, IRenown as b, RENOWN_SESSION_COOKIE as bt, ConditionWeightedThreshold as c, fetchDelegationCredential as ct, DIDDocument as d, verifyCredentialSignature as dt, BuildCredentialParams as et, DIDDocumentMetadata as f, CREDENTIAL_SCHEMA_EIP712_TYPE as ft, IAuthCredentialSubject as g, DEFAULT_RENOWN_NETWORK_ID as gt, EcdsaSignature as h, DEFAULT_RENOWN_CHAIN_ID as ht, JsonWebKeyPairStorage as i, SignCredentialTypedData as it, PKHDid as j, KeyCapabilitySection as k, CreateBearerTokenOptions as l, recoverCredentialSigner as lt, DIDResolutionResult as m, CREDENTIAL_TYPES as mt, IConnectCrypto as n, CredentialMessage as nt, AuthVerifiableCredential as o, VerifyAuthCredentialOptions as ot, DIDResolutionMetadata as p, CREDENTIAL_SUBJECT_TYPE as pt, VerificationMethod as q, IRenownCrypto as r, FetchDelegationCredentialOptions as rt, AuthVerifiedCredential as s, buildAndSignCredential as st, DID as t, CredentialDomain as tt, CredentialStatus as u, verifyAuthCredential as ut, IPowerhouseIssuerType as v, DOMAIN_TYPE as vt, Issuer as w, ISigner$1 as x, VERIFIABLE_CREDENTIAL_EIP712_TYPE as xt, IProof as y, ISSUER_TYPE as yt, RenownStorageMap as z };
561
+ //# sourceMappingURL=types-ocCFjR5j.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types-ocCFjR5j.d.ts","names":[],"sources":["../src/constants.ts","../src/credential.ts","../src/event/types.ts","../src/storage/common.ts","../src/types.ts","../src/crypto/types.ts"],"mappings":"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"}
@@ -1,117 +1,60 @@
1
- import { $ as User, A as ISigner, B as PKHDid, G as RenownEvents, H as ProfileFetcher, J as RenownStorageMap, M as InternalUser, N as Issuer, V as PowerhouseVerifiableCredential, W as RenownEventEmitter, f as IRenownCrypto, g as AuthVerifiedCredential, k as IRenown, nt as VerifiedCredential, ot as MemoryStorage, p as JsonWebKeyPairStorage, q as RenownStorage, v as CreateBearerTokenOptions, z as LoginStatus } from "./signer-DYKGoYHB.js";
1
+ import { A as LoginStatus, C as InternalUser, F as RenownEventEmitter, G as User$1, H as SignInParams, I as RenownEvents, J as VerifiedCredential, L as RenownProfile, M as PowerhouseVerifiableCredential, N as ProfileFetcher, Q as MemoryStorage, R as RenownStorage, b as IRenown, i as JsonWebKeyPairStorage, j as PKHDid, l as CreateBearerTokenOptions, r as IRenownCrypto, s as AuthVerifiedCredential, w as Issuer, x as ISigner$1, z as RenownStorageMap } from "./types-ocCFjR5j.js";
2
+ import { Action } from "@powerhousedao/shared/document-model";
2
3
  import { Resolver } from "did-resolver";
3
4
 
5
+ //#region src/switchboard.d.ts
6
+ declare class SwitchboardClient {
7
+ #private;
8
+ constructor(endpoint: string);
9
+ get endpoint(): string;
10
+ getCredential(params: {
11
+ address: string;
12
+ chainId: number;
13
+ appDid: string;
14
+ }): Promise<PowerhouseVerifiableCredential | undefined>;
15
+ getProfileByAddress(address: string): Promise<RenownProfile | undefined>;
16
+ createEmptyDocument(documentType: string, parentIdentifier?: string): Promise<string>;
17
+ mutateDocument(documentIdentifier: string, actions: Action[]): Promise<string>;
18
+ issueCredential(credential: PowerhouseVerifiableCredential): Promise<string>;
19
+ findOrCreateUser(address: string, profile?: {
20
+ username?: string;
21
+ userImage?: string;
22
+ }): Promise<string>;
23
+ revokeCredential(documentId: string, reason?: string): Promise<void>;
24
+ profileFetcher: ProfileFetcher;
25
+ }
26
+ //#endregion
4
27
  //#region src/common.d.ts
5
28
  declare class RenownMemoryStorage extends MemoryStorage<RenownStorageMap> {}
6
29
  declare class Renown implements IRenown {
7
30
  #private;
8
- constructor(store: RenownStorage, eventEmitter: RenownEventEmitter, crypto: IRenownCrypto, appName: string, baseUrl?: string, profileFetcher?: ProfileFetcher);
31
+ constructor(store: RenownStorage, eventEmitter: RenownEventEmitter, crypto: IRenownCrypto, appName: string, baseUrl?: string, profileFetcher?: ProfileFetcher, switchboard?: SwitchboardClient, chainId?: number);
9
32
  get baseUrl(): string;
33
+ /** Chain id this app issues credentials on; a session from another chain is rejected by {@link signIn}. */
34
+ get chainId(): number;
10
35
  get user(): InternalUser | undefined;
11
36
  get status(): LoginStatus;
12
- get signer(): ISigner;
37
+ get signer(): ISigner$1;
13
38
  get crypto(): IRenownCrypto;
14
39
  get did(): `did:${string}`;
15
40
  get profileFetcher(): ProfileFetcher | undefined;
16
- login(userDid: string): Promise<User>;
41
+ login(userDid: string): Promise<User$1>;
42
+ signIn(params: SignInParams): Promise<User$1>;
17
43
  logout(): Promise<void>;
44
+ revalidate(): Promise<boolean>;
45
+ refreshProfile(): Promise<boolean>;
18
46
  on<K extends keyof RenownEvents>(event: K, listener: (data: RenownEvents[K]) => void): () => void;
19
47
  verifyBearerToken(token: string): Promise<false | AuthVerifiedCredential>;
20
48
  getBearerToken(options: CreateBearerTokenOptions): Promise<string>;
21
49
  }
22
50
  //#endregion
23
- //#region src/credential.d.ts
24
- type Hex = `0x${string}`;
25
- type TypedDataDomain = {
26
- name?: string;
27
- version?: string;
28
- chainId?: number;
29
- verifyingContract?: Hex;
30
- salt?: Hex;
31
- };
32
- type TypedDataParameter = {
33
- name: string;
34
- type: string;
35
- };
36
- /** EIP-712 domain as signed by the credential issuer. */
37
- type CredentialDomain = {
38
- version: string;
39
- chainId: number;
40
- };
41
- /** The credential body that is EIP-712 signed (everything except `proof`). */
42
- type CredentialMessage = {
43
- "@context": string[];
44
- type: string[];
45
- id: string;
46
- issuer: {
47
- id: string;
48
- ethereumAddress: Hex;
49
- };
50
- credentialSubject: {
51
- id: string;
52
- app: string;
53
- };
54
- credentialSchema: {
55
- id: string;
56
- type: string;
57
- };
58
- issuanceDate: string;
59
- expirationDate: string;
60
- };
61
- /** Typed-data signer; matches the loose shape used by wallet adapters. */
62
- type SignCredentialTypedData = (args: {
63
- domain: TypedDataDomain;
64
- types: Record<string, readonly TypedDataParameter[]>;
65
- primaryType: string;
66
- message: Record<string, unknown>;
67
- }) => Promise<Hex>;
68
- interface BuildCredentialParams {
69
- signTypedData: SignCredentialTypedData;
70
- address: Hex;
71
- chainId: number;
72
- app: string;
73
- /** Credential subject id: the app/client DID the credential delegates to. */
74
- appId: string;
75
- expiresInDays?: number;
76
- }
77
- /** Assemble a Renown delegation VC and sign it with the provided signer. */
78
- declare function buildAndSignCredential(params: BuildCredentialParams): Promise<PowerhouseVerifiableCredential>;
79
- /** Recover the address that signed a credential's EIP-712 proof. */
80
- declare function recoverCredentialSigner(credential: PowerhouseVerifiableCredential): Promise<Hex>;
81
- /** True when the proof was signed by the credential's declared issuer address. */
82
- declare function verifyCredentialSignature(credential: PowerhouseVerifiableCredential): Promise<boolean>;
83
- interface FetchDelegationCredentialOptions {
84
- /** Ethereum address that must have issued the credential. */
85
- address: string;
86
- /** Chain id the credential must be scoped to. */
87
- chainId: number;
88
- /** App/client DID the credential must delegate to (credentialSubject.id). */
89
- appDid: string;
90
- /** Renown service base URL. Defaults to DEFAULT_RENOWN_URL. */
51
+ //#region src/discovery.d.ts
52
+ interface ResolveSwitchboardEndpointOptions {
53
+ switchboardUrl?: string;
91
54
  baseUrl?: string;
92
- /** Re-verify the EIP-712 proof signature (default true). */
93
- verifySignature?: boolean;
94
- }
95
- declare function fetchDelegationCredential(options: FetchDelegationCredentialOptions): Promise<PowerhouseVerifiableCredential | undefined>;
96
- interface VerifiedAuthCredential {
97
- address: string;
98
- chainId: number;
99
- networkId: string;
100
- /** Owner identity: the pkh DID (did:pkh:<net>:<chainId>:<address>). */
101
- did: string;
102
- /** App/client DID the bearer token was issued by. */
103
- appDid: string;
104
- credential: PowerhouseVerifiableCredential;
105
- }
106
- interface VerifyAuthCredentialOptions {
107
- /** Expected `aud` claim on the bearer token. */
108
- audience?: string;
109
- /** Renown service base URL. */
110
- renownUrl?: string;
111
- /** Re-verify the credential's EIP-712 proof (default true). */
112
- verifySignature?: boolean;
55
+ timeoutMs?: number;
113
56
  }
114
- declare function verifyAuthCredential(jwt: string, options?: VerifyAuthCredentialOptions): Promise<VerifiedAuthCredential | undefined>;
57
+ declare function resolveSwitchboardEndpoint(options: ResolveSwitchboardEndpointOptions): Promise<string | undefined>;
115
58
  //#endregion
116
59
  //#region src/renown-builder.d.ts
117
60
  interface RenownBuilderOptions {
@@ -121,7 +64,10 @@ interface RenownBuilderOptions {
121
64
  crypto?: IRenownCrypto;
122
65
  keyPairStorage?: JsonWebKeyPairStorage;
123
66
  baseUrl?: string;
67
+ switchboardUrl?: string;
124
68
  profileFetcher?: ProfileFetcher;
69
+ /** Chain id credentials are issued on (default 1). The issuer DID embeds it, so `signIn` rejects a wallet session from another chain. */
70
+ chainId?: number;
125
71
  }
126
72
  /**
127
73
  * Base builder for creating Renown instances.
@@ -160,6 +106,8 @@ declare class BaseRenownBuilder {
160
106
  * Defaults to https://www.renown.id
161
107
  */
162
108
  withBaseUrl(baseUrl: string): this;
109
+ withSwitchboardUrl(switchboardUrl: string): this;
110
+ withChainId(chainId: number): this;
163
111
  /**
164
112
  * Set a profile fetcher strategy for enriching user data after login.
165
113
  * The fetcher receives the authenticated user and the base URL,
@@ -182,6 +130,53 @@ declare class BaseRenownBuilder {
182
130
  //#region src/profile.d.ts
183
131
  declare const fetchRenownProfile: ProfileFetcher;
184
132
  //#endregion
133
+ //#region src/session.d.ts
134
+ /** Server-side view of an authenticated Renown session. */
135
+ interface RenownSession {
136
+ /** Authenticated user identity derived from the session token. */
137
+ user: User$1;
138
+ /** App/client DID the token was issued by. */
139
+ appDid: string;
140
+ /** Token expiry (epoch seconds), when present. */
141
+ expiresAt?: number;
142
+ }
143
+ /** Display hint carried alongside the token (unverified; not for auth). */
144
+ interface RenownSessionProfile {
145
+ name?: string | null;
146
+ avatar?: string | null;
147
+ /** Renown profile document id, so SSR can resolve profile links. */
148
+ documentId?: string | null;
149
+ username?: string | null;
150
+ userImage?: string | null;
151
+ }
152
+ /** The `renown_session` cookie payload: the bearer token + a display hint. */
153
+ interface RenownSessionCookie {
154
+ token: string;
155
+ profile?: RenownSessionProfile | null;
156
+ }
157
+ interface VerifyRenownSessionOptions {
158
+ /** Expected `aud` claim on the token. */
159
+ audience?: string;
160
+ /** Switchboard GraphQL endpoint used when re-verifying the credential. */
161
+ switchboardUrl?: string;
162
+ /** Renown service base URL used when re-verifying the credential. */
163
+ renownUrl?: string;
164
+ /** Also re-verify the credential against Switchboard (default false = token-only, no network). */
165
+ verifyCredential?: boolean;
166
+ }
167
+ /** Claims read from a session token without verifying its signature. */
168
+ interface RenownSessionClaims {
169
+ address?: string;
170
+ chainId?: number;
171
+ networkId?: string;
172
+ /** Expiry in epoch seconds. */
173
+ expiresAt?: number;
174
+ }
175
+ /** Serialize a session cookie value (token + optional display hint). */
176
+ declare function serializeRenownSessionCookie(value: RenownSessionCookie): string;
177
+ declare function readSessionClaims(value: string): RenownSessionClaims | undefined;
178
+ declare function verifyRenownSession(value: string, options?: VerifyRenownSessionOptions): Promise<RenownSession | undefined>;
179
+ //#endregion
185
180
  //#region src/utils.d.ts
186
181
  type ILogger = {
187
182
  level: "verbose" | "debug" | "info" | "warn" | "error";
@@ -210,5 +205,5 @@ declare function assertIsAuthCredential(credential: VerifiedCredential): asserts
210
205
  declare function createAuthBearerToken(chainId: number, networkId: string, address: string, issuer: Issuer, options?: CreateBearerTokenOptions): Promise<string>;
211
206
  declare const getResolver: () => Resolver;
212
207
  //#endregion
213
- export { Renown as C, verifyCredentialSignature as S, VerifyAuthCredentialOptions as _, getResolver as a, recoverCredentialSigner as b, fetchRenownProfile as c, BuildCredentialParams as d, CredentialDomain as f, VerifiedAuthCredential as g, SignCredentialTypedData as h, createAuthBearerToken as i, BaseRenownBuilder as l, FetchDelegationCredentialOptions as m, VerifyAuthBearerTokenOptions as n, parsePkhDid as o, CredentialMessage as p, assertIsAuthCredential as r, verifyAuthBearerToken as s, ILogger as t, RenownBuilderOptions as u, buildAndSignCredential as v, RenownMemoryStorage as w, verifyAuthCredential as x, fetchDelegationCredential as y };
214
- //# sourceMappingURL=utils-C9ZgMs_C.d.ts.map
208
+ export { SwitchboardClient as C, RenownMemoryStorage as S, BaseRenownBuilder as _, getResolver as a, resolveSwitchboardEndpoint as b, RenownSession as c, RenownSessionProfile as d, VerifyRenownSessionOptions as f, fetchRenownProfile as g, verifyRenownSession as h, createAuthBearerToken as i, RenownSessionClaims as l, serializeRenownSessionCookie as m, VerifyAuthBearerTokenOptions as n, parsePkhDid as o, readSessionClaims as p, assertIsAuthCredential as r, verifyAuthBearerToken as s, ILogger as t, RenownSessionCookie as u, RenownBuilderOptions as v, Renown as x, ResolveSwitchboardEndpointOptions as y };
209
+ //# sourceMappingURL=utils-DS2Ha4Bg.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils-DS2Ha4Bg.d.ts","names":[],"sources":["../src/switchboard.ts","../src/common.ts","../src/discovery.ts","../src/renown-builder.ts","../src/profile.ts","../src/session.ts","../src/utils.ts"],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { a as WalletAdapterImpl, c as WalletController, d as WalletThemeColors, f as normalizeWalletTheme, i as WalletAdapterFactory, l as WalletSession, n as WalletAdapter, o as WalletAdapterMeta, r as WalletAdapterDescriptor, s as WalletAdapterProvider, t as LoginMethod, u as WalletTheme } from "../types-CxKG5UsV.js";
2
+
3
+ //#region src/wallet/controller.d.ts
4
+ declare function isWalletRedirectReturn(search: string, metas: WalletAdapterMeta[]): boolean;
5
+ declare function resolveAdapters(descriptors: WalletAdapterDescriptor[] | undefined): Promise<WalletAdapter[]>;
6
+ //#endregion
7
+ export { LoginMethod, WalletAdapter, WalletAdapterDescriptor, WalletAdapterFactory, WalletAdapterImpl, WalletAdapterMeta, WalletAdapterProvider, WalletController, WalletSession, WalletTheme, WalletThemeColors, isWalletRedirectReturn, normalizeWalletTheme, resolveAdapters };
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../src/wallet/controller.ts"],"mappings":";;;iBAQgB,sBAAA,CACd,MAAA,UACA,KAAA,EAAO,iBAAA;AAAA,iBAUa,eAAA,CACpB,WAAA,EAAa,uBAAA,iBACZ,OAAA,CAAQ,aAAA"}
@@ -0,0 +1,30 @@
1
+ import { n as normalizeWalletTheme, t as LoginMethod } from "../types-C_qc_62W.js";
2
+ //#region src/wallet/controller.ts
3
+ function isWalletRedirectReturn(search, metas) {
4
+ const params = new URLSearchParams(search);
5
+ return metas.some((meta) => meta.redirectReturnParams.some((param) => params.has(param)));
6
+ }
7
+ async function resolveAdapters(descriptors) {
8
+ if (!descriptors || descriptors.length === 0) return [];
9
+ const settled = await Promise.allSettled(descriptors.map((descriptor) => descriptor.load()));
10
+ const adapters = [];
11
+ const failures = [];
12
+ settled.forEach((result, index) => {
13
+ const { meta } = descriptors[index];
14
+ if (result.status === "fulfilled") adapters.push({
15
+ ...result.value,
16
+ meta
17
+ });
18
+ else failures.push(`${meta.id}: ${describeError(result.reason)}`);
19
+ });
20
+ if (adapters.length === 0) throw new Error(`No wallet adapter could be loaded. ${failures.join("; ")}`);
21
+ if (failures.length > 0) console.error(`[renown] Some wallet adapters failed to load. ${failures.join("; ")}`);
22
+ return adapters;
23
+ }
24
+ function describeError(error) {
25
+ return error instanceof Error ? error.message : String(error);
26
+ }
27
+ //#endregion
28
+ export { LoginMethod, isWalletRedirectReturn, normalizeWalletTheme, resolveAdapters };
29
+
30
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../src/wallet/controller.ts"],"sourcesContent":["import type {\n WalletAdapter,\n WalletAdapterDescriptor,\n WalletAdapterMeta,\n} from \"./types.js\";\n\n// True when a URL search string looks like a wallet OAuth redirect return, per\n// each adapter's own declared params — no adapter-specific strings live here.\nexport function isWalletRedirectReturn(\n search: string,\n metas: WalletAdapterMeta[],\n): boolean {\n const params = new URLSearchParams(search);\n return metas.some((meta) =>\n meta.redirectReturnParams.some((param) => params.has(param)),\n );\n}\n\n// Load the descriptors the host passed in, pairing each resolved implementation\n// with its already-eager meta so identity is declared in exactly one place.\nexport async function resolveAdapters(\n descriptors: WalletAdapterDescriptor[] | undefined,\n): Promise<WalletAdapter[]> {\n if (!descriptors || descriptors.length === 0) return [];\n // allSettled, not all: one broken loader must not take the others down.\n const settled = await Promise.allSettled(\n descriptors.map((descriptor) => descriptor.load()),\n );\n\n const adapters: WalletAdapter[] = [];\n const failures: string[] = [];\n settled.forEach((result, index) => {\n const { meta } = descriptors[index];\n if (result.status === \"fulfilled\") {\n adapters.push({ ...result.value, meta });\n } else {\n failures.push(`${meta.id}: ${describeError(result.reason)}`);\n }\n });\n\n if (adapters.length === 0) {\n throw new Error(\n `No wallet adapter could be loaded. ${failures.join(\"; \")}`,\n );\n }\n if (failures.length > 0) {\n console.error(\n `[renown] Some wallet adapters failed to load. ${failures.join(\"; \")}`,\n );\n }\n return adapters;\n}\n\nfunction describeError(error: unknown): string {\n return error instanceof Error ? error.message : String(error);\n}\n"],"mappings":";;AAQA,SAAgB,uBACd,QACA,OACS;CACT,MAAM,SAAS,IAAI,gBAAgB,OAAO;AAC1C,QAAO,MAAM,MAAM,SACjB,KAAK,qBAAqB,MAAM,UAAU,OAAO,IAAI,MAAM,CAAC,CAC7D;;AAKH,eAAsB,gBACpB,aAC0B;AAC1B,KAAI,CAAC,eAAe,YAAY,WAAW,EAAG,QAAO,EAAE;CAEvD,MAAM,UAAU,MAAM,QAAQ,WAC5B,YAAY,KAAK,eAAe,WAAW,MAAM,CAAC,CACnD;CAED,MAAM,WAA4B,EAAE;CACpC,MAAM,WAAqB,EAAE;AAC7B,SAAQ,SAAS,QAAQ,UAAU;EACjC,MAAM,EAAE,SAAS,YAAY;AAC7B,MAAI,OAAO,WAAW,YACpB,UAAS,KAAK;GAAE,GAAG,OAAO;GAAO;GAAM,CAAC;MAExC,UAAS,KAAK,GAAG,KAAK,GAAG,IAAI,cAAc,OAAO,OAAO,GAAG;GAE9D;AAEF,KAAI,SAAS,WAAW,EACtB,OAAM,IAAI,MACR,sCAAsC,SAAS,KAAK,KAAK,GAC1D;AAEH,KAAI,SAAS,SAAS,EACpB,SAAQ,MACN,iDAAiD,SAAS,KAAK,KAAK,GACrE;AAEH,QAAO;;AAGT,SAAS,cAAc,OAAwB;AAC7C,QAAO,iBAAiB,QAAQ,MAAM,UAAU,OAAO,MAAM"}
@@ -0,0 +1,9 @@
1
+ import { a as WalletAdapterImpl } from "../../types-CxKG5UsV.js";
2
+ import { r as PHRenownMockAdapterConfig } from "../../meta-DY5WCada.js";
3
+
4
+ //#region src/wallet/mock/factory.d.ts
5
+ /** Headless test/dev wallet adapter: `connect()` resolves immediately with a session backed by a viem local account (real EIP-712 signatures, no wallet UI or OAuth). **TEST/DEV ONLY; never enable in production** — it signs with a known key. See the reactor-browser README "Testing" and the Academy Renown auth guide. */
6
+ declare function createMockAdapter(config: PHRenownMockAdapterConfig): WalletAdapterImpl;
7
+ //#endregion
8
+ export { createMockAdapter };
9
+ //# sourceMappingURL=factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.d.ts","names":[],"sources":["../../../src/wallet/mock/factory.ts"],"mappings":";;;;;iBAqBgB,iBAAA,CACd,MAAA,EAAQ,yBAAA,GACP,iBAAA"}