@kaiz11/stack-client 0.0.14
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/LICENSE +32 -0
- package/README.md +586 -0
- package/dist/accounts/accounts-client.d.ts +188 -0
- package/dist/accounts/accounts-client.d.ts.map +1 -0
- package/dist/accounts/accounts-client.js +264 -0
- package/dist/accounts/accounts-client.js.map +1 -0
- package/dist/accounts/index.d.ts +8 -0
- package/dist/accounts/index.d.ts.map +1 -0
- package/dist/accounts/index.js +8 -0
- package/dist/accounts/index.js.map +1 -0
- package/dist/accounts/mock-accounts.d.ts +90 -0
- package/dist/accounts/mock-accounts.d.ts.map +1 -0
- package/dist/accounts/mock-accounts.js +434 -0
- package/dist/accounts/mock-accounts.js.map +1 -0
- package/dist/accounts/types.d.ts +180 -0
- package/dist/accounts/types.d.ts.map +1 -0
- package/dist/accounts/types.js +59 -0
- package/dist/accounts/types.js.map +1 -0
- package/dist/auth/auth-client.d.ts +224 -0
- package/dist/auth/auth-client.d.ts.map +1 -0
- package/dist/auth/auth-client.js +230 -0
- package/dist/auth/auth-client.js.map +1 -0
- package/dist/auth/base-auth.d.ts +44 -0
- package/dist/auth/base-auth.d.ts.map +1 -0
- package/dist/auth/base-auth.js +55 -0
- package/dist/auth/base-auth.js.map +1 -0
- package/dist/auth/index.d.ts +11 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/index.js +11 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/auth/methods/admin.d.ts +59 -0
- package/dist/auth/methods/admin.d.ts.map +1 -0
- package/dist/auth/methods/admin.js +55 -0
- package/dist/auth/methods/admin.js.map +1 -0
- package/dist/auth/methods/index.d.ts +9 -0
- package/dist/auth/methods/index.d.ts.map +1 -0
- package/dist/auth/methods/index.js +8 -0
- package/dist/auth/methods/index.js.map +1 -0
- package/dist/auth/methods/magic-link.d.ts +27 -0
- package/dist/auth/methods/magic-link.d.ts.map +1 -0
- package/dist/auth/methods/magic-link.js +37 -0
- package/dist/auth/methods/magic-link.js.map +1 -0
- package/dist/auth/methods/mfa.d.ts +92 -0
- package/dist/auth/methods/mfa.d.ts.map +1 -0
- package/dist/auth/methods/mfa.js +153 -0
- package/dist/auth/methods/mfa.js.map +1 -0
- package/dist/auth/methods/oauth.d.ts +62 -0
- package/dist/auth/methods/oauth.d.ts.map +1 -0
- package/dist/auth/methods/oauth.js +165 -0
- package/dist/auth/methods/oauth.js.map +1 -0
- package/dist/auth/methods/otp.d.ts +43 -0
- package/dist/auth/methods/otp.d.ts.map +1 -0
- package/dist/auth/methods/otp.js +66 -0
- package/dist/auth/methods/otp.js.map +1 -0
- package/dist/auth/methods/password.d.ts +64 -0
- package/dist/auth/methods/password.d.ts.map +1 -0
- package/dist/auth/methods/password.js +116 -0
- package/dist/auth/methods/password.js.map +1 -0
- package/dist/auth/methods/recovery.d.ts +62 -0
- package/dist/auth/methods/recovery.d.ts.map +1 -0
- package/dist/auth/methods/recovery.js +100 -0
- package/dist/auth/methods/recovery.js.map +1 -0
- package/dist/auth/mock-auth.d.ts +135 -0
- package/dist/auth/mock-auth.d.ts.map +1 -0
- package/dist/auth/mock-auth.js +417 -0
- package/dist/auth/mock-auth.js.map +1 -0
- package/dist/auth/server/helpers.d.ts +215 -0
- package/dist/auth/server/helpers.d.ts.map +1 -0
- package/dist/auth/server/helpers.js +241 -0
- package/dist/auth/server/helpers.js.map +1 -0
- package/dist/auth/server/index.d.ts +24 -0
- package/dist/auth/server/index.d.ts.map +1 -0
- package/dist/auth/server/index.js +40 -0
- package/dist/auth/server/index.js.map +1 -0
- package/dist/auth/server/middleware.d.ts +305 -0
- package/dist/auth/server/middleware.d.ts.map +1 -0
- package/dist/auth/server/middleware.js +405 -0
- package/dist/auth/server/middleware.js.map +1 -0
- package/dist/auth/server/verify.d.ts +184 -0
- package/dist/auth/server/verify.d.ts.map +1 -0
- package/dist/auth/server/verify.js +222 -0
- package/dist/auth/server/verify.js.map +1 -0
- package/dist/auth/token-manager.d.ts +94 -0
- package/dist/auth/token-manager.d.ts.map +1 -0
- package/dist/auth/token-manager.js +231 -0
- package/dist/auth/token-manager.js.map +1 -0
- package/dist/auth/types.d.ts +412 -0
- package/dist/auth/types.d.ts.map +1 -0
- package/dist/auth/types.js +66 -0
- package/dist/auth/types.js.map +1 -0
- package/dist/auth/user/identities.d.ts +62 -0
- package/dist/auth/user/identities.d.ts.map +1 -0
- package/dist/auth/user/identities.js +88 -0
- package/dist/auth/user/identities.js.map +1 -0
- package/dist/auth/user/index.d.ts +4 -0
- package/dist/auth/user/index.d.ts.map +1 -0
- package/dist/auth/user/index.js +4 -0
- package/dist/auth/user/index.js.map +1 -0
- package/dist/auth/user/user.d.ts +64 -0
- package/dist/auth/user/user.d.ts.map +1 -0
- package/dist/auth/user/user.js +105 -0
- package/dist/auth/user/user.js.map +1 -0
- package/dist/auth/user/verification.d.ts +49 -0
- package/dist/auth/user/verification.d.ts.map +1 -0
- package/dist/auth/user/verification.js +71 -0
- package/dist/auth/user/verification.js.map +1 -0
- package/dist/cli/browser.d.ts +11 -0
- package/dist/cli/browser.d.ts.map +1 -0
- package/dist/cli/browser.js +35 -0
- package/dist/cli/browser.js.map +1 -0
- package/dist/cli/callback-server.d.ts +30 -0
- package/dist/cli/callback-server.d.ts.map +1 -0
- package/dist/cli/callback-server.js +100 -0
- package/dist/cli/callback-server.js.map +1 -0
- package/dist/cli/file-token-store.d.ts +79 -0
- package/dist/cli/file-token-store.d.ts.map +1 -0
- package/dist/cli/file-token-store.js +138 -0
- package/dist/cli/file-token-store.js.map +1 -0
- package/dist/cli/index.d.ts +33 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +38 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/oauth.d.ts +67 -0
- package/dist/cli/oauth.d.ts.map +1 -0
- package/dist/cli/oauth.js +101 -0
- package/dist/cli/oauth.js.map +1 -0
- package/dist/cli/pkce.d.ts +35 -0
- package/dist/cli/pkce.d.ts.map +1 -0
- package/dist/cli/pkce.js +43 -0
- package/dist/cli/pkce.js.map +1 -0
- package/dist/client.d.ts +22 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +99 -0
- package/dist/client.js.map +1 -0
- package/dist/db/client.d.ts +9 -0
- package/dist/db/client.d.ts.map +1 -0
- package/dist/db/client.js +19 -0
- package/dist/db/client.js.map +1 -0
- package/dist/db/errors.d.ts +19 -0
- package/dist/db/errors.d.ts.map +1 -0
- package/dist/db/errors.js +57 -0
- package/dist/db/errors.js.map +1 -0
- package/dist/db/index.d.ts +7 -0
- package/dist/db/index.d.ts.map +1 -0
- package/dist/db/index.js +5 -0
- package/dist/db/index.js.map +1 -0
- package/dist/db/mock.d.ts +28 -0
- package/dist/db/mock.d.ts.map +1 -0
- package/dist/db/mock.js +459 -0
- package/dist/db/mock.js.map +1 -0
- package/dist/db/types.d.ts +73 -0
- package/dist/db/types.d.ts.map +1 -0
- package/dist/db/types.js +2 -0
- package/dist/db/types.js.map +1 -0
- package/dist/index.d.ts +21 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +20 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/errors.d.ts +33 -0
- package/dist/lib/errors.d.ts.map +1 -0
- package/dist/lib/errors.js +76 -0
- package/dist/lib/errors.js.map +1 -0
- package/dist/lib/http.d.ts +81 -0
- package/dist/lib/http.d.ts.map +1 -0
- package/dist/lib/http.js +163 -0
- package/dist/lib/http.js.map +1 -0
- package/dist/lib/keys.d.ts +87 -0
- package/dist/lib/keys.d.ts.map +1 -0
- package/dist/lib/keys.js +147 -0
- package/dist/lib/keys.js.map +1 -0
- package/dist/lib/paths.d.ts +37 -0
- package/dist/lib/paths.d.ts.map +1 -0
- package/dist/lib/paths.js +49 -0
- package/dist/lib/paths.js.map +1 -0
- package/dist/lib/token-store.d.ts +42 -0
- package/dist/lib/token-store.d.ts.map +1 -0
- package/dist/lib/token-store.js +75 -0
- package/dist/lib/token-store.js.map +1 -0
- package/dist/mocks/handlers.d.ts +29 -0
- package/dist/mocks/handlers.d.ts.map +1 -0
- package/dist/mocks/handlers.js +79 -0
- package/dist/mocks/handlers.js.map +1 -0
- package/dist/mocks/index.d.ts +5 -0
- package/dist/mocks/index.d.ts.map +1 -0
- package/dist/mocks/index.js +9 -0
- package/dist/mocks/index.js.map +1 -0
- package/dist/mocks/responses.d.ts +76 -0
- package/dist/mocks/responses.d.ts.map +1 -0
- package/dist/mocks/responses.js +91 -0
- package/dist/mocks/responses.js.map +1 -0
- package/dist/mocks/server.d.ts +7 -0
- package/dist/mocks/server.d.ts.map +1 -0
- package/dist/mocks/server.js +9 -0
- package/dist/mocks/server.js.map +1 -0
- package/dist/mocks/state.d.ts +86 -0
- package/dist/mocks/state.d.ts.map +1 -0
- package/dist/mocks/state.js +77 -0
- package/dist/mocks/state.js.map +1 -0
- package/dist/storage/bucket-ref.d.ts +183 -0
- package/dist/storage/bucket-ref.d.ts.map +1 -0
- package/dist/storage/bucket-ref.js +529 -0
- package/dist/storage/bucket-ref.js.map +1 -0
- package/dist/storage/errors.d.ts +27 -0
- package/dist/storage/errors.d.ts.map +1 -0
- package/dist/storage/errors.js +89 -0
- package/dist/storage/errors.js.map +1 -0
- package/dist/storage/index.d.ts +13 -0
- package/dist/storage/index.d.ts.map +1 -0
- package/dist/storage/index.js +11 -0
- package/dist/storage/index.js.map +1 -0
- package/dist/storage/interface.d.ts +245 -0
- package/dist/storage/interface.d.ts.map +1 -0
- package/dist/storage/interface.js +2 -0
- package/dist/storage/interface.js.map +1 -0
- package/dist/storage/mock-storage.d.ts +67 -0
- package/dist/storage/mock-storage.d.ts.map +1 -0
- package/dist/storage/mock-storage.js +478 -0
- package/dist/storage/mock-storage.js.map +1 -0
- package/dist/storage/policies-client.d.ts +77 -0
- package/dist/storage/policies-client.d.ts.map +1 -0
- package/dist/storage/policies-client.js +115 -0
- package/dist/storage/policies-client.js.map +1 -0
- package/dist/storage/policy-templates.d.ts +6 -0
- package/dist/storage/policy-templates.d.ts.map +1 -0
- package/dist/storage/policy-templates.js +290 -0
- package/dist/storage/policy-templates.js.map +1 -0
- package/dist/storage/policy-types.d.ts +98 -0
- package/dist/storage/policy-types.d.ts.map +1 -0
- package/dist/storage/policy-types.js +20 -0
- package/dist/storage/policy-types.js.map +1 -0
- package/dist/storage/storage-client.d.ts +32 -0
- package/dist/storage/storage-client.d.ts.map +1 -0
- package/dist/storage/storage-client.js +94 -0
- package/dist/storage/storage-client.js.map +1 -0
- package/dist/storage/tus-upload.d.ts +56 -0
- package/dist/storage/tus-upload.d.ts.map +1 -0
- package/dist/storage/tus-upload.js +236 -0
- package/dist/storage/tus-upload.js.map +1 -0
- package/dist/storage/types.d.ts +335 -0
- package/dist/storage/types.d.ts.map +1 -0
- package/dist/storage/types.js +39 -0
- package/dist/storage/types.js.map +1 -0
- package/dist/test/auth/helpers.d.ts +33 -0
- package/dist/test/auth/helpers.d.ts.map +1 -0
- package/dist/test/auth/helpers.js +80 -0
- package/dist/test/auth/helpers.js.map +1 -0
- package/dist/test/helpers/jwt.d.ts +61 -0
- package/dist/test/helpers/jwt.d.ts.map +1 -0
- package/dist/test/helpers/jwt.js +132 -0
- package/dist/test/helpers/jwt.js.map +1 -0
- package/dist/test/helpers/mailpit.d.ts +61 -0
- package/dist/test/helpers/mailpit.d.ts.map +1 -0
- package/dist/test/helpers/mailpit.js +107 -0
- package/dist/test/helpers/mailpit.js.map +1 -0
- package/dist/test/setup.d.ts +2 -0
- package/dist/test/setup.d.ts.map +1 -0
- package/dist/test/setup.js +17 -0
- package/dist/test/setup.js.map +1 -0
- package/dist/types.d.ts +96 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +5 -0
- package/dist/types.js.map +1 -0
- package/package.json +78 -0
|
@@ -0,0 +1,412 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Email and password credentials
|
|
3
|
+
*/
|
|
4
|
+
export interface EmailPasswordCredentials {
|
|
5
|
+
email: string;
|
|
6
|
+
password: string;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Sign up options
|
|
10
|
+
*/
|
|
11
|
+
export interface SignUpOptions extends EmailPasswordCredentials {
|
|
12
|
+
/** User metadata (name, avatar, etc.) */
|
|
13
|
+
data?: Record<string, unknown>;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* OAuth provider names
|
|
17
|
+
*/
|
|
18
|
+
export type OAuthProvider = "google" | "github" | "gitlab" | "bitbucket" | "azure" | "facebook" | "twitter" | "discord" | "twitch" | "spotify" | "slack" | "linkedin" | "notion" | "apple" | "zoom" | "figma" | "workos" | "keycloak";
|
|
19
|
+
/**
|
|
20
|
+
* OAuth sign in options
|
|
21
|
+
*/
|
|
22
|
+
export interface OAuthSignInOptions {
|
|
23
|
+
/** OAuth provider */
|
|
24
|
+
provider: OAuthProvider;
|
|
25
|
+
/** URL to redirect to after sign in */
|
|
26
|
+
redirectTo?: string;
|
|
27
|
+
/** OAuth scopes to request */
|
|
28
|
+
scopes?: string;
|
|
29
|
+
/** Additional query params */
|
|
30
|
+
queryParams?: Record<string, string>;
|
|
31
|
+
/** Skip browser redirect (return URL instead) */
|
|
32
|
+
skipBrowserRedirect?: boolean;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* OAuth callback result
|
|
36
|
+
*/
|
|
37
|
+
export interface OAuthCallbackResult {
|
|
38
|
+
session: Session | null;
|
|
39
|
+
error: Error | null;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Magic link options
|
|
43
|
+
*/
|
|
44
|
+
export interface MagicLinkOptions {
|
|
45
|
+
email: string;
|
|
46
|
+
/** URL to redirect to after clicking the link */
|
|
47
|
+
redirectTo?: string;
|
|
48
|
+
/** Whether to create user if they don't exist (default: false) */
|
|
49
|
+
shouldCreateUser?: boolean;
|
|
50
|
+
/** Custom data to include */
|
|
51
|
+
data?: Record<string, unknown>;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* OTP (one-time password) options
|
|
55
|
+
*/
|
|
56
|
+
export interface OtpSignInOptions {
|
|
57
|
+
/** Email or phone number */
|
|
58
|
+
email?: string;
|
|
59
|
+
phone?: string;
|
|
60
|
+
/** URL to redirect to (for email OTP with link) */
|
|
61
|
+
redirectTo?: string;
|
|
62
|
+
/** Whether to create user if they don't exist */
|
|
63
|
+
shouldCreateUser?: boolean;
|
|
64
|
+
/** Custom data to include */
|
|
65
|
+
data?: Record<string, unknown>;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* OTP verification options
|
|
69
|
+
*/
|
|
70
|
+
export interface OtpVerifyOptions {
|
|
71
|
+
/** Email or phone used for OTP */
|
|
72
|
+
email?: string;
|
|
73
|
+
phone?: string;
|
|
74
|
+
/** The OTP code */
|
|
75
|
+
token: string;
|
|
76
|
+
/** Type of OTP */
|
|
77
|
+
type: "sms" | "email" | "phone_change" | "email_change";
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Password reset options
|
|
81
|
+
*/
|
|
82
|
+
export interface PasswordResetOptions {
|
|
83
|
+
email: string;
|
|
84
|
+
/** URL to redirect to after clicking reset link */
|
|
85
|
+
redirectTo?: string;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Update password options
|
|
89
|
+
*/
|
|
90
|
+
export interface UpdatePasswordOptions {
|
|
91
|
+
password: string;
|
|
92
|
+
/** Nonce from reauthentication (for sensitive operations) */
|
|
93
|
+
nonce?: string;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Reauthentication options
|
|
97
|
+
*/
|
|
98
|
+
export interface ReauthenticateOptions {
|
|
99
|
+
/** Current password for reauthentication */
|
|
100
|
+
password?: string;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Logout scope
|
|
104
|
+
*/
|
|
105
|
+
export type LogoutScope = "local" | "global";
|
|
106
|
+
/**
|
|
107
|
+
* User identity (linked OAuth account)
|
|
108
|
+
*/
|
|
109
|
+
export interface UserIdentity {
|
|
110
|
+
id: string;
|
|
111
|
+
userId: string;
|
|
112
|
+
provider: string;
|
|
113
|
+
identityId: string;
|
|
114
|
+
identityData: Record<string, unknown>;
|
|
115
|
+
createdAt: string;
|
|
116
|
+
updatedAt: string;
|
|
117
|
+
lastSignInAt: string | null;
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* User object (normalized from GoTrueUser)
|
|
121
|
+
*/
|
|
122
|
+
export interface User {
|
|
123
|
+
id: string;
|
|
124
|
+
email: string | null;
|
|
125
|
+
phone: string | null;
|
|
126
|
+
emailConfirmedAt: string | null;
|
|
127
|
+
phoneConfirmedAt: string | null;
|
|
128
|
+
createdAt: string;
|
|
129
|
+
updatedAt: string;
|
|
130
|
+
appMetadata: {
|
|
131
|
+
provider?: string;
|
|
132
|
+
providers?: string[];
|
|
133
|
+
};
|
|
134
|
+
userMetadata: Record<string, unknown>;
|
|
135
|
+
identities?: UserIdentity[];
|
|
136
|
+
factors?: Factor[];
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Session object
|
|
140
|
+
*/
|
|
141
|
+
export interface Session {
|
|
142
|
+
accessToken: string;
|
|
143
|
+
refreshToken: string;
|
|
144
|
+
expiresIn: number;
|
|
145
|
+
expiresAt: number;
|
|
146
|
+
tokenType: string;
|
|
147
|
+
user: User;
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Update user options
|
|
151
|
+
*/
|
|
152
|
+
export interface UpdateUserOptions {
|
|
153
|
+
email?: string;
|
|
154
|
+
phone?: string;
|
|
155
|
+
password?: string;
|
|
156
|
+
/** User metadata */
|
|
157
|
+
data?: Record<string, unknown>;
|
|
158
|
+
/** Nonce from reauthentication (required for email/phone/password changes) */
|
|
159
|
+
nonce?: string;
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* MFA factor types
|
|
163
|
+
*/
|
|
164
|
+
export type FactorType = "totp" | "phone";
|
|
165
|
+
/**
|
|
166
|
+
* MFA factor status
|
|
167
|
+
*/
|
|
168
|
+
export type FactorStatus = "unverified" | "verified";
|
|
169
|
+
/**
|
|
170
|
+
* MFA factor
|
|
171
|
+
*/
|
|
172
|
+
export interface Factor {
|
|
173
|
+
id: string;
|
|
174
|
+
type: FactorType;
|
|
175
|
+
friendlyName?: string;
|
|
176
|
+
status: FactorStatus;
|
|
177
|
+
createdAt: string;
|
|
178
|
+
updatedAt: string;
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* MFA enrollment options
|
|
182
|
+
*/
|
|
183
|
+
export interface EnrollFactorOptions {
|
|
184
|
+
/** Factor type */
|
|
185
|
+
type: FactorType;
|
|
186
|
+
/** Friendly name for the factor */
|
|
187
|
+
friendlyName?: string;
|
|
188
|
+
/** Phone number (required for phone factor) */
|
|
189
|
+
phone?: string;
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* MFA enrollment result
|
|
193
|
+
*/
|
|
194
|
+
export interface EnrollFactorResult {
|
|
195
|
+
/** Factor ID */
|
|
196
|
+
id: string;
|
|
197
|
+
/** Factor type */
|
|
198
|
+
type: FactorType;
|
|
199
|
+
/** TOTP URI (for totp type) */
|
|
200
|
+
totpUri?: string;
|
|
201
|
+
/** QR code data URL (for totp type) */
|
|
202
|
+
qrCode?: string;
|
|
203
|
+
/** Recovery codes */
|
|
204
|
+
recoveryCodes?: string[];
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* MFA challenge options
|
|
208
|
+
*/
|
|
209
|
+
export interface ChallengeFactorOptions {
|
|
210
|
+
/** Factor ID to challenge */
|
|
211
|
+
factorId: string;
|
|
212
|
+
/** Channel to send challenge (for phone factor) */
|
|
213
|
+
channel?: "sms" | "whatsapp";
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* MFA challenge result
|
|
217
|
+
*/
|
|
218
|
+
export interface ChallengeFactorResult {
|
|
219
|
+
/** Challenge ID */
|
|
220
|
+
id: string;
|
|
221
|
+
/** Expiration timestamp */
|
|
222
|
+
expiresAt: number;
|
|
223
|
+
}
|
|
224
|
+
/**
|
|
225
|
+
* MFA verify options
|
|
226
|
+
*/
|
|
227
|
+
export interface VerifyFactorOptions {
|
|
228
|
+
/** Factor ID */
|
|
229
|
+
factorId: string;
|
|
230
|
+
/** Challenge ID */
|
|
231
|
+
challengeId: string;
|
|
232
|
+
/** Verification code */
|
|
233
|
+
code: string;
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* Link identity options
|
|
237
|
+
*/
|
|
238
|
+
export interface LinkIdentityOptions {
|
|
239
|
+
/** OAuth provider to link */
|
|
240
|
+
provider: OAuthProvider;
|
|
241
|
+
/** URL to redirect to after linking */
|
|
242
|
+
redirectTo?: string;
|
|
243
|
+
/** OAuth scopes to request */
|
|
244
|
+
scopes?: string;
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
* Unlink identity options
|
|
248
|
+
*/
|
|
249
|
+
export interface UnlinkIdentityOptions {
|
|
250
|
+
/** Identity ID to unlink */
|
|
251
|
+
identityId: string;
|
|
252
|
+
}
|
|
253
|
+
/**
|
|
254
|
+
* Verify email/phone options
|
|
255
|
+
*/
|
|
256
|
+
export interface VerifyOptions {
|
|
257
|
+
/** Verification token from URL */
|
|
258
|
+
token: string;
|
|
259
|
+
/** Type of verification */
|
|
260
|
+
type: "signup" | "email_change" | "phone_change" | "recovery" | "invite";
|
|
261
|
+
/** Email (for email verification) */
|
|
262
|
+
email?: string;
|
|
263
|
+
/** Phone (for phone verification) */
|
|
264
|
+
phone?: string;
|
|
265
|
+
}
|
|
266
|
+
/**
|
|
267
|
+
* Resend verification options
|
|
268
|
+
*/
|
|
269
|
+
export interface ResendVerificationOptions {
|
|
270
|
+
/** Email or phone to resend to */
|
|
271
|
+
email?: string;
|
|
272
|
+
phone?: string;
|
|
273
|
+
/** Type of verification to resend */
|
|
274
|
+
type: "signup" | "email_change" | "phone_change";
|
|
275
|
+
/** URL to redirect to */
|
|
276
|
+
redirectTo?: string;
|
|
277
|
+
}
|
|
278
|
+
/**
|
|
279
|
+
* Auth state change event
|
|
280
|
+
*/
|
|
281
|
+
export type AuthChangeEvent = "SIGNED_IN" | "SIGNED_OUT" | "TOKEN_REFRESHED" | "USER_UPDATED" | "MFA_CHALLENGE_VERIFIED" | "PASSWORD_RECOVERY";
|
|
282
|
+
/**
|
|
283
|
+
* Auth state change callback
|
|
284
|
+
*/
|
|
285
|
+
export type AuthChangeCallback = (event: AuthChangeEvent, session: Session | null) => void;
|
|
286
|
+
/**
|
|
287
|
+
* Unsubscribe function
|
|
288
|
+
*/
|
|
289
|
+
export type Unsubscribe = () => void;
|
|
290
|
+
/**
|
|
291
|
+
* GoTrue token response
|
|
292
|
+
*/
|
|
293
|
+
export interface GoTrueTokenResponse {
|
|
294
|
+
access_token: string;
|
|
295
|
+
refresh_token: string;
|
|
296
|
+
expires_in: number;
|
|
297
|
+
expires_at: number;
|
|
298
|
+
token_type: string;
|
|
299
|
+
user: GoTrueUser;
|
|
300
|
+
}
|
|
301
|
+
/**
|
|
302
|
+
* GoTrue signup response (may or may not include session)
|
|
303
|
+
* When email verification is required, only user info is returned.
|
|
304
|
+
* When auto-confirm is enabled, full token response is returned.
|
|
305
|
+
*/
|
|
306
|
+
export interface GoTrueSignUpResponse {
|
|
307
|
+
id: string;
|
|
308
|
+
email?: string;
|
|
309
|
+
phone?: string;
|
|
310
|
+
created_at: string;
|
|
311
|
+
updated_at: string;
|
|
312
|
+
app_metadata: Record<string, unknown>;
|
|
313
|
+
user_metadata: Record<string, unknown>;
|
|
314
|
+
identities?: GoTrueIdentity[];
|
|
315
|
+
access_token?: string;
|
|
316
|
+
refresh_token?: string;
|
|
317
|
+
expires_in?: number;
|
|
318
|
+
expires_at?: number;
|
|
319
|
+
token_type?: string;
|
|
320
|
+
user?: GoTrueUser;
|
|
321
|
+
}
|
|
322
|
+
/**
|
|
323
|
+
* Signup result - either a full session or just user info (email verification pending)
|
|
324
|
+
*/
|
|
325
|
+
export interface SignUpResult {
|
|
326
|
+
/** Session (only present if auto-confirm enabled or mock mode) */
|
|
327
|
+
session: Session | null;
|
|
328
|
+
/** User info (always present) */
|
|
329
|
+
user: User;
|
|
330
|
+
}
|
|
331
|
+
/**
|
|
332
|
+
* GoTrue user object
|
|
333
|
+
*/
|
|
334
|
+
export interface GoTrueUser {
|
|
335
|
+
id: string;
|
|
336
|
+
aud: string;
|
|
337
|
+
email?: string;
|
|
338
|
+
phone?: string;
|
|
339
|
+
email_confirmed_at?: string;
|
|
340
|
+
phone_confirmed_at?: string;
|
|
341
|
+
created_at: string;
|
|
342
|
+
updated_at: string;
|
|
343
|
+
app_metadata: {
|
|
344
|
+
provider?: string;
|
|
345
|
+
providers?: string[];
|
|
346
|
+
};
|
|
347
|
+
user_metadata: Record<string, unknown>;
|
|
348
|
+
role?: string;
|
|
349
|
+
identities?: GoTrueIdentity[];
|
|
350
|
+
factors?: GoTrueFactor[];
|
|
351
|
+
}
|
|
352
|
+
/**
|
|
353
|
+
* GoTrue identity
|
|
354
|
+
*/
|
|
355
|
+
export interface GoTrueIdentity {
|
|
356
|
+
id: string;
|
|
357
|
+
user_id: string;
|
|
358
|
+
provider: string;
|
|
359
|
+
identity_id: string;
|
|
360
|
+
identity_data: Record<string, unknown>;
|
|
361
|
+
created_at: string;
|
|
362
|
+
updated_at: string;
|
|
363
|
+
last_sign_in_at?: string;
|
|
364
|
+
}
|
|
365
|
+
/**
|
|
366
|
+
* GoTrue factor
|
|
367
|
+
*/
|
|
368
|
+
export interface GoTrueFactor {
|
|
369
|
+
id: string;
|
|
370
|
+
factor_type: FactorType;
|
|
371
|
+
friendly_name?: string;
|
|
372
|
+
status: FactorStatus;
|
|
373
|
+
created_at: string;
|
|
374
|
+
updated_at: string;
|
|
375
|
+
}
|
|
376
|
+
/**
|
|
377
|
+
* Auth settings (public)
|
|
378
|
+
*/
|
|
379
|
+
export interface AuthSettings {
|
|
380
|
+
/** Whether email signup is enabled */
|
|
381
|
+
disableSignup: boolean;
|
|
382
|
+
/** External OAuth providers enabled */
|
|
383
|
+
externalProviders: OAuthProvider[];
|
|
384
|
+
/** Whether phone auth is enabled */
|
|
385
|
+
phoneEnabled: boolean;
|
|
386
|
+
/** Whether email auth is enabled */
|
|
387
|
+
emailEnabled: boolean;
|
|
388
|
+
/** Whether SAML is enabled */
|
|
389
|
+
samlEnabled: boolean;
|
|
390
|
+
/** MFA settings */
|
|
391
|
+
mfa: {
|
|
392
|
+
enabled: boolean;
|
|
393
|
+
factorTypes: FactorType[];
|
|
394
|
+
};
|
|
395
|
+
}
|
|
396
|
+
/**
|
|
397
|
+
* Convert GoTrueIdentity to UserIdentity
|
|
398
|
+
*/
|
|
399
|
+
export declare function normalizeIdentity(identity: GoTrueIdentity): UserIdentity;
|
|
400
|
+
/**
|
|
401
|
+
* Convert GoTrueFactor to Factor
|
|
402
|
+
*/
|
|
403
|
+
export declare function normalizeFactor(factor: GoTrueFactor): Factor;
|
|
404
|
+
/**
|
|
405
|
+
* Convert GoTrueUser to User
|
|
406
|
+
*/
|
|
407
|
+
export declare function normalizeUser(gotrueUser: GoTrueUser): User;
|
|
408
|
+
/**
|
|
409
|
+
* Convert GoTrueTokenResponse to Session
|
|
410
|
+
*/
|
|
411
|
+
export declare function normalizeSession(response: GoTrueTokenResponse): Session;
|
|
412
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/auth/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
// ============================================
|
|
2
|
+
// Credentials & Sign In Options
|
|
3
|
+
// ============================================
|
|
4
|
+
// ============================================
|
|
5
|
+
// Normalizers
|
|
6
|
+
// ============================================
|
|
7
|
+
/**
|
|
8
|
+
* Convert GoTrueIdentity to UserIdentity
|
|
9
|
+
*/
|
|
10
|
+
export function normalizeIdentity(identity) {
|
|
11
|
+
return {
|
|
12
|
+
id: identity.id,
|
|
13
|
+
userId: identity.user_id,
|
|
14
|
+
provider: identity.provider,
|
|
15
|
+
identityId: identity.identity_id,
|
|
16
|
+
identityData: identity.identity_data,
|
|
17
|
+
createdAt: identity.created_at,
|
|
18
|
+
updatedAt: identity.updated_at,
|
|
19
|
+
lastSignInAt: identity.last_sign_in_at ?? null,
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Convert GoTrueFactor to Factor
|
|
24
|
+
*/
|
|
25
|
+
export function normalizeFactor(factor) {
|
|
26
|
+
return {
|
|
27
|
+
id: factor.id,
|
|
28
|
+
type: factor.factor_type,
|
|
29
|
+
friendlyName: factor.friendly_name,
|
|
30
|
+
status: factor.status,
|
|
31
|
+
createdAt: factor.created_at,
|
|
32
|
+
updatedAt: factor.updated_at,
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Convert GoTrueUser to User
|
|
37
|
+
*/
|
|
38
|
+
export function normalizeUser(gotrueUser) {
|
|
39
|
+
return {
|
|
40
|
+
id: gotrueUser.id,
|
|
41
|
+
email: gotrueUser.email ?? null,
|
|
42
|
+
phone: gotrueUser.phone ?? null,
|
|
43
|
+
emailConfirmedAt: gotrueUser.email_confirmed_at ?? null,
|
|
44
|
+
phoneConfirmedAt: gotrueUser.phone_confirmed_at ?? null,
|
|
45
|
+
createdAt: gotrueUser.created_at,
|
|
46
|
+
updatedAt: gotrueUser.updated_at,
|
|
47
|
+
appMetadata: gotrueUser.app_metadata,
|
|
48
|
+
userMetadata: gotrueUser.user_metadata,
|
|
49
|
+
identities: gotrueUser.identities?.map(normalizeIdentity),
|
|
50
|
+
factors: gotrueUser.factors?.map(normalizeFactor),
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Convert GoTrueTokenResponse to Session
|
|
55
|
+
*/
|
|
56
|
+
export function normalizeSession(response) {
|
|
57
|
+
return {
|
|
58
|
+
accessToken: response.access_token,
|
|
59
|
+
refreshToken: response.refresh_token,
|
|
60
|
+
expiresIn: response.expires_in,
|
|
61
|
+
expiresAt: response.expires_at,
|
|
62
|
+
tokenType: response.token_type,
|
|
63
|
+
user: normalizeUser(response.user),
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/auth/types.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,gCAAgC;AAChC,+CAA+C;AA4e/C,+CAA+C;AAC/C,cAAc;AACd,+CAA+C;AAE/C;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAAwB;IACxD,OAAO;QACL,EAAE,EAAE,QAAQ,CAAC,EAAE;QACf,MAAM,EAAE,QAAQ,CAAC,OAAO;QACxB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,UAAU,EAAE,QAAQ,CAAC,WAAW;QAChC,YAAY,EAAE,QAAQ,CAAC,aAAa;QACpC,SAAS,EAAE,QAAQ,CAAC,UAAU;QAC9B,SAAS,EAAE,QAAQ,CAAC,UAAU;QAC9B,YAAY,EAAE,QAAQ,CAAC,eAAe,IAAI,IAAI;KAC/C,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,MAAoB;IAClD,OAAO;QACL,EAAE,EAAE,MAAM,CAAC,EAAE;QACb,IAAI,EAAE,MAAM,CAAC,WAAW;QACxB,YAAY,EAAE,MAAM,CAAC,aAAa;QAClC,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,SAAS,EAAE,MAAM,CAAC,UAAU;QAC5B,SAAS,EAAE,MAAM,CAAC,UAAU;KAC7B,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,UAAsB;IAClD,OAAO;QACL,EAAE,EAAE,UAAU,CAAC,EAAE;QACjB,KAAK,EAAE,UAAU,CAAC,KAAK,IAAI,IAAI;QAC/B,KAAK,EAAE,UAAU,CAAC,KAAK,IAAI,IAAI;QAC/B,gBAAgB,EAAE,UAAU,CAAC,kBAAkB,IAAI,IAAI;QACvD,gBAAgB,EAAE,UAAU,CAAC,kBAAkB,IAAI,IAAI;QACvD,SAAS,EAAE,UAAU,CAAC,UAAU;QAChC,SAAS,EAAE,UAAU,CAAC,UAAU;QAChC,WAAW,EAAE,UAAU,CAAC,YAAY;QACpC,YAAY,EAAE,UAAU,CAAC,aAAa;QACtC,UAAU,EAAE,UAAU,CAAC,UAAU,EAAE,GAAG,CAAC,iBAAiB,CAAC;QACzD,OAAO,EAAE,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,eAAe,CAAC;KAClD,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,QAA6B;IAC5D,OAAO;QACL,WAAW,EAAE,QAAQ,CAAC,YAAY;QAClC,YAAY,EAAE,QAAQ,CAAC,aAAa;QACpC,SAAS,EAAE,QAAQ,CAAC,UAAU;QAC9B,SAAS,EAAE,QAAQ,CAAC,UAAU;QAC9B,SAAS,EAAE,QAAQ,CAAC,UAAU;QAC9B,IAAI,EAAE,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC;KACnC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import type { HttpClient } from "../../lib/http.js";
|
|
2
|
+
import type { UserIdentity, LinkIdentityOptions, UnlinkIdentityOptions } from "../types.js";
|
|
3
|
+
/**
|
|
4
|
+
* Identity management methods
|
|
5
|
+
*
|
|
6
|
+
* Manages linked OAuth identities (Google, GitHub, etc.)
|
|
7
|
+
*/
|
|
8
|
+
export declare class IdentityMethods {
|
|
9
|
+
private readonly http;
|
|
10
|
+
private readonly tenantId;
|
|
11
|
+
constructor(http: HttpClient, tenantId: string);
|
|
12
|
+
/**
|
|
13
|
+
* Get the base URL for OAuth redirects
|
|
14
|
+
*/
|
|
15
|
+
private getBaseUrl;
|
|
16
|
+
/**
|
|
17
|
+
* List all linked identities
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```typescript
|
|
21
|
+
* const identities = await client.auth.identities.list();
|
|
22
|
+
* for (const identity of identities) {
|
|
23
|
+
* console.log(identity.provider, identity.identityData.email);
|
|
24
|
+
* }
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
list(): Promise<UserIdentity[]>;
|
|
28
|
+
/**
|
|
29
|
+
* Link a new OAuth identity
|
|
30
|
+
*
|
|
31
|
+
* Initiates an OAuth flow to link another provider to the current account.
|
|
32
|
+
* After successful auth, the identity will be linked.
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* ```typescript
|
|
36
|
+
* // Link GitHub account
|
|
37
|
+
* const { url } = await client.auth.identities.link({
|
|
38
|
+
* provider: "github",
|
|
39
|
+
* redirectTo: "https://myapp.com/settings/accounts",
|
|
40
|
+
* });
|
|
41
|
+
* ```
|
|
42
|
+
*/
|
|
43
|
+
link(options: LinkIdentityOptions): Promise<{
|
|
44
|
+
url: string;
|
|
45
|
+
provider: string;
|
|
46
|
+
}>;
|
|
47
|
+
/**
|
|
48
|
+
* Unlink an OAuth identity
|
|
49
|
+
*
|
|
50
|
+
* Removes the linked identity from the account.
|
|
51
|
+
* User must have at least one other sign-in method.
|
|
52
|
+
*
|
|
53
|
+
* @example
|
|
54
|
+
* ```typescript
|
|
55
|
+
* await client.auth.identities.unlink({
|
|
56
|
+
* identityId: "identity-uuid",
|
|
57
|
+
* });
|
|
58
|
+
* ```
|
|
59
|
+
*/
|
|
60
|
+
unlink(options: UnlinkIdentityOptions): Promise<void>;
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=identities.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"identities.d.ts","sourceRoot":"","sources":["../../../src/auth/user/identities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,KAAK,EACV,YAAY,EACZ,mBAAmB,EACnB,qBAAqB,EAEtB,MAAM,aAAa,CAAC;AAGrB;;;;GAIG;AACH,qBAAa,eAAe;IAExB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBADR,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,MAAM;IAGnC;;OAEG;IACH,OAAO,CAAC,UAAU;IAIlB;;;;;;;;;;OAUG;IACG,IAAI,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAMrC;;;;;;;;;;;;;;OAcG;IACG,IAAI,CACR,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAqB7C;;;;;;;;;;;;OAYG;IACG,MAAM,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;CAO5D"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { authPath } from "../../lib/paths.js";
|
|
2
|
+
import { normalizeIdentity } from "../types.js";
|
|
3
|
+
/**
|
|
4
|
+
* Identity management methods
|
|
5
|
+
*
|
|
6
|
+
* Manages linked OAuth identities (Google, GitHub, etc.)
|
|
7
|
+
*/
|
|
8
|
+
export class IdentityMethods {
|
|
9
|
+
http;
|
|
10
|
+
tenantId;
|
|
11
|
+
constructor(http, tenantId) {
|
|
12
|
+
this.http = http;
|
|
13
|
+
this.tenantId = tenantId;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Get the base URL for OAuth redirects
|
|
17
|
+
*/
|
|
18
|
+
getBaseUrl() {
|
|
19
|
+
return this.http.getBaseUrl();
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* List all linked identities
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* ```typescript
|
|
26
|
+
* const identities = await client.auth.identities.list();
|
|
27
|
+
* for (const identity of identities) {
|
|
28
|
+
* console.log(identity.provider, identity.identityData.email);
|
|
29
|
+
* }
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
async list() {
|
|
33
|
+
const path = authPath(this.tenantId, "/user/identities");
|
|
34
|
+
const response = await this.http.get(path);
|
|
35
|
+
return response.map(normalizeIdentity);
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Link a new OAuth identity
|
|
39
|
+
*
|
|
40
|
+
* Initiates an OAuth flow to link another provider to the current account.
|
|
41
|
+
* After successful auth, the identity will be linked.
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* ```typescript
|
|
45
|
+
* // Link GitHub account
|
|
46
|
+
* const { url } = await client.auth.identities.link({
|
|
47
|
+
* provider: "github",
|
|
48
|
+
* redirectTo: "https://myapp.com/settings/accounts",
|
|
49
|
+
* });
|
|
50
|
+
* ```
|
|
51
|
+
*/
|
|
52
|
+
async link(options) {
|
|
53
|
+
const { provider, redirectTo, scopes } = options;
|
|
54
|
+
// Build authorization URL for linking
|
|
55
|
+
const params = new URLSearchParams();
|
|
56
|
+
if (redirectTo)
|
|
57
|
+
params.set("redirect_to", redirectTo);
|
|
58
|
+
if (scopes)
|
|
59
|
+
params.set("scopes", scopes);
|
|
60
|
+
const baseUrl = this.getBaseUrl();
|
|
61
|
+
const authorizePath = authPath(this.tenantId, `/user/identities/authorize`);
|
|
62
|
+
const queryString = params.toString();
|
|
63
|
+
const url = `${baseUrl}${authorizePath}?provider=${provider}${queryString ? `&${queryString}` : ""}`;
|
|
64
|
+
// Redirect in browser
|
|
65
|
+
if (typeof window !== "undefined") {
|
|
66
|
+
window.location.href = url;
|
|
67
|
+
}
|
|
68
|
+
return { url, provider };
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Unlink an OAuth identity
|
|
72
|
+
*
|
|
73
|
+
* Removes the linked identity from the account.
|
|
74
|
+
* User must have at least one other sign-in method.
|
|
75
|
+
*
|
|
76
|
+
* @example
|
|
77
|
+
* ```typescript
|
|
78
|
+
* await client.auth.identities.unlink({
|
|
79
|
+
* identityId: "identity-uuid",
|
|
80
|
+
* });
|
|
81
|
+
* ```
|
|
82
|
+
*/
|
|
83
|
+
async unlink(options) {
|
|
84
|
+
const path = authPath(this.tenantId, `/user/identities/${options.identityId}`);
|
|
85
|
+
await this.http.delete(path);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=identities.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"identities.js","sourceRoot":"","sources":["../../../src/auth/user/identities.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAO9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD;;;;GAIG;AACH,MAAM,OAAO,eAAe;IAEP;IACA;IAFnB,YACmB,IAAgB,EAChB,QAAgB;QADhB,SAAI,GAAJ,IAAI,CAAY;QAChB,aAAQ,GAAR,QAAQ,CAAQ;IAChC,CAAC;IAEJ;;OAEG;IACK,UAAU;QAChB,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;IAChC,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,IAAI;QACR,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;QACzD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAmB,IAAI,CAAC,CAAC;QAC7D,OAAO,QAAQ,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IACzC,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,KAAK,CAAC,IAAI,CACR,OAA4B;QAE5B,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QAEjD,sCAAsC;QACtC,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QACrC,IAAI,UAAU;YAAE,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;QACtD,IAAI,MAAM;YAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAEzC,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAClC,MAAM,aAAa,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,4BAA4B,CAAC,CAAC;QAC5E,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QACtC,MAAM,GAAG,GAAG,GAAG,OAAO,GAAG,aAAa,aAAa,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAErG,sBAAsB;QACtB,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;YAClC,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,GAAG,CAAC;QAC7B,CAAC;QAED,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;IAC3B,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,MAAM,CAAC,OAA8B;QACzC,MAAM,IAAI,GAAG,QAAQ,CACnB,IAAI,CAAC,QAAQ,EACb,oBAAoB,OAAO,CAAC,UAAU,EAAE,CACzC,CAAC;QACF,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/auth/user/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/auth/user/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC"}
|