@aigne/afs-git 1.11.0-beta.5 → 1.11.0-beta.7

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,76 +1,77 @@
1
- import { AFSAccessMode, AFSDeleteOptions, AFSDeleteResult, AFSListOptions, AFSListResult, AFSModule, AFSModuleLoadParams, AFSReadOptions, AFSReadResult, AFSRenameOptions, AFSSearchOptions, AFSSearchResult, AFSWriteEntryPayload, AFSWriteOptions, AFSWriteResult } from "@aigne/afs";
1
+ import { AFSAccessMode, AFSEntry, AFSExecResult, AFSExplainResult, AFSListResult, AFSModuleLoadParams, AFSSearchOptions, AFSStatResult, AFSWriteEntryPayload } from "@aigne/afs";
2
+ import { AFSBaseProvider, RouteContext } from "@aigne/afs/provider";
2
3
  import { z } from "zod";
3
4
 
4
5
  //#region src/index.d.ts
5
6
  interface AFSGitOptions {
6
7
  name?: string;
7
8
  /**
8
- * Local path to git repository.
9
- * If remoteUrl is provided and repoPath doesn't exist, will clone to this path.
10
- * If remoteUrl is provided and repoPath is not specified, clones to temp directory.
11
- */
9
+ * Local path to git repository.
10
+ * If remoteUrl is provided and repoPath doesn't exist, will clone to this path.
11
+ * If remoteUrl is provided and repoPath is not specified, clones to temp directory.
12
+ */
12
13
  repoPath?: string;
13
14
  /**
14
- * Remote repository URL (https or git protocol).
15
- * If provided, will clone the repository if repoPath doesn't exist.
16
- * Examples:
17
- * - https://github.com/user/repo.git
18
- * - git@github.com:user/repo.git
19
- */
15
+ * Remote repository URL (https or git protocol).
16
+ * If provided, will clone the repository if repoPath doesn't exist.
17
+ * Examples:
18
+ * - https://github.com/user/repo.git
19
+ * - git@github.com:user/repo.git
20
+ */
20
21
  remoteUrl?: string;
21
22
  description?: string;
22
23
  /**
23
- * List of branches to expose/access.
24
- * Also used for clone optimization when cloning from remoteUrl:
25
- * - Single branch (e.g., ['main']): Uses --single-branch for faster clone
26
- * - Multiple branches: Clones all branches, filters access to specified ones
27
- * - Not specified: All branches are accessible
28
- */
24
+ * List of branches to expose/access.
25
+ * Also used for clone optimization when cloning from remoteUrl:
26
+ * - Single branch (e.g., ['main']): Uses --single-branch for faster clone
27
+ * - Multiple branches: Clones all branches, filters access to specified ones
28
+ * - Not specified: All branches are accessible
29
+ */
29
30
  branches?: string[];
30
31
  /**
31
- * Access mode for this module.
32
- * - "readonly": Only read operations are allowed, uses git commands (no worktree)
33
- * - "readwrite": All operations are allowed, creates worktrees as needed
34
- * @default "readonly"
35
- */
32
+ * Access mode for this module.
33
+ * - "readonly": Only read operations are allowed, uses git commands (no worktree)
34
+ * - "readwrite": All operations are allowed, creates worktrees as needed
35
+ * @default "readonly"
36
+ */
36
37
  accessMode?: AFSAccessMode;
37
38
  /**
38
- * Automatically commit changes after write operations
39
- * @default false
40
- */
39
+ * Automatically commit changes after write operations
40
+ * @default false
41
+ */
41
42
  autoCommit?: boolean;
42
43
  /**
43
- * Author information for commits when autoCommit is enabled
44
- */
44
+ * Author information for commits when autoCommit is enabled
45
+ */
45
46
  commitAuthor?: {
46
47
  name: string;
47
48
  email: string;
48
49
  };
49
50
  /**
50
- * Clone depth for shallow clone (only used when cloning from remoteUrl)
51
- * @default 1
52
- */
51
+ * Clone depth for shallow clone (only used when cloning from remoteUrl)
52
+ * @default 1
53
+ */
53
54
  depth?: number;
54
55
  /**
55
- * Automatically clean up cloned repository on cleanup()
56
- * Only applies when repository was auto-cloned to temp directory
57
- * @default true
58
- */
56
+ * Automatically clean up cloned repository on cleanup()
57
+ * Only applies when repository was auto-cloned to temp directory
58
+ * @default true
59
+ */
59
60
  autoCleanup?: boolean;
60
61
  /**
61
- * Git clone options (only used when cloning from remoteUrl)
62
- */
62
+ * Git clone options (only used when cloning from remoteUrl)
63
+ */
63
64
  cloneOptions?: {
64
65
  /**
65
- * Authentication credentials for private repositories
66
- */
66
+ * Authentication credentials for private repositories
67
+ */
67
68
  auth?: {
68
69
  username?: string;
69
70
  password?: string;
70
71
  };
71
72
  };
72
73
  }
