@turnkey/core 1.0.0-beta.0

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 (149) hide show
  1. package/LICENSE +201 -0
  2. package/README.MD +5 -0
  3. package/dist/__clients__/core.d.ts +1010 -0
  4. package/dist/__clients__/core.d.ts.map +1 -0
  5. package/dist/__clients__/core.js +2358 -0
  6. package/dist/__clients__/core.js.map +1 -0
  7. package/dist/__clients__/core.mjs +2356 -0
  8. package/dist/__clients__/core.mjs.map +1 -0
  9. package/dist/__generated__/sdk-client-base.d.ts +211 -0
  10. package/dist/__generated__/sdk-client-base.d.ts.map +1 -0
  11. package/dist/__generated__/sdk-client-base.js +3219 -0
  12. package/dist/__generated__/sdk-client-base.js.map +1 -0
  13. package/dist/__generated__/sdk-client-base.mjs +3217 -0
  14. package/dist/__generated__/sdk-client-base.mjs.map +1 -0
  15. package/dist/__generated__/version.d.ts +2 -0
  16. package/dist/__generated__/version.d.ts.map +1 -0
  17. package/dist/__generated__/version.js +6 -0
  18. package/dist/__generated__/version.js.map +1 -0
  19. package/dist/__generated__/version.mjs +4 -0
  20. package/dist/__generated__/version.mjs.map +1 -0
  21. package/dist/__inputs__/public_api.types.d.ts +5170 -0
  22. package/dist/__inputs__/public_api.types.d.ts.map +1 -0
  23. package/dist/__polyfills__/window.d.ts +15 -0
  24. package/dist/__polyfills__/window.d.ts.map +1 -0
  25. package/dist/__polyfills__/window.js +30 -0
  26. package/dist/__polyfills__/window.js.map +1 -0
  27. package/dist/__polyfills__/window.mjs +28 -0
  28. package/dist/__polyfills__/window.mjs.map +1 -0
  29. package/dist/__stampers__/api/base.d.ts +20 -0
  30. package/dist/__stampers__/api/base.d.ts.map +1 -0
  31. package/dist/__stampers__/api/base.js +67 -0
  32. package/dist/__stampers__/api/base.js.map +1 -0
  33. package/dist/__stampers__/api/base.mjs +65 -0
  34. package/dist/__stampers__/api/base.mjs.map +1 -0
  35. package/dist/__stampers__/api/mobile/stamper.d.ts +13 -0
  36. package/dist/__stampers__/api/mobile/stamper.d.ts.map +1 -0
  37. package/dist/__stampers__/api/mobile/stamper.js +69 -0
  38. package/dist/__stampers__/api/mobile/stamper.js.map +1 -0
  39. package/dist/__stampers__/api/mobile/stamper.mjs +67 -0
  40. package/dist/__stampers__/api/mobile/stamper.mjs.map +1 -0
  41. package/dist/__stampers__/api/web/stamper.d.ts +14 -0
  42. package/dist/__stampers__/api/web/stamper.d.ts.map +1 -0
  43. package/dist/__stampers__/api/web/stamper.js +212 -0
  44. package/dist/__stampers__/api/web/stamper.js.map +1 -0
  45. package/dist/__stampers__/api/web/stamper.mjs +210 -0
  46. package/dist/__stampers__/api/web/stamper.mjs.map +1 -0
  47. package/dist/__stampers__/passkey/base.d.ts +18 -0
  48. package/dist/__stampers__/passkey/base.d.ts.map +1 -0
  49. package/dist/__stampers__/passkey/base.js +138 -0
  50. package/dist/__stampers__/passkey/base.js.map +1 -0
  51. package/dist/__stampers__/passkey/base.mjs +134 -0
  52. package/dist/__stampers__/passkey/base.mjs.map +1 -0
  53. package/dist/__storage__/base.d.ts +3 -0
  54. package/dist/__storage__/base.d.ts.map +1 -0
  55. package/dist/__storage__/base.js +27 -0
  56. package/dist/__storage__/base.js.map +1 -0
  57. package/dist/__storage__/base.mjs +25 -0
  58. package/dist/__storage__/base.mjs.map +1 -0
  59. package/dist/__storage__/mobile/storage.d.ts +18 -0
  60. package/dist/__storage__/mobile/storage.d.ts.map +1 -0
  61. package/dist/__storage__/mobile/storage.js +74 -0
  62. package/dist/__storage__/mobile/storage.js.map +1 -0
  63. package/dist/__storage__/mobile/storage.mjs +72 -0
  64. package/dist/__storage__/mobile/storage.mjs.map +1 -0
  65. package/dist/__storage__/web/storage.d.ts +19 -0
  66. package/dist/__storage__/web/storage.d.ts.map +1 -0
  67. package/dist/__storage__/web/storage.js +79 -0
  68. package/dist/__storage__/web/storage.js.map +1 -0
  69. package/dist/__storage__/web/storage.mjs +77 -0
  70. package/dist/__storage__/web/storage.mjs.map +1 -0
  71. package/dist/__types__/base.d.ts +407 -0
  72. package/dist/__types__/base.d.ts.map +1 -0
  73. package/dist/__types__/base.js +88 -0
  74. package/dist/__types__/base.js.map +1 -0
  75. package/dist/__types__/base.mjs +84 -0
  76. package/dist/__types__/base.mjs.map +1 -0
  77. package/dist/__wallet__/base.d.ts +3 -0
  78. package/dist/__wallet__/base.d.ts.map +1 -0
  79. package/dist/__wallet__/base.js +24 -0
  80. package/dist/__wallet__/base.js.map +1 -0
  81. package/dist/__wallet__/base.mjs +22 -0
  82. package/dist/__wallet__/base.mjs.map +1 -0
  83. package/dist/__wallet__/connector.d.ts +33 -0
  84. package/dist/__wallet__/connector.d.ts.map +1 -0
  85. package/dist/__wallet__/connector.js +63 -0
  86. package/dist/__wallet__/connector.js.map +1 -0
  87. package/dist/__wallet__/connector.mjs +61 -0
  88. package/dist/__wallet__/connector.mjs.map +1 -0
  89. package/dist/__wallet__/mobile/manager.d.ts +35 -0
  90. package/dist/__wallet__/mobile/manager.d.ts.map +1 -0
  91. package/dist/__wallet__/mobile/manager.js +95 -0
  92. package/dist/__wallet__/mobile/manager.js.map +1 -0
  93. package/dist/__wallet__/mobile/manager.mjs +93 -0
  94. package/dist/__wallet__/mobile/manager.mjs.map +1 -0
  95. package/dist/__wallet__/stamper.d.ts +19 -0
  96. package/dist/__wallet__/stamper.d.ts.map +1 -0
  97. package/dist/__wallet__/stamper.js +116 -0
  98. package/dist/__wallet__/stamper.js.map +1 -0
  99. package/dist/__wallet__/stamper.mjs +113 -0
  100. package/dist/__wallet__/stamper.mjs.map +1 -0
  101. package/dist/__wallet__/wallet-connect/base.d.ts +83 -0
  102. package/dist/__wallet__/wallet-connect/base.d.ts.map +1 -0
  103. package/dist/__wallet__/wallet-connect/base.js +362 -0
  104. package/dist/__wallet__/wallet-connect/base.js.map +1 -0
  105. package/dist/__wallet__/wallet-connect/base.mjs +360 -0
  106. package/dist/__wallet__/wallet-connect/base.mjs.map +1 -0
  107. package/dist/__wallet__/wallet-connect/client.d.ts +78 -0
  108. package/dist/__wallet__/wallet-connect/client.d.ts.map +1 -0
  109. package/dist/__wallet__/wallet-connect/client.js +139 -0
  110. package/dist/__wallet__/wallet-connect/client.js.map +1 -0
  111. package/dist/__wallet__/wallet-connect/client.mjs +137 -0
  112. package/dist/__wallet__/wallet-connect/client.mjs.map +1 -0
  113. package/dist/__wallet__/web/manager.d.ts +41 -0
  114. package/dist/__wallet__/web/manager.d.ts.map +1 -0
  115. package/dist/__wallet__/web/manager.js +115 -0
  116. package/dist/__wallet__/web/manager.js.map +1 -0
  117. package/dist/__wallet__/web/manager.mjs +113 -0
  118. package/dist/__wallet__/web/manager.mjs.map +1 -0
  119. package/dist/__wallet__/web/native/ethereum.d.ts +67 -0
  120. package/dist/__wallet__/web/native/ethereum.d.ts.map +1 -0
  121. package/dist/__wallet__/web/native/ethereum.js +248 -0
  122. package/dist/__wallet__/web/native/ethereum.js.map +1 -0
  123. package/dist/__wallet__/web/native/ethereum.mjs +245 -0
  124. package/dist/__wallet__/web/native/ethereum.mjs.map +1 -0
  125. package/dist/__wallet__/web/native/solana.d.ts +19 -0
  126. package/dist/__wallet__/web/native/solana.d.ts.map +1 -0
  127. package/dist/__wallet__/web/native/solana.js +149 -0
  128. package/dist/__wallet__/web/native/solana.js.map +1 -0
  129. package/dist/__wallet__/web/native/solana.mjs +146 -0
  130. package/dist/__wallet__/web/native/solana.mjs.map +1 -0
  131. package/dist/index.d.ts +9 -0
  132. package/dist/index.d.ts.map +1 -0
  133. package/dist/index.js +78 -0
  134. package/dist/index.js.map +1 -0
  135. package/dist/index.mjs +8 -0
  136. package/dist/index.mjs.map +1 -0
  137. package/dist/turnkey-helpers.d.ts +68 -0
  138. package/dist/turnkey-helpers.d.ts.map +1 -0
  139. package/dist/turnkey-helpers.js +466 -0
  140. package/dist/turnkey-helpers.js.map +1 -0
  141. package/dist/turnkey-helpers.mjs +399 -0
  142. package/dist/turnkey-helpers.mjs.map +1 -0
  143. package/dist/utils.d.ts +54 -0
  144. package/dist/utils.d.ts.map +1 -0
  145. package/dist/utils.js +596 -0
  146. package/dist/utils.js.map +1 -0
  147. package/dist/utils.mjs +574 -0
  148. package/dist/utils.mjs.map +1 -0
  149. package/package.json +67 -0
