@renown/sdk 6.2.2-dev.67 → 6.2.2-dev.69

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 (31) hide show
  1. package/dist/crypto.d.ts +2 -2
  2. package/dist/{index-DNl6udpK.d.ts → index-BLIpkdF7.d.ts} +2 -2
  3. package/dist/{index-DNl6udpK.d.ts.map → index-BLIpkdF7.d.ts.map} +1 -1
  4. package/dist/index.d.ts +4 -4
  5. package/dist/index.js +1 -1
  6. package/dist/{local-credential-verifier-C_XsxGgz.js → local-credential-verifier-CU8hmFlR.js} +30 -3
  7. package/dist/local-credential-verifier-CU8hmFlR.js.map +1 -0
  8. package/dist/{meta-HoXT6MS0.d.ts → meta-BesJP74N.d.ts} +2 -2
  9. package/dist/{meta-HoXT6MS0.d.ts.map → meta-BesJP74N.d.ts.map} +1 -1
  10. package/dist/{meta-CuSSO6OA.d.ts → meta-bV7L-1yb.d.ts} +2 -2
  11. package/dist/{meta-CuSSO6OA.d.ts.map → meta-bV7L-1yb.d.ts.map} +1 -1
  12. package/dist/node.d.ts +4 -4
  13. package/dist/node.js +1 -1
  14. package/dist/{types-DVcz43Fb.d.ts → types-BGQKPoUr.d.ts} +3 -3
  15. package/dist/{types-DVcz43Fb.d.ts.map → types-BGQKPoUr.d.ts.map} +1 -1
  16. package/dist/{types-b2fgIxlx.d.ts → types-C-hJrsQg.d.ts} +2 -2
  17. package/dist/{types-b2fgIxlx.d.ts.map → types-C-hJrsQg.d.ts.map} +1 -1
  18. package/dist/{types-C3PZqMdJ.d.ts → types-DInveFLz.d.ts} +2 -2
  19. package/dist/{types-C3PZqMdJ.d.ts.map → types-DInveFLz.d.ts.map} +1 -1
  20. package/dist/{utils-CrNR-mv8.d.ts → utils-DtWREYeO.d.ts} +2 -2
  21. package/dist/utils-DtWREYeO.d.ts.map +1 -0
  22. package/dist/wallet/index.d.ts +1 -1
  23. package/dist/wallet/mock/factory.d.ts +2 -2
  24. package/dist/wallet/mock/index.d.ts +2 -2
  25. package/dist/wallet/privy/factory.d.ts +3 -3
  26. package/dist/wallet/privy/index.d.ts +2 -2
  27. package/dist/wallet/rainbow/factory.d.ts +2 -2
  28. package/dist/wallet/rainbow/index.d.ts +2 -2
  29. package/package.json +2 -2
  30. package/dist/local-credential-verifier-C_XsxGgz.js.map +0 -1
  31. package/dist/utils-CrNR-mv8.d.ts.map +0 -1
package/dist/crypto.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- import { a as JwkKeyPair, i as JsonWebKeyPairStorage, n as IConnectCrypto, r as IRenownCrypto, t as DID } from "./types-DVcz43Fb.js";
2
- import { a as parseSignatureHashField, c as RenownCryptoBuilder, i as extractResultingHashFromSignature, l as ConnectCrypto, n as RenownCryptoSigner, o as signatureHasResultingHash, r as createSignatureVerifier, s as MemoryKeyStorage, t as BrowserKeyStorage, u as RenownCrypto } from "./index-DNl6udpK.js";
1
+ import { a as JwkKeyPair, i as JsonWebKeyPairStorage, n as IConnectCrypto, r as IRenownCrypto, t as DID } from "./types-BGQKPoUr.js";
2
+ import { a as parseSignatureHashField, c as RenownCryptoBuilder, i as extractResultingHashFromSignature, l as ConnectCrypto, n as RenownCryptoSigner, o as signatureHasResultingHash, r as createSignatureVerifier, s as MemoryKeyStorage, t as BrowserKeyStorage, u as RenownCrypto } from "./index-BLIpkdF7.js";
3
3
  export { BrowserKeyStorage, ConnectCrypto, DID, IConnectCrypto, IRenownCrypto, JsonWebKeyPairStorage, JwkKeyPair, MemoryKeyStorage, RenownCrypto, RenownCryptoBuilder, RenownCryptoSigner, createSignatureVerifier, extractResultingHashFromSignature, parseSignatureHashField, signatureHasResultingHash };
@@ -1,4 +1,4 @@
1
- import { a as JwkKeyPair, i as JsonWebKeyPairStorage, l as CreateBearerTokenOptions, r as IRenownCrypto, t as DID, w as Issuer } from "./types-DVcz43Fb.js";
1
+ import { a as JwkKeyPair, i as JsonWebKeyPairStorage, l as CreateBearerTokenOptions, r as IRenownCrypto, t as DID, w as Issuer } from "./types-BGQKPoUr.js";
2
2
  import { Action, AppActionSigner, ISigner, Signature, SignatureVerificationHandler, UserActionSigner } from "@powerhousedao/shared/document-model";
3
3
 
4
4
  //#region src/crypto/renown-crypto.d.ts
@@ -128,4 +128,4 @@ declare class BrowserKeyStorage implements JsonWebKeyPairStorage {
128
128
  }
129
129
  //#endregion
130
130
  export { parseSignatureHashField as a, RenownCryptoBuilder as c, extractResultingHashFromSignature as i, ConnectCrypto as l, RenownCryptoSigner as n, signatureHasResultingHash as o, createSignatureVerifier as r, MemoryKeyStorage as s, BrowserKeyStorage as t, RenownCrypto as u };
131
- //# sourceMappingURL=index-DNl6udpK.d.ts.map
131
+ //# sourceMappingURL=index-BLIpkdF7.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-DNl6udpK.d.ts","names":[],"sources":["../src/crypto/renown-crypto.ts","../src/crypto/renown-crypto-builder.ts","../src/crypto/memory-key-storage.ts","../src/crypto/signer.ts","../src/crypto/browser-key-storage.ts"],"mappings":";;;;cAUa,YAAA,YAAwB,aAAA;EAAA;WAK1B,GAAA,EAAK,GAAA;EALU;EAAA,SAOf,OAAA;EAAA,OAEF,SAAA,EAAS,cAAA;EAAA,OACT,aAAA;;;;;cAGL,cAAA,EAAgB,qBAAA,EAChB,MAAA,EAAQ,YAAA,EACR,OAAA,EAAS,aAAA,EACT,GAAA,EAAK,GAAA,EACL,OAAA;EAAA,IASE,SAAA,CAAA,GAAS,SAAA;EAIP,cAAA,CACJ,OAAA,sBACA,OAAA,GAAU,wBAAA,GACT,OAAA;EAUG,SAAA,CAAA,GAAa,OAAA;EAQb,IAAA,CAAK,IAAA,EAAM,UAAA,YAAsB,OAAA,CAAQ,UAAA;EAazC,MAAA,CAAO,IAAA,EAAM,UAAA,EAAY,SAAA,EAAW,UAAA,GAAa,OAAA;EAAA,IASnD,MAAA,CAAA,GAAU,MAAA;AAAA;;;;cAiBH,aAAA,SAAsB,YAAA;;;cC3FtB,mBAAA;EAAA;UACH,cAAA;EAAA,QACA,YAAA;EAAA,QACA,OAAA;EAER,kBAAA,CAAmB,OAAA,EAAS,qBAAA;EAK5B,gBAAA,CAAiB,MAAA,EAAQ,YAAA;EAOzB,WAAA,CAAY,OAAA;EAKN,KAAA,CAAA,GAAS,OAAA,CAAQ,YAAA;AAAA;;;cC7BZ,gBAAA,YAA4B,qBAAA;EAAA,QAC/B,OAAA;cAEI,OAAA,GAAU,UAAA;EAItB,WAAA,CAAA,GAAW,OAAA,CAAA,UAAA;EAIX,WAAA,CAAY,OAAA,EAAS,UAAA,GAAU,OAAA;EAK/B,aAAA,CAAA,GAAa,OAAA;AAAA;;;cCDF,kBAAA,YAA8B,OAAA;EAAA,iBAItB,MAAA;EAAA,iBACA,OAAA;EACV,IAAA,GAAO,gBAAA;EAAA,SALP,GAAA,EAAK,eAAA;cAGK,MAAA,EAAQ,aAAA,EACR,OAAA,UACV,IAAA,GAAO,gBAAA;EAAA,IAQZ,SAAA,CAAA,GAAS,SAAA;EAIP,IAAA,CAAK,IAAA,EAAM,UAAA,GAAa,OAAA,CAAQ,UAAA;EAIhC,MAAA,CAAO,IAAA,EAAM,UAAA,EAAY,SAAA,EAAW,UAAA,GAAa,OAAA;EAOjD,UAAA,CACJ,MAAA,EAAQ,MAAA,EACR,WAAA,GAAc,WAAA,GACb,OAAA,CAAQ,SAAA;EHNR;;;;;;;;;;;;;;;EG0BG,4BAAA,CACJ,MAAA,EAAQ,MAAA,EACR,kBAAA,UACA,WAAA,GAAc,WAAA,GACb,OAAA,CAAQ,SAAA;EHxDF;;;EAAA,QGiEK,WAAA;EAAA,QAiCA,UAAA;EAAA,QAYN,qBAAA;EAAA,QASA,gBAAA;EAAA,QAQA,mBAAA;AAAA;;;;;iBAcM,uBAAA,CACd,gBAAA,aACC,4BAAA;;;;;;;;;;;iBAgNa,uBAAA,CAAwB,SAAA;EACtC,aAAA;EACA,kBAAA;AAAA;;;;;;;iBAuBc,iCAAA,CACd,SAAA,EAAW,SAAA;;;;;;;iBAaG,yBAAA,CAA0B,SAAA,EAAW,SAAA;;;cCjZxC,iBAAA,YAA6B,qBAAA;EAAA;cAG5B,EAAA,EAAI,WAAA;EAAA,OAIH,MAAA,CACX,MAAA,YACC,OAAA,CAAQ,iBAAA;EA4CL,WAAA,CAAY,OAAA,EAAS,UAAA,GAAU,OAAA;EAS/B,WAAA,CAAA,GAAe,OAAA,CAAQ,UAAA;EAavB,aAAA,CAAA,GAAiB,OAAA;AAAA"}
1
+ {"version":3,"file":"index-BLIpkdF7.d.ts","names":[],"sources":["../src/crypto/renown-crypto.ts","../src/crypto/renown-crypto-builder.ts","../src/crypto/memory-key-storage.ts","../src/crypto/signer.ts","../src/crypto/browser-key-storage.ts"],"mappings":";;;;cAUa,YAAA,YAAwB,aAAA;EAAA;WAK1B,GAAA,EAAK,GAAA;EALU;EAAA,SAOf,OAAA;EAAA,OAEF,SAAA,EAAS,cAAA;EAAA,OACT,aAAA;;;;;cAGL,cAAA,EAAgB,qBAAA,EAChB,MAAA,EAAQ,YAAA,EACR,OAAA,EAAS,aAAA,EACT,GAAA,EAAK,GAAA,EACL,OAAA;EAAA,IASE,SAAA,CAAA,GAAS,SAAA;EAIP,cAAA,CACJ,OAAA,sBACA,OAAA,GAAU,wBAAA,GACT,OAAA;EAUG,SAAA,CAAA,GAAa,OAAA;EAQb,IAAA,CAAK,IAAA,EAAM,UAAA,YAAsB,OAAA,CAAQ,UAAA;EAazC,MAAA,CAAO,IAAA,EAAM,UAAA,EAAY,SAAA,EAAW,UAAA,GAAa,OAAA;EAAA,IASnD,MAAA,CAAA,GAAU,MAAA;AAAA;;;;cAiBH,aAAA,SAAsB,YAAA;;;cC3FtB,mBAAA;EAAA;UACH,cAAA;EAAA,QACA,YAAA;EAAA,QACA,OAAA;EAER,kBAAA,CAAmB,OAAA,EAAS,qBAAA;EAK5B,gBAAA,CAAiB,MAAA,EAAQ,YAAA;EAOzB,WAAA,CAAY,OAAA;EAKN,KAAA,CAAA,GAAS,OAAA,CAAQ,YAAA;AAAA;;;cC7BZ,gBAAA,YAA4B,qBAAA;EAAA,QAC/B,OAAA;cAEI,OAAA,GAAU,UAAA;EAItB,WAAA,CAAA,GAAW,OAAA,CAAA,UAAA;EAIX,WAAA,CAAY,OAAA,EAAS,UAAA,GAAU,OAAA;EAK/B,aAAA,CAAA,GAAa,OAAA;AAAA;;;cCDF,kBAAA,YAA8B,OAAA;EAAA,iBAItB,MAAA;EAAA,iBACA,OAAA;EACV,IAAA,GAAO,gBAAA;EAAA,SALP,GAAA,EAAK,eAAA;cAGK,MAAA,EAAQ,aAAA,EACR,OAAA,UACV,IAAA,GAAO,gBAAA;EAAA,IAQZ,SAAA,CAAA,GAAS,SAAA;EAIP,IAAA,CAAK,IAAA,EAAM,UAAA,GAAa,OAAA,CAAQ,UAAA;EAIhC,MAAA,CAAO,IAAA,EAAM,UAAA,EAAY,SAAA,EAAW,UAAA,GAAa,OAAA;EAOjD,UAAA,CACJ,MAAA,EAAQ,MAAA,EACR,WAAA,GAAc,WAAA,GACb,OAAA,CAAQ,SAAA;EHNR;;;;;;;;;;;;;;;EG0BG,4BAAA,CACJ,MAAA,EAAQ,MAAA,EACR,kBAAA,UACA,WAAA,GAAc,WAAA,GACb,OAAA,CAAQ,SAAA;EHxDF;;;EAAA,QGiEK,WAAA;EAAA,QAiCA,UAAA;EAAA,QAYN,qBAAA;EAAA,QASA,gBAAA;EAAA,QAQA,mBAAA;AAAA;;;;;iBAcM,uBAAA,CACd,gBAAA,aACC,4BAAA;;;;;;;;;;;iBAgNa,uBAAA,CAAwB,SAAA;EACtC,aAAA;EACA,kBAAA;AAAA;;;;;;;iBAuBc,iCAAA,CACd,SAAA,EAAW,SAAA;;;;;;;iBAaG,yBAAA,CAA0B,SAAA,EAAW,SAAA;;;cCjZxC,iBAAA,YAA6B,qBAAA;EAAA;cAG5B,EAAA,EAAI,WAAA;EAAA,OAIH,MAAA,CACX,MAAA,YACC,OAAA,CAAQ,iBAAA;EA4CL,WAAA,CAAY,OAAA,EAAS,UAAA,GAAU,OAAA;EAS/B,WAAA,CAAA,GAAe,OAAA,CAAQ,UAAA;EAavB,aAAA,CAAA,GAAiB,OAAA;AAAA"}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
- import { $ as IEventEmitter, A as LoginStatus, B as Service, C as InternalUser, Ct as ISSUER_TYPE, D as JWTVerifyPolicies, E as JWTVerified, Et as VERIFIABLE_CREDENTIAL_EIP712_TYPE, F as RenownEventEmitter, G as User, H as SignInParams, I as RenownEvents, J as VerifiedCredential, K as Verifiable, L as RenownProfile, M as PowerhouseVerifiableCredential, N as ProfileFetcher, O as JsonWebKey, P as Proof, R as RenownStorage, S as IVerifiableCredential, St as DOMAIN_TYPE, T as JWTPayload, Tt as RENOWN_SESSION_COOKIE, U as Signer, V as ServiceEndpoint, W as Unsubscribe, X as W3CCredential, Y as VerifiedJWT, Z as BaseStorage, _ as IPowerhouseCredentialSubject, _t as CREDENTIAL_SUBJECT_TYPE, a as JwkKeyPair, at as VerifiedAuthCredential, b as IRenown, bt as DEFAULT_RENOWN_NETWORK_ID, c as ConditionWeightedThreshold, ct as fetchDelegationCredential, d as DIDDocument, dt as verifyCredentialSignature, et as BuildCredentialParams, f as DIDDocumentMetadata, ft as MissingSwitchboardError, g as IAuthCredentialSubject, gt as CREDENTIAL_SCHEMA_EIP712_TYPE, h as EcdsaSignature, ht as SwitchboardSource, i as JsonWebKeyPairStorage, it as SignCredentialTypedData, j as PKHDid, k as KeyCapabilitySection, l as CreateBearerTokenOptions, lt as recoverCredentialSigner, m as DIDResolutionResult, mt as SwitchboardRequestFn, n as IConnectCrypto, nt as CredentialMessage, o as AuthVerifiableCredential, ot as VerifyAuthCredentialOptions, p as DIDResolutionMetadata, pt as SwitchboardClient, q as VerificationMethod, r as IRenownCrypto, rt as FetchDelegationCredentialOptions, s as AuthVerifiedCredential, st as buildAndSignCredential, t as DID, tt as CredentialDomain, u as CredentialStatus, ut as verifyAuthCredential, v as IPowerhouseIssuerType, vt as CREDENTIAL_TYPES, w as Issuer, wt as RENOWN_READ_MODEL_SUBGRAPH, x as ISigner, xt as DEFAULT_RENOWN_URL, y as IProof, yt as DEFAULT_RENOWN_CHAIN_ID, z as RenownStorageMap } from "./types-DVcz43Fb.js";
2
- import { a as parseSignatureHashField, c as RenownCryptoBuilder, i as extractResultingHashFromSignature, l as ConnectCrypto, n as RenownCryptoSigner, o as signatureHasResultingHash, r as createSignatureVerifier, s as MemoryKeyStorage, t as BrowserKeyStorage, u as RenownCrypto } from "./index-DNl6udpK.js";
3
- import { C as resolveSwitchboardEndpoint, S as ResolveSwitchboardEndpointOptions, T as RenownMemoryStorage, _ as CredentialCheck, a as getResolver, b as BaseRenownBuilder, d as RenownSessionProfile, g as fetchRenownProfile, i as createAuthBearerToken, n as VerifyAuthBearerTokenOptions, o as parsePkhDid, r as assertIsAuthCredential, s as verifyAuthBearerToken, t as ILogger, u as RenownSessionCookie, v as LocalCredentialVerifierOptions, w as Renown, x as RenownBuilderOptions, y as createLocalCredentialVerifier } from "./utils-CrNR-mv8.js";
1
+ import { A as LoginStatus, B as Service, C as InternalUser, Ct as DOMAIN_TYPE, D as JWTVerifyPolicies, Dt as VERIFIABLE_CREDENTIAL_EIP712_TYPE, E as JWTVerified, Et as RENOWN_SESSION_COOKIE, F as RenownEventEmitter, G as User, H as SignInParams, I as RenownEvents, J as VerificationMethod, K as UserActionSigner, L as RenownProfile, M as PowerhouseVerifiableCredential, N as ProfileFetcher, O as JsonWebKey, P as Proof, Q as BaseStorage, R as RenownStorage, S as IVerifiableCredential, St as DEFAULT_RENOWN_URL, T as JWTPayload, Tt as RENOWN_READ_MODEL_SUBGRAPH, U as Signer, V as ServiceEndpoint, W as Unsubscribe, X as VerifiedJWT, Y as VerifiedCredential, Z as W3CCredential, _ as IPowerhouseCredentialSubject, _t as CREDENTIAL_SCHEMA_EIP712_TYPE, a as JwkKeyPair, at as SignCredentialTypedData, b as IRenown, bt as DEFAULT_RENOWN_CHAIN_ID, c as ConditionWeightedThreshold, ct as buildAndSignCredential, d as DIDDocument, dt as verifyAuthCredential, et as IEventEmitter, f as DIDDocumentMetadata, ft as verifyCredentialSignature, g as IAuthCredentialSubject, gt as SwitchboardSource, h as EcdsaSignature, ht as SwitchboardRequestFn, i as JsonWebKeyPairStorage, it as FetchDelegationCredentialOptions, j as PKHDid, k as KeyCapabilitySection, l as CreateBearerTokenOptions, lt as fetchDelegationCredential, m as DIDResolutionResult, mt as SwitchboardClient, n as IConnectCrypto, nt as CredentialDomain, o as AuthVerifiableCredential, ot as VerifiedAuthCredential, p as DIDResolutionMetadata, pt as MissingSwitchboardError, q as Verifiable, r as IRenownCrypto, rt as CredentialMessage, s as AuthVerifiedCredential, st as VerifyAuthCredentialOptions, t as DID, tt as BuildCredentialParams, u as CredentialStatus, ut as recoverCredentialSigner, v as IPowerhouseIssuerType, vt as CREDENTIAL_SUBJECT_TYPE, w as Issuer, wt as ISSUER_TYPE, x as ISigner, xt as DEFAULT_RENOWN_NETWORK_ID, y as IProof, yt as CREDENTIAL_TYPES, z as RenownStorageMap } from "./types-BGQKPoUr.js";
2
+ import { a as parseSignatureHashField, c as RenownCryptoBuilder, i as extractResultingHashFromSignature, l as ConnectCrypto, n as RenownCryptoSigner, o as signatureHasResultingHash, r as createSignatureVerifier, s as MemoryKeyStorage, t as BrowserKeyStorage, u as RenownCrypto } from "./index-BLIpkdF7.js";
3
+ import { C as resolveSwitchboardEndpoint, S as ResolveSwitchboardEndpointOptions, T as RenownMemoryStorage, _ as CredentialCheck, a as getResolver, b as BaseRenownBuilder, d as RenownSessionProfile, g as fetchRenownProfile, i as createAuthBearerToken, n as VerifyAuthBearerTokenOptions, o as parsePkhDid, r as assertIsAuthCredential, s as verifyAuthBearerToken, t as ILogger, u as RenownSessionCookie, v as LocalCredentialVerifierOptions, w as Renown, x as RenownBuilderOptions, y as createLocalCredentialVerifier } from "./utils-DtWREYeO.js";
4
4
 
5
5
  //#region src/event/event.browser.d.ts