73
- declare class AFSGit implements AFSModule {
74
+ declare class AFSGit extends AFSBaseProvider {
74
75
  options: AFSGitOptions & {
75
76
  cwd?: string;
76
77
  };
@@ -204,9 +205,12 @@ declare class AFSGit implements AFSModule {
204
205
  } | undefined;
205
206
  }, any>;
206
207
  static load({
207
- filepath,
208
- parsed
209
- }: AFSModuleLoadParams): Promise<AFSGit>;
208
+ basePath,
209
+ config
210
+ }?: AFSModuleLoadParams): Promise<AFSGit>;
211
+ readonly name: string;
212
+ readonly description?: string;
213
+ readonly accessMode: AFSAccessMode;
210
214
  private initPromise;
211
215
  private git;
212
216
  private tempBase;
@@ -219,83 +223,305 @@ declare class AFSGit implements AFSModule {
219
223
  cwd?: string;
220
224
  });
221
225
  /**
222
- * Wait for async initialization to complete
223
- */
226
+ * Wait for async initialization to complete
227
+ */
224
228
  ready(): Promise<void>;
225
229
  /**
226
- * Async initialization logic (runs in constructor)
227
- * Handles cloning remote repositories if needed
228
- */
230
+ * Async initialization logic (runs in constructor)
231
+ * Handles cloning remote repositories if needed
232
+ */
229
233
  private initialize;
230
234
  /**
231
- * Clone a remote repository to local path
232
- */
235
+ * Clone a remote repository to local path
236
+ */
233
237
  private static cloneRepository;
