@codewithagents/openapi-server 1.7.0 → 1.9.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.
package/dist/config.d.ts CHANGED
@@ -11,4 +11,11 @@ export interface ServerConfig {
11
11
  input_schema?: string;
12
12
  }
13
13
  export declare function loadConfig(cwd: string, configPath?: string): Promise<ServerConfig>;
14
+ /**
15
+ * Load a config file and return all configs as a normalized array.
16
+ *
17
+ * Single-spec config: returns a one-element array.
18
+ * Multi-spec config with "projects" key: returns N-element array.
19
+ */
20
+ export declare function loadConfigs(cwd: string, configPath?: string): Promise<ServerConfig[]>;
14
21
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,4BAA4B,CAAA;AAEnC,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,CAAA;AAEpE,MAAM,WAAW,YAAY;IAC3B,uDAAuD;IACvD,aAAa,EAAE,MAAM,CAAA;IACrB,yCAAyC;IACzC,MAAM,EAAE,MAAM,CAAA;IACd,0DAA0D;IAC1D,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,CAAA;IACnD,iGAAiG;IACjG,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,wBAAsB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CA8BxF"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,4BAA4B,CAAA;AAEnC,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,CAAA;AAEpE,MAAM,WAAW,YAAY;IAC3B,uDAAuD;IACvD,aAAa,EAAE,MAAM,CAAA;IACrB,yCAAyC;IACzC,MAAM,EAAE,MAAM,CAAA;IACd,0DAA0D;IAC1D,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,CAAA;IACnD,iGAAiG;IACjG,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AA6BD,wBAAsB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAOxF;AAED;;;;;GAKG;AACH,wBAAsB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAO3F"}
package/dist/config.js CHANGED
@@ -1,30 +1,44 @@
1
- import { loadConfigFile, validateConfigPath, validateInputPath, validateOutputPath, } from 'openapi-zod-ts/config-core';
1
+ import { loadConfigFile, loadConfigsFile, validateConfigPath, validateInputPath, validateOutputPath, } from 'openapi-zod-ts/config-core';
2
2
  export { validateConfigPath, validateInputPath, validateOutputPath };
3
+ function parseServerConfig(raw, base) {
4
+ const framework = raw['framework'];
5
+ if (framework !== undefined &&
6
+ framework !== 'hono' &&
7
+ framework !== 'express' &&
8
+ framework !== 'fastify' &&
9
+ framework !== 'none') {
10
+ throw new Error('"framework" must be one of: "hono", "express", "fastify", or "none"');
11
+ }
12
+ if (raw['input_schema'] !== undefined &&
13
+ (typeof raw['input_schema'] !== 'string' || !raw['input_schema'])) {
14
+ throw new Error('"input_schema" must be a non-empty string path to your Zod schema file');
15
+ }
16
+ return {
17
+ ...base,
18
+ framework: framework,
19
+ input_schema: raw['input_schema'],
20
+ };
21
+ }
3
22
  export async function loadConfig(cwd, configPath) {
4
23
  return loadConfigFile({
5
24
  cwd,
6
25
  configPath,
7
26
  defaultFileName: 'openapi-server.config.json',
8
- parse: (raw) => {
9
- const framework = raw['framework'];
10
- if (framework !== undefined &&
11
- framework !== 'hono' &&
12
- framework !== 'express' &&
13
- framework !== 'fastify' &&
14
- framework !== 'none') {
15
- throw new Error('"framework" must be one of: "hono", "express", "fastify", or "none"');
16
- }
17
- if (raw['input_schema'] !== undefined &&
18
- (typeof raw['input_schema'] !== 'string' || !raw['input_schema'])) {
19
- throw new Error('"input_schema" must be a non-empty string path to your Zod schema file');
20
- }
21
- return {
22
- input_openapi: raw['input_openapi'],
23
- output: raw['output'],
24
- framework: framework,
25
- input_schema: raw['input_schema'],
26
- };
27
- },
27
+ parse: parseServerConfig,
28
+ });
29
+ }
30
+ /**
31
+ * Load a config file and return all configs as a normalized array.
32
+ *
33
+ * Single-spec config: returns a one-element array.
34
+ * Multi-spec config with "projects" key: returns N-element array.
35
+ */
36
+ export async function loadConfigs(cwd, configPath) {
37
+ return loadConfigsFile({
38
+ cwd,
39
+ configPath,
40
+ defaultFileName: 'openapi-server.config.json',
41
+ parse: parseServerConfig,
28
42
  });
29
43
  }
