@renown/sdk 6.2.3-dev.22 → 6.2.3-dev.24

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 (63) hide show
  1. package/dist/{browser-key-storage-e3RQsnLS.js → browser-key-storage-CeyLjla8.js} +1 -1
  2. package/dist/{browser-key-storage-e3RQsnLS.js.map → browser-key-storage-CeyLjla8.js.map} +1 -1
  3. package/dist/crypto.d.ts +2 -2
  4. package/dist/crypto.js +2 -2
  5. package/dist/{index-BLIpkdF7.d.ts → index-Bcs-BY-C.d.ts} +10 -19
  6. package/dist/{index-BLIpkdF7.d.ts.map → index-Bcs-BY-C.d.ts.map} +1 -1
  7. package/dist/index.d.ts +5 -4
  8. package/dist/index.d.ts.map +1 -1
  9. package/dist/index.js +6 -4
  10. package/dist/index.js.map +1 -1
  11. package/dist/local-credential-verifier-2aC00ymX.js +429 -0
  12. package/dist/local-credential-verifier-2aC00ymX.js.map +1 -0
  13. package/dist/{meta-bV7L-1yb.d.ts → meta-B8HbJHy8.d.ts} +2 -2
  14. package/dist/{meta-bV7L-1yb.d.ts.map → meta-B8HbJHy8.d.ts.map} +1 -1
  15. package/dist/{meta-CHgd9Qd0.js → meta-BOjLjJ1Y.js} +2 -2
  16. package/dist/{meta-CHgd9Qd0.js.map → meta-BOjLjJ1Y.js.map} +1 -1
  17. package/dist/{meta-BesJP74N.d.ts → meta-CRXEMUUQ.d.ts} +2 -2
  18. package/dist/{meta-BesJP74N.d.ts.map → meta-CRXEMUUQ.d.ts.map} +1 -1
  19. package/dist/{meta-D-5kvwx8.js → meta-adhFGw0o.js} +2 -2
  20. package/dist/{meta-D-5kvwx8.js.map → meta-adhFGw0o.js.map} +1 -1
  21. package/dist/node.d.ts +19 -4
  22. package/dist/node.d.ts.map +1 -1
  23. package/dist/node.js +18 -3
  24. package/dist/node.js.map +1 -1
  25. package/dist/{signer-DrjINLqt.js → signer-DIbtSfsu.js} +30 -102
  26. package/dist/signer-DIbtSfsu.js.map +1 -0
  27. package/dist/{local-credential-verifier-CU8hmFlR.js → signer-trust-D7vg4xbS.js} +120 -421
  28. package/dist/signer-trust-D7vg4xbS.js.map +1 -0
  29. package/dist/signer-trust-Dg7Wggsc.d.ts +53 -0
  30. package/dist/signer-trust-Dg7Wggsc.d.ts.map +1 -0
  31. package/dist/trust.d.ts +2 -0
  32. package/dist/trust.js +2 -0
  33. package/dist/{types-DInveFLz.d.ts → types-CQDAkCVn.d.ts} +2 -2
  34. package/dist/{types-DInveFLz.d.ts.map → types-CQDAkCVn.d.ts.map} +1 -1
  35. package/dist/{types-BGQKPoUr.d.ts → types-CXBWG4JY.d.ts} +10 -2
  36. package/dist/types-CXBWG4JY.d.ts.map +1 -0
  37. package/dist/{types-C-hJrsQg.d.ts → types-ChjGDXVS.d.ts} +2 -2
  38. package/dist/{types-C-hJrsQg.d.ts.map → types-ChjGDXVS.d.ts.map} +1 -1
  39. package/dist/{types-C_qc_62W.js → types-ome2Ysme.js} +1 -1
  40. package/dist/{types-C_qc_62W.js.map → types-ome2Ysme.js.map} +1 -1
  41. package/dist/{utils-DtWREYeO.d.ts → utils-BuSw6Mud.d.ts} +3 -11
  42. package/dist/utils-BuSw6Mud.d.ts.map +1 -0
  43. package/dist/utils-Dtdm4vFs.js +74 -0
  44. package/dist/utils-Dtdm4vFs.js.map +1 -0
  45. package/dist/wallet/index.d.ts +1 -1
  46. package/dist/wallet/index.js +1 -1
  47. package/dist/wallet/mock/factory.d.ts +2 -2
  48. package/dist/wallet/mock/factory.js +1 -1
  49. package/dist/wallet/mock/index.d.ts +2 -2
  50. package/dist/wallet/mock/index.js +1 -1
  51. package/dist/wallet/privy/factory.d.ts +3 -3
  52. package/dist/wallet/privy/factory.js +2 -2
  53. package/dist/wallet/privy/index.d.ts +2 -2
  54. package/dist/wallet/privy/index.js +1 -1
  55. package/dist/wallet/rainbow/factory.d.ts +2 -2
  56. package/dist/wallet/rainbow/factory.js +1 -1
  57. package/dist/wallet/rainbow/index.d.ts +2 -2
  58. package/dist/wallet/rainbow/index.js +1 -1
  59. package/package.json +9 -3
  60. package/dist/local-credential-verifier-CU8hmFlR.js.map +0 -1
  61. package/dist/signer-DrjINLqt.js.map +0 -1
  62. package/dist/types-BGQKPoUr.d.ts.map +0 -1
  63. package/dist/utils-DtWREYeO.d.ts.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signer-trust-D7vg4xbS.js","names":["bindsTo","#endpoint","#transport","#post","#request","#legacyMutate"],"sources":["../src/discovery.ts","../src/switchboard.ts","../src/credential.ts","../src/signer-trust.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 return !row.revoked && issuedTo(row, address, chainId, appDid);\n}\n\nfunction issuedTo(\n row: ReadRenownCredential,\n address: string,\n chainId: number,\n appDid: string,\n): boolean {\n const expected = address.toLowerCase();\n return (\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 // Every credential (address, chainId) issued to `appDid`, revoked and expired\n // included: that the address once delegated to the key does not change.\n async getIssuedCredentials(params: {\n address: string;\n chainId: number;\n appDid: string;\n }): Promise<PowerhouseVerifiableCredential[]> {\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: true,\n },\n });\n\n const credentials: PowerhouseVerifiableCredential[] = [];\n for (const row of renownCredentials) {\n if (!issuedTo(row, address, chainId, appDid)) continue;\n try {\n credentials.push(reshapeCredential(row));\n } catch {\n // A row whose proof domain does not parse cannot verify.\n }\n }\n return credentials;\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/** True when the credential's EIP-712 proof, on `chainId`, was signed by its\n * issuer address. Binding and expiry are the caller's to check. */\nexport async function verifyDelegationProof(\n credential: PowerhouseVerifiableCredential,\n chainId: number,\n): Promise<boolean> {\n const withDomain = withEip712Domain(credential, chainId);\n return (\n withDomain.proof.eip712.domain.chainId === chainId &&\n (await verifyCredentialSignature(withDomain))\n );\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 if (!(await verifyDelegationProof(credential, chainId))) {\n return undefined;\n }\n return withEip712Domain(credential, chainId);\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","import type { ActionSigner } from \"@powerhousedao/shared/document-model\";\nimport { DEFAULT_RENOWN_URL } from \"./constants.js\";\nimport { verifyDelegationProof } from \"./credential.js\";\nimport { SwitchboardClient, type SwitchboardSource } from \"./switchboard.js\";\nimport type { PowerhouseVerifiableCredential } from \"./types.js\";\n\ntype SignerUser = ActionSigner[\"user\"];\n\n/** A signer whose `app.key` and `user` are read on every ask. */\nexport interface RenownOwnSigner {\n readonly app?: { readonly key: string };\n readonly user?: SignerUser;\n}\n\nexport interface RenownTrustPolicyOptions {\n /** Serves the renown read model; without it, Renown's REST API is read. */\n switchboard?: SwitchboardSource;\n /** Renown base URL for the REST lookup. Defaults to DEFAULT_RENOWN_URL. */\n renownUrl?: string;\n /** This node's signer, read on every ask; its key signing as its current user is accepted without a lookup. Wins over `self`. */\n ownSigner?: RenownOwnSigner;\n /**\n * A snapshot of this node's key and user, for a pooled worker whose signer\n * cannot cross the thread boundary. Only matches the worker's own key.\n */\n self?: { key: string; user: SignerUser };\n /** How many acceptances are remembered. Defaults to 10000. */\n maxAccepted?: number;\n /** How long a refusal is remembered before asking again. Defaults to 60s. */\n refusalTtlMs?: number;\n}\n\n/** Structurally a reactor `SignatureTrustPolicy`. */\nexport interface RenownTrustPolicy {\n authorizeSigner(\n signer: ActionSigner,\n key: string,\n documentId: string,\n ): Promise<boolean>;\n}\n\nconst DEFAULT_MAX_ACCEPTED = 10_000;\nconst DEFAULT_REFUSAL_TTL_MS = 60_000;\n\n/**\n * Accepts a key the user's EIP-712 Renown credential delegates to, ignoring\n * expiry and revocation. Verdicts are cached per (address, key); this node's\n * own key is checked before the cache and never cached.\n */\nexport function createRenownTrustPolicy(\n options: RenownTrustPolicyOptions = {},\n): RenownTrustPolicy {\n const maxAccepted = options.maxAccepted ?? DEFAULT_MAX_ACCEPTED;\n const refusalTtlMs = options.refusalTtlMs ?? DEFAULT_REFUSAL_TTL_MS;\n const client = options.switchboard\n ? new SwitchboardClient(options.switchboard)\n : undefined;\n const renownUrl = options.renownUrl ?? DEFAULT_RENOWN_URL;\n\n const accepted = new Set<string>();\n const refusedUntil = new Map<string, number>();\n const pending = new Map<string, Promise<boolean>>();\n\n const issued = (\n user: SignerUser,\n key: string,\n ): Promise<PowerhouseVerifiableCredential[]> =>\n client\n ? client.getIssuedCredentials({\n address: user.address,\n chainId: user.chainId,\n appDid: key,\n })\n : fetchIssuedCredentialRest(user, key, renownUrl);\n\n async function lookup(user: SignerUser, key: string): Promise<boolean> {\n for (const credential of await issued(user, key)) {\n if (\n bindsTo(credential, user, key) &&\n (await verifyDelegationProof(credential, user.chainId))\n ) {\n return true;\n }\n }\n return false;\n }\n\n function remember(entry: string, verdict: boolean): void {\n if (verdict) {\n if (accepted.size >= maxAccepted) {\n const oldest = accepted.values().next().value;\n if (oldest !== undefined) accepted.delete(oldest);\n }\n accepted.add(entry);\n refusedUntil.delete(entry);\n } else {\n refusedUntil.set(entry, Date.now() + refusalTtlMs);\n }\n }\n\n return {\n authorizeSigner(signer, key) {\n const user = signer.user as SignerUser | undefined;\n const self = ownIdentity(options);\n if (self && isSelf(self, user, key)) {\n return Promise.resolve(true);\n }\n if (!user || !isLookupable(user, key)) {\n return Promise.resolve(false);\n }\n\n const entry = `${user.networkId}|${user.chainId}|${user.address.toLowerCase()}|${key}`;\n if (accepted.has(entry)) {\n return Promise.resolve(true);\n }\n const until = refusedUntil.get(entry);\n if (until !== undefined && until > Date.now()) {\n return Promise.resolve(false);\n }\n const inFlight = pending.get(entry);\n if (inFlight) {\n return inFlight;\n }\n\n const verdict = lookup(user, key).then(\n (result) => {\n pending.delete(entry);\n remember(entry, result);\n return result;\n },\n (error: unknown) => {\n pending.delete(entry);\n throw error;\n },\n );\n pending.set(entry, verdict);\n return verdict;\n },\n };\n}\n\nfunction ownIdentity(\n options: RenownTrustPolicyOptions,\n): RenownTrustPolicyOptions[\"self\"] {\n if (!options.ownSigner) {\n return options.self;\n }\n const { app, user } = options.ownSigner;\n return {\n key: app?.key ?? \"\",\n user: {\n address: user?.address ?? \"\",\n networkId: user?.networkId ?? \"\",\n chainId: user?.chainId ?? 0,\n },\n };\n}\n\nfunction isSelf(\n self: NonNullable<RenownTrustPolicyOptions[\"self\"]>,\n user: SignerUser | undefined,\n key: string,\n): boolean {\n return (\n self.key !== \"\" &&\n key === self.key &&\n (user?.address ?? \"\").toLowerCase() === self.user.address.toLowerCase() &&\n (user?.networkId ?? \"\") === self.user.networkId &&\n (user?.chainId ?? 0) === self.user.chainId\n );\n}\n\nfunction isLookupable(user: SignerUser, key: string): boolean {\n return (\n key.startsWith(\"did:key:\") &&\n /^0x[0-9a-fA-F]{40}$/.test(user.address) &&\n user.networkId !== \"\" &&\n Number.isInteger(user.chainId) &&\n user.chainId > 0\n );\n}\n\nfunction bindsTo(\n credential: PowerhouseVerifiableCredential,\n user: SignerUser,\n key: string,\n): boolean {\n const address = user.address.toLowerCase();\n const issuer = credential.issuer.id.split(\":\");\n if (issuer.length !== 5) return false;\n const [scheme, method, networkId, chainId, issuerAddress] = issuer;\n return (\n credential.credentialSubject.id === key &&\n scheme === \"did\" &&\n method === \"pkh\" &&\n networkId === user.networkId &&\n chainId === String(user.chainId) &&\n issuerAddress.toLowerCase() === address &&\n credential.issuer.ethereumAddress.toLowerCase() === address\n );\n}\n\n// Renown's REST endpoint answers with the active credential only.\nasync function fetchIssuedCredentialRest(\n user: SignerUser,\n key: string,\n renownUrl: string,\n): Promise<PowerhouseVerifiableCredential[]> {\n const url = new URL(\"/api/auth/credential\", renownUrl);\n url.searchParams.set(\"address\", user.address);\n url.searchParams.set(\"chainId\", String(user.chainId));\n url.searchParams.set(\"connectId\", key);\n url.searchParams.set(\"appId\", key);\n const response = await fetch(url, { method: \"GET\" });\n if (response.status === 404) {\n return [];\n }\n if (!response.ok) {\n throw new Error(`Renown credential lookup failed: ${response.status}`);\n }\n const { credential } = (await response.json()) as {\n credential?: PowerhouseVerifiableCredential | null;\n };\n return credential ? [credential] : [];\n}\n"],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ import { _t as SwitchboardSource } from "./types-CXBWG4JY.js";
