@authon/vue 0.2.0 → 0.3.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/dist/index.d.cts CHANGED
@@ -1,7 +1,7 @@
1
1
  import * as vue from 'vue';
2
- import { App, ComputedRef } from 'vue';
2
+ import { App, ComputedRef, Ref, PropType } from 'vue';
3
3
  import { AuthonConfig, Authon } from '@authon/js';
4
- import { AuthonUser } from '@authon/shared';
4
+ import { AuthonUser, Web3Chain, Web3WalletType, Web3NonceResponse, Web3Wallet, PasskeyCredential, OAuthProviderType } from '@authon/shared';
5
5
 
6
6
  declare const AUTHON_KEY: unique symbol;
7
7
  interface AuthonState {
@@ -29,6 +29,49 @@ declare function useUser(): {
29
29
  isLoading: ComputedRef<boolean>;
30
30
  };
31
31
 
32
+ interface LinkWalletParams {
33
+ address: string;
34
+ chain: Web3Chain;
35
+ walletType: Web3WalletType;
36
+ chainId?: number;
37
+ message: string;
38
+ signature: string;
39
+ }
40
+ interface UseAuthonWeb3Return {
41
+ getNonce: (address: string, chain: Web3Chain, walletType: Web3WalletType, chainId?: number) => Promise<Web3NonceResponse | null>;
42
+ verify: (message: string, signature: string, address: string, chain: Web3Chain, walletType: Web3WalletType) => Promise<boolean>;
43
+ listWallets: () => Promise<Web3Wallet[] | null>;
44
+ linkWallet: (params: LinkWalletParams) => Promise<Web3Wallet | null>;
45
+ unlinkWallet: (walletId: string) => Promise<boolean>;
46
+ isLoading: Ref<boolean>;
47
+ error: Ref<Error | null>;
48
+ }
49
+ declare function useAuthonWeb3(): UseAuthonWeb3Return;
50
+
51
+ interface UseAuthonPasswordlessReturn {
52
+ sendMagicLink: (email: string) => Promise<boolean>;
53
+ sendEmailOtp: (email: string) => Promise<boolean>;
54
+ verifyPasswordless: (opts: {
55
+ token?: string;
56
+ email?: string;
57
+ code?: string;
58
+ }) => Promise<boolean>;
59
+ isLoading: Ref<boolean>;
60
+ error: Ref<Error | null>;
61
+ }
62
+ declare function useAuthonPasswordless(): UseAuthonPasswordlessReturn;
63
+
64
+ interface UseAuthonPasskeysReturn {
65
+ registerPasskey: (name?: string) => Promise<PasskeyCredential | null>;
66
+ authenticateWithPasskey: (email?: string) => Promise<boolean>;
67
+ listPasskeys: () => Promise<PasskeyCredential[] | null>;
68
+ renamePasskey: (id: string, name: string) => Promise<PasskeyCredential | null>;
69
+ revokePasskey: (id: string) => Promise<boolean>;
70
+ isLoading: Ref<boolean>;
71
+ error: Ref<Error | null>;
72
+ }
73
+ declare function useAuthonPasskeys(): UseAuthonPasskeysReturn;
74
+
32
75
  declare const AuthonSignIn: vue.DefineComponent<vue.ExtractPropTypes<{
33
76
  mode: {
34
77
  type: () => "popup" | "embedded";
@@ -69,4 +112,150 @@ declare const AuthonSignedOut: vue.DefineComponent<{}, () => vue.VNode<vue.Rende
69
112
  [key: string]: any;
70
113
  }>[] | null | undefined, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
71
114
 
72
- export { AUTHON_KEY, type AuthonPluginOptions, AuthonSignIn, AuthonSignUp, AuthonSignedIn, AuthonSignedOut, type AuthonState, AuthonUserButton, createAuthon, useAuthon, useUser };
115
+ declare const AuthonSocialButton: vue.DefineComponent<vue.ExtractPropTypes<{
116
+ provider: {
117
+ type: PropType<OAuthProviderType>;
118
+ required: true;
119
+ };
120
+ onClick: {
121
+ type: PropType<(provider: OAuthProviderType) => void | Promise<void>>;
122
+ required: true;
123
+ };
124
+ loading: {
125
+ type: BooleanConstructor;
126
+ default: boolean;
127
+ };
128
+ disabled: {
129
+ type: BooleanConstructor;
130
+ default: boolean;
131
+ };
132
+ label: {
133
+ type: StringConstructor;
134
+ default: undefined;
135
+ };
136
+ compact: {
137
+ type: BooleanConstructor;
138
+ default: boolean;
139
+ };
140
+ iconSize: {
141
+ type: NumberConstructor;
142
+ default: undefined;
143
+ };
144
+ borderRadius: {
145
+ type: NumberConstructor;
146
+ default: number;
147
+ };
148
+ height: {
149
+ type: NumberConstructor;
150
+ default: number;
151
+ };
152
+ size: {
153
+ type: NumberConstructor;
154
+ default: number;
155
+ };
156
+ }>, () => vue.VNode<vue.RendererNode, vue.RendererElement, {
157
+ [key: string]: any;
158
+ }>, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
159
+ provider: {
160
+ type: PropType<OAuthProviderType>;
161
+ required: true;
162
+ };
163
+ onClick: {
164
+ type: PropType<(provider: OAuthProviderType) => void | Promise<void>>;
165
+ required: true;
166
+ };
167
+ loading: {
168
+ type: BooleanConstructor;
169
+ default: boolean;
170
+ };
171
+ disabled: {
172
+ type: BooleanConstructor;
173
+ default: boolean;
174
+ };
175
+ label: {
176
+ type: StringConstructor;
177
+ default: undefined;
178
+ };
179
+ compact: {
180
+ type: BooleanConstructor;
181
+ default: boolean;
182
+ };
183
+ iconSize: {
184
+ type: NumberConstructor;
185
+ default: undefined;
186
+ };
187
+ borderRadius: {
188
+ type: NumberConstructor;
189
+ default: number;
190
+ };
191
+ height: {
192
+ type: NumberConstructor;
193
+ default: number;
194
+ };
195
+ size: {
196
+ type: NumberConstructor;
197
+ default: number;
198
+ };
199
+ }>> & Readonly<{}>, {
200
+ label: string;
201
+ loading: boolean;
202
+ disabled: boolean;
203
+ compact: boolean;
204
+ iconSize: number;
205
+ borderRadius: number;
206
+ height: number;
207
+ size: number;
208
+ }, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
209
+ declare const AuthonSocialButtons: vue.DefineComponent<vue.ExtractPropTypes<{
210
+ onSuccess: {
211
+ type: PropType<() => void>;
212
+ default: undefined;
213
+ };
214
+ onError: {
215
+ type: PropType<(error: Error) => void>;
216
+ default: undefined;
217
+ };
218
+ gap: {
219
+ type: NumberConstructor;
220
+ default: undefined;
221
+ };
222
+ compact: {
223
+ type: BooleanConstructor;
224
+ default: boolean;
225
+ };
226
+ labels: {
227
+ type: PropType<Partial<Record<OAuthProviderType, string>>>;
228
+ default: undefined;
229
+ };
230
+ }>, () => vue.VNode<vue.RendererNode, vue.RendererElement, {
231
+ [key: string]: any;
232
+ }> | null, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
233
+ onSuccess: {
234
+ type: PropType<() => void>;
235
+ default: undefined;
236
+ };
237
+ onError: {
238
+ type: PropType<(error: Error) => void>;
239
+ default: undefined;
240
+ };
241
+ gap: {
242
+ type: NumberConstructor;
243
+ default: undefined;
244
+ };
245
+ compact: {
246
+ type: BooleanConstructor;
247
+ default: boolean;
248
+ };
249
+ labels: {
250
+ type: PropType<Partial<Record<OAuthProviderType, string>>>;
251
+ default: undefined;
252
+ };
253
+ }>> & Readonly<{}>, {
254
+ onError: (error: Error) => void;
255
+ compact: boolean;
256
+ onSuccess: () => void;
257
+ gap: number;
258
+ labels: Partial<Record<"google" | "apple" | "kakao" | "naver" | "facebook" | "github" | "discord" | "x" | "line" | "microsoft", string>>;
259
+ }, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
260
+
261
+ export { AUTHON_KEY, type AuthonPluginOptions, AuthonSignIn, AuthonSignUp, AuthonSignedIn, AuthonSignedOut, AuthonSocialButton, AuthonSocialButtons, type AuthonState, AuthonUserButton, type LinkWalletParams, type UseAuthonPasskeysReturn, type UseAuthonPasswordlessReturn, type UseAuthonWeb3Return, createAuthon, useAuthon, useAuthonPasskeys, useAuthonPasswordless, useAuthonWeb3, useUser };
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import * as vue from 'vue';
2
- import { App, ComputedRef } from 'vue';
2
+ import { App, ComputedRef, Ref, PropType } from 'vue';
3
3
  import { AuthonConfig, Authon } from '@authon/js';
