@renown/sdk 6.2.2-dev.22 → 6.2.2-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 (65) hide show
  1. package/README.md +58 -26
  2. package/dist/crypto.d.ts +2 -2
  3. package/dist/{index-25fTa4yI.d.ts → index-CLJb-Nle.d.ts} +2 -2
  4. package/dist/{index-25fTa4yI.d.ts.map → index-CLJb-Nle.d.ts.map} +1 -1
  5. package/dist/index.d.ts +4 -4
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +3 -2
  8. package/dist/index.js.map +1 -1
  9. package/dist/meta-BIIw0yao.d.ts +16 -0
  10. package/dist/meta-BIIw0yao.d.ts.map +1 -0
  11. package/dist/meta-ClnkfLQZ.js +27 -0
  12. package/dist/meta-ClnkfLQZ.js.map +1 -0
  13. package/dist/meta-DEiGzvRl.d.ts +14 -0
  14. package/dist/meta-DEiGzvRl.d.ts.map +1 -0
  15. package/dist/meta-DoUiCChW.d.ts +19 -0
  16. package/dist/meta-DoUiCChW.d.ts.map +1 -0
  17. package/dist/meta-v66wx9x-.js +31 -0
  18. package/dist/meta-v66wx9x-.js.map +1 -0
  19. package/dist/node.d.ts +3 -46
  20. package/dist/node.d.ts.map +1 -1
  21. package/dist/node.js +17 -8
  22. package/dist/node.js.map +1 -1
  23. package/dist/{renown-builder-BqWoYtBR.js → renown-builder-1WTEoRc6.js} +24 -1
  24. package/dist/{renown-builder-BqWoYtBR.js.map → renown-builder-1WTEoRc6.js.map} +1 -1
  25. package/dist/types-DiIZNA8t.js +20 -0
  26. package/dist/types-DiIZNA8t.js.map +1 -0
  27. package/dist/{types-Z6jyeonm.d.ts → types-DteAE_lL.d.ts} +23 -18
  28. package/dist/types-DteAE_lL.d.ts.map +1 -0
  29. package/dist/{types-DsF91dDF.d.ts → types-efrA0fu2.d.ts} +6 -4
  30. package/dist/{types-DsF91dDF.d.ts.map → types-efrA0fu2.d.ts.map} +1 -1
  31. package/dist/{utils-OOrVXHof.d.ts → utils-BuICPHTW.d.ts} +51 -3
  32. package/dist/utils-BuICPHTW.d.ts.map +1 -0
  33. package/dist/wallet/index.d.ts +4 -26
  34. package/dist/wallet/index.d.ts.map +1 -1
  35. package/dist/wallet/index.js +20 -64
  36. package/dist/wallet/index.js.map +1 -1
  37. package/dist/wallet/mock/factory.d.ts +9 -0
  38. package/dist/wallet/mock/factory.d.ts.map +1 -0
  39. package/dist/wallet/mock/factory.js +35 -0
  40. package/dist/wallet/mock/factory.js.map +1 -0
  41. package/dist/wallet/mock/index.d.ts +5 -14
  42. package/dist/wallet/mock/index.d.ts.map +1 -1
  43. package/dist/wallet/mock/index.js +9 -31
  44. package/dist/wallet/mock/index.js.map +1 -1
  45. package/dist/wallet/privy/factory.d.ts +58 -0
  46. package/dist/wallet/privy/factory.d.ts.map +1 -0
  47. package/dist/wallet/privy/factory.js +218 -0
  48. package/dist/wallet/privy/factory.js.map +1 -0
  49. package/dist/wallet/privy/index.d.ts +5 -59
  50. package/dist/wallet/privy/index.d.ts.map +1 -1
  51. package/dist/wallet/privy/index.js +9 -223
  52. package/dist/wallet/privy/index.js.map +1 -1
  53. package/dist/wallet/rainbow/factory.d.ts +7 -0
  54. package/dist/wallet/rainbow/factory.d.ts.map +1 -0
  55. package/dist/wallet/rainbow/factory.js +216 -0
  56. package/dist/wallet/rainbow/factory.js.map +1 -0
  57. package/dist/wallet/rainbow/index.d.ts +6 -11
  58. package/dist/wallet/rainbow/index.d.ts.map +1 -1
  59. package/dist/wallet/rainbow/index.js +13 -210
  60. package/dist/wallet/rainbow/index.js.map +1 -1
  61. package/package.json +21 -2
  62. package/dist/types-DG816Qa8.js +0 -27
  63. package/dist/types-DG816Qa8.js.map +0 -1
  64. package/dist/types-Z6jyeonm.d.ts.map +0 -1
  65. package/dist/utils-OOrVXHof.d.ts.map +0 -1
@@ -403,9 +403,9 @@ type RenownProfile = {
403
403
  documentId: string;
404
404
  username: string | null;
405
405
  ethAddress: string | null;
406
- userImage: string | null;
407
- createdAt: string;
408
- updatedAt: string;
406
+ userImage: string | null; /** Absent on a profile seeded from the session cookie (see RenownSessionProfile). */
407
+ createdAt?: string;
408
+ updatedAt?: string;
409
409
  };