@@ -0,0 +1,79 @@
1
+ 'use strict';
2
+
3
+ var window = require('../../__polyfills__/window.js');
4
+ var base = require('../../__types__/base.js');
5
+ var utils = require('../../utils.js');
6
+ var sdkTypes = require('@turnkey/sdk-types');
7
+
8
+ const browserStorage = window.localStorage;
9
+ class WebStorageManager {
10
+ constructor() {
11
+ this.getStorageValue = async (sessionKey) => {
12
+ const item = browserStorage.getItem(sessionKey);
13
+ return item ? JSON.parse(item) : undefined;
14
+ };
15
+ this.setStorageValue = async (sessionKey, storageValue) => {
16
+ if (storageValue === undefined) {
17
+ throw new sdkTypes.TurnkeyError("Session value cannot be undefined", sdkTypes.TurnkeyErrorCodes.STORE_SESSION_ERROR);
18
+ }
19
+ browserStorage.setItem(sessionKey, JSON.stringify(storageValue));
20
+ };
21
+ this.setActiveSessionKey = async (sessionKey) => {
22
+ await this.setStorageValue(WebStorageManager.ACTIVE_SESSION_KEY, sessionKey);
23
+ };
24
+ this.removeStorageValue = async (sessionKey) => {
25
+ browserStorage.removeItem(sessionKey);
26
+ };
27
+ this.storeSession = async (session, sessionKey = base.SessionKey.DefaultSessionkey) => {
28
+ const sessionWithMetadata = utils.parseSession(session);
29
+ await this.setStorageValue(sessionKey, sessionWithMetadata);
30
+ // Ensure the session key is stored in the session keys list
31
+ const keys = (await this.getStorageValue(WebStorageManager.ALL_SESSION_KEYS)) ?? [];
32
+ if (!keys.includes(sessionKey)) {
33
+ keys.push(sessionKey);
34
+ await this.setStorageValue(WebStorageManager.ALL_SESSION_KEYS, keys);
35
+ }
36
+ // Set the active session key
37
+ await this.setStorageValue(WebStorageManager.ACTIVE_SESSION_KEY, sessionKey);
38
+ };
39
+ this.getSession = async (sessionKey = base.SessionKey.DefaultSessionkey) => {
40
+ return this.getStorageValue(sessionKey);
41
+ };
42
+ this.getActiveSessionKey = async () => {
43
+ return this.getStorageValue(WebStorageManager.ACTIVE_SESSION_KEY);
44
+ };
45
+ this.getActiveSession = async () => {
46
+ const key = await this.getActiveSessionKey();
47
+ return key ? this.getSession(key) : undefined;
48
+ };
49
+ this.listSessionKeys = async () => {
50
+ return ((await this.getStorageValue(WebStorageManager.ALL_SESSION_KEYS)) ?? []);
51
+ };
52
+ this.clearSession = async (sessionKey) => {
53
+ await this.removeStorageValue(sessionKey);
54
+ const keys = await this.listSessionKeys();
55
+ const updated = keys.filter((k) => k !== sessionKey);
56
+ await this.setStorageValue(WebStorageManager.ALL_SESSION_KEYS, updated);
57
+ const active = await this.getActiveSessionKey();
58
+ if (active === sessionKey) {
59
+ await this.removeStorageValue(WebStorageManager.ACTIVE_SESSION_KEY);
60
+ }
61
+ };
62
+ this.clearAllSessions = async () => {
63
+ const keys = await this.listSessionKeys();
64
+ await Promise.all(keys.map((k) => this.removeStorageValue(k)));
65
+ await this.removeStorageValue(WebStorageManager.ALL_SESSION_KEYS);
66
+ await this.removeStorageValue(WebStorageManager.ACTIVE_SESSION_KEY);
67
+ };
68
+ this.storeWallets = async (wallets) => {
69
+ for (const wallet of wallets) {
70
+ browserStorage.setItem(wallet.walletId, JSON.stringify(wallet));
71
+ }
72
+ };
73
+ }
74
+ }
75
+ WebStorageManager.ALL_SESSION_KEYS = "@turnkey/all-session-keys";
76
+ WebStorageManager.ACTIVE_SESSION_KEY = "@turnkey/active-session-key";
77
+
78
+ exports.WebStorageManager = WebStorageManager;
79
+ //# sourceMappingURL=storage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.js","sources":["../../../src/__storage__/web/storage.ts"],"sourcesContent":[null],"names":["WindowWrapper","TurnkeyError","TurnkeyErrorCodes","SessionKey","parseSession"],"mappings":"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"}
@@ -0,0 +1,77 @@
1
+ import WindowWrapper from '../../__polyfills__/window.mjs';
2
+ import { SessionKey } from '../../__types__/base.mjs';
3
+ import { parseSession } from '../../utils.mjs';
4
+ import { TurnkeyError, TurnkeyErrorCodes } from '@turnkey/sdk-types';
5
+
6
+ const browserStorage = WindowWrapper.localStorage;
7
+ class WebStorageManager {
8
+ constructor() {
9
+ this.getStorageValue = async (sessionKey) => {
10
+ const item = browserStorage.getItem(sessionKey);
11
+ return item ? JSON.parse(item) : undefined;
12
+ };
13
+ this.setStorageValue = async (sessionKey, storageValue) => {
14
+ if (storageValue === undefined) {
15
+ throw new TurnkeyError("Session value cannot be undefined", TurnkeyErrorCodes.STORE_SESSION_ERROR);
16
+ }
17
+ browserStorage.setItem(sessionKey, JSON.stringify(storageValue));
18
+ };
19
+ this.setActiveSessionKey = async (sessionKey) => {
20
+ await this.setStorageValue(WebStorageManager.ACTIVE_SESSION_KEY, sessionKey);
21
+ };
22
+ this.removeStorageValue = async (sessionKey) => {
23
+ browserStorage.removeItem(sessionKey);
24
+ };
25
+ this.storeSession = async (session, sessionKey = SessionKey.DefaultSessionkey) => {
26
+ const sessionWithMetadata = parseSession(session);
27
+ await this.setStorageValue(sessionKey, sessionWithMetadata);
28
+ // Ensure the session key is stored in the session keys list
29
+ const keys = (await this.getStorageValue(WebStorageManager.ALL_SESSION_KEYS)) ?? [];
30
+ if (!keys.includes(sessionKey)) {
31
+ keys.push(sessionKey);
32
+ await this.setStorageValue(WebStorageManager.ALL_SESSION_KEYS, keys);
33
+ }
34
+ // Set the active session key
35
+ await this.setStorageValue(WebStorageManager.ACTIVE_SESSION_KEY, sessionKey);
36
+ };
37
+ this.getSession = async (sessionKey = SessionKey.DefaultSessionkey) => {
38
+ return this.getStorageValue(sessionKey);
39
+ };
40
+ this.getActiveSessionKey = async () => {
41
+ return this.getStorageValue(WebStorageManager.ACTIVE_SESSION_KEY);
42
+ };
43
+ this.getActiveSession = async () => {
44
+ const key = await this.getActiveSessionKey();
45
+ return key ? this.getSession(key) : undefined;
46
+ };
47
+ this.listSessionKeys = async () => {
48
+ return ((await this.getStorageValue(WebStorageManager.ALL_SESSION_KEYS)) ?? []);
49
+ };
50
+ this.clearSession = async (sessionKey) => {
51
+ await this.removeStorageValue(sessionKey);
52
+ const keys = await this.listSessionKeys();
53
+ const updated = keys.filter((k) => k !== sessionKey);
54
+ await this.setStorageValue(WebStorageManager.ALL_SESSION_KEYS, updated);
55
+ const active = await this.getActiveSessionKey();
56
+ if (active === sessionKey) {
57
+ await this.removeStorageValue(WebStorageManager.ACTIVE_SESSION_KEY);
58
+ }
59
+ };
60
+ this.clearAllSessions = async () => {
61
+ const keys = await this.listSessionKeys();
62
+ await Promise.all(keys.map((k) => this.removeStorageValue(k)));
63
+ await this.removeStorageValue(WebStorageManager.ALL_SESSION_KEYS);
64
+ await this.removeStorageValue(WebStorageManager.ACTIVE_SESSION_KEY);
65
+ };
66
+ this.storeWallets = async (wallets) => {
67
+ for (const wallet of wallets) {
68
+ browserStorage.setItem(wallet.walletId, JSON.stringify(wallet));
69
+ }
70
+ };
71
+ }
72
+ }
73
+ WebStorageManager.ALL_SESSION_KEYS = "@turnkey/all-session-keys";
74
+ WebStorageManager.ACTIVE_SESSION_KEY = "@turnkey/active-session-key";
75
+
76
+ export { WebStorageManager };
77
+ //# sourceMappingURL=storage.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.mjs","sources":["../../../src/__storage__/web/storage.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -0,0 +1,407 @@
1
+ import type { TActivityId, TActivityStatus } from "@turnkey/http";
2
+ import type { EIP1193Provider as EthereumProvider } from "viem";
3
+ import type { Wallet as SolanaProvider } from "@wallet-standard/base";
4
+ import type { SessionType, v1ApiKeyCurve, v1Attestation, v1OauthProviderParams, v1User, v1Wallet, v1WalletAccount, v1WalletAccountParams, Session } from "@turnkey/sdk-types";
5
+ import type { CrossPlatformWalletStamper } from "../__wallet__/stamper";
6
+ import type { CrossPlatformWalletConnector } from "../__wallet__/connector";
7
+ export declare const DEFAULT_SESSION_EXPIRATION_IN_SECONDS = "900";
8
+ export type GrpcStatus = {
9
+ message: string;
10
+ code: number;
11
+ details: unknown[] | null;
12
+ };
13
+ export declare enum MethodType {
14
+ Get = 0,
15
+ List = 1,
16
+ Command = 2
17
+ }
18
+ export type TStamp = {
19
+ stampHeaderName: string;
20
+ stampHeaderValue: string;
21
+ };
22
+ export interface TStamper {
23
+ stamp: (input: string) => Promise<TStamp>;
24
+ }
25
+ export type THttpConfig = {
26
+ baseUrl: string;
27
+ };
28
+ export declare class TurnkeyRequestError extends Error {
29
+ details: any[] | null;
30
+ code: number;
31
+ constructor(input: GrpcStatus);
32
+ }
33
+ export interface ActivityResponse {
34
+ activity: {
35
+ id: TActivityId;
36
+ status: TActivityStatus;
37
+ result: Record<string, any>;
38
+ };
39
+ }
40
+ export interface ActivityMetadata {
41
+ activity: {
42
+ id: TActivityId;
43
+ status: TActivityStatus;
44
+ };
45
+ }
46
+ export type TActivityPollerConfig = {
47
+ intervalMs: number;
48
+ numRetries: number;
49
+ };
50
+ export interface SubOrganization {
51
+ organizationId: string;
52
+ organizationName: string;
53
+ }
54
+ export type EmbeddedAPIKey = {
55
+ authBundle: string;
56
+ publicKey: string;
57
+ };
58
+ export type Passkey = {
59
+ encodedChallenge: string;
60
+ attestation: {
61
+ credentialId: string;
62
+ clientDataJson: string;
63
+ attestationObject: string;
64
+ transports: ("AUTHENTICATOR_TRANSPORT_BLE" | "AUTHENTICATOR_TRANSPORT_INTERNAL" | "AUTHENTICATOR_TRANSPORT_NFC" | "AUTHENTICATOR_TRANSPORT_USB" | "AUTHENTICATOR_TRANSPORT_HYBRID")[];
65
+ };
66
+ };
67
+ export interface TurnkeyHttpClientConfig {
68
+ apiBaseUrl: string;
69
+ organizationId: string;
70
+ authProxyUrl?: string | undefined;
71
+ authProxyConfigId?: string | undefined;
72
+ activityPoller?: TActivityPollerConfig | undefined;
73
+ apiKeyStamper?: TStamper | undefined;
74
+ passkeyStamper?: TStamper | undefined;
75
+ walletStamper?: TStamper | undefined;
76
+ storageManager?: StorageBase | undefined;
77
+ readOnlySession?: string | undefined;
78
+ }
79
+ export interface TurnkeySDKClientConfig {
80
+ apiBaseUrl?: string | undefined;
81
+ authProxyUrl?: string | undefined;
82
+ authProxyConfigId?: string | undefined;
83
+ organizationId: string;
84
+ passkeyConfig?: TPasskeyStamperConfig;
85
+ walletConfig?: TWalletManagerConfig;
86
+ }
87
+ export type queryOverrideParams = {
88
+ organizationId?: string;
89
+ };
90
+ export type commandOverrideParams = {
91
+ organizationId?: string;
92
+ timestampMs?: string;
93
+ };
94
+ export interface IframeClientParams {
95
+ iframeContainer: HTMLElement | null | undefined;
96
+ iframeUrl: string;
97
+ iframeElementId?: string;
98
+ dangerouslyOverrideIframeKeyTtl?: number;
99
+ }
100
+ export interface PasskeyClientParams {
101
+ rpId?: string;
102
+ timeout?: number;
103
+ userVerification?: UserVerificationRequirement;
104
+ allowCredentials?: PublicKeyCredentialDescriptor[];
105
+ }
106
+ export interface RefreshSessionParams {
107
+ sessionType: SessionType;
108
+ expirationSeconds?: string | undefined;
109
+ publicKey?: string;
110
+ }
111
+ export interface LoginWithBundleParams {
112
+ bundle: string;
113
+ expirationSeconds?: string;
114
+ }
115
+ export interface LoginWithWalletParams {
116
+ sessionType: SessionType;
117
+ expirationSeconds?: string | undefined;
118
+ publicKey?: string;
119
+ }
120
+ export type User = v1User;
121
+ export type ExportBundle = string;
122
+ export declare enum Curve {
123
+ SECP256K1 = "CURVE_SECP256K1",
124
+ ED25519 = "CURVE_ED25519"
125
+ }
126
+ export declare enum WalletSource {
127
+ Embedded = "embedded",
128
+ Connected = "connected"
129
+ }
130
+ export interface EmbeddedWalletAccount extends v1WalletAccount {
131
+ source: WalletSource.Embedded;
132
+ }
133
+ export interface ConnectedWalletAccount extends v1WalletAccount {
134
+ source: WalletSource.Connected;
135
+ signMessage: (message: string) => Promise<string>;
136
+ signTransaction?: (unsignedTransaction: string) => Promise<string>;
137
+ signAndSendTransaction?: (unsignedTransaction: string) => Promise<string>;
138
+ }
139
+ export type WalletAccount = EmbeddedWalletAccount | ConnectedWalletAccount;
140
+ export interface EmbeddedWallet extends v1Wallet {
141
+ source: WalletSource.Embedded;
142
+ accounts: WalletAccount[];
143
+ }
144
+ export interface ConnectedWallet extends v1Wallet {
145
+ source: WalletSource.Connected;
146
+ accounts: WalletAccount[];
147
+ }
148
+ export type Wallet = EmbeddedWallet | ConnectedWallet;
149
+ export type WalletAccountParams = v1WalletAccountParams;
150
+ export type Provider = {
151
+ providerName: string;
152
+ oidcToken: string;
153
+ };
154
+ export type CreateSuborgResponse = {
155
+ subOrganizationId: string;
156
+ };
157
+ export type CreateSubOrgParams = {
158
+ userName?: string | undefined;
159
+ subOrgName?: string | undefined;
160
+ userEmail?: string | undefined;
161
+ userTag?: string | undefined;
162
+ authenticators?: {
163
+ authenticatorName: string;
164
+ challenge: string;
165
+ attestation: v1Attestation;
166
+ }[];
167
+ userPhoneNumber?: string | undefined;
168
+ verificationToken?: string | undefined;
169
+ apiKeys?: {
170
+ apiKeyName?: string | undefined;
171
+ publicKey: string;
172
+ expirationSeconds?: string | undefined;
173
+ curveType?: v1ApiKeyCurve | undefined;
174
+ }[];
175
+ customWallet?: {
176
+ walletName: string;
177
+ walletAccounts: v1WalletAccountParams[];
178
+ } | undefined;
179
+ oauthProviders?: Provider[] | undefined;
180
+ };
181
+ export type SignUpBody = {
182
+ userName: string;
183
+ subOrgName: string;
184
+ userEmail?: string | undefined;
185
+ userTag?: string | undefined;
186
+ authenticators?: {
187
+ authenticatorName: string;
188
+ challenge: string;
189
+ attestation: v1Attestation;
190
+ }[];
191
+ userPhoneNumber?: string | undefined;
192
+ verificationToken?: string | undefined;
193
+ apiKeys?: {
194
+ apiKeyName: string;
195
+ publicKey: string;
196
+ expirationSeconds: string;
197
+ curveType?: v1ApiKeyCurve | undefined;
198
+ }[];
199
+ customWallet?: {
200
+ walletName: string;
201
+ walletAccounts: WalletAccountParams[];
202
+ } | undefined;
203
+ oauthProviders?: v1OauthProviderParams[] | undefined;
204
+ };
205
+ /**
206
+ * The Client used to authenticate the user.
207
+ */
208
+ export declare enum AuthClient {
209
+ Passkey = "passkey",
210
+ Wallet = "wallet",
211
+ IndexedDb = "indexed-db"
212
+ }
213
+ export declare enum StamperType {
214
+ ApiKey = "api-key",
215
+ Passkey = "passkey",
216
+ Wallet = "wallet"
217
+ }
218
+ export declare enum OtpType {
219
+ Email = "OTP_TYPE_EMAIL",
220
+ Sms = "OTP_TYPE_SMS"
221
+ }
222
+ export declare enum FilterType {
223
+ Email = "EMAIL",
224
+ Sms = "PHONE_NUMBER",
225
+ OidcToken = "OIDC_TOKEN",
226
+ PublicKey = "PUBLIC_KEY"
227
+ }
228
+ export declare const OtpTypeToFilterTypeMap: {
229
+ OTP_TYPE_EMAIL: FilterType;
230
+ OTP_TYPE_SMS: FilterType;
231
+ };
232
+ export declare enum SessionKey {
233
+ DefaultSessionkey = "@turnkey/session/v3"
234
+ }
235
+ export interface StorageBase {
236
+ getStorageValue(sessionKey: string): Promise<any>;
237
+ setStorageValue(sessionKey: string, storageValue: any): Promise<void>;
238
+ setActiveSessionKey(sessionKey: string): Promise<void>;
239
+ removeStorageValue(sessionKey: string): Promise<void>;
240
+ storeSession(session: string, sessionKey?: string): Promise<void>;
241
+ getSession(sessionKey?: string): Promise<Session | undefined>;
242
+ getActiveSessionKey(): Promise<string | undefined>;
243
+ getActiveSession(): Promise<Session | undefined>;
244
+ listSessionKeys(): Promise<string[]>;
245
+ clearSession(sessionKey: string): Promise<void>;
246
+ clearAllSessions(): Promise<void>;
247
+ }
248
+ export interface WalletManagerBase {
249
+ getProviders: (chain?: Chain) => Promise<WalletProvider[]>;
250
+ stamper?: CrossPlatformWalletStamper;
251
+ connector?: CrossPlatformWalletConnector;
252
+ }
253
+ export type TPasskeyStamperConfig = {
254
+ rpId?: string | undefined;
255
+ timeout?: number;
256
+ userVerification?: UserVerificationRequirement;
257
+ allowCredentials?: PublicKeyCredentialDescriptor[];
258
+ rpName?: string;
259
+ withSecurityKey?: boolean;
260
+ withPlatformKey?: boolean;
261
+ extensions?: Record<string, unknown>;
262
+ };
263
+ type EvmNamespace = `eip155:${string}`;
264
+ type SolNamespace = `solana:${string}`;
265
+ export type TWalletManagerConfig = {
266
+ features?: {
267
+ auth?: boolean;
268
+ connecting?: boolean;
269
+ };
270
+ chains: {
271
+ ethereum?: {
272
+ native?: boolean;
273
+ walletConnectNamespaces?: EvmNamespace[];
274
+ };
275
+ solana?: {
276
+ native?: boolean;
277
+ walletConnectNamespaces?: SolNamespace[];
278
+ };
279
+ };
280
+ walletConnect?: {
281
+ projectId: string;
282
+ appMetadata: {
283
+ name: string;
284
+ description: string;
285
+ url: string;
286
+ icons: string[];
287
+ };
288
+ };
289
+ };
290
+ export interface ApiKeyStamperBase {
291
+ listKeyPairs(): Promise<string[]>;
292
+ createKeyPair(externalKeyPair?: CryptoKeyPair | {
293
+ publicKey: string;
294
+ privateKey: string;
295
+ }): Promise<string>;
296
+ deleteKeyPair(publicKeyHex: string): Promise<void>;
297
+ clearKeyPairs(): Promise<void>;
298
+ stamp(payload: string, publicKeyHex: string): Promise<TStamp>;
299
+ }
300
+ export interface WalletProviderInfo {
301
+ name: string;
302
+ uuid?: string;
303
+ icon?: string;
304
+ rdns?: string;
305
+ }
306
+ export declare enum Chain {
307
+ Ethereum = "ethereum",
308
+ Solana = "solana"
309
+ }
310
+ export type SwitchableChain = {
311
+ id: string;
312
+ name: string;
313
+ rpcUrls: string[];
314
+ blockExplorerUrls?: string[];
315
+ iconUrls?: string[];
316
+ nativeCurrency: {
317
+ name: string;
318
+ symbol: string;
319
+ decimals: number;
320
+ };
321
+ };
322
+ export type EvmChainInfo = {
323
+ namespace: Chain.Ethereum;
324
+ chainId: string;
325
+ };
326
+ export type SolanaChainInfo = {
327
+ namespace: Chain.Solana;
328
+ };
329
+ export type ChainInfo = EvmChainInfo | SolanaChainInfo;
330
+ export interface WalletConnectProvider {
331
+ request(args: {
332
+ method: string;
333
+ params?: any[];
334
+ }): Promise<unknown>;
335
+ }
336
+ export type WalletRpcProvider = EthereumProvider | SolanaProvider | WalletConnectProvider;
337
+ export interface WalletProvider {
338
+ interfaceType: WalletInterfaceType;
339
+ chainInfo: ChainInfo;
340
+ info: WalletProviderInfo;
341
+ provider: WalletRpcProvider;
342
+ connectedAddresses: string[];
343
+ uri?: string;
344
+ }
345
+ export declare enum SignIntent {
346
+ SignMessage = "sign_message",
347
+ SignTransaction = "sign_transaction",
348
+ SignAndSendTransaction = "sign_and_send"
349
+ }
350
+ export declare enum WalletInterfaceType {
351
+ Solana = "solana",
352
+ Ethereum = "ethereum",
353
+ WalletConnect = "wallet_connect"
354
+ }
355
+ /**
356
+ * Base interface for wallet functionalities common across different blockchain chains.
357
+ * @interface BaseWalletInterface
358
+ * @property {function(string): Promise<string>} signMessage - Signs a message and returns the hex signature as a string.
359
+ * @property {function(): Promise<string>} getPublicKey - Retrieves the public key as a string.
360
+ */
361
+ export interface BaseWalletInterface {
362
+ interfaceType: WalletInterfaceType;
363
+ sign: (message: string, provider: WalletProvider, intent: SignIntent) => Promise<string>;
364
+ getPublicKey: (provider: WalletProvider) => Promise<string>;
365
+ getProviders: () => Promise<WalletProvider[]>;
366
+ connectWalletAccount: (provider: WalletProvider) => Promise<void>;
367
+ disconnectWalletAccount: (provider: WalletProvider) => Promise<void>;
368
+ switchChain?: (provider: WalletProvider, chainOrId: string | SwitchableChain) => Promise<void>;
369
+ }
370
+ /**
371
+ * Solana wallets can directly access the public key without needing a signed message.
372
+ * @interface SolanaWalletInterface
373
+ * @extends BaseWalletInterface
374
+ * @property {function(): string} getPublicKey - Returns the public key, which is the ED25519 hex encoded public key from your Solana wallet public key.
375
+ * @property {'solana'} type - The type of the wallet.
376
+ */
377
+ export interface SolanaWalletInterface extends BaseWalletInterface {
378
+ interfaceType: WalletInterfaceType.Solana;
379
+ }
380
+ /**
381
+ * Ethereum wallets require a signed message to derive the public key.
382
+ *
383
+ * @remarks This is the SECP256K1 public key of the Ethereum wallet, not the address.
384
+ * This requires that the wallet signs a message in order to derive the public key.
385
+ *
386
+ * @interface EthereumWalletInterface
387
+ * @extends BaseWalletInterface
388
+ * @property {function(): Promise<string>} getPublicKey - Returns the public key, which is the SECP256K1 hex encoded public key from your Ethereum wallet.
389
+ * @property {'ethereum'} type - The type of the wallet.
390
+ */
391
+ export interface EthereumWalletInterface extends BaseWalletInterface {
392
+ interfaceType: WalletInterfaceType.Ethereum;
393
+ }
394
+ export interface WalletConnectInterface extends BaseWalletInterface {
395
+ interfaceType: WalletInterfaceType.WalletConnect;
396
+ init: (opts: {
397
+ ethereumNamespaces: string[];
398
+ solanaNamespaces: string[];
399
+ }) => Promise<void>;
400
+ }
401
+ /**
402
+ * Union type for wallet interfaces, supporting both Solana and Ethereum wallets.
403
+ * @typedef {SolanaWalletInterface | EthereumWalletInterface} WalletInterface
404
+ */
405
+ export type WalletInterface = SolanaWalletInterface | EthereumWalletInterface | WalletConnectInterface;
406
+ export {};
407
+ //# sourceMappingURL=base.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/__types__/base.ts"],"names":[],"mappings":"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"}