@hyper-fetch/cli 7.5.3 → 8.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/.eslintrc.cjs +18 -0
  2. package/__tests__/codegen/openapi/v3/generator.spec.ts +3 -2
  3. package/__tests__/codegen/openapi/v3/operations.spec.ts +2 -2
  4. package/__tests__/codegen/openapi/v3/utils.spec.ts +1 -1
  5. package/__tests__/commands/generate/generate.spec.ts +17 -17
  6. package/__tests__/tsconfig.json +15 -4
  7. package/__tests__/vitest.setup.ts +10 -0
  8. package/dist/cli/index.d.ts +3 -0
  9. package/dist/cli/index.d.ts.map +1 -0
  10. package/dist/cli.js +12969 -0
  11. package/dist/cli.js.map +1 -0
  12. package/dist/codegen/index.d.ts +2 -0
  13. package/dist/codegen/index.d.ts.map +1 -0
  14. package/dist/codegen/openapi/generator.d.ts +61 -0
  15. package/dist/codegen/openapi/generator.d.ts.map +1 -0
  16. package/dist/codegen/openapi/http-methods.enum.d.ts +11 -0
  17. package/dist/codegen/openapi/http-methods.enum.d.ts.map +1 -0
  18. package/dist/codegen/openapi/index.d.ts +4 -0
  19. package/dist/codegen/openapi/index.d.ts.map +1 -0
  20. package/dist/codegen/openapi/openapi.types.d.ts +11 -0
  21. package/dist/codegen/openapi/openapi.types.d.ts.map +1 -0
  22. package/dist/codegen/openapi/operations.d.ts +6 -0
  23. package/dist/codegen/openapi/operations.d.ts.map +1 -0
  24. package/dist/codegen/openapi/utils.d.ts +7 -0
  25. package/dist/codegen/openapi/utils.d.ts.map +1 -0
  26. package/dist/commands/add.d.ts +10 -0
  27. package/dist/commands/add.d.ts.map +1 -0
  28. package/dist/commands/generate.d.ts +14 -0
  29. package/dist/commands/generate.d.ts.map +1 -0
  30. package/dist/commands/init.d.ts +3 -0
  31. package/dist/commands/init.d.ts.map +1 -0
  32. package/dist/config/auto-init.d.ts +6 -0
  33. package/dist/config/auto-init.d.ts.map +1 -0
  34. package/dist/config/get-config.d.ts +4 -0
  35. package/dist/config/get-config.d.ts.map +1 -0
  36. package/dist/config/get-ts-alias.d.ts +2 -0
  37. package/dist/config/get-ts-alias.d.ts.map +1 -0
  38. package/dist/config/schema.d.ts +21 -0
  39. package/dist/config/schema.d.ts.map +1 -0
  40. package/dist/generator-f5QJtrBW.js +194000 -0
  41. package/dist/generator-f5QJtrBW.js.map +1 -0
  42. package/dist/index.d.ts +2 -103
  43. package/dist/index.d.ts.map +1 -0
  44. package/dist/index.js +3 -3091
  45. package/dist/preflights/preflight-add.d.ts +27 -0
  46. package/dist/preflights/preflight-add.d.ts.map +1 -0
  47. package/dist/preflights/preflight-generate.d.ts +8 -0
  48. package/dist/preflights/preflight-generate.d.ts.map +1 -0
  49. package/dist/utils/errors.d.ts +14 -0
  50. package/dist/utils/errors.d.ts.map +1 -0
  51. package/dist/utils/handle-error.d.ts +2 -0
  52. package/dist/utils/handle-error.d.ts.map +1 -0
  53. package/dist/utils/highlighter.d.ts +7 -0
  54. package/dist/utils/highlighter.d.ts.map +1 -0
  55. package/dist/utils/logger.d.ts +8 -0
  56. package/dist/utils/logger.d.ts.map +1 -0
  57. package/dist/utils/resolve-import.d.ts +3 -0
  58. package/dist/utils/resolve-import.d.ts.map +1 -0
  59. package/dist/utils/show-help.d.ts +3 -0
  60. package/dist/utils/show-help.d.ts.map +1 -0
  61. package/dist/utils/spinner.d.ts +5 -0
  62. package/dist/utils/spinner.d.ts.map +1 -0
  63. package/dist/utils/zod-to-table.d.ts +6 -0
  64. package/dist/utils/zod-to-table.d.ts.map +1 -0
  65. package/package.json +5 -8
  66. package/src/codegen/openapi/generator.ts +4 -3
  67. package/src/codegen/openapi/openapi.types.ts +2 -2
  68. package/src/codegen/openapi/operations.ts +1 -1
  69. package/src/codegen/openapi/utils.ts +1 -1
  70. package/src/commands/add.ts +2 -2
  71. package/src/commands/init.ts +4 -3
  72. package/src/config/auto-init.ts +54 -0
  73. package/src/config/get-config.ts +5 -14
  74. package/src/preflights/preflight-add.ts +2 -2
  75. package/src/preflights/preflight-generate.ts +3 -3
  76. package/src/utils/show-help.ts +1 -1
  77. package/tsconfig.json +1 -1
  78. package/vite.config.ts +45 -0
  79. package/.eslintrc.json +0 -11
  80. package/__tests__/global.d.ts +0 -1
  81. package/__tests__/jest.setup.ts +0 -5
  82. package/dist/index.js.map +0 -7
  83. package/jest.config.ts +0 -6
