@choiceform/shared-auth 0.1.16 → 0.1.18

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 (105) hide show
  1. package/README.md +286 -134
  2. package/dist/__tests__/auth-utils.test.d.ts +5 -0
  3. package/dist/__tests__/auth-utils.test.d.ts.map +1 -0
  4. package/dist/__tests__/auth-utils.test.js +96 -0
  5. package/dist/__tests__/store.test.d.ts +5 -0
  6. package/dist/__tests__/store.test.d.ts.map +1 -0
  7. package/dist/__tests__/store.test.js +210 -0
  8. package/dist/__tests__/user-mapper.test.d.ts +5 -0
  9. package/dist/__tests__/user-mapper.test.d.ts.map +1 -0
  10. package/dist/__tests__/user-mapper.test.js +76 -0
  11. package/dist/api/auth-api.d.ts +93 -9
  12. package/dist/api/auth-api.d.ts.map +1 -1
  13. package/dist/api/auth-api.js +219 -80
  14. package/dist/api/client.d.ts +10 -0
  15. package/dist/api/client.d.ts.map +1 -1
  16. package/dist/api/client.js +10 -0
  17. package/dist/api/organization-api.d.ts +2 -7
  18. package/dist/api/organization-api.d.ts.map +1 -1
  19. package/dist/api/organization-api.js +2 -17
  20. package/dist/api/team-api.d.ts +1 -5
  21. package/dist/api/team-api.d.ts.map +1 -1
  22. package/dist/api/team-api.js +5 -11
  23. package/dist/components/auth-sync.d.ts +27 -0
  24. package/dist/components/auth-sync.d.ts.map +1 -0
  25. package/dist/components/auth-sync.js +117 -0
  26. package/dist/components/protected-route.d.ts +18 -0
  27. package/dist/components/protected-route.d.ts.map +1 -0
  28. package/dist/components/protected-route.js +34 -0
  29. package/dist/components/sign-in-page.d.ts +21 -0
  30. package/dist/components/sign-in-page.d.ts.map +1 -0
  31. package/dist/components/sign-in-page.js +31 -0
  32. package/dist/config.js +1 -1
  33. package/dist/core.d.ts +148 -71
  34. package/dist/core.d.ts.map +1 -1
  35. package/dist/core.js +109 -28
  36. package/dist/hooks/index.d.ts +8 -0
  37. package/dist/hooks/index.d.ts.map +1 -0
  38. package/dist/hooks/index.js +7 -0
  39. package/dist/hooks/use-auth-init.d.ts +4 -3
  40. package/dist/hooks/use-auth-init.d.ts.map +1 -1
  41. package/dist/hooks/use-auth-init.js +18 -30
  42. package/dist/hooks/use-auth-sync.d.ts +60 -0
  43. package/dist/hooks/use-auth-sync.d.ts.map +1 -0
  44. package/dist/hooks/use-auth-sync.js +116 -0
  45. package/dist/hooks/use-email-verification.d.ts +85 -0
  46. package/dist/hooks/use-email-verification.d.ts.map +1 -0
  47. package/dist/hooks/use-email-verification.js +145 -0
  48. package/dist/hooks/use-protected-route.d.ts +67 -0
  49. package/dist/hooks/use-protected-route.d.ts.map +1 -0
  50. package/dist/hooks/use-protected-route.js +102 -0
  51. package/dist/index.d.ts +12 -6
  52. package/dist/index.d.ts.map +1 -1
  53. package/dist/index.js +43 -13
  54. package/dist/init.d.ts +127 -70
  55. package/dist/init.d.ts.map +1 -1
  56. package/dist/lib/auth-client.d.ts.map +1 -1
  57. package/dist/lib/auth-client.js +75 -2
  58. package/dist/services/auth-service.d.ts +101 -0
  59. package/dist/services/auth-service.d.ts.map +1 -0
  60. package/dist/services/auth-service.js +356 -0
  61. package/dist/services/callback-service.d.ts +33 -0
  62. package/dist/services/callback-service.d.ts.map +1 -0
  63. package/dist/services/callback-service.js +473 -0
  64. package/dist/services/companion-team.d.ts.map +1 -1
  65. package/dist/services/companion-team.js +41 -39
  66. package/dist/services/index.d.ts +2 -0
  67. package/dist/services/index.d.ts.map +1 -1
  68. package/dist/services/index.js +2 -0
  69. package/dist/store/actions.d.ts +54 -51
  70. package/dist/store/actions.d.ts.map +1 -1
  71. package/dist/store/actions.js +111 -243
  72. package/dist/store/computed.d.ts +72 -1
  73. package/dist/store/computed.d.ts.map +1 -1
  74. package/dist/store/computed.js +90 -3
  75. package/dist/store/index.d.ts +3 -3
  76. package/dist/store/index.d.ts.map +1 -1
  77. package/dist/store/index.js +2 -2
  78. package/dist/store/state.d.ts +10 -0
  79. package/dist/store/state.d.ts.map +1 -1
  80. package/dist/store/state.js +11 -1
  81. package/dist/store/utils.d.ts +3 -34
  82. package/dist/store/utils.d.ts.map +1 -1
  83. package/dist/store/utils.js +2 -22
  84. package/dist/types/auth.d.ts +106 -0
  85. package/dist/types/auth.d.ts.map +1 -1
  86. package/dist/types/callback.d.ts +35 -0
  87. package/dist/types/callback.d.ts.map +1 -0
  88. package/dist/types/callback.js +1 -0
  89. package/dist/types/index.d.ts +4 -3
  90. package/dist/types/index.d.ts.map +1 -1
  91. package/dist/types/organization.d.ts +19 -3
  92. package/dist/types/organization.d.ts.map +1 -1
  93. package/dist/types/team.d.ts +6 -2
  94. package/dist/types/team.d.ts.map +1 -1
  95. package/dist/types/user.d.ts +7 -3
  96. package/dist/types/user.d.ts.map +1 -1
  97. package/dist/utils/auth-utils.d.ts +60 -0
  98. package/dist/utils/auth-utils.d.ts.map +1 -0
  99. package/dist/utils/auth-utils.js +146 -0
  100. package/dist/utils/index.d.ts +1 -0
  101. package/dist/utils/index.d.ts.map +1 -1
  102. package/dist/utils/index.js +1 -0
  103. package/dist/utils/user-mapper.d.ts.map +1 -1
  104. package/dist/utils/user-mapper.js +2 -1
  105. package/package.json +10 -2
