accounts 0.12.2 → 0.13.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.
- package/CHANGELOG.md +23 -0
- package/README.md +6 -5
- package/dist/cli/adapter.d.ts.map +1 -1
- package/dist/cli/adapter.js +53 -67
- package/dist/cli/adapter.js.map +1 -1
- package/dist/core/AccessKey.d.ts +89 -106
- package/dist/core/AccessKey.d.ts.map +1 -1
- package/dist/core/AccessKey.js +226 -210
- package/dist/core/AccessKey.js.map +1 -1
- package/dist/core/Account.d.ts +0 -9
- package/dist/core/Account.d.ts.map +1 -1
- package/dist/core/Account.js +1 -13
- package/dist/core/Account.js.map +1 -1
- package/dist/core/Adapter.d.ts +10 -2
- package/dist/core/Adapter.d.ts.map +1 -1
- package/dist/core/Provider.d.ts +4 -5
- package/dist/core/Provider.d.ts.map +1 -1
- package/dist/core/Provider.js +66 -76
- package/dist/core/Provider.js.map +1 -1
- package/dist/core/Schema.d.ts +7 -7
- package/dist/core/adapters/dialog.d.ts.map +1 -1
- package/dist/core/adapters/dialog.js +114 -124
- package/dist/core/adapters/dialog.js.map +1 -1
- package/dist/core/adapters/local.d.ts.map +1 -1
- package/dist/core/adapters/local.js +92 -105
- package/dist/core/adapters/local.js.map +1 -1
- package/dist/core/adapters/privy.d.ts +164 -0
- package/dist/core/adapters/privy.d.ts.map +1 -0
- package/dist/core/adapters/privy.js +574 -0
- package/dist/core/adapters/privy.js.map +1 -0
- package/dist/core/adapters/turnkey.d.ts.map +1 -1
- package/dist/core/adapters/turnkey.js +136 -133
- package/dist/core/adapters/turnkey.js.map +1 -1
- package/dist/core/internal/AccessKeyTransaction.d.ts +59 -0
- package/dist/core/internal/AccessKeyTransaction.d.ts.map +1 -0
- package/dist/core/internal/AccessKeyTransaction.js +155 -0
- package/dist/core/internal/AccessKeyTransaction.js.map +1 -0
- package/dist/core/zod/rpc.d.ts +9 -4
- package/dist/core/zod/rpc.d.ts.map +1 -1
- package/dist/core/zod/rpc.js +9 -4
- package/dist/core/zod/rpc.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/react-native/adapter.d.ts.map +1 -1
- package/dist/react-native/adapter.js +61 -72
- package/dist/react-native/adapter.js.map +1 -1
- package/dist/server/Kv.d.ts +19 -9
- package/dist/server/Kv.d.ts.map +1 -1
- package/dist/server/Kv.js +32 -9
- package/dist/server/Kv.js.map +1 -1
- package/dist/server/internal/handlers/auth.d.ts.map +1 -1
- package/dist/server/internal/handlers/auth.js +2 -0
- package/dist/server/internal/handlers/auth.js.map +1 -1
- package/dist/server/internal/handlers/relay.d.ts +18 -12
- package/dist/server/internal/handlers/relay.d.ts.map +1 -1
- package/dist/server/internal/handlers/relay.js +115 -2
- package/dist/server/internal/handlers/relay.js.map +1 -1
- package/dist/server/internal/handlers/webAuthn.d.ts +6 -1
- package/dist/server/internal/handlers/webAuthn.d.ts.map +1 -1
- package/dist/server/internal/handlers/webAuthn.js +16 -9
- package/dist/server/internal/handlers/webAuthn.js.map +1 -1
- package/package.json +2 -2
- package/src/cli/adapter.ts +69 -74
- package/src/core/AccessKey.test.ts +525 -559
- package/src/core/AccessKey.ts +323 -327
- package/src/core/Account.test.ts +5 -50
- package/src/core/Account.ts +1 -19
- package/src/core/Adapter.ts +6 -2
- package/src/core/{Provider.test.ts → Provider.localnet.test.ts} +97 -31
- package/src/core/Provider.ts +110 -110
- package/src/core/Schema.test-d.ts +18 -0
- package/src/core/adapters/dialog.test.ts +137 -13
- package/src/core/adapters/dialog.ts +109 -121
- package/src/core/adapters/local.ts +95 -119
- package/src/core/adapters/privy.test-d.ts +128 -0
- package/src/core/adapters/privy.test.ts +634 -0
- package/src/core/adapters/privy.ts +805 -0
- package/src/core/adapters/turnkey.test.ts +117 -13
- package/src/core/adapters/turnkey.ts +132 -149
- package/src/core/internal/AccessKeyTransaction.ts +243 -0
- package/src/core/{mppx.test.ts → mppx.localnet.test.ts} +32 -2
- package/src/core/zod/request.test.ts +36 -0
- package/src/core/zod/rpc.ts +17 -10
- package/src/index.ts +1 -1
- package/src/react-native/adapter.ts +77 -84
- package/src/server/Kv.test.ts +51 -0
- package/src/server/Kv.ts +43 -9
- package/src/server/internal/handlers/auth.test.ts +10 -5
- package/src/server/internal/handlers/auth.ts +3 -0
- package/src/server/internal/handlers/{relay.test.ts → relay.localnet.test.ts} +3 -0
- package/src/server/internal/handlers/relay.ts +138 -13
- package/src/server/internal/handlers/session.test.ts +1 -1
- package/src/server/internal/handlers/webAuthn.test.ts +20 -0
- package/src/server/internal/handlers/webAuthn.ts +24 -12
- /package/src/cli/{Provider.test.ts → Provider.localnet.test.ts} +0 -0
- /package/src/react-native/{Provider.test.ts → Provider.localnet.test.ts} +0 -0
- /package/src/server/internal/handlers/{exchange.test.ts → exchange.localnet.test.ts} +0 -0
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import { describe, expectTypeOf, test } from 'vp/test'
|
|
2
|
+
|
|
3
|
+
import * as Adapter from '../Adapter.js'
|
|
4
|
+
import { privy } from './privy.js'
|
|
5
|
+
|
|
6
|
+
describe('privy', () => {
|
|
7
|
+
test('accepts a structural Privy client matching `@privy-io/js-sdk-core`', () => {
|
|
8
|
+
expectTypeOf<privy.Client>().toEqualTypeOf<{
|
|
9
|
+
auth: {
|
|
10
|
+
logout: (parameters?: { userId: string } | undefined) => Promise<void> | void
|
|
11
|
+
}
|
|
12
|
+
embeddedWallet: {
|
|
13
|
+
getEthereumProvider: (parameters: {
|
|
14
|
+
wallet: privy.LinkedAccount
|
|
15
|
+
entropyId: string
|
|
16
|
+
entropyIdVerifier: string
|
|
17
|
+
}) => Promise<privy.EthereumProvider> | privy.EthereumProvider
|
|
18
|
+
}
|
|
19
|
+
getAccessToken: () => Promise<string | null>
|
|
20
|
+
initialize?: (() => Promise<void> | void) | undefined
|
|
21
|
+
user: {
|
|
22
|
+
get: () => Promise<{ user: privy.User }>
|
|
23
|
+
}
|
|
24
|
+
}>()
|
|
25
|
+
})
|
|
26
|
+
|
|
27
|
+
test('accepts a wider client with extra fields', () => {
|
|
28
|
+
expectTypeOf<{
|
|
29
|
+
auth: {
|
|
30
|
+
logout: () => Promise<void>
|
|
31
|
+
login: () => Promise<void>
|
|
32
|
+
}
|
|
33
|
+
embeddedWallet: {
|
|
34
|
+
getEthereumProvider: (parameters: {
|
|
35
|
+
wallet: privy.LinkedAccount
|
|
36
|
+
entropyId: string
|
|
37
|
+
entropyIdVerifier: string
|
|
38
|
+
}) => Promise<privy.EthereumProvider>
|
|
39
|
+
}
|
|
40
|
+
getAccessToken: () => Promise<string | null>
|
|
41
|
+
initialize: () => Promise<void>
|
|
42
|
+
user: {
|
|
43
|
+
get: () => Promise<{ user: privy.User }>
|
|
44
|
+
}
|
|
45
|
+
// Extra app-specific fields are fine.
|
|
46
|
+
privyVersion: string
|
|
47
|
+
}>().toMatchTypeOf<privy.Client>()
|
|
48
|
+
})
|
|
49
|
+
|
|
50
|
+
test('ethereum provider shape exposes EIP-1193 request', () => {
|
|
51
|
+
expectTypeOf<privy.EthereumProvider>().toMatchTypeOf<{
|
|
52
|
+
request(parameters: {
|
|
53
|
+
method: string
|
|
54
|
+
params?: readonly unknown[] | undefined
|
|
55
|
+
}): Promise<unknown>
|
|
56
|
+
}>()
|
|
57
|
+
})
|
|
58
|
+
|
|
59
|
+
test('embedded wallet shape requires address and EIP-1193 provider', () => {
|
|
60
|
+
expectTypeOf<privy.EmbeddedWallet>().toEqualTypeOf<{
|
|
61
|
+
address: string
|
|
62
|
+
provider: privy.EthereumProvider
|
|
63
|
+
}>()
|
|
64
|
+
})
|
|
65
|
+
|
|
66
|
+
test('options require client and loadAccounts; createAccount is optional', () => {
|
|
67
|
+
expectTypeOf<privy.Options>().toMatchTypeOf<{
|
|
68
|
+
client: privy.Client
|
|
69
|
+
createAccount?:
|
|
70
|
+
| ((parameters: {
|
|
71
|
+
client: privy.Client
|
|
72
|
+
parameters: Adapter.createAccount.Parameters
|
|
73
|
+
}) => Promise<privy.AccountSelection>)
|
|
74
|
+
| undefined
|
|
75
|
+
loadAccounts: (parameters: {
|
|
76
|
+
client: privy.Client
|
|
77
|
+
parameters?: Adapter.loadAccounts.Parameters | undefined
|
|
78
|
+
}) => Promise<privy.AccountSelection>
|
|
79
|
+
}>()
|
|
80
|
+
})
|
|
81
|
+
|
|
82
|
+
test('privy() returns an Adapter', () => {
|
|
83
|
+
expectTypeOf(privy).returns.toEqualTypeOf<Adapter.Adapter>()
|
|
84
|
+
})
|
|
85
|
+
|
|
86
|
+
test('callbacks receive a Privy client and adapter parameters', () => {
|
|
87
|
+
privy({
|
|
88
|
+
client: {
|
|
89
|
+
auth: { logout: async () => {} },
|
|
90
|
+
embeddedWallet: {
|
|
91
|
+
getEthereumProvider: async () => ({ request: async () => '0x0' }),
|
|
92
|
+
},
|
|
93
|
+
getAccessToken: async () => null,
|
|
94
|
+
user: { get: async () => ({ user: { id: 'u' } }) },
|
|
95
|
+
},
|
|
96
|
+
createAccount: async ({ client, parameters }) => {
|
|
97
|
+
expectTypeOf(client).toMatchTypeOf<privy.Client>()
|
|
98
|
+
expectTypeOf(parameters).toEqualTypeOf<Adapter.createAccount.Parameters>()
|
|
99
|
+
},
|
|
100
|
+
loadAccounts: async ({ client, parameters }) => {
|
|
101
|
+
expectTypeOf(client).toMatchTypeOf<privy.Client>()
|
|
102
|
+
expectTypeOf(parameters).toEqualTypeOf<Adapter.loadAccounts.Parameters | undefined>()
|
|
103
|
+
},
|
|
104
|
+
})
|
|
105
|
+
})
|
|
106
|
+
|
|
107
|
+
test('callbacks preserve the concrete client type', () => {
|
|
108
|
+
const client = {
|
|
109
|
+
auth: { logout: async () => {} },
|
|
110
|
+
embeddedWallet: {
|
|
111
|
+
getEthereumProvider: async () => ({ request: async () => '0x0' }),
|
|
112
|
+
},
|
|
113
|
+
getAccessToken: async () => null,
|
|
114
|
+
user: { get: async () => ({ user: { id: 'u' } }) },
|
|
115
|
+
// App-specific extras must remain visible to callbacks.
|
|
116
|
+
raw: { delegateWallets: async () => 'delegated' as const },
|
|
117
|
+
}
|
|
118
|
+
privy({
|
|
119
|
+
client,
|
|
120
|
+
createAccount: async ({ client }) => {
|
|
121
|
+
expectTypeOf(client.raw.delegateWallets).toEqualTypeOf<() => Promise<'delegated'>>()
|
|
122
|
+
},
|
|
123
|
+
loadAccounts: async ({ client }) => {
|
|
124
|
+
expectTypeOf(client.raw.delegateWallets).toEqualTypeOf<() => Promise<'delegated'>>()
|
|
125
|
+
},
|
|
126
|
+
})
|
|
127
|
+
})
|
|
128
|
+
})
|