4
- import { AuthonUser } from '@authon/shared';
4
+ import { AuthonUser, Web3Chain, Web3WalletType, Web3NonceResponse, Web3Wallet, PasskeyCredential, OAuthProviderType } from '@authon/shared';
5
5
 
6
6
  declare const AUTHON_KEY: unique symbol;
7
7
  interface AuthonState {
@@ -29,6 +29,49 @@ declare function useUser(): {
29
29
  isLoading: ComputedRef<boolean>;
30
30
  };
31
31
 
32
+ interface LinkWalletParams {
33
+ address: string;
34
+ chain: Web3Chain;
35
+ walletType: Web3WalletType;
36
+ chainId?: number;
37
+ message: string;
38
+ signature: string;
39
+ }
40
+ interface UseAuthonWeb3Return {
41
+ getNonce: (address: string, chain: Web3Chain, walletType: Web3WalletType, chainId?: number) => Promise<Web3NonceResponse | null>;
42
+ verify: (message: string, signature: string, address: string, chain: Web3Chain, walletType: Web3WalletType) => Promise<boolean>;
43
+ listWallets: () => Promise<Web3Wallet[] | null>;
44
+ linkWallet: (params: LinkWalletParams) => Promise<Web3Wallet | null>;
45
+ unlinkWallet: (walletId: string) => Promise<boolean>;
46
+ isLoading: Ref<boolean>;
47
+ error: Ref<Error | null>;
48
+ }
49
+ declare function useAuthonWeb3(): UseAuthonWeb3Return;
50
+
51
+ interface UseAuthonPasswordlessReturn {
52
+ sendMagicLink: (email: string) => Promise<boolean>;
53
+ sendEmailOtp: (email: string) => Promise<boolean>;
54
+ verifyPasswordless: (opts: {
55
+ token?: string;
56
+ email?: string;
57
+ code?: string;
58
+ }) => Promise<boolean>;
59
+ isLoading: Ref<boolean>;
60
+ error: Ref<Error | null>;
61
+ }
62
+ declare function useAuthonPasswordless(): UseAuthonPasswordlessReturn;
63
+
64
+ interface UseAuthonPasskeysReturn {
65
+ registerPasskey: (name?: string) => Promise<PasskeyCredential | null>;
66
+ authenticateWithPasskey: (email?: string) => Promise<boolean>;
67
+ listPasskeys: () => Promise<PasskeyCredential[] | null>;
68
+ renamePasskey: (id: string, name: string) => Promise<PasskeyCredential | null>;
69
+ revokePasskey: (id: string) => Promise<boolean>;
70
+ isLoading: Ref<boolean>;
71
+ error: Ref<Error | null>;
72
+ }
73
+ declare function useAuthonPasskeys(): UseAuthonPasskeysReturn;
74
+
32
75
  declare const AuthonSignIn: vue.DefineComponent<vue.ExtractPropTypes<{
33
76
  mode: {
34
77
  type: () => "popup" | "embedded";
@@ -69,4 +112,150 @@ declare const AuthonSignedOut: vue.DefineComponent<{}, () => vue.VNode<vue.Rende
69
112
  [key: string]: any;
70
113
  }>[] | null | undefined, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
71
114
 
72
- export { AUTHON_KEY, type AuthonPluginOptions, AuthonSignIn, AuthonSignUp, AuthonSignedIn, AuthonSignedOut, type AuthonState, AuthonUserButton, createAuthon, useAuthon, useUser };
115
+ declare const AuthonSocialButton: vue.DefineComponent<vue.ExtractPropTypes<{
116
+ provider: {
117
+ type: PropType<OAuthProviderType>;
118
+ required: true;
119
+ };
120
+ onClick: {
121
+ type: PropType<(provider: OAuthProviderType) => void | Promise<void>>;
122
+ required: true;
123
+ };
124
+ loading: {
125
+ type: BooleanConstructor;
126
+ default: boolean;
127
+ };
128
+ disabled: {
129
+ type: BooleanConstructor;
130
+ default: boolean;
131
+ };
132
+ label: {
133
+ type: StringConstructor;
134
+ default: undefined;
135
+ };
136
+ compact: {
137
+ type: BooleanConstructor;
138
+ default: boolean;
139
+ };
140
+ iconSize: {
141
+ type: NumberConstructor;
142
+ default: undefined;
143
+ };
144
+ borderRadius: {
145
+ type: NumberConstructor;
146
+ default: number;
147
+ };
148
+ height: {
149
+ type: NumberConstructor;
150
+ default: number;
151
+ };
152
+ size: {
153
+ type: NumberConstructor;
154
+ default: number;
155
+ };
156
+ }>, () => vue.VNode<vue.RendererNode, vue.RendererElement, {
157
+ [key: string]: any;
158
+ }>, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
159
+ provider: {
160
+ type: PropType<OAuthProviderType>;
161
+ required: true;
162
+ };
163
+ onClick: {
164
+ type: PropType<(provider: OAuthProviderType) => void | Promise<void>>;
165
+ required: true;
166
+ };
167
+ loading: {
168
+ type: BooleanConstructor;
169
+ default: boolean;
170
+ };
171
+ disabled: {
172
+ type: BooleanConstructor;
173
+ default: boolean;
174
+ };
175
+ label: {
176
+ type: StringConstructor;
177
+ default: undefined;
178
+ };
179
+ compact: {
180
+ type: BooleanConstructor;
181
+ default: boolean;
182
+ };
183
+ iconSize: {
184
+ type: NumberConstructor;
185
+ default: undefined;
186
+ };
187
+ borderRadius: {
188
+ type: NumberConstructor;
189
+ default: number;
190
+ };
191
+ height: {
192
+ type: NumberConstructor;
193
+ default: number;
194
+ };
195
+ size: {
196
+ type: NumberConstructor;
197
+ default: number;
198
+ };
199
+ }>> & Readonly<{}>, {
200
+ label: string;
201
+ loading: boolean;
202
+ disabled: boolean;
203
+ compact: boolean;
204
+ iconSize: number;
205
+ borderRadius: number;
206
+ height: number;
207
+ size: number;
208
+ }, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
209
+ declare const AuthonSocialButtons: vue.DefineComponent<vue.ExtractPropTypes<{
210
+ onSuccess: {
211
+ type: PropType<() => void>;
212
+ default: undefined;
213
+ };
214
+ onError: {
215
+ type: PropType<(error: Error) => void>;
216
+ default: undefined;
217
+ };
218
+ gap: {
219
+ type: NumberConstructor;
220
+ default: undefined;
221
+ };
222
+ compact: {
223
+ type: BooleanConstructor;
224
+ default: boolean;
225
+ };
226
+ labels: {
227
+ type: PropType<Partial<Record<OAuthProviderType, string>>>;
228
+ default: undefined;
229
+ };
230
+ }>, () => vue.VNode<vue.RendererNode, vue.RendererElement, {
231
+ [key: string]: any;
232
+ }> | null, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
233
+ onSuccess: {
234
+ type: PropType<() => void>;
235
+ default: undefined;
236
+ };
237
+ onError: {
238
+ type: PropType<(error: Error) => void>;
239
+ default: undefined;
240
+ };
241
+ gap: {
242
+ type: NumberConstructor;
243
+ default: undefined;
244
+ };
245
+ compact: {
246
+ type: BooleanConstructor;
247
+ default: boolean;
248
+ };
249
+ labels: {
250
+ type: PropType<Partial<Record<OAuthProviderType, string>>>;
251
+ default: undefined;
252
+ };
253
+ }>> & Readonly<{}>, {
254
+ onError: (error: Error) => void;
255
+ compact: boolean;
256
+ onSuccess: () => void;
257
+ gap: number;
258
+ labels: Partial<Record<"google" | "apple" | "kakao" | "naver" | "facebook" | "github" | "discord" | "x" | "line" | "microsoft", string>>;
259
+ }, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
260
+
261
+ export { AUTHON_KEY, type AuthonPluginOptions, AuthonSignIn, AuthonSignUp, AuthonSignedIn, AuthonSignedOut, AuthonSocialButton, AuthonSocialButtons, type AuthonState, AuthonUserButton, type LinkWalletParams, type UseAuthonPasskeysReturn, type UseAuthonPasswordlessReturn, type UseAuthonWeb3Return, createAuthon, useAuthon, useAuthonPasskeys, useAuthonPasswordless, useAuthonWeb3, useUser };