30
44
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,4BAA4B,CAAA;AAEnC,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,CAAA;AAapE,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,GAAW,EAAE,UAAmB;IAC/D,OAAO,cAAc,CAAe;QAClC,GAAG;QACH,UAAU;QACV,eAAe,EAAE,4BAA4B;QAC7C,KAAK,EAAE,CAAC,GAAG,EAAE,EAAE;YACb,MAAM,SAAS,GAAG,GAAG,CAAC,WAAW,CAAC,CAAA;YAClC,IACE,SAAS,KAAK,SAAS;gBACvB,SAAS,KAAK,MAAM;gBACpB,SAAS,KAAK,SAAS;gBACvB,SAAS,KAAK,SAAS;gBACvB,SAAS,KAAK,MAAM,EACpB,CAAC;gBACD,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAA;YACxF,CAAC;YACD,IACE,GAAG,CAAC,cAAc,CAAC,KAAK,SAAS;gBACjC,CAAC,OAAO,GAAG,CAAC,cAAc,CAAC,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,EACjE,CAAC;gBACD,MAAM,IAAI,KAAK,CAAC,wEAAwE,CAAC,CAAA;YAC3F,CAAC;YACD,OAAO;gBACL,aAAa,EAAE,GAAG,CAAC,eAAe,CAAW;gBAC7C,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAW;gBAC/B,SAAS,EAAE,SAAgE;gBAC3E,YAAY,EAAE,GAAG,CAAC,cAAc,CAAuB;aACxD,CAAA;QACH,CAAC;KACF,CAAC,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,4BAA4B,CAAA;AAEnC,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,CAAA;AAapE,SAAS,iBAAiB,CACxB,GAA4B,EAC5B,IAAqD;IAErD,MAAM,SAAS,GAAG,GAAG,CAAC,WAAW,CAAC,CAAA;IAClC,IACE,SAAS,KAAK,SAAS;QACvB,SAAS,KAAK,MAAM;QACpB,SAAS,KAAK,SAAS;QACvB,SAAS,KAAK,SAAS;QACvB,SAAS,KAAK,MAAM,EACpB,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAA;IACxF,CAAC;IACD,IACE,GAAG,CAAC,cAAc,CAAC,KAAK,SAAS;QACjC,CAAC,OAAO,GAAG,CAAC,cAAc,CAAC,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,EACjE,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,wEAAwE,CAAC,CAAA;IAC3F,CAAC;IACD,OAAO;QACL,GAAG,IAAI;QACP,SAAS,EAAE,SAAgE;QAC3E,YAAY,EAAE,GAAG,CAAC,cAAc,CAAuB;KACxD,CAAA;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,GAAW,EAAE,UAAmB;IAC/D,OAAO,cAAc,CAAe;QAClC,GAAG;QACH,UAAU;QACV,eAAe,EAAE,4BAA4B;QAC7C,KAAK,EAAE,iBAAiB;KACzB,CAAC,CAAA;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,GAAW,EAAE,UAAmB;IAChE,OAAO,eAAe,CAAe;QACnC,GAAG;QACH,UAAU;QACV,eAAe,EAAE,4BAA4B;QAC7C,KAAK,EAAE,iBAAiB;KACzB,CAAC,CAAA;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"AAcA,wBAAsB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAgF9E"}
1
+ {"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"AAiGA,wBAAsB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAI9E"}
package/dist/generator.js CHANGED
@@ -1,85 +1,80 @@
1
1
  import { mkdir, readFile, writeFile } from 'node:fs/promises';
2
2
  import { join, relative, resolve } from 'node:path';
3
- import { loadConfig } from './config.js';
3
+ import { parseSpec } from 'openapi-zod-ts';
4
+ import { runProjects } from 'openapi-zod-ts/config-core';
5
+ import { loadConfigs } from './config.js';
6
+ import { generateService } from './plugins/service.js';
7
+ import { generateRouter, generateExpressRouter, generateFastifyRouter } from './plugins/router.js';
4
8
  async function formatTs(content, filePath) {
5
9
  const { format, resolveConfig } = await import('prettier');
6
10
  const config = await resolveConfig(filePath);
7
11
  return format(content, { ...config, parser: 'typescript' });
8
12
  }
9
- import { parseSpec } from 'openapi-zod-ts';
10
- import { generateService } from './plugins/service.js';
11
- import { generateRouter, generateExpressRouter, generateFastifyRouter } from './plugins/router.js';
13
+ /** Pick the framework-specific router generator for a first or second pass. */
14
+ function buildRouterFile(spec, framework, options) {
15
+ if (framework === 'hono')
16
+ return generateRouter(spec, options);
17
+ if (framework === 'express')
18
+ return generateExpressRouter(spec, options);
19
+ return generateFastifyRouter(spec, options);
20
+ }
12
21
  // fallow-ignore-next-line complexity
13
- export async function generate(cwd, configPath) {
14
- console.log('Loading config...');
15
- const config = await loadConfig(cwd, configPath);
22
+ async function generateOne(cwd, config, label) {
16
23
  const inputPath = resolve(cwd, config.input_openapi);
17
24
  const outputDir = resolve(cwd, config.output);
18
25
  const framework = config.framework ?? 'none';
19
- console.log(`Parsing spec: ${inputPath}`);
26
+ const prefix = label !== undefined ? `[${label}] ` : '';
27
+ console.log(`${prefix}Parsing spec: ${inputPath}`);
20
28
  const spec = await parseSpec(inputPath);
21
- const generatedFiles = [];
22
- generatedFiles.push(generateService(spec));
23
- if (framework === 'hono') {
24
- // First pass: generate router without schema validation
25
- generatedFiles.push(generateRouter(spec));
29
+ const generatedFiles = [generateService(spec)];
30
+ if (framework !== 'none') {
31
+ generatedFiles.push(buildRouterFile(spec, framework));
26
32
  }
27
- else if (framework === 'express') {
28
- // First pass: generate router without schema validation
29
- generatedFiles.push(generateExpressRouter(spec));
30
- }
31
- else if (framework === 'fastify') {
32
- // First pass: generate router without schema validation
33
- generatedFiles.push(generateFastifyRouter(spec));
34
- }
35
- console.log(`Writing output to: ${outputDir}`);
33
+ console.log(`${prefix}Writing output to: ${outputDir}`);
36
34
  await mkdir(outputDir, { recursive: true });
37
35
  for (const file of generatedFiles) {
38
36
  const filePath = join(outputDir, file.filename);
39
37
  await writeFile(filePath, await formatTs(file.content, filePath), 'utf-8');
40
- console.log(` ✓ ${file.filename}`);
38
+ console.log(`${prefix} ✓ ${file.filename}`);
41
39
  }
42
40
  // Second pass: if input_schema is configured and file exists, re-generate router with Zod validation
43
- if ((framework === 'hono' || framework === 'express' || framework === 'fastify') &&
44
- config.input_schema !== undefined) {
45
- const schemaPath = resolve(cwd, config.input_schema);
46
- let schemaContent;
47
- try {
48
- schemaContent = await readFile(schemaPath, 'utf-8');
49
- }
50
- catch {
51
- console.log(` ℹ input_schema not found at ${schemaPath}, skipping Zod validation`);
52
- console.log(`Done! Generated ${generatedFiles.length} file(s).`);
53
- return;
54
- }
55
- // Extract exported schema names from the schema file
56
- const exportedSchemas = new Set();
57
- for (const match of schemaContent.matchAll(/^export\s+const\s+(\w+Schema)\b/gm)) {
58
- exportedSchemas.add(match[1]);
59
- }
60
- if (exportedSchemas.size > 0) {
61
- // Compute relative import path from outputDir to schemaPath
62
- const relPath = relative(outputDir, schemaPath).replace(/\\/g, '/');
63
- // Ensure it starts with ./ or ../
64
- const schemaImportPath = relPath.startsWith('.') ? relPath : `./${relPath}`;
65
- // Strip .ts extension for import (use .js for NodeNext compatibility)
66
- const schemaImportPathJs = schemaImportPath.replace(/\.ts$/, '.js');
67
- const routerOptions = { schemaNames: exportedSchemas, schemaImportPath: schemaImportPathJs };
68
- let routerFile;
69
- if (framework === 'hono') {
70
- routerFile = generateRouter(spec, routerOptions);
71
- }
72
- else if (framework === 'express') {
73
- routerFile = generateExpressRouter(spec, routerOptions);
74
- }
75
- else {
76
- routerFile = generateFastifyRouter(spec, routerOptions);
77
- }
78
- const routerPath = join(outputDir, routerFile.filename);
79
- await writeFile(routerPath, await formatTs(routerFile.content, routerPath), 'utf-8');
80
- console.log(` ✓ router.ts (with Zod validation for ${exportedSchemas.size} schema(s))`);
81
- }
41
+ if (framework !== 'none' && config.input_schema !== undefined) {
42
+ await generateSchemaEnhancedRouter(cwd, config, spec, framework, outputDir, prefix);
43
+ }
44
+ console.log(`${prefix}Done! Generated ${generatedFiles.length} file(s).`);
45
+ }
46
+ async function generateSchemaEnhancedRouter(cwd, config, spec, framework, outputDir, prefix) {
47
+ const schemaPath = resolve(cwd, config.input_schema);
48
+ let schemaContent;
49
+ try {
50
+ schemaContent = await readFile(schemaPath, 'utf-8');
51
+ }
52
+ catch {
53
+ console.log(`${prefix} input_schema not found at ${schemaPath}, skipping Zod validation`);
54
+ return;
82
55
  }
83
- console.log(`Done! Generated ${generatedFiles.length} file(s).`);
56
+ // Extract exported schema names from the schema file
57
+ const exportedSchemas = new Set();
58
+ for (const match of schemaContent.matchAll(/^export\s+const\s+(\w+Schema)\b/gm)) {
59
+ exportedSchemas.add(match[1]);
60
+ }
61
+ if (exportedSchemas.size === 0)
62
+ return;
63
+ // Compute relative import path from outputDir to schemaPath
64
+ const relPath = relative(outputDir, schemaPath).replace(/\\/g, '/');
65
+ const schemaImportPath = relPath.startsWith('.') ? relPath : `./${relPath}`;
66
+ const schemaImportPathJs = schemaImportPath.replace(/\.ts$/, '.js');
67
+ const routerFile = buildRouterFile(spec, framework, {
68
+ schemaNames: exportedSchemas,
69
+ schemaImportPath: schemaImportPathJs,
70
+ });
71
+ const routerPath = join(outputDir, routerFile.filename);
72
+ await writeFile(routerPath, await formatTs(routerFile.content, routerPath), 'utf-8');
73
+ console.log(`${prefix} ✓ router.ts (with Zod validation for ${exportedSchemas.size} schema(s))`);
74
+ }
75
+ export async function generate(cwd, configPath) {
76
+ console.log('Loading config...');
77
+ const configs = await loadConfigs(cwd, configPath);
78
+ await runProjects(configs, (config, label) => generateOne(cwd, config, label));
84
79
  }
85
80
  //# sourceMappingURL=generator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"generator.js","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export type { ServerConfig } from './config.js';
2
- export { loadConfig } from './config.js';
2
+ export { loadConfig, loadConfigs } from './config.js';
3
3
  export { generateService } from './plugins/service.js';
4
4
  export { generateRouter } from './plugins/router.js';
5
5
  export { generate } from './generator.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA"}
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- export { loadConfig } from './config.js';
1
+ export { loadConfig, loadConfigs } from './config.js';
2
2
  export { generateService } from './plugins/service.js';
3
3
  export { generateRouter } from './plugins/router.js';
4
4
  export { generate } from './generator.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/plugins/router.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAChD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAgiBnD,UAAU,aAAa;IACrB,WAAW,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B;AA8ZD,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,WAAW,CAAC,QAAQ,EAC1B,OAAO,CAAC,EAAE,aAAa,GACtB,aAAa,CA0Cf;AAKD,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,WAAW,CAAC,QAAQ,EAC1B,OAAO,CAAC,EAAE,aAAa,GACtB,aAAa,CAmCf;AAKD,wBAAgB,cAAc,CAAC,IAAI,EAAE,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,aAAa,CAsCjG"}
1
+ {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/plugins/router.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAChD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAskBnD,UAAU,aAAa;IACrB,WAAW,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B;AAsqBD,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,WAAW,CAAC,QAAQ,EAC1B,OAAO,CAAC,EAAE,aAAa,GACtB,aAAa,CA4Cf;AAKD,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,WAAW,CAAC,QAAQ,EAC1B,OAAO,CAAC,EAAE,aAAa,GACtB,aAAa,CAqCf;AAKD,wBAAgB,cAAc,CAAC,IAAI,EAAE,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,aAAa,CAwCjG"}