convex-zen 0.0.1
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/cli/generate.d.ts +14 -0
- package/dist/cli/generate.d.ts.map +1 -0
- package/dist/cli/generate.js +297 -0
- package/dist/cli/generate.js.map +1 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +111 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/client/index.d.ts +300 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +434 -0
- package/dist/client/index.js.map +1 -0
- package/dist/client/plugins/admin.d.ts +92 -0
- package/dist/client/plugins/admin.d.ts.map +1 -0
- package/dist/client/plugins/admin.js +165 -0
- package/dist/client/plugins/admin.js.map +1 -0
- package/dist/client/primitives.d.ts +57 -0
- package/dist/client/primitives.d.ts.map +1 -0
- package/dist/client/primitives.js +64 -0
- package/dist/client/primitives.js.map +1 -0
- package/dist/client/providers.d.ts +14 -0
- package/dist/client/providers.d.ts.map +1 -0
- package/dist/client/providers.js +25 -0
- package/dist/client/providers.js.map +1 -0
- package/dist/client/react.d.ts +23 -0
- package/dist/client/react.d.ts.map +1 -0
- package/dist/client/react.js +48 -0
- package/dist/client/react.js.map +1 -0
- package/dist/client/tanstack-start-client-plugins.d.ts +34 -0
- package/dist/client/tanstack-start-client-plugins.d.ts.map +1 -0
- package/dist/client/tanstack-start-client-plugins.js +32 -0
- package/dist/client/tanstack-start-client-plugins.js.map +1 -0
- package/dist/client/tanstack-start-client.d.ts +52 -0
- package/dist/client/tanstack-start-client.d.ts.map +1 -0
- package/dist/client/tanstack-start-client.js +130 -0
- package/dist/client/tanstack-start-client.js.map +1 -0
- package/dist/client/tanstack-start-plugins.d.ts +27 -0
- package/dist/client/tanstack-start-plugins.d.ts.map +1 -0
- package/dist/client/tanstack-start-plugins.js +145 -0
- package/dist/client/tanstack-start-plugins.js.map +1 -0
- package/dist/client/tanstack-start.d.ts +130 -0
- package/dist/client/tanstack-start.d.ts.map +1 -0
- package/dist/client/tanstack-start.js +331 -0
- package/dist/client/tanstack-start.js.map +1 -0
- package/dist/component/_generated/api.d.ts +50 -0
- package/dist/component/_generated/api.d.ts.map +1 -0
- package/dist/component/_generated/api.js +31 -0
- package/dist/component/_generated/api.js.map +1 -0
- package/dist/component/_generated/component.d.ts +92 -0
- package/dist/component/_generated/component.d.ts.map +1 -0
- package/dist/component/_generated/component.js +11 -0
- package/dist/component/_generated/component.js.map +1 -0
- package/dist/component/_generated/dataModel.d.ts +46 -0
- package/dist/component/_generated/dataModel.d.ts.map +1 -0
- package/dist/component/_generated/dataModel.js +11 -0
- package/dist/component/_generated/dataModel.js.map +1 -0
- package/dist/component/_generated/server.d.ts +121 -0
- package/dist/component/_generated/server.d.ts.map +1 -0
- package/dist/component/_generated/server.js +78 -0
- package/dist/component/_generated/server.js.map +1 -0
- package/dist/component/convex.config.d.ts +3 -0
- package/dist/component/convex.config.d.ts.map +1 -0
- package/dist/component/convex.config.js +4 -0
- package/dist/component/convex.config.js.map +1 -0
- package/dist/component/core/sessions.d.ts +33 -0
- package/dist/component/core/sessions.d.ts.map +1 -0
- package/dist/component/core/sessions.js +186 -0
- package/dist/component/core/sessions.js.map +1 -0
- package/dist/component/core/users.d.ts +19 -0
- package/dist/component/core/users.d.ts.map +1 -0
- package/dist/component/core/users.js +154 -0
- package/dist/component/core/users.js.map +1 -0
- package/dist/component/core/verifications.d.ts +34 -0
- package/dist/component/core/verifications.d.ts.map +1 -0
- package/dist/component/core/verifications.js +135 -0
- package/dist/component/core/verifications.js.map +1 -0
- package/dist/component/gateway.d.ts +16 -0
- package/dist/component/gateway.d.ts.map +1 -0
- package/dist/component/gateway.js +229 -0
- package/dist/component/gateway.js.map +1 -0
- package/dist/component/lib/crypto.d.ts +24 -0
- package/dist/component/lib/crypto.d.ts.map +1 -0
- package/dist/component/lib/crypto.js +57 -0
- package/dist/component/lib/crypto.js.map +1 -0
- package/dist/component/lib/rateLimit.d.ts +26 -0
- package/dist/component/lib/rateLimit.d.ts.map +1 -0
- package/dist/component/lib/rateLimit.js +96 -0
- package/dist/component/lib/rateLimit.js.map +1 -0
- package/dist/component/lib/validators.d.ts +19 -0
- package/dist/component/lib/validators.d.ts.map +1 -0
- package/dist/component/lib/validators.js +12 -0
- package/dist/component/lib/validators.js.map +1 -0
- package/dist/component/plugins/admin.d.ts +72 -0
- package/dist/component/plugins/admin.d.ts.map +1 -0
- package/dist/component/plugins/admin.js +152 -0
- package/dist/component/plugins/admin.js.map +1 -0
- package/dist/component/providers/emailPassword.d.ts +49 -0
- package/dist/component/providers/emailPassword.d.ts.map +1 -0
- package/dist/component/providers/emailPassword.js +316 -0
- package/dist/component/providers/emailPassword.js.map +1 -0
- package/dist/component/providers/oauth.d.ts +33 -0
- package/dist/component/providers/oauth.d.ts.map +1 -0
- package/dist/component/providers/oauth.js +256 -0
- package/dist/component/providers/oauth.js.map +1 -0
- package/dist/component/schema.d.ts +132 -0
- package/dist/component/schema.d.ts.map +1 -0
- package/dist/component/schema.js +82 -0
- package/dist/component/schema.js.map +1 -0
- package/dist/types.d.ts +67 -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 +121 -0
- package/src/cli/generate.ts +360 -0
- package/src/cli/index.ts +133 -0
- package/src/client/index.ts +707 -0
- package/src/client/plugins/admin.ts +205 -0
- package/src/client/primitives.ts +100 -0
- package/src/client/providers.ts +35 -0
- package/src/client/react.ts +97 -0
- package/src/client/tanstack-start-client-plugins.ts +113 -0
- package/src/client/tanstack-start-client.ts +259 -0
- package/src/client/tanstack-start-plugins.ts +203 -0
- package/src/client/tanstack-start.ts +535 -0
- package/src/component/_generated/api.ts +70 -0
- package/src/component/_generated/component.ts +184 -0
- package/src/component/_generated/dataModel.ts +60 -0
- package/src/component/_generated/server.ts +156 -0
- package/src/component/convex.config.ts +5 -0
- package/src/component/core/sessions.ts +228 -0
- package/src/component/core/users.ts +199 -0
- package/src/component/core/verifications.ts +173 -0
- package/src/component/gateway.ts +321 -0
- package/src/component/lib/crypto.ts +63 -0
- package/src/component/lib/internalApi.ts +66 -0
- package/src/component/lib/rateLimit.ts +111 -0
- package/src/component/lib/validators.ts +12 -0
- package/src/component/plugins/admin.ts +178 -0
- package/src/component/providers/emailPassword.ts +374 -0
- package/src/component/providers/oauth.ts +324 -0
- package/src/component/schema.ts +88 -0
- package/src/types.ts +68 -0
|
@@ -0,0 +1,300 @@
|
|
|
1
|
+
import type { EmailProvider, ConvexAuthPlugin, OAuthProviderConfig } from "../types";
|
|
2
|
+
import { AdminPlugin } from "./plugins/admin";
|
|
3
|
+
/**
|
|
4
|
+
* Minimal Convex context interfaces. Parameters use `any` so that Convex's
|
|
5
|
+
* actual generic context types (which have typed FunctionReference params)
|
|
6
|
+
* satisfy these interfaces without triggering contravariant type errors.
|
|
7
|
+
*/
|
|
8
|
+
interface RunsQueries {
|
|
9
|
+
runQuery: (fn: any, args: any) => Promise<any>;
|
|
10
|
+
}
|
|
11
|
+
interface RunsMutations {
|
|
12
|
+
runMutation: (fn: any, args: any) => Promise<any>;
|
|
13
|
+
}
|
|
14
|
+
interface RunsActions {
|
|
15
|
+
runAction: (fn: any, args: any) => Promise<any>;
|
|
16
|
+
}
|
|
17
|
+
type ConvexCtx = RunsQueries & RunsMutations & RunsActions;
|
|
18
|
+
type PluginList = readonly ConvexAuthPlugin[];
|
|
19
|
+
type AdminPluginFor<TPlugins extends PluginList> = Extract<TPlugins[number], {
|
|
20
|
+
id: "admin";
|
|
21
|
+
}> extends never ? null : AdminPlugin;
|
|
22
|
+
type MaybePromise<T> = T | Promise<T>;
|
|
23
|
+
interface AdminFacade {
|
|
24
|
+
listUsers: (ctx: RunsActions, args?: {
|
|
25
|
+
token?: string;
|
|
26
|
+
limit?: number;
|
|
27
|
+
cursor?: string;
|
|
28
|
+
}) => Promise<unknown>;
|
|
29
|
+
banUser: (ctx: RunsActions, args: {
|
|
30
|
+
userId: string;
|
|
31
|
+
reason?: string;
|
|
32
|
+
expiresAt?: number;
|
|
33
|
+
token?: string;
|
|
34
|
+
}) => Promise<unknown>;
|
|
35
|
+
unbanUser: (ctx: RunsActions, args: {
|
|
36
|
+
userId: string;
|
|
37
|
+
token?: string;
|
|
38
|
+
}) => Promise<unknown>;
|
|
39
|
+
setRole: (ctx: RunsActions, args: {
|
|
40
|
+
userId: string;
|
|
41
|
+
role: string;
|
|
42
|
+
token?: string;
|
|
43
|
+
}) => Promise<unknown>;
|
|
44
|
+
deleteUser: (ctx: RunsActions, args: {
|
|
45
|
+
userId: string;
|
|
46
|
+
token?: string;
|
|
47
|
+
}) => Promise<unknown>;
|
|
48
|
+
}
|
|
49
|
+
type AdminFacadeFor<TPlugins extends PluginList> = Extract<TPlugins[number], {
|
|
50
|
+
id: "admin";
|
|
51
|
+
}> extends never ? null : AdminFacade;
|
|
52
|
+
export interface AuthUser {
|
|
53
|
+
_id: string;
|
|
54
|
+
email: string;
|
|
55
|
+
emailVerified: boolean;
|
|
56
|
+
name?: string;
|
|
57
|
+
image?: string;
|
|
58
|
+
role?: string;
|
|
59
|
+
banned?: boolean;
|
|
60
|
+
banReason?: string;
|
|
61
|
+
banExpires?: number;
|
|
62
|
+
createdAt?: number;
|
|
63
|
+
updatedAt?: number;
|
|
64
|
+
}
|
|
65
|
+
/** ConvexAuth constructor options. */
|
|
66
|
+
export interface ConvexAuthOptions<TPlugins extends PluginList = PluginList> {
|
|
67
|
+
providers?: OAuthProviderConfig[];
|
|
68
|
+
emailProvider?: EmailProvider;
|
|
69
|
+
plugins?: TPlugins;
|
|
70
|
+
/** Require email verification before sign-in. Default: true. */
|
|
71
|
+
requireEmailVerified?: boolean;
|
|
72
|
+
/**
|
|
73
|
+
* Optional global token resolver so callers can do auth APIs with only `ctx`.
|
|
74
|
+
* Commonly reads from framework/identity context.
|
|
75
|
+
*/
|
|
76
|
+
resolveSessionToken?: (ctx: unknown) => MaybePromise<string | null>;
|
|
77
|
+
/**
|
|
78
|
+
* Optional global userId resolver when using identity-based auth.
|
|
79
|
+
* Defaults to `ctx.auth.getUserIdentity()?.subject` when available.
|
|
80
|
+
*/
|
|
81
|
+
resolveUserId?: (ctx: unknown) => MaybePromise<string | null>;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* ConvexAuth — the main integration class for convex-zen.
|
|
85
|
+
*
|
|
86
|
+
* Instantiate once in the host app with the component reference and config.
|
|
87
|
+
* All auth operations go through this class.
|
|
88
|
+
*
|
|
89
|
+
* @example
|
|
90
|
+
* ```ts
|
|
91
|
+
* // convex/auth.ts
|
|
92
|
+
* import { ConvexAuth, googleProvider } from "convex-zen";
|
|
93
|
+
* import { adminPlugin } from "convex-zen/plugins/admin";
|
|
94
|
+
* import { components } from "./_generated/api";
|
|
95
|
+
*
|
|
96
|
+
* export const auth = new ConvexAuth(components.convexAuth, {
|
|
97
|
+
* providers: [googleProvider({ clientId: "...", clientSecret: "..." })],
|
|
98
|
+
* emailProvider: {
|
|
99
|
+
* sendVerificationEmail: async (to, code) => { ... },
|
|
100
|
+
* sendPasswordResetEmail: async (to, code) => { ... },
|
|
101
|
+
* },
|
|
102
|
+
* plugins: [adminPlugin({ defaultRole: "user" })],
|
|
103
|
+
* });
|
|
104
|
+
* ```
|
|
105
|
+
*/
|
|
106
|
+
export declare class ConvexAuth<TPlugins extends PluginList = PluginList> {
|
|
107
|
+
private readonly component;
|
|
108
|
+
private readonly options;
|
|
109
|
+
private readonly _adminPlugin;
|
|
110
|
+
private readonly providerMap;
|
|
111
|
+
private readonly adminConfig;
|
|
112
|
+
constructor(component: Record<string, unknown>, options?: ConvexAuthOptions<TPlugins>);
|
|
113
|
+
/** Access plugin instances after initialization. */
|
|
114
|
+
get plugins(): {
|
|
115
|
+
admin: AdminPluginFor<TPlugins>;
|
|
116
|
+
};
|
|
117
|
+
/** Alias for plugins to support auth.plugin.admin style access. */
|
|
118
|
+
get plugin(): {
|
|
119
|
+
admin: AdminPluginFor<TPlugins>;
|
|
120
|
+
};
|
|
121
|
+
/** Admin facade on the auth object (no separate authSystem object required). */
|
|
122
|
+
get admin(): AdminFacadeFor<TPlugins>;
|
|
123
|
+
/** Session helpers available directly on auth object. */
|
|
124
|
+
get session(): {
|
|
125
|
+
validate: (ctx: ConvexCtx, token?: string) => Promise<{
|
|
126
|
+
userId: string;
|
|
127
|
+
sessionId: string;
|
|
128
|
+
} | null>;
|
|
129
|
+
require: (ctx: ConvexCtx, token?: string) => Promise<{
|
|
130
|
+
userId: string;
|
|
131
|
+
sessionId: string;
|
|
132
|
+
}>;
|
|
133
|
+
};
|
|
134
|
+
/** Authenticated user helpers available directly on auth object. */
|
|
135
|
+
get user(): {
|
|
136
|
+
safeGet: (ctx: ConvexCtx, token?: string) => Promise<AuthUser | null>;
|
|
137
|
+
require: (ctx: ConvexCtx, token?: string) => Promise<AuthUser>;
|
|
138
|
+
};
|
|
139
|
+
/**
|
|
140
|
+
* Register OAuth callback HTTP routes on the host's router.
|
|
141
|
+
* Mounts GET `/auth/callback/:provider` for each configured OAuth provider.
|
|
142
|
+
*
|
|
143
|
+
* @example
|
|
144
|
+
* ```ts
|
|
145
|
+
* // convex/http.ts
|
|
146
|
+
* import { httpRouter } from "convex/server";
|
|
147
|
+
* import { auth } from "./auth";
|
|
148
|
+
* const http = httpRouter();
|
|
149
|
+
* auth.registerRoutes(http);
|
|
150
|
+
* export default http;
|
|
151
|
+
* ```
|
|
152
|
+
*/
|
|
153
|
+
registerRoutes(http: any, options?: {
|
|
154
|
+
callbackBaseUrl?: string;
|
|
155
|
+
}): void;
|
|
156
|
+
/**
|
|
157
|
+
* Sign up a new user with email and password.
|
|
158
|
+
* Generates a verification code and sends it via the configured emailProvider.
|
|
159
|
+
* Call from a Convex action in the host app.
|
|
160
|
+
*/
|
|
161
|
+
signUp(ctx: ConvexCtx, args: {
|
|
162
|
+
email: string;
|
|
163
|
+
password: string;
|
|
164
|
+
name?: string;
|
|
165
|
+
ipAddress?: string;
|
|
166
|
+
}): Promise<{
|
|
167
|
+
status: "verification_required";
|
|
168
|
+
}>;
|
|
169
|
+
/**
|
|
170
|
+
* Sign in with email and password.
|
|
171
|
+
* Call from a Convex action in the host app.
|
|
172
|
+
*/
|
|
173
|
+
signIn(ctx: ConvexCtx, args: {
|
|
174
|
+
email: string;
|
|
175
|
+
password: string;
|
|
176
|
+
ipAddress?: string;
|
|
177
|
+
userAgent?: string;
|
|
178
|
+
}): Promise<{
|
|
179
|
+
sessionToken: string;
|
|
180
|
+
userId: string;
|
|
181
|
+
}>;
|
|
182
|
+
/**
|
|
183
|
+
* Verify email with a verification code.
|
|
184
|
+
*/
|
|
185
|
+
verifyEmail(ctx: ConvexCtx, args: {
|
|
186
|
+
email: string;
|
|
187
|
+
code: string;
|
|
188
|
+
}): Promise<{
|
|
189
|
+
status: string;
|
|
190
|
+
}>;
|
|
191
|
+
/**
|
|
192
|
+
* Request a password reset. Sends the reset code via emailProvider.
|
|
193
|
+
*/
|
|
194
|
+
requestPasswordReset(ctx: ConvexCtx, args: {
|
|
195
|
+
email: string;
|
|
196
|
+
ipAddress?: string;
|
|
197
|
+
}): Promise<{
|
|
198
|
+
status: "sent";
|
|
199
|
+
}>;
|
|
200
|
+
/**
|
|
201
|
+
* Reset password using a verification code.
|
|
202
|
+
*/
|
|
203
|
+
resetPassword(ctx: ConvexCtx, args: {
|
|
204
|
+
email: string;
|
|
205
|
+
code: string;
|
|
206
|
+
newPassword: string;
|
|
207
|
+
}): Promise<{
|
|
208
|
+
status: string;
|
|
209
|
+
}>;
|
|
210
|
+
/**
|
|
211
|
+
* Get an OAuth authorization URL for the given provider.
|
|
212
|
+
* Call from a Convex action.
|
|
213
|
+
*/
|
|
214
|
+
getOAuthUrl(ctx: ConvexCtx, providerId: string, redirectUrl?: string): Promise<{
|
|
215
|
+
authorizationUrl: string;
|
|
216
|
+
}>;
|
|
217
|
+
/**
|
|
218
|
+
* Handle an OAuth callback. Call from a Convex HTTP action.
|
|
219
|
+
* Validates state, exchanges code for tokens, upserts user, creates session.
|
|
220
|
+
*/
|
|
221
|
+
handleCallback(ctx: ConvexCtx, args: {
|
|
222
|
+
code: string;
|
|
223
|
+
state: string;
|
|
224
|
+
providerId: string;
|
|
225
|
+
ipAddress?: string;
|
|
226
|
+
userAgent?: string;
|
|
227
|
+
redirectUrl?: string;
|
|
228
|
+
}): Promise<{
|
|
229
|
+
sessionToken: string;
|
|
230
|
+
userId: string;
|
|
231
|
+
redirectUrl?: string;
|
|
232
|
+
}>;
|
|
233
|
+
/**
|
|
234
|
+
* Validate a session token. Returns user/session IDs or null.
|
|
235
|
+
* Can be called from queries, mutations, or actions.
|
|
236
|
+
*/
|
|
237
|
+
validateSession(ctx: ConvexCtx, token: string): Promise<{
|
|
238
|
+
userId: string;
|
|
239
|
+
sessionId: string;
|
|
240
|
+
} | null>;
|
|
241
|
+
/**
|
|
242
|
+
* Validate session, resolving token from context when one is not provided.
|
|
243
|
+
*/
|
|
244
|
+
safeValidateSession(ctx: ConvexCtx, token?: string): Promise<{
|
|
245
|
+
userId: string;
|
|
246
|
+
sessionId: string;
|
|
247
|
+
} | null>;
|
|
248
|
+
/**
|
|
249
|
+
* Validate session and throw when missing/invalid.
|
|
250
|
+
*/
|
|
251
|
+
requireAuthSession(ctx: ConvexCtx, token?: string): Promise<{
|
|
252
|
+
userId: string;
|
|
253
|
+
sessionId: string;
|
|
254
|
+
}>;
|
|
255
|
+
/**
|
|
256
|
+
* Resolve the current signed-in user from a session token.
|
|
257
|
+
* Returns null when token is invalid/expired/banned.
|
|
258
|
+
*/
|
|
259
|
+
getAuthUserFromToken(ctx: ConvexCtx, token: string): Promise<AuthUser | null>;
|
|
260
|
+
/**
|
|
261
|
+
* Resolve authenticated user from `ctx` if possible.
|
|
262
|
+
* Resolution order:
|
|
263
|
+
* 1. explicit token argument
|
|
264
|
+
* 2. resolveSessionToken option
|
|
265
|
+
* 3. identity claims (session token-like fields)
|
|
266
|
+
* 4. resolveUserId option
|
|
267
|
+
* 5. `ctx.auth.getUserIdentity()?.subject`
|
|
268
|
+
*/
|
|
269
|
+
safeGetAuthUser(ctx: ConvexCtx, token?: string): Promise<AuthUser | null>;
|
|
270
|
+
/**
|
|
271
|
+
* Resolve current user and throw if unauthenticated.
|
|
272
|
+
*/
|
|
273
|
+
requireAuthUser(ctx: ConvexCtx, token?: string): Promise<AuthUser>;
|
|
274
|
+
/**
|
|
275
|
+
* Sign out by invalidating a session token.
|
|
276
|
+
* Can be called from a mutation or action context.
|
|
277
|
+
*/
|
|
278
|
+
signOut(ctx: RunsActions, token: string): Promise<void>;
|
|
279
|
+
/**
|
|
280
|
+
* Sign out all sessions for a user.
|
|
281
|
+
*/
|
|
282
|
+
signOutAll(ctx: RunsActions, userId: string): Promise<void>;
|
|
283
|
+
private getIdentity;
|
|
284
|
+
private getStringClaim;
|
|
285
|
+
private resolveToken;
|
|
286
|
+
private requireResolvedToken;
|
|
287
|
+
private resolveUserId;
|
|
288
|
+
/**
|
|
289
|
+
* Resolve a component function reference by path string.
|
|
290
|
+
* Converts "providers/emailPassword:signUp" into
|
|
291
|
+
* component.providers.emailPassword.signUp via nested property traversal.
|
|
292
|
+
*/
|
|
293
|
+
private fn;
|
|
294
|
+
}
|
|
295
|
+
export { googleProvider, githubProvider } from "./providers";
|
|
296
|
+
export { adminPlugin } from "./plugins/admin";
|
|
297
|
+
export { SessionPrimitives, createSessionPrimitives, } from "./primitives";
|
|
298
|
+
export type { ConvexAuthPlugin, EmailProvider, OAuthProviderConfig, AdminPluginConfig, } from "../types";
|
|
299
|
+
export type { SessionInfo, SignInInput, SignInOutput, SessionTransport, EstablishedSession, } from "./primitives";
|
|
300
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,gBAAgB,EAChB,mBAAmB,EAEpB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C;;;;GAIG;AACH,UAAU,WAAW;IAEnB,QAAQ,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;CAChD;AACD,UAAU,aAAa;IAErB,WAAW,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;CACnD;AACD,UAAU,WAAW;IAEnB,SAAS,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;CACjD;AACD,KAAK,SAAS,GAAG,WAAW,GAAG,aAAa,GAAG,WAAW,CAAC;AAC3D,KAAK,UAAU,GAAG,SAAS,gBAAgB,EAAE,CAAC;AAC9C,KAAK,cAAc,CAAC,QAAQ,SAAS,UAAU,IAC7C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;IAAE,EAAE,EAAE,OAAO,CAAA;CAAE,CAAC,SAAS,KAAK,GACpD,IAAI,GACJ,WAAW,CAAC;AAClB,KAAK,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAMtC,UAAU,WAAW;IACnB,SAAS,EAAE,CACT,GAAG,EAAE,WAAW,EAChB,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,KACvD,OAAO,CAAC,OAAO,CAAC,CAAC;IACtB,OAAO,EAAE,CACP,GAAG,EAAE,WAAW,EAChB,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,KAC1E,OAAO,CAAC,OAAO,CAAC,CAAC;IACtB,SAAS,EAAE,CACT,GAAG,EAAE,WAAW,EAChB,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,KACrC,OAAO,CAAC,OAAO,CAAC,CAAC;IACtB,OAAO,EAAE,CACP,GAAG,EAAE,WAAW,EAChB,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,KACnD,OAAO,CAAC,OAAO,CAAC,CAAC;IACtB,UAAU,EAAE,CACV,GAAG,EAAE,WAAW,EAChB,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,KACrC,OAAO,CAAC,OAAO,CAAC,CAAC;CACvB;AACD,KAAK,cAAc,CAAC,QAAQ,SAAS,UAAU,IAC7C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;IAAE,EAAE,EAAE,OAAO,CAAA;CAAE,CAAC,SAAS,KAAK,GACpD,IAAI,GACJ,WAAW,CAAC;AAElB,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,OAAO,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,sCAAsC;AACtC,MAAM,WAAW,iBAAiB,CAAC,QAAQ,SAAS,UAAU,GAAG,UAAU;IACzE,SAAS,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAClC,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,OAAO,CAAC,EAAE,QAAQ,CAAC;IACnB,gEAAgE;IAChE,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;;OAGG;IACH,mBAAmB,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,YAAY,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACpE;;;OAGG;IACH,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,YAAY,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CAC/D;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,UAAU,CAAC,QAAQ,SAAS,UAAU,GAAG,UAAU;IAC9D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA0B;IACpD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA8B;IACtD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqB;IAClD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAmC;IAC/D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA2B;gBAGrD,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,OAAO,GAAE,iBAAiB,CAAC,QAAQ,CAAM;IAmB3C,oDAAoD;IACpD,IAAI,OAAO;eAEqB,cAAc,CAAC,QAAQ,CAAC;MAEvD;IAED,mEAAmE;IACnE,IAAI,MAAM;eALsB,cAAc,CAAC,QAAQ,CAAC;MAOvD;IAED,gFAAgF;IAChF,IAAI,KAAK,IAAI,cAAc,CAAC,QAAQ,CAAC,CA8DpC;IAED,yDAAyD;IACzD,IAAI,OAAO;wBAEe,SAAS,UAAU,MAAM;oBAoQ9B,MAAM;uBAAa,MAAM;;uBAjQrB,SAAS,UAAU,MAAM;oBA+Q7B,MAAM;uBAAa,MAAM;;MA3Q7C;IAED,oEAAoE;IACpE,IAAI,IAAI;uBAEiB,SAAS,UAAU,MAAM;uBAGzB,SAAS,UAAU,MAAM;MAIjD;IAED;;;;;;;;;;;;;OAaG;IAEH,cAAc,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAiDvE;;;;OAIG;IACG,MAAM,CACV,GAAG,EAAE,SAAS,EACd,IAAI,EAAE;QACJ,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,GACA,OAAO,CAAC;QAAE,MAAM,EAAE,uBAAuB,CAAA;KAAE,CAAC;IAmB/C;;;OAGG;IACG,MAAM,CACV,GAAG,EAAE,SAAS,EACd,IAAI,EAAE;QACJ,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,GACA,OAAO,CAAC;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAOpD;;OAEG;IACG,WAAW,CACf,GAAG,EAAE,SAAS,EACd,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GACpC,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAO9B;;OAEG;IACG,oBAAoB,CACxB,GAAG,EAAE,SAAS,EACd,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAC1C,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAoB9B;;OAEG;IACG,aAAa,CACjB,GAAG,EAAE,SAAS,EACd,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,GACzD,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAO9B;;;OAGG;IACG,WAAW,CACf,GAAG,EAAE,SAAS,EACd,UAAU,EAAE,MAAM,EAClB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC;QAAE,gBAAgB,EAAE,MAAM,CAAA;KAAE,CAAC;IAWxC;;;OAGG;IACG,cAAc,CAClB,GAAG,EAAE,SAAS,EACd,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,GACA,OAAO,CAAC;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAmB1E;;;OAGG;IACG,eAAe,CACnB,GAAG,EAAE,SAAS,EACd,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAOxD;;OAEG;IACG,mBAAmB,CACvB,GAAG,EAAE,SAAS,EACd,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAQxD;;OAEG;IACG,kBAAkB,CACtB,GAAG,EAAE,SAAS,EACd,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAQjD;;;OAGG;IACG,oBAAoB,CACxB,GAAG,EAAE,SAAS,EACd,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAO3B;;;;;;;;OAQG;IACG,eAAe,CACnB,GAAG,EAAE,SAAS,EACd,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAiB3B;;OAEG;IACG,eAAe,CACnB,GAAG,EAAE,SAAS,EACd,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,QAAQ,CAAC;IAQpB;;;OAGG;IACG,OAAO,CAAC,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7D;;OAEG;IACG,UAAU,CAAC,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAInD,WAAW;IAazB,OAAO,CAAC,cAAc;YAWR,YAAY;YAsBZ,oBAAoB;YAWpB,aAAa;IAiB3B;;;;OAIG;IACH,OAAO,CAAC,EAAE;CAwBX;AAGD,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EACL,iBAAiB,EACjB,uBAAuB,GACxB,MAAM,cAAc,CAAC;AACtB,YAAY,EACV,gBAAgB,EAChB,aAAa,EACb,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,UAAU,CAAC;AAClB,YAAY,EACV,WAAW,EACX,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,cAAc,CAAC"}
|