234
- name: string;
235
- description?: string;
236
- accessMode: AFSAccessMode;
237
- /**
238
- * Parse AFS path into branch and file path
239
- * Branch names may contain slashes and are encoded with ~ in paths
240
- * Examples:
241
- * "/" -> { branch: undefined, filePath: "" }
242
- * "/main" -> { branch: "main", filePath: "" }
243
- * "/feature~new-feature" -> { branch: "feature/new-feature", filePath: "" }
244
- * "/main/src/index.ts" -> { branch: "main", filePath: "src/index.ts" }
245
- */
246
- private parsePath;
247
238
  /**
248
- * Detect MIME type based on file extension
249
- */
250
- private getMimeType;
239
+ * List root (branches)
240
+ * Note: list() returns only children (branches), never the path itself (per new semantics)
241
+ */
242
+ listRootHandler(ctx: RouteContext): Promise<AFSListResult & {
243
+ noExpand?: string[];
244
+ }>;
251
245
  /**
252
- * Check if file is likely binary based on extension
253
- */
254
- private isBinaryFile;
246
+ * List branch root (matches /main, /develop, etc.)
247
+ */
248
+ listBranchRootHandler(ctx: RouteContext<{
249
+ branch: string;
250
+ }>): Promise<AFSListResult & {
251
+ noExpand?: string[];
252
+ }>;
253
+ /**
254
+ * List files in branch with subpath (matches /main/src, /main/src/foo, etc.)
255
+ */
256
+ listBranchHandler(ctx: RouteContext<{
257
+ branch: string;
258
+ path: string;
259
+ }>): Promise<AFSListResult & {
260
+ noExpand?: string[];
261
+ }>;
262
+ /**
263
+ * Read root metadata (introspection only, read-only)
264
+ */
265
+ readRootMetaHandler(_ctx: RouteContext): Promise<AFSEntry | undefined>;
266
+ /**
267
+ * Read branch root metadata (introspection only, read-only)
268
+ */
269
+ readBranchMetaHandler(ctx: RouteContext<{
270
+ branch: string;
271
+ }>): Promise<AFSEntry | undefined>;
272
+ /**
273
+ * Read file or directory metadata in branch (introspection only, read-only)
274
+ */
275
+ readPathMetaHandler(ctx: RouteContext<{
276
+ branch: string;
277
+ path: string;
278
+ }>): Promise<AFSEntry | undefined>;
279
+ /**
280
+ * Read root
281
+ */
282
+ readRootHandler(_ctx: RouteContext): Promise<AFSEntry | undefined>;
283
+ /**
284
+ * Read branch root
285
+ */
286
+ readBranchRootHandler(ctx: RouteContext<{
287
+ branch: string;
288
+ }>): Promise<AFSEntry | undefined>;
289
+ /**
290
+ * Read file or directory in branch
291
+ */
292
+ readBranchHandler(ctx: RouteContext<{
293
+ branch: string;
294
+ path: string;
295
+ }>): Promise<AFSEntry | undefined>;
296
+ /**
297
+ * Write to root is not allowed
298
+ */
299
+ writeRootHandler(): Promise<never>;
300
+ /**
301
+ * Write to branch root is not allowed
302
+ */
303
+ writeBranchRootHandler(): Promise<never>;
304
+ /**
305
+ * Write file in branch
306
+ */
307
+ writeHandler(ctx: RouteContext<{
308
+ branch: string;
309
+ path: string;
310
+ }>, payload: AFSWriteEntryPayload): Promise<{
311
+ data: AFSEntry;
312
+ }>;
313
+ /**
314
+ * Delete root is not allowed
315
+ */
316
+ deleteRootHandler(): Promise<never>;
317
+ /**
318
+ * Delete branch root is not allowed
319
+ */
320
+ deleteBranchRootHandler(ctx: RouteContext<{
321
+ branch: string;
322
+ }>): Promise<never>;
323
+ /**
324
+ * Delete file in branch
325
+ */
326
+ deleteHandler(ctx: RouteContext<{
327
+ branch: string;
328
+ path: string;
329
+ }>): Promise<{
330
+ message: string;
331
+ }>;
332
+ /**
333
+ * Rename file in branch
334
+ */
335
+ renameHandler(ctx: RouteContext<{
336
+ branch: string;
337
+ path: string;
338
+ }>, newPath: string): Promise<{
339
+ message: string;
340
+ }>;
341
+ /**
342
+ * Search files in branch root
343
+ */
344
+ searchBranchRootHandler(ctx: RouteContext<{
345
+ branch: string;
346
+ }>, query: string, options?: AFSSearchOptions): Promise<{
347
+ data: AFSEntry[];
348
+ message?: string;
349
+ }>;
350
+ /**
351
+ * Search files in branch path
352
+ */
353
+ searchHandler(ctx: RouteContext<{
354
+ branch: string;
355
+ path: string;
356
+ }>, query: string, options?: AFSSearchOptions): Promise<{
357
+ data: AFSEntry[];
358
+ message?: string;
359
+ }>;
255
360
  /**
256
- * Get list of available branches
257
- */
361
+ * Internal search implementation
362
+ */
363
+ private searchInBranch;
364
+ /**
365
+ * Stat root
366
+ */
367
+ statRootHandler(_ctx: RouteContext): Promise<AFSStatResult>;
368
+ /**
369
+ * Stat branch root
370
+ */
371
+ statBranchRootHandler(ctx: RouteContext<{
372
+ branch: string;
373
+ }>): Promise<AFSStatResult>;
374
+ /**
375
+ * Stat file or directory in branch
376
+ */
377
+ statHandler(ctx: RouteContext<{
378
+ branch: string;
379
+ path: string;
380
+ }>): Promise<AFSStatResult>;
381
+ /**
382
+ * Explain root → repo info, branch list, default branch
383
+ */
384
+ explainRootHandler(_ctx: RouteContext): Promise<AFSExplainResult>;
385
+ /**
386
+ * Explain branch → branch name, HEAD commit, file count
387
+ */
388
+ explainBranchHandler(ctx: RouteContext<{
389
+ branch: string;
390
+ }>): Promise<AFSExplainResult>;
391
+ /**
392
+ * Explain file or directory → path, size, last modified commit
393
+ */
394
+ explainPathHandler(ctx: RouteContext<{
395
+ branch: string;
396
+ path: string;
397
+ }>): Promise<AFSExplainResult>;
398
+ readCapabilitiesHandler(_ctx: RouteContext): Promise<AFSEntry | undefined>;
399
+ /**
400
+ * List available actions for a branch
401
+ */
402
+ listBranchActions(ctx: RouteContext<{
403
+ branch: string;
404
+ }>): Promise<AFSListResult>;
405
+ /**
406
+ * diff action — compare two branches or refs
407
+ */
408
+ diffAction(_ctx: RouteContext<{
409
+ branch: string;
410
+ }>, args: Record<string, unknown>): Promise<AFSExecResult>;
411
+ /**
412
+ * create-branch action — create a new branch
413
+ */
414
+ createBranchAction(_ctx: RouteContext<{
415
+ branch: string;
416
+ }>, args: Record<string, unknown>): Promise<AFSExecResult>;
417
+ /**
418
+ * commit action — commit staged changes
419
+ */
420
+ commitAction(_ctx: RouteContext<{
421
+ branch: string;
422
+ }>, args: Record<string, unknown>): Promise<AFSExecResult>;
423
+ /**
424
+ * merge action — merge a branch into current branch
425
+ */
426
+ mergeAction(_ctx: RouteContext<{
427
+ branch: string;
428
+ }>, args: Record<string, unknown>): Promise<AFSExecResult>;
429
+ /**
430
+ * List .log/ → commit list with pagination
431
+ */
432
+ listLogHandler(ctx: RouteContext<{
433
+ branch: string;
434
+ }>): Promise<AFSListResult>;
435
+ /**
436
+ * Read .log/{index} → commit diff/patch content
437
+ */
438
+ readLogEntryHandler(ctx: RouteContext<{
439
+ branch: string;
440
+ index: string;
441
+ }>): Promise<AFSEntry | undefined>;
442
+ /**
443
+ * Read .log/{index}/.meta → commit metadata only (no diff)
444
+ */
445
+ readLogEntryMetaHandler(ctx: RouteContext<{
446
+ branch: string;
447
+ index: string;
448
+ }>): Promise<AFSEntry | undefined>;
449
+ /**
450
+ * Decode branch name (replace ~ with /)
451
+ */
452
+ private decodeBranchName;
453
+ /**
454
+ * Encode branch name (replace / with ~)
455
+ */
456
+ private encodeBranchName;
457
+ /**
458
+ * Parse AFS path into branch and file path
459
+ * Branch names may contain slashes and are encoded with ~ in paths
460
+ */
461
+ private parsePath;
462
+ /**
463
+ * Build AFS path with encoded branch name
464
+ * Branch names with slashes are encoded by replacing / with ~
465
+ */
466
+ private buildBranchPath;
467
+ /**
468
+ * Get list of available branches
469
+ */
258
470
  private getBranches;
