fastify-flux-cli 2.23.0 → 2.26.3
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/package.json +11 -11
- package/dist/commands/new.d.ts +0 -1
- package/dist/commands/new.d.ts.map +0 -1
- package/dist/commands/new.js +0 -2
- package/dist/commands/new.js.map +0 -1
- package/dist/helper/api-sdk.js +0 -16
- package/dist/helper/api-sdk.js.map +0 -1
- package/dist/helper/generateSchema.d.ts +0 -13
- package/dist/helper/generateSchema.d.ts.map +0 -1
- package/dist/helper/generateSchema.js +0 -63
- package/dist/helper/generateSchema.js.map +0 -1
- package/dist/schema/convertNullToNullable.d.ts +0 -3
- package/dist/schema/convertNullToNullable.d.ts.map +0 -1
- package/dist/schema/convertNullToNullable.js +0 -23
- package/dist/schema/convertNullToNullable.js.map +0 -1
- package/dist/schema/nullableSchema.test.d.ts +0 -2
- package/dist/schema/nullableSchema.test.d.ts.map +0 -1
- package/dist/schema/nullableSchema.test.js +0 -93
- package/dist/schema/nullableSchema.test.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "fastify-flux-cli",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.26.3",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"exports": "./dist/index.js",
|
|
@@ -10,30 +10,30 @@
|
|
|
10
10
|
"author": "",
|
|
11
11
|
"license": "ISC",
|
|
12
12
|
"dependencies": {
|
|
13
|
-
"@apidevtools/json-schema-ref-parser": "^
|
|
13
|
+
"@apidevtools/json-schema-ref-parser": "^10.1.0",
|
|
14
14
|
"@types/lodash": "^4.14.191",
|
|
15
15
|
"chalk": "^5.2.0",
|
|
16
16
|
"chokidar": "^3.5.3",
|
|
17
|
-
"commander": "^
|
|
17
|
+
"commander": "^10.0.0",
|
|
18
18
|
"esbuild": "0.x",
|
|
19
|
-
"execa": "^
|
|
19
|
+
"execa": "^7.0.0",
|
|
20
20
|
"fast-glob": "^3.2.12",
|
|
21
21
|
"lodash": "^4.17.21",
|
|
22
22
|
"p-map": "5.5.0",
|
|
23
23
|
"pidtree": "^0.6.0",
|
|
24
24
|
"piscina": "^3.2.0",
|
|
25
25
|
"source-map-support": "^0.5.21",
|
|
26
|
-
"swagger-typescript-api": "^12.0.
|
|
26
|
+
"swagger-typescript-api": "^12.0.3",
|
|
27
27
|
"ts-json-schema-generator": "^1.2.0",
|
|
28
28
|
"ts-morph": "^17.0.1",
|
|
29
|
-
"typescript": "4.9.
|
|
29
|
+
"typescript": "4.9.5"
|
|
30
30
|
},
|
|
31
31
|
"devDependencies": {
|
|
32
|
-
"@types/fs-extra": "^
|
|
33
|
-
"@types/jest": "^29.
|
|
34
|
-
"@types/node": "^18.
|
|
35
|
-
"jest": "^29.3
|
|
36
|
-
"ts-jest": "^29.0.
|
|
32
|
+
"@types/fs-extra": "^11.0.1",
|
|
33
|
+
"@types/jest": "^29.4.0",
|
|
34
|
+
"@types/node": "^18.14.1",
|
|
35
|
+
"jest": "^29.4.3",
|
|
36
|
+
"ts-jest": "^29.0.5"
|
|
37
37
|
},
|
|
38
38
|
"peerDependencies": {
|
|
39
39
|
"esbuild": "0.x"
|
package/dist/commands/new.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=new.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"new.d.ts","sourceRoot":"","sources":["../../src/commands/new.ts"],"names":[],"mappings":""}
|
package/dist/commands/new.js
DELETED
package/dist/commands/new.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"new.js","sourceRoot":"","sources":["../../src/commands/new.ts"],"names":[],"mappings":""}
|
package/dist/helper/api-sdk.js
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { dirname, join } from 'node:path';
|
|
2
|
-
import { fileURLToPath } from 'node:url';
|
|
3
|
-
import swagger from 'swagger-typescript-api';
|
|
4
|
-
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
5
|
-
export async function createApiSdk(file) {
|
|
6
|
-
const result = await swagger.generateApi({
|
|
7
|
-
name: 'Api.ts',
|
|
8
|
-
input: file,
|
|
9
|
-
templates: join(__dirname, '/../templates/api/'),
|
|
10
|
-
moduleNameIndex: 1,
|
|
11
|
-
httpClientType: 'axios',
|
|
12
|
-
defaultResponseType: 'any',
|
|
13
|
-
});
|
|
14
|
-
return result.files[0].content;
|
|
15
|
-
}
|
|
16
|
-
//# sourceMappingURL=api-sdk.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"api-sdk.js","sourceRoot":"","sources":["../../src/helper/api-sdk.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,OAAO,MAAM,wBAAwB,CAAC;AAE7C,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE1D,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,IAAY;IAC7C,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC;QACvC,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,IAAI;QACX,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,oBAAoB,CAAC;QAChD,eAAe,EAAE,CAAC;QAClB,cAAc,EAAE,OAAO;QACvB,mBAAmB,EAAE,KAAK;KACpB,CAAC,CAAC;IAEV,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;AACjC,CAAC"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
interface GenerateSchemaOptions {
|
|
2
|
-
removeDateTime: boolean;
|
|
3
|
-
}
|
|
4
|
-
export declare class GenerateGlobalSchema {
|
|
5
|
-
private base;
|
|
6
|
-
private params;
|
|
7
|
-
constructor(base: string, params: GenerateSchemaOptions);
|
|
8
|
-
getSchema(): Promise<string>;
|
|
9
|
-
handle(): Promise<string>;
|
|
10
|
-
}
|
|
11
|
-
export declare function generateSchema(path: string, options: GenerateSchemaOptions): Promise<string>;
|
|
12
|
-
export {};
|
|
13
|
-
//# sourceMappingURL=generateSchema.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"generateSchema.d.ts","sourceRoot":"","sources":["../../src/helper/generateSchema.ts"],"names":[],"mappings":"AAGA,UAAU,qBAAqB;IAC7B,cAAc,EAAE,OAAO,CAAC;CACzB;AAUD,qBAAa,oBAAoB;IACnB,OAAO,CAAC,IAAI;IAAU,OAAO,CAAC,MAAM;gBAA5B,IAAI,EAAE,MAAM,EAAU,MAAM,EAAE,qBAAqB;IAEjE,SAAS;IAyCT,MAAM;CAcb;AAED,wBAAsB,cAAc,CAClC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,qBAAqB,mBAK/B"}
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
import $RefParser from '@apidevtools/json-schema-ref-parser';
|
|
2
|
-
import * as ts from 'ts-json-schema-generator';
|
|
3
|
-
import { log } from '../log.js';
|
|
4
|
-
function addId(schema) {
|
|
5
|
-
return Object.fromEntries(Object.entries(schema).map(([key, value]) => {
|
|
6
|
-
return [key, { ...value, $id: `${key}` }];
|
|
7
|
-
}));
|
|
8
|
-
}
|
|
9
|
-
export class GenerateGlobalSchema {
|
|
10
|
-
constructor(base, params) {
|
|
11
|
-
this.base = base;
|
|
12
|
-
this.params = params;
|
|
13
|
-
}
|
|
14
|
-
async getSchema() {
|
|
15
|
-
const config = {
|
|
16
|
-
path: `${this.base}/**/*schema.ts`,
|
|
17
|
-
tsconfig: './tsconfig.json',
|
|
18
|
-
};
|
|
19
|
-
try {
|
|
20
|
-
const schema = ts.createGenerator(config).createSchema();
|
|
21
|
-
const removedReferences = await $RefParser.dereference(schema);
|
|
22
|
-
if (!removedReferences.definitions) {
|
|
23
|
-
throw new Error('definitions are missing');
|
|
24
|
-
}
|
|
25
|
-
const withIds = addId(removedReferences.definitions);
|
|
26
|
-
return JSON.stringify(withIds, null, 2);
|
|
27
|
-
}
|
|
28
|
-
catch (e) {
|
|
29
|
-
if (e.message.includes('NoRootNamesError')) {
|
|
30
|
-
console.warn(`\nMissing interfaces for path: ${this.base}/controllers/*/interfaces.ts\n`);
|
|
31
|
-
return '';
|
|
32
|
-
}
|
|
33
|
-
if (e.diagnostics) {
|
|
34
|
-
e.diagnostics.forEach((element) => {
|
|
35
|
-
log({
|
|
36
|
-
component: 'cli',
|
|
37
|
-
warning: element.messageText,
|
|
38
|
-
details: element.file.fileName,
|
|
39
|
-
});
|
|
40
|
-
});
|
|
41
|
-
return '';
|
|
42
|
-
}
|
|
43
|
-
throw e;
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
async handle() {
|
|
47
|
-
let schema = await this.getSchema();
|
|
48
|
-
/*
|
|
49
|
-
schema = schema.replace(/, format: 'date-time'/g, '');
|
|
50
|
-
|
|
51
|
-
if (schema.includes('date-time')) {
|
|
52
|
-
console.warn(
|
|
53
|
-
`\ndate-time is used in schema. This causes issues with fastify serialization. Use string instead.\n`,
|
|
54
|
-
);
|
|
55
|
-
}*/
|
|
56
|
-
return schema;
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
export async function generateSchema(path, options) {
|
|
60
|
-
const instance = new GenerateGlobalSchema(path, options);
|
|
61
|
-
return instance.handle();
|
|
62
|
-
}
|
|
63
|
-
//# sourceMappingURL=generateSchema.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"generateSchema.js","sourceRoot":"","sources":["../../src/helper/generateSchema.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,qCAAqC,CAAC;AAC7D,OAAO,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAC/C,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAKhC,SAAS,KAAK,CAAC,MAA8B;IAC3C,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QAC1C,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,KAAK,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,CAAC,CAAC;IAC5C,CAAC,CAAC,CACH,CAAC;AACJ,CAAC;AAED,MAAM,OAAO,oBAAoB;IAC/B,YAAoB,IAAY,EAAU,MAA6B;QAAnD,SAAI,GAAJ,IAAI,CAAQ;QAAU,WAAM,GAAN,MAAM,CAAuB;IAAG,CAAC;IAE3E,KAAK,CAAC,SAAS;QACb,MAAM,MAAM,GAAG;YACb,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,gBAAgB;YAClC,QAAQ,EAAE,iBAAiB;SAC5B,CAAC;QAEF,IAAI;YACF,MAAM,MAAM,GAAG,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,YAAY,EAAE,CAAC;YAEzD,MAAM,iBAAiB,GAAG,MAAM,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAC/D,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE;gBAClC,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;aAC5C;YAED,MAAM,OAAO,GAAG,KAAK,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;YAErD,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;SACzC;QAAC,OAAO,CAAM,EAAE;YACf,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE;gBAC1C,OAAO,CAAC,IAAI,CACV,kCAAkC,IAAI,CAAC,IAAI,gCAAgC,CAC5E,CAAC;gBACF,OAAO,EAAE,CAAC;aACX;YAED,IAAI,CAAC,CAAC,WAAW,EAAE;gBACjB,CAAC,CAAC,WAAW,CAAC,OAAO,CACnB,CAAC,OAA4D,EAAE,EAAE;oBAC/D,GAAG,CAAC;wBACF,SAAS,EAAE,KAAK;wBAChB,OAAO,EAAE,OAAO,CAAC,WAAW;wBAC5B,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,QAAQ;qBAC/B,CAAC,CAAC;gBACL,CAAC,CACF,CAAC;gBACF,OAAO,EAAE,CAAC;aACX;YAED,MAAM,CAAC,CAAC;SACT;IACH,CAAC;IACD,KAAK,CAAC,MAAM;QACV,IAAI,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QAEpC;;;;;;;WAOG;QAEH,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,IAAY,EACZ,OAA8B;IAE9B,MAAM,QAAQ,GAAG,IAAI,oBAAoB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAEzD,OAAO,QAAQ,CAAC,MAAM,EAAE,CAAC;AAC3B,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"convertNullToNullable.d.ts","sourceRoot":"","sources":["../../src/schema/convertNullToNullable.ts"],"names":[],"mappings":"AAaA,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,CAStD;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,CAEnD"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import _ from 'lodash';
|
|
2
|
-
function handleAnyOf(anyOf) {
|
|
3
|
-
const hasTypeNull = anyOf.find((x) => x.type === 'null');
|
|
4
|
-
if (!hasTypeNull || anyOf.length !== 2) {
|
|
5
|
-
return;
|
|
6
|
-
}
|
|
7
|
-
const noneNull = anyOf.find((x) => x.type !== 'null');
|
|
8
|
-
return { nullable: true, ...noneNull };
|
|
9
|
-
}
|
|
10
|
-
export function convertNullToNullable(object) {
|
|
11
|
-
return _.cloneDeepWith(object, (value) => {
|
|
12
|
-
if (value['anyOf']) {
|
|
13
|
-
const result = handleAnyOf(value['anyOf']);
|
|
14
|
-
if (result) {
|
|
15
|
-
return convertNullToNullable(result);
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
});
|
|
19
|
-
}
|
|
20
|
-
export function convertEmptyObject(object) {
|
|
21
|
-
return _.cloneDeepWith(object, (value) => { });
|
|
22
|
-
}
|
|
23
|
-
//# sourceMappingURL=convertNullToNullable.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"convertNullToNullable.js","sourceRoot":"","sources":["../../src/schema/convertNullToNullable.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,QAAQ,CAAC;AAEvB,SAAS,WAAW,CAAC,KAA2B;IAC9C,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;IAC9D,IAAI,CAAC,WAAW,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;QACtC,OAAO;KACR;IAED,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;IAE3D,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,QAAQ,EAAE,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,MAAW;IAC/C,OAAO,CAAC,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;QACvC,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE;YAClB,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;YAC3C,IAAI,MAAM,EAAE;gBACV,OAAO,qBAAqB,CAAC,MAAM,CAAC,CAAC;aACtC;SACF;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,MAAW;IAC5C,OAAO,CAAC,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,GAAE,CAAC,CAAC,CAAC;AAChD,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"nullableSchema.test.d.ts","sourceRoot":"","sources":["../../src/schema/nullableSchema.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
import { convertNullToNullable } from './convertNullToNullable';
|
|
2
|
-
const input = {
|
|
3
|
-
UpdateTodo: {
|
|
4
|
-
type: 'object',
|
|
5
|
-
properties: {
|
|
6
|
-
text: {
|
|
7
|
-
type: 'string',
|
|
8
|
-
},
|
|
9
|
-
foo: {
|
|
10
|
-
anyOf: [
|
|
11
|
-
{
|
|
12
|
-
type: 'null',
|
|
13
|
-
},
|
|
14
|
-
{
|
|
15
|
-
type: 'string',
|
|
16
|
-
},
|
|
17
|
-
{
|
|
18
|
-
type: 'number',
|
|
19
|
-
},
|
|
20
|
-
],
|
|
21
|
-
},
|
|
22
|
-
user: {
|
|
23
|
-
anyOf: [
|
|
24
|
-
{
|
|
25
|
-
type: 'null',
|
|
26
|
-
},
|
|
27
|
-
{
|
|
28
|
-
type: 'object',
|
|
29
|
-
properties: {
|
|
30
|
-
id: {
|
|
31
|
-
type: 'number',
|
|
32
|
-
},
|
|
33
|
-
anyOf: [
|
|
34
|
-
{
|
|
35
|
-
type: 'null',
|
|
36
|
-
},
|
|
37
|
-
{
|
|
38
|
-
type: 'object',
|
|
39
|
-
properties: {
|
|
40
|
-
id: {
|
|
41
|
-
type: 'number',
|
|
42
|
-
},
|
|
43
|
-
},
|
|
44
|
-
},
|
|
45
|
-
],
|
|
46
|
-
},
|
|
47
|
-
},
|
|
48
|
-
],
|
|
49
|
-
},
|
|
50
|
-
},
|
|
51
|
-
},
|
|
52
|
-
};
|
|
53
|
-
test('convert anyOf to nullable', () => {
|
|
54
|
-
expect(convertNullToNullable(input)).toMatchInlineSnapshot(`
|
|
55
|
-
Object {
|
|
56
|
-
"UpdateTodo": Object {
|
|
57
|
-
"properties": Object {
|
|
58
|
-
"foo": Object {
|
|
59
|
-
"anyOf": Array [
|
|
60
|
-
Object {
|
|
61
|
-
"type": "null",
|
|
62
|
-
},
|
|
63
|
-
Object {
|
|
64
|
-
"type": "string",
|
|
65
|
-
},
|
|
66
|
-
Object {
|
|
67
|
-
"type": "number",
|
|
68
|
-
},
|
|
69
|
-
],
|
|
70
|
-
},
|
|
71
|
-
"text": Object {
|
|
72
|
-
"type": "string",
|
|
73
|
-
},
|
|
74
|
-
"user": Object {
|
|
75
|
-
"nullable": true,
|
|
76
|
-
"properties": Object {
|
|
77
|
-
"nullable": true,
|
|
78
|
-
"properties": Object {
|
|
79
|
-
"id": Object {
|
|
80
|
-
"type": "number",
|
|
81
|
-
},
|
|
82
|
-
},
|
|
83
|
-
"type": "object",
|
|
84
|
-
},
|
|
85
|
-
"type": "object",
|
|
86
|
-
},
|
|
87
|
-
},
|
|
88
|
-
"type": "object",
|
|
89
|
-
},
|
|
90
|
-
}
|
|
91
|
-
`);
|
|
92
|
-
});
|
|
93
|
-
//# sourceMappingURL=nullableSchema.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"nullableSchema.test.js","sourceRoot":"","sources":["../../src/schema/nullableSchema.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,MAAM,KAAK,GAAG;IACZ,UAAU,EAAE;QACV,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,IAAI,EAAE;gBACJ,IAAI,EAAE,QAAQ;aACf;YACD,GAAG,EAAE;gBACH,KAAK,EAAE;oBACL;wBACE,IAAI,EAAE,MAAM;qBACb;oBACD;wBACE,IAAI,EAAE,QAAQ;qBACf;oBACD;wBACE,IAAI,EAAE,QAAQ;qBACf;iBACF;aACF;YACD,IAAI,EAAE;gBACJ,KAAK,EAAE;oBACL;wBACE,IAAI,EAAE,MAAM;qBACb;oBACD;wBACE,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,EAAE,EAAE;gCACF,IAAI,EAAE,QAAQ;6BACf;4BACD,KAAK,EAAE;gCACL;oCACE,IAAI,EAAE,MAAM;iCACb;gCACD;oCACE,IAAI,EAAE,QAAQ;oCACd,UAAU,EAAE;wCACV,EAAE,EAAE;4CACF,IAAI,EAAE,QAAQ;yCACf;qCACF;iCACF;6BACF;yBACF;qBACF;iBACF;aACF;SACF;KACF;CACF,CAAC;AAEF,IAAI,CAAC,2BAA2B,EAAE,GAAG,EAAE;IACrC,MAAM,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC,qBAAqB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqC1D,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|