6
6
  declare class BrowserEventEmitter<Events extends Record<string, unknown>> implements IEventEmitter<Events> {
@@ -68,5 +68,5 @@ declare class RenownBuilder extends BaseRenownBuilder {
68
68
  */
69
69
  declare function initRenown(appName: string, options?: BrowserRenownBuilderOptions): Promise<Renown>;
70
70
  //#endregion
71
- export { AuthVerifiableCredential, AuthVerifiedCredential, BaseRenownBuilder, BrowserKeyStorage, BrowserRenownBuilderOptions, BrowserRenownEventEmitter, BrowserRenownStorage, BuildCredentialParams, CREDENTIAL_SCHEMA_EIP712_TYPE, CREDENTIAL_SUBJECT_TYPE, CREDENTIAL_TYPES, ConditionWeightedThreshold, ConnectCrypto, CreateBearerTokenOptions, CredentialCheck, CredentialDomain, CredentialMessage, CredentialStatus, DEFAULT_RENOWN_CHAIN_ID, DEFAULT_RENOWN_NETWORK_ID, DEFAULT_RENOWN_URL, DID, DIDDocument, DIDDocumentMetadata, DIDResolutionMetadata, DIDResolutionResult, DOMAIN_TYPE, EcdsaSignature, FetchDelegationCredentialOptions, IAuthCredentialSubject, IConnectCrypto, ILogger, IPowerhouseCredentialSubject, IPowerhouseIssuerType, IProof, IRenown, IRenownCrypto, ISSUER_TYPE, ISigner, IVerifiableCredential, InternalUser, Issuer, JWTPayload, JWTVerified, JWTVerifyPolicies, JsonWebKey, JsonWebKeyPairStorage, JwkKeyPair, KeyCapabilitySection, LocalCredentialVerifierOptions, LoginStatus, MemoryKeyStorage, MissingSwitchboardError, PKHDid, PowerhouseVerifiableCredential, ProfileFetcher, Proof, RENOWN_READ_MODEL_SUBGRAPH, RENOWN_SESSION_COOKIE, Renown, RenownBuilder, RenownBuilderOptions, RenownCrypto, RenownCryptoBuilder, RenownCryptoSigner, RenownEventEmitter, RenownEvents, RenownMemoryStorage, RenownProfile, type RenownSessionCookie, type RenownSessionProfile, RenownStorage, RenownStorageMap, ResolveSwitchboardEndpointOptions, Service, ServiceEndpoint, SignCredentialTypedData, SignInParams, Signer, SwitchboardClient, SwitchboardRequestFn, SwitchboardSource, Unsubscribe, User, VERIFIABLE_CREDENTIAL_EIP712_TYPE, Verifiable, VerificationMethod, VerifiedAuthCredential, VerifiedCredential, VerifiedJWT, VerifyAuthBearerTokenOptions, VerifyAuthCredentialOptions, W3CCredential, assertIsAuthCredential, buildAndSignCredential, createAuthBearerToken, createLocalCredentialVerifier, createSignatureVerifier, extractResultingHashFromSignature, fetchDelegationCredential, fetchRenownProfile, getResolver, initRenown, parsePkhDid, parseSignatureHashField, readPersistedUser, recoverCredentialSigner, resolveSwitchboardEndpoint, signatureHasResultingHash, verifyAuthBearerToken, verifyAuthCredential, verifyCredentialSignature };
71
+ export { AuthVerifiableCredential, AuthVerifiedCredential, BaseRenownBuilder, BrowserKeyStorage, BrowserRenownBuilderOptions, BrowserRenownEventEmitter, BrowserRenownStorage, BuildCredentialParams, CREDENTIAL_SCHEMA_EIP712_TYPE, CREDENTIAL_SUBJECT_TYPE, CREDENTIAL_TYPES, ConditionWeightedThreshold, ConnectCrypto, CreateBearerTokenOptions, CredentialCheck, CredentialDomain, CredentialMessage, CredentialStatus, DEFAULT_RENOWN_CHAIN_ID, DEFAULT_RENOWN_NETWORK_ID, DEFAULT_RENOWN_URL, DID, DIDDocument, DIDDocumentMetadata, DIDResolutionMetadata, DIDResolutionResult, DOMAIN_TYPE, EcdsaSignature, FetchDelegationCredentialOptions, IAuthCredentialSubject, IConnectCrypto, ILogger, IPowerhouseCredentialSubject, IPowerhouseIssuerType, IProof, IRenown, IRenownCrypto, ISSUER_TYPE, ISigner, IVerifiableCredential, InternalUser, Issuer, JWTPayload, JWTVerified, JWTVerifyPolicies, JsonWebKey, JsonWebKeyPairStorage, JwkKeyPair, KeyCapabilitySection, LocalCredentialVerifierOptions, LoginStatus, MemoryKeyStorage, MissingSwitchboardError, PKHDid, PowerhouseVerifiableCredential, ProfileFetcher, Proof, RENOWN_READ_MODEL_SUBGRAPH, RENOWN_SESSION_COOKIE, Renown, RenownBuilder, RenownBuilderOptions, RenownCrypto, RenownCryptoBuilder, RenownCryptoSigner, RenownEventEmitter, RenownEvents, RenownMemoryStorage, RenownProfile, type RenownSessionCookie, type RenownSessionProfile, RenownStorage, RenownStorageMap, ResolveSwitchboardEndpointOptions, Service, ServiceEndpoint, SignCredentialTypedData, SignInParams, Signer, SwitchboardClient, SwitchboardRequestFn, SwitchboardSource, Unsubscribe, User, UserActionSigner, VERIFIABLE_CREDENTIAL_EIP712_TYPE, Verifiable, VerificationMethod, VerifiedAuthCredential, VerifiedCredential, VerifiedJWT, VerifyAuthBearerTokenOptions, VerifyAuthCredentialOptions, W3CCredential, assertIsAuthCredential, buildAndSignCredential, createAuthBearerToken, createLocalCredentialVerifier, createSignatureVerifier, extractResultingHashFromSignature, fetchDelegationCredential, fetchRenownProfile, getResolver, initRenown, parsePkhDid, parseSignatureHashField, readPersistedUser, recoverCredentialSigner, resolveSwitchboardEndpoint, signatureHasResultingHash, verifyAuthBearerToken, verifyAuthCredential, verifyCredentialSignature };
72
72
  //# sourceMappingURL=index.d.ts.map
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { a as DEFAULT_RENOWN_NETWORK_ID, c as ISSUER_TYPE, d as VERIFIABLE_CREDENTIAL_EIP712_TYPE, i as DEFAULT_RENOWN_CHAIN_ID, l as RENOWN_READ_MODEL_SUBGRAPH, n as CREDENTIAL_SUBJECT_TYPE, o as DEFAULT_RENOWN_URL, r as CREDENTIAL_TYPES, s as DOMAIN_TYPE, t as CREDENTIAL_SCHEMA_EIP712_TYPE, u as RENOWN_SESSION_COOKIE } from "./constants-BexAR53F.js";
2
- import { a as RenownMemoryStorage, c as fetchDelegationCredential, d as verifyCredentialSignature, f as MissingSwitchboardError, i as Renown, l as recoverCredentialSigner, m as resolveSwitchboardEndpoint, n as BaseRenownBuilder, o as BaseStorage, p as SwitchboardClient, r as fetchRenownProfile, s as buildAndSignCredential, t as createLocalCredentialVerifier, u as verifyAuthCredential } from "./local-credential-verifier-C_XsxGgz.js";
2
+ import { a as RenownMemoryStorage, c as fetchDelegationCredential, d as verifyCredentialSignature, f as MissingSwitchboardError, i as Renown, l as recoverCredentialSigner, m as resolveSwitchboardEndpoint, n as BaseRenownBuilder, o as BaseStorage, p as SwitchboardClient, r as fetchRenownProfile, s as buildAndSignCredential, t as createLocalCredentialVerifier, u as verifyAuthCredential } from "./local-credential-verifier-CU8hmFlR.js";
3
3
  import { a as signatureHasResultingHash, c as ConnectCrypto, d as createAuthBearerToken, f as getResolver, i as parseSignatureHashField, l as RenownCrypto, m as verifyAuthBearerToken, n as createSignatureVerifier, o as MemoryKeyStorage, p as parsePkhDid, r as extractResultingHashFromSignature, s as RenownCryptoBuilder, t as RenownCryptoSigner, u as assertIsAuthCredential } from "./signer-DrjINLqt.js";
4
4
  import { t as BrowserKeyStorage } from "./browser-key-storage-e3RQsnLS.js";
5
5
  //#region src/event/event.browser.ts
@@ -498,6 +498,33 @@ var MemoryStorage = class extends BaseStorage {
498
498
  //#endregion
499
499
  //#region src/common.ts
500
500
  var RenownMemoryStorage = class extends MemoryStorage {};
501
+ /**
502
+ * The acting identity an action's signature carries.
503
+ *
504
+ * `User` here is the whole session record — it also holds the DID, the
505
+ * credential, the fetched profile and ENS info — while `UserActionSigner` is
506
+ * what travels on a signed action, and it is deliberately just an address on a
507
+ * chain. The reactor's `ReactorSignerUserInput` declares exactly these three
508
+ * fields, and a GraphQL input object refuses a field it does not declare by
509
+ * rejecting the WHOLE request, so handing the session record to the signer
510
+ * makes every signed push fail before it reaches the reactor.
511
+ *
512
+ * Narrowed here rather than at the transport, because the session record has no
513
+ * business being on an operation in the first place: it is stored on every
514
+ * operation a local reactor writes, not only on the ones that go over a wire.
515
+ *
516
+ * The compiler cannot catch the difference — excess-property checks apply to
517
+ * fresh object literals, never to a variable of a wider type — which is why
518
+ * this is a function rather than a type annotation.
519
+ */
520
+ function toActionSigner(user) {
521
+ if (!user) return void 0;
522
+ return {
523
+ address: user.address,
524
+ networkId: user.networkId,
525
+ chainId: user.chainId
526
+ };
527
+ }
501
528
  var Renown = class {
502
529
  #baseUrl;
503
530
  #store;
@@ -519,10 +546,10 @@ var Renown = class {
519
546
  this.#switchboard = switchboard;
520
547
  this.#chainId = chainId;
521
548
  const restoredUser = this.user;
522
- this.#signer = new RenownCryptoSigner(crypto, this.#appName, restoredUser);
549
+ this.#signer = new RenownCryptoSigner(crypto, this.#appName, toActionSigner(restoredUser));
523
550
  if (restoredUser) this.#status = "authorized";
524
551
  this.on("user", (user) => {
525
- this.#signer.user = user;
552
+ this.#signer.user = toActionSigner(user);
526
553
  });
527
554
  }
528
555
  get baseUrl() {
@@ -877,4 +904,4 @@ function createLocalCredentialVerifier(execute, options = {}) {
877
904
  //#endregion
878
905
  export { RenownMemoryStorage as a, fetchDelegationCredential as c, verifyCredentialSignature as d, MissingSwitchboardError as f, Renown as i, recoverCredentialSigner as l, resolveSwitchboardEndpoint as m, BaseRenownBuilder as n, BaseStorage as o, SwitchboardClient as p, fetchRenownProfile as r, buildAndSignCredential as s, createLocalCredentialVerifier as t, verifyAuthCredential as u };
879
906
 
880
- //# sourceMappingURL=local-credential-verifier-C_XsxGgz.js.map
907
+ //# sourceMappingURL=local-credential-verifier-CU8hmFlR.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-credential-verifier-CU8hmFlR.js","names":["#endpoint","#transport","#post","#request","#legacyMutate","#store","#eventEmitter","#baseUrl","#crypto","#appName","#profileFetcher","#switchboard","#chainId","#signer","#status","#updateStatus","#getCredential","#updateUser","#completeLogin","#listeners","#appName","#storage","#eventEmitter","#crypto","#keyPairStorage","#baseUrl","#switchboardUrl","#chainId","#profileFetcher"],"sources":["../src/discovery.ts","../src/switchboard.ts","../src/credential.ts","../src/storage/common.ts","../src/common.ts","../src/event/memory.ts","../src/profile.ts","../src/renown-builder.ts","../src/local-credential-verifier.ts"],"sourcesContent":["export interface ResolveSwitchboardEndpointOptions {\n // Explicit Switchboard GraphQL endpoint. When set, used directly.\n switchboardUrl?: string;\n // Renown base URL to ask for a switchboard endpoint when none is explicit.\n baseUrl?: string;\n // Max time (ms) to wait for the discovery probe before falling back to REST.\n timeoutMs?: number;\n}\n\n// Legacy Renown instances accept the connection but never respond to the\n// discovery request; without a bound, `fetch` hangs and blocks startup.\nconst DEFAULT_DISCOVERY_TIMEOUT_MS = 3000;\n\n// Shape returned by the Renown app's `/api/switchboard` discovery endpoint.\ninterface DiscoveryResponse {\n endpoint?: string;\n}\n\n// Resolve the Switchboard GraphQL endpoint: explicit `switchboardUrl` wins,\n// else discover via `{baseUrl}/api/switchboard`; undefined means use REST.\nexport async function resolveSwitchboardEndpoint(\n options: ResolveSwitchboardEndpointOptions,\n): Promise<string | undefined> {\n const { switchboardUrl, baseUrl, timeoutMs } = options;\n\n if (switchboardUrl) {\n return switchboardUrl;\n }\n\n if (!baseUrl) {\n return undefined;\n }\n\n const controller = new AbortController();\n const timeout = setTimeout(\n () => controller.abort(),\n timeoutMs ?? DEFAULT_DISCOVERY_TIMEOUT_MS,\n );\n\n try {\n const url = new URL(\"/api/switchboard\", baseUrl);\n const response = await fetch(url, {\n method: \"GET\",\n signal: controller.signal,\n });\n if (!response.ok) {\n return undefined;\n }\n const body = (await response.json()) as DiscoveryResponse;\n return body.endpoint || undefined;\n } catch {\n // Old Renown instances never answer (or lack the endpoint); the abort\n // timeout rejects here so we fall back to the REST flow instead of hanging.\n return undefined;\n } finally {\n clearTimeout(timeout);\n }\n}\n","import {\n createAction,\n type Action,\n} from \"@powerhousedao/shared/document-model\";\nimport { CREDENTIAL_TYPES } from \"./constants.js\";\nimport type {\n PowerhouseVerifiableCredential,\n ProfileFetcher,\n RenownProfile,\n} from \"./types.js\";\n\n/** Thrown by `signIn` when the instance has no switchboard to write the\n * credential to, so a host can fall back to the Renown redirect flow. */\nexport class MissingSwitchboardError extends Error {\n constructor() {\n super(\n \"signIn requires a switchboard endpoint. Set switchboardUrl or a discoverable baseUrl.\",\n );\n this.name = \"MissingSwitchboardError\";\n }\n\n /** `instanceof` fails across duplicate SDK copies, so match by name too. */\n static is(error: unknown): error is MissingSwitchboardError {\n return (\n error instanceof MissingSwitchboardError ||\n (error instanceof Error && error.name === \"MissingSwitchboardError\")\n );\n }\n}\n\n// Per-user drive convention shared with the Renown app: `renown-<address>`.\n// The read-model ignores driveId, but we pass it for parity.\nfunction userDriveId(address: string): string {\n return `renown-${address.toLowerCase()}`;\n}\n\n// Flat row returned by the `renownCredentials` read-model query.\ninterface ReadRenownCredential {\n documentId: string;\n credentialId: string;\n context: string[];\n type: string[];\n issuerId: string;\n issuerEthereumAddress: string;\n issuanceDate: string;\n expirationDate: string | null;\n credentialSubjectId: string | null;\n credentialSubjectApp: string;\n credentialStatusId: string | null;\n credentialStatusType: string | null;\n credentialSchemaId: string;\n credentialSchemaType: string;\n proofVerificationMethod: string;\n proofEthereumAddress: string;\n proofCreated: string;\n proofPurpose: string;\n proofType: string;\n proofValue: string;\n proofEip712Domain: string;\n proofEip712PrimaryType: string;\n revoked: boolean;\n}\n\n// Flat row returned by the `renownUsers` read-model query.\ninterface ReadRenownUser {\n documentId: string;\n username: string | null;\n ethAddress: string | null;\n userImage: string | null;\n createdAt: string;\n updatedAt: string;\n}\n\nconst CREDENTIALS_QUERY = /* GraphQL */ `\n query RenownCredentials($input: RenownCredentialsInput!) {\n renownCredentials(input: $input) {\n documentId\n credentialId\n context\n type\n issuerId\n issuerEthereumAddress\n issuanceDate\n expirationDate\n credentialSubjectId\n credentialSubjectApp\n credentialStatusId\n credentialStatusType\n credentialSchemaId\n credentialSchemaType\n proofVerificationMethod\n proofEthereumAddress\n proofCreated\n proofPurpose\n proofType\n proofValue\n proofEip712Domain\n proofEip712PrimaryType\n revoked\n }\n }\n`;\n\nconst USERS_QUERY = /* GraphQL */ `\n query RenownUsers($input: RenownUsersInput!) {\n renownUsers(input: $input) {\n documentId\n username\n ethAddress\n userImage\n createdAt\n updatedAt\n }\n }\n`;\n\nconst CREATE_EMPTY_DOCUMENT_MUTATION = /* GraphQL */ `\n mutation CreateEmptyDocument(\n $documentType: String!\n $parentIdentifier: String\n ) {\n createEmptyDocument(\n documentType: $documentType\n parentIdentifier: $parentIdentifier\n ) {\n id\n }\n }\n`;\n\nconst MUTATE_DOCUMENT_MUTATION = /* GraphQL */ `\n mutation MutateDocument(\n $documentIdentifier: String!\n $actions: [ActionInput!]!\n ) {\n mutateDocument: execute(\n documentIdentifier: $documentIdentifier\n actions: $actions\n ) {\n id\n }\n }\n`;\n\n/* Switchboards older than 6.2.2-dev.54 have no `execute`; their `mutateDocument`\n takes the same envelopes as untyped JSON. Same selection, so one result shape. */\nconst LEGACY_MUTATE_DOCUMENT_MUTATION = /* GraphQL */ `\n mutation MutateDocument(\n $documentIdentifier: String!\n $actions: [JSONObject!]!\n ) {\n mutateDocument(documentIdentifier: $documentIdentifier, actions: $actions) {\n id\n }\n }\n`;\n\n// graphql-js validation failure for a field the server's schema lacks.\nfunction isUnknownExecuteField(error: unknown): boolean {\n return (\n error instanceof Error &&\n /Cannot query field \"execute\" on type \"Mutation\"/.test(error.message)\n );\n}\n\nconst RENOWN_CREDENTIAL_DOC_TYPE = \"powerhouse/renown-credential\";\nconst RENOWN_USER_DOC_TYPE = \"powerhouse/renown-user\";\n\n// Rebuild the nested EIP-712 verifiable credential from a flat read-model row.\nfunction reshapeCredential(\n row: ReadRenownCredential,\n): PowerhouseVerifiableCredential {\n // `proofEip712Domain` is stored as a JSON string ({ version, chainId }).\n const domain = JSON.parse(row.proofEip712Domain) as {\n version: string;\n chainId: number;\n };\n\n return {\n \"@context\": row.context,\n type: row.type,\n id: row.credentialId,\n issuer: {\n id: row.issuerId,\n ethereumAddress: row.issuerEthereumAddress as `0x${string}`,\n },\n credentialSubject: {\n id: row.credentialSubjectId ?? \"\",\n app: row.credentialSubjectApp,\n },\n credentialSchema: {\n id: row.credentialSchemaId,\n type: row.credentialSchemaType,\n },\n ...(row.credentialStatusId\n ? {\n credentialStatus: {\n id: row.credentialStatusId,\n type: row.credentialStatusType ?? \"\",\n },\n }\n : {}),\n issuanceDate: row.issuanceDate,\n expirationDate: row.expirationDate ?? \"\",\n proof: {\n type: row.proofType,\n created: row.proofCreated,\n verificationMethod: row.proofVerificationMethod,\n proofPurpose: row.proofPurpose,\n proofValue: row.proofValue,\n ethereumAddress: row.proofEthereumAddress as `0x${string}`,\n eip712: {\n domain,\n types: CREDENTIAL_TYPES,\n primaryType: \"VerifiableCredential\",\n },\n },\n };\n}\n\n// The chain id in a `did:pkh:<net>:<chainId>:<address>` issuer id.\nfunction issuerChainId(issuerId: string): string | undefined {\n return issuerId.split(\":\")[3];\n}\n\n// The address in a `did:pkh:<net>:<chainId>:<address>` issuer id.\nfunction issuerDidAddress(issuerId: string): string | undefined {\n return issuerId.split(\":\")[4];\n}\n\n// Re-check the delegation binding instead of trusting the read-model's\n// `did`/`ethAddress` filters, matching the REST path in `credential.ts`.\nfunction bindsTo(\n row: ReadRenownCredential,\n address: string,\n chainId: number,\n appDid: string,\n): boolean {\n const expected = address.toLowerCase();\n return (\n !row.revoked &&\n row.credentialSubjectId === appDid &&\n issuerChainId(row.issuerId) === String(chainId) &&\n issuerDidAddress(row.issuerId)?.toLowerCase() === expected &&\n row.issuerEthereumAddress.toLowerCase() === expected\n );\n}\n\n/** Runs a GraphQL document against a Switchboard and resolves its `data`;\n * throws on transport or GraphQL errors. */\nexport type SwitchboardRequestFn = (\n query: string,\n variables: Record<string, unknown>,\n) => Promise<unknown>;\n\n/** Where a SwitchboardClient reads from: an HTTP endpoint or a local executor. */\nexport type SwitchboardSource = string | SwitchboardRequestFn;\n\n// Reads and writes a Switchboard reactor's `renown-read-model` subgraph and\n// document mutations over GraphQL, replacing the Renown Next.js REST proxy.\nexport class SwitchboardClient {\n #endpoint: string | undefined;\n #transport: SwitchboardRequestFn;\n // Set once the switchboard has rejected `execute`, so later writes skip the probe.\n #legacyMutate = false;\n\n constructor(source: SwitchboardSource) {\n if (typeof source === \"string\") {\n this.#endpoint = source;\n this.#transport = (query, variables) =>\n this.#post(source, query, variables);\n } else {\n this.#transport = source;\n }\n }\n\n /** The HTTP endpoint, or undefined when reading through a local executor. */\n get endpoint(): string | undefined {\n return this.#endpoint;\n }\n\n async #post(\n endpoint: string,\n query: string,\n variables: Record<string, unknown>,\n ): Promise<unknown> {\n const response = await fetch(endpoint, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({ query, variables }),\n });\n /* A validation failure comes back as 400 WITH a GraphQL error body, so read\n it before judging the status: the messages say what was wrong, the code\n only that something was. */\n const body = (await response.json().catch(() => undefined)) as\n | { data?: unknown; errors?: { message: string }[] }\n | undefined;\n if (body?.errors?.length) {\n throw new Error(body.errors.map((e) => e.message).join(\"; \"));\n }\n if (!response.ok || !body) {\n throw new Error(`Switchboard request failed: ${response.status}`);\n }\n // `#request` rejects an empty `data` for every transport, HTTP or local.\n return body.data;\n }\n\n async #request<T>(\n query: string,\n variables: Record<string, unknown>,\n ): Promise<T> {\n const data = await this.#transport(query, variables);\n if (!data) {\n throw new Error(\"Switchboard returned no data\");\n }\n return data as T;\n }\n\n // Fetch the active delegation credential for (address, chainId) that delegates\n // to `appDid`: re-check the binding, drop expired, return most recent.\n async getCredential(params: {\n address: string;\n chainId: number;\n appDid: string;\n }): Promise<PowerhouseVerifiableCredential | undefined> {\n const { address, chainId, appDid } = params;\n const { renownCredentials } = await this.#request<{\n renownCredentials: ReadRenownCredential[];\n }>(CREDENTIALS_QUERY, {\n input: {\n driveId: userDriveId(address),\n ethAddress: address.toLowerCase(),\n did: appDid,\n includeRevoked: false,\n },\n });\n\n const now = Date.now();\n const candidates = renownCredentials\n .filter((row) => bindsTo(row, address, chainId, appDid))\n .filter((row) => {\n if (!row.expirationDate) return true;\n const expiresAt = Date.parse(row.expirationDate);\n return !Number.isNaN(expiresAt) && expiresAt > now;\n })\n .sort((a, b) => Date.parse(b.issuanceDate) - Date.parse(a.issuanceDate));\n\n const mostRecent = candidates.at(0);\n return mostRecent ? reshapeCredential(mostRecent) : undefined;\n }\n\n // Look up a Renown profile by ethereum address via the `renownUsers` query.\n async getProfileByAddress(\n address: string,\n ): Promise<RenownProfile | undefined> {\n const { renownUsers } = await this.#request<{\n renownUsers: ReadRenownUser[];\n }>(USERS_QUERY, {\n input: {\n driveId: userDriveId(address),\n ethAddresses: [address.toLowerCase()],\n },\n });\n\n const user = renownUsers.at(0);\n if (!user) return undefined;\n return {\n documentId: user.documentId,\n username: user.username,\n ethAddress: user.ethAddress,\n userImage: user.userImage,\n createdAt: user.createdAt,\n updatedAt: user.updatedAt,\n };\n }\n\n // Create an empty document of the given type; returns its document id.\n async createEmptyDocument(\n documentType: string,\n parentIdentifier?: string,\n ): Promise<string> {\n const { createEmptyDocument } = await this.#request<{\n createEmptyDocument: { id: string };\n }>(CREATE_EMPTY_DOCUMENT_MUTATION, { documentType, parentIdentifier });\n return createEmptyDocument.id;\n }\n\n // Apply reactor action envelopes to a document; returns its document id.\n async mutateDocument(\n documentIdentifier: string,\n actions: Action[],\n ): Promise<string> {\n const variables = { documentIdentifier, actions };\n if (!this.#legacyMutate) {\n try {\n const { mutateDocument } = await this.#request<{\n mutateDocument: { id: string };\n }>(MUTATE_DOCUMENT_MUTATION, variables);\n return mutateDocument.id;\n } catch (error) {\n if (!isUnknownExecuteField(error)) throw error;\n this.#legacyMutate = true;\n }\n }\n const { mutateDocument } = await this.#request<{\n mutateDocument: { id: string };\n }>(LEGACY_MUTATE_DOCUMENT_MUTATION, variables);\n return mutateDocument.id;\n }\n\n // Issue a signed credential: create a renown-credential doc and INIT it.\n async issueCredential(\n credential: PowerhouseVerifiableCredential,\n parentIdentifier?: string,\n ): Promise<string> {\n const documentId = await this.createEmptyDocument(\n RENOWN_CREDENTIAL_DOC_TYPE,\n parentIdentifier,\n );\n const input: Record<string, unknown> = {\n id: credential.id,\n context: credential[\"@context\"],\n type: credential.type,\n issuer: {\n id: credential.issuer.id,\n ethereumAddress: credential.issuer.ethereumAddress,\n },\n credentialSubject: {\n id: credential.credentialSubject.id,\n app: credential.credentialSubject.app,\n },\n credentialSchema: {\n id: credential.credentialSchema.id,\n type: credential.credentialSchema.type,\n },\n issuanceDate: credential.issuanceDate,\n expirationDate: credential.expirationDate || undefined,\n proof: {\n type: credential.proof.type,\n created: credential.proof.created,\n verificationMethod: credential.proof.verificationMethod,\n proofPurpose: credential.proof.proofPurpose,\n proofValue: credential.proof.proofValue,\n ethereumAddress: credential.proof.ethereumAddress,\n eip712: {\n domain: {\n version: credential.proof.eip712.domain.version,\n chainId: credential.proof.eip712.domain.chainId,\n },\n primaryType: credential.proof.eip712.primaryType,\n },\n },\n };\n await this.mutateDocument(documentId, [createAction(\"INIT\", input)]);\n return documentId;\n }\n\n // Find the RenownUser for an address or create one; returns its document id.\n async findOrCreateUser(\n address: string,\n profile: { username?: string; userImage?: string } = {},\n ): Promise<string> {\n const updates: Action[] = [];\n if (profile.username !== undefined) {\n updates.push(\n createAction(\"SET_USERNAME\", { username: profile.username }),\n );\n }\n if (profile.userImage !== undefined) {\n updates.push(\n createAction(\"SET_USER_IMAGE\", { userImage: profile.userImage }),\n );\n }\n\n const existing = await this.getProfileByAddress(address);\n if (existing) {\n if (updates.length)\n await this.mutateDocument(existing.documentId, updates);\n return existing.documentId;\n }\n\n const documentId = await this.createEmptyDocument(RENOWN_USER_DOC_TYPE);\n await this.mutateDocument(documentId, [\n createAction(\"SET_ETH_ADDRESS\", { ethAddress: address }),\n ...updates,\n ]);\n return documentId;\n }\n\n // Revoke a credential by its document id.\n async revokeCredential(documentId: string, reason?: string): Promise<void> {\n await this.mutateDocument(documentId, [\n createAction(\"REVOKE\", {\n revokedAt: new Date().toISOString(),\n reason: reason ?? null,\n }),\n ]);\n }\n\n // A ProfileFetcher backed by this client; used as the default when the\n // direct-switchboard flow is active. The `baseUrl` argument is ignored.\n profileFetcher: ProfileFetcher = (user) =>\n this.getProfileByAddress(user.address).catch(() => undefined);\n}\n","import { recoverTypedDataAddress } from \"viem\";\nimport {\n CREDENTIAL_TYPES,\n DEFAULT_RENOWN_NETWORK_ID,\n DEFAULT_RENOWN_URL,\n} from \"./constants.js\";\nimport { resolveSwitchboardEndpoint } from \"./discovery.js\";\nimport {\n SwitchboardClient,\n type SwitchboardRequestFn,\n type SwitchboardSource,\n} from \"./switchboard.js\";\nimport type { IProof, PowerhouseVerifiableCredential } from \"./types.js\";\nimport { verifyAuthBearerToken } from \"./utils.js\";\n\n/* Local structural aliases (EIP-712 standard shapes) so renown's public .d.ts\n * never names viem — a viem type in the surface drags viem's whole closure in. */\ntype Hex = `0x${string}`;\ntype TypedDataDomain = {\n name?: string;\n version?: string;\n chainId?: number;\n verifyingContract?: Hex;\n salt?: Hex;\n};\ntype TypedDataParameter = { name: string; type: string };\n\n/** EIP-712 domain as signed by the credential issuer. */\nexport type CredentialDomain = {\n version: string;\n chainId: number;\n};\n\n/** The credential body that is EIP-712 signed (everything except `proof`). */\nexport type CredentialMessage = {\n \"@context\": string[];\n type: string[];\n id: string;\n issuer: { id: string; ethereumAddress: Hex };\n credentialSubject: { id: string; app: string };\n credentialSchema: { id: string; type: string };\n issuanceDate: string;\n expirationDate: string;\n};\n\n/** Typed-data signer; matches the loose shape used by wallet adapters. */\nexport type SignCredentialTypedData = (args: {\n domain: TypedDataDomain;\n types: Record<string, readonly TypedDataParameter[]>;\n primaryType: string;\n message: Record<string, unknown>;\n}) => Promise<Hex>;\n\nexport interface BuildCredentialParams {\n signTypedData: SignCredentialTypedData;\n address: Hex;\n chainId: number;\n app: string;\n /** Credential subject id: the app/client DID the credential delegates to. */\n appId: string;\n expiresInDays?: number;\n}\n\n/** Assemble a Renown delegation VC and sign it with the provided signer. */\nexport async function buildAndSignCredential(\n params: BuildCredentialParams,\n): Promise<PowerhouseVerifiableCredential> {\n const {\n signTypedData,\n address,\n chainId,\n app,\n appId,\n expiresInDays = 7,\n } = params;\n\n const issuerId = `did:pkh:${DEFAULT_RENOWN_NETWORK_ID}:${chainId}:${address.toLowerCase()}`;\n const credentialId = `urn:uuid:${globalThis.crypto.randomUUID()}`;\n const now = new Date();\n const expirationDate = new Date(\n now.getTime() + expiresInDays * 24 * 60 * 60 * 1000,\n );\n\n const message: CredentialMessage = {\n \"@context\": [\"https://www.w3.org/2018/credentials/v1\"],\n type: [\"VerifiableCredential\", \"RenownCredential\"],\n id: credentialId,\n issuer: { id: issuerId, ethereumAddress: address },\n credentialSubject: { id: appId, app },\n credentialSchema: {\n id: \"https://renown.id/schemas/renown-credential/v1\",\n type: \"JsonSchemaValidator2018\",\n },\n issuanceDate: now.toISOString(),\n expirationDate: expirationDate.toISOString(),\n };\n\n const domain: CredentialDomain = { version: \"1\", chainId };\n\n // viem and most wallet adapters reserve EIP712Domain and derive it from\n // `domain` — passing it explicitly makes them throw.\n const { EIP712Domain, ...signTypes } = CREDENTIAL_TYPES;\n void EIP712Domain;\n const signature = await signTypedData({\n domain,\n types: signTypes,\n primaryType: \"VerifiableCredential\",\n message,\n });\n\n return {\n ...message,\n proof: {\n type: \"EthereumEip712Signature2021\",\n created: message.issuanceDate,\n verificationMethod: issuerId,\n proofPurpose: \"assertionMethod\",\n proofValue: signature,\n ethereumAddress: address,\n eip712: {\n domain,\n types: CREDENTIAL_TYPES,\n primaryType: \"VerifiableCredential\",\n },\n },\n };\n}\n\n/** Recover the address that signed a credential's EIP-712 proof. */\nexport async function recoverCredentialSigner(\n credential: PowerhouseVerifiableCredential,\n): Promise<Hex> {\n const { proof, ...message } = credential;\n // Drop EIP712Domain so viem derives it from `domain`; viem ignores\n // message keys not present in the types, so the proof is excluded too.\n const { EIP712Domain, ...types } = CREDENTIAL_TYPES;\n void EIP712Domain;\n return recoverTypedDataAddress({\n domain: proof.eip712.domain,\n types,\n primaryType: \"VerifiableCredential\",\n message,\n signature: proof.proofValue as Hex,\n } as Parameters<typeof recoverTypedDataAddress>[0]);\n}\n\n/** True when the proof was signed by the credential's declared issuer address. */\nexport async function verifyCredentialSignature(\n credential: PowerhouseVerifiableCredential,\n): Promise<boolean> {\n try {\n const recovered = await recoverCredentialSigner(credential);\n return (\n recovered.toLowerCase() ===\n credential.issuer.ethereumAddress.toLowerCase()\n );\n } catch {\n // Malformed proof (bad hex, missing fields) is an invalid signature.\n return false;\n }\n}\n\n// The deployed Renown API may omit proof.eip712.domain; it's canonical\n// (version \"1\", the credential's chainId), so reconstruct it before verifying.\nfunction withEip712Domain(\n credential: PowerhouseVerifiableCredential,\n chainId: number,\n): PowerhouseVerifiableCredential {\n const eip712 = credential.proof.eip712 as\n | Partial<IProof[\"eip712\"]>\n | undefined;\n if (eip712?.domain) return credential;\n return {\n ...credential,\n proof: {\n ...credential.proof,\n eip712: {\n domain: { version: \"1\", chainId },\n types: CREDENTIAL_TYPES,\n primaryType: \"VerifiableCredential\",\n },\n },\n };\n}\n\nexport interface FetchDelegationCredentialOptions {\n /** Ethereum address that must have issued the credential. */\n address: string;\n /** Chain id the credential must be scoped to. */\n chainId: number;\n /** App/client DID the credential must delegate to (credentialSubject.id). */\n appDid: string;\n /** Renown service base URL. Defaults to DEFAULT_RENOWN_URL. */\n baseUrl?: string;\n /** Switchboard GraphQL endpoint; when reachable, read the reactor directly. */\n switchboardUrl?: string;\n /** In-process Switchboard reader; wins over any URL and skips discovery. */\n switchboardRequest?: SwitchboardRequestFn;\n /** Probe {baseUrl}/api/switchboard for an endpoint (default true). */\n discover?: boolean;\n /** Re-verify the EIP-712 proof signature (default true). */\n verifySignature?: boolean;\n}\n\n// Fetch + binding/expiry-validate the credential over the Renown REST API.\nasync function fetchDelegationCredentialRest(params: {\n address: string;\n chainId: number;\n appDid: string;\n baseUrl: string;\n}): Promise<PowerhouseVerifiableCredential | undefined> {\n const { address, chainId, appDid, baseUrl } = params;\n const url = new URL(\n `/api/auth/credential?address=${encodeURIComponent(address)}&chainId=${encodeURIComponent(chainId)}&connectId=${encodeURIComponent(appDid)}&appId=${encodeURIComponent(appDid)}`,\n baseUrl,\n );\n const response = await fetch(url, { method: \"GET\" });\n if (!response.ok) return undefined;\n const { credential } = (await response.json()) as {\n credential?: PowerhouseVerifiableCredential;\n };\n if (!credential) return undefined;\n\n // Binding: delegates to this app DID, issued by this address on this chain\n // (issuer.id = did:pkh:<networkId>:<chainId>:<address>).\n const [, , , issuerChainId, issuerAddress] = credential.issuer.id.split(\":\");\n if (\n credential.credentialSubject.id !== appDid ||\n issuerChainId !== String(chainId) ||\n issuerAddress.toLowerCase() !== address.toLowerCase() ||\n credential.issuer.ethereumAddress.toLowerCase() !== address.toLowerCase()\n ) {\n return undefined;\n }\n\n // Reject an expired credential (revocation drops it from the endpoint\n // instead); a malformed date (NaN) counts as invalid, not non-expiring.\n if (credential.expirationDate) {\n const expiresAt = Date.parse(credential.expirationDate);\n if (Number.isNaN(expiresAt) || expiresAt <= Date.now()) {\n return undefined;\n }\n }\n\n return credential;\n}\n\n// Optionally re-verify the EIP-712 proof; returns the credential or undefined.\nasync function finalizeCredential(\n credential: PowerhouseVerifiableCredential,\n chainId: number,\n verifySignature: boolean,\n): Promise<PowerhouseVerifiableCredential | undefined> {\n if (!verifySignature) return credential;\n const withDomain = withEip712Domain(credential, chainId);\n if (\n withDomain.proof.eip712.domain.chainId !== chainId ||\n !(await verifyCredentialSignature(withDomain))\n ) {\n return undefined;\n }\n return withDomain;\n}\n\n// Fetch the Renown delegation credential for (address, chainId) and validate it\n// delegates to `appDid`; returns it, or undefined if absent/invalid. No throw.\nexport async function fetchDelegationCredential(\n options: FetchDelegationCredentialOptions,\n): Promise<PowerhouseVerifiableCredential | undefined> {\n const {\n address,\n chainId,\n appDid,\n switchboardUrl,\n switchboardRequest,\n discover = true,\n verifySignature = true,\n } = options;\n const explicitBaseUrl = options.baseUrl;\n const baseUrl = explicitBaseUrl ?? DEFAULT_RENOWN_URL;\n try {\n // A local reader or explicit switchboardUrl is used directly; otherwise\n // discover from the base URL unless the caller already resolved it.\n const source: SwitchboardSource | undefined =\n switchboardRequest ??\n (switchboardUrl\n ? switchboardUrl\n : discover && explicitBaseUrl\n ? await resolveSwitchboardEndpoint({ baseUrl })\n : undefined);\n\n const credential = source\n ? await new SwitchboardClient(source).getCredential({\n address,\n chainId,\n appDid,\n })\n : await fetchDelegationCredentialRest({\n address,\n chainId,\n appDid,\n baseUrl,\n });\n\n if (!credential) return undefined;\n return await finalizeCredential(credential, chainId, verifySignature);\n } catch {\n return undefined;\n }\n}\n\nexport interface VerifiedAuthCredential {\n address: string;\n chainId: number;\n networkId: string;\n /** Owner identity: the pkh DID (did:pkh:<net>:<chainId>:<address>). */\n did: string;\n /** App/client DID the bearer token was issued by. */\n appDid: string;\n credential: PowerhouseVerifiableCredential;\n}\n\nexport interface VerifyAuthCredentialOptions {\n /** Expected `aud` claim on the bearer token. */\n audience?: string;\n /** Renown service base URL. */\n renownUrl?: string;\n /** Switchboard GraphQL endpoint; when reachable, read the reactor directly. */\n switchboardUrl?: string;\n /** In-process Switchboard reader; wins over any URL and skips discovery. */\n switchboardRequest?: SwitchboardRequestFn;\n /** Re-verify the credential's EIP-712 proof (default true). */\n verifySignature?: boolean;\n}\n\n// Verify a renown bearer token end to end: check the JWT, then fetch+verify the\n// matching credential. Resolves the owner identity, or undefined. No throw.\nexport async function verifyAuthCredential(\n jwt: string,\n options: VerifyAuthCredentialOptions = {},\n): Promise<VerifiedAuthCredential | undefined> {\n const verified = await verifyAuthBearerToken(jwt, {\n audience: options.audience,\n });\n if (!verified) return undefined;\n\n const { address, chainId, networkId } =\n verified.verifiableCredential.credentialSubject;\n const appDid = verified.issuer;\n const credential = await fetchDelegationCredential({\n address,\n chainId,\n appDid,\n baseUrl: options.renownUrl,\n switchboardUrl: options.switchboardUrl,\n switchboardRequest: options.switchboardRequest,\n verifySignature: options.verifySignature,\n });\n if (!credential) return undefined;\n\n return {\n address,\n chainId,\n networkId,\n did: credential.issuer.id,\n appDid,\n credential,\n };\n}\n","export interface IStorage<\n T extends Record<string, unknown> = Record<string, unknown>,\n Key extends keyof T = keyof T,\n> {\n get(key: Key): T[Key] | undefined;\n set(key: Key, value?: T[Key]): void;\n delete(key: Key): void;\n}\n\nexport abstract class BaseStorage<\n T extends Record<string, unknown> = Record<string, unknown>,\n Key extends keyof T = keyof T,\n> implements IStorage<T> {\n abstract get(key: Key): T[Key] | undefined;\n abstract set(key: Key, value?: T[Key]): void;\n abstract delete(key: Key): void;\n}\n\nexport class MemoryStorage<\n T extends Record<string, unknown> = Record<string, unknown>,\n Key extends keyof T = keyof T,\n> extends BaseStorage<T> {\n private readonly data = new Map<Key, T[Key]>();\n\n get(key: Key) {\n return this.data.get(key);\n }\n\n set(key: Key, value?: T[Key]): void {\n if (value === undefined) {\n this.data.delete(key);\n } else {\n this.data.set(key, value);\n }\n }\n\n delete(key: Key): void {\n this.data.delete(key);\n }\n}\n","import {\n CREDENTIAL_TYPES,\n DEFAULT_RENOWN_CHAIN_ID,\n DEFAULT_RENOWN_NETWORK_ID,\n DEFAULT_RENOWN_URL,\n} from \"./constants.js\";\nimport {\n buildAndSignCredential,\n verifyCredentialSignature,\n} from \"./credential.js\";\nimport { RenownCryptoSigner, type IRenownCrypto } from \"./crypto/index.js\";\nimport { MemoryStorage } from \"./storage/common.js\";\nimport {\n MissingSwitchboardError,\n type SwitchboardClient,\n} from \"./switchboard.js\";\nimport type {\n CreateBearerTokenOptions,\n IProof,\n IRenown,\n ISigner,\n LoginStatus,\n PKHDid,\n PowerhouseVerifiableCredential,\n ProfileFetcher,\n RenownEventEmitter,\n RenownEvents,\n RenownStorage,\n RenownStorageMap,\n SignInParams,\n User,\n UserActionSigner,\n} from \"./types.js\";\nimport { parsePkhDid, verifyAuthBearerToken } from \"./utils.js\";\nexport * from \"./constants.js\";\n\nexport class RenownMemoryStorage extends MemoryStorage<RenownStorageMap> {}\n\n/**\n * The acting identity an action's signature carries.\n *\n * `User` here is the whole session record — it also holds the DID, the\n * credential, the fetched profile and ENS info — while `UserActionSigner` is\n * what travels on a signed action, and it is deliberately just an address on a\n * chain. The reactor's `ReactorSignerUserInput` declares exactly these three\n * fields, and a GraphQL input object refuses a field it does not declare by\n * rejecting the WHOLE request, so handing the session record to the signer\n * makes every signed push fail before it reaches the reactor.\n *\n * Narrowed here rather than at the transport, because the session record has no\n * business being on an operation in the first place: it is stored on every\n * operation a local reactor writes, not only on the ones that go over a wire.\n *\n * The compiler cannot catch the difference — excess-property checks apply to\n * fresh object literals, never to a variable of a wider type — which is why\n * this is a function rather than a type annotation.\n */\nfunction toActionSigner(user: User | undefined): UserActionSigner | undefined {\n if (!user) return undefined;\n return {\n address: user.address,\n networkId: user.networkId,\n chainId: user.chainId,\n };\n}\n\nexport class Renown implements IRenown {\n #baseUrl: string;\n #store: RenownStorage;\n #eventEmitter: RenownEventEmitter;\n #appName: string;\n #crypto: IRenownCrypto;\n #signer: ISigner;\n #profileFetcher?: ProfileFetcher;\n #switchboard?: SwitchboardClient;\n #chainId: number;\n #status: LoginStatus = \"initial\";\n\n constructor(\n store: RenownStorage,\n eventEmitter: RenownEventEmitter,\n crypto: IRenownCrypto,\n appName: string,\n baseUrl = DEFAULT_RENOWN_URL,\n profileFetcher?: ProfileFetcher,\n switchboard?: SwitchboardClient,\n chainId = Number(DEFAULT_RENOWN_CHAIN_ID),\n ) {\n this.#store = store;\n this.#eventEmitter = eventEmitter;\n this.#baseUrl = baseUrl;\n this.#crypto = crypto;\n this.#appName = appName;\n this.#profileFetcher = profileFetcher;\n this.#switchboard = switchboard;\n this.#chainId = chainId;\n const restoredUser = this.user;\n this.#signer = new RenownCryptoSigner(\n crypto,\n this.#appName,\n toActionSigner(restoredUser),\n );\n\n // A restored, previously-verified user is an authorized session; otherwise\n // status stays \"initial\" after a reload while the user is present.\n if (restoredUser) {\n this.#status = \"authorized\";\n }\n\n this.on(\"user\", (user) => {\n this.#signer.user = toActionSigner(user);\n });\n }\n\n get baseUrl() {\n return this.#baseUrl;\n }\n\n /** Chain id this app issues credentials on; a session from another chain is rejected by {@link signIn}. */\n get chainId() {\n return this.#chainId;\n }\n\n get user() {\n return this.#store.get(\"user\");\n }\n\n get status() {\n return this.#status;\n }\n\n get signer() {\n return this.#signer;\n }\n\n get crypto() {\n return this.#crypto;\n }\n\n get did() {\n return this.#crypto.did;\n }\n\n get profileFetcher() {\n return this.#profileFetcher;\n }\n\n #updateStatus(status: LoginStatus) {\n this.#status = status;\n this.#eventEmitter.emit(\"status\", status);\n }\n\n #updateUser(user: User | undefined) {\n if (user) {\n this.#store.set(\"user\", user);\n } else {\n this.#store.delete(\"user\");\n }\n this.#eventEmitter.emit(\"user\", user);\n }\n\n async login(userDid: string): Promise<User> {\n this.#updateStatus(\"checking\");\n try {\n const result = parsePkhDid(userDid);\n const credential = await this.#getCredential(\n result.address,\n result.chainId,\n this.#crypto.did,\n );\n\n if (!credential) {\n this.#updateUser(undefined);\n throw new Error(\"Credential not found\");\n }\n\n return await this.#completeLogin(userDid, result, credential);\n } catch (error) {\n this.#updateUser(undefined);\n this.#updateStatus(\"not-authorized\");\n throw error;\n }\n }\n\n // Sign in without the Renown redirect: build + sign a delegation credential\n // with the caller's wallet signer, write it to the switchboard, then log in.\n async signIn(params: SignInParams): Promise<User> {\n if (!this.#switchboard) throw new MissingSwitchboardError();\n const {\n address,\n chainId,\n signTypedData,\n username,\n userImage,\n expiresInDays,\n } = params;\n\n // The chain id goes into the issuer DID and the EIP-712 domain, so signing on\n // another chain would mint a second identity for the same wallet.\n if (chainId !== this.#chainId) {\n throw new Error(\n `Renown signIn: wallet is on chain ${chainId}, but this app issues credentials on chain ${this.#chainId}. Switch networks and retry — signing here would create a separate identity for the same address.`,\n );\n }\n\n this.#updateStatus(\"checking\");\n try {\n const credential = await buildAndSignCredential({\n signTypedData,\n address,\n chainId,\n app: this.#appName,\n appId: this.did,\n expiresInDays,\n });\n\n await this.#switchboard.issueCredential(credential);\n await this.#switchboard.findOrCreateUser(address, {\n username,\n userImage,\n });\n\n const userDid = `did:pkh:${DEFAULT_RENOWN_NETWORK_ID}:${chainId}:${address.toLowerCase()}`;\n // Authenticate from the freshly signed credential — no read-back, which\n // avoids racing the read-model processor that indexes the write.\n return await this.#completeLogin(\n userDid,\n parsePkhDid(userDid),\n credential,\n );\n } catch (error) {\n this.#updateUser(undefined);\n this.#updateStatus(\"not-authorized\");\n throw error;\n }\n }\n\n // Verify a credential binds to userDid + this app key, set the user, and\n // start the background profile fetch. Throws if the credential is invalid.\n async #completeLogin(\n userDid: string,\n result: PKHDid,\n credential: PowerhouseVerifiableCredential,\n ): Promise<User> {\n if (\n !(\n credential.issuer.id === userDid &&\n credential.credentialSubject.id === this.did\n )\n ) {\n throw new Error(\"Invalid credential\");\n }\n\n // The API may return proof.eip712 without domain/types; the domain is\n // canonical (version \"1\", the chainId), so reconstruct it before verifying.\n const eip712 = credential.proof.eip712 as\n | Partial<IProof[\"eip712\"]>\n | undefined;\n const verifiableCredential: PowerhouseVerifiableCredential = eip712?.domain\n ? credential\n : {\n ...credential,\n proof: {\n ...credential.proof,\n eip712: {\n domain: { version: \"1\", chainId: result.chainId },\n types: CREDENTIAL_TYPES,\n primaryType: \"VerifiableCredential\",\n },\n },\n };\n\n // Verify the EIP-712 proof was signed by the DID's address on its chain.\n if (\n credential.issuer.ethereumAddress.toLowerCase() !==\n result.address.toLowerCase() ||\n verifiableCredential.proof.eip712.domain.chainId !== result.chainId ||\n !(await verifyCredentialSignature(verifiableCredential))\n ) {\n throw new Error(\"Invalid credential signature\");\n }\n\n const user: User = {\n ...result,\n address: credential.issuer.ethereumAddress,\n did: userDid,\n credential: verifiableCredential,\n };\n\n this.#updateUser(user);\n this.#updateStatus(\"authorized\");\n\n // Fetch profile data in the background if a fetcher is configured\n if (this.#profileFetcher) {\n this.#profileFetcher(user, this.#baseUrl)\n .then((profile) => {\n if (\n profile &&\n this.user?.address === user.address &&\n this.user.chainId === user.chainId\n ) {\n this.#updateUser({\n ...this.user,\n profile,\n ens: {\n name: profile.username ?? undefined,\n avatarUrl: profile.userImage ?? undefined,\n },\n });\n }\n })\n .catch(console.error);\n }\n\n return user;\n }\n\n logout() {\n this.#updateUser(undefined);\n this.#updateStatus(\"initial\");\n return Promise.resolve();\n }\n\n // Re-check the current user's credential at the source; logs out if it was\n // revoked or expired. Network errors keep the session (fail open).\n async revalidate(): Promise<boolean> {\n const user = this.user;\n if (!user) return false;\n try {\n const credential = await this.#getCredential(\n user.address,\n user.chainId,\n this.#crypto.did,\n );\n if (!credential) {\n await this.logout();\n return false;\n }\n await this.refreshProfile();\n return true;\n } catch {\n return true;\n }\n }\n\n // Re-read profile attributes at the source so a renamed user or changed avatar\n // shows up on the next load. Carries no logout risk, unlike revalidate().\n async refreshProfile(): Promise<boolean> {\n const user = this.user;\n if (!user || !this.#profileFetcher) return false;\n try {\n const profile = await this.#profileFetcher(user, this.#baseUrl);\n if (!profile) return false;\n // Asserted because narrowing from the pre-await read would otherwise hide\n // that a logout during the fetch can clear this.\n const current = this.user as User | undefined;\n if (\n !current ||\n current.address !== user.address ||\n current.chainId !== user.chainId\n ) {\n return false;\n }\n // Narrow `profile` first: the fetched payload is unvalidated JSON, so a\n // missing documentId must not make the undefined case compare equal.\n const unchanged =\n current.profile !== undefined &&\n current.profile.documentId === profile.documentId &&\n current.profile.username === profile.username &&\n current.profile.userImage === profile.userImage;\n if (unchanged) return false;\n this.#updateUser({\n ...current,\n profile,\n ens: {\n name: profile.username ?? undefined,\n avatarUrl: profile.userImage ?? undefined,\n },\n });\n return true;\n } catch {\n return false;\n }\n }\n\n on<K extends keyof RenownEvents>(\n event: K,\n listener: (data: RenownEvents[K]) => void,\n ): () => void {\n return this.#eventEmitter.on(event, listener);\n }\n\n async #getCredential(\n address: string,\n chainId: number,\n appDid: string,\n ): Promise<PowerhouseVerifiableCredential | undefined> {\n // Direct-switchboard flow: read the credential from the reactor subgraph.\n if (this.#switchboard) {\n return this.#switchboard.getCredential({ address, chainId, appDid });\n }\n if (!this.#baseUrl) {\n throw new Error(\"RENOWN_URL is not set\");\n }\n const url = new URL(\n `/api/auth/credential?address=${encodeURIComponent(address)}&chainId=${encodeURIComponent(chainId)}&connectId=${encodeURIComponent(appDid)}&appId=${encodeURIComponent(appDid)}`,\n this.#baseUrl,\n );\n const response = await fetch(url, {\n method: \"GET\",\n });\n if (response.ok) {\n const result = (await response.json()) as {\n credential: PowerhouseVerifiableCredential;\n };\n return result.credential;\n } else {\n throw new Error(`Failed to get credential: ${response.status}`);\n }\n }\n\n async verifyBearerToken(token: string) {\n return verifyAuthBearerToken(token);\n }\n\n async getBearerToken(options: CreateBearerTokenOptions) {\n if (!this.user) {\n throw new Error(\"User not found\");\n }\n return this.#crypto.getBearerToken(this.user.address, options);\n }\n}\n","import type { RenownEvents } from \"../types.js\";\nimport type { IEventEmitter } from \"./types.js\";\n\nexport class MemoryEventEmitter implements IEventEmitter<RenownEvents> {\n #listeners = new Map<keyof RenownEvents, Set<(data: unknown) => void>>();\n\n on<K extends keyof RenownEvents>(\n event: K,\n listener: (data: RenownEvents[K]) => void,\n ): () => void {\n if (!this.#listeners.has(event)) {\n this.#listeners.set(event, new Set());\n }\n this.#listeners.get(event)!.add(listener as (data: unknown) => void);\n return () => {\n this.#listeners.get(event)?.delete(listener as (data: unknown) => void);\n };\n }\n\n emit<K extends keyof RenownEvents>(event: K, data: RenownEvents[K]): void {\n this.#listeners.get(event)?.forEach((listener) => listener(data));\n }\n}\n","import type { ProfileFetcher, RenownProfile } from \"./types.js\";\n\nexport const fetchRenownProfile: ProfileFetcher = async (user, baseUrl) => {\n try {\n const response = await fetch(`${baseUrl.replace(/\\/+$/, \"\")}/api/profile`, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n ethAddress: user.address,\n }),\n });\n\n if (!response.ok) {\n return undefined;\n }\n\n const result = (await response.json()) as {\n profile?: RenownProfile;\n };\n\n return result.profile ?? undefined;\n } catch {\n return undefined;\n }\n};\n","import { Renown, RenownMemoryStorage } from \"./common.js\";\nimport { DEFAULT_RENOWN_CHAIN_ID, DEFAULT_RENOWN_URL } from \"./constants.js\";\nimport { RenownCryptoBuilder } from \"./crypto/renown-crypto-builder.js\";\nimport type { IRenownCrypto, JsonWebKeyPairStorage } from \"./crypto/types.js\";\nimport { resolveSwitchboardEndpoint } from \"./discovery.js\";\nimport { MemoryEventEmitter } from \"./event/memory.js\";\nimport { fetchRenownProfile } from \"./profile.js\";\nimport { SwitchboardClient } from \"./switchboard.js\";\nimport type {\n ProfileFetcher,\n RenownEventEmitter,\n RenownStorage,\n} from \"./types.js\";\n\nexport interface RenownBuilderOptions {\n appName: string;\n storage?: RenownStorage;\n eventEmitter?: RenownEventEmitter;\n crypto?: IRenownCrypto;\n keyPairStorage?: JsonWebKeyPairStorage;\n baseUrl?: string;\n switchboardUrl?: string;\n profileFetcher?: ProfileFetcher;\n /** Chain id credentials are issued on (default 1). The issuer DID embeds it, so `signIn` rejects a wallet session from another chain. */\n chainId?: number;\n}\n\n/**\n * Base builder for creating Renown instances.\n * Use platform-specific builders (RenownBuilder from init.browser.js or init.node.js)\n * for pre-configured defaults.\n */\nexport class BaseRenownBuilder {\n #appName: string;\n #storage?: RenownStorage;\n #eventEmitter?: RenownEventEmitter;\n #crypto?: IRenownCrypto;\n #keyPairStorage?: JsonWebKeyPairStorage;\n #baseUrl?: string;\n #switchboardUrl?: string;\n #profileFetcher?: ProfileFetcher;\n #chainId?: number;\n\n /**\n * @param appName - Application name used for signing context\n */\n constructor(appName: string) {\n this.#appName = appName;\n }\n\n /**\n * Set custom storage for user data persistence.\n * Defaults to in-memory storage if not set.\n */\n withStorage(storage: RenownStorage): this {\n this.#storage = storage;\n return this;\n }\n\n /**\n * Set custom event emitter for user state changes.\n * Defaults to in-memory event emitter if not set.\n */\n withEventEmitter(eventEmitter: RenownEventEmitter): this {\n this.#eventEmitter = eventEmitter;\n return this;\n }\n\n /**\n * Set a pre-built crypto instance.\n * Either crypto or keyPairStorage must be provided.\n */\n withCrypto(crypto: IRenownCrypto): this {\n this.#crypto = crypto;\n return this;\n }\n\n /**\n * Set key pair storage for cryptographic keys.\n * A crypto instance will be built from this storage.\n * Either crypto or keyPairStorage must be provided.\n */\n withKeyPairStorage(keyPairStorage: JsonWebKeyPairStorage): this {\n this.#keyPairStorage = keyPairStorage;\n return this;\n }\n\n /**\n * Set the Renown server URL for credential verification.\n * Defaults to https://www.renown.id\n */\n withBaseUrl(baseUrl: string): this {\n this.#baseUrl = baseUrl;\n return this;\n }\n\n // Set the Switchboard GraphQL endpoint to read from the reactor directly.\n // When unset, the SDK discovers it from the base URL, else uses the REST flow.\n withSwitchboardUrl(switchboardUrl: string): this {\n this.#switchboardUrl = switchboardUrl;\n return this;\n }\n\n // Set the chain id credentials are issued on (default 1). It is part of the\n // issuer DID, so signIn rejects a wallet session from a different chain.\n withChainId(chainId: number): this {\n this.#chainId = chainId;\n return this;\n }\n\n /**\n * Set a profile fetcher strategy for enriching user data after login.\n * The fetcher receives the authenticated user and the base URL,\n * and returns a RenownProfile. Called in the background after each login.\n * Defaults to fetchRenownProfile which calls the Renown API.\n */\n withProfileFetcher(profileFetcher: ProfileFetcher): this {\n this.#profileFetcher = profileFetcher;\n return this;\n }\n\n /**\n * Build and initialize the Renown instance.\n * If a user is stored, attempts to re-authenticate them.\n * @throws Error if neither crypto nor keyPairStorage is provided\n */\n async build(): Promise<Renown> {\n if (!this.#crypto && !this.#keyPairStorage) {\n throw new Error(\n \"Either crypto or keyPairStorage is required. Use withCrypto() or withKeyPairStorage() to set one.\",\n );\n }\n\n const chainId = this.#chainId ?? Number(DEFAULT_RENOWN_CHAIN_ID);\n const crypto =\n this.#crypto ??\n (await new RenownCryptoBuilder()\n .withKeyPairStorage(this.#keyPairStorage!)\n .withChainId(chainId)\n .build());\n\n // A crypto supplied via withCrypto() carries its own chain; the bearer token\n // it mints would then disagree with the credentials issued here.\n if (crypto.chainId !== undefined && crypto.chainId !== chainId) {\n console.warn(\n `Renown: the supplied crypto signs bearer tokens for chain ${crypto.chainId}, but credentials are issued on chain ${chainId}.`,\n );\n }\n\n const storage = this.#storage ?? new RenownMemoryStorage();\n const eventEmitter = this.#eventEmitter ?? new MemoryEventEmitter();\n const baseUrl = this.#baseUrl ?? DEFAULT_RENOWN_URL;\n\n // Pick the transport once: direct-switchboard when an endpoint resolves,\n // else the REST flow. A custom profile fetcher always takes precedence.\n const switchboardEndpoint = await resolveSwitchboardEndpoint({\n switchboardUrl: this.#switchboardUrl,\n baseUrl,\n });\n const switchboard = switchboardEndpoint\n ? new SwitchboardClient(switchboardEndpoint)\n : undefined;\n const profileFetcher =\n this.#profileFetcher ??\n (switchboard ? switchboard.profileFetcher : fetchRenownProfile);\n\n const renown = new Renown(\n storage,\n eventEmitter,\n crypto,\n this.#appName,\n baseUrl,\n profileFetcher,\n switchboard,\n chainId,\n );\n\n // A stored user is loaded as-is for an instant, offline-safe start; callers\n // revalidate against the source separately via renown.revalidate().\n return renown;\n }\n\n /**\n * Create a BaseRenownBuilder from options object for a more concise API\n */\n static from(options: RenownBuilderOptions): BaseRenownBuilder {\n const builder = new BaseRenownBuilder(options.appName);\n\n if (options.storage) {\n builder.withStorage(options.storage);\n }\n if (options.eventEmitter) {\n builder.withEventEmitter(options.eventEmitter);\n }\n if (options.crypto) {\n builder.withCrypto(options.crypto);\n }\n if (options.keyPairStorage) {\n builder.withKeyPairStorage(options.keyPairStorage);\n }\n if (options.baseUrl) {\n builder.withBaseUrl(options.baseUrl);\n }\n if (options.switchboardUrl) {\n builder.withSwitchboardUrl(options.switchboardUrl);\n }\n if (options.profileFetcher) {\n builder.withProfileFetcher(options.profileFetcher);\n }\n if (options.chainId !== undefined) {\n builder.withChainId(options.chainId);\n }\n\n return builder;\n }\n}\n","import { fetchDelegationCredential } from \"./credential.js\";\nimport type { SwitchboardRequestFn } from \"./switchboard.js\";\n\n/** Confirms an authenticated signer's delegation credential is still live. */\nexport type CredentialCheck = (params: {\n address: string;\n chainId: number;\n appId: string;\n}) => Promise<boolean>;\n\nexport interface LocalCredentialVerifierOptions {\n /** Notified when the read itself fails; the check then fails closed. */\n onError?: (error: unknown) => void;\n}\n\n/** A credential check that reads a Switchboard's own renown read model through\n * `execute`, rather than any Renown or Switchboard over HTTP. */\nexport function createLocalCredentialVerifier(\n execute: SwitchboardRequestFn,\n options: LocalCredentialVerifierOptions = {},\n): CredentialCheck {\n // fetchDelegationCredential turns a read failure into \"no credential\" — the\n // right verdict, but silent; surface it before it is swallowed.\n const request: SwitchboardRequestFn = async (query, variables) => {\n try {\n return await execute(query, variables);\n } catch (error) {\n options.onError?.(error);\n throw error;\n }\n };\n\n return async ({ address, chainId, appId }) => {\n const credential = await fetchDelegationCredential({\n address,\n chainId,\n appDid: appId,\n switchboardRequest: request,\n });\n return credential !== undefined;\n };\n}\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { o as WalletAdapterMeta, t as LoginMethod } from "./types-b2fgIxlx.js";
1
+ import { o as WalletAdapterMeta, t as LoginMethod } from "./types-C-hJrsQg.js";
2
2
 
3
3
  //#region src/wallet/mock/meta.d.ts
4
4
  type MockLoginMethod = "wallet" | "google" | "apple" | "email";
@@ -16,4 +16,4 @@ declare function resolveMockMethods(methods?: string[]): LoginMethod[];
16
16
  declare const mockAdapterMeta: Omit<WalletAdapterMeta, "supportedMethods">;
17
17
  //#endregion
18
18
  export { resolveMockMethods as a, mockAdapterMeta as i, MockLoginMethod as n, PHRenownMockAdapterConfig as r, DEFAULT_MOCK_METHODS as t };
19
- //# sourceMappingURL=meta-HoXT6MS0.d.ts.map
19
+ //# sourceMappingURL=meta-BesJP74N.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"meta-HoXT6MS0.d.ts","names":[],"sources":["../src/wallet/mock/meta.ts"],"mappings":";;;KAEY,eAAA;AAAA,cAUC,oBAAA,EAAsB,WAAA;AAVnC;AAAA,UAiBiB,yBAAA;;EAEf,UAAA;EAnByB;EAqBzB,OAAA;EAPD;EASC,OAAA,GAAU,eAAA;AAAA;AAAA,iBAKI,kBAAA,CAAmB,OAAA,cAAqB,WAAA;AAAA,cAe3C,eAAA,EAAiB,IAAA,CAAK,iBAAA"}
1
+ {"version":3,"file":"meta-BesJP74N.d.ts","names":[],"sources":["../src/wallet/mock/meta.ts"],"mappings":";;;KAEY,eAAA;AAAA,cAUC,oBAAA,EAAsB,WAAA;AAVnC;AAAA,UAiBiB,yBAAA;;EAEf,UAAA;EAnByB;EAqBzB,OAAA;EAPD;EASC,OAAA,GAAU,eAAA;AAAA;AAAA,iBAKI,kBAAA,CAAmB,OAAA,cAAqB,WAAA;AAAA,cAe3C,eAAA,EAAiB,IAAA,CAAK,iBAAA"}
@@ -1,4 +1,4 @@
1
- import { o as WalletAdapterMeta, t as LoginMethod } from "./types-b2fgIxlx.js";
1
+ import { o as WalletAdapterMeta, t as LoginMethod } from "./types-C-hJrsQg.js";
2
2
 
3
3
  //#region src/wallet/rainbow/meta.d.ts
4
4
  interface PHRenownChain {
@@ -16,4 +16,4 @@ declare const RAINBOW_METHODS: LoginMethod[];
16
16
  declare const rainbowAdapterMeta: WalletAdapterMeta;
17
17
  //#endregion
18
18
  export { rainbowAdapterMeta as i, PHRenownRainbowAdapterConfig as n, RAINBOW_METHODS as r, PHRenownChain as t };
19
- //# sourceMappingURL=meta-CuSSO6OA.d.ts.map
19
+ //# sourceMappingURL=meta-bV7L-1yb.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"meta-CuSSO6OA.d.ts","names":[],"sources":["../src/wallet/rainbow/meta.ts"],"mappings":";;;UAIiB,aAAA;EACf,EAAA;EACA,IAAA;AAAA;AAAA,UAKe,4BAAA;EAGf,sBAAA;EACA,eAAA;EACA,OAAA;EAGA,MAAA,aAAmB,aAAA,KAAkB,aAAA;EAGrC,GAAA;AAAA;AAAA,cAGW,eAAA,EAAiB,WAAA;AAAA,cAIjB,kBAAA,EAAoB,iBAAA"}
1
+ {"version":3,"file":"meta-bV7L-1yb.d.ts","names":[],"sources":["../src/wallet/rainbow/meta.ts"],"mappings":";;;UAIiB,aAAA;EACf,EAAA;EACA,IAAA;AAAA;AAAA,UAKe,4BAAA;EAGf,sBAAA;EACA,eAAA;EACA,OAAA;EAGA,MAAA,aAAmB,aAAA,KAAkB,aAAA;EAGrC,GAAA;AAAA;AAAA,cAGW,eAAA,EAAiB,WAAA;AAAA,cAIjB,kBAAA,EAAoB,iBAAA"}
package/dist/node.d.ts CHANGED
@@ -1,6 +1,6 @@
1
- import { $ as IEventEmitter, A as LoginStatus, B as Service, C as InternalUser, Ct as ISSUER_TYPE, D as JWTVerifyPolicies, E as JWTVerified, Et as VERIFIABLE_CREDENTIAL_EIP712_TYPE, F as RenownEventEmitter, G as User, H as SignInParams, I as RenownEvents, J as VerifiedCredential, K as Verifiable, L as RenownProfile, M as PowerhouseVerifiableCredential, N as ProfileFetcher, O as JsonWebKey, P as Proof, R as RenownStorage, S as IVerifiableCredential, St as DOMAIN_TYPE, T as JWTPayload, Tt as RENOWN_SESSION_COOKIE, U as Signer, V as ServiceEndpoint, W as Unsubscribe, X as W3CCredential, Y as VerifiedJWT, Z as BaseStorage, _ as IPowerhouseCredentialSubject, _t as CREDENTIAL_SUBJECT_TYPE, a as JwkKeyPair, at as VerifiedAuthCredential, b as IRenown, bt as DEFAULT_RENOWN_NETWORK_ID, c as ConditionWeightedThreshold, ct as fetchDelegationCredential, d as DIDDocument, dt as verifyCredentialSignature, et as BuildCredentialParams, f as DIDDocumentMetadata, ft as MissingSwitchboardError, g as IAuthCredentialSubject, gt as CREDENTIAL_SCHEMA_EIP712_TYPE, h as EcdsaSignature, ht as SwitchboardSource, i as JsonWebKeyPairStorage, it as SignCredentialTypedData, j as PKHDid, k as KeyCapabilitySection, l as CreateBearerTokenOptions, lt as recoverCredentialSigner, m as DIDResolutionResult, mt as SwitchboardRequestFn, n as IConnectCrypto, nt as CredentialMessage, o as AuthVerifiableCredential, ot as VerifyAuthCredentialOptions, p as DIDResolutionMetadata, pt as SwitchboardClient, q as VerificationMethod, r as IRenownCrypto, rt as FetchDelegationCredentialOptions, s as AuthVerifiedCredential, st as buildAndSignCredential, t as DID, tt as CredentialDomain, u as CredentialStatus, ut as verifyAuthCredential, v as IPowerhouseIssuerType, vt as CREDENTIAL_TYPES, w as Issuer, wt as RENOWN_READ_MODEL_SUBGRAPH, x as ISigner, xt as DEFAULT_RENOWN_URL, y as IProof, yt as DEFAULT_RENOWN_CHAIN_ID, z as RenownStorageMap } from "./types-DVcz43Fb.js";
2
- import { a as parseSignatureHashField, c as RenownCryptoBuilder, i as extractResultingHashFromSignature, l as ConnectCrypto, n as RenownCryptoSigner, o as signatureHasResultingHash, r as createSignatureVerifier, s as MemoryKeyStorage, u as RenownCrypto } from "./index-DNl6udpK.js";
3
- import { C as resolveSwitchboardEndpoint, S as ResolveSwitchboardEndpointOptions, T as RenownMemoryStorage, _ as CredentialCheck, a as getResolver, b as BaseRenownBuilder, c as RenownSession, d as RenownSessionProfile, f as VerifyRenownSessionOptions, g as fetchRenownProfile, h as verifyRenownSession, i as createAuthBearerToken, l as RenownSessionClaims, m as serializeRenownSessionCookie, n as VerifyAuthBearerTokenOptions, o as parsePkhDid, p as readSessionClaims, r as assertIsAuthCredential, s as verifyAuthBearerToken, t as ILogger, u as RenownSessionCookie, v as LocalCredentialVerifierOptions, w as Renown, x as RenownBuilderOptions, y as createLocalCredentialVerifier } from "./utils-CrNR-mv8.js";
1
+ import { A as LoginStatus, B as Service, C as InternalUser, Ct as DOMAIN_TYPE, D as JWTVerifyPolicies, Dt as VERIFIABLE_CREDENTIAL_EIP712_TYPE, E as JWTVerified, Et as RENOWN_SESSION_COOKIE, F as RenownEventEmitter, G as User, H as SignInParams, I as RenownEvents, J as VerificationMethod, K as UserActionSigner, L as RenownProfile, M as PowerhouseVerifiableCredential, N as ProfileFetcher, O as JsonWebKey, P as Proof, Q as BaseStorage, R as RenownStorage, S as IVerifiableCredential, St as DEFAULT_RENOWN_URL, T as JWTPayload, Tt as RENOWN_READ_MODEL_SUBGRAPH, U as Signer, V as ServiceEndpoint, W as Unsubscribe, X as VerifiedJWT, Y as VerifiedCredential, Z as W3CCredential, _ as IPowerhouseCredentialSubject, _t as CREDENTIAL_SCHEMA_EIP712_TYPE, a as JwkKeyPair, at as SignCredentialTypedData, b as IRenown, bt as DEFAULT_RENOWN_CHAIN_ID, c as ConditionWeightedThreshold, ct as buildAndSignCredential, d as DIDDocument, dt as verifyAuthCredential, et as IEventEmitter, f as DIDDocumentMetadata, ft as verifyCredentialSignature, g as IAuthCredentialSubject, gt as SwitchboardSource, h as EcdsaSignature, ht as SwitchboardRequestFn, i as JsonWebKeyPairStorage, it as FetchDelegationCredentialOptions, j as PKHDid, k as KeyCapabilitySection, l as CreateBearerTokenOptions, lt as fetchDelegationCredential, m as DIDResolutionResult, mt as SwitchboardClient, n as IConnectCrypto, nt as CredentialDomain, o as AuthVerifiableCredential, ot as VerifiedAuthCredential, p as DIDResolutionMetadata, pt as MissingSwitchboardError, q as Verifiable, r as IRenownCrypto, rt as CredentialMessage, s as AuthVerifiedCredential, st as VerifyAuthCredentialOptions, t as DID, tt as BuildCredentialParams, u as CredentialStatus, ut as recoverCredentialSigner, v as IPowerhouseIssuerType, vt as CREDENTIAL_SUBJECT_TYPE, w as Issuer, wt as ISSUER_TYPE, x as ISigner, xt as DEFAULT_RENOWN_NETWORK_ID, y as IProof, yt as CREDENTIAL_TYPES, z as RenownStorageMap } from "./types-BGQKPoUr.js";
2
+ import { a as parseSignatureHashField, c as RenownCryptoBuilder, i as extractResultingHashFromSignature, l as ConnectCrypto, n as RenownCryptoSigner, o as signatureHasResultingHash, r as createSignatureVerifier, s as MemoryKeyStorage, u as RenownCrypto } from "./index-BLIpkdF7.js";
3
+ import { C as resolveSwitchboardEndpoint, S as ResolveSwitchboardEndpointOptions, T as RenownMemoryStorage, _ as CredentialCheck, a as getResolver, b as BaseRenownBuilder, c as RenownSession, d as RenownSessionProfile, f as VerifyRenownSessionOptions, g as fetchRenownProfile, h as verifyRenownSession, i as createAuthBearerToken, l as RenownSessionClaims, m as serializeRenownSessionCookie, n as VerifyAuthBearerTokenOptions, o as parsePkhDid, p as readSessionClaims, r as assertIsAuthCredential, s as verifyAuthBearerToken, t as ILogger, u as RenownSessionCookie, v as LocalCredentialVerifierOptions, w as Renown, x as RenownBuilderOptions, y as createLocalCredentialVerifier } from "./utils-DtWREYeO.js";
4
4
 
5
5
  //#region src/crypto/node-key-storage.d.ts
6
6
  declare const RENOWN_PRIVATE_KEY_ENV = "PH_RENOWN_PRIVATE_KEY";
@@ -133,5 +133,5 @@ declare function parseExpiry(expiry: string): number;
133
133
  */
134
134
  declare function formatExpiry(expiresIn: number): string;
135
135
  //#endregion
136
- export { AccessTokenResult, AuthStatusResult, AuthVerifiableCredential, AuthVerifiedCredential, BaseRenownBuilder, BrowserLoginOptions, BrowserLoginResult, BuildCredentialParams, CREDENTIAL_SCHEMA_EIP712_TYPE, CREDENTIAL_SUBJECT_TYPE, CREDENTIAL_TYPES, ConditionWeightedThreshold, ConnectCrypto, CreateBearerTokenOptions, CredentialCheck, CredentialDomain, CredentialMessage, CredentialStatus, DEFAULT_KEYPAIR_PATH, DEFAULT_RENOWN_CHAIN_ID, DEFAULT_RENOWN_NETWORK_ID, DEFAULT_RENOWN_STORAGE_PATH, DEFAULT_RENOWN_URL, DID, DIDDocument, DIDDocumentMetadata, DIDResolutionMetadata, DIDResolutionResult, DOMAIN_TYPE, EcdsaSignature, FetchDelegationCredentialOptions, IAuthCredentialSubject, IConnectCrypto, ILogger, IPowerhouseCredentialSubject, IPowerhouseIssuerType, IProof, IRenown, IRenownCrypto, ISSUER_TYPE, ISigner, IVerifiableCredential, InternalUser, Issuer, JWTPayload, JWTVerified, JWTVerifyPolicies, JsonWebKey, JsonWebKeyPairStorage, JwkKeyPair, KeyCapabilitySection, LocalCredentialVerifierOptions, LoginStatus, MemoryKeyStorage, MissingSwitchboardError, NodeEventEmitter, NodeKeyStorage, NodeRenownBuilderOptions, NodeRenownEventEmitter, NodeRenownStorage, NodeStorage, PKHDid, PowerhouseVerifiableCredential, ProfileFetcher, Proof, RENOWN_PRIVATE_KEY_ENV, RENOWN_READ_MODEL_SUBGRAPH, RENOWN_SESSION_COOKIE, Renown, RenownBuilder, RenownBuilderOptions, RenownCrypto, RenownCryptoBuilder, RenownCryptoSigner, RenownEventEmitter, RenownEvents, RenownMemoryStorage, RenownProfile, RenownSession, RenownSessionClaims, RenownSessionCookie, RenownSessionProfile, RenownStorage, RenownStorageMap, ResolveSwitchboardEndpointOptions, Service, ServiceEndpoint, SignCredentialTypedData, SignInParams, Signer, SwitchboardClient, SwitchboardRequestFn, SwitchboardSource, Unsubscribe, User, VERIFIABLE_CREDENTIAL_EIP712_TYPE, Verifiable, VerificationMethod, VerifiedAuthCredential, VerifiedCredential, VerifiedJWT, VerifyAuthBearerTokenOptions, VerifyAuthCredentialOptions, VerifyRenownSessionOptions, W3CCredential, assertIsAuthCredential, browserLogin, buildAndSignCredential, createAuthBearerToken, createLocalCredentialVerifier, createSignatureVerifier, extractResultingHashFromSignature, fetchDelegationCredential, fetchRenownProfile, formatExpiry, generateAccessToken, getAuthStatus, getResolver, openBrowser, parseExpiry, parsePkhDid, parseSignatureHashField, readSessionClaims, recoverCredentialSigner, resolveSwitchboardEndpoint, serializeRenownSessionCookie, signatureHasResultingHash, verifyAuthBearerToken, verifyAuthCredential, verifyCredentialSignature, verifyRenownSession };
136
+ export { AccessTokenResult, AuthStatusResult, AuthVerifiableCredential, AuthVerifiedCredential, BaseRenownBuilder, BrowserLoginOptions, BrowserLoginResult, BuildCredentialParams, CREDENTIAL_SCHEMA_EIP712_TYPE, CREDENTIAL_SUBJECT_TYPE, CREDENTIAL_TYPES, ConditionWeightedThreshold, ConnectCrypto, CreateBearerTokenOptions, CredentialCheck, CredentialDomain, CredentialMessage, CredentialStatus, DEFAULT_KEYPAIR_PATH, DEFAULT_RENOWN_CHAIN_ID, DEFAULT_RENOWN_NETWORK_ID, DEFAULT_RENOWN_STORAGE_PATH, DEFAULT_RENOWN_URL, DID, DIDDocument, DIDDocumentMetadata, DIDResolutionMetadata, DIDResolutionResult, DOMAIN_TYPE, EcdsaSignature, FetchDelegationCredentialOptions, IAuthCredentialSubject, IConnectCrypto, ILogger, IPowerhouseCredentialSubject, IPowerhouseIssuerType, IProof, IRenown, IRenownCrypto, ISSUER_TYPE, ISigner, IVerifiableCredential, InternalUser, Issuer, JWTPayload, JWTVerified, JWTVerifyPolicies, JsonWebKey, JsonWebKeyPairStorage, JwkKeyPair, KeyCapabilitySection, LocalCredentialVerifierOptions, LoginStatus, MemoryKeyStorage, MissingSwitchboardError, NodeEventEmitter, NodeKeyStorage, NodeRenownBuilderOptions, NodeRenownEventEmitter, NodeRenownStorage, NodeStorage, PKHDid, PowerhouseVerifiableCredential, ProfileFetcher, Proof, RENOWN_PRIVATE_KEY_ENV, RENOWN_READ_MODEL_SUBGRAPH, RENOWN_SESSION_COOKIE, Renown, RenownBuilder, RenownBuilderOptions, RenownCrypto, RenownCryptoBuilder, RenownCryptoSigner, RenownEventEmitter, RenownEvents, RenownMemoryStorage, RenownProfile, RenownSession, RenownSessionClaims, RenownSessionCookie, RenownSessionProfile, RenownStorage, RenownStorageMap, ResolveSwitchboardEndpointOptions, Service, ServiceEndpoint, SignCredentialTypedData, SignInParams, Signer, SwitchboardClient, SwitchboardRequestFn, SwitchboardSource, Unsubscribe, User, UserActionSigner, VERIFIABLE_CREDENTIAL_EIP712_TYPE, Verifiable, VerificationMethod, VerifiedAuthCredential, VerifiedCredential, VerifiedJWT, VerifyAuthBearerTokenOptions, VerifyAuthCredentialOptions, VerifyRenownSessionOptions, W3CCredential, assertIsAuthCredential, browserLogin, buildAndSignCredential, createAuthBearerToken, createLocalCredentialVerifier, createSignatureVerifier, extractResultingHashFromSignature, fetchDelegationCredential, fetchRenownProfile, formatExpiry, generateAccessToken, getAuthStatus, getResolver, openBrowser, parseExpiry, parsePkhDid, parseSignatureHashField, readSessionClaims, recoverCredentialSigner, resolveSwitchboardEndpoint, serializeRenownSessionCookie, signatureHasResultingHash, verifyAuthBearerToken, verifyAuthCredential, verifyCredentialSignature, verifyRenownSession };
137
137
  //# sourceMappingURL=node.d.ts.map
package/dist/node.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { a as DEFAULT_RENOWN_NETWORK_ID, c as ISSUER_TYPE, d as VERIFIABLE_CREDENTIAL_EIP712_TYPE, i as DEFAULT_RENOWN_CHAIN_ID, l as RENOWN_READ_MODEL_SUBGRAPH, n as CREDENTIAL_SUBJECT_TYPE, o as DEFAULT_RENOWN_URL, r as CREDENTIAL_TYPES, s as DOMAIN_TYPE, t as CREDENTIAL_SCHEMA_EIP712_TYPE, u as RENOWN_SESSION_COOKIE } from "./constants-BexAR53F.js";
2
- import { a as RenownMemoryStorage, c as fetchDelegationCredential, d as verifyCredentialSignature, f as MissingSwitchboardError, i as Renown, l as recoverCredentialSigner, m as resolveSwitchboardEndpoint, n as BaseRenownBuilder, o as BaseStorage, p as SwitchboardClient, r as fetchRenownProfile, s as buildAndSignCredential, t as createLocalCredentialVerifier, u as verifyAuthCredential } from "./local-credential-verifier-C_XsxGgz.js";
2
+ import { a as RenownMemoryStorage, c as fetchDelegationCredential, d as verifyCredentialSignature, f as MissingSwitchboardError, i as Renown, l as recoverCredentialSigner, m as resolveSwitchboardEndpoint, n as BaseRenownBuilder, o as BaseStorage, p as SwitchboardClient, r as fetchRenownProfile, s as buildAndSignCredential, t as createLocalCredentialVerifier, u as verifyAuthCredential } from "./local-credential-verifier-CU8hmFlR.js";
3
3
  import { a as signatureHasResultingHash, c as ConnectCrypto, d as createAuthBearerToken, f as getResolver, i as parseSignatureHashField, l as RenownCrypto, m as verifyAuthBearerToken, n as createSignatureVerifier, o as MemoryKeyStorage, p as parsePkhDid, r as extractResultingHashFromSignature, s as RenownCryptoBuilder, t as RenownCryptoSigner, u as assertIsAuthCredential } from "./signer-DrjINLqt.js";
4
4
  import { existsSync, mkdirSync, readFileSync, unlinkSync, writeFileSync } from "node:fs";
5
5
  import { dirname, join } from "node:path";
@@ -1,4 +1,4 @@
1
- import { Action, ISigner as ISigner$1, User } from "@powerhousedao/shared/document-model";
1
+ import { Action, ISigner as ISigner$1, User, UserActionSigner as UserActionSigner$1 } 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";
@@ -599,5 +599,5 @@ interface IRenownCrypto {
599
599
  */
600
600
  interface IConnectCrypto extends IRenownCrypto {}
601
601
  //#endregion
602
- export { IEventEmitter as $, LoginStatus as A, Service as B, InternalUser as C, ISSUER_TYPE as Ct, JWTVerifyPolicies as D, JWTVerified as E, VERIFIABLE_CREDENTIAL_EIP712_TYPE as Et, 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, DOMAIN_TYPE as St, JWTPayload as T, RENOWN_SESSION_COOKIE as Tt, Signer as U, ServiceEndpoint as V, Unsubscribe as W, W3CCredential as X, VerifiedJWT as Y, BaseStorage as Z, IPowerhouseCredentialSubject as _, CREDENTIAL_SUBJECT_TYPE as _t, JwkKeyPair as a, VerifiedAuthCredential as at, IRenown as b, DEFAULT_RENOWN_NETWORK_ID as bt, ConditionWeightedThreshold as c, fetchDelegationCredential as ct, DIDDocument as d, verifyCredentialSignature as dt, BuildCredentialParams as et, DIDDocumentMetadata as f, MissingSwitchboardError as ft, IAuthCredentialSubject as g, CREDENTIAL_SCHEMA_EIP712_TYPE as gt, EcdsaSignature as h, SwitchboardSource as ht, JsonWebKeyPairStorage as i, SignCredentialTypedData as it, PKHDid as j, KeyCapabilitySection as k, CreateBearerTokenOptions as l, recoverCredentialSigner as lt, DIDResolutionResult as m, SwitchboardRequestFn as mt, IConnectCrypto as n, CredentialMessage as nt, AuthVerifiableCredential as o, VerifyAuthCredentialOptions as ot, DIDResolutionMetadata as p, SwitchboardClient 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, CREDENTIAL_TYPES as vt, Issuer as w, RENOWN_READ_MODEL_SUBGRAPH as wt, ISigner$1 as x, DEFAULT_RENOWN_URL as xt, IProof as y, DEFAULT_RENOWN_CHAIN_ID as yt, RenownStorageMap as z };
603
- //# sourceMappingURL=types-DVcz43Fb.d.ts.map
602
+ export { MemoryStorage as $, LoginStatus as A, Service as B, InternalUser as C, DOMAIN_TYPE as Ct, JWTVerifyPolicies as D, VERIFIABLE_CREDENTIAL_EIP712_TYPE as Dt, JWTVerified as E, RENOWN_SESSION_COOKIE as Et, RenownEventEmitter as F, User$1 as G, SignInParams as H, RenownEvents as I, VerificationMethod as J, UserActionSigner$1 as K, RenownProfile as L, PowerhouseVerifiableCredential as M, ProfileFetcher as N, JsonWebKey$1 as O, Proof as P, BaseStorage as Q, RenownStorage as R, IVerifiableCredential as S, DEFAULT_RENOWN_URL as St, JWTPayload as T, RENOWN_READ_MODEL_SUBGRAPH as Tt, Signer as U, ServiceEndpoint as V, Unsubscribe as W, VerifiedJWT as X, VerifiedCredential as Y, W3CCredential as Z, IPowerhouseCredentialSubject as _, CREDENTIAL_SCHEMA_EIP712_TYPE as _t, JwkKeyPair as a, SignCredentialTypedData as at, IRenown as b, DEFAULT_RENOWN_CHAIN_ID as bt, ConditionWeightedThreshold as c, buildAndSignCredential as ct, DIDDocument as d, verifyAuthCredential as dt, IEventEmitter as et, DIDDocumentMetadata as f, verifyCredentialSignature as ft, IAuthCredentialSubject as g, SwitchboardSource as gt, EcdsaSignature as h, SwitchboardRequestFn as ht, JsonWebKeyPairStorage as i, FetchDelegationCredentialOptions as it, PKHDid as j, KeyCapabilitySection as k, CreateBearerTokenOptions as l, fetchDelegationCredential as lt, DIDResolutionResult as m, SwitchboardClient as mt, IConnectCrypto as n, CredentialDomain as nt, AuthVerifiableCredential as o, VerifiedAuthCredential as ot, DIDResolutionMetadata as p, MissingSwitchboardError as pt, Verifiable as q, IRenownCrypto as r, CredentialMessage as rt, AuthVerifiedCredential as s, VerifyAuthCredentialOptions as st, DID as t, BuildCredentialParams as tt, CredentialStatus as u, recoverCredentialSigner as ut, IPowerhouseIssuerType as v, CREDENTIAL_SUBJECT_TYPE as vt, Issuer as w, ISSUER_TYPE as wt, ISigner$1 as x, DEFAULT_RENOWN_NETWORK_ID as xt, IProof as y, CREDENTIAL_TYPES as yt, RenownStorageMap as z };
603
+ //# sourceMappingURL=types-BGQKPoUr.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types-DVcz43Fb.d.ts","names":[],"sources":["../src/constants.ts","../src/switchboard.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
+ {"version":3,"file":"types-BGQKPoUr.d.ts","names":[],"sources":["../src/constants.ts","../src/switchboard.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,4 +1,4 @@
1
- import { it as SignCredentialTypedData } from "./types-DVcz43Fb.js";
1
+ import { at as SignCredentialTypedData } from "./types-BGQKPoUr.js";
2
2
  import { ComponentType, ReactNode } from "react";
3
3
 
4
4
  //#region src/wallet/types.d.ts
@@ -56,4 +56,4 @@ type WalletAdapterFactory<Config = unknown> = (config: Config) => WalletAdapterI
56
56
  type WalletAdapterProvider<Config = unknown> = (config: Config) => WalletAdapterDescriptor;
57
57
  //#endregion
58
58
  export { WalletAdapterImpl as a, WalletController as c, WalletThemeColors as d, normalizeWalletTheme as f, WalletAdapterFactory as i, WalletSession as l, WalletAdapter as n, WalletAdapterMeta as o, WalletAdapterDescriptor as r, WalletAdapterProvider as s, LoginMethod as t, WalletTheme as u };
59
- //# sourceMappingURL=types-b2fgIxlx.d.ts.map
59
+ //# sourceMappingURL=types-C-hJrsQg.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types-b2fgIxlx.d.ts","names":[],"sources":["../src/wallet/types.ts"],"mappings":";;;;cAKa,WAAA;EAAA;;;;;KAOD,WAAA,WAAsB,WAAA,eAA0B,WAAA;AAAA,UAI3C,iBAAA;EACf,WAAA;EACA,qBAAA;AAAA;AAAA,KAIU,WAAA;EAGL,IAAA;AAAA,IAA2B,iBAAA;AAAA,iBAGlB,oBAAA,CAAqB,KAAA,EAAO,WAAA;EAC1C,IAAA;EACA,WAAA;EACA,qBAAA;AAAA;AAAA,UAYe,aAAA;EACf,OAAA;EACA,OAAA;EACA,aAAA,EAAe,uBAAA;EAGf,eAAA;AAAA;AAAA,UAIe,gBAAA;EACf,OAAA,CAAQ,MAAA,GAAS,WAAA,GAAc,OAAA,CAAQ,aAAA;EACvC,UAAA,IAAc,OAAA;EACd,UAAA,IAAc,aAAA;EAGd,SAAA,EACE,QAAA,GAAW,OAAA,EAAS,aAAA;AAAA;AAAA,UAMP,iBAAA;EACf,EAAA;EAGA,oBAAA;EAGA,gBAAA,EAAkB,WAAA;AAAA;AAAA,UAIH,iBAAA;EAGf,QAAA,EAAU,aAAA;IAAgB,QAAA,EAAU,SAAA;IAAW,KAAA,GAAQ,WAAA;EAAA;EAEvD,aAAA,QAAqB,gBAAA;AAAA;AAAA,UAIN,aAAA,SAAsB,iBAAA;EACrC,IAAA,EAAM,iBAAA;AAAA;AAAA,UAKS,uBAAA;EACf,IAAA,EAAM,iBAAA;EACN,IAAA,QAAY,OAAA,CAAQ,iBAAA;AAAA;AAAA,KAGV,oBAAA,sBACV,MAAA,EAAQ,MAAA,KACL,iBAAA;AAAA,KAEO,qBAAA,sBACV,MAAA,EAAQ,MAAA,KACL,uBAAA"}
1
+ {"version":3,"file":"types-C-hJrsQg.d.ts","names":[],"sources":["../src/wallet/types.ts"],"mappings":";;;;cAKa,WAAA;EAAA;;;;;KAOD,WAAA,WAAsB,WAAA,eAA0B,WAAA;AAAA,UAI3C,iBAAA;EACf,WAAA;EACA,qBAAA;AAAA;AAAA,KAIU,WAAA;EAGL,IAAA;AAAA,IAA2B,iBAAA;AAAA,iBAGlB,oBAAA,CAAqB,KAAA,EAAO,WAAA;EAC1C,IAAA;EACA,WAAA;EACA,qBAAA;AAAA;AAAA,UAYe,aAAA;EACf,OAAA;EACA,OAAA;EACA,aAAA,EAAe,uBAAA;EAGf,eAAA;AAAA;AAAA,UAIe,gBAAA;EACf,OAAA,CAAQ,MAAA,GAAS,WAAA,GAAc,OAAA,CAAQ,aAAA;EACvC,UAAA,IAAc,OAAA;EACd,UAAA,IAAc,aAAA;EAGd,SAAA,EACE,QAAA,GAAW,OAAA,EAAS,aAAA;AAAA;AAAA,UAMP,iBAAA;EACf,EAAA;EAGA,oBAAA;EAGA,gBAAA,EAAkB,WAAA;AAAA;AAAA,UAIH,iBAAA;EAGf,QAAA,EAAU,aAAA;IAAgB,QAAA,EAAU,SAAA;IAAW,KAAA,GAAQ,WAAA;EAAA;EAEvD,aAAA,QAAqB,gBAAA;AAAA;AAAA,UAIN,aAAA,SAAsB,iBAAA;EACrC,IAAA,EAAM,iBAAA;AAAA;AAAA,UAKS,uBAAA;EACf,IAAA,EAAM,iBAAA;EACN,IAAA,QAAY,OAAA,CAAQ,iBAAA;AAAA;AAAA,KAGV,oBAAA,sBACV,MAAA,EAAQ,MAAA,KACL,iBAAA;AAAA,KAEO,qBAAA,sBACV,MAAA,EAAQ,MAAA,KACL,uBAAA"}
@@ -1,4 +1,4 @@
1
- import { c as WalletController, l as WalletSession, o as WalletAdapterMeta, t as LoginMethod } from "./types-b2fgIxlx.js";
1
+ import { c as WalletController, l as WalletSession, o as WalletAdapterMeta, t as LoginMethod } from "./types-C-hJrsQg.js";
2
2
 
3
3
  //#region src/wallet/privy/meta.d.ts
4
4
  /** Structural subset of viem's `Chain`, so any `viem/chains` / `wagmi/chains` export fits regardless of the host's viem version. */
@@ -60,4 +60,4 @@ interface PrivyWalletController extends WalletController {
60
60
  }
61
61
  //#endregion
62
62
  export { DEFAULT_PRIVY_METHODS as a, PrivyLoginMethod as c, SendCodeOptions as i, privyAdapterMeta as l, PrivyEmailStatus as n, PHRenownPrivyAdapterConfig as o, PrivyWalletController as r, PrivyChain as s, PrivyAuthState as t, resolvePrivyMethods as u };
63
- //# sourceMappingURL=types-C3PZqMdJ.d.ts.map
63
+ //# sourceMappingURL=types-DInveFLz.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types-C3PZqMdJ.d.ts","names":[],"sources":["../src/wallet/privy/meta.ts","../src/wallet/privy/types.ts"],"mappings":";;;;UAGiB,UAAA;EACf,EAAA;EACA,IAAA;EACA,cAAA;IAAkB,IAAA;IAAc,MAAA;IAAgB,QAAA;EAAA;EAChD,OAAA;IAAW,OAAA;MAAW,IAAA;IAAA;EAAA;AAAA;AAAA,KAKZ,gBAAA;AAAA,cAUC,qBAAA,EAAuB,WAAA;AAAA,UAMnB,0BAAA;EACf,KAAA;EACA,QAAA;EAlB0B;EAoB1B,OAAA,GAAU,gBAAA;EAPX;EASC,KAAA,GAAQ,UAAA;EAZ0B;EAclC,UAAA;AAAA;AAAA,iBAKc,mBAAA,CAAoB,OAAA,cAAqB,WAAA;AAAA,cAe5C,gBAAA,EAAkB,IAAA,CAAK,iBAAA;;;;KClDxB,gBAAA;ADHZ;AAAA,UCYiB,cAAA;;EAEf,KAAA;EDbA;ECeA,aAAA;EDbA;ECeA,KAAA;EACA,WAAA,EAAa,gBAAA;EACb,UAAA,GAAa,KAAA;AAAA;AAAA,UAGE,eAAA;EDnBO;ECqBtB,aAAA;AAAA;ADhBF;AAAA,UCoBiB,qBAAA,SAA8B,gBAAA;;EAE7C,QAAA,CAAS,KAAA,UAAe,OAAA,GAAU,eAAA,GAAkB,OAAA;EDtB1B;ECwB1B,aAAA,CAAc,IAAA,WAAe,OAAA,CAAQ,aAAA;EACrC,QAAA,IAAY,cAAA;EACZ,cAAA,CAAe,QAAA,GAAW,KAAA,EAAO,cAAA;AAAA"}
1
+ {"version":3,"file":"types-DInveFLz.d.ts","names":[],"sources":["../src/wallet/privy/meta.ts","../src/wallet/privy/types.ts"],"mappings":";;;;UAGiB,UAAA;EACf,EAAA;EACA,IAAA;EACA,cAAA;IAAkB,IAAA;IAAc,MAAA;IAAgB,QAAA;EAAA;EAChD,OAAA;IAAW,OAAA;MAAW,IAAA;IAAA;EAAA;AAAA;AAAA,KAKZ,gBAAA;AAAA,cAUC,qBAAA,EAAuB,WAAA;AAAA,UAMnB,0BAAA;EACf,KAAA;EACA,QAAA;EAlB0B;EAoB1B,OAAA,GAAU,gBAAA;EAPX;EASC,KAAA,GAAQ,UAAA;EAZ0B;EAclC,UAAA;AAAA;AAAA,iBAKc,mBAAA,CAAoB,OAAA,cAAqB,WAAA;AAAA,cAe5C,gBAAA,EAAkB,IAAA,CAAK,iBAAA;;;;KClDxB,gBAAA;ADHZ;AAAA,UCYiB,cAAA;;EAEf,KAAA;EDbA;ECeA,aAAA;EDbA;ECeA,KAAA;EACA,WAAA,EAAa,gBAAA;EACb,UAAA,GAAa,KAAA;AAAA;AAAA,UAGE,eAAA;EDnBO;ECqBtB,aAAA;AAAA;ADhBF;AAAA,UCoBiB,qBAAA,SAA8B,gBAAA;;EAE7C,QAAA,CAAS,KAAA,UAAe,OAAA,GAAU,eAAA,GAAkB,OAAA;EDtB1B;ECwB1B,aAAA,CAAc,IAAA,WAAe,OAAA,CAAQ,aAAA;EACrC,QAAA,IAAY,cAAA;EACZ,cAAA,CAAe,QAAA,GAAW,KAAA,EAAO,cAAA;AAAA"}
@@ -1,4 +1,4 @@
1
- import { A as LoginStatus, C as InternalUser, F as RenownEventEmitter, G as User, H as SignInParams, I as RenownEvents, J as VerifiedCredential, N as ProfileFetcher, Q as MemoryStorage, R as RenownStorage, b as IRenown, i as JsonWebKeyPairStorage, j as PKHDid, l as CreateBearerTokenOptions, mt as SwitchboardRequestFn, pt as SwitchboardClient, r as IRenownCrypto, s as AuthVerifiedCredential, w as Issuer, x as ISigner, z as RenownStorageMap } from "./types-DVcz43Fb.js";
1
+ import { $ as MemoryStorage, A as LoginStatus, C as InternalUser, F as RenownEventEmitter, G as User, H as SignInParams, I as RenownEvents, N as ProfileFetcher, R as RenownStorage, Y as VerifiedCredential, b as IRenown, ht as SwitchboardRequestFn, i as JsonWebKeyPairStorage, j as PKHDid, l as CreateBearerTokenOptions, mt as SwitchboardClient, r as IRenownCrypto, s as AuthVerifiedCredential, w as Issuer, x as ISigner, z as RenownStorageMap } from "./types-BGQKPoUr.js";
2
2
  import { Resolver } from "did-resolver";
3
3
 
4
4
  //#region src/common.d.ts
@@ -198,4 +198,4 @@ declare function createAuthBearerToken(chainId: number, networkId: string, addre
198
198
  declare const getResolver: () => Resolver;
199
199
  //#endregion
200
200
  export { resolveSwitchboardEndpoint as C, ResolveSwitchboardEndpointOptions as S, RenownMemoryStorage as T, CredentialCheck as _, getResolver as a, BaseRenownBuilder 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, LocalCredentialVerifierOptions as v, Renown as w, RenownBuilderOptions as x, createLocalCredentialVerifier as y };
201
- //# sourceMappingURL=utils-CrNR-mv8.d.ts.map
201
+ //# sourceMappingURL=utils-DtWREYeO.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils-DtWREYeO.d.ts","names":[],"sources":["../src/common.ts","../src/discovery.ts","../src/renown-builder.ts","../src/local-credential-verifier.ts","../src/profile.ts","../src/session.ts","../src/utils.ts"],"mappings":"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"}
@@ -1,4 +1,4 @@
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-b2fgIxlx.js";
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-C-hJrsQg.js";
2
2
 
3
3
  //#region src/wallet/controller.d.ts
4
4
  declare function isWalletRedirectReturn(search: string, metas: WalletAdapterMeta[]): boolean;
@@ -1,5 +1,5 @@
1
- import { a as WalletAdapterImpl } from "../../types-b2fgIxlx.js";
2
- import { r as PHRenownMockAdapterConfig } from "../../meta-HoXT6MS0.js";
1
+ import { a as WalletAdapterImpl } from "../../types-C-hJrsQg.js";
2
+ import { r as PHRenownMockAdapterConfig } from "../../meta-BesJP74N.js";
3
3
 
4
4
  //#region src/wallet/mock/factory.d.ts
5
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. */
@@ -1,5 +1,5 @@
1
- import { r as WalletAdapterDescriptor } from "../../types-b2fgIxlx.js";
2
- import { a as resolveMockMethods, i as mockAdapterMeta, n as MockLoginMethod, r as PHRenownMockAdapterConfig, t as DEFAULT_MOCK_METHODS } from "../../meta-HoXT6MS0.js";
1
+ import { r as WalletAdapterDescriptor } from "../../types-C-hJrsQg.js";
2
+ import { a as resolveMockMethods, i as mockAdapterMeta, n as MockLoginMethod, r as PHRenownMockAdapterConfig, t as DEFAULT_MOCK_METHODS } from "../../meta-BesJP74N.js";
3
3
 
4
4
  //#region src/wallet/mock/index.d.ts
5
5
  /** Headless test/dev wallet adapter for `RenownWalletProvider`: signs real EIP-712 credentials with a local viem account, no wallet UI or OAuth, so e2e sign-in is deterministic. **TEST/DEV ONLY; never enable in production** — it signs with a known key. Needs only `viem`, which `@renown/sdk` already depends on. */
@@ -1,6 +1,6 @@
1
- import { it as SignCredentialTypedData } from "../../types-DVcz43Fb.js";
2
- import { a as WalletAdapterImpl, l as WalletSession, t as LoginMethod, u as WalletTheme } from "../../types-b2fgIxlx.js";
3
- import { i as SendCodeOptions, n as PrivyEmailStatus, o as PHRenownPrivyAdapterConfig, r as PrivyWalletController, s as PrivyChain, t as PrivyAuthState } from "../../types-C3PZqMdJ.js";
1
+ import { at as SignCredentialTypedData } from "../../types-BGQKPoUr.js";
2
+ import { a as WalletAdapterImpl, l as WalletSession, t as LoginMethod, u as WalletTheme } from "../../types-C-hJrsQg.js";
3
+ import { i as SendCodeOptions, n as PrivyEmailStatus, o as PHRenownPrivyAdapterConfig, r as PrivyWalletController, s as PrivyChain, t as PrivyAuthState } from "../../types-DInveFLz.js";
4
4
  import { ComponentType, ReactNode } from "react";
5
5
  import { ConnectedWallet, LoginModalOptions } from "@privy-io/react-auth";
6
6
 
@@ -1,5 +1,5 @@
1
- import { r as WalletAdapterDescriptor } from "../../types-b2fgIxlx.js";
2
- import { a as DEFAULT_PRIVY_METHODS, c as PrivyLoginMethod, i as SendCodeOptions, l as privyAdapterMeta, n as PrivyEmailStatus, o as PHRenownPrivyAdapterConfig, r as PrivyWalletController, s as PrivyChain, t as PrivyAuthState, u as resolvePrivyMethods } from "../../types-C3PZqMdJ.js";
1
+ import { r as WalletAdapterDescriptor } from "../../types-C-hJrsQg.js";
2
+ import { a as DEFAULT_PRIVY_METHODS, c as PrivyLoginMethod, i as SendCodeOptions, l as privyAdapterMeta, n as PrivyEmailStatus, o as PHRenownPrivyAdapterConfig, r as PrivyWalletController, s as PrivyChain, t as PrivyAuthState, u as resolvePrivyMethods } from "../../types-DInveFLz.js";
3
3
 
4
4
  //#region src/wallet/privy/index.d.ts
5
5
  /** Privy wallet adapter (embedded wallets plus social / email login) for `RenownWalletProvider`. Importing this module loads no wallet library — `@privy-io/react-auth` is fetched by `load()` on the first login click — but it does make that package a build-time requirement, so install it alongside this import. */
@@ -1,5 +1,5 @@
1
- import { a as WalletAdapterImpl } from "../../types-b2fgIxlx.js";
2
- import { n as PHRenownRainbowAdapterConfig } from "../../meta-CuSSO6OA.js";
1
+ import { a as WalletAdapterImpl } from "../../types-C-hJrsQg.js";
2
+ import { n as PHRenownRainbowAdapterConfig } from "../../meta-bV7L-1yb.js";
3
3
  //#region src/wallet/rainbow/factory.d.ts
4
4
  declare function createRainbowAdapter(config: PHRenownRainbowAdapterConfig): WalletAdapterImpl;
5
5
  //#endregion
@@ -1,5 +1,5 @@
1
- import { r as WalletAdapterDescriptor } from "../../types-b2fgIxlx.js";
2
- import { i as rainbowAdapterMeta, n as PHRenownRainbowAdapterConfig, r as RAINBOW_METHODS, t as PHRenownChain } from "../../meta-CuSSO6OA.js";
1
+ import { r as WalletAdapterDescriptor } from "../../types-C-hJrsQg.js";
2
+ import { i as rainbowAdapterMeta, n as PHRenownRainbowAdapterConfig, r as RAINBOW_METHODS, t as PHRenownChain } from "../../meta-bV7L-1yb.js";
3
3
 
4
4
  //#region src/wallet/rainbow/index.d.ts
5
5
  /** RainbowKit + wagmi wallet adapter (external / injected wallets) for `RenownWalletProvider`. Importing this module loads no wallet library — `@rainbow-me/rainbowkit`, `wagmi` and `@tanstack/react-query` are fetched by `load()` on the first login click — but it does make them build-time requirements, so install them alongside this import. Pass `ssr: true` on server-rendered hosts. */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@renown/sdk",
3
- "version": "6.2.2-dev.67",
3
+ "version": "6.2.2-dev.69",
4
4
  "description": "Renown SDK — wallet-based authentication and user identity management for Powerhouse React applications.",
5
5
  "license": "AGPL-3.0-only",
6
6
  "private": false,
@@ -99,7 +99,7 @@
99
99
  },
100
100
  "dependencies": {
101
101
  "@didtools/key-webcrypto": "^0.2.0",
102
- "@powerhousedao/shared": "6.2.2-dev.67",
102
+ "@powerhousedao/shared": "6.2.2-dev.69",
103
103
  "did-jwt-vc": "^4.0.12",
104
104
  "did-resolver": "^4.1.0",
105
105
  "key-did-resolver": "^4.0.0",
@@ -1 +0,0 @@
1
- {"version":3,"file":"local-credential-verifier-C_XsxGgz.js","names":["#endpoint","#transport","#post","#request","#legacyMutate","#store","#eventEmitter","#baseUrl","#crypto","#appName","#profileFetcher","#switchboard","#chainId","#signer","#status","#updateStatus","#getCredential","#updateUser","#completeLogin","#listeners","#appName","#storage","#eventEmitter","#crypto","#keyPairStorage","#baseUrl","#switchboardUrl","#chainId","#profileFetcher"],"sources":["../src/discovery.ts","../src/switchboard.ts","../src/credential.ts","../src/storage/common.ts","../src/common.ts","../src/event/memory.ts","../src/profile.ts","../src/renown-builder.ts","../src/local-credential-verifier.ts"],"sourcesContent":["export interface ResolveSwitchboardEndpointOptions {\n // Explicit Switchboard GraphQL endpoint. When set, used directly.\n switchboardUrl?: string;\n // Renown base URL to ask for a switchboard endpoint when none is explicit.\n baseUrl?: string;\n // Max time (ms) to wait for the discovery probe before falling back to REST.\n timeoutMs?: number;\n}\n\n// Legacy Renown instances accept the connection but never respond to the\n// discovery request; without a bound, `fetch` hangs and blocks startup.\nconst DEFAULT_DISCOVERY_TIMEOUT_MS = 3000;\n\n// Shape returned by the Renown app's `/api/switchboard` discovery endpoint.\ninterface DiscoveryResponse {\n endpoint?: string;\n}\n\n// Resolve the Switchboard GraphQL endpoint: explicit `switchboardUrl` wins,\n// else discover via `{baseUrl}/api/switchboard`; undefined means use REST.\nexport async function resolveSwitchboardEndpoint(\n options: ResolveSwitchboardEndpointOptions,\n): Promise<string | undefined> {\n const { switchboardUrl, baseUrl, timeoutMs } = options;\n\n if (switchboardUrl) {\n return switchboardUrl;\n }\n\n if (!baseUrl) {\n return undefined;\n }\n\n const controller = new AbortController();\n const timeout = setTimeout(\n () => controller.abort(),\n timeoutMs ?? DEFAULT_DISCOVERY_TIMEOUT_MS,\n );\n\n try {\n const url = new URL(\"/api/switchboard\", baseUrl);\n const response = await fetch(url, {\n method: \"GET\",\n signal: controller.signal,\n });\n if (!response.ok) {\n return undefined;\n }\n const body = (await response.json()) as DiscoveryResponse;\n return body.endpoint || undefined;\n } catch {\n // Old Renown instances never answer (or lack the endpoint); the abort\n // timeout rejects here so we fall back to the REST flow instead of hanging.\n return undefined;\n } finally {\n clearTimeout(timeout);\n }\n}\n","import {\n createAction,\n type Action,\n} from \"@powerhousedao/shared/document-model\";\nimport { CREDENTIAL_TYPES } from \"./constants.js\";\nimport type {\n PowerhouseVerifiableCredential,\n ProfileFetcher,\n RenownProfile,\n} from \"./types.js\";\n\n/** Thrown by `signIn` when the instance has no switchboard to write the\n * credential to, so a host can fall back to the Renown redirect flow. */\nexport class MissingSwitchboardError extends Error {\n constructor() {\n super(\n \"signIn requires a switchboard endpoint. Set switchboardUrl or a discoverable baseUrl.\",\n );\n this.name = \"MissingSwitchboardError\";\n }\n\n /** `instanceof` fails across duplicate SDK copies, so match by name too. */\n static is(error: unknown): error is MissingSwitchboardError {\n return (\n error instanceof MissingSwitchboardError ||\n (error instanceof Error && error.name === \"MissingSwitchboardError\")\n );\n }\n}\n\n// Per-user drive convention shared with the Renown app: `renown-<address>`.\n// The read-model ignores driveId, but we pass it for parity.\nfunction userDriveId(address: string): string {\n return `renown-${address.toLowerCase()}`;\n}\n\n// Flat row returned by the `renownCredentials` read-model query.\ninterface ReadRenownCredential {\n documentId: string;\n credentialId: string;\n context: string[];\n type: string[];\n issuerId: string;\n issuerEthereumAddress: string;\n issuanceDate: string;\n expirationDate: string | null;\n credentialSubjectId: string | null;\n credentialSubjectApp: string;\n credentialStatusId: string | null;\n credentialStatusType: string | null;\n credentialSchemaId: string;\n credentialSchemaType: string;\n proofVerificationMethod: string;\n proofEthereumAddress: string;\n proofCreated: string;\n proofPurpose: string;\n proofType: string;\n proofValue: string;\n proofEip712Domain: string;\n proofEip712PrimaryType: string;\n revoked: boolean;\n}\n\n// Flat row returned by the `renownUsers` read-model query.\ninterface ReadRenownUser {\n documentId: string;\n username: string | null;\n ethAddress: string | null;\n userImage: string | null;\n createdAt: string;\n updatedAt: string;\n}\n\nconst CREDENTIALS_QUERY = /* GraphQL */ `\n query RenownCredentials($input: RenownCredentialsInput!) {\n renownCredentials(input: $input) {\n documentId\n credentialId\n context\n type\n issuerId\n issuerEthereumAddress\n issuanceDate\n expirationDate\n credentialSubjectId\n credentialSubjectApp\n credentialStatusId\n credentialStatusType\n credentialSchemaId\n credentialSchemaType\n proofVerificationMethod\n proofEthereumAddress\n proofCreated\n proofPurpose\n proofType\n proofValue\n proofEip712Domain\n proofEip712PrimaryType\n revoked\n }\n }\n`;\n\nconst USERS_QUERY = /* GraphQL */ `\n query RenownUsers($input: RenownUsersInput!) {\n renownUsers(input: $input) {\n documentId\n username\n ethAddress\n userImage\n createdAt\n updatedAt\n }\n }\n`;\n\nconst CREATE_EMPTY_DOCUMENT_MUTATION = /* GraphQL */ `\n mutation CreateEmptyDocument(\n $documentType: String!\n $parentIdentifier: String\n ) {\n createEmptyDocument(\n documentType: $documentType\n parentIdentifier: $parentIdentifier\n ) {\n id\n }\n }\n`;\n\nconst MUTATE_DOCUMENT_MUTATION = /* GraphQL */ `\n mutation MutateDocument(\n $documentIdentifier: String!\n $actions: [ActionInput!]!\n ) {\n mutateDocument: execute(\n documentIdentifier: $documentIdentifier\n actions: $actions\n ) {\n id\n }\n }\n`;\n\n/* Switchboards older than 6.2.2-dev.54 have no `execute`; their `mutateDocument`\n takes the same envelopes as untyped JSON. Same selection, so one result shape. */\nconst LEGACY_MUTATE_DOCUMENT_MUTATION = /* GraphQL */ `\n mutation MutateDocument(\n $documentIdentifier: String!\n $actions: [JSONObject!]!\n ) {\n mutateDocument(documentIdentifier: $documentIdentifier, actions: $actions) {\n id\n }\n }\n`;\n\n// graphql-js validation failure for a field the server's schema lacks.\nfunction isUnknownExecuteField(error: unknown): boolean {\n return (\n error instanceof Error &&\n /Cannot query field \"execute\" on type \"Mutation\"/.test(error.message)\n );\n}\n\nconst RENOWN_CREDENTIAL_DOC_TYPE = \"powerhouse/renown-credential\";\nconst RENOWN_USER_DOC_TYPE = \"powerhouse/renown-user\";\n\n// Rebuild the nested EIP-712 verifiable credential from a flat read-model row.\nfunction reshapeCredential(\n row: ReadRenownCredential,\n): PowerhouseVerifiableCredential {\n // `proofEip712Domain` is stored as a JSON string ({ version, chainId }).\n const domain = JSON.parse(row.proofEip712Domain) as {\n version: string;\n chainId: number;\n };\n\n return {\n \"@context\": row.context,\n type: row.type,\n id: row.credentialId,\n issuer: {\n id: row.issuerId,\n ethereumAddress: row.issuerEthereumAddress as `0x${string}`,\n },\n credentialSubject: {\n id: row.credentialSubjectId ?? \"\",\n app: row.credentialSubjectApp,\n },\n credentialSchema: {\n id: row.credentialSchemaId,\n type: row.credentialSchemaType,\n },\n ...(row.credentialStatusId\n ? {\n credentialStatus: {\n id: row.credentialStatusId,\n type: row.credentialStatusType ?? \"\",\n },\n }\n : {}),\n issuanceDate: row.issuanceDate,\n expirationDate: row.expirationDate ?? \"\",\n proof: {\n type: row.proofType,\n created: row.proofCreated,\n verificationMethod: row.proofVerificationMethod,\n proofPurpose: row.proofPurpose,\n proofValue: row.proofValue,\n ethereumAddress: row.proofEthereumAddress as `0x${string}`,\n eip712: {\n domain,\n types: CREDENTIAL_TYPES,\n primaryType: \"VerifiableCredential\",\n },\n },\n };\n}\n\n// The chain id in a `did:pkh:<net>:<chainId>:<address>` issuer id.\nfunction issuerChainId(issuerId: string): string | undefined {\n return issuerId.split(\":\")[3];\n}\n\n// The address in a `did:pkh:<net>:<chainId>:<address>` issuer id.\nfunction issuerDidAddress(issuerId: string): string | undefined {\n return issuerId.split(\":\")[4];\n}\n\n// Re-check the delegation binding instead of trusting the read-model's\n// `did`/`ethAddress` filters, matching the REST path in `credential.ts`.\nfunction bindsTo(\n row: ReadRenownCredential,\n address: string,\n chainId: number,\n appDid: string,\n): boolean {\n const expected = address.toLowerCase();\n return (\n !row.revoked &&\n row.credentialSubjectId === appDid &&\n issuerChainId(row.issuerId) === String(chainId) &&\n issuerDidAddress(row.issuerId)?.toLowerCase() === expected &&\n row.issuerEthereumAddress.toLowerCase() === expected\n );\n}\n\n/** Runs a GraphQL document against a Switchboard and resolves its `data`;\n * throws on transport or GraphQL errors. */\nexport type SwitchboardRequestFn = (\n query: string,\n variables: Record<string, unknown>,\n) => Promise<unknown>;\n\n/** Where a SwitchboardClient reads from: an HTTP endpoint or a local executor. */\nexport type SwitchboardSource = string | SwitchboardRequestFn;\n\n// Reads and writes a Switchboard reactor's `renown-read-model` subgraph and\n// document mutations over GraphQL, replacing the Renown Next.js REST proxy.\nexport class SwitchboardClient {\n #endpoint: string | undefined;\n #transport: SwitchboardRequestFn;\n // Set once the switchboard has rejected `execute`, so later writes skip the probe.\n #legacyMutate = false;\n\n constructor(source: SwitchboardSource) {\n if (typeof source === \"string\") {\n this.#endpoint = source;\n this.#transport = (query, variables) =>\n this.#post(source, query, variables);\n } else {\n this.#transport = source;\n }\n }\n\n /** The HTTP endpoint, or undefined when reading through a local executor. */\n get endpoint(): string | undefined {\n return this.#endpoint;\n }\n\n async #post(\n endpoint: string,\n query: string,\n variables: Record<string, unknown>,\n ): Promise<unknown> {\n const response = await fetch(endpoint, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({ query, variables }),\n });\n /* A validation failure comes back as 400 WITH a GraphQL error body, so read\n it before judging the status: the messages say what was wrong, the code\n only that something was. */\n const body = (await response.json().catch(() => undefined)) as\n | { data?: unknown; errors?: { message: string }[] }\n | undefined;\n if (body?.errors?.length) {\n throw new Error(body.errors.map((e) => e.message).join(\"; \"));\n }\n if (!response.ok || !body) {\n throw new Error(`Switchboard request failed: ${response.status}`);\n }\n // `#request` rejects an empty `data` for every transport, HTTP or local.\n return body.data;\n }\n\n async #request<T>(\n query: string,\n variables: Record<string, unknown>,\n ): Promise<T> {\n const data = await this.#transport(query, variables);\n if (!data) {\n throw new Error(\"Switchboard returned no data\");\n }\n return data as T;\n }\n\n // Fetch the active delegation credential for (address, chainId) that delegates\n // to `appDid`: re-check the binding, drop expired, return most recent.\n async getCredential(params: {\n address: string;\n chainId: number;\n appDid: string;\n }): Promise<PowerhouseVerifiableCredential | undefined> {\n const { address, chainId, appDid } = params;\n const { renownCredentials } = await this.#request<{\n renownCredentials: ReadRenownCredential[];\n }>(CREDENTIALS_QUERY, {\n input: {\n driveId: userDriveId(address),\n ethAddress: address.toLowerCase(),\n did: appDid,\n includeRevoked: false,\n },\n });\n\n const now = Date.now();\n const candidates = renownCredentials\n .filter((row) => bindsTo(row, address, chainId, appDid))\n .filter((row) => {\n if (!row.expirationDate) return true;\n const expiresAt = Date.parse(row.expirationDate);\n return !Number.isNaN(expiresAt) && expiresAt > now;\n })\n .sort((a, b) => Date.parse(b.issuanceDate) - Date.parse(a.issuanceDate));\n\n const mostRecent = candidates.at(0);\n return mostRecent ? reshapeCredential(mostRecent) : undefined;\n }\n\n // Look up a Renown profile by ethereum address via the `renownUsers` query.\n async getProfileByAddress(\n address: string,\n ): Promise<RenownProfile | undefined> {\n const { renownUsers } = await this.#request<{\n renownUsers: ReadRenownUser[];\n }>(USERS_QUERY, {\n input: {\n driveId: userDriveId(address),\n ethAddresses: [address.toLowerCase()],\n },\n });\n\n const user = renownUsers.at(0);\n if (!user) return undefined;\n return {\n documentId: user.documentId,\n username: user.username,\n ethAddress: user.ethAddress,\n userImage: user.userImage,\n createdAt: user.createdAt,\n updatedAt: user.updatedAt,\n };\n }\n\n // Create an empty document of the given type; returns its document id.\n async createEmptyDocument(\n documentType: string,\n parentIdentifier?: string,\n ): Promise<string> {\n const { createEmptyDocument } = await this.#request<{\n createEmptyDocument: { id: string };\n }>(CREATE_EMPTY_DOCUMENT_MUTATION, { documentType, parentIdentifier });\n return createEmptyDocument.id;\n }\n\n // Apply reactor action envelopes to a document; returns its document id.\n async mutateDocument(\n documentIdentifier: string,\n actions: Action[],\n ): Promise<string> {\n const variables = { documentIdentifier, actions };\n if (!this.#legacyMutate) {\n try {\n const { mutateDocument } = await this.#request<{\n mutateDocument: { id: string };\n }>(MUTATE_DOCUMENT_MUTATION, variables);\n return mutateDocument.id;\n } catch (error) {\n if (!isUnknownExecuteField(error)) throw error;\n this.#legacyMutate = true;\n }\n }\n const { mutateDocument } = await this.#request<{\n mutateDocument: { id: string };\n }>(LEGACY_MUTATE_DOCUMENT_MUTATION, variables);\n return mutateDocument.id;\n }\n\n // Issue a signed credential: create a renown-credential doc and INIT it.\n async issueCredential(\n credential: PowerhouseVerifiableCredential,\n parentIdentifier?: string,\n ): Promise<string> {\n const documentId = await this.createEmptyDocument(\n RENOWN_CREDENTIAL_DOC_TYPE,\n parentIdentifier,\n );\n const input: Record<string, unknown> = {\n id: credential.id,\n context: credential[\"@context\"],\n type: credential.type,\n issuer: {\n id: credential.issuer.id,\n ethereumAddress: credential.issuer.ethereumAddress,\n },\n credentialSubject: {\n id: credential.credentialSubject.id,\n app: credential.credentialSubject.app,\n },\n credentialSchema: {\n id: credential.credentialSchema.id,\n type: credential.credentialSchema.type,\n },\n issuanceDate: credential.issuanceDate,\n expirationDate: credential.expirationDate || undefined,\n proof: {\n type: credential.proof.type,\n created: credential.proof.created,\n verificationMethod: credential.proof.verificationMethod,\n proofPurpose: credential.proof.proofPurpose,\n proofValue: credential.proof.proofValue,\n ethereumAddress: credential.proof.ethereumAddress,\n eip712: {\n domain: {\n version: credential.proof.eip712.domain.version,\n chainId: credential.proof.eip712.domain.chainId,\n },\n primaryType: credential.proof.eip712.primaryType,\n },\n },\n };\n await this.mutateDocument(documentId, [createAction(\"INIT\", input)]);\n return documentId;\n }\n\n // Find the RenownUser for an address or create one; returns its document id.\n async findOrCreateUser(\n address: string,\n profile: { username?: string; userImage?: string } = {},\n ): Promise<string> {\n const updates: Action[] = [];\n if (profile.username !== undefined) {\n updates.push(\n createAction(\"SET_USERNAME\", { username: profile.username }),\n );\n }\n if (profile.userImage !== undefined) {\n updates.push(\n createAction(\"SET_USER_IMAGE\", { userImage: profile.userImage }),\n );\n }\n\n const existing = await this.getProfileByAddress(address);\n if (existing) {\n if (updates.length)\n await this.mutateDocument(existing.documentId, updates);\n return existing.documentId;\n }\n\n const documentId = await this.createEmptyDocument(RENOWN_USER_DOC_TYPE);\n await this.mutateDocument(documentId, [\n createAction(\"SET_ETH_ADDRESS\", { ethAddress: address }),\n ...updates,\n ]);\n return documentId;\n }\n\n // Revoke a credential by its document id.\n async revokeCredential(documentId: string, reason?: string): Promise<void> {\n await this.mutateDocument(documentId, [\n createAction(\"REVOKE\", {\n revokedAt: new Date().toISOString(),\n reason: reason ?? null,\n }),\n ]);\n }\n\n // A ProfileFetcher backed by this client; used as the default when the\n // direct-switchboard flow is active. The `baseUrl` argument is ignored.\n profileFetcher: ProfileFetcher = (user) =>\n this.getProfileByAddress(user.address).catch(() => undefined);\n}\n","import { recoverTypedDataAddress } from \"viem\";\nimport {\n CREDENTIAL_TYPES,\n DEFAULT_RENOWN_NETWORK_ID,\n DEFAULT_RENOWN_URL,\n} from \"./constants.js\";\nimport { resolveSwitchboardEndpoint } from \"./discovery.js\";\nimport {\n SwitchboardClient,\n type SwitchboardRequestFn,\n type SwitchboardSource,\n} from \"./switchboard.js\";\nimport type { IProof, PowerhouseVerifiableCredential } from \"./types.js\";\nimport { verifyAuthBearerToken } from \"./utils.js\";\n\n/* Local structural aliases (EIP-712 standard shapes) so renown's public .d.ts\n * never names viem — a viem type in the surface drags viem's whole closure in. */\ntype Hex = `0x${string}`;\ntype TypedDataDomain = {\n name?: string;\n version?: string;\n chainId?: number;\n verifyingContract?: Hex;\n salt?: Hex;\n};\ntype TypedDataParameter = { name: string; type: string };\n\n/** EIP-712 domain as signed by the credential issuer. */\nexport type CredentialDomain = {\n version: string;\n chainId: number;\n};\n\n/** The credential body that is EIP-712 signed (everything except `proof`). */\nexport type CredentialMessage = {\n \"@context\": string[];\n type: string[];\n id: string;\n issuer: { id: string; ethereumAddress: Hex };\n credentialSubject: { id: string; app: string };\n credentialSchema: { id: string; type: string };\n issuanceDate: string;\n expirationDate: string;\n};\n\n/** Typed-data signer; matches the loose shape used by wallet adapters. */\nexport type SignCredentialTypedData = (args: {\n domain: TypedDataDomain;\n types: Record<string, readonly TypedDataParameter[]>;\n primaryType: string;\n message: Record<string, unknown>;\n}) => Promise<Hex>;\n\nexport interface BuildCredentialParams {\n signTypedData: SignCredentialTypedData;\n address: Hex;\n chainId: number;\n app: string;\n /** Credential subject id: the app/client DID the credential delegates to. */\n appId: string;\n expiresInDays?: number;\n}\n\n/** Assemble a Renown delegation VC and sign it with the provided signer. */\nexport async function buildAndSignCredential(\n params: BuildCredentialParams,\n): Promise<PowerhouseVerifiableCredential> {\n const {\n signTypedData,\n address,\n chainId,\n app,\n appId,\n expiresInDays = 7,\n } = params;\n\n const issuerId = `did:pkh:${DEFAULT_RENOWN_NETWORK_ID}:${chainId}:${address.toLowerCase()}`;\n const credentialId = `urn:uuid:${globalThis.crypto.randomUUID()}`;\n const now = new Date();\n const expirationDate = new Date(\n now.getTime() + expiresInDays * 24 * 60 * 60 * 1000,\n );\n\n const message: CredentialMessage = {\n \"@context\": [\"https://www.w3.org/2018/credentials/v1\"],\n type: [\"VerifiableCredential\", \"RenownCredential\"],\n id: credentialId,\n issuer: { id: issuerId, ethereumAddress: address },\n credentialSubject: { id: appId, app },\n credentialSchema: {\n id: \"https://renown.id/schemas/renown-credential/v1\",\n type: \"JsonSchemaValidator2018\",\n },\n issuanceDate: now.toISOString(),\n expirationDate: expirationDate.toISOString(),\n };\n\n const domain: CredentialDomain = { version: \"1\", chainId };\n\n // viem and most wallet adapters reserve EIP712Domain and derive it from\n // `domain` — passing it explicitly makes them throw.\n const { EIP712Domain, ...signTypes } = CREDENTIAL_TYPES;\n void EIP712Domain;\n const signature = await signTypedData({\n domain,\n types: signTypes,\n primaryType: \"VerifiableCredential\",\n message,\n });\n\n return {\n ...message,\n proof: {\n type: \"EthereumEip712Signature2021\",\n created: message.issuanceDate,\n verificationMethod: issuerId,\n proofPurpose: \"assertionMethod\",\n proofValue: signature,\n ethereumAddress: address,\n eip712: {\n domain,\n types: CREDENTIAL_TYPES,\n primaryType: \"VerifiableCredential\",\n },\n },\n };\n}\n\n/** Recover the address that signed a credential's EIP-712 proof. */\nexport async function recoverCredentialSigner(\n credential: PowerhouseVerifiableCredential,\n): Promise<Hex> {\n const { proof, ...message } = credential;\n // Drop EIP712Domain so viem derives it from `domain`; viem ignores\n // message keys not present in the types, so the proof is excluded too.\n const { EIP712Domain, ...types } = CREDENTIAL_TYPES;\n void EIP712Domain;\n return recoverTypedDataAddress({\n domain: proof.eip712.domain,\n types,\n primaryType: \"VerifiableCredential\",\n message,\n signature: proof.proofValue as Hex,\n } as Parameters<typeof recoverTypedDataAddress>[0]);\n}\n\n/** True when the proof was signed by the credential's declared issuer address. */\nexport async function verifyCredentialSignature(\n credential: PowerhouseVerifiableCredential,\n): Promise<boolean> {\n try {\n const recovered = await recoverCredentialSigner(credential);\n return (\n recovered.toLowerCase() ===\n credential.issuer.ethereumAddress.toLowerCase()\n );\n } catch {\n // Malformed proof (bad hex, missing fields) is an invalid signature.\n return false;\n }\n}\n\n// The deployed Renown API may omit proof.eip712.domain; it's canonical\n// (version \"1\", the credential's chainId), so reconstruct it before verifying.\nfunction withEip712Domain(\n credential: PowerhouseVerifiableCredential,\n chainId: number,\n): PowerhouseVerifiableCredential {\n const eip712 = credential.proof.eip712 as\n | Partial<IProof[\"eip712\"]>\n | undefined;\n if (eip712?.domain) return credential;\n return {\n ...credential,\n proof: {\n ...credential.proof,\n eip712: {\n domain: { version: \"1\", chainId },\n types: CREDENTIAL_TYPES,\n primaryType: \"VerifiableCredential\",\n },\n },\n };\n}\n\nexport interface FetchDelegationCredentialOptions {\n /** Ethereum address that must have issued the credential. */\n address: string;\n /** Chain id the credential must be scoped to. */\n chainId: number;\n /** App/client DID the credential must delegate to (credentialSubject.id). */\n appDid: string;\n /** Renown service base URL. Defaults to DEFAULT_RENOWN_URL. */\n baseUrl?: string;\n /** Switchboard GraphQL endpoint; when reachable, read the reactor directly. */\n switchboardUrl?: string;\n /** In-process Switchboard reader; wins over any URL and skips discovery. */\n switchboardRequest?: SwitchboardRequestFn;\n /** Probe {baseUrl}/api/switchboard for an endpoint (default true). */\n discover?: boolean;\n /** Re-verify the EIP-712 proof signature (default true). */\n verifySignature?: boolean;\n}\n\n// Fetch + binding/expiry-validate the credential over the Renown REST API.\nasync function fetchDelegationCredentialRest(params: {\n address: string;\n chainId: number;\n appDid: string;\n baseUrl: string;\n}): Promise<PowerhouseVerifiableCredential | undefined> {\n const { address, chainId, appDid, baseUrl } = params;\n const url = new URL(\n `/api/auth/credential?address=${encodeURIComponent(address)}&chainId=${encodeURIComponent(chainId)}&connectId=${encodeURIComponent(appDid)}&appId=${encodeURIComponent(appDid)}`,\n baseUrl,\n );\n const response = await fetch(url, { method: \"GET\" });\n if (!response.ok) return undefined;\n const { credential } = (await response.json()) as {\n credential?: PowerhouseVerifiableCredential;\n };\n if (!credential) return undefined;\n\n // Binding: delegates to this app DID, issued by this address on this chain\n // (issuer.id = did:pkh:<networkId>:<chainId>:<address>).\n const [, , , issuerChainId, issuerAddress] = credential.issuer.id.split(\":\");\n if (\n credential.credentialSubject.id !== appDid ||\n issuerChainId !== String(chainId) ||\n issuerAddress.toLowerCase() !== address.toLowerCase() ||\n credential.issuer.ethereumAddress.toLowerCase() !== address.toLowerCase()\n ) {\n return undefined;\n }\n\n // Reject an expired credential (revocation drops it from the endpoint\n // instead); a malformed date (NaN) counts as invalid, not non-expiring.\n if (credential.expirationDate) {\n const expiresAt = Date.parse(credential.expirationDate);\n if (Number.isNaN(expiresAt) || expiresAt <= Date.now()) {\n return undefined;\n }\n }\n\n return credential;\n}\n\n// Optionally re-verify the EIP-712 proof; returns the credential or undefined.\nasync function finalizeCredential(\n credential: PowerhouseVerifiableCredential,\n chainId: number,\n verifySignature: boolean,\n): Promise<PowerhouseVerifiableCredential | undefined> {\n if (!verifySignature) return credential;\n const withDomain = withEip712Domain(credential, chainId);\n if (\n withDomain.proof.eip712.domain.chainId !== chainId ||\n !(await verifyCredentialSignature(withDomain))\n ) {\n return undefined;\n }\n return withDomain;\n}\n\n// Fetch the Renown delegation credential for (address, chainId) and validate it\n// delegates to `appDid`; returns it, or undefined if absent/invalid. No throw.\nexport async function fetchDelegationCredential(\n options: FetchDelegationCredentialOptions,\n): Promise<PowerhouseVerifiableCredential | undefined> {\n const {\n address,\n chainId,\n appDid,\n switchboardUrl,\n switchboardRequest,\n discover = true,\n verifySignature = true,\n } = options;\n const explicitBaseUrl = options.baseUrl;\n const baseUrl = explicitBaseUrl ?? DEFAULT_RENOWN_URL;\n try {\n // A local reader or explicit switchboardUrl is used directly; otherwise\n // discover from the base URL unless the caller already resolved it.\n const source: SwitchboardSource | undefined =\n switchboardRequest ??\n (switchboardUrl\n ? switchboardUrl\n : discover && explicitBaseUrl\n ? await resolveSwitchboardEndpoint({ baseUrl })\n : undefined);\n\n const credential = source\n ? await new SwitchboardClient(source).getCredential({\n address,\n chainId,\n appDid,\n })\n : await fetchDelegationCredentialRest({\n address,\n chainId,\n appDid,\n baseUrl,\n });\n\n if (!credential) return undefined;\n return await finalizeCredential(credential, chainId, verifySignature);\n } catch {\n return undefined;\n }\n}\n\nexport interface VerifiedAuthCredential {\n address: string;\n chainId: number;\n networkId: string;\n /** Owner identity: the pkh DID (did:pkh:<net>:<chainId>:<address>). */\n did: string;\n /** App/client DID the bearer token was issued by. */\n appDid: string;\n credential: PowerhouseVerifiableCredential;\n}\n\nexport interface VerifyAuthCredentialOptions {\n /** Expected `aud` claim on the bearer token. */\n audience?: string;\n /** Renown service base URL. */\n renownUrl?: string;\n /** Switchboard GraphQL endpoint; when reachable, read the reactor directly. */\n switchboardUrl?: string;\n /** In-process Switchboard reader; wins over any URL and skips discovery. */\n switchboardRequest?: SwitchboardRequestFn;\n /** Re-verify the credential's EIP-712 proof (default true). */\n verifySignature?: boolean;\n}\n\n// Verify a renown bearer token end to end: check the JWT, then fetch+verify the\n// matching credential. Resolves the owner identity, or undefined. No throw.\nexport async function verifyAuthCredential(\n jwt: string,\n options: VerifyAuthCredentialOptions = {},\n): Promise<VerifiedAuthCredential | undefined> {\n const verified = await verifyAuthBearerToken(jwt, {\n audience: options.audience,\n });\n if (!verified) return undefined;\n\n const { address, chainId, networkId } =\n verified.verifiableCredential.credentialSubject;\n const appDid = verified.issuer;\n const credential = await fetchDelegationCredential({\n address,\n chainId,\n appDid,\n baseUrl: options.renownUrl,\n switchboardUrl: options.switchboardUrl,\n switchboardRequest: options.switchboardRequest,\n verifySignature: options.verifySignature,\n });\n if (!credential) return undefined;\n\n return {\n address,\n chainId,\n networkId,\n did: credential.issuer.id,\n appDid,\n credential,\n };\n}\n","export interface IStorage<\n T extends Record<string, unknown> = Record<string, unknown>,\n Key extends keyof T = keyof T,\n> {\n get(key: Key): T[Key] | undefined;\n set(key: Key, value?: T[Key]): void;\n delete(key: Key): void;\n}\n\nexport abstract class BaseStorage<\n T extends Record<string, unknown> = Record<string, unknown>,\n Key extends keyof T = keyof T,\n> implements IStorage<T> {\n abstract get(key: Key): T[Key] | undefined;\n abstract set(key: Key, value?: T[Key]): void;\n abstract delete(key: Key): void;\n}\n\nexport class MemoryStorage<\n T extends Record<string, unknown> = Record<string, unknown>,\n Key extends keyof T = keyof T,\n> extends BaseStorage<T> {\n private readonly data = new Map<Key, T[Key]>();\n\n get(key: Key) {\n return this.data.get(key);\n }\n\n set(key: Key, value?: T[Key]): void {\n if (value === undefined) {\n this.data.delete(key);\n } else {\n this.data.set(key, value);\n }\n }\n\n delete(key: Key): void {\n this.data.delete(key);\n }\n}\n","import {\n CREDENTIAL_TYPES,\n DEFAULT_RENOWN_CHAIN_ID,\n DEFAULT_RENOWN_NETWORK_ID,\n DEFAULT_RENOWN_URL,\n} from \"./constants.js\";\nimport {\n buildAndSignCredential,\n verifyCredentialSignature,\n} from \"./credential.js\";\nimport { RenownCryptoSigner, type IRenownCrypto } from \"./crypto/index.js\";\nimport { MemoryStorage } from \"./storage/common.js\";\nimport {\n MissingSwitchboardError,\n type SwitchboardClient,\n} from \"./switchboard.js\";\nimport type {\n CreateBearerTokenOptions,\n IProof,\n IRenown,\n ISigner,\n LoginStatus,\n PKHDid,\n PowerhouseVerifiableCredential,\n ProfileFetcher,\n RenownEventEmitter,\n RenownEvents,\n RenownStorage,\n RenownStorageMap,\n SignInParams,\n User,\n} from \"./types.js\";\nimport { parsePkhDid, verifyAuthBearerToken } from \"./utils.js\";\nexport * from \"./constants.js\";\n\nexport class RenownMemoryStorage extends MemoryStorage<RenownStorageMap> {}\n\nexport class Renown implements IRenown {\n #baseUrl: string;\n #store: RenownStorage;\n #eventEmitter: RenownEventEmitter;\n #appName: string;\n #crypto: IRenownCrypto;\n #signer: ISigner;\n #profileFetcher?: ProfileFetcher;\n #switchboard?: SwitchboardClient;\n #chainId: number;\n #status: LoginStatus = \"initial\";\n\n constructor(\n store: RenownStorage,\n eventEmitter: RenownEventEmitter,\n crypto: IRenownCrypto,\n appName: string,\n baseUrl = DEFAULT_RENOWN_URL,\n profileFetcher?: ProfileFetcher,\n switchboard?: SwitchboardClient,\n chainId = Number(DEFAULT_RENOWN_CHAIN_ID),\n ) {\n this.#store = store;\n this.#eventEmitter = eventEmitter;\n this.#baseUrl = baseUrl;\n this.#crypto = crypto;\n this.#appName = appName;\n this.#profileFetcher = profileFetcher;\n this.#switchboard = switchboard;\n this.#chainId = chainId;\n const restoredUser = this.user;\n this.#signer = new RenownCryptoSigner(crypto, this.#appName, restoredUser);\n\n // A restored, previously-verified user is an authorized session; otherwise\n // status stays \"initial\" after a reload while the user is present.\n if (restoredUser) {\n this.#status = \"authorized\";\n }\n\n this.on(\"user\", (user) => {\n this.#signer.user = user;\n });\n }\n\n get baseUrl() {\n return this.#baseUrl;\n }\n\n /** Chain id this app issues credentials on; a session from another chain is rejected by {@link signIn}. */\n get chainId() {\n return this.#chainId;\n }\n\n get user() {\n return this.#store.get(\"user\");\n }\n\n get status() {\n return this.#status;\n }\n\n get signer() {\n return this.#signer;\n }\n\n get crypto() {\n return this.#crypto;\n }\n\n get did() {\n return this.#crypto.did;\n }\n\n get profileFetcher() {\n return this.#profileFetcher;\n }\n\n #updateStatus(status: LoginStatus) {\n this.#status = status;\n this.#eventEmitter.emit(\"status\", status);\n }\n\n #updateUser(user: User | undefined) {\n if (user) {\n this.#store.set(\"user\", user);\n } else {\n this.#store.delete(\"user\");\n }\n this.#eventEmitter.emit(\"user\", user);\n }\n\n async login(userDid: string): Promise<User> {\n this.#updateStatus(\"checking\");\n try {\n const result = parsePkhDid(userDid);\n const credential = await this.#getCredential(\n result.address,\n result.chainId,\n this.#crypto.did,\n );\n\n if (!credential) {\n this.#updateUser(undefined);\n throw new Error(\"Credential not found\");\n }\n\n return await this.#completeLogin(userDid, result, credential);\n } catch (error) {\n this.#updateUser(undefined);\n this.#updateStatus(\"not-authorized\");\n throw error;\n }\n }\n\n // Sign in without the Renown redirect: build + sign a delegation credential\n // with the caller's wallet signer, write it to the switchboard, then log in.\n async signIn(params: SignInParams): Promise<User> {\n if (!this.#switchboard) throw new MissingSwitchboardError();\n const {\n address,\n chainId,\n signTypedData,\n username,\n userImage,\n expiresInDays,\n } = params;\n\n // The chain id goes into the issuer DID and the EIP-712 domain, so signing on\n // another chain would mint a second identity for the same wallet.\n if (chainId !== this.#chainId) {\n throw new Error(\n `Renown signIn: wallet is on chain ${chainId}, but this app issues credentials on chain ${this.#chainId}. Switch networks and retry — signing here would create a separate identity for the same address.`,\n );\n }\n\n this.#updateStatus(\"checking\");\n try {\n const credential = await buildAndSignCredential({\n signTypedData,\n address,\n chainId,\n app: this.#appName,\n appId: this.did,\n expiresInDays,\n });\n\n await this.#switchboard.issueCredential(credential);\n await this.#switchboard.findOrCreateUser(address, {\n username,\n userImage,\n });\n\n const userDid = `did:pkh:${DEFAULT_RENOWN_NETWORK_ID}:${chainId}:${address.toLowerCase()}`;\n // Authenticate from the freshly signed credential — no read-back, which\n // avoids racing the read-model processor that indexes the write.\n return await this.#completeLogin(\n userDid,\n parsePkhDid(userDid),\n credential,\n );\n } catch (error) {\n this.#updateUser(undefined);\n this.#updateStatus(\"not-authorized\");\n throw error;\n }\n }\n\n // Verify a credential binds to userDid + this app key, set the user, and\n // start the background profile fetch. Throws if the credential is invalid.\n async #completeLogin(\n userDid: string,\n result: PKHDid,\n credential: PowerhouseVerifiableCredential,\n ): Promise<User> {\n if (\n !(\n credential.issuer.id === userDid &&\n credential.credentialSubject.id === this.did\n )\n ) {\n throw new Error(\"Invalid credential\");\n }\n\n // The API may return proof.eip712 without domain/types; the domain is\n // canonical (version \"1\", the chainId), so reconstruct it before verifying.\n const eip712 = credential.proof.eip712 as\n | Partial<IProof[\"eip712\"]>\n | undefined;\n const verifiableCredential: PowerhouseVerifiableCredential = eip712?.domain\n ? credential\n : {\n ...credential,\n proof: {\n ...credential.proof,\n eip712: {\n domain: { version: \"1\", chainId: result.chainId },\n types: CREDENTIAL_TYPES,\n primaryType: \"VerifiableCredential\",\n },\n },\n };\n\n // Verify the EIP-712 proof was signed by the DID's address on its chain.\n if (\n credential.issuer.ethereumAddress.toLowerCase() !==\n result.address.toLowerCase() ||\n verifiableCredential.proof.eip712.domain.chainId !== result.chainId ||\n !(await verifyCredentialSignature(verifiableCredential))\n ) {\n throw new Error(\"Invalid credential signature\");\n }\n\n const user: User = {\n ...result,\n address: credential.issuer.ethereumAddress,\n did: userDid,\n credential: verifiableCredential,\n };\n\n this.#updateUser(user);\n this.#updateStatus(\"authorized\");\n\n // Fetch profile data in the background if a fetcher is configured\n if (this.#profileFetcher) {\n this.#profileFetcher(user, this.#baseUrl)\n .then((profile) => {\n if (\n profile &&\n this.user?.address === user.address &&\n this.user.chainId === user.chainId\n ) {\n this.#updateUser({\n ...this.user,\n profile,\n ens: {\n name: profile.username ?? undefined,\n avatarUrl: profile.userImage ?? undefined,\n },\n });\n }\n })\n .catch(console.error);\n }\n\n return user;\n }\n\n logout() {\n this.#updateUser(undefined);\n this.#updateStatus(\"initial\");\n return Promise.resolve();\n }\n\n // Re-check the current user's credential at the source; logs out if it was\n // revoked or expired. Network errors keep the session (fail open).\n async revalidate(): Promise<boolean> {\n const user = this.user;\n if (!user) return false;\n try {\n const credential = await this.#getCredential(\n user.address,\n user.chainId,\n this.#crypto.did,\n );\n if (!credential) {\n await this.logout();\n return false;\n }\n await this.refreshProfile();\n return true;\n } catch {\n return true;\n }\n }\n\n // Re-read profile attributes at the source so a renamed user or changed avatar\n // shows up on the next load. Carries no logout risk, unlike revalidate().\n async refreshProfile(): Promise<boolean> {\n const user = this.user;\n if (!user || !this.#profileFetcher) return false;\n try {\n const profile = await this.#profileFetcher(user, this.#baseUrl);\n if (!profile) return false;\n // Asserted because narrowing from the pre-await read would otherwise hide\n // that a logout during the fetch can clear this.\n const current = this.user as User | undefined;\n if (\n !current ||\n current.address !== user.address ||\n current.chainId !== user.chainId\n ) {\n return false;\n }\n // Narrow `profile` first: the fetched payload is unvalidated JSON, so a\n // missing documentId must not make the undefined case compare equal.\n const unchanged =\n current.profile !== undefined &&\n current.profile.documentId === profile.documentId &&\n current.profile.username === profile.username &&\n current.profile.userImage === profile.userImage;\n if (unchanged) return false;\n this.#updateUser({\n ...current,\n profile,\n ens: {\n name: profile.username ?? undefined,\n avatarUrl: profile.userImage ?? undefined,\n },\n });\n return true;\n } catch {\n return false;\n }\n }\n\n on<K extends keyof RenownEvents>(\n event: K,\n listener: (data: RenownEvents[K]) => void,\n ): () => void {\n return this.#eventEmitter.on(event, listener);\n }\n\n async #getCredential(\n address: string,\n chainId: number,\n appDid: string,\n ): Promise<PowerhouseVerifiableCredential | undefined> {\n // Direct-switchboard flow: read the credential from the reactor subgraph.\n if (this.#switchboard) {\n return this.#switchboard.getCredential({ address, chainId, appDid });\n }\n if (!this.#baseUrl) {\n throw new Error(\"RENOWN_URL is not set\");\n }\n const url = new URL(\n `/api/auth/credential?address=${encodeURIComponent(address)}&chainId=${encodeURIComponent(chainId)}&connectId=${encodeURIComponent(appDid)}&appId=${encodeURIComponent(appDid)}`,\n this.#baseUrl,\n );\n const response = await fetch(url, {\n method: \"GET\",\n });\n if (response.ok) {\n const result = (await response.json()) as {\n credential: PowerhouseVerifiableCredential;\n };\n return result.credential;\n } else {\n throw new Error(`Failed to get credential: ${response.status}`);\n }\n }\n\n async verifyBearerToken(token: string) {\n return verifyAuthBearerToken(token);\n }\n\n async getBearerToken(options: CreateBearerTokenOptions) {\n if (!this.user) {\n throw new Error(\"User not found\");\n }\n return this.#crypto.getBearerToken(this.user.address, options);\n }\n}\n","import type { RenownEvents } from \"../types.js\";\nimport type { IEventEmitter } from \"./types.js\";\n\nexport class MemoryEventEmitter implements IEventEmitter<RenownEvents> {\n #listeners = new Map<keyof RenownEvents, Set<(data: unknown) => void>>();\n\n on<K extends keyof RenownEvents>(\n event: K,\n listener: (data: RenownEvents[K]) => void,\n ): () => void {\n if (!this.#listeners.has(event)) {\n this.#listeners.set(event, new Set());\n }\n this.#listeners.get(event)!.add(listener as (data: unknown) => void);\n return () => {\n this.#listeners.get(event)?.delete(listener as (data: unknown) => void);\n };\n }\n\n emit<K extends keyof RenownEvents>(event: K, data: RenownEvents[K]): void {\n this.#listeners.get(event)?.forEach((listener) => listener(data));\n }\n}\n","import type { ProfileFetcher, RenownProfile } from \"./types.js\";\n\nexport const fetchRenownProfile: ProfileFetcher = async (user, baseUrl) => {\n try {\n const response = await fetch(`${baseUrl.replace(/\\/+$/, \"\")}/api/profile`, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n ethAddress: user.address,\n }),\n });\n\n if (!response.ok) {\n return undefined;\n }\n\n const result = (await response.json()) as {\n profile?: RenownProfile;\n };\n\n return result.profile ?? undefined;\n } catch {\n return undefined;\n }\n};\n","import { Renown, RenownMemoryStorage } from \"./common.js\";\nimport { DEFAULT_RENOWN_CHAIN_ID, DEFAULT_RENOWN_URL } from \"./constants.js\";\nimport { RenownCryptoBuilder } from \"./crypto/renown-crypto-builder.js\";\nimport type { IRenownCrypto, JsonWebKeyPairStorage } from \"./crypto/types.js\";\nimport { resolveSwitchboardEndpoint } from \"./discovery.js\";\nimport { MemoryEventEmitter } from \"./event/memory.js\";\nimport { fetchRenownProfile } from \"./profile.js\";\nimport { SwitchboardClient } from \"./switchboard.js\";\nimport type {\n ProfileFetcher,\n RenownEventEmitter,\n RenownStorage,\n} from \"./types.js\";\n\nexport interface RenownBuilderOptions {\n appName: string;\n storage?: RenownStorage;\n eventEmitter?: RenownEventEmitter;\n crypto?: IRenownCrypto;\n keyPairStorage?: JsonWebKeyPairStorage;\n baseUrl?: string;\n switchboardUrl?: string;\n profileFetcher?: ProfileFetcher;\n /** Chain id credentials are issued on (default 1). The issuer DID embeds it, so `signIn` rejects a wallet session from another chain. */\n chainId?: number;\n}\n\n/**\n * Base builder for creating Renown instances.\n * Use platform-specific builders (RenownBuilder from init.browser.js or init.node.js)\n * for pre-configured defaults.\n */\nexport class BaseRenownBuilder {\n #appName: string;\n #storage?: RenownStorage;\n #eventEmitter?: RenownEventEmitter;\n #crypto?: IRenownCrypto;\n #keyPairStorage?: JsonWebKeyPairStorage;\n #baseUrl?: string;\n #switchboardUrl?: string;\n #profileFetcher?: ProfileFetcher;\n #chainId?: number;\n\n /**\n * @param appName - Application name used for signing context\n */\n constructor(appName: string) {\n this.#appName = appName;\n }\n\n /**\n * Set custom storage for user data persistence.\n * Defaults to in-memory storage if not set.\n */\n withStorage(storage: RenownStorage): this {\n this.#storage = storage;\n return this;\n }\n\n /**\n * Set custom event emitter for user state changes.\n * Defaults to in-memory event emitter if not set.\n */\n withEventEmitter(eventEmitter: RenownEventEmitter): this {\n this.#eventEmitter = eventEmitter;\n return this;\n }\n\n /**\n * Set a pre-built crypto instance.\n * Either crypto or keyPairStorage must be provided.\n */\n withCrypto(crypto: IRenownCrypto): this {\n this.#crypto = crypto;\n return this;\n }\n\n /**\n * Set key pair storage for cryptographic keys.\n * A crypto instance will be built from this storage.\n * Either crypto or keyPairStorage must be provided.\n */\n withKeyPairStorage(keyPairStorage: JsonWebKeyPairStorage): this {\n this.#keyPairStorage = keyPairStorage;\n return this;\n }\n\n /**\n * Set the Renown server URL for credential verification.\n * Defaults to https://www.renown.id\n */\n withBaseUrl(baseUrl: string): this {\n this.#baseUrl = baseUrl;\n return this;\n }\n\n // Set the Switchboard GraphQL endpoint to read from the reactor directly.\n // When unset, the SDK discovers it from the base URL, else uses the REST flow.\n withSwitchboardUrl(switchboardUrl: string): this {\n this.#switchboardUrl = switchboardUrl;\n return this;\n }\n\n // Set the chain id credentials are issued on (default 1). It is part of the\n // issuer DID, so signIn rejects a wallet session from a different chain.\n withChainId(chainId: number): this {\n this.#chainId = chainId;\n return this;\n }\n\n /**\n * Set a profile fetcher strategy for enriching user data after login.\n * The fetcher receives the authenticated user and the base URL,\n * and returns a RenownProfile. Called in the background after each login.\n * Defaults to fetchRenownProfile which calls the Renown API.\n */\n withProfileFetcher(profileFetcher: ProfileFetcher): this {\n this.#profileFetcher = profileFetcher;\n return this;\n }\n\n /**\n * Build and initialize the Renown instance.\n * If a user is stored, attempts to re-authenticate them.\n * @throws Error if neither crypto nor keyPairStorage is provided\n */\n async build(): Promise<Renown> {\n if (!this.#crypto && !this.#keyPairStorage) {\n throw new Error(\n \"Either crypto or keyPairStorage is required. Use withCrypto() or withKeyPairStorage() to set one.\",\n );\n }\n\n const chainId = this.#chainId ?? Number(DEFAULT_RENOWN_CHAIN_ID);\n const crypto =\n this.#crypto ??\n (await new RenownCryptoBuilder()\n .withKeyPairStorage(this.#keyPairStorage!)\n .withChainId(chainId)\n .build());\n\n // A crypto supplied via withCrypto() carries its own chain; the bearer token\n // it mints would then disagree with the credentials issued here.\n if (crypto.chainId !== undefined && crypto.chainId !== chainId) {\n console.warn(\n `Renown: the supplied crypto signs bearer tokens for chain ${crypto.chainId}, but credentials are issued on chain ${chainId}.`,\n );\n }\n\n const storage = this.#storage ?? new RenownMemoryStorage();\n const eventEmitter = this.#eventEmitter ?? new MemoryEventEmitter();\n const baseUrl = this.#baseUrl ?? DEFAULT_RENOWN_URL;\n\n // Pick the transport once: direct-switchboard when an endpoint resolves,\n // else the REST flow. A custom profile fetcher always takes precedence.\n const switchboardEndpoint = await resolveSwitchboardEndpoint({\n switchboardUrl: this.#switchboardUrl,\n baseUrl,\n });\n const switchboard = switchboardEndpoint\n ? new SwitchboardClient(switchboardEndpoint)\n : undefined;\n const profileFetcher =\n this.#profileFetcher ??\n (switchboard ? switchboard.profileFetcher : fetchRenownProfile);\n\n const renown = new Renown(\n storage,\n eventEmitter,\n crypto,\n this.#appName,\n baseUrl,\n profileFetcher,\n switchboard,\n chainId,\n );\n\n // A stored user is loaded as-is for an instant, offline-safe start; callers\n // revalidate against the source separately via renown.revalidate().\n return renown;\n }\n\n /**\n * Create a BaseRenownBuilder from options object for a more concise API\n */\n static from(options: RenownBuilderOptions): BaseRenownBuilder {\n const builder = new BaseRenownBuilder(options.appName);\n\n if (options.storage) {\n builder.withStorage(options.storage);\n }\n if (options.eventEmitter) {\n builder.withEventEmitter(options.eventEmitter);\n }\n if (options.crypto) {\n builder.withCrypto(options.crypto);\n }\n if (options.keyPairStorage) {\n builder.withKeyPairStorage(options.keyPairStorage);\n }\n if (options.baseUrl) {\n builder.withBaseUrl(options.baseUrl);\n }\n if (options.switchboardUrl) {\n builder.withSwitchboardUrl(options.switchboardUrl);\n }\n if (options.profileFetcher) {\n builder.withProfileFetcher(options.profileFetcher);\n }\n if (options.chainId !== undefined) {\n builder.withChainId(options.chainId);\n }\n\n return builder;\n }\n}\n","import { fetchDelegationCredential } from \"./credential.js\";\nimport type { SwitchboardRequestFn } from \"./switchboard.js\";\n\n/** Confirms an authenticated signer's delegation credential is still live. */\nexport type CredentialCheck = (params: {\n address: string;\n chainId: number;\n appId: string;\n}) => Promise<boolean>;\n\nexport interface LocalCredentialVerifierOptions {\n /** Notified when the read itself fails; the check then fails closed. */\n onError?: (error: unknown) => void;\n}\n\n/** A credential check that reads a Switchboard's own renown read model through\n * `execute`, rather than any Renown or Switchboard over HTTP. */\nexport function createLocalCredentialVerifier(\n execute: SwitchboardRequestFn,\n options: LocalCredentialVerifierOptions = {},\n): CredentialCheck {\n // fetchDelegationCredential turns a read failure into \"no credential\" — the\n // right verdict, but silent; surface it before it is swallowed.\n const request: SwitchboardRequestFn = async (query, variables) => {\n try {\n return await execute(query, variables);\n } catch (error) {\n options.onError?.(error);\n throw error;\n }\n };\n\n return async ({ address, chainId, appId }) => {\n const credential = await fetchDelegationCredential({\n address,\n chainId,\n appDid: appId,\n switchboardRequest: request,\n });\n return credential !== undefined;\n };\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils-CrNR-mv8.d.ts","names":[],"sources":["../src/common.ts","../src/discovery.ts","../src/renown-builder.ts","../src/local-credential-verifier.ts","../src/profile.ts","../src/session.ts","../src/utils.ts"],"mappings":"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"}