@@ -0,0 +1,210 @@
1
+ /**
2
+ * Store 测试
3
+ */
4
+ import { describe, it, expect, beforeEach, vi } from "vitest";
5
+ import { createAuthStore, createTokenStorage } from "../store/state";
6
+ import { createStoreActions } from "../store/actions";
7
+ import { createAuthComputed } from "../store/computed";
8
+ // Mock localStorage
9
+ const localStorageMock = (() => {
10
+ let store = {};
11
+ return {
12
+ getItem: vi.fn((key) => store[key] || null),
13
+ setItem: vi.fn((key, value) => {
14
+ store[key] = value;
15
+ }),
16
+ removeItem: vi.fn((key) => {
17
+ delete store[key];
18
+ }),
19
+ clear: vi.fn(() => {
20
+ store = {};
21
+ }),
22
+ };
23
+ })();
24
+ Object.defineProperty(globalThis, "localStorage", { value: localStorageMock });
25
+ describe("createTokenStorage", () => {
26
+ beforeEach(() => {
27
+ localStorageMock.clear();
28
+ vi.clearAllMocks();
29
+ });
30
+ it("应该保存和获取 token", () => {
31
+ const storage = createTokenStorage("test-token");
32
+ storage.save("my-token");
33
+ expect(localStorageMock.setItem).toHaveBeenCalledWith("test-token", "my-token");
34
+ localStorageMock.getItem.mockReturnValue("my-token");
35
+ expect(storage.get()).toBe("my-token");
36
+ });
37
+ it("应该清除 token", () => {
38
+ const storage = createTokenStorage("test-token");
39
+ storage.clear();
40
+ expect(localStorageMock.removeItem).toHaveBeenCalledWith("test-token");
41
+ });
42
+ it("应该处理 null token", () => {
43
+ const storage = createTokenStorage("test-token");
44
+ storage.save(null);
45
+ expect(localStorageMock.removeItem).toHaveBeenCalledWith("test-token");
46
+ });
47
+ });
48
+ describe("createAuthStore", () => {
49
+ beforeEach(() => {
50
+ localStorageMock.clear();
51
+ vi.clearAllMocks();
52
+ });
53
+ it("应该创建初始状态", () => {
54
+ const { authStore } = createAuthStore({ tokenStorageKey: "test-token" });
55
+ expect(authStore.user.get()).toBeNull();
56
+ expect(authStore.isAuthenticated.get()).toBe(false);
57
+ expect(authStore.isLoaded.get()).toBe(false);
58
+ expect(authStore.loading.get()).toBe(false);
59
+ expect(authStore.error.get()).toBeNull();
60
+ });
61
+ it("应该从 localStorage 读取初始 token", () => {
62
+ localStorageMock.getItem.mockReturnValue("stored-token");
63
+ const { authStore } = createAuthStore({ tokenStorageKey: "test-token" });
64
+ expect(authStore.token.get()).toBe("stored-token");
65
+ });
66
+ });
67
+ describe("createStoreActions", () => {
68
+ let authStore;
69
+ let tokenStorage;
70
+ let storeActions;
71
+ const mockUser = {
72
+ id: "user-123",
73
+ email: "test@example.com",
74
+ name: "Test User",
75
+ emailVerified: true,
76
+ createdAt: "2024-01-01",
77
+ updatedAt: "2024-01-01",
78
+ metadata: {},
79
+ };
80
+ beforeEach(() => {
81
+ localStorageMock.clear();
82
+ vi.clearAllMocks();
83
+ const store = createAuthStore({ tokenStorageKey: "test-token" });
84
+ authStore = store.authStore;
85
+ tokenStorage = store.tokenStorage;
86
+ storeActions = createStoreActions(authStore, tokenStorage);
87
+ });
88
+ it("应该设置用户", () => {
89
+ storeActions.setUser(mockUser);
90
+ expect(authStore.user.get()).toEqual(mockUser);
91
+ expect(authStore.isAuthenticated.get()).toBe(true);
92
+ });
93
+ it("应该清除用户", () => {
94
+ storeActions.setUser(mockUser);
95
+ storeActions.setUser(null);
96
+ expect(authStore.user.get()).toBeNull();
97
+ expect(authStore.isAuthenticated.get()).toBe(false);
98
+ });
99
+ it("应该更新用户", () => {
100
+ storeActions.setUser(mockUser);
101
+ storeActions.updateUser({ name: "New Name" });
102
+ expect(authStore.user.get()?.name).toBe("New Name");
103
+ expect(authStore.user.get()?.email).toBe("test@example.com");
104
+ });
105
+ it("应该设置 loading 状态", () => {
106
+ storeActions.setLoading(true);
107
+ expect(authStore.loading.get()).toBe(true);
108
+ storeActions.setLoading(false);
109
+ expect(authStore.loading.get()).toBe(false);
110
+ });
111
+ it("应该设置错误", () => {
112
+ storeActions.setError("Test error");
113
+ expect(authStore.error.get()).toBe("Test error");
114
+ storeActions.setError(null);
115
+ expect(authStore.error.get()).toBeNull();
116
+ });
117
+ it("应该清除认证状态", () => {
118
+ storeActions.setUser(mockUser);
119
+ storeActions.setError("some error");
120
+ storeActions.clearAuth();
121
+ expect(authStore.user.get()).toBeNull();
122
+ expect(authStore.isAuthenticated.get()).toBe(false);
123
+ expect(authStore.isLoaded.get()).toBe(true);
124
+ expect(authStore.loading.get()).toBe(false);
125
+ });
126
+ it("应该设置活跃组织 ID", () => {
127
+ storeActions.setUser(mockUser);
128
+ storeActions.setActiveOrganizationId("org-123");
129
+ expect(authStore.user.get()?.activeOrganizationId).toBe("org-123");
130
+ });
131
+ it("应该设置活跃团队 ID", () => {
132
+ storeActions.setUser(mockUser);
133
+ storeActions.setActiveTeamId("team-123");
134
+ expect(authStore.user.get()?.activeTeamId).toBe("team-123");
135
+ });
136
+ it("应该返回正确的状态", () => {
137
+ expect(storeActions.isAuthenticated()).toBe(false);
138
+ expect(storeActions.isLoading()).toBe(false);
139
+ expect(storeActions.isLoaded()).toBe(false);
140
+ expect(storeActions.getUser()).toBeNull();
141
+ expect(storeActions.getUserId()).toBeNull();
142
+ storeActions.setAuthenticated(mockUser);
143
+ expect(storeActions.isAuthenticated()).toBe(true);
144
+ expect(storeActions.getUser()).toEqual(mockUser);
145
+ expect(storeActions.getUserId()).toBe("user-123");
146
+ });
147
+ });
148
+ describe("createAuthComputed", () => {
149
+ let authStore;
150
+ const mockUser = {
151
+ id: "user-123",
152
+ email: "test@example.com",
153
+ name: "Test User",
154
+ emailVerified: true,
155
+ createdAt: "2024-01-01",
156
+ updatedAt: "2024-01-01",
157
+ activeOrganizationId: "org-123",
158
+ activeTeamId: "team-123",
159
+ inherentOrganizationId: "inherent-org",
160
+ inherentTeamId: "inherent-team",
161
+ metadata: {},
162
+ };
163
+ beforeEach(() => {
164
+ localStorageMock.clear();
165
+ vi.clearAllMocks();
166
+ const store = createAuthStore({ tokenStorageKey: "test-token" });
167
+ authStore = store.authStore;
168
+ });
169
+ it("应该计算 isInitializing", () => {
170
+ const computed = createAuthComputed(authStore);
171
+ expect(computed.isInitializing.get()).toBe(true);
172
+ authStore.isLoaded.set(true);
173
+ expect(computed.isInitializing.get()).toBe(false);
174
+ });
175
+ it("应该计算 isReady", () => {
176
+ const computed = createAuthComputed(authStore);
177
+ expect(computed.isReady.get()).toBe(false);
178
+ authStore.isLoaded.set(true);
179
+ authStore.isAuthenticated.set(true);
180
+ expect(computed.isReady.get()).toBe(true);
181
+ });
182
+ it("应该计算用户信息", () => {
183
+ const computed = createAuthComputed(authStore);
184
+ authStore.user.set(mockUser);
185
+ expect(computed.userId.get()).toBe("user-123");
186
+ expect(computed.userEmail.get()).toBe("test@example.com");
187
+ expect(computed.userName.get()).toBe("Test User");
188
+ expect(computed.emailVerified.get()).toBe(true);
189
+ });
190
+ it("应该计算组织和团队信息", () => {
191
+ const computed = createAuthComputed(authStore);
192
+ authStore.user.set(mockUser);
193
+ expect(computed.activeOrganizationId.get()).toBe("org-123");
194
+ expect(computed.activeTeamId.get()).toBe("team-123");
195
+ expect(computed.inherentOrganizationId.get()).toBe("inherent-org");
196
+ expect(computed.inherentTeamId.get()).toBe("inherent-team");
197
+ expect(computed.hasActiveOrganization.get()).toBe(true);
198
+ expect(computed.hasActiveTeam.get()).toBe(true);
199
+ });
200
+ it("应该计算是否在伴生组织/团队中", () => {
201
+ const computed = createAuthComputed(authStore);
202
+ authStore.user.set({
203
+ ...mockUser,
204
+ activeOrganizationId: "inherent-org",
205
+ activeTeamId: "inherent-team",
206
+ });
207
+ expect(computed.isInInherentOrganization.get()).toBe(true);
208
+ expect(computed.isInInherentTeam.get()).toBe(true);
209
+ });
210
+ });
@@ -0,0 +1,5 @@
1
+ /**
2
+ * User Mapper 测试
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=user-mapper.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-mapper.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/user-mapper.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -0,0 +1,76 @@
1
+ /**
2
+ * User Mapper 测试
3
+ */
4
+ import { describe, it, expect } from "vitest";
5
+ import { extractSessionUser } from "../utils/user-mapper";
6
+ describe("extractSessionUser", () => {
7
+ it("应该从完整的 session 数据中提取用户", () => {
8
+ const sessionData = {
9
+ user: {
10
+ id: "user-123",
11
+ email: "test@example.com",
12
+ name: "Test User",
13
+ emailVerified: true,
14
+ image: "https://example.com/avatar.png",
15
+ createdAt: new Date("2024-01-01"),
16
+ updatedAt: new Date("2024-01-02"),
17
+ inherentOrganizationId: "org-123",
18
+ inherentTeamId: "team-123",
19
+ metadata: { theme: "dark" },
20
+ },
21
+ session: {
22
+ activeOrganizationId: "active-org",
23
+ activeTeamId: "active-team",
24
+ },
25
+ };
26
+ const user = extractSessionUser(sessionData);
27
+ expect(user).not.toBeNull();
28
+ expect(user?.id).toBe("user-123");
29
+ expect(user?.email).toBe("test@example.com");
30
+ expect(user?.name).toBe("Test User");
31
+ expect(user?.emailVerified).toBe(true);
32
+ expect(user?.image).toBe("https://example.com/avatar.png");
33
+ expect(user?.activeOrganizationId).toBe("active-org");
34
+ expect(user?.activeTeamId).toBe("active-team");
35
+ expect(user?.inherentOrganizationId).toBe("org-123");
36
+ expect(user?.inherentTeamId).toBe("team-123");
37
+ expect(user?.metadata).toEqual({ theme: "dark" });
38
+ });
39
+ it("应该处理最小的用户数据", () => {
40
+ const sessionData = {
41
+ user: {
42
+ id: "user-123",
43
+ email: "test@example.com",
44
+ },
45
+ };
46
+ const user = extractSessionUser(sessionData);
47
+ expect(user).not.toBeNull();
48
+ expect(user?.id).toBe("user-123");
49
+ expect(user?.email).toBe("test@example.com");
50
+ expect(user?.name).toBe("");
51
+ expect(user?.emailVerified).toBe(false);
52
+ });
53
+ it("应该返回 null 当 user 不存在", () => {
54
+ expect(extractSessionUser(null)).toBeNull();
55
+ expect(extractSessionUser(undefined)).toBeNull();
56
+ expect(extractSessionUser({})).toBeNull();
57
+ expect(extractSessionUser({ user: null })).toBeNull();
58
+ });
59
+ it("应该返回 null 当缺少必需字段", () => {
60
+ expect(extractSessionUser({ user: { id: "123" } })).toBeNull();
61
+ expect(extractSessionUser({ user: { email: "test@example.com" } })).toBeNull();
62
+ });
63
+ it("应该处理字符串格式的日期", () => {
64
+ const sessionData = {
65
+ user: {
66
+ id: "user-123",
67
+ email: "test@example.com",
68
+ createdAt: "2024-01-01T00:00:00.000Z",
69
+ updatedAt: "2024-01-02T00:00:00.000Z",
70
+ },
71
+ };
72
+ const user = extractSessionUser(sessionData);
73
+ expect(user?.createdAt).toBe("2024-01-01T00:00:00.000Z");
74
+ expect(user?.updatedAt).toBe("2024-01-02T00:00:00.000Z");
75
+ });
76
+ });
@@ -1,28 +1,112 @@
1
1
  /**
2
2
  * 认证 API
3
+ *
4
+ * 所有认证相关的 HTTP 请求
5
+ * 统一使用 apiClient 发送请求
3
6
  */
