@adaptivestone/framework 5.0.0-beta.21 → 5.0.0-beta.23
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/CHANGELOG.md +953 -609
- package/dist/modules/BaseModel.d.ts +11 -3
- package/dist/modules/BaseModel.js.map +1 -1
- package/dist/tests/frameworkVitestSetup.d.ts +1 -0
- package/dist/tests/frameworkVitestSetup.js +9 -0
- package/dist/tests/frameworkVitestSetup.js.map +1 -0
- package/dist/tests/globalSetupVitest.d.ts +3 -2
- package/dist/tests/globalSetupVitest.js.map +1 -1
- package/dist/tests/setupVitest.js +35 -43
- package/dist/tests/setupVitest.js.map +1 -1
- package/dist/tests/testHelpers.d.ts +14 -0
- package/dist/tests/testHelpers.js +50 -0
- package/dist/tests/testHelpers.js.map +1 -0
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Model } from 'mongoose';
|
|
2
|
-
import type { Schema, InferRawDocType } from 'mongoose';
|
|
2
|
+
import type { Schema, InferRawDocType, HydratedDocument } from 'mongoose';
|
|
3
3
|
export type Merge<M, N> = Omit<M, keyof N> & N;
|
|
4
4
|
export type WithTimestamps<TOptions> = TOptions extends {
|
|
5
5
|
timestamps: true;
|
|
@@ -16,15 +16,23 @@ export type ExtractProperty<T, K extends PropertyKey, Default = {}> = T extends
|
|
|
16
16
|
[P in K]: infer R;
|
|
17
17
|
} ? R : Default;
|
|
18
18
|
export type GetModelSchemaTypeFromClass<T extends typeof BaseModel> = Schema<InferRawDocType<ExtractProperty<T, 'modelSchema'> & WithTimestamps<Merge<typeof defaultOptions, ExtractProperty<T, 'schemaOptions'>>>>, // TRawDocType
|
|
19
|
-
Model<
|
|
19
|
+
Model<InferRawDocType<ExtractProperty<T, 'modelSchema'> & WithTimestamps<Merge<typeof defaultOptions, ExtractProperty<T, 'schemaOptions'>>>>, {}, // TQueryHelpers
|
|
20
|
+
ExtractProperty<T, 'modelInstanceMethods'>, // TInstanceMethods
|
|
21
|
+
ExtractProperty<T, 'modelVirtuals'>>, // TModelType
|
|
20
22
|
ExtractProperty<T, 'modelInstanceMethods'>, // TInstanceMethods
|
|
21
23
|
{}, // TQueryHelpers
|
|
22
24
|
ExtractProperty<T, 'modelVirtuals'>, // TVirtuals
|
|
23
25
|
ExtractProperty<T, 'modelStatics'>, // TStaticMethods
|
|
24
26
|
ExtractProperty<T, 'schemaOptions'>>;
|
|
25
27
|
export type GetModelTypeFromClass<T extends typeof BaseModel> = Model<InferRawDocType<ExtractProperty<T, 'modelSchema'> & WithTimestamps<Merge<typeof defaultOptions, ExtractProperty<T, 'schemaOptions'>>>>, // TRawDocType
|
|
28
|
+
{}, // TQueryHelpers
|
|
26
29
|
ExtractProperty<T, 'modelInstanceMethods'>, // TInstanceMethods
|
|
27
|
-
|
|
30
|
+
ExtractProperty<T, 'modelVirtuals'>, // TVirtuals
|
|
31
|
+
HydratedDocument<InferRawDocType<ExtractProperty<T, 'modelSchema'> & WithTimestamps<Merge<typeof defaultOptions, ExtractProperty<T, 'schemaOptions'>>>>, //TRawDocType
|
|
32
|
+
//TRawDocType
|
|
33
|
+
ExtractProperty<T, 'modelVirtuals'> & ExtractProperty<T, 'modelInstanceMethods'>, // TVirtuals & TInstanceMethods
|
|
34
|
+
{}, // TQueryHelpers
|
|
35
|
+
ExtractProperty<T, 'modelVirtuals'>>, GetModelSchemaTypeFromClass<T>> & ExtractProperty<T, 'modelStatics'>;
|
|
28
36
|
export type GetModelTypeLiteFromSchema<T extends typeof BaseModel.modelSchema, TOptions = {}> = Model<InferRawDocType<T & WithTimestamps<Merge<typeof defaultOptions, TOptions>>>>;
|
|
29
37
|
export declare const defaultOptions: {
|
|
30
38
|
readonly timestamps: true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseModel.js","sourceRoot":"","sources":["../../src/modules/BaseModel.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"BaseModel.js","sourceRoot":"","sources":["../../src/modules/BaseModel.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAoF3C,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAW,CAAC;AAE7E,MAAM,OAAO,SAAS;IACpB,MAAM,KAAK,WAAW;QACpB,OAAO,EAAW,CAAC;IACrB,CAAC;IAED,MAAM,KAAK,aAAa;QACtB,OAAO,EAAW,CAAC;IACrB,CAAC;IAED,MAAM,KAAK,oBAAoB;QAC7B,OAAO,EAAW,CAAC;IACrB,CAAC;IAED,MAAM,KAAK,aAAa;QACtB,OAAO,EAAW,CAAC;IACrB,CAAC;IAED,MAAM,KAAK,YAAY;QACrB,OAAO,EAAW,CAAC;IACrB,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,MAAc;QAC7B,iBAAiB;IACnB,CAAC;IAED,wDAAwD;IACjD,MAAM,CAAC,UAAU;QACtB,MAAM,MAAM,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE;YACnD,GAAG,cAAc;YACjB,GAAI,IAAI,CAAC,aAA+B;YACxC,OAAO,EAAE,IAAI,CAAC,oBAAoB;YAClC,OAAO,EAAE,IAAI,CAAC,YAAY;YAC1B,QAAQ,EAAE,IAAI,CAAC,aAAa;SAC7B,CAAmC,CAAC;QAErC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAEvB,MAAM,aAAa,GAAG,QAAQ,CAAC,KAAK,CAClC,IAAI,CAAC,IAAI,EACT,MAAM,CACqB,CAAC;QAE9B,OAAO,aAAa,CAAC;IACvB,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { beforeAll, afterAll, beforeEach, vi } from 'vitest';
|
|
2
|
+
import { createDefaultTestUser } from "./testHelpers.js";
|
|
3
|
+
beforeAll(async () => {
|
|
4
|
+
await createDefaultTestUser();
|
|
5
|
+
});
|
|
6
|
+
afterAll(async () => {
|
|
7
|
+
// do seomthing
|
|
8
|
+
});
|
|
9
|
+
//# sourceMappingURL=frameworkVitestSetup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"frameworkVitestSetup.js","sourceRoot":"","sources":["../../src/tests/frameworkVitestSetup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,SAAS,CAAC,KAAK,IAAI,EAAE;IACnB,MAAM,qBAAqB,EAAE,CAAC;AAChC,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,KAAK,IAAI,EAAE;IAClB,eAAe;AACjB,CAAC,CAAC,CAAC"}
|
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
declare const setup: () => Promise<void>;
|
|
2
|
+
declare const teardown: () => Promise<void>;
|
|
3
|
+
export { setup, teardown };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"globalSetupVitest.js","sourceRoot":"","sources":["../../src/tests/globalSetupVitest.
|
|
1
|
+
{"version":3,"file":"globalSetupVitest.js","sourceRoot":"","sources":["../../src/tests/globalSetupVitest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D,IAAI,UAAU,GAAG,KAAK,CAAC;AACvB,IAAI,yBAA6C,CAAC;AAElD,MAAM,KAAK,GAAG,KAAK,IAAI,EAAE;IACvB,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;IAC/C,OAAO,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;IAC1C,yBAAyB,GAAG,MAAM,kBAAkB,CAAC,MAAM,CAAC;QAC1D,gCAAgC;QAChC,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,aAAa,EAAE,YAAY,EAAE;KACnD,CAAC,CAAC;IACH,MAAM,yBAAyB,CAAC,gBAAgB,EAAE,CAAC;IACnD,MAAM,qBAAqB,GACzB,MAAM,yBAAyB,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;IAC9D,OAAO,CAAC,GAAG,CAAC,cAAc,GAAG,qBAAqB,CAAC;IACnD,sDAAsD;IACtD,OAAO,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC;AAC/C,CAAC,CAAC;AAEF,MAAM,QAAQ,GAAG,KAAK,IAAI,EAAE;IAC1B,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;IAE9C,UAAU,GAAG,IAAI,CAAC;IAClB,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;IAC1C,MAAM,yBAAyB,CAAC,IAAI,EAAE,CAAC;IACvC,OAAO,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC;IAEjD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;AAC3B,CAAC,CAAC;AAEF,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC"}
|
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
import path from 'node:path';
|
|
2
2
|
import crypto from 'node:crypto';
|
|
3
3
|
import { beforeAll, beforeEach, afterEach, afterAll } from 'vitest';
|
|
4
|
+
import { setServerInstance, serverInstance } from "./testHelpers.js";
|
|
4
5
|
import mongoose from 'mongoose'; // we do not need create indexes on tests
|
|
5
6
|
import { createClient } from '@redis/client';
|
|
6
|
-
import {
|
|
7
|
+
import { clearNamespace } from "../helpers/redis/clearNamespace.js";
|
|
7
8
|
import Server from "../server.js";
|
|
8
9
|
mongoose.set('autoIndex', false);
|
|
9
10
|
const basePath = new URL('.', import.meta.url).pathname;
|
|
10
11
|
beforeAll(async () => {
|
|
11
12
|
process.env.LOGGER_CONSOLE_LEVEL = 'error';
|
|
12
13
|
process.env.AUTH_SALT = crypto.randomBytes(16).toString('hex');
|
|
13
|
-
|
|
14
|
+
const server = new Server({
|
|
14
15
|
folders: {
|
|
15
16
|
config: process.env.TEST_FOLDER_CONFIG || path.resolve(basePath, '../config'),
|
|
16
17
|
controllers: process.env.TEST_FOLDER_CONTROLLERS ||
|
|
@@ -26,54 +27,45 @@ beforeAll(async () => {
|
|
|
26
27
|
path.resolve(basePath, '../migrations'),
|
|
27
28
|
},
|
|
28
29
|
});
|
|
29
|
-
|
|
30
|
+
setServerInstance(server);
|
|
31
|
+
await server.init({ isSkipModelInit: true });
|
|
30
32
|
const connectionString = process.env.TEST_MONGO_URI.replace('__DB_TO_REPLACE__', `TEST_${crypto.randomUUID()}`);
|
|
31
|
-
|
|
33
|
+
server.updateConfig('mongo', {
|
|
32
34
|
connectionString,
|
|
33
35
|
});
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
await
|
|
37
|
-
if (!global.testSetup) {
|
|
38
|
-
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
}).catch((e) => {
|
|
51
|
-
console.error(e);
|
|
52
|
-
console.info('That error can happens in case you have custom user model. Please use global.testSetup.disableUserCreate flag to skip user creating');
|
|
53
|
-
});
|
|
54
|
-
global.authToken = await global.user.generateToken();
|
|
55
|
-
}
|
|
56
|
-
if (typeof global.testSetup.beforeAll === 'function') {
|
|
57
|
-
await global.testSetup.beforeAll();
|
|
58
|
-
}
|
|
59
|
-
await global.server.startServer();
|
|
36
|
+
server.updateConfig('http', { port: 0 }); // allow to use random
|
|
37
|
+
server.updateConfig('mail', { transport: 'stub' });
|
|
38
|
+
await server.initAllModels();
|
|
39
|
+
// if (!global.testSetup) {
|
|
40
|
+
// global.testSetup = {};
|
|
41
|
+
// }
|
|
42
|
+
// server.testingGetUrl = (urlPart) => {
|
|
43
|
+
// console.error(
|
|
44
|
+
// 'global.server.testingGetUrl is deprcated. Please use testHelper.getServerBaseURL()',
|
|
45
|
+
// );
|
|
46
|
+
// return `http://127.0.0.1:${global.server.getConfig('http').port}${urlPart}`;
|
|
47
|
+
// };
|
|
48
|
+
// if (typeof global.testSetup.beforeAll === 'function') {
|
|
49
|
+
// await global.testSetup.beforeAll();
|
|
50
|
+
// }
|
|
51
|
+
await server.startServer();
|
|
60
52
|
});
|
|
61
53
|
beforeEach(() => {
|
|
62
|
-
if (
|
|
54
|
+
if (serverInstance) {
|
|
63
55
|
const key = `test-${Math.random().toString(36).substring(7)}`;
|
|
64
|
-
|
|
56
|
+
serverInstance.app.updateConfig('redis', {
|
|
65
57
|
namespace: key,
|
|
66
58
|
});
|
|
67
59
|
}
|
|
68
60
|
});
|
|
69
61
|
afterEach(async () => {
|
|
70
|
-
if (
|
|
71
|
-
const { url, namespace } =
|
|
62
|
+
if (serverInstance) {
|
|
63
|
+
const { url, namespace } = serverInstance.getConfig('redis');
|
|
72
64
|
const redisClient = createClient({ url });
|
|
73
65
|
try {
|
|
74
66
|
await redisClient.connect();
|
|
75
|
-
await
|
|
76
|
-
await redisClient.
|
|
67
|
+
await clearNamespace(redisClient, namespace);
|
|
68
|
+
await redisClient.destroy();
|
|
77
69
|
}
|
|
78
70
|
catch {
|
|
79
71
|
// that ok. No redis connection
|
|
@@ -81,15 +73,15 @@ afterEach(async () => {
|
|
|
81
73
|
}
|
|
82
74
|
});
|
|
83
75
|
afterAll(async () => {
|
|
84
|
-
if (
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
}
|
|
88
|
-
if (typeof global.testSetup.afterAll === 'function') {
|
|
89
|
-
await global.testSetup.afterAll();
|
|
76
|
+
if (serverInstance) {
|
|
77
|
+
serverInstance.app.httpServer?.shutdown();
|
|
78
|
+
serverInstance.app.events.emit('shutdown');
|
|
90
79
|
}
|
|
80
|
+
// if (typeof global.testSetup.afterAll === 'function') {
|
|
81
|
+
// await global.testSetup.afterAll();
|
|
82
|
+
// }
|
|
91
83
|
try {
|
|
92
|
-
await mongoose.connection.db
|
|
84
|
+
await mongoose.connection.db?.dropDatabase(); // clean database after test
|
|
93
85
|
}
|
|
94
86
|
catch {
|
|
95
87
|
// that ok. No mongoose connection
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setupVitest.js","sourceRoot":"","sources":["../../src/tests/setupVitest.
|
|
1
|
+
{"version":3,"file":"setupVitest.js","sourceRoot":"","sources":["../../src/tests/setupVitest.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type Server from '../server.ts';
|
|
2
|
+
import type { GetModelTypeFromClass } from '../modules/BaseModel.ts';
|
|
3
|
+
import type UserModel from '../models/User.ts';
|
|
4
|
+
export declare let serverInstance: Server;
|
|
5
|
+
export declare let defaultUser: GetModelTypeFromClass<typeof UserModel>;
|
|
6
|
+
export declare let defaultAuthToken: string;
|
|
7
|
+
export declare const setServerInstance: (serverInstanceToSet: Server) => void;
|
|
8
|
+
export declare const setDefaultUser: (userToSet: GetModelTypeFromClass<typeof UserModel>) => void;
|
|
9
|
+
export declare const setDefaultAuthToken: (tokenToSet: string) => void;
|
|
10
|
+
export declare const getTestServerURL: (urlPart?: string) => string;
|
|
11
|
+
export declare const createDefaultTestUser: () => Promise<false | {
|
|
12
|
+
user: any;
|
|
13
|
+
token: any;
|
|
14
|
+
}>;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { appInstance } from "../helpers/appInstance.js";
|
|
2
|
+
export let serverInstance;
|
|
3
|
+
export let defaultUser;
|
|
4
|
+
export let defaultAuthToken;
|
|
5
|
+
export const setServerInstance = (serverInstanceToSet) => {
|
|
6
|
+
if (serverInstance) {
|
|
7
|
+
throw new Error('Server instance is already set');
|
|
8
|
+
}
|
|
9
|
+
serverInstance = serverInstanceToSet;
|
|
10
|
+
};
|
|
11
|
+
export const setDefaultUser = (userToSet) => {
|
|
12
|
+
if (defaultUser) {
|
|
13
|
+
throw new Error('Default user is already set');
|
|
14
|
+
}
|
|
15
|
+
defaultUser = userToSet;
|
|
16
|
+
};
|
|
17
|
+
export const setDefaultAuthToken = (tokenToSet) => {
|
|
18
|
+
if (defaultAuthToken) {
|
|
19
|
+
throw new Error('Auth token is already set');
|
|
20
|
+
}
|
|
21
|
+
defaultAuthToken = tokenToSet;
|
|
22
|
+
};
|
|
23
|
+
export const getTestServerURL = (urlPart) => {
|
|
24
|
+
return `http://127.0.0.1:${appInstance.getConfig('http').port}${urlPart}`;
|
|
25
|
+
};
|
|
26
|
+
export const createDefaultTestUser = async () => {
|
|
27
|
+
if (defaultUser) {
|
|
28
|
+
throw new Error('You already have created default user');
|
|
29
|
+
}
|
|
30
|
+
const User = appInstance.getModel('User');
|
|
31
|
+
const user = await User.create({
|
|
32
|
+
email: 'test@test.com',
|
|
33
|
+
password: 'testPassword',
|
|
34
|
+
isVerified: true,
|
|
35
|
+
name: {
|
|
36
|
+
nick: 'testUserNickName',
|
|
37
|
+
},
|
|
38
|
+
}).catch((e) => {
|
|
39
|
+
console.error(e);
|
|
40
|
+
console.info('That error can happens in case you have custom user model. Please implment user creation by youself');
|
|
41
|
+
});
|
|
42
|
+
if (!user) {
|
|
43
|
+
return false;
|
|
44
|
+
}
|
|
45
|
+
setDefaultUser(user);
|
|
46
|
+
const token = await user.generateToken();
|
|
47
|
+
setDefaultAuthToken(token.token);
|
|
48
|
+
return { user, token: token.token };
|
|
49
|
+
};
|
|
50
|
+
//# sourceMappingURL=testHelpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"testHelpers.js","sourceRoot":"","sources":["../../src/tests/testHelpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAKxD,MAAM,CAAC,IAAI,cAAuB,CAAC;AACnC,MAAM,CAAC,IAAI,WAAoD,CAAC;AAChE,MAAM,CAAC,IAAI,gBAAwB,CAAC;AAEpC,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,mBAA2B,EAAE,EAAE;IAC/D,IAAI,cAAc,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACpD,CAAC;IACD,cAAc,GAAG,mBAAmB,CAAC;AACvC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,SAAkD,EAClD,EAAE;IACF,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACjD,CAAC;IACD,WAAW,GAAG,SAAS,CAAC;AAC1B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,UAAkB,EAAE,EAAE;IACxD,IAAI,gBAAgB,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC/C,CAAC;IACD,gBAAgB,GAAG,UAAU,CAAC;AAChC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,OAAgB,EAAE,EAAE;IACnD,OAAO,oBAAoB,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,GAAG,OAAO,EAAE,CAAC;AAC5E,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,IAAI,EAAE;IAC9C,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IAC3D,CAAC;IACD,MAAM,IAAI,GAAG,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC;QAC7B,KAAK,EAAE,eAAe;QACtB,QAAQ,EAAE,cAAc;QACxB,UAAU,EAAE,IAAI;QAChB,IAAI,EAAE;YACJ,IAAI,EAAE,kBAAkB;SACzB;KACF,CAAC,CAAC,KAAK,CAAC,CAAC,CAAQ,EAAE,EAAE;QACpB,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACjB,OAAO,CAAC,IAAI,CACV,qGAAqG,CACtG,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,KAAK,CAAC;IACf,CAAC;IACD,cAAc,CAAC,IAAI,CAAC,CAAC;IACrB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;IACzC,mBAAmB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACjC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;AACtC,CAAC,CAAC"}
|