2
+ import { ActionSigner } from "@powerhousedao/shared/document-model";
3
+
4
+ //#region src/discovery.d.ts
5
+ interface ResolveSwitchboardEndpointOptions {
6
+ switchboardUrl?: string;
7
+ baseUrl?: string;
8
+ timeoutMs?: number;
9
+ }
10
+ declare function resolveSwitchboardEndpoint(options: ResolveSwitchboardEndpointOptions): Promise<string | undefined>;
11
+ //#endregion
12
+ //#region src/signer-trust.d.ts
13
+ type SignerUser = ActionSigner["user"];
14
+ /** A signer whose `app.key` and `user` are read on every ask. */
15
+ interface RenownOwnSigner {
16
+ readonly app?: {
17
+ readonly key: string;
18
+ };
19
+ readonly user?: SignerUser;
20
+ }
21
+ interface RenownTrustPolicyOptions {
22
+ /** Serves the renown read model; without it, Renown's REST API is read. */
23
+ switchboard?: SwitchboardSource;
24
+ /** Renown base URL for the REST lookup. Defaults to DEFAULT_RENOWN_URL. */
25
+ renownUrl?: string;
26
+ /** This node's signer, read on every ask; its key signing as its current user is accepted without a lookup. Wins over `self`. */
27
+ ownSigner?: RenownOwnSigner;
28
+ /**
29
+ * A snapshot of this node's key and user, for a pooled worker whose signer
30
+ * cannot cross the thread boundary. Only matches the worker's own key.
31
+ */
32
+ self?: {
33
+ key: string;
34
+ user: SignerUser;
35
+ };
36
+ /** How many acceptances are remembered. Defaults to 10000. */
37
+ maxAccepted?: number;
38
+ /** How long a refusal is remembered before asking again. Defaults to 60s. */
39
+ refusalTtlMs?: number;
40
+ }
41
+ /** Structurally a reactor `SignatureTrustPolicy`. */
42
+ interface RenownTrustPolicy {
43
+ authorizeSigner(signer: ActionSigner, key: string, documentId: string): Promise<boolean>;
44
+ }
45
+ /**
46
+ * Accepts a key the user's EIP-712 Renown credential delegates to, ignoring
47
+ * expiry and revocation. Verdicts are cached per (address, key); this node's
48
+ * own key is checked before the cache and never cached.
49
+ */
50
+ declare function createRenownTrustPolicy(options?: RenownTrustPolicyOptions): RenownTrustPolicy;
51
+ //#endregion
52
+ export { ResolveSwitchboardEndpointOptions as a, createRenownTrustPolicy as i, RenownTrustPolicy as n, resolveSwitchboardEndpoint as o, RenownTrustPolicyOptions as r, RenownOwnSigner as t };
53
+ //# sourceMappingURL=signer-trust-Dg7Wggsc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signer-trust-Dg7Wggsc.d.ts","names":[],"sources":["../src/discovery.ts","../src/signer-trust.ts"],"mappings":";;;;UAAiB,iCAAA;EAEf,cAAA;EAEA,OAAA;EAEA,SAAA;AAAA;AAAA,iBAcoB,0BAAA,CACpB,OAAA,EAAS,iCAAA,GACR,OAAA;;;KChBE,UAAA,GAAa,YAAA;;UAGD,eAAA;EAAA,SACN,GAAA;IAAA,SAAiB,GAAA;EAAA;EAAA,SACjB,IAAA,GAAO,UAAA;AAAA;AAAA,UAGD,wBAAA;EDRN;ECUT,WAAA,GAAc,iBAAA;EDIM;ECFpB,SAAA;;EAEA,SAAA,GAAY,eAAA;EDCH;;;;ECIT,IAAA;IAAS,GAAA;IAAa,IAAA,EAAM,UAAA;EAAA;EAnBzB;EAqBH,WAAA;;EAEA,YAAA;AAAA;AApBF;AAAA,UAwBiB,iBAAA;EACf,eAAA,CACE,MAAA,EAAQ,YAAA,EACR,GAAA,UACA,UAAA,WACC,OAAA;AAAA;;;;;;iBAWW,uBAAA,CACd,OAAA,GAAS,wBAAA,GACR,iBAAA"}
@@ -0,0 +1,2 @@
1
+ import { i as createRenownTrustPolicy, n as RenownTrustPolicy, o as resolveSwitchboardEndpoint, r as RenownTrustPolicyOptions, t as RenownOwnSigner } from "./signer-trust-Dg7Wggsc.js";
2
+ export { RenownOwnSigner, RenownTrustPolicy, RenownTrustPolicyOptions, createRenownTrustPolicy, resolveSwitchboardEndpoint };
package/dist/trust.js ADDED
@@ -0,0 +1,2 @@
1
+ import { t as createRenownTrustPolicy, u as resolveSwitchboardEndpoint } from "./signer-trust-D7vg4xbS.js";
2
+ export { createRenownTrustPolicy, resolveSwitchboardEndpoint };
@@ -1,4 +1,4 @@
1
- import { c as WalletController, l as WalletSession, o as WalletAdapterMeta, t as LoginMethod } from "./types-C-hJrsQg.js";
1
+ import { c as WalletController, l as WalletSession, o as WalletAdapterMeta, t as LoginMethod } from "./types-ChjGDXVS.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-DInveFLz.d.ts.map
63
+ //# sourceMappingURL=types-CQDAkCVn.d.ts.map
@@ -1 +1 @@
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
+ {"version":3,"file":"types-CQDAkCVn.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"}
@@ -141,6 +141,11 @@ declare class SwitchboardClient {
141
141
  chainId: number;
142
142
  appDid: string;
143
143
  }): Promise<PowerhouseVerifiableCredential | undefined>;
