accounts 0.12.2 → 0.14.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 (128) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/README.md +6 -5
  3. package/dist/cli/adapter.d.ts.map +1 -1
  4. package/dist/cli/adapter.js +76 -69
  5. package/dist/cli/adapter.js.map +1 -1
  6. package/dist/core/AccessKey.d.ts +89 -106
  7. package/dist/core/AccessKey.d.ts.map +1 -1
  8. package/dist/core/AccessKey.js +230 -210
  9. package/dist/core/AccessKey.js.map +1 -1
  10. package/dist/core/Account.d.ts +0 -9
  11. package/dist/core/Account.d.ts.map +1 -1
  12. package/dist/core/Account.js +1 -13
  13. package/dist/core/Account.js.map +1 -1
  14. package/dist/core/Adapter.d.ts +24 -4
  15. package/dist/core/Adapter.d.ts.map +1 -1
  16. package/dist/core/Client.d.ts +1 -1
  17. package/dist/core/Client.d.ts.map +1 -1
  18. package/dist/core/Client.js.map +1 -1
  19. package/dist/core/Provider.d.ts +6 -7
  20. package/dist/core/Provider.d.ts.map +1 -1
  21. package/dist/core/Provider.js +73 -77
  22. package/dist/core/Provider.js.map +1 -1
  23. package/dist/core/Remote.d.ts +2 -0
  24. package/dist/core/Remote.d.ts.map +1 -1
  25. package/dist/core/Remote.js +3 -1
  26. package/dist/core/Remote.js.map +1 -1
  27. package/dist/core/Schema.d.ts +17 -7
  28. package/dist/core/Schema.d.ts.map +1 -1
  29. package/dist/core/adapters/dialog.d.ts.map +1 -1
  30. package/dist/core/adapters/dialog.js +126 -131
  31. package/dist/core/adapters/dialog.js.map +1 -1
  32. package/dist/core/adapters/local.d.ts.map +1 -1
  33. package/dist/core/adapters/local.js +92 -105
  34. package/dist/core/adapters/local.js.map +1 -1
  35. package/dist/core/adapters/privy.d.ts +164 -0
  36. package/dist/core/adapters/privy.d.ts.map +1 -0
  37. package/dist/core/adapters/privy.js +578 -0
  38. package/dist/core/adapters/privy.js.map +1 -0
  39. package/dist/core/adapters/turnkey.d.ts.map +1 -1
  40. package/dist/core/adapters/turnkey.js +136 -133
  41. package/dist/core/adapters/turnkey.js.map +1 -1
  42. package/dist/core/internal/AccessKeyTransaction.d.ts +59 -0
  43. package/dist/core/internal/AccessKeyTransaction.d.ts.map +1 -0
  44. package/dist/core/internal/AccessKeyTransaction.js +155 -0
  45. package/dist/core/internal/AccessKeyTransaction.js.map +1 -0
  46. package/dist/core/zod/rpc.d.ts +71 -4
  47. package/dist/core/zod/rpc.d.ts.map +1 -1
  48. package/dist/core/zod/rpc.js +33 -4
  49. package/dist/core/zod/rpc.js.map +1 -1
  50. package/dist/index.d.ts +1 -1
  51. package/dist/index.d.ts.map +1 -1
  52. package/dist/index.js +1 -1
  53. package/dist/index.js.map +1 -1
  54. package/dist/react-native/adapter.d.ts.map +1 -1
  55. package/dist/react-native/adapter.js +86 -75
  56. package/dist/react-native/adapter.js.map +1 -1
  57. package/dist/server/CliAuth.d.ts +55 -0
  58. package/dist/server/CliAuth.d.ts.map +1 -1
  59. package/dist/server/CliAuth.js +18 -1
  60. package/dist/server/CliAuth.js.map +1 -1
  61. package/dist/server/Kv.d.ts +19 -9
  62. package/dist/server/Kv.d.ts.map +1 -1
  63. package/dist/server/Kv.js +32 -9
  64. package/dist/server/Kv.js.map +1 -1
  65. package/dist/server/internal/handlers/auth.d.ts.map +1 -1
  66. package/dist/server/internal/handlers/auth.js +3 -1
  67. package/dist/server/internal/handlers/auth.js.map +1 -1
  68. package/dist/server/internal/handlers/codeAuth.js +1 -1
  69. package/dist/server/internal/handlers/codeAuth.js.map +1 -1
  70. package/dist/server/internal/handlers/exchange.js +1 -1
  71. package/dist/server/internal/handlers/exchange.js.map +1 -1
  72. package/dist/server/internal/handlers/relay.d.ts +18 -12
  73. package/dist/server/internal/handlers/relay.d.ts.map +1 -1
  74. package/dist/server/internal/handlers/relay.js +116 -3
  75. package/dist/server/internal/handlers/relay.js.map +1 -1
  76. package/dist/server/internal/handlers/webAuthn.d.ts +6 -1
  77. package/dist/server/internal/handlers/webAuthn.d.ts.map +1 -1
  78. package/dist/server/internal/handlers/webAuthn.js +16 -9
  79. package/dist/server/internal/handlers/webAuthn.js.map +1 -1
  80. package/package.json +3 -3
  81. package/src/cli/{Provider.test.ts → Provider.localnet.test.ts} +49 -1
  82. package/src/cli/adapter.ts +95 -76
  83. package/src/core/AccessKey.test.ts +563 -560
  84. package/src/core/AccessKey.ts +327 -327
  85. package/src/core/Account.test.ts +6 -51
  86. package/src/core/Account.ts +1 -19
  87. package/src/core/Adapter.ts +22 -4
  88. package/src/core/Client.test.ts +1 -1
  89. package/src/core/Client.ts +1 -1
  90. package/src/core/Provider.connect.browser.test.ts +1 -1
  91. package/src/core/{Provider.test.ts → Provider.localnet.test.ts} +98 -32
  92. package/src/core/Provider.ts +118 -112
  93. package/src/core/Remote.test.ts +28 -0
  94. package/src/core/Remote.ts +4 -1
  95. package/src/core/Schema.test-d.ts +41 -0
  96. package/src/core/adapters/dialog.test.ts +335 -15
  97. package/src/core/adapters/dialog.ts +120 -127
  98. package/src/core/adapters/local.test.ts +1 -1
  99. package/src/core/adapters/local.ts +95 -119
  100. package/src/core/adapters/privy.test-d.ts +128 -0
  101. package/src/core/adapters/privy.test.ts +648 -0
  102. package/src/core/adapters/privy.ts +811 -0
  103. package/src/core/adapters/turnkey.test.ts +117 -13
  104. package/src/core/adapters/turnkey.ts +132 -149
  105. package/src/core/internal/AccessKeyTransaction.ts +243 -0
  106. package/src/core/{mppx.test.ts → mppx.localnet.test.ts} +32 -2
  107. package/src/core/zod/request.test.ts +36 -0
  108. package/src/core/zod/rpc.test.ts +139 -0
  109. package/src/core/zod/rpc.ts +44 -10
  110. package/src/index.ts +1 -1
  111. package/src/react-native/{Provider.test.ts → Provider.localnet.test.ts} +65 -0
  112. package/src/react-native/adapter.ts +107 -87
  113. package/src/server/CliAuth.test-d.ts +23 -0
  114. package/src/server/CliAuth.test.ts +47 -0
  115. package/src/server/CliAuth.ts +20 -1
  116. package/src/server/Handler.test-d.ts +1 -1
  117. package/src/server/Kv.test.ts +51 -0
  118. package/src/server/Kv.ts +43 -9
  119. package/src/server/internal/handlers/auth.test.ts +10 -5
  120. package/src/server/internal/handlers/auth.ts +4 -1
  121. package/src/server/internal/handlers/codeAuth.ts +1 -1
  122. package/src/server/internal/handlers/exchange.ts +1 -1
  123. package/src/server/internal/handlers/{relay.test.ts → relay.localnet.test.ts} +4 -1
  124. package/src/server/internal/handlers/relay.ts +139 -14
  125. package/src/server/internal/handlers/session.test.ts +1 -1
  126. package/src/server/internal/handlers/webAuthn.test.ts +20 -0
  127. package/src/server/internal/handlers/webAuthn.ts +24 -12
  128. /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
+ })