259
471
  /**
260
- * Ensure worktree exists for a branch (lazy creation)
261
- */
472
+ * Check if a branch exists, throw AFSNotFoundError if not
473
+ */
474
+ private ensureBranchExists;
475
+ /**
476
+ * Get the number of children for a tree (directory) in git
477
+ */
478
+ private getChildrenCount;
479
+ /**
480
+ * Get the last commit on a branch
481
+ */
482
+ private getLastCommit;
483
+ /**
484
+ * Count total files in a tree (recursively)
485
+ */
486
+ private getTreeFileCount;
487
+ /**
488
+ * Get a list of commits on a branch with limit/offset
489
+ */
490
+ private getCommitList;
491
+ /**
492
+ * Ensure worktree exists for a branch (lazy creation)
493
+ */
262
494
  private ensureWorktree;
263
495
  /**
264
- * List files using git ls-tree (no worktree needed)
265
- */
496
+ * List files using git ls-tree (no worktree needed)
497
+ * Note: list() returns only children, never the path itself (per new semantics)
498
+ */
266
499
  private listWithGitLsTree;
267
500
  /**
268
- * Build AFS path with encoded branch name
269
- * Branch names with slashes are encoded by replacing / with ~
270
- * @param branch Branch name (may contain slashes)
271
- * @param filePath File path within branch
272
- */
273
- private buildPath;
274
- list(path: string, options?: AFSListOptions): Promise<AFSListResult>;
275
- read(path: string, _options?: AFSReadOptions): Promise<AFSReadResult>;
276
- write(path: string, entry: AFSWriteEntryPayload, options?: AFSWriteOptions): Promise<AFSWriteResult>;
277
- delete(path: string, options?: AFSDeleteOptions): Promise<AFSDeleteResult>;
278
- rename(oldPath: string, newPath: string, options?: AFSRenameOptions): Promise<{
279
- message?: string;
280
- }>;
281
- search(path: string, query: string, options?: AFSSearchOptions): Promise<AFSSearchResult>;
501
+ * Detect MIME type based on file extension
502
+ */
503
+ private getMimeType;
504
+ /**
505
+ * Check if file is likely binary based on extension
506
+ */
507
+ private isBinaryFile;
282
508
  /**
283
- * Fetch latest changes from remote
284
- */
509
+ * Fetch latest changes from remote
510
+ */
285
511
  fetch(): Promise<void>;