144
+ getIssuedCredentials(params: {
145
+ address: string;
146
+ chainId: number;
147
+ appDid: string;
148
+ }): Promise<PowerhouseVerifiableCredential[]>;
144
149
  getProfileByAddress(address: string): Promise<RenownProfile | undefined>;
145
150
  createEmptyDocument(documentType: string, parentIdentifier?: string): Promise<string>;
146
151
  mutateDocument(documentIdentifier: string, actions: Action[]): Promise<string>;
@@ -231,6 +236,9 @@ interface FetchDelegationCredentialOptions {
231
236
  /** Re-verify the EIP-712 proof signature (default true). */
232
237
  verifySignature?: boolean;
233
238
  }
239
+ /** True when the credential's EIP-712 proof, on `chainId`, was signed by its
240
+ * issuer address. Binding and expiry are the caller's to check. */
241
+ declare function verifyDelegationProof(credential: PowerhouseVerifiableCredential, chainId: number): Promise<boolean>;
234
242
  declare function fetchDelegationCredential(options: FetchDelegationCredentialOptions): Promise<PowerhouseVerifiableCredential | undefined>;
235
243
  interface VerifiedAuthCredential {
236
244
  address: string;
@@ -599,5 +607,5 @@ interface IRenownCrypto {
599
607
  */
600
608
  interface IConnectCrypto extends IRenownCrypto {}
601
609
  //#endregion
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
610
+ export { MemoryStorage as $, LoginStatus as A, Service as B, InternalUser as C, DEFAULT_RENOWN_URL as Ct, JWTVerifyPolicies as D, RENOWN_SESSION_COOKIE as Dt, JWTVerified as E, RENOWN_READ_MODEL_SUBGRAPH 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, VERIFIABLE_CREDENTIAL_EIP712_TYPE as Ot, Proof as P, BaseStorage as Q, RenownStorage as R, IVerifiableCredential as S, DEFAULT_RENOWN_NETWORK_ID as St, JWTPayload as T, ISSUER_TYPE as Tt, Signer as U, ServiceEndpoint as V, Unsubscribe as W, VerifiedJWT as X, VerifiedCredential as Y, W3CCredential as Z, IPowerhouseCredentialSubject as _, SwitchboardSource as _t, JwkKeyPair as a, SignCredentialTypedData as at, IRenown as b, CREDENTIAL_TYPES 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, SwitchboardRequestFn as gt, EcdsaSignature as h, SwitchboardClient as ht, JsonWebKeyPairStorage as i, FetchDelegationCredentialOptions as it, PKHDid as j, KeyCapabilitySection as k, CreateBearerTokenOptions as l, fetchDelegationCredential as lt, DIDResolutionResult as m, MissingSwitchboardError as mt, IConnectCrypto as n, CredentialDomain as nt, AuthVerifiableCredential as o, VerifiedAuthCredential as ot, DIDResolutionMetadata as p, verifyDelegationProof 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_SCHEMA_EIP712_TYPE as vt, Issuer as w, DOMAIN_TYPE as wt, ISigner$1 as x, DEFAULT_RENOWN_CHAIN_ID as xt, IProof as y, CREDENTIAL_SUBJECT_TYPE as yt, RenownStorageMap as z };
611
+ //# sourceMappingURL=types-CXBWG4JY.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types-CXBWG4JY.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":";;;cAAa,kBAAA;AAAA,cACA,yBAAA;AAAA,cACA,uBAAA;AAFb;AAAA,cAKa,qBAAA;;;cAIA,0BAAA;AAAA,cAEA,WAAA;EAAA;;;;;;cAKA,iCAAA;EAAA;;;;;;;;;;;;;;;;;;;;;;;;cAWA,6BAAA;EAAA;;;;;;cAKA,uBAAA;EAAA;;;;;;cAKA,WAAA;EAAA;;;;;;cAKA,gBAAA;EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA1Cb;cCaa,uBAAA,SAAgC,KAAA;;EDbd;EAAA,OCsBtB,EAAA,CAAG,KAAA,YAAiB,KAAA,IAAS,uBAAA;AAAA;;;KA4O1B,oBAAA,IACV,KAAA,UACA,SAAA,EAAW,MAAA,sBACR,OAAA;;KAGO,iBAAA,YAA6B,oBAAA;AAAA,cAI5B,iBAAA;EAAA;cAMC,MAAA,EAAQ,iBAAA;EDhRc;EAAA,IC2R9B,QAAA,CAAA;EA2CE,aAAA,CAAc,MAAA;IAClB,OAAA;IACA,OAAA;IACA,MAAA;EAAA,IACE,OAAA,CAAQ,8BAAA;EA6BN,oBAAA,CAAqB,MAAA;IACzB,OAAA;IACA,OAAA;IACA,MAAA;EAAA,IACE,OAAA,CAAQ,8BAAA;EA0BN,mBAAA,CACJ,OAAA,WACC,OAAA,CAAQ,aAAA;EAuBL,mBAAA,CACJ,YAAA,UACA,gBAAA,YACC,OAAA;EAQG,cAAA,CACJ,kBAAA,UACA,OAAA,EAAS,MAAA,KACR,OAAA;EAoBG,eAAA,CACJ,UAAA,EAAY,8BAAA,EACZ,gBAAA,YACC,OAAA;EA4CG,gBAAA,CACJ,OAAA,UACA,OAAA;IAAW,QAAA;IAAmB,SAAA;EAAA,IAC7B,OAAA;EA6BG,gBAAA,CAAiB,UAAA,UAAoB,MAAA,YAAkB,OAAA;EAW7D,cAAA,EAAgB,cAAA;AAAA;;;KC3gBb,GAAA;AAAA,KACA,eAAA;EACH,IAAA;EACA,OAAA;EACA,OAAA;EACA,iBAAA,GAAoB,GAAA;EACpB,IAAA,GAAO,GAAA;AAAA;AAAA,KAEJ,kBAAA;EAAuB,IAAA;EAAc,IAAA;AAAA;;KAG9B,gBAAA;EACV,OAAA;EACA,OAAA;AAAA;;KAIU,iBAAA;EACV,UAAA;EACA,IAAA;EACA,EAAA;EACA,MAAA;IAAU,EAAA;IAAY,eAAA,EAAiB,GAAA;EAAA;EACvC,iBAAA;IAAqB,EAAA;IAAY,GAAA;EAAA;EACjC,gBAAA;IAAoB,EAAA;IAAY,IAAA;EAAA;EAChC,YAAA;EACA,cAAA;AAAA;;KAIU,uBAAA,IAA2B,IAAA;EACrC,MAAA,EAAQ,eAAA;EACR,KAAA,EAAO,MAAA,kBAAwB,kBAAA;EAC/B,WAAA;EACA,OAAA,EAAS,MAAA;AAAA,MACL,OAAA,CAAQ,GAAA;AAAA,UAEG,qBAAA;EACf,aAAA,EAAe,uBAAA;EACf,OAAA,EAAS,GAAA;EACT,OAAA;EACA,GAAA;;EAEA,KAAA;EACA,aAAA;AAAA;;iBAIoB,sBAAA,CACpB,MAAA,EAAQ,qBAAA,GACP,OAAA,CAAQ,8BAAA;;iBA+DW,uBAAA,CACpB,UAAA,EAAY,8BAAA,GACX,OAAA,CAAQ,GAAA;;iBAgBW,yBAAA,CACpB,UAAA,EAAY,8BAAA,GACX,OAAA;AAAA,UAoCc,gCAAA;;EAEf,OAAA;;EAEA,OAAA;;EAEA,MAAA;;EAEA,OAAA;EFjKW;EEmKX,cAAA;;EAEA,kBAAA,GAAqB,oBAAA;;EAErB,QAAA;;EAEA,eAAA;AAAA;;AFpKF;iBEoNsB,qBAAA,CACpB,UAAA,EAAY,8BAAA,EACZ,OAAA,WACC,OAAA;AAAA,iBAuBmB,yBAAA,CACpB,OAAA,EAAS,gCAAA,GACR,OAAA,CAAQ,8BAAA;AAAA,UA2CM,sBAAA;EACf,OAAA;EACA,OAAA;EACA,SAAA;;EAEA,GAAA;;EAEA,MAAA;EACA,UAAA,EAAY,8BAAA;AAAA;AAAA,UAGG,2BAAA;;EAEf,QAAA;;EAEA,SAAA;;EAEA,cAAA;;EAEA,kBAAA,GAAqB,oBAAA;;EAErB,eAAA;AAAA;AAAA,iBAKoB,oBAAA,CACpB,GAAA,UACA,OAAA,GAAS,2BAAA,GACR,OAAA,CAAQ,sBAAA;;;UC7VM,aAAA,gBAA6B,MAAA;;;AHA9C;;;;EGOE,EAAA,iBAAmB,MAAA,EACjB,KAAA,EAAO,CAAA,EACP,QAAA,GAAW,IAAA,EAAM,MAAA,CAAO,CAAA;EHRf;;;;;EGgBX,IAAA,iBAAqB,MAAA,EAAQ,KAAA,EAAO,CAAA,EAAG,IAAA,EAAM,MAAA,CAAO,CAAA;AAAA;;;UCjBrC,QAAA,WACL,MAAA,oBAA0B,MAAA,qCAClB,CAAA,SAAU,CAAA;EAE5B,GAAA,CAAI,GAAA,EAAK,GAAA,GAAM,CAAA,CAAE,GAAA;EACjB,GAAA,CAAI,GAAA,EAAK,GAAA,EAAK,KAAA,GAAQ,CAAA,CAAE,GAAA;EACxB,MAAA,CAAO,GAAA,EAAK,GAAA;AAAA;AAAA,uBAGQ,WAAA,WACV,MAAA,oBAA0B,MAAA,qCAClB,CAAA,SAAU,CAAA,aACjB,QAAA,CAAS,CAAA;EAAA,SACX,GAAA,CAAI,GAAA,EAAK,GAAA,GAAM,CAAA,CAAE,GAAA;EAAA,SACjB,GAAA,CAAI,GAAA,EAAK,GAAA,EAAK,KAAA,GAAQ,CAAA,CAAE,GAAA;EAAA,SACxB,MAAA,CAAO,GAAA,EAAK,GAAA;AAAA;AAAA,cAGV,aAAA,WACD,MAAA,oBAA0B,MAAA,qCAClB,CAAA,SAAU,CAAA,UACpB,WAAA,CAAY,CAAA;EAAA,iBACH,IAAA;EAEjB,GAAA,CAAI,GAAA,EAAK,GAAA,GAAG,CAAA,CAAA,GAAA;EAIZ,GAAA,CAAI,GAAA,EAAK,GAAA,EAAK,KAAA,GAAQ,CAAA,CAAE,GAAA;EAQxB,MAAA,CAAO,GAAA,EAAK,GAAA;AAAA;;;UCZG,cAAA;EACf,CAAA;EACA,CAAA;EACA,aAAA;AAAA;AAAA,KAGU,MAAA,IACV,IAAA,WAAe,UAAA,KACZ,OAAA,CAAQ,cAAA;AAAA,UAEI,UAAA;EACf,GAAA;EACA,GAAA;EACA,GAAA;EACA,GAAA;EACA,GAAA;EACA,GAAA;EACA,IAAA;EAAA,CACC,CAAA;AAAA;AAAA,UAGc,iBAAA;EACf,GAAA;EACA,GAAA;EACA,GAAA;EACA,GAAA;EACA,GAAA;AAAA;AAAA,UAGe,WAAA;EACf,QAAA;EACA,OAAA,EAAS,OAAA,CAAQ,UAAA;EACjB,mBAAA,EAAqB,mBAAA;EACrB,MAAA;EACA,MAAA,EAAQ,kBAAA;EACR,GAAA;EACA,QAAA,GAAW,iBAAA;AAAA;AAAA,UAKI,mBAAA;EACf,UAAA;EACA,qBAAA,EAAuB,qBAAA;EACvB,WAAA,EAAa,WAAA;EACb,mBAAA,EAAqB,mBAAA;AAAA;AAAA,UAGN,qBAAA;EACf,WAAA;EACA,KAAA;EAAA,CAMC,CAAA;AAAA;AAAA,UAGc,mBAAA;EACf,OAAA;EACA,OAAA;EACA,WAAA;EACA,SAAA;EACA,UAAA;EACA,aAAA;EACA,YAAA;EACA,WAAA;EAAA,CACC,CAAA;AAAA;AAAA,KAGS,oBAAA;AAAA,KAOA,WAAA;EACV,UAAA;EACA,EAAA;EACA,WAAA;EACA,UAAA;EACA,kBAAA,GAAqB,kBAAA;EACrB,OAAA,GAAU,OAAA;EAEV,SAAA,GAAY,kBAAA;AAAA,YAEN,oBAAA,cAAkC,kBAAA;AAAA,UAGzB,OAAA;EACf,EAAA;EACA,IAAA;EACA,eAAA,EAAiB,eAAA,GAAkB,eAAA;EAAA,CAClC,CAAA;AAAA;AAAA,KAGS,eAAA,YAA2B,MAAA;AAAA,UAEtB,YAAA;EACf,GAAA;EACA,GAAA;EACA,CAAA;EACA,GAAA;EACA,OAAA;EACA,GAAA;EACA,GAAA;EACA,CAAA;EACA,GAAA;EACA,CAAA;EACA,CAAA;EAAA,CACC,CAAA;AAAA;AAAA,UAGc,kBAAA;EACf,EAAA;EACA,IAAA;EACA,UAAA;EACA,eAAA;EACA,eAAA;EACA,YAAA,GAAe,YAAA;EACf,YAAA;EACA,kBAAA;EACA,mBAAA;EACA,eAAA;EACA,WAAA,GAAc,kBAAA;EACd,YAAA,GAAe,kBAAA;EACf,SAAA;EACA,kBAAA,GAAqB,kBAAA;EACrB,0BAAA,GAA6B,0BAAA;EAC7B,kBAAA;EACA,kBAAA;EACA,iBAAA;EACA,mBAAA;AAAA;AAAA,UAGe,0BAAA;EACf,SAAA,EAAW,kBAAA;EACX,MAAA;AAAA;AAAA,UAKe,MAAA;EACf,GAAA;EACA,MAAA,EAAQ,MAAA;EACR,GAAA;AAAA;AAAA,UAGe,KAAA;EACf,IAAA;EAAA,CACC,CAAA;AAAA;AAAA,KAGS,UAAA,MAAgB,QAAA,CAAS,CAAA;EAAA,SAC1B,KAAA,EAAO,KAAA;AAAA;AAAA,UAGD,gBAAA;EACf,EAAA;EACA,IAAA;AAAA;AAAA,KAGU,aAAA;EACV,UAAA;EACA,EAAA;EACA,IAAA;EACA,MAAA;IAAU,EAAA;IAAA,CAAa,CAAA;EAAA;EACvB,YAAA;EACA,cAAA;EACA,iBAAA;IACE,EAAA;IAAA,CACC,CAAA;EAAA;EAEH,gBAAA,GAAmB,gBAAA;EACnB,QAAA;EACA,UAAA;EAAA,CACC,CAAA;AAAA;AAAA,KAGS,WAAA,GAAc,WAAA;AAAA,KAEd,kBAAA,GAAqB,WAAA;EAC/B,oBAAA,EAAsB,UAAA,CAAW,aAAA;AAAA;AAAA,KAGvB,aAAA;EACV,UAAA;EACA,QAAA;EACA,UAAA;EACA,SAAA,iBJqD4B;EInD5B,SAAA;EACA,SAAA;AAAA;AAAA,KAIU,YAAA,GAAe,IAAA;EACzB,GAAA;EACA,UAAA,EAAY,8BAAA;EACZ,OAAA,GAAU,aAAA;AAAA;AAAA,KAIA,MAAA,GAAO,YAAA;;;;;;;KAQP,cAAA,IACV,IAAA,EAAM,MAAA,EACN,OAAA,aACG,OAAA,CAAQ,aAAA;AAAA,UAEI,YAAA;EJ0Se;EIxS9B,OAAA;;EAEA,OAAA;EJ4BY;EI1BZ,aAAA,EAAe,uBAAA;EJgFT;EI9EN,QAAA;EJgFE;EI9EF,SAAA;EJ4EoB;EI1EpB,aAAA;AAAA;AAAA,KAGU,WAAA;AAAA,KAEA,WAAA;AAAA,KAMA,gBAAA;EAAqB,IAAA,EAAM,YAAA;AAAA;AAAA,KAE3B,aAAA,GAAgB,QAAA,CAAS,gBAAA;AAAA,KAEzB,YAAA;EACV,IAAA,EAAM,MAAA;EACN,MAAA,EAAQ,WAAA;AAAA;AAAA,KAGE,kBAAA,GAAqB,aAAA,CAAc,YAAA;AAAA,UAE9B,OAAA,SAAgB,IAAA,CAAK,kBAAA;EAAA,SAC3B,OAAA;EAAA,SACA,IAAA,EAAM,MAAA;EAAA,SACN,MAAA,EAAQ,WAAA;EACjB,KAAA,GAAQ,OAAA,aAAoB,OAAA,CAAQ,MAAA;EACpC,MAAA,GAAS,MAAA,EAAQ,YAAA,KAAiB,OAAA,CAAQ,MAAA;EAC1C,MAAA,QAAc,OAAA;EJmJZ;EIjJF,UAAA,QAAkB,OAAA;EJsKZ;EIpKN,cAAA,QAAsB,OAAA;EAAA,SACb,MAAA,EAAQ,aAAA;EAAA,SACR,MAAA,EAAQ,SAAA;EAAA,SACR,GAAA;EAAA,SACA,cAAA,EAAgB,cAAA;EACzB,iBAAA,GAAoB,KAAA,aAAkB,OAAA,SAAgB,kBAAA;EACtD,cAAA,GACE,OAAA,EAAS,wBAAA,EACT,OAAA,eACG,OAAA;AAAA;AAAA,KAGF,UAAA;EACH,EAAA;AAAA,IACE,CAAA;AAAA,KAEC,oBAAA;EACH,EAAA;AAAA,IACE,CAAA;AAAA,UAEM,gBAAA;EACR,EAAA;EACA,IAAA;AAAA;AAAA,UAGQ,4BAAA;EACR,UAAA;EACA,EAAA;EACA,IAAA;EACA,MAAA,EAAQ,UAAA,CAAW,MAAA;EACnB,YAAA;EACA,cAAA;EACA,iBAAA,EAAmB,oBAAA,CAAqB,OAAA;EACxC,gBAAA,GAAmB,gBAAA;EACnB,gBAAA,EAAkB,gBAAA;AAAA;AAAA,UAGH,MAAA;EACf,kBAAA;EACA,eAAA;EACA,OAAA;EACA,YAAA;EACA,IAAA;EACA,UAAA;EACA,MAAA;IACE,MAAA;MACE,OAAA;MACA,OAAA;IAAA;IAEF,KAAA,SAAc,gBAAA;IACd,WAAA;EAAA;AAAA;AAAA,UAIa,qBAAA,0BAGP,4BAAA,CAA6B,OAAA,EAAS,MAAA;EAC9C,KAAA,EAAO,MAAA;AAAA;AAAA,UAGQ,4BAAA;EACf,EAAA;EACA,GAAA;AAAA;AAAA,UAGe,qBAAA;EACf,eAAA;AAAA;AAAA,KAGU,8BAAA,GAAiC,qBAAA,CAC3C,4BAAA,EACA,qBAAA;AAAA,UAGe,sBAAA;EACf,OAAA;EACA,SAAA;EACA,OAAA;AAAA;AAAA,KAGU,wBAAA,GAA2B,qBAAA,CACrC,sBAAA,EACA,MAAA;AAAA,KAGU,sBAAA,GAAyB,kBAAA;EACnC,oBAAA,EAAsB,UAAA,CAAW,wBAAA;AAAA;AAAA,KAGvB,MAAA;EACV,SAAA;EACA,OAAA;EACA,OAAA;AAAA;AAAA,UAGe,wBAAA;EACf,SAAA;EACA,GAAA;AAAA;;;KC9XU,UAAA;EACV,SAAA,EAAW,UAAA;EACX,UAAA,EAAY,UAAA;AAAA;AAAA,UAGG,qBAAA;EACf,WAAA,IAAe,OAAA,CAAQ,UAAA;EACvB,WAAA,CAAY,OAAA,EAAS,UAAA,GAAa,OAAA;EAClC,aAAA,IAAiB,OAAA;AAAA;AAAA,KAGP,GAAA;AAAA,UAEK,aAAA;EACf,GAAA,EAAK,GAAA;ENdM;EMgBX,OAAA;EACA,SAAA,EAAW,SAAA;EACX,SAAA,IAAa,OAAA;EACb,IAAA,GAAO,IAAA,EAAM,UAAA,KAAe,OAAA,CAAQ,UAAA;EACpC,MAAA,GAAS,IAAA,EAAM,UAAA,EAAY,SAAA,EAAW,UAAA,KAAe,OAAA;EACrD,MAAA,EAAQ,MAAA;EACR,cAAA,GACE,OAAA,sBACA,OAAA,GAAU,wBAAA,KACP,OAAA;AAAA;;ANlBP;;UMwBiB,cAAA,SAAuB,aAAA"}
@@ -1,4 +1,4 @@
1
- import { at as SignCredentialTypedData } from "./types-BGQKPoUr.js";
1
+ import { at as SignCredentialTypedData } from "./types-CXBWG4JY.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-C-hJrsQg.d.ts.map
59
+ //# sourceMappingURL=types-ChjGDXVS.d.ts.map
@@ -1 +1 @@
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
+ {"version":3,"file":"types-ChjGDXVS.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"}
@@ -17,4 +17,4 @@ function normalizeWalletTheme(theme) {
17
17
  //#endregion
18
18
  export { normalizeWalletTheme as n, LoginMethod as t };
19
19
 
20
- //# sourceMappingURL=types-C_qc_62W.js.map
20
+ //# sourceMappingURL=types-ome2Ysme.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types-C_qc_62W.js","names":[],"sources":["../src/wallet/types.ts"],"sourcesContent":["import type { ComponentType, ReactNode } from \"react\";\nimport type { SignCredentialTypedData } from \"../credential.js\";\n\n// Const object rather than an enum so config can be authored with plain string\n// literals (`methods: [\"google\"]`) while `LoginMethod.GOOGLE` still works.\nexport const LoginMethod = {\n WALLET: \"wallet\",\n GOOGLE: \"google\",\n EMAIL: \"email\",\n APPLE: \"apple\",\n} as const;\n\nexport type LoginMethod = (typeof LoginMethod)[keyof typeof LoginMethod];\n\n// Colors the host passes into an adapter Provider so its wallet UI matches.\n// The adapter stays agnostic to how the host derives them (CSS tokens, etc.).\nexport interface WalletThemeColors {\n accentColor?: string;\n accentColorForeground?: string;\n}\n\n// The theme the host passes at runtime: a bare mode, or a mode plus colors.\nexport type WalletTheme =\n | \"light\"\n | \"dark\"\n | ({ mode: \"light\" | \"dark\" } & WalletThemeColors);\n\n// Normalize a WalletTheme (or undefined) to a mode + colors the adapters use.\nexport function normalizeWalletTheme(theme: WalletTheme | undefined): {\n mode: \"light\" | \"dark\";\n accentColor?: string;\n accentColorForeground?: string;\n} {\n if (theme === undefined) return { mode: \"light\" };\n if (typeof theme === \"string\") return { mode: theme };\n return {\n mode: theme.mode,\n accentColor: theme.accentColor,\n accentColorForeground: theme.accentColorForeground,\n };\n}\n\n// The signer surface signIn needs, produced by an adapter after the user connects.\nexport interface WalletSession {\n address: `0x${string}`;\n chainId: number;\n signTypedData: SignCredentialTypedData;\n // Capability, not policy: the session can sign without a user prompt (e.g. a\n // Privy embedded wallet). Whether/when to sign silently is the host's call.\n canSignSilently?: boolean;\n}\n\n// Imperative controls returned by an adapter's React hook (used inside its Provider).\nexport interface WalletController {\n connect(method?: LoginMethod): Promise<WalletSession>;\n disconnect(): Promise<void>;\n getSession(): WalletSession | undefined;\n // Optional push stream of session changes (fires immediately with the current\n // one), so a host can complete sign-in on an OAuth return with no live connect().\n subscribe?(\n listener: (session: WalletSession | undefined) => void,\n ): () => void;\n}\n\n// Identity + capabilities, declared once per adapter in a dependency-free module\n// so a host can list methods and detect a redirect return with no wallet library.\nexport interface WalletAdapterMeta {\n id: string;\n // URL params the adapter leaves when a full-page OAuth login returns; empty for\n // adapters with no redirect flow.\n redirectReturnParams: string[];\n // Must be known before load(): the login UI renders buttons before any wallet\n // library is fetched.\n supportedMethods: LoginMethod[];\n}\n\n// Behaviour only — what an adapter factory returns. Identity lives in the meta.\nexport interface WalletAdapterImpl {\n // React provider that must wrap the app subtree for this adapter to work; the\n // host passes its current theme so the adapter's UI can match.\n Provider: ComponentType<{ children: ReactNode; theme?: WalletTheme }>;\n // Hook returning imperative controls; MUST be called inside <Provider>.\n useController: () => WalletController;\n}\n\n// What the host consumes: resolveAdapters pairs an impl with its meta.\nexport interface WalletAdapter extends WalletAdapterImpl {\n meta: WalletAdapterMeta;\n}\n\n// An adapter's light entry: eager meta plus a lazy loader that pulls the factory\n// and its wallet library only once login is activated.\nexport interface WalletAdapterDescriptor {\n meta: WalletAdapterMeta;\n load: () => Promise<WalletAdapterImpl>;\n}\n\nexport type WalletAdapterFactory<Config = unknown> = (\n config: Config,\n) => WalletAdapterImpl;\n\nexport type WalletAdapterProvider<Config = unknown> = (\n config: Config,\n) => WalletAdapterDescriptor;\n"],"mappings":";AAKA,MAAa,cAAc;CACzB,QAAQ;CACR,QAAQ;CACR,OAAO;CACP,OAAO;CACR;AAkBD,SAAgB,qBAAqB,OAInC;AACA,KAAI,UAAU,KAAA,EAAW,QAAO,EAAE,MAAM,SAAS;AACjD,KAAI,OAAO,UAAU,SAAU,QAAO,EAAE,MAAM,OAAO;AACrD,QAAO;EACL,MAAM,MAAM;EACZ,aAAa,MAAM;EACnB,uBAAuB,MAAM;EAC9B"}
1
+ {"version":3,"file":"types-ome2Ysme.js","names":[],"sources":["../src/wallet/types.ts"],"sourcesContent":["import type { ComponentType, ReactNode } from \"react\";\nimport type { SignCredentialTypedData } from \"../credential.js\";\n\n// Const object rather than an enum so config can be authored with plain string\n// literals (`methods: [\"google\"]`) while `LoginMethod.GOOGLE` still works.\nexport const LoginMethod = {\n WALLET: \"wallet\",\n GOOGLE: \"google\",\n EMAIL: \"email\",\n APPLE: \"apple\",\n} as const;\n\nexport type LoginMethod = (typeof LoginMethod)[keyof typeof LoginMethod];\n\n// Colors the host passes into an adapter Provider so its wallet UI matches.\n// The adapter stays agnostic to how the host derives them (CSS tokens, etc.).\nexport interface WalletThemeColors {\n accentColor?: string;\n accentColorForeground?: string;\n}\n\n// The theme the host passes at runtime: a bare mode, or a mode plus colors.\nexport type WalletTheme =\n | \"light\"\n | \"dark\"\n | ({ mode: \"light\" | \"dark\" } & WalletThemeColors);\n\n// Normalize a WalletTheme (or undefined) to a mode + colors the adapters use.\nexport function normalizeWalletTheme(theme: WalletTheme | undefined): {\n mode: \"light\" | \"dark\";\n accentColor?: string;\n accentColorForeground?: string;\n} {\n if (theme === undefined) return { mode: \"light\" };\n if (typeof theme === \"string\") return { mode: theme };\n return {\n mode: theme.mode,\n accentColor: theme.accentColor,\n accentColorForeground: theme.accentColorForeground,\n };\n}\n\n// The signer surface signIn needs, produced by an adapter after the user connects.\nexport interface WalletSession {\n address: `0x${string}`;\n chainId: number;\n signTypedData: SignCredentialTypedData;\n // Capability, not policy: the session can sign without a user prompt (e.g. a\n // Privy embedded wallet). Whether/when to sign silently is the host's call.\n canSignSilently?: boolean;\n}\n\n// Imperative controls returned by an adapter's React hook (used inside its Provider).\nexport interface WalletController {\n connect(method?: LoginMethod): Promise<WalletSession>;\n disconnect(): Promise<void>;\n getSession(): WalletSession | undefined;\n // Optional push stream of session changes (fires immediately with the current\n // one), so a host can complete sign-in on an OAuth return with no live connect().\n subscribe?(\n listener: (session: WalletSession | undefined) => void,\n ): () => void;\n}\n\n// Identity + capabilities, declared once per adapter in a dependency-free module\n// so a host can list methods and detect a redirect return with no wallet library.\nexport interface WalletAdapterMeta {\n id: string;\n // URL params the adapter leaves when a full-page OAuth login returns; empty for\n // adapters with no redirect flow.\n redirectReturnParams: string[];\n // Must be known before load(): the login UI renders buttons before any wallet\n // library is fetched.\n supportedMethods: LoginMethod[];\n}\n\n// Behaviour only — what an adapter factory returns. Identity lives in the meta.\nexport interface WalletAdapterImpl {\n // React provider that must wrap the app subtree for this adapter to work; the\n // host passes its current theme so the adapter's UI can match.\n Provider: ComponentType<{ children: ReactNode; theme?: WalletTheme }>;\n // Hook returning imperative controls; MUST be called inside <Provider>.\n useController: () => WalletController;\n}\n\n// What the host consumes: resolveAdapters pairs an impl with its meta.\nexport interface WalletAdapter extends WalletAdapterImpl {\n meta: WalletAdapterMeta;\n}\n\n// An adapter's light entry: eager meta plus a lazy loader that pulls the factory\n// and its wallet library only once login is activated.\nexport interface WalletAdapterDescriptor {\n meta: WalletAdapterMeta;\n load: () => Promise<WalletAdapterImpl>;\n}\n\nexport type WalletAdapterFactory<Config = unknown> = (\n config: Config,\n) => WalletAdapterImpl;\n\nexport type WalletAdapterProvider<Config = unknown> = (\n config: Config,\n) => WalletAdapterDescriptor;\n"],"mappings":";AAKA,MAAa,cAAc;CACzB,QAAQ;CACR,QAAQ;CACR,OAAO;CACP,OAAO;CACR;AAkBD,SAAgB,qBAAqB,OAInC;AACA,KAAI,UAAU,KAAA,EAAW,QAAO,EAAE,MAAM,SAAS;AACjD,KAAI,OAAO,UAAU,SAAU,QAAO,EAAE,MAAM,OAAO;AACrD,QAAO;EACL,MAAM,MAAM;EACZ,aAAa,MAAM;EACnB,uBAAuB,MAAM;EAC9B"}
@@ -1,4 +1,4 @@
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";
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, gt as SwitchboardRequestFn, ht as SwitchboardClient, i as JsonWebKeyPairStorage, j as PKHDid, l as CreateBearerTokenOptions, r as IRenownCrypto, s as AuthVerifiedCredential, w as Issuer, x as ISigner, z as RenownStorageMap } from "./types-CXBWG4JY.js";
2
2
  import { Resolver } from "did-resolver";
3
3
 
4
4
  //#region src/common.d.ts
@@ -25,14 +25,6 @@ declare class Renown implements IRenown {
25
25
  getBearerToken(options: CreateBearerTokenOptions): Promise<string>;
26
26
  }
27
27
  //#endregion
28
- //#region src/discovery.d.ts
29
- interface ResolveSwitchboardEndpointOptions {
30
- switchboardUrl?: string;
31
- baseUrl?: string;
32
- timeoutMs?: number;
33
- }
34
- declare function resolveSwitchboardEndpoint(options: ResolveSwitchboardEndpointOptions): Promise<string | undefined>;
35
- //#endregion
36
28
  //#region src/renown-builder.d.ts
37
29
  interface RenownBuilderOptions {
38
30
  appName: string;
@@ -197,5 +189,5 @@ declare function assertIsAuthCredential(credential: VerifiedCredential): asserts
197
189
  declare function createAuthBearerToken(chainId: number, networkId: string, address: string, issuer: Issuer, options?: CreateBearerTokenOptions): Promise<string>;
198
190
  declare const getResolver: () => Resolver;
199
191
  //#endregion
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-DtWREYeO.d.ts.map
192
+ export { RenownMemoryStorage as C, Renown as S, 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, RenownBuilderOptions as x, createLocalCredentialVerifier as y };
193
+ //# sourceMappingURL=utils-BuSw6Mud.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils-BuSw6Mud.d.ts","names":[],"sources":["../src/common.ts","../src/renown-builder.ts","../src/local-credential-verifier.ts","../src/profile.ts","../src/session.ts","../src/utils.ts"],"mappings":"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"}
@@ -0,0 +1,74 @@
1
+ import { createVerifiableCredentialJwt, verifyCredential } from "did-jwt-vc";
2
+ import { Resolver } from "did-resolver";
3
+ import { getResolver } from "key-did-resolver";
4
+ //#region src/utils.ts
5
+ /**
6
+ * Parse a DID:pkh string to extract network, chain ID, and address information
7
+ * @param did - The DID string in format "did:pkh:networkId:chainId:address"
8
+ * @returns Parsed DID information
9
+ * @throws Error if the DID format is invalid
10
+ */
11
+ function parsePkhDid(did) {
12
+ const parts = did.split(":");
13
+ if (!did.startsWith("did:pkh:") || parts.length !== 5) throw new Error("Invalid pkh did");
14
+ const [, , networkId, chainIdStr, address] = parts;
15
+ if (!address.startsWith("0x")) throw new Error(`Invalid address: ${address}`);
16
+ const chainId = Number(chainIdStr);
17
+ if (isNaN(chainId)) throw new Error(`Invalid chain id: ${chainIdStr}`);
18
+ return {
19
+ chainId,
20
+ networkId,
21
+ address
22
+ };
23
+ }
24
+ async function verifyAuthBearerToken(jwt, options) {
25
+ try {
26
+ const now = parseInt(String(Date.now() / 1e3));
27
+ const verified = await verifyCredential(jwt, getResolver$1(), {
28
+ ...options?.audience !== void 0 && { audience: options.audience },
29
+ policies: {
30
+ now: parseInt(String(Date.now() / 1e3)),
31
+ expirationDate: true,
32
+ issuanceDate: true
33
+ }
34
+ });
35
+ if (verified.payload.exp && verified.payload.exp < now) return false;
36
+ assertIsAuthCredential(verified);
37
+ return verified;
38
+ } catch (e) {
39
+ console.error(e);
40
+ return false;
41
+ }
42
+ }
43
+ function assertIsAuthCredential(credential) {
44
+ const subjectKeys = Object.keys(credential.verifiableCredential.credentialSubject);
45
+ if (![
46
+ "address",
47
+ "chainId",
48
+ "networkId"
49
+ ].every((key) => subjectKeys.includes(key))) throw new Error("Invalid Auth Credential Subject:" + JSON.stringify(credential.verifiableCredential.credentialSubject, null, 2));
50
+ }
51
+ async function createAuthBearerToken(chainId, networkId, address, issuer, options) {
52
+ return await createVerifiableCredentialJwt({
53
+ sub: issuer.did,
54
+ vc: {
55
+ "@context": ["https://www.w3.org/2018/credentials/v1"],
56
+ type: ["VerifiableCredential"],
57
+ credentialSubject: {
58
+ chainId,
59
+ networkId,
60
+ address
61
+ }
62
+ },
63
+ aud: options?.aud
64
+ }, issuer, { expiresIn: options?.expiresIn });
65
+ }
66
+ const getResolver$1 = () => {
67
+ const keyResolver = getResolver();
68
+ if (!keyResolver) throw new Error("Failed to get key resolver");
69
+ return new Resolver(keyResolver);
70
+ };
71
+ //#endregion
72
+ export { verifyAuthBearerToken as a, parsePkhDid as i, createAuthBearerToken as n, getResolver$1 as r, assertIsAuthCredential as t };
73
+
74
+ //# sourceMappingURL=utils-Dtdm4vFs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils-Dtdm4vFs.js","names":["getResolver","keyDidResolver"],"sources":["../src/utils.ts"],"sourcesContent":["import type { JwtCredentialPayload } from \"did-jwt-vc\";\nimport { createVerifiableCredentialJwt, verifyCredential } from \"did-jwt-vc\";\nimport { Resolver } from \"did-resolver\";\nimport { getResolver as keyDidResolver } from \"key-did-resolver\";\nimport type {\n AuthVerifiedCredential,\n CreateBearerTokenOptions,\n IAuthCredentialSubject,\n Issuer,\n PKHDid,\n VerifiedCredential,\n} from \"./types.js\";\n\nexport type ILogger = {\n level: \"verbose\" | \"debug\" | \"info\" | \"warn\" | \"error\";\n\n verbose: (message: string, ...replacements: any[]) => void;\n debug: (message: string, ...replacements: any[]) => void;\n info: (message: string, ...replacements: any[]) => void;\n warn: (message: string, ...replacements: any[]) => void;\n error: (message: string, ...replacements: any[]) => void;\n};\n\n/**\n * Parse a DID:pkh string to extract network, chain ID, and address information\n * @param did - The DID string in format \"did:pkh:networkId:chainId:address\"\n * @returns Parsed DID information\n * @throws Error if the DID format is invalid\n */\nexport function parsePkhDid(did: string): PKHDid {\n const parts = did.split(\":\");\n if (!did.startsWith(\"did:pkh:\") || parts.length !== 5) {\n throw new Error(\"Invalid pkh did\");\n }\n const [, , networkId, chainIdStr, address] = parts;\n\n if (!address.startsWith(\"0x\")) {\n throw new Error(`Invalid address: ${address}`);\n }\n\n const chainId = Number(chainIdStr);\n if (isNaN(chainId)) {\n throw new Error(`Invalid chain id: ${chainIdStr}`);\n }\n\n return {\n chainId,\n networkId,\n address: address as PKHDid[\"address\"],\n };\n}\n\nexport interface VerifyAuthBearerTokenOptions {\n /** Expected `aud` claim. Required when verifying tokens that include an\n * audience claim — did-jwt rejects them otherwise with\n * `invalid_config: JWT audience is required but your app address has not\n * been configured`. Tokens minted without `aud` are unaffected. */\n audience?: string;\n}\n\nexport async function verifyAuthBearerToken(\n jwt: string,\n options?: VerifyAuthBearerTokenOptions,\n): Promise<false | AuthVerifiedCredential> {\n try {\n const now = parseInt(String(Date.now() / 1000));\n const verified: VerifiedCredential = await verifyCredential(\n jwt,\n getResolver(),\n {\n ...(options?.audience !== undefined && { audience: options.audience }),\n policies: {\n now: parseInt(String(Date.now() / 1000)),\n expirationDate: true,\n issuanceDate: true,\n },\n },\n );\n\n if (verified.payload.exp && verified.payload.exp < now) {\n return false;\n }\n assertIsAuthCredential(verified);\n return verified;\n } catch (e) {\n console.error(e);\n return false;\n }\n}\n\nexport function assertIsAuthCredential(\n credential: VerifiedCredential,\n): asserts credential is AuthVerifiedCredential {\n const subjectKeys = Object.keys(\n credential.verifiableCredential.credentialSubject,\n );\n if (\n ![\"address\", \"chainId\", \"networkId\"].every((key) =>\n subjectKeys.includes(key),\n )\n ) {\n throw new Error(\n \"Invalid Auth Credential Subject:\" +\n JSON.stringify(\n credential.verifiableCredential.credentialSubject,\n null,\n 2,\n ),\n );\n }\n}\n\nexport async function createAuthBearerToken(\n chainId: number,\n networkId: string,\n address: string,\n issuer: Issuer,\n options?: CreateBearerTokenOptions,\n) {\n const vcPayload: JwtCredentialPayload = {\n sub: issuer.did,\n vc: {\n \"@context\": [\"https://www.w3.org/2018/credentials/v1\"],\n type: [\"VerifiableCredential\"],\n credentialSubject: {\n chainId,\n networkId,\n address,\n } satisfies IAuthCredentialSubject,\n },\n aud: options?.aud,\n };\n\n const jwt = await createVerifiableCredentialJwt(vcPayload, issuer, {\n expiresIn: options?.expiresIn,\n });\n return jwt;\n}\n\nexport const getResolver = () => {\n const keyResolver = keyDidResolver();\n if (!keyResolver) {\n throw new Error(\"Failed to get key resolver\");\n }\n\n return new Resolver(keyResolver);\n};\n"],"mappings":";;;;;;;;;;AA6BA,SAAgB,YAAY,KAAqB;CAC/C,MAAM,QAAQ,IAAI,MAAM,IAAI;AAC5B,KAAI,CAAC,IAAI,WAAW,WAAW,IAAI,MAAM,WAAW,EAClD,OAAM,IAAI,MAAM,kBAAkB;CAEpC,MAAM,KAAK,WAAW,YAAY,WAAW;AAE7C,KAAI,CAAC,QAAQ,WAAW,KAAK,CAC3B,OAAM,IAAI,MAAM,oBAAoB,UAAU;CAGhD,MAAM,UAAU,OAAO,WAAW;AAClC,KAAI,MAAM,QAAQ,CAChB,OAAM,IAAI,MAAM,qBAAqB,aAAa;AAGpD,QAAO;EACL;EACA;EACS;EACV;;AAWH,eAAsB,sBACpB,KACA,SACyC;AACzC,KAAI;EACF,MAAM,MAAM,SAAS,OAAO,KAAK,KAAK,GAAG,IAAK,CAAC;EAC/C,MAAM,WAA+B,MAAM,iBACzC,KACAA,eAAa,EACb;GACE,GAAI,SAAS,aAAa,KAAA,KAAa,EAAE,UAAU,QAAQ,UAAU;GACrE,UAAU;IACR,KAAK,SAAS,OAAO,KAAK,KAAK,GAAG,IAAK,CAAC;IACxC,gBAAgB;IAChB,cAAc;IACf;GACF,CACF;AAED,MAAI,SAAS,QAAQ,OAAO,SAAS,QAAQ,MAAM,IACjD,QAAO;AAET,yBAAuB,SAAS;AAChC,SAAO;UACA,GAAG;AACV,UAAQ,MAAM,EAAE;AAChB,SAAO;;;AAIX,SAAgB,uBACd,YAC8C;CAC9C,MAAM,cAAc,OAAO,KACzB,WAAW,qBAAqB,kBACjC;AACD,KACE,CAAC;EAAC;EAAW;EAAW;EAAY,CAAC,OAAO,QAC1C,YAAY,SAAS,IAAI,CAC1B,CAED,OAAM,IAAI,MACR,qCACE,KAAK,UACH,WAAW,qBAAqB,mBAChC,MACA,EACD,CACJ;;AAIL,eAAsB,sBACpB,SACA,WACA,SACA,QACA,SACA;AAkBA,QAHY,MAAM,8BAdsB;EACtC,KAAK,OAAO;EACZ,IAAI;GACF,YAAY,CAAC,yCAAyC;GACtD,MAAM,CAAC,uBAAuB;GAC9B,mBAAmB;IACjB;IACA;IACA;IACD;GACF;EACD,KAAK,SAAS;EACf,EAE0D,QAAQ,EACjE,WAAW,SAAS,WACrB,CAAC;;AAIJ,MAAaA,sBAAoB;CAC/B,MAAM,cAAcC,aAAgB;AACpC,KAAI,CAAC,YACH,OAAM,IAAI,MAAM,6BAA6B;AAG/C,QAAO,IAAI,SAAS,YAAY"}
@@ -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-C-hJrsQg.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-ChjGDXVS.js";
2
2
 
3
3
  //#region src/wallet/controller.d.ts
4
4
  declare function isWalletRedirectReturn(search: string, metas: WalletAdapterMeta[]): boolean;
@@ -1,4 +1,4 @@
1
- import { n as normalizeWalletTheme, t as LoginMethod } from "../types-C_qc_62W.js";
1
+ import { n as normalizeWalletTheme, t as LoginMethod } from "../types-ome2Ysme.js";
2
2
  //#region src/wallet/controller.ts
3
3
  function isWalletRedirectReturn(search, metas) {
4
4
  const params = new URLSearchParams(search);
@@ -1,5 +1,5 @@
1
- import { a as WalletAdapterImpl } from "../../types-C-hJrsQg.js";
2
- import { r as PHRenownMockAdapterConfig } from "../../meta-BesJP74N.js";
1
+ import { a as WalletAdapterImpl } from "../../types-ChjGDXVS.js";
2
+ import { r as PHRenownMockAdapterConfig } from "../../meta-CRXEMUUQ.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,4 +1,4 @@
1
- import { r as resolveMockMethods } from "../../meta-CHgd9Qd0.js";
1
+ import { r as resolveMockMethods } from "../../meta-BOjLjJ1Y.js";
2
2
  import { privateKeyToAccount } from "viem/accounts";
3
3
  //#region src/wallet/mock/factory.ts
4
4
  const DEFAULT_TEST_KEY = "0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80";
@@ -1,5 +1,5 @@
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";
1
+ import { r as WalletAdapterDescriptor } from "../../types-ChjGDXVS.js";
2
+ import { a as resolveMockMethods, i as mockAdapterMeta, n as MockLoginMethod, r as PHRenownMockAdapterConfig, t as DEFAULT_MOCK_METHODS } from "../../meta-CRXEMUUQ.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,4 +1,4 @@
1
- import { n as mockAdapterMeta, r as resolveMockMethods, t as DEFAULT_MOCK_METHODS } from "../../meta-CHgd9Qd0.js";
1
+ import { n as mockAdapterMeta, r as resolveMockMethods, t as DEFAULT_MOCK_METHODS } from "../../meta-BOjLjJ1Y.js";
2
2
  //#region src/wallet/mock/index.ts
3
3
  /** 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. */
4
4
  function mockAdapter(config) {
@@ -1,6 +1,6 @@
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";
1
+ import { at as SignCredentialTypedData } from "../../types-CXBWG4JY.js";
2
+ import { a as WalletAdapterImpl, l as WalletSession, t as LoginMethod, u as WalletTheme } from "../../types-ChjGDXVS.js";
3
+ import { i as SendCodeOptions, n as PrivyEmailStatus, o as PHRenownPrivyAdapterConfig, r as PrivyWalletController, s as PrivyChain, t as PrivyAuthState } from "../../types-CQDAkCVn.js";
4
4
  import { ComponentType, ReactNode } from "react";
5
5
  import { ConnectedWallet, LoginModalOptions } from "@privy-io/react-auth";
6
6
 
@@ -1,6 +1,6 @@
1
1
  "use client";
2
- import { n as normalizeWalletTheme, t as LoginMethod } from "../../types-C_qc_62W.js";
3
- import { r as resolvePrivyMethods } from "../../meta-D-5kvwx8.js";
2
+ import { n as normalizeWalletTheme, t as LoginMethod } from "../../types-ome2Ysme.js";
3
+ import { r as resolvePrivyMethods } from "../../meta-adhFGw0o.js";
4
4
  import { useEffect, useMemo, useRef } from "react";
5
5
  import { jsx, jsxs } from "react/jsx-runtime";
6
6
  import { PrivyProvider, getEmbeddedConnectedWallet, useCreateWallet, useLogin, useLoginWithEmail, useLoginWithOAuth, useLogout, usePrivy, useSignTypedData, useWallets } from "@privy-io/react-auth";
@@ -1,5 +1,5 @@
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";
1
+ import { r as WalletAdapterDescriptor } from "../../types-ChjGDXVS.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-CQDAkCVn.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,4 +1,4 @@
1
- import { n as privyAdapterMeta, r as resolvePrivyMethods, t as DEFAULT_PRIVY_METHODS } from "../../meta-D-5kvwx8.js";
1
+ import { n as privyAdapterMeta, r as resolvePrivyMethods, t as DEFAULT_PRIVY_METHODS } from "../../meta-adhFGw0o.js";
2
2
  //#region src/wallet/privy/index.ts
3
3
  /** 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. */
4
4
  function privyAdapter(config) {
@@ -1,5 +1,5 @@
1
- import { a as WalletAdapterImpl } from "../../types-C-hJrsQg.js";
2
- import { n as PHRenownRainbowAdapterConfig } from "../../meta-bV7L-1yb.js";
1
+ import { a as WalletAdapterImpl } from "../../types-ChjGDXVS.js";
2
+ import { n as PHRenownRainbowAdapterConfig } from "../../meta-B8HbJHy8.js";
3
3
  //#region src/wallet/rainbow/factory.d.ts
4
4
  declare function createRainbowAdapter(config: PHRenownRainbowAdapterConfig): WalletAdapterImpl;
5
5
  //#endregion
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  import "../../constants-BexAR53F.js";
3
- import { n as normalizeWalletTheme, t as LoginMethod } from "../../types-C_qc_62W.js";
3
+ import { n as normalizeWalletTheme, t as LoginMethod } from "../../types-ome2Ysme.js";
4
4
  import "@rainbow-me/rainbowkit/styles.css";
5
5
  import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
6
6
  import { disconnect, getAccount, signTypedData, watchAccount } from "wagmi/actions";
@@ -1,5 +1,5 @@
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";
1
+ import { r as WalletAdapterDescriptor } from "../../types-ChjGDXVS.js";
2
+ import { i as rainbowAdapterMeta, n as PHRenownRainbowAdapterConfig, r as RAINBOW_METHODS, t as PHRenownChain } from "../../meta-B8HbJHy8.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. */
@@ -1,4 +1,4 @@
1
- import { t as LoginMethod } from "../../types-C_qc_62W.js";
1
+ import { t as LoginMethod } from "../../types-ome2Ysme.js";
2
2
  //#region src/wallet/rainbow/meta.ts
3
3
  const RAINBOW_METHODS = [LoginMethod.WALLET];
4
4
  const rainbowAdapterMeta = {