@@ -0,0 +1,2 @@
1
+ export * from './openapi/generator';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/codegen/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC"}
@@ -0,0 +1,61 @@
1
+ import { ExportedType } from '@anttiviljami/dtsgenerator/dist/core/dtsGenerator';
2
+ import { Document, Operation, GeneratedTypes } from './openapi.types';
3
+ import { Config } from '../../config/schema';
4
+ export declare class OpenapiRequestGenerator {
5
+ protected openapiDocument: Document;
6
+ constructor(openapiDocument: any);
7
+ generateFile({ config, fileName }: {
8
+ config: Config;
9
+ fileName: string;
10
+ }): Promise<string>;
11
+ static getSchemaFromUrl: ({ url, config }: {
12
+ url: string;
13
+ config: Config;
14
+ }) => Promise<any>;
15
+ generateRequestsFromSchema: () => Promise<{
16
+ schemaTypes: string;
17
+ generatedTypes: string[];
18
+ sdkSchema: string;
19
+ createSdkFn: string;
20
+ }>;
21
+ static generateRequestInstanceType({ id, path: endpoint, queryParamsRequired }: {
22
+ id: string;
23
+ path: string;
24
+ queryParamsRequired?: boolean;
25
+ }, types: Record<string, string>): string;
26
+ static generateHyperFetchRequest({ id, path: relPath, method, queryParamsRequired, }: {
27
+ id: string;
28
+ path: string;
29
+ method: string;
30
+ queryParamsRequired?: boolean;
31
+ }, types: Record<string, string>): string;
32
+ static generateTypes({ id, pathParametersType, queryParametersType, requestBodyType, errorType, responseType, }: {
33
+ id: string;
34
+ pathParametersType: string | undefined;
35
+ queryParametersType: string | undefined;
36
+ requestBodyType: string | undefined;
37
+ errorType: string;
38
+ responseType: string;
39
+ }): GeneratedTypes<string>;
40
+ static generateMethodMetadata(operation: {
41
+ operationId: string;
42
+ path: string;
43
+ method: string;
44
+ } & Partial<Operation>, exportTypes: ExportedType[]): {
45
+ id: string;
46
+ pathParametersType: string | undefined;
47
+ queryParametersType: string | undefined;
48
+ requestBodyType: string | undefined;
49
+ errorType: string;
50
+ responseType: string;
51
+ path: string;
52
+ method: string;
53
+ queryParamsRequired: boolean;
54
+ };
55
+ static validateSchema(openapiDocument: Document): void;
56
+ static prepareSchema(openapiDocument: Document): Promise<{
57
+ schemaTypes: string;
58
+ exportedTypes: ExportedType[];
59
+ }>;
60
+ }
61
+ //# sourceMappingURL=generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../../src/codegen/openapi/generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mDAAmD,CAAC;AAUtF,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAI3E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAyB5C,qBAAa,uBAAuB;IAClC,SAAS,CAAC,eAAe,EAAE,QAAQ,CAAC;gBACxB,eAAe,EAAE,GAAG;IAI1B,YAAY,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE;IAyC7E,MAAM,CAAC,gBAAgB,GAAU,iBAAiB;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,kBAgB/E;IAEF,0BAA0B;;;;;OAmDxB;IAEF,MAAM,CAAC,2BAA2B,CAChC,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,mBAAmB,EAAE,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;KAAE,EACxG,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAgB/B,MAAM,CAAC,yBAAyB,CAC9B,EACE,EAAE,EACF,IAAI,EAAE,OAAO,EACb,MAAM,EACN,mBAAmB,GACpB,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;KAAE,EAC9E,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IA4C/B,MAAM,CAAC,aAAa,CAAC,EACnB,EAAE,EACF,kBAAkB,EAClB,mBAAmB,EACnB,eAAe,EACf,SAAS,EACT,YAAY,GACb,EAAE;QACD,EAAE,EAAE,MAAM,CAAC;QACX,kBAAkB,EAAE,MAAM,GAAG,SAAS,CAAC;QACvC,mBAAmB,EAAE,MAAM,GAAG,SAAS,CAAC;QACxC,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;QACpC,SAAS,EAAE,MAAM,CAAC;QAClB,YAAY,EAAE,MAAM,CAAC;KACtB;IAqBD,MAAM,CAAC,sBAAsB,CAC3B,SAAS,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,SAAS,CAAC,EACrF,WAAW,EAAE,YAAY,EAAE;;;;;;;;;;;IAiD7B,MAAM,CAAC,cAAc,CAAC,eAAe,EAAE,QAAQ;WAgClC,aAAa,CAAC,eAAe,EAAE,QAAQ;;;;CAWrD"}
@@ -0,0 +1,11 @@
1
+ export declare enum HttpMethod {
2
+ GET = "get",
3
+ PUT = "put",
4
+ POST = "post",
5
+ PATCH = "patch",
6
+ DELETE = "delete",
7
+ OPTIONS = "options",
8
+ HEAD = "head",
9
+ TRACE = "trace"
10
+ }
11
+ //# sourceMappingURL=http-methods.enum.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-methods.enum.d.ts","sourceRoot":"","sources":["../../../src/codegen/openapi/http-methods.enum.ts"],"names":[],"mappings":"AAAA,oBAAY,UAAU;IACpB,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,IAAI,SAAS;IACb,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,IAAI,SAAS;IACb,KAAK,UAAU;CAChB"}
@@ -0,0 +1,4 @@
1
+ export * from './generator';
2
+ export * from './openapi.types';
3
+ export * from './operations';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/codegen/openapi/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { OpenAPIV3, OpenAPIV3_1 } from 'openapi-types';
2
+ import { HttpMethod } from './http-methods.enum';
3
+ export interface Operation extends OpenAPIV3.OperationObject {
4
+ path: string;
5
+ method: HttpMethod;
6
+ }
7
+ export type Document = OpenAPIV3.Document | OpenAPIV3_1.Document;
8
+ export type GeneratedTypes<T extends string> = {
9
+ [K in `${T}PathParams` | `${T}QueryParams` | `${T}RequestBody` | `${T}ResponseType` | `${T}ErrorType`]: string;
10
+ };
11
+ //# sourceMappingURL=openapi.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openapi.types.d.ts","sourceRoot":"","sources":["../../../src/codegen/openapi/openapi.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEtD,MAAM,WAAW,SAAU,SAAQ,SAAS,CAAC,eAAe;IAC1D,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,UAAU,CAAC;CACpB;AAED,MAAM,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC;AAEjE,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,MAAM,IAAI;KAC5C,CAAC,IAAI,GAAG,CAAC,YAAY,GAAG,GAAG,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,GAAG,GAAG,CAAC,cAAc,GAAG,GAAG,CAAC,WAAW,GAAG,MAAM;CAC/G,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { OpenAPIV3, OpenAPIV3_1 } from 'openapi-types';
2
+ import { Operation } from './openapi.types';
3
+ export declare function getAvailableOperations(openApiJson: OpenAPIV3.Document | OpenAPIV3_1.Document): ({
4
+ operationId: string;
5
+ } & Operation)[];
6
+ //# sourceMappingURL=operations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operations.d.ts","sourceRoot":"","sources":["../../../src/codegen/openapi/operations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,SAAS,CAAC,QAAQ,GAAG,WAAW,CAAC,QAAQ,GAerF,CAAC;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAAC,EAAE,CAC9C"}
@@ -0,0 +1,7 @@
1
+ import { OpenAPIV3, OpenAPIV3_1 } from 'openapi-types';
2
+ export declare function adjustPathParamsFormat(path: string): string;
3
+ export declare function createTypeBaseName(str: string): string;
4
+ export declare function normalizeOperationId(key: string): string;
5
+ export declare const isUrl: (schemaPath: string) => boolean;
6
+ export declare function getBaseUrl(openApiJson: OpenAPIV3.Document | OpenAPIV3_1.Document): string;
7
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/codegen/openapi/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5D,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,UAGlD;AACD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,UAK7C;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CASxD;AACD,eAAO,MAAM,KAAK,GAAI,YAAY,MAAM,YAMvC,CAAC;AAEF,wBAAgB,UAAU,CAAC,WAAW,EAAE,SAAS,CAAC,QAAQ,GAAG,WAAW,CAAC,QAAQ,GAAG,MAAM,CAEzF"}
@@ -0,0 +1,10 @@
1
+ import { Command } from 'commander';
2
+ import { z } from 'zod';
3
+ export declare const addOptionsSchema: z.ZodObject<{
4
+ sdks: z.ZodOptional<z.ZodArray<z.ZodString>>;
5
+ yes: z.ZodOptional<z.ZodBoolean>;
6
+ overwrite: z.ZodOptional<z.ZodBoolean>;
7
+ cwd: z.ZodString;
8
+ }, z.core.$strip>;
9
+ export declare const add: Command;
10
+ //# sourceMappingURL=add.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAUxB,eAAO,MAAM,gBAAgB;;;;;iBAK3B,CAAC;AAgBH,eAAO,MAAM,GAAG,SAwDZ,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { Command } from 'commander';
2
+ import { z } from 'zod';
3
+ export declare const generateOptionsSchema: z.ZodObject<{
4
+ template: z.ZodEnum<{
5
+ openapi: "openapi";
6
+ swagger: "swagger";
7
+ }>;
8
+ url: z.ZodString;
9
+ fileName: z.ZodString;
10
+ cwd: z.ZodString;
11
+ overwrite: z.ZodOptional<z.ZodBoolean>;
12
+ }, z.core.$strip>;
13
+ export declare const generate: Command;
14
+ //# sourceMappingURL=generate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../src/commands/generate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAYxB,eAAO,MAAM,qBAAqB;;;;;;;;;iBAMhC,CAAC;AAEH,eAAO,MAAM,QAAQ,SAiFjB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare const init: Command;
3
+ //# sourceMappingURL=init.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAwBpC,eAAO,MAAM,IAAI,SAuKb,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Automatically initialize the project with default configuration.
3
+ * Called when `api.json` is not found during any CLI command.
4
+ */
5
+ export declare function autoInit(cwd: string): Promise<void>;
6
+ //# sourceMappingURL=auto-init.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auto-init.d.ts","sourceRoot":"","sources":["../../src/config/auto-init.ts"],"names":[],"mappings":"AASA;;;GAGG;AACH,wBAAsB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAwCzD"}
@@ -0,0 +1,4 @@
1
+ import { Config } from './schema';
2
+ export declare function resolveConfigPaths(cwd: string, config: Omit<Config, "resolvedPaths">): Promise<Config>;
3
+ export declare function getConfig(cwd: string): Promise<Config | null>;
4
+ //# sourceMappingURL=get-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-config.d.ts","sourceRoot":"","sources":["../../src/config/get-config.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAI5C,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAmB5G;AAED,wBAAsB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAiBnE"}
@@ -0,0 +1,2 @@
1
+ export declare function getTsConfigAliasPrefix(cwd: string): Promise<string | null>;
2
+ //# sourceMappingURL=get-ts-alias.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-ts-alias.d.ts","sourceRoot":"","sources":["../../src/config/get-ts-alias.ts"],"names":[],"mappings":"AAEA,wBAAsB,sBAAsB,CAAC,GAAG,EAAE,MAAM,0BAsBvD"}
@@ -0,0 +1,21 @@
1
+ import { z } from 'zod';
2
+ export declare const configSchema: z.ZodObject<{
3
+ tsx: z.ZodBoolean;
4
+ aliases: z.ZodObject<{
5
+ api: z.ZodString;
6
+ hooks: z.ZodString;
7
+ ui: z.ZodString;
8
+ components: z.ZodString;
9
+ lib: z.ZodString;
10
+ }, z.core.$strip>;
11
+ resolvedPaths: z.ZodObject<{
12
+ cwd: z.ZodString;
13
+ api: z.ZodString;
14
+ hooks: z.ZodString;
15
+ ui: z.ZodString;
16
+ components: z.ZodString;
17
+ lib: z.ZodString;
18
+ }, z.core.$strip>;
19
+ }, z.core.$strip>;
20
+ export type Config = z.infer<typeof configSchema>;
21
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;iBAiBvB,CAAC;AAEH,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC"}