4
- import type { MagicLinkRequest, SessionUser, SetActiveOrganizationRequest, SetActiveTeamRequest, UpdateUserRequest } from "../types";
5
- import { type ApiClient } from "./client";
6
- export declare function createAuthApi(apiClient: ApiClient, baseURL: string): {
7
- getSession(token?: string): Promise<SessionUser | null>;
7
+ import type { Account, MagicLinkRequest, OAuthAccountInfo, RevokeSessionRequest, SessionUser, UpdateUserRequest, UserSession } from "../types";
8
+ import type { ApiClient } from "./client";
9
+ /**
10
+ * 创建认证 API
11
+ *
12
+ * @param apiClient - API 客户端实例
13
+ */
14
+ export declare function createAuthApi(apiClient: ApiClient): {
15
+ /**
16
+ * 获取当前 session
17
+ * 使用 tokenStorage 中的 token
18
+ */
19
+ getSession(): Promise<SessionUser | null>;
20
+ /**
21
+ * 使用指定 token 获取 session
22
+ * 用于 OAuth 回调等场景
23
+ */
8
24
  getSessionWithToken(token: string): Promise<SessionUser | null>;
9
- setActiveOrganization(params: SetActiveOrganizationRequest, token?: string): Promise<void>;
10
- setActiveTeam(params: SetActiveTeamRequest, token?: string): Promise<void>;
25
+ /**
26
+ * 用户 Onboard
27
+ * 创建默认的伴生组织和团队
28
+ */
11
29
  onboard(token: string): Promise<void>;
30
+ /**
31
+ * 更新用户信息
32
+ */
12
33
  updateUser(data: UpdateUserRequest): Promise<SessionUser | null>;
34
+ /**
35
+ * 发送 Magic Link
36
+ */
13
37
  sendMagicLink(params: MagicLinkRequest): Promise<{
14
38
  status: boolean;
15
39
  }>;
40
+ /**
41
+ * 重新发送验证邮件
42
+ */
43
+ resendVerificationEmail(email: string, callbackURL?: string): Promise<{
44
+ status: boolean;
45
+ }>;
46
+ /**
47
+ * 检查邮箱是否已被注册
48
+ *
49
+ * @returns true 表示邮箱已被注册,false 表示可用
50
+ */
51
+ checkEmailExists(email: string): Promise<boolean>;
16
52
  /**
17
53
  * 为已登录用户绑定密码
18
54
  * 用于通过 OAuth 或 Magic Link 登录的用户设置密码
19
55
  */
20
56
  linkCredential(newPassword: string, token?: string): Promise<void>;
21
57
  /**
22
- * 检查邮箱是否已注册
23
- * 注意:此 API 可能不存在,调用时需要处理错误
58
+ * 更改密码
24
59
  */
25
- checkEmailExists(email: string): Promise<boolean>;
60
+ changePassword(currentPassword: string, newPassword: string, token?: string): Promise<{
61
+ success: boolean;
62
+ }>;
63
+ /**
64
+ * 更改邮箱
65
+ */
66
+ changeEmail(newEmail: string, callbackURL?: string, token?: string): Promise<{
67
+ success: boolean;
68
+ }>;
69
+ /**
70
+ * 获取用户关联的所有账户
71
+ *
72
+ * 返回用户通过不同方式登录的账户列表
73
+ * - credential: 邮箱密码登录
74
+ * - github: GitHub OAuth 登录
75
+ * - 其他 OAuth 提供商
76
+ */
77
+ listAccounts(token?: string): Promise<Account[]>;
78
+ /**
79
+ * 获取 OAuth 账户详细信息
80
+ *
81
+ * 通过 accountId 获取 OAuth 提供商的用户详细信息
82
+ * 如 GitHub 用户的 email、name、avatar 等
83
+ */
84
+ getOAuthAccountInfo(accountId: string, token?: string): Promise<OAuthAccountInfo | null>;
85
+ /**
86
+ * 取消关联 OAuth 账户
87
+ *
88
+ * 解除用户与 OAuth 提供商的关联
89
+ */
90
+ unlinkAccount(providerId: string, accountId?: string, token?: string): Promise<{
91
+ success: boolean;
92
+ }>;
93
+ /**
94
+ * 删除用户账户
95
+ */
96
+ deleteUser(password?: string, callbackURL?: string, token?: string): Promise<{
97
+ message: string;
98
+ success: boolean;
99
+ }>;
100
+ /**
101
+ * 获取当前用户的所有会话
102
+ */
103
+ listSessions(token?: string): Promise<UserSession[]>;
104
+ /**
105
+ * 撤销指定会话
106
+ */
107
+ revokeSession(params: RevokeSessionRequest, token?: string): Promise<{
108
+ success: boolean;
109
+ }>;
26
110
  };
27
111
  export type AuthApi = ReturnType<typeof createAuthApi>;
28
112
  //# sourceMappingURL=auth-api.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth-api.d.ts","sourceRoot":"","sources":["../../src/api/auth-api.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,gBAAgB,EAChB,WAAW,EACX,4BAA4B,EAC5B,oBAAoB,EACpB,iBAAiB,EAClB,MAAM,UAAU,CAAA;AAEjB,OAAO,EAAsB,KAAK,SAAS,EAAE,MAAM,UAAU,CAAA;AAE7D,wBAAgB,aAAa,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM;uBAEtC,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;+BAe5B,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;kCAgBjC,4BAA4B,UAAU,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;0BAepE,oBAAoB,UAAU,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;mBAe3D,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;qBAcpB,iBAAiB,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;0BAQ1C,gBAAgB,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC;IAc3E;;;OAGG;gCAC+B,MAAM,UAAU,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBxE;;;OAGG;4BAC2B,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;EAqB1D;AAED,MAAM,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,CAAA"}
1
+ {"version":3,"file":"auth-api.d.ts","sourceRoot":"","sources":["../../src/api/auth-api.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,OAAO,EACP,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,EACpB,WAAW,EACX,iBAAiB,EACjB,WAAW,EACZ,MAAM,UAAU,CAAA;AAEjB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAEzC;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,SAAS;IAM9C;;;OAGG;kBACiB,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAW/C;;;OAGG;+BAC8B,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAgBrE;;;OAGG;mBACkB,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAc3C;;OAEG;qBACoB,iBAAiB,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAetE;;OAEG;0BACyB,gBAAgB,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC;IAiB3E;;OAEG;mCAEM,MAAM,gBACC,MAAM,GACnB,OAAO,CAAC;QAAE,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC;IAmB/B;;;;OAIG;4BAC2B,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAqBvD;;;OAGG;gCAC+B,MAAM,UAAU,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBxE;;OAEG;oCAEgB,MAAM,eACV,MAAM,UACX,MAAM,GACb,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAsBhC;;OAEG;0BAES,MAAM,gBACF,MAAM,UACZ,MAAM,GACb,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IA2BhC;;;;;;;OAOG;yBACwB,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAiBtD;;;;;OAKG;mCAEU,MAAM,UACT,MAAM,GACb,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAqBnC;;;;OAIG;8BAEW,MAAM,cACN,MAAM,UACV,MAAM,GACb,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAkBhC;;OAEG;0BAEU,MAAM,gBACH,MAAM,UACZ,MAAM,GACb,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAsBjD;;OAEG;yBACwB,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAiB1D;;OAEG;0BAEO,oBAAoB,UACpB,MAAM,GACb,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;EAkBnC;AAED,MAAM,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,CAAA"}