286
512
  /**
287
- * Pull latest changes from remote for current branch
288
- */
513
+ * Pull latest changes from remote for current branch
514
+ */
289
515
  pull(): Promise<void>;
290
516
  /**
291
- * Push local changes to remote
292
- */
517
+ * Push local changes to remote
518
+ */
293
519
  push(branch?: string): Promise<void>;
294
520
  /**
295
- * Cleanup all worktrees (useful when unmounting)
296
- */
521
+ * Cleanup all worktrees (useful when unmounting)
522
+ */
297
523
  cleanup(): Promise<void>;
298
524
  }
299
525
  //#endregion
300
- export { AFSGit, AFSGitOptions };
526
+ export { AFSGit, AFSGit as default, AFSGitOptions };
301
527
  //# sourceMappingURL=index.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.cts","names":[],"sources":["../src/index.ts"],"mappings":";;;;UAiCiB,aAAA;EAAA,IAAA;EAAA;AA6GjB;;;;EA7GiB,QAAA;EAAA;AA6GjB;;;;;;EA7GiB,SAAA;EAAA,WAAA;EAAA;AA6GjB;;;;;;EA7GiB,QAAA;EAAA;AA6GjB;;;;;EA7GiB,UAAA,GA+BF,aAAA;EAAA;AA8Ef;;;EA9Ee,UAAA;EAAA;AA8Ef;;EA9Ee,YAAA;IAAA,IAAA;IAAA,KAAA;EAAA;EAAA;AA8Ef;;;EA9Ee,KAAA;EAAA;AA8Ef;;;;EA9Ee,WAAA;EAAA;AA8Ef;;EA9Ee,YAAA;IAAA;AA8Ef;;IA9Ee,IAAA;MAAA,QAAA;MAAA,QAAA;IAAA;EAAA;AAAA;AAAA,cA8EF,MAAA,YAAkB,SAAA;EAAA,OAAA,EAqBD,aAAA;IAAA,GAAA;EAAA;EAAA,OAAA,OAAA,GApBf,CAAA,CAAA,UAAA,CAAA,CAAA,CAAA,UAAA,CAAA,CAAA,CAAA,SAAA;IAAA,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAI2B,mBAAA,GAAmB,OAAA,CAAA,MAAA;EAAA,QAAA,WAAA;EAAA,QAAA,GAAA;EAAA,QAAA,QAAA;EAAA,QAAA,SAAA;EAAA,QAAA,QAAA;EAAA,QAAA,YAAA;EAAA,QAAA,UAAA;EAAA,QAAA,QAAA;EAAA,YAAA,OAAA,EAgB/B,aAAA;IAAA,GAAA;EAAA;EAAA;;;EAAA,MAAA,GAgDb,OAAA;EAAA;;;;EAAA,QAAA,UAAA;EAAA;;;EAAA,eAAA,eAAA;EAAA,IAAA;EAAA,WAAA;EAAA,UAAA,EAgGH,aAAA;EAAA;;;;;;;;;EAAA,QAAA,SAAA;EAAA;;;EAAA,QAAA,WAAA;EAAA;;;EAAA,QAAA,YAAA;EAAA;;;EAAA,QAAA,WAAA;EAAA;;;EAAA,QAAA,cAAA;EAAA;;;EAAA,QAAA,iBAAA;EAAA;;;;;;EAAA,QAAA,SAAA;EAAA,KAAA,IAAA,UAAA,OAAA,GA8PuB,cAAA,GAAiB,OAAA,CAAQ,aAAA;EAAA,KAAA,IAAA,UAAA,QAAA,GAyCxB,cAAA,GAAiB,OAAA,CAAQ,aAAA;EAAA,MAAA,IAAA,UAAA,KAAA,EAgGpD,oBAAA,EAAA,OAAA,GACG,eAAA,GACT,OAAA,CAAQ,cAAA;EAAA,OAAA,IAAA,UAAA,OAAA,GA2E0B,gBAAA,GAAmB,OAAA,CAAQ,eAAA;EAAA,OAAA,OAAA,UAAA,OAAA,UAAA,OAAA,GAoDpD,gBAAA,GACT,OAAA;IAAA,OAAA;EAAA;EAAA,OAAA,IAAA,UAAA,KAAA,UAAA,OAAA,GAyEiD,gBAAA,GAAmB,OAAA,CAAQ,eAAA;EAAA;;;EAAA,MAAA,GAuFhE,OAAA;EAAA;;;EAAA,KAAA,GAQD,OAAA;EAAA;;;EAAA,KAAA,MAAA,YAQe,OAAA;EAAA;;;EAAA,QAAA,GAYZ,OAAA;AAAA"}
1
+ {"version":3,"file":"index.d.cts","names":[],"sources":["../src/index.ts"],"mappings":";;;;;UA8CiB,aAAA;EACf,IAAA;EADe;;;;;EAOf,QAAA;EAQA;;;;;;;EAAA,SAAA;EACA,WAAA;EAgCA;;;;;;;EAxBA,QAAA;EAqFW;;;;;;EA9EX,UAAA,GAAa,aAAA;;;;;EAKb,UAAA;;;;EAIA,YAAA;IACE,IAAA;IACA,KAAA;EAAA;;;;;EAMF,KAAA;;;;;;EAMA,WAAA;EA4DoB;;;EAxDpB,YAAA;IAwDgE;;;IApD9D,IAAA;MACE,QAAA;MACA,QAAA;IAAA;EAAA;AAAA;AAAA,cA6CO,MAAA,SAAe,eAAA;EAyBP,OAAA,EAAS,aAAA;IAAkB,GAAA;EAAA;EAAA,OAxBvC,MAAA,CAAA,GAAM,CAAA,CAAA,UAAA,CAAA,CAAA,CAAA,UAAA,CAAA,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAIA,IAAA,CAAA;IAAO,QAAA;IAAU;EAAA,IAAU,mBAAA,GAAwB,OAAA,CAAA,MAAA;EAAA,SAOvD,IAAA;EAAA,SACA,WAAA;EAAA,SACA,UAAA,EAAY,aAAA;EAAA,QAEb,WAAA;EAAA,QACA,GAAA;EAAA,QACA,QAAA;EAAA,QACA,SAAA;EAAA,QACA,QAAA;EAAA,QACA,YAAA;EAAA,QACA,UAAA;EAAA,QACA,QAAA;cAEW,OAAA,EAAS,aAAA;IAAkB,GAAA;EAAA;;;;EAiDxC,KAAA,CAAA,GAAS,OAAA;;;;;UAQD,UAAA;;;;iBAoEO,eAAA;;;;;EA4Cf,eAAA,CAAgB,GAAA,EAAK,YAAA,GAAe,OAAA,CAAQ,aAAA;IAAkB,QAAA;EAAA;;;;EA8C9D,qBAAA,CACJ,GAAA,EAAK,YAAA;IAAe,MAAA;EAAA,KACnB,OAAA,CAAQ,aAAA;IAAkB,QAAA;EAAA;;;;EAavB,iBAAA,CACJ,GAAA,EAAK,YAAA;IAAe,MAAA;IAAgB,IAAA;EAAA,KACnC,OAAA,CAAQ,aAAA;IAAkB,QAAA;EAAA;;;;EAqBvB,mBAAA,CAAoB,IAAA,EAAM,YAAA,GAAe,OAAA,CAAQ,QAAA;;;;EAajD,qBAAA,CACJ,GAAA,EAAK,YAAA;IAAe,MAAA;EAAA,KACnB,OAAA,CAAQ,QAAA;;;;EAmBL,mBAAA,CACJ,GAAA,EAAK,YAAA;IAAe,MAAA;IAAgB,IAAA;EAAA,KACnC,OAAA,CAAQ,QAAA;;;;EAwCL,eAAA,CAAgB,IAAA,EAAM,YAAA,GAAe,OAAA,CAAQ,QAAA;;;;EAa7C,qBAAA,CACJ,GAAA,EAAK,YAAA;IAAe,MAAA;EAAA,KACnB,OAAA,CAAQ,QAAA;;;;EAiBL,iBAAA,CACJ,GAAA,EAAK,YAAA;IAAe,MAAA;IAAgB,IAAA;EAAA,KACnC,OAAA,CAAQ,QAAA;;;;EAqHL,gBAAA,CAAA,GAAoB,OAAA;;;;EAQpB,sBAAA,CAAA,GAA0B,OAAA;;;;EAQ1B,YAAA,CACJ,GAAA,EAAK,YAAA;IAAe,MAAA;IAAgB,IAAA;EAAA,IACpC,OAAA,EAAS,oBAAA,GACR,OAAA;IAAU,IAAA,EAAM,QAAA;EAAA;;;;EA6Eb,iBAAA,CAAA,GAAqB,OAAA;;;;EAQrB,uBAAA,CAAwB,GAAA,EAAK,YAAA;IAAe,MAAA;EAAA,KAAoB,OAAA;;;;EAWhE,aAAA,CACJ,GAAA,EAAK,YAAA;IAAe,MAAA;IAAgB,IAAA;EAAA,KACnC,OAAA;IAAU,OAAA;EAAA;;;;EA4DP,aAAA,CACJ,GAAA,EAAK,YAAA;IAAe,MAAA;IAAgB,IAAA;EAAA,IACpC,OAAA,WACC,OAAA;IAAU,OAAA;EAAA;EAxqBmD;;;EA+vB1D,uBAAA,CACJ,GAAA,EAAK,YAAA;IAAe,MAAA;EAAA,IACpB,KAAA,UACA,OAAA,GAAU,gBAAA,GACT,OAAA;IAAU,IAAA,EAAM,QAAA;IAAY,OAAA;EAAA;EApvBvB;;;EA4vBF,aAAA,CACJ,GAAA,EAAK,YAAA;IAAe,MAAA;IAAgB,IAAA;EAAA,IACpC,KAAA,UACA,OAAA,GAAU,gBAAA,GACT,OAAA;IAAU,IAAA,EAAM,QAAA;IAAY,OAAA;EAAA;EAlsBjB;;;EAAA,QAysBA,cAAA;EAzlBQ;;;EA6qBhB,eAAA,CAAgB,IAAA,EAAM,YAAA,GAAe,OAAA,CAAQ,aAAA;EA/nB7C;;;EA6oBA,qBAAA,CAAsB,GAAA,EAAK,YAAA;IAAe,MAAA;EAAA,KAAoB,OAAA,CAAQ,aAAA;EA3oB/C;;;EAypBvB,WAAA,CAAY,GAAA,EAAK,YAAA;IAAe,MAAA;IAAgB,IAAA;EAAA,KAAkB,OAAA,CAAQ,aAAA;EA1oBrE;;;EA0pBL,kBAAA,CAAmB,IAAA,EAAM,YAAA,GAAe,OAAA,CAAQ,gBAAA;EAroB5B;;;EA6qBpB,oBAAA,CAAqB,GAAA,EAAK,YAAA;IAAe,MAAA;EAAA,KAAoB,OAAA,CAAQ,gBAAA;EA/pBzE;;;EAwrBI,kBAAA,CACJ,GAAA,EAAK,YAAA;IAAe,MAAA;IAAgB,IAAA;EAAA,KACnC,OAAA,CAAQ,gBAAA;EA4DL,uBAAA,CAAwB,IAAA,EAAM,YAAA,GAAe,OAAA,CAAQ,QAAA;EAhuBxD;;;EAo0BG,iBAAA,CAAkB,GAAA,EAAK,YAAA;IAAe,MAAA;EAAA,KAAoB,OAAA,CAAQ,aAAA;EA5xBrB;;;EAu3B7C,UAAA,CACJ,IAAA,EAAM,YAAA;IAAe,MAAA;EAAA,IACrB,IAAA,EAAM,MAAA,oBACL,OAAA,CAAQ,aAAA;EA32BA;;;EAs6BL,kBAAA,CACJ,IAAA,EAAM,YAAA;IAAe,MAAA;EAAA,IACrB,IAAA,EAAM,MAAA,oBACL,OAAA,CAAQ,aAAA;EAt5BR;;;EAq8BG,YAAA,CACJ,IAAA,EAAM,YAAA;IAAe,MAAA;EAAA,IACrB,IAAA,EAAM,MAAA,oBACL,OAAA,CAAQ,aAAA;EAn0BL;;;EA63BA,WAAA,CACJ,IAAA,EAAM,YAAA;IAAe,MAAA;EAAA,IACrB,IAAA,EAAM,MAAA,oBACL,OAAA,CAAQ,aAAA;EA93BT;;;EA+7BI,cAAA,CAAe,GAAA,EAAK,YAAA;IAAe,MAAA;EAAA,KAAoB,OAAA,CAAQ,aAAA;EAz2B/D;;;EAy4BA,mBAAA,CACJ,GAAA,EAAK,YAAA;IAAe,MAAA;IAAgB,KAAA;EAAA,KACnC,OAAA,CAAQ,QAAA;EA/3BW;;;EA06BhB,uBAAA,CACJ,GAAA,EAAK,YAAA;IAAe,MAAA;IAAgB,KAAA;EAAA,KACnC,OAAA,CAAQ,QAAA;EA92BW;;;EAAA,QAk5Bd,gBAAA;EAh5BL;;;EAAA,QAu5BK,gBAAA;EA/zBc;;;;EAAA,QAu0Bd,SAAA;EAp0BL;;;;EAAA,QAu1BK,eAAA;EA90BD;;;EAAA,QAy1BO,WAAA;EAx1BZ;;;EAAA,QAu2BY,kBAAA;EAr2BD;;;EAAA,QA+2BC,gBAAA;EApxBR;;;EAAA,QAkyBQ,aAAA;EAlyBqC;;;EAAA,QAmzBrC,gBAAA;EAryBc;;;EAAA,QAmzBd,aAAA;EAryBS;;;EAAA,QAu0BT,cAAA;EAv0B0D;;;;EAAA,QAw2B1D,iBAAA;EAx1BgC;;;EAAA,QAk8BtC,WAAA;EA15BuC;;;EAAA,QAw7BvC,YAAA;EA/5BF;;;EA27BA,KAAA,CAAA,GAAS,OAAA;EA17Bb;;;EAk8BI,IAAA,CAAA,GAAQ,OAAA;EAr4BsB;;;EA64B9B,IAAA,CAAK,MAAA,YAAkB,OAAA;EAzyBvB;;;EAqzBA,OAAA,CAAA,GAAW,OAAA;AAAA"}