410
410
  type InternalUser = User & {
411
411
  did: string;
@@ -454,6 +454,8 @@ interface IRenown extends Pick<RenownEventEmitter, "on"> {
454
454
  logout: () => Promise<void>;
455
455
  /** Re-check the current credential at the source; logs out if revoked/expired. */
456
456
  revalidate: () => Promise<boolean>;
457
+ /** Re-read profile attributes at the source; never logs out. Resolves true if they changed. */
458
+ refreshProfile: () => Promise<boolean>;
457
459
  readonly crypto: IRenownCrypto;
458
460
  readonly signer: ISigner$1;
459
461
  readonly did: string;
@@ -554,4 +556,4 @@ interface IRenownCrypto {
554
556
  interface IConnectCrypto extends IRenownCrypto {}
555
557
  //#endregion
556
558
  export { IEventEmitter as $, LoginStatus as A, Service as B, InternalUser as C, JWTVerifyPolicies as D, JWTVerified as E, RenownEventEmitter as F, User$1 as G, SignInParams as H, RenownEvents as I, VerifiedCredential as J, Verifiable as K, RenownProfile as L, PowerhouseVerifiableCredential as M, ProfileFetcher as N, JsonWebKey$1 as O, Proof as P, MemoryStorage as Q, RenownStorage as R, IVerifiableCredential as S, JWTPayload as T, Signer as U, ServiceEndpoint as V, Unsubscribe as W, W3CCredential as X, VerifiedJWT as Y, BaseStorage as Z, IPowerhouseCredentialSubject as _, DEFAULT_RENOWN_URL as _t, JwkKeyPair as a, VerifiedAuthCredential as at, IRenown as b, RENOWN_SESSION_COOKIE as bt, ConditionWeightedThreshold as c, fetchDelegationCredential as ct, DIDDocument as d, verifyCredentialSignature as dt, BuildCredentialParams as et, DIDDocumentMetadata as f, CREDENTIAL_SCHEMA_EIP712_TYPE as ft, IAuthCredentialSubject as g, DEFAULT_RENOWN_NETWORK_ID as gt, EcdsaSignature as h, DEFAULT_RENOWN_CHAIN_ID as ht, JsonWebKeyPairStorage as i, SignCredentialTypedData as it, PKHDid as j, KeyCapabilitySection as k, CreateBearerTokenOptions as l, recoverCredentialSigner as lt, DIDResolutionResult as m, CREDENTIAL_TYPES as mt, IConnectCrypto as n, CredentialMessage as nt, AuthVerifiableCredential as o, VerifyAuthCredentialOptions as ot, DIDResolutionMetadata as p, CREDENTIAL_SUBJECT_TYPE as pt, VerificationMethod as q, IRenownCrypto as r, FetchDelegationCredentialOptions as rt, AuthVerifiedCredential as s, buildAndSignCredential as st, DID as t, CredentialDomain as tt, CredentialStatus as u, verifyAuthCredential as ut, IPowerhouseIssuerType as v, DOMAIN_TYPE as vt, Issuer as w, ISigner$1 as x, VERIFIABLE_CREDENTIAL_EIP712_TYPE as xt, IProof as y, ISSUER_TYPE as yt, RenownStorageMap as z };
557
- //# sourceMappingURL=types-DsF91dDF.d.ts.map
559
+ //# sourceMappingURL=types-efrA0fu2.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types-DsF91dDF.d.ts","names":[],"sources":["../src/constants.ts","../src/credential.ts","../src/event/types.ts","../src/storage/common.ts","../src/types.ts","../src/crypto/types.ts"],"mappings":"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"}
1
+ {"version":3,"file":"types-efrA0fu2.d.ts","names":[],"sources":["../src/constants.ts","../src/credential.ts","../src/event/types.ts","../src/storage/common.ts","../src/types.ts","../src/crypto/types.ts"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { A as LoginStatus, C as InternalUser, F as RenownEventEmitter, G as User$1, H as SignInParams, I as RenownEvents, J as VerifiedCredential, L as RenownProfile, M as PowerhouseVerifiableCredential, N as ProfileFetcher, Q as MemoryStorage, R as RenownStorage, b as IRenown, i as JsonWebKeyPairStorage, j as PKHDid, l as CreateBearerTokenOptions, r as IRenownCrypto, s as AuthVerifiedCredential, w as Issuer, x as ISigner$1, z as RenownStorageMap } from "./types-DsF91dDF.js";
1
+ import { A as LoginStatus, C as InternalUser, F as RenownEventEmitter, G as User$1, H as SignInParams, I as RenownEvents, J as VerifiedCredential, L as RenownProfile, M as PowerhouseVerifiableCredential, N as ProfileFetcher, Q as MemoryStorage, R as RenownStorage, b as IRenown, i as JsonWebKeyPairStorage, j as PKHDid, l as CreateBearerTokenOptions, r as IRenownCrypto, s as AuthVerifiedCredential, w as Issuer, x as ISigner$1, z as RenownStorageMap } from "./types-efrA0fu2.js";
2
2
  import { Action } from "@powerhousedao/shared/document-model";
3
3
  import { Resolver } from "did-resolver";
4
4
 
@@ -40,6 +40,7 @@ declare class Renown implements IRenown {
40
40
  signIn(params: SignInParams): Promise<User$1>;
41
41
  logout(): Promise<void>;
42
42
  revalidate(): Promise<boolean>;
43
+ refreshProfile(): Promise<boolean>;
43
44
  on<K extends keyof RenownEvents>(event: K, listener: (data: RenownEvents[K]) => void): () => void;
44
45
  verifyBearerToken(token: string): Promise<false | AuthVerifiedCredential>;
45
46
  getBearerToken(options: CreateBearerTokenOptions): Promise<string>;
@@ -124,6 +125,53 @@ declare class BaseRenownBuilder {
124
125
  //#region src/profile.d.ts
125
126
  declare const fetchRenownProfile: ProfileFetcher;
126
127
  //#endregion
128
+ //#region src/session.d.ts
129
+ /** Server-side view of an authenticated Renown session. */
130
+ interface RenownSession {
131
+ /** Authenticated user identity derived from the session token. */
132
+ user: User$1;
133
+ /** App/client DID the token was issued by. */
134
+ appDid: string;
135
+ /** Token expiry (epoch seconds), when present. */
136
+ expiresAt?: number;
137
+ }
138
+ /** Display hint carried alongside the token (unverified; not for auth). */
139
+ interface RenownSessionProfile {
140
+ name?: string | null;
141
+ avatar?: string | null;
142
+ /** Renown profile document id, so SSR can resolve profile links. */
143
+ documentId?: string | null;
144
+ username?: string | null;
145
+ userImage?: string | null;
146
+ }
147
+ /** The `renown_session` cookie payload: the bearer token + a display hint. */
148
+ interface RenownSessionCookie {
149
+ token: string;
150
+ profile?: RenownSessionProfile | null;
151
+ }
152
+ interface VerifyRenownSessionOptions {
153
+ /** Expected `aud` claim on the token. */
154
+ audience?: string;
155
+ /** Switchboard GraphQL endpoint used when re-verifying the credential. */
156
+ switchboardUrl?: string;
157
+ /** Renown service base URL used when re-verifying the credential. */
158
+ renownUrl?: string;
159
+ /** Also re-verify the credential against Switchboard (default false = token-only, no network). */
160
+ verifyCredential?: boolean;
161
+ }
162
+ /** Claims read from a session token without verifying its signature. */
163
+ interface RenownSessionClaims {
164
+ address?: string;
165
+ chainId?: number;
166
+ networkId?: string;
167
+ /** Expiry in epoch seconds. */
168
+ expiresAt?: number;
169
+ }
170
+ /** Serialize a session cookie value (token + optional display hint). */
171
+ declare function serializeRenownSessionCookie(value: RenownSessionCookie): string;
172
+ declare function readSessionClaims(value: string): RenownSessionClaims | undefined;
173
+ declare function verifyRenownSession(value: string, options?: VerifyRenownSessionOptions): Promise<RenownSession | undefined>;
174
+ //#endregion
127
175
  //#region src/utils.d.ts
128
176
  type ILogger = {
129
177
  level: "verbose" | "debug" | "info" | "warn" | "error";
@@ -152,5 +200,5 @@ declare function assertIsAuthCredential(credential: VerifiedCredential): asserts
152
200
  declare function createAuthBearerToken(chainId: number, networkId: string, address: string, issuer: Issuer, options?: CreateBearerTokenOptions): Promise<string>;
153
201
  declare const getResolver: () => Resolver;
154
202
  //#endregion
155
- export { getResolver as a, fetchRenownProfile as c, ResolveSwitchboardEndpointOptions as d, resolveSwitchboardEndpoint as f, SwitchboardClient as h, createAuthBearerToken as i, BaseRenownBuilder as l, RenownMemoryStorage as m, VerifyAuthBearerTokenOptions as n, parsePkhDid as o, Renown as p, assertIsAuthCredential as r, verifyAuthBearerToken as s, ILogger as t, RenownBuilderOptions as u };
156
- //# sourceMappingURL=utils-OOrVXHof.d.ts.map
203
+ export { SwitchboardClient as C, RenownMemoryStorage as S, BaseRenownBuilder as _, getResolver as a, resolveSwitchboardEndpoint as b, RenownSession as c, RenownSessionProfile as d, VerifyRenownSessionOptions as f, fetchRenownProfile as g, verifyRenownSession as h, createAuthBearerToken as i, RenownSessionClaims as l, serializeRenownSessionCookie as m, VerifyAuthBearerTokenOptions as n, parsePkhDid as o, readSessionClaims as p, assertIsAuthCredential as r, verifyAuthBearerToken as s, ILogger as t, RenownSessionCookie as u, RenownBuilderOptions as v, Renown as x, ResolveSwitchboardEndpointOptions as y };
204
+ //# sourceMappingURL=utils-BuICPHTW.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils-BuICPHTW.d.ts","names":[],"sources":["../src/switchboard.ts","../src/common.ts","../src/discovery.ts","../src/renown-builder.ts","../src/profile.ts","../src/session.ts","../src/utils.ts"],"mappings":"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"}
@@ -1,30 +1,8 @@
1
- import { a as WalletAdapterFactory, c as WalletSession, d as normalizeWalletTheme, i as WalletAdapter, l as WalletTheme, n as DEFAULT_PRIVY_METHODS, o as WalletAdapterMeta, r as LoginMethod, s as WalletController, t as DEFAULT_MOCK_METHODS, u as WalletThemeColors } from "../types-Z6jyeonm.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-DteAE_lL.js";
2
2
 
3
3
  //#region src/wallet/controller.d.ts
4
- interface WalletRainbowConfig {
5
- walletConnectProjectId?: string;
6
- infuraProjectId?: string;
7
- ssr?: boolean;
8
- }
9
- interface WalletPrivyConfig {
10
- appId: string;
11
- clientId?: string;
12
- methods?: string[];
13
- }
14
- interface WalletMockConfig {
15
- privateKey?: `0x${string}`;
16
- chainId?: number;
17
- methods?: string[];
18
- }
19
- interface WalletAdaptersConfig {
20
- rainbow?: WalletRainbowConfig;
21
- privy?: WalletPrivyConfig;
22
- mock?: WalletMockConfig;
23
- }
24
- declare function isWalletRedirectReturn(search: string): boolean;
25
- declare function resolveAdapters(config: WalletAdaptersConfig | undefined): Promise<WalletAdapter[]>;
26
- declare function supportedMethods(adapters: WalletAdapter[]): LoginMethod[];
27
- declare function resolveForMethod(adapters: WalletAdapter[], method: LoginMethod): WalletAdapter;
4
+ declare function isWalletRedirectReturn(search: string, metas: WalletAdapterMeta[]): boolean;
5
+ declare function resolveAdapters(descriptors: WalletAdapterDescriptor[] | undefined): Promise<WalletAdapter[]>;
28
6
  //#endregion
29
- export { DEFAULT_MOCK_METHODS, DEFAULT_PRIVY_METHODS, LoginMethod, WalletAdapter, WalletAdapterFactory, WalletAdapterMeta, WalletAdaptersConfig, WalletController, WalletMockConfig, WalletPrivyConfig, WalletRainbowConfig, WalletSession, WalletTheme, WalletThemeColors, isWalletRedirectReturn, normalizeWalletTheme, resolveAdapters, resolveForMethod, supportedMethods };
7
+ export { LoginMethod, WalletAdapter, WalletAdapterDescriptor, WalletAdapterFactory, WalletAdapterImpl, WalletAdapterMeta, WalletAdapterProvider, WalletController, WalletSession, WalletTheme, WalletThemeColors, isWalletRedirectReturn, normalizeWalletTheme, resolveAdapters };
30
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../../src/wallet/controller.ts"],"mappings":";;;UAYiB,mBAAA;EACf,sBAAA;EACA,eAAA;EAGA,GAAA;AAAA;AAAA,UAGe,iBAAA;EACf,KAAA;EACA,QAAA;EACA,OAAA;AAAA;AAAA,UAIe,gBAAA;EACf,UAAA;EACA,OAAA;EACA,OAAA;AAAA;AAAA,UAGe,oBAAA;EACf,OAAA,GAAU,mBAAA;EACV,KAAA,GAAQ,iBAAA;EACR,IAAA,GAAO,gBAAA;AAAA;AAAA,iBAaO,sBAAA,CAAuB,MAAA;AAAA,iBA8BjB,eAAA,CACpB,MAAA,EAAQ,oBAAA,eACP,OAAA,CAAQ,aAAA;AAAA,iBAqCK,gBAAA,CAAiB,QAAA,EAAU,aAAA,KAAkB,WAAA;AAAA,iBAU7C,gBAAA,CACd,QAAA,EAAU,aAAA,IACV,MAAA,EAAQ,WAAA,GACP,aAAA"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../src/wallet/controller.ts"],"mappings":";;;iBAQgB,sBAAA,CACd,MAAA,UACA,KAAA,EAAO,iBAAA;AAAA,iBAUa,eAAA,CACpB,WAAA,EAAa,uBAAA,iBACZ,OAAA,CAAQ,aAAA"}
@@ -1,74 +1,30 @@
1
- import { i as normalizeWalletTheme, n as DEFAULT_PRIVY_METHODS, r as LoginMethod, t as DEFAULT_MOCK_METHODS } from "../types-DG816Qa8.js";
2
- //#endregion
1
+ import { n as normalizeWalletTheme, t as LoginMethod } from "../types-DiIZNA8t.js";
3
2
  //#region src/wallet/controller.ts
4
- const ADAPTER_METAS = [
5
- {
6
- id: "rainbow",
7
- redirectReturnParams: []
8
- },
9
- {
10
- id: "privy",
11
- redirectReturnParams: ["privy_oauth_code", "privy_oauth_state"]
12
- },
13
- {
14
- id: "mock",
15
- redirectReturnParams: []
16
- }
17
- ];
18
- function isWalletRedirectReturn(search) {
3
+ function isWalletRedirectReturn(search, metas) {
19
4
  const params = new URLSearchParams(search);
20
- return ADAPTER_METAS.some((meta) => meta.redirectReturnParams.some((param) => params.has(param)));
21
- }
22
- const ADAPTER_PEER_DEPS = {
23
- rainbow: [
24
- "wagmi",
25
- "@rainbow-me/rainbowkit",
26
- "@tanstack/react-query",
27
- "viem"
28
- ],
29
- privy: ["@privy-io/react-auth", "viem"],
30
- mock: ["viem"]
31
- };
32
- function logAdapterLoadError(id, error) {
33
- const deps = ADAPTER_PEER_DEPS[id].join(", ");
34
- console.error(`[renown] Could not load the "${id}" wallet adapter. It is enabled in renown.adapters but its peer dependencies are not installed. Install them to use it: ${deps} — or remove "${id}" from renown.adapters.`, error);
5
+ return metas.some((meta) => meta.redirectReturnParams.some((param) => params.has(param)));
35
6
  }
36
- async function resolveAdapters(config) {
7
+ async function resolveAdapters(descriptors) {
8
+ if (!descriptors || descriptors.length === 0) return [];
9
+ const settled = await Promise.allSettled(descriptors.map((descriptor) => descriptor.load()));
37
10
  const adapters = [];
38
- if (!config) return adapters;
39
- if (config.rainbow) try {
40
- const mod = await import("@renown/sdk/wallet/rainbow");
41
- adapters.push(mod.createRainbowAdapter(config.rainbow));
42
- } catch (error) {
43
- logAdapterLoadError("rainbow", error);
44
- }
45
- if (config.privy) try {
46
- const mod = await import("@renown/sdk/wallet/privy");
47
- adapters.push(mod.createPrivyAdapter(config.privy));
48
- } catch (error) {
49
- logAdapterLoadError("privy", error);
50
- }
51
- if (config.mock) try {
52
- const mod = await import("@renown/sdk/wallet/mock");
53
- adapters.push(mod.createMockAdapter(config.mock));
54
- } catch (error) {
55
- logAdapterLoadError("mock", error);
56
- }
11
+ const failures = [];
12
+ settled.forEach((result, index) => {
13
+ const { meta } = descriptors[index];
14
+ if (result.status === "fulfilled") adapters.push({
15
+ ...result.value,
16
+ meta
17
+ });
18
+ else failures.push(`${meta.id}: ${describeError(result.reason)}`);
19
+ });
20
+ if (adapters.length === 0) throw new Error(`No wallet adapter could be loaded. ${failures.join("; ")}`);
21
+ if (failures.length > 0) console.error(`[renown] Some wallet adapters failed to load. ${failures.join("; ")}`);
57
22
  return adapters;
58
23
  }
59
- function supportedMethods(adapters) {
60
- const methods = /* @__PURE__ */ new Set();
61
- for (const adapter of adapters) for (const method of adapter.supportedMethods) methods.add(method);
62
- return Array.from(methods);
63
- }
64
- function resolveForMethod(adapters, method) {
65
- const matches = adapters.filter((a) => a.supportedMethods.includes(method));
66
- if (matches.length > 1) throw new Error(`Multiple adapters support login method "${method}": ${matches.map((a) => a.id).join(", ")}. Resolve the adapter explicitly.`);
67
- const adapter = matches.at(0);
68
- if (!adapter) throw new Error(`No adapter registered for login method "${method}"`);
69
- return adapter;
24
+ function describeError(error) {
25
+ return error instanceof Error ? error.message : String(error);
70
26
  }
71
27
  //#endregion
72
- export { DEFAULT_MOCK_METHODS, DEFAULT_PRIVY_METHODS, LoginMethod, isWalletRedirectReturn, normalizeWalletTheme, resolveAdapters, resolveForMethod, supportedMethods };
28
+ export { LoginMethod, isWalletRedirectReturn, normalizeWalletTheme, resolveAdapters };
73
29
 
74
30
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../src/wallet/mock/meta.ts","../../src/wallet/privy/meta.ts","../../src/wallet/rainbow/meta.ts","../../src/wallet/controller.ts"],"sourcesContent":["import type { WalletAdapterMeta } from \"../types.js\";\n\n// Dependency-free descriptor (see privy/meta.ts). The mock signer has no\n// full-page OAuth redirect.\nexport const mockAdapterMeta: WalletAdapterMeta = {\n id: \"mock\",\n redirectReturnParams: [],\n};\n","import type { WalletAdapterMeta } from \"../types.js\";\n\n// Dependency-free descriptor, safe to import eagerly (pulls no wallet library);\n// the heavy createPrivyAdapter factory stays behind a dynamic import.\nexport const privyAdapterMeta: WalletAdapterMeta = {\n id: \"privy\",\n redirectReturnParams: [\"privy_oauth_code\", \"privy_oauth_state\"],\n};\n","import type { WalletAdapterMeta } from \"../types.js\";\n\n// Dependency-free descriptor (see privy/meta.ts). Injected wallets have no\n// full-page OAuth redirect, so no redirect-return params.\nexport const rainbowAdapterMeta: WalletAdapterMeta = {\n id: \"rainbow\",\n redirectReturnParams: [],\n};\n","import { mockAdapterMeta } from \"./mock/meta.js\";\nimport { privyAdapterMeta } from \"./privy/meta.js\";\nimport { rainbowAdapterMeta } from \"./rainbow/meta.js\";\nimport type {\n LoginMethod,\n WalletAdapter,\n WalletAdapterFactory,\n WalletAdapterMeta,\n} from \"./types.js\";\n\n// Structural config slices the core codes against; each adapter subexport accepts\n// a compatible config. Kept local so the core imports no wallet-lib or shared type.\nexport interface WalletRainbowConfig {\n walletConnectProjectId?: string;\n infuraProjectId?: string;\n // Set on server-rendered hosts (e.g. Next.js) so wagmi defers its hydrate\n // reconnect to an effect instead of running it during render.\n ssr?: boolean;\n}\n\nexport interface WalletPrivyConfig {\n appId: string;\n clientId?: string;\n methods?: string[];\n}\n\n// TEST/DEV only: a headless signer backed by a local key. Never enable in prod.\nexport interface WalletMockConfig {\n privateKey?: `0x${string}`;\n chainId?: number;\n methods?: string[];\n}\n\nexport interface WalletAdaptersConfig {\n rainbow?: WalletRainbowConfig;\n privy?: WalletPrivyConfig;\n mock?: WalletMockConfig;\n}\n\n// Adapter descriptors, imported eagerly (each is dependency-free — no wallet\n// library). Their factories still load lazily via resolveAdapters below.\nconst ADAPTER_METAS: WalletAdapterMeta[] = [\n rainbowAdapterMeta,\n privyAdapterMeta,\n mockAdapterMeta,\n];\n\n// True when a URL search string looks like a wallet OAuth redirect return, per\n// each adapter's own declared params — no adapter-specific strings live here.\nexport function isWalletRedirectReturn(search: string): boolean {\n const params = new URLSearchParams(search);\n return ADAPTER_METAS.some((meta) =>\n meta.redirectReturnParams.some((param) => params.has(param)),\n );\n}\n\n// Peer dependencies each adapter subexport imports; listed in the error message\n// when a dynamic import fails so operators know exactly what to install.\nconst ADAPTER_PEER_DEPS: Record<string, string[]> = {\n rainbow: [\"wagmi\", \"@rainbow-me/rainbowkit\", \"@tanstack/react-query\", \"viem\"],\n privy: [\"@privy-io/react-auth\", \"viem\"],\n mock: [\"viem\"],\n};\n\n// A module-not-found from a dynamic import means the adapter's optional peer\n// dependency isn't installed; explain it in plain language instead of the raw error.\nfunction logAdapterLoadError(\n id: \"rainbow\" | \"privy\" | \"mock\",\n error: unknown,\n): void {\n const deps = ADAPTER_PEER_DEPS[id].join(\", \");\n console.error(\n `[renown] Could not load the \"${id}\" wallet adapter. It is enabled in renown.adapters but its peer dependencies are not installed. Install them to use it: ${deps} — or remove \"${id}\" from renown.adapters.`,\n error,\n );\n}\n\n// Dynamically import ONLY the adapters an operator configured; the wallet-lib\n// code and its peer dep load only when the matching dynamic import runs.\nexport async function resolveAdapters(\n config: WalletAdaptersConfig | undefined,\n): Promise<WalletAdapter[]> {\n const adapters: WalletAdapter[] = [];\n if (!config) return adapters;\n if (config.rainbow) {\n try {\n const mod = (await import(\"@renown/sdk/wallet/rainbow\")) as unknown as {\n createRainbowAdapter: WalletAdapterFactory<WalletRainbowConfig>;\n };\n adapters.push(mod.createRainbowAdapter(config.rainbow));\n } catch (error) {\n logAdapterLoadError(\"rainbow\", error);\n }\n }\n if (config.privy) {\n try {\n const mod = (await import(\"@renown/sdk/wallet/privy\")) as unknown as {\n createPrivyAdapter: WalletAdapterFactory<WalletPrivyConfig>;\n };\n adapters.push(mod.createPrivyAdapter(config.privy));\n } catch (error) {\n logAdapterLoadError(\"privy\", error);\n }\n }\n if (config.mock) {\n try {\n const mod = (await import(\"@renown/sdk/wallet/mock\")) as unknown as {\n createMockAdapter: WalletAdapterFactory<WalletMockConfig>;\n };\n adapters.push(mod.createMockAdapter(config.mock));\n } catch (error) {\n logAdapterLoadError(\"mock\", error);\n }\n }\n return adapters;\n}\n\n// Union of all login methods supported across the resolved adapters.\nexport function supportedMethods(adapters: WalletAdapter[]): LoginMethod[] {\n const methods = new Set<LoginMethod>();\n for (const adapter of adapters) {\n for (const method of adapter.supportedMethods) methods.add(method);\n }\n return Array.from(methods);\n}\n\n// Return the sole adapter that supports `method`; throws if none or more than one\n// does (ambiguous config — the caller must resolve the adapter explicitly).\nexport function resolveForMethod(\n adapters: WalletAdapter[],\n method: LoginMethod,\n): WalletAdapter {\n const matches = adapters.filter((a) => a.supportedMethods.includes(method));\n if (matches.length > 1) {\n throw new Error(\n `Multiple adapters support login method \"${method}\": ${matches\n .map((a) => a.id)\n .join(\", \")}. Resolve the adapter explicitly.`,\n );\n }\n const adapter = matches.at(0);\n if (!adapter) {\n throw new Error(`No adapter registered for login method \"${method}\"`);\n }\n return adapter;\n}\n"],"mappings":";;;AGyCA,MAAM,gBAAqC;CDrCU;EACnD,IAAI;EACJ,sBAAsB,EAAE;EACzB;CDHkD;EACjD,IAAI;EACJ,sBAAsB,CAAC,oBAAoB,oBAAoB;EAChE;CDHiD;EAChD,IAAI;EACJ,sBAAsB,EAAE;EACzB;CGsCA;AAID,SAAgB,uBAAuB,QAAyB;CAC9D,MAAM,SAAS,IAAI,gBAAgB,OAAO;AAC1C,QAAO,cAAc,MAAM,SACzB,KAAK,qBAAqB,MAAM,UAAU,OAAO,IAAI,MAAM,CAAC,CAC7D;;AAKH,MAAM,oBAA8C;CAClD,SAAS;EAAC;EAAS;EAA0B;EAAyB;EAAO;CAC7E,OAAO,CAAC,wBAAwB,OAAO;CACvC,MAAM,CAAC,OAAO;CACf;AAID,SAAS,oBACP,IACA,OACM;CACN,MAAM,OAAO,kBAAkB,IAAI,KAAK,KAAK;AAC7C,SAAQ,MACN,gCAAgC,GAAG,0HAA0H,KAAK,gBAAgB,GAAG,0BACrL,MACD;;AAKH,eAAsB,gBACpB,QAC0B;CAC1B,MAAM,WAA4B,EAAE;AACpC,KAAI,CAAC,OAAQ,QAAO;AACpB,KAAI,OAAO,QACT,KAAI;EACF,MAAM,MAAO,MAAM,OAAO;AAG1B,WAAS,KAAK,IAAI,qBAAqB,OAAO,QAAQ,CAAC;UAChD,OAAO;AACd,sBAAoB,WAAW,MAAM;;AAGzC,KAAI,OAAO,MACT,KAAI;EACF,MAAM,MAAO,MAAM,OAAO;AAG1B,WAAS,KAAK,IAAI,mBAAmB,OAAO,MAAM,CAAC;UAC5C,OAAO;AACd,sBAAoB,SAAS,MAAM;;AAGvC,KAAI,OAAO,KACT,KAAI;EACF,MAAM,MAAO,MAAM,OAAO;AAG1B,WAAS,KAAK,IAAI,kBAAkB,OAAO,KAAK,CAAC;UAC1C,OAAO;AACd,sBAAoB,QAAQ,MAAM;;AAGtC,QAAO;;AAIT,SAAgB,iBAAiB,UAA0C;CACzE,MAAM,0BAAU,IAAI,KAAkB;AACtC,MAAK,MAAM,WAAW,SACpB,MAAK,MAAM,UAAU,QAAQ,iBAAkB,SAAQ,IAAI,OAAO;AAEpE,QAAO,MAAM,KAAK,QAAQ;;AAK5B,SAAgB,iBACd,UACA,QACe;CACf,MAAM,UAAU,SAAS,QAAQ,MAAM,EAAE,iBAAiB,SAAS,OAAO,CAAC;AAC3E,KAAI,QAAQ,SAAS,EACnB,OAAM,IAAI,MACR,2CAA2C,OAAO,KAAK,QACpD,KAAK,MAAM,EAAE,GAAG,CAChB,KAAK,KAAK,CAAC,mCACf;CAEH,MAAM,UAAU,QAAQ,GAAG,EAAE;AAC7B,KAAI,CAAC,QACH,OAAM,IAAI,MAAM,2CAA2C,OAAO,GAAG;AAEvE,QAAO"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../src/wallet/controller.ts"],"sourcesContent":["import type {\n WalletAdapter,\n WalletAdapterDescriptor,\n WalletAdapterMeta,\n} from \"./types.js\";\n\n// True when a URL search string looks like a wallet OAuth redirect return, per\n// each adapter's own declared params — no adapter-specific strings live here.\nexport function isWalletRedirectReturn(\n search: string,\n metas: WalletAdapterMeta[],\n): boolean {\n const params = new URLSearchParams(search);\n return metas.some((meta) =>\n meta.redirectReturnParams.some((param) => params.has(param)),\n );\n}\n\n// Load the descriptors the host passed in, pairing each resolved implementation\n// with its already-eager meta so identity is declared in exactly one place.\nexport async function resolveAdapters(\n descriptors: WalletAdapterDescriptor[] | undefined,\n): Promise<WalletAdapter[]> {\n if (!descriptors || descriptors.length === 0) return [];\n // allSettled, not all: one broken loader must not take the others down.\n const settled = await Promise.allSettled(\n descriptors.map((descriptor) => descriptor.load()),\n );\n\n const adapters: WalletAdapter[] = [];\n const failures: string[] = [];\n settled.forEach((result, index) => {\n const { meta } = descriptors[index];\n if (result.status === \"fulfilled\") {\n adapters.push({ ...result.value, meta });\n } else {\n failures.push(`${meta.id}: ${describeError(result.reason)}`);\n }\n });\n\n if (adapters.length === 0) {\n throw new Error(\n `No wallet adapter could be loaded. ${failures.join(\"; \")}`,\n );\n }\n if (failures.length > 0) {\n console.error(\n `[renown] Some wallet adapters failed to load. ${failures.join(\"; \")}`,\n );\n }\n return adapters;\n}\n\nfunction describeError(error: unknown): string {\n return error instanceof Error ? error.message : String(error);\n}\n"],"mappings":";;AAQA,SAAgB,uBACd,QACA,OACS;CACT,MAAM,SAAS,IAAI,gBAAgB,OAAO;AAC1C,QAAO,MAAM,MAAM,SACjB,KAAK,qBAAqB,MAAM,UAAU,OAAO,IAAI,MAAM,CAAC,CAC7D;;AAKH,eAAsB,gBACpB,aAC0B;AAC1B,KAAI,CAAC,eAAe,YAAY,WAAW,EAAG,QAAO,EAAE;CAEvD,MAAM,UAAU,MAAM,QAAQ,WAC5B,YAAY,KAAK,eAAe,WAAW,MAAM,CAAC,CACnD;CAED,MAAM,WAA4B,EAAE;CACpC,MAAM,WAAqB,EAAE;AAC7B,SAAQ,SAAS,QAAQ,UAAU;EACjC,MAAM,EAAE,SAAS,YAAY;AAC7B,MAAI,OAAO,WAAW,YACpB,UAAS,KAAK;GAAE,GAAG,OAAO;GAAO;GAAM,CAAC;MAExC,UAAS,KAAK,GAAG,KAAK,GAAG,IAAI,cAAc,OAAO,OAAO,GAAG;GAE9D;AAEF,KAAI,SAAS,WAAW,EACtB,OAAM,IAAI,MACR,sCAAsC,SAAS,KAAK,KAAK,GAC1D;AAEH,KAAI,SAAS,SAAS,EACpB,SAAQ,MACN,iDAAiD,SAAS,KAAK,KAAK,GACrE;AAEH,QAAO;;AAGT,SAAS,cAAc,OAAwB;AAC7C,QAAO,iBAAiB,QAAQ,MAAM,UAAU,OAAO,MAAM"}
@@ -0,0 +1,9 @@
1
+ import { a as WalletAdapterImpl } from "../../types-DteAE_lL.js";
2
+ import { r as PHRenownMockAdapterConfig } from "../../meta-DoUiCChW.js";
3
+
4
+ //#region src/wallet/mock/factory.d.ts
5
+ /** Headless test/dev wallet adapter: `connect()` resolves immediately with a session backed by a viem local account (real EIP-712 signatures, no wallet UI or OAuth). **TEST/DEV ONLY; never enable in production** — it signs with a known key. See the reactor-browser README "Testing" and the Academy Renown auth guide. */
6
+ declare function createMockAdapter(config: PHRenownMockAdapterConfig): WalletAdapterImpl;
7
+ //#endregion
8
+ export { createMockAdapter };
9
+ //# sourceMappingURL=factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.d.ts","names":[],"sources":["../../../src/wallet/mock/factory.ts"],"mappings":";;;;;iBAqBgB,iBAAA,CACd,MAAA,EAAQ,yBAAA,GACP,iBAAA"}
@@ -0,0 +1,35 @@
1
+ import { r as resolveMockMethods } from "../../meta-v66wx9x-.js";
2
+ import { privateKeyToAccount } from "viem/accounts";
3
+ //#region src/wallet/mock/factory.ts
4
+ const DEFAULT_TEST_KEY = "0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80";
5
+ const MockProvider = (props) => props.children;
6
+ /** 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. */
7
+ function createMockAdapter(config) {
8
+ const account = privateKeyToAccount(config.privateKey ?? DEFAULT_TEST_KEY);
9
+ const chainId = config.chainId ?? 1;
10
+ resolveMockMethods(config.methods);
11
+ const signTypedData = (args) => account.signTypedData({
12
+ domain: args.domain,
13
+ types: args.types,
14
+ primaryType: args.primaryType,
15
+ message: args.message
16
+ });
17
+ const session = {
18
+ address: account.address,
19
+ chainId,
20
+ signTypedData
21
+ };
22
+ const controller = {
23
+ connect: () => Promise.resolve(session),
24
+ disconnect: () => Promise.resolve(),
25
+ getSession: () => session
26
+ };
27
+ return {
28
+ Provider: MockProvider,
29
+ useController: () => controller
30
+ };
31
+ }
32
+ //#endregion
33
+ export { createMockAdapter };
34
+
35
+ //# sourceMappingURL=factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.js","names":[],"sources":["../../../src/wallet/mock/factory.ts"],"sourcesContent":["import { privateKeyToAccount } from \"viem/accounts\";\nimport type { ComponentType, ReactNode } from \"react\";\nimport type { SignCredentialTypedData } from \"../../credential.js\";\nimport type {\n WalletAdapterImpl,\n WalletController,\n WalletSession,\n} from \"../types.js\";\nimport { resolveMockMethods, type PHRenownMockAdapterConfig } from \"./meta.js\";\n\ntype Hex = `0x${string}`;\n\n// Well-known Anvil/Hardhat test account #0 private key. Default so tests need no\n// key; every connect resolves to its deterministic address.\nconst DEFAULT_TEST_KEY: Hex =\n \"0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80\";\n\nconst MockProvider: ComponentType<{ children: ReactNode }> = (props) =>\n props.children;\n\n/** 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. */\nexport function createMockAdapter(\n config: PHRenownMockAdapterConfig,\n): WalletAdapterImpl {\n const account = privateKeyToAccount(config.privateKey ?? DEFAULT_TEST_KEY);\n const chainId = config.chainId ?? 1;\n // Validated here too: the descriptor resolves these for its meta, but the\n // factory is public API and may be called directly.\n resolveMockMethods(config.methods);\n\n const signTypedData: SignCredentialTypedData = (args) =>\n account.signTypedData({\n domain: args.domain,\n types: args.types,\n primaryType: args.primaryType,\n message: args.message,\n } as unknown as Parameters<typeof account.signTypedData>[0]);\n\n const session: WalletSession = {\n address: account.address,\n chainId,\n signTypedData,\n };\n\n const controller: WalletController = {\n connect: () => Promise.resolve(session),\n disconnect: () => Promise.resolve(),\n getSession: () => session,\n };\n\n return { Provider: MockProvider, useController: () => controller };\n}\n"],"mappings":";;;AAcA,MAAM,mBACJ;AAEF,MAAM,gBAAwD,UAC5D,MAAM;;AAGR,SAAgB,kBACd,QACmB;CACnB,MAAM,UAAU,oBAAoB,OAAO,cAAc,iBAAiB;CAC1E,MAAM,UAAU,OAAO,WAAW;AAGlC,oBAAmB,OAAO,QAAQ;CAElC,MAAM,iBAA0C,SAC9C,QAAQ,cAAc;EACpB,QAAQ,KAAK;EACb,OAAO,KAAK;EACZ,aAAa,KAAK;EAClB,SAAS,KAAK;EACf,CAA2D;CAE9D,MAAM,UAAyB;EAC7B,SAAS,QAAQ;EACjB;EACA;EACD;CAED,MAAM,aAA+B;EACnC,eAAe,QAAQ,QAAQ,QAAQ;EACvC,kBAAkB,QAAQ,SAAS;EACnC,kBAAkB;EACnB;AAED,QAAO;EAAE,UAAU;EAAc,qBAAqB;EAAY"}
@@ -1,18 +1,9 @@
1
- import { i as WalletAdapter } from "../../types-Z6jyeonm.js";
1
+ import { r as WalletAdapterDescriptor } from "../../types-DteAE_lL.js";
2
+ import { a as resolveMockMethods, i as mockAdapterMeta, n as MockLoginMethod, r as PHRenownMockAdapterConfig, t as DEFAULT_MOCK_METHODS } from "../../meta-DoUiCChW.js";
2
3
 
3
4
  //#region src/wallet/mock/index.d.ts
4
- type Hex = `0x${string}`;
5
- /** Config for the mock wallet adapter. TEST/DEV ONLY — signs with a local key; never enable in production. */
6
- interface PHRenownMockAdapterConfig {
7
- /** Signing key; defaults to the well-known Anvil test account #0. */
8
- privateKey?: Hex;
9
- /** Chain id reported in the session (default 1). */
10
- chainId?: number;
11
- /** Methods this adapter answers for; defaults to wallet + google + email. */
12
- methods?: string[];
13
- }
14
- /** 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). Enable via `adapters.mock` to e2e-test sign-in deterministically. See the reactor-browser README "Testing" and the Academy Renown auth guide. */
15
- declare function createMockAdapter(config: PHRenownMockAdapterConfig): WalletAdapter;
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. */
6
+ declare function mockAdapter(config: PHRenownMockAdapterConfig): WalletAdapterDescriptor;
16
7
  //#endregion
17
- export { PHRenownMockAdapterConfig, createMockAdapter };
8
+ export { DEFAULT_MOCK_METHODS, type MockLoginMethod, type PHRenownMockAdapterConfig, mockAdapter, mockAdapterMeta, resolveMockMethods };
18
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/wallet/mock/index.ts"],"mappings":";;;KAWK,GAAA;;UAQY,yBAAA;EARZ;EAUH,UAAA,GAAa,GAAA;;EAEb,OAAA;EAZM;EAcN,OAAA;AAAA;;iBAOc,iBAAA,CACd,MAAA,EAAQ,yBAAA,GACP,aAAA"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/wallet/mock/index.ts"],"mappings":";;;;;iBAQgB,WAAA,CACd,MAAA,EAAQ,yBAAA,GACP,uBAAA"}
@@ -1,38 +1,16 @@
1
- import { t as DEFAULT_MOCK_METHODS } from "../../types-DG816Qa8.js";
2
- import { privateKeyToAccount } from "viem/accounts";
1
+ import { n as mockAdapterMeta, r as resolveMockMethods, t as DEFAULT_MOCK_METHODS } from "../../meta-v66wx9x-.js";
3
2
  //#region src/wallet/mock/index.ts
4
- const DEFAULT_TEST_KEY = "0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80";
5
- const MockProvider = (props) => props.children;
6
- /** 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). Enable via `adapters.mock` to e2e-test sign-in deterministically. See the reactor-browser README "Testing" and the Academy Renown auth guide. */
7
- function createMockAdapter(config) {
8
- const account = privateKeyToAccount(config.privateKey ?? DEFAULT_TEST_KEY);
9
- const chainId = config.chainId ?? 1;
10
- const supportedMethods = config.methods?.length ? config.methods : DEFAULT_MOCK_METHODS;
11
- const signTypedData = (args) => account.signTypedData({
12
- domain: args.domain,
13
- types: args.types,
14
- primaryType: args.primaryType,
15
- message: args.message
16
- });
17
- const session = {
18
- address: account.address,
19
- chainId,
20
- signTypedData
21
- };
22
- const controller = {
23
- supportedMethods,
24
- connect: () => Promise.resolve(session),
25
- disconnect: () => Promise.resolve(),
26
- getSession: () => session
27
- };
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
+ function mockAdapter(config) {
28
5
  return {
29
- id: "mock",
30
- supportedMethods,
31
- Provider: MockProvider,
32
- useController: () => controller
6
+ meta: {
7
+ ...mockAdapterMeta,
8
+ supportedMethods: resolveMockMethods(config.methods)
9
+ },
10
+ load: () => import("./factory.js").then((m) => m.createMockAdapter(config))
33
11
  };
34
12
  }
35
13
  //#endregion
36
- export { createMockAdapter };
14
+ export { DEFAULT_MOCK_METHODS, mockAdapter, mockAdapterMeta, resolveMockMethods };
37
15
 
38
16
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../src/wallet/mock/index.ts"],"sourcesContent":["import { privateKeyToAccount } from \"viem/accounts\";\nimport type { ComponentType, ReactNode } from \"react\";\nimport type { SignCredentialTypedData } from \"../../credential.js\";\nimport type { LoginMethod } from \"../types.js\";\nimport {\n DEFAULT_MOCK_METHODS,\n type WalletAdapter,\n type WalletController,\n type WalletSession,\n} from \"../types.js\";\n\ntype Hex = `0x${string}`;\n\n// Well-known Anvil/Hardhat test account #0 private key. Default so tests need no\n// key; every connect resolves to its deterministic address.\nconst DEFAULT_TEST_KEY: Hex =\n \"0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80\";\n\n/** Config for the mock wallet adapter. TEST/DEV ONLY — signs with a local key; never enable in production. */\nexport interface PHRenownMockAdapterConfig {\n /** Signing key; defaults to the well-known Anvil test account #0. */\n privateKey?: Hex;\n /** Chain id reported in the session (default 1). */\n chainId?: number;\n /** Methods this adapter answers for; defaults to wallet + google + email. */\n methods?: string[];\n}\n\nconst MockProvider: ComponentType<{ children: ReactNode }> = (props) =>\n props.children;\n\n/** 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). Enable via `adapters.mock` to e2e-test sign-in deterministically. See the reactor-browser README \"Testing\" and the Academy Renown auth guide. */\nexport function createMockAdapter(\n config: PHRenownMockAdapterConfig,\n): WalletAdapter {\n const account = privateKeyToAccount(config.privateKey ?? DEFAULT_TEST_KEY);\n const chainId = config.chainId ?? 1;\n const supportedMethods = config.methods?.length\n ? (config.methods as LoginMethod[])\n : DEFAULT_MOCK_METHODS;\n\n const signTypedData: SignCredentialTypedData = (args) =>\n account.signTypedData({\n domain: args.domain,\n types: args.types,\n primaryType: args.primaryType,\n message: args.message,\n } as unknown as Parameters<typeof account.signTypedData>[0]);\n\n const session: WalletSession = {\n address: account.address,\n chainId,\n signTypedData,\n };\n\n const controller: WalletController = {\n supportedMethods,\n connect: () => Promise.resolve(session),\n disconnect: () => Promise.resolve(),\n getSession: () => session,\n };\n\n return {\n id: \"mock\",\n supportedMethods,\n Provider: MockProvider,\n useController: () => controller,\n };\n}\n"],"mappings":";;;AAeA,MAAM,mBACJ;AAYF,MAAM,gBAAwD,UAC5D,MAAM;;AAGR,SAAgB,kBACd,QACe;CACf,MAAM,UAAU,oBAAoB,OAAO,cAAc,iBAAiB;CAC1E,MAAM,UAAU,OAAO,WAAW;CAClC,MAAM,mBAAmB,OAAO,SAAS,SACpC,OAAO,UACR;CAEJ,MAAM,iBAA0C,SAC9C,QAAQ,cAAc;EACpB,QAAQ,KAAK;EACb,OAAO,KAAK;EACZ,aAAa,KAAK;EAClB,SAAS,KAAK;EACf,CAA2D;CAE9D,MAAM,UAAyB;EAC7B,SAAS,QAAQ;EACjB;EACA;EACD;CAED,MAAM,aAA+B;EACnC;EACA,eAAe,QAAQ,QAAQ,QAAQ;EACvC,kBAAkB,QAAQ,SAAS;EACnC,kBAAkB;EACnB;AAED,QAAO;EACL,IAAI;EACJ;EACA,UAAU;EACV,qBAAqB;EACtB"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../src/wallet/mock/index.ts"],"sourcesContent":["import type { WalletAdapterDescriptor } from \"../types.js\";\nimport {\n mockAdapterMeta,\n resolveMockMethods,\n type PHRenownMockAdapterConfig,\n} from \"./meta.js\";\n\n/** 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. */\nexport function mockAdapter(\n config: PHRenownMockAdapterConfig,\n): WalletAdapterDescriptor {\n return {\n meta: {\n ...mockAdapterMeta,\n supportedMethods: resolveMockMethods(config.methods),\n },\n load: () => import(\"./factory.js\").then((m) => m.createMockAdapter(config)),\n };\n}\n\nexport {\n DEFAULT_MOCK_METHODS,\n mockAdapterMeta,\n resolveMockMethods,\n} from \"./meta.js\";\nexport type { MockLoginMethod, PHRenownMockAdapterConfig } from \"./meta.js\";\n"],"mappings":";;;AAQA,SAAgB,YACd,QACyB;AACzB,QAAO;EACL,MAAM;GACJ,GAAG;GACH,kBAAkB,mBAAmB,OAAO,QAAQ;GACrD;EACD,YAAY,OAAO,gBAAgB,MAAM,MAAM,EAAE,kBAAkB,OAAO,CAAC;EAC5E"}
@@ -0,0 +1,58 @@
1
+ import { it as SignCredentialTypedData } from "../../types-efrA0fu2.js";
2
+ import { a as WalletAdapterImpl, l as WalletSession, t as LoginMethod, u as WalletTheme } from "../../types-DteAE_lL.js";
3
+ import { n as PHRenownPrivyAdapterConfig } from "../../meta-BIIw0yao.js";
4
+ import { ComponentType, ReactNode } from "react";
5
+ import { ConnectedWallet, LoginModalOptions } from "@privy-io/react-auth";
6
+
7
+ //#region src/wallet/privy/adapter.d.ts
8
+ type Hex = `0x${string}`;
9
+ type PrivyOAuthProviderId = "google" | "apple";
10
+ interface PrivyBindings {
11
+ openLoginModal: (options?: LoginModalOptions) => void;
12
+ initOAuth: (options: {
13
+ provider: PrivyOAuthProviderId;
14
+ }) => Promise<void>;
15
+ logout: () => Promise<void>;
16
+ signTypedData: (args: Parameters<SignCredentialTypedData>[0], address: Hex) => Promise<Hex>;
17
+ }
18
+ declare class PrivyCore {
19
+ readonly supportedMethods: LoginMethod[];
20
+ private bindings;
21
+ private pending;
22
+ private session;
23
+ private listeners;
24
+ constructor(supportedMethods: LoginMethod[]);
25
+ bind(bindings: PrivyBindings): () => void;
26
+ getSession(): WalletSession | undefined;
27
+ subscribe(listener: (session: WalletSession | undefined) => void): () => void;
28
+ private emit;
29
+ syncFromEmbeddedWallet(wallet: ConnectedWallet): void;
30
+ clearSession(): void;
31
+ handleLoginError(error: unknown): void;
32
+ connect(method?: LoginMethod): Promise<WalletSession>;
33
+ disconnect(): Promise<void>;
34
+ }
35
+ //#endregion
36
+ //#region src/wallet/privy/bridge.d.ts
37
+ interface PrivyAdapterBridgeProps {
38
+ core: PrivyCore;
39
+ }
40
+ declare function PrivyAdapterBridge({
41
+ core
42
+ }: PrivyAdapterBridgeProps): null;
43
+ //#endregion
44
+ //#region src/wallet/privy/provider.d.ts
45
+ interface PrivyProviderConfig {
46
+ appId: string;
47
+ clientId?: string;
48
+ }
49
+ declare function createPrivyProvider(core: PrivyCore, config: PrivyProviderConfig): ComponentType<{
50
+ children: ReactNode;
51
+ theme?: WalletTheme;
52
+ }>;
53
+ //#endregion
54
+ //#region src/wallet/privy/factory.d.ts
55
+ declare function createPrivyAdapter(config: PHRenownPrivyAdapterConfig): WalletAdapterImpl;
56
+ //#endregion
57
+ export { PrivyAdapterBridge, type PrivyBindings, PrivyCore, createPrivyAdapter, createPrivyProvider };
58
+ //# sourceMappingURL=factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.d.ts","names":[],"sources":["../../../src/wallet/privy/adapter.ts","../../../src/wallet/privy/bridge.tsx","../../../src/wallet/privy/provider.tsx","../../../src/wallet/privy/factory.ts"],"mappings":";;;;;;;KASK,GAAA;AAAA,KAcA,oBAAA;AAAA,UAaY,aAAA;EACf,cAAA,GAAiB,OAAA,GAAU,iBAAA;EAC3B,SAAA,GAAY,OAAA;IAAW,QAAA,EAAU,oBAAA;EAAA,MAA2B,OAAA;EAC5D,MAAA,QAAc,OAAA;EACd,aAAA,GACE,IAAA,EAAM,UAAA,CAAW,uBAAA,MACjB,OAAA,EAAS,GAAA,KACN,OAAA,CAAQ,GAAA;AAAA;AAAA,cAUF,SAAA;EAAA,SACF,gBAAA,EAAkB,WAAA;EAAA,QAEnB,QAAA;EAAA,QACA,OAAA;EAAA,QACA,OAAA;EAAA,QACA,SAAA;cAEI,gBAAA,EAAkB,WAAA;EAI9B,IAAA,CAAK,QAAA,EAAU,aAAA;EAOf,UAAA,CAAA,GAAc,aAAA;EAMd,SAAA,CACE,QAAA,GAAW,OAAA,EAAS,aAAA;EAAA,QASd,IAAA;EAMR,sBAAA,CAAuB,MAAA,EAAQ,eAAA;EA8B/B,YAAA,CAAA;EAOA,gBAAA,CAAiB,KAAA;EAOX,OAAA,CAAQ,MAAA,GAAS,WAAA,GAAc,OAAA,CAAQ,aAAA;EAyCvC,UAAA,CAAA,GAAc,OAAA;AAAA;;;UCrKZ,uBAAA;EACR,IAAA,EAAM,SAAA;AAAA;AAAA,iBAKQ,kBAAA,CAAA;EAAqB;AAAA,GAAQ,uBAAA;;;UCdnC,mBAAA;EACR,KAAA;EACA,QAAA;AAAA;AAAA,iBAKc,mBAAA,CACd,IAAA,EAAM,SAAA,EACN,MAAA,EAAQ,mBAAA,GACP,aAAA;EAAgB,QAAA,EAAU,SAAA;EAAW,KAAA,GAAQ,WAAA;AAAA;;;iBCFhC,kBAAA,CACd,MAAA,EAAQ,0BAAA,GACP,iBAAA"}