@mbc-cqrs-serverless/master 0.1.70-beta.0 → 0.1.71-beta.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.
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,341 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const testing_1 = require("@nestjs/testing");
4
+ const common_1 = require("@nestjs/common");
5
+ const master_data_controller_1 = require("./master-data.controller");
6
+ const master_data_service_1 = require("../services/master-data.service");
7
+ const master_data_entity_1 = require("../entities/master-data/master-data.entity");
8
+ describe('MasterDataController', () => {
9
+ let controller;
10
+ let service;
11
+ const mockInvokeContext = {
12
+ event: {
13
+ requestContext: {
14
+ authorizer: {
15
+ jwt: {
16
+ claims: {
17
+ sub: 'test-sub',
18
+ iss: 'test-issuer',
19
+ 'cognito:username': 'test-user',
20
+ aud: 'test-audience',
21
+ event_id: 'test-event-id',
22
+ token_use: 'id',
23
+ auth_time: 1699930911,
24
+ name: 'Test User',
25
+ 'custom:tenant': 'test-tenant',
26
+ exp: 1700017311,
27
+ email: 'test@example.com',
28
+ iat: 1699930911,
29
+ jti: 'test-jti',
30
+ },
31
+ },
32
+ },
33
+ },
34
+ },
35
+ };
36
+ beforeEach(async () => {
37
+ const mockMasterDataService = {
38
+ list: jest.fn(),
39
+ getDetail: jest.fn(),
40
+ get: jest.fn(),
41
+ create: jest.fn(),
42
+ update: jest.fn(),
43
+ delete: jest.fn(),
44
+ checkExistCode: jest.fn(),
45
+ listByRds: jest.fn(),
46
+ createSetting: jest.fn(),
47
+ updateSetting: jest.fn(),
48
+ deleteSetting: jest.fn(),
49
+ };
50
+ const module = await testing_1.Test.createTestingModule({
51
+ controllers: [master_data_controller_1.MasterDataController],
52
+ providers: [
53
+ {
54
+ provide: master_data_service_1.MasterDataService,
55
+ useValue: mockMasterDataService,
56
+ },
57
+ ],
58
+ }).compile();
59
+ controller = module.get(master_data_controller_1.MasterDataController);
60
+ service = module.get(master_data_service_1.MasterDataService);
61
+ });
62
+ it('should be defined', () => {
63
+ expect(controller).toBeDefined();
64
+ });
65
+ describe('listData', () => {
66
+ it('should list data successfully', async () => {
67
+ const searchDto = { settingCode: 'TEST_SETTING' };
68
+ const expectedResult = { items: [], total: 0 };
69
+ jest.spyOn(service, 'list').mockResolvedValue(expectedResult);
70
+ const result = await controller.listData(mockInvokeContext, searchDto);
71
+ expect(service.list).toHaveBeenCalledWith(searchDto);
72
+ expect(result).toEqual(expectedResult);
73
+ });
74
+ });
75
+ describe('getDetailById', () => {
76
+ it('should get detail by id successfully', async () => {
77
+ const key = { pk: 'test-pk', sk: 'test-sk' };
78
+ const expectedResult = {
79
+ id: 'data-1',
80
+ cpk: 'test-cpk',
81
+ csk: 'test-csk',
82
+ pk: 'test-pk',
83
+ sk: 'test-sk',
84
+ masterType: 'TEST_TYPE',
85
+ masterTypeCode: 'TEST_CODE',
86
+ masterCode: 'MASTER_001',
87
+ tenantCode: 'test-tenant',
88
+ seq: 1,
89
+ code: 'DATA_001',
90
+ name: 'Test Data',
91
+ version: 1,
92
+ isDeleted: false,
93
+ createdBy: 'test-user',
94
+ createdIp: '127.0.0.1',
95
+ createdAt: new Date(),
96
+ updatedBy: 'test-user',
97
+ updatedIp: '127.0.0.1',
98
+ updatedAt: new Date(),
99
+ };
100
+ jest.spyOn(service, 'getDetail').mockResolvedValue(expectedResult);
101
+ const result = await controller.getDetailById(key);
102
+ expect(service.getDetail).toHaveBeenCalledWith(key);
103
+ expect(result).toEqual(expectedResult);
104
+ });
105
+ });
106
+ describe('getDetail', () => {
107
+ it('should get detail successfully', async () => {
108
+ const key = { pk: 'test-pk', sk: 'test-sk' };
109
+ const expectedResult = new master_data_entity_1.MasterDataEntity({
110
+ pk: 'test-pk',
111
+ sk: 'test-sk',
112
+ id: 'data-1',
113
+ tenantCode: 'test-tenant',
114
+ name: 'Test Data',
115
+ code: 'DATA_001',
116
+ type: 'TEST_TYPE',
117
+ seq: 1,
118
+ attributes: { key: 'value' },
119
+ version: 1,
120
+ isDeleted: false,
121
+ createdBy: 'test-user',
122
+ createdAt: new Date(),
123
+ updatedBy: 'test-user',
124
+ updatedAt: new Date(),
125
+ });
126
+ jest.spyOn(service, 'get').mockResolvedValue(expectedResult);
127
+ const result = await controller.getDetail(mockInvokeContext, key);
128
+ expect(service.get).toHaveBeenCalledWith(key);
129
+ expect(result).toEqual(expectedResult);
130
+ });
131
+ });
132
+ describe('createDataSetting', () => {
133
+ it('should create data setting successfully', async () => {
134
+ const createDto = {
135
+ tenantCode: 'test-tenant',
136
+ settingCode: 'TEST_SETTING',
137
+ name: 'New Data',
138
+ code: 'DATA_002',
139
+ seq: 1,
140
+ attributes: { type: 'TEXT', value: 'test-value' },
141
+ };
142
+ const expectedResult = new master_data_entity_1.MasterDataEntity({
143
+ pk: 'test-tenant#master-data',
144
+ sk: 'DATA_002',
145
+ id: 'data-2',
146
+ tenantCode: 'test-tenant',
147
+ name: 'New Data',
148
+ code: 'DATA_002',
149
+ type: 'TEST_TYPE',
150
+ seq: 1,
151
+ attributes: { type: 'TEXT', value: 'test-value' },
152
+ version: 1,
153
+ isDeleted: false,
154
+ createdBy: 'test-user',
155
+ createdAt: new Date(),
156
+ updatedBy: 'test-user',
157
+ updatedAt: new Date(),
158
+ });
159
+ jest.spyOn(service, 'create').mockResolvedValue(expectedResult);
160
+ const result = await controller.createDataSetting(mockInvokeContext, createDto);
161
+ expect(service.create).toHaveBeenCalledWith(createDto, {
162
+ invokeContext: mockInvokeContext,
163
+ });
164
+ expect(result).toEqual(expectedResult);
165
+ });
166
+ });
167
+ describe('updateDataSetting', () => {
168
+ it('should update data setting successfully', async () => {
169
+ const key = { pk: 'test-pk', sk: 'test-sk' };
170
+ const updateDto = { name: 'Updated Data' };
171
+ const expectedResult = new master_data_entity_1.MasterDataEntity({
172
+ pk: 'test-pk',
173
+ sk: 'test-sk',
174
+ id: 'data-1',
175
+ tenantCode: 'test-tenant',
176
+ name: 'Updated Data',
177
+ code: 'DATA_001',
178
+ type: 'TEST_TYPE',
179
+ seq: 1,
180
+ attributes: { key: 'value' },
181
+ version: 2,
182
+ isDeleted: false,
183
+ createdBy: 'test-user',
184
+ createdAt: new Date(),
185
+ updatedBy: 'test-user',
186
+ updatedAt: new Date(),
187
+ });
188
+ jest.spyOn(service, 'update').mockResolvedValue(expectedResult);
189
+ const result = await controller.updateDataSetting(mockInvokeContext, key, updateDto);
190
+ expect(service.update).toHaveBeenCalledWith(key, updateDto, {
191
+ invokeContext: mockInvokeContext,
192
+ });
193
+ expect(result).toEqual(expectedResult);
194
+ });
195
+ });
196
+ describe('deleteDataSetting', () => {
197
+ it('should delete data setting successfully', async () => {
198
+ const key = { pk: 'test-pk', sk: 'test-sk' };
199
+ const expectedResult = new master_data_entity_1.MasterDataEntity({
200
+ pk: 'test-pk',
201
+ sk: 'test-sk',
202
+ id: 'data-1',
203
+ tenantCode: 'test-tenant',
204
+ name: 'Test Data',
205
+ code: 'DATA_001',
206
+ type: 'TEST_TYPE',
207
+ seq: 1,
208
+ attributes: { key: 'value' },
209
+ version: 1,
210
+ isDeleted: true,
211
+ createdBy: 'test-user',
212
+ createdAt: new Date(),
213
+ updatedBy: 'test-user',
214
+ updatedAt: new Date(),
215
+ });
216
+ jest.spyOn(service, 'delete').mockResolvedValue(expectedResult);
217
+ const result = await controller.deleteDataSetting(mockInvokeContext, key);
218
+ expect(service.delete).toHaveBeenCalledWith(key, {
219
+ invokeContext: mockInvokeContext,
220
+ });
221
+ expect(result).toEqual(expectedResult);
222
+ });
223
+ });
224
+ describe('checkExistCode', () => {
225
+ it('should check exist code successfully', async () => {
226
+ const settingCode = 'TEST_SETTING';
227
+ const code = 'TEST_CODE';
228
+ jest.spyOn(service, 'checkExistCode').mockResolvedValue(true);
229
+ const result = await controller.checkExistCode(mockInvokeContext, settingCode, code);
230
+ expect(service.checkExistCode).toHaveBeenCalledWith('test-tenant', settingCode, code);
231
+ expect(result).toBe(true);
232
+ });
233
+ });
234
+ describe('list', () => {
235
+ it('should list by RDS successfully', async () => {
236
+ const searchDto = { settingCode: 'TEST_SETTING', code: 'TEST_CODE' };
237
+ const expectedResult = { items: [], total: 0 };
238
+ jest.spyOn(service, 'listByRds').mockResolvedValue(expectedResult);
239
+ const result = await controller.list(searchDto, mockInvokeContext);
240
+ expect(service.listByRds).toHaveBeenCalledWith(searchDto, {
241
+ invokeContext: mockInvokeContext,
242
+ });
243
+ expect(result).toEqual(expectedResult);
244
+ });
245
+ });
246
+ describe('create', () => {
247
+ it('should create setting successfully', async () => {
248
+ const createDto = {
249
+ settingCode: 'TEST_SETTING',
250
+ name: 'New Setting',
251
+ code: 'SETTING_001',
252
+ seq: 1,
253
+ attributes: { type: 'TEXT' },
254
+ };
255
+ const expectedResult = new master_data_entity_1.MasterDataEntity({
256
+ pk: 'test-tenant#master-setting',
257
+ sk: 'SETTING_001',
258
+ id: 'setting-1',
259
+ tenantCode: 'test-tenant',
260
+ name: 'New Setting',
261
+ code: 'SETTING_001',
262
+ type: 'SETTING_TYPE',
263
+ seq: 1,
264
+ attributes: { type: 'TEXT' },
265
+ version: 1,
266
+ isDeleted: false,
267
+ createdBy: 'test-user',
268
+ createdAt: new Date(),
269
+ updatedBy: 'test-user',
270
+ updatedAt: new Date(),
271
+ });
272
+ jest.spyOn(service, 'createSetting').mockResolvedValue(expectedResult);
273
+ const result = await controller.create(createDto, mockInvokeContext);
274
+ expect(service.createSetting).toHaveBeenCalledWith(createDto, mockInvokeContext);
275
+ expect(result).toEqual(expectedResult);
276
+ });
277
+ });
278
+ describe('update', () => {
279
+ it('should update setting successfully with valid tenant', async () => {
280
+ const key = { pk: 'MASTER#test-tenant', sk: 'test-sk' };
281
+ const updateDto = { name: 'Updated Setting' };
282
+ const expectedResult = new master_data_entity_1.MasterDataEntity({
283
+ pk: 'MASTER#test-tenant',
284
+ sk: 'test-sk',
285
+ id: 'setting-1',
286
+ tenantCode: 'test-tenant',
287
+ name: 'Updated Setting',
288
+ code: 'SETTING_001',
289
+ type: 'SETTING_TYPE',
290
+ seq: 1,
291
+ attributes: { updated: true },
292
+ version: 2,
293
+ isDeleted: false,
294
+ createdBy: 'test-user',
295
+ createdAt: new Date(),
296
+ updatedBy: 'test-user',
297
+ updatedAt: new Date(),
298
+ });
299
+ jest.spyOn(service, 'updateSetting').mockResolvedValue(expectedResult);
300
+ const result = await controller.update(key, updateDto, mockInvokeContext);
301
+ expect(service.updateSetting).toHaveBeenCalledWith(key, updateDto, mockInvokeContext);
302
+ expect(result).toEqual(expectedResult);
303
+ });
304
+ it('should throw BadRequestException for invalid tenant code', async () => {
305
+ const key = { pk: 'other-tenant#setting-1', sk: 'test-sk' };
306
+ const updateDto = { name: 'Updated Setting' };
307
+ await expect(controller.update(key, updateDto, mockInvokeContext)).rejects.toThrow(common_1.BadRequestException);
308
+ });
309
+ });
310
+ describe('delete', () => {
311
+ it('should delete setting successfully with valid tenant', async () => {
312
+ const key = { pk: 'MASTER#test-tenant', sk: 'test-sk' };
313
+ const expectedResult = new master_data_entity_1.MasterDataEntity({
314
+ pk: 'MASTER#test-tenant',
315
+ sk: 'test-sk',
316
+ id: 'setting-1',
317
+ tenantCode: 'test-tenant',
318
+ name: 'Test Setting',
319
+ code: 'SETTING_001',
320
+ type: 'SETTING_TYPE',
321
+ seq: 1,
322
+ attributes: { deleted: true },
323
+ version: 1,
324
+ isDeleted: true,
325
+ createdBy: 'test-user',
326
+ createdAt: new Date(),
327
+ updatedBy: 'test-user',
328
+ updatedAt: new Date(),
329
+ });
330
+ jest.spyOn(service, 'deleteSetting').mockResolvedValue(expectedResult);
331
+ const result = await controller.delete(key, mockInvokeContext);
332
+ expect(service.deleteSetting).toHaveBeenCalledWith(key, mockInvokeContext);
333
+ expect(result).toEqual(expectedResult);
334
+ });
335
+ it('should throw BadRequestException for invalid tenant code', async () => {
336
+ const key = { pk: 'other-tenant#setting-1', sk: 'test-sk' };
337
+ await expect(controller.delete(key, mockInvokeContext)).rejects.toThrow(common_1.BadRequestException);
338
+ });
339
+ });
340
+ });
341
+ //# sourceMappingURL=master-data.controller.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"master-data.controller.spec.js","sourceRoot":"","sources":["../../src/controllers/master-data.controller.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,164 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const testing_1 = require("@nestjs/testing");
4
+ const common_1 = require("@nestjs/common");
5
+ const master_setting_controller_1 = require("./master-setting.controller");
6
+ const master_setting_service_1 = require("../services/master-setting.service");
7
+ describe('MasterSettingController', () => {
8
+ let controller;
9
+ let service;
10
+ const mockInvokeContext = {
11
+ event: {
12
+ requestContext: {
13
+ authorizer: {
14
+ jwt: {
15
+ claims: {
16
+ sub: 'test-sub',
17
+ iss: 'test-issuer',
18
+ 'cognito:username': 'test-user',
19
+ aud: 'test-audience',
20
+ event_id: 'test-event-id',
21
+ token_use: 'id',
22
+ auth_time: 1699930911,
23
+ name: 'Test User',
24
+ 'custom:tenant': 'test-tenant',
25
+ exp: 1700017311,
26
+ email: 'test@example.com',
27
+ iat: 1699930911,
28
+ jti: 'test-jti',
29
+ },
30
+ },
31
+ },
32
+ },
33
+ },
34
+ };
35
+ beforeEach(async () => {
36
+ const mockMasterSettingService = {
37
+ getSetting: jest.fn(),
38
+ createUserSetting: jest.fn(),
39
+ updateSetting: jest.fn(),
40
+ deleteSetting: jest.fn(),
41
+ };
42
+ const module = await testing_1.Test.createTestingModule({
43
+ controllers: [master_setting_controller_1.MasterSettingController],
44
+ providers: [
45
+ {
46
+ provide: master_setting_service_1.MasterSettingService,
47
+ useValue: mockMasterSettingService,
48
+ },
49
+ ],
50
+ }).compile();
51
+ controller = module.get(master_setting_controller_1.MasterSettingController);
52
+ service = module.get(master_setting_service_1.MasterSettingService);
53
+ });
54
+ it('should be defined', () => {
55
+ expect(controller).toBeDefined();
56
+ });
57
+ describe('getSettingDetail', () => {
58
+ it('should get setting detail successfully', async () => {
59
+ const getDto = { code: 'TEST_SETTING' };
60
+ const expectedResult = {
61
+ pk: 'MASTER#test-tenant',
62
+ sk: 'TEST_SETTING',
63
+ settingCode: 'TEST_SETTING',
64
+ name: 'Test Setting',
65
+ type: 'TEXT',
66
+ version: 1,
67
+ };
68
+ jest.spyOn(service, 'getSetting').mockResolvedValue(expectedResult);
69
+ const result = await controller.getSettingDetail(getDto, mockInvokeContext);
70
+ expect(service.getSetting).toHaveBeenCalledWith(getDto, { invokeContext: mockInvokeContext });
71
+ expect(result).toEqual(expectedResult);
72
+ });
73
+ it('should handle service errors', async () => {
74
+ const getDto = { code: 'TEST_SETTING' };
75
+ const error = new Error('Setting not found');
76
+ jest.spyOn(service, 'getSetting').mockRejectedValue(error);
77
+ await expect(controller.getSettingDetail(getDto, mockInvokeContext)).rejects.toThrow('Setting not found');
78
+ });
79
+ });
80
+ describe('createUserSetting', () => {
81
+ it('should create user setting successfully', async () => {
82
+ const createDto = {
83
+ name: 'New Setting',
84
+ code: 'NEW_SETTING',
85
+ tenantCode: 'test-tenant',
86
+ settingValue: { type: 'TEXT', defaultValue: 'test' },
87
+ };
88
+ const expectedResult = {
89
+ pk: 'test-tenant#master-setting',
90
+ sk: 'NEW_SETTING',
91
+ settingCode: 'NEW_SETTING',
92
+ name: 'New Setting',
93
+ type: 'TEXT',
94
+ version: 1,
95
+ };
96
+ jest.spyOn(service, 'createUserSetting').mockResolvedValue(expectedResult);
97
+ const result = await controller.createUserSetting(mockInvokeContext, createDto);
98
+ expect(service.createUserSetting).toHaveBeenCalledWith(createDto, {
99
+ invokeContext: mockInvokeContext,
100
+ });
101
+ expect(result).toEqual(expectedResult);
102
+ });
103
+ it('should handle creation errors', async () => {
104
+ const createDto = {
105
+ name: 'New Setting',
106
+ code: 'NEW_SETTING',
107
+ tenantCode: 'test-tenant',
108
+ settingValue: { type: 'TEXT', defaultValue: 'test' },
109
+ };
110
+ const error = new common_1.BadRequestException('Invalid setting data');
111
+ jest.spyOn(service, 'createUserSetting').mockRejectedValue(error);
112
+ await expect(controller.createUserSetting(mockInvokeContext, createDto)).rejects.toThrow('Invalid setting data');
113
+ });
114
+ });
115
+ describe('updateTenant', () => {
116
+ it('should update tenant setting successfully', async () => {
117
+ const key = { pk: 'MASTER#test-tenant', sk: 'test-sk' };
118
+ const updateDto = { name: 'Updated Setting' };
119
+ const expectedResult = {
120
+ pk: 'MASTER#test-tenant',
121
+ sk: 'test-sk',
122
+ name: 'Updated Setting',
123
+ version: 2,
124
+ };
125
+ jest.spyOn(service, 'updateSetting').mockResolvedValue(expectedResult);
126
+ const result = await controller.updateTenant(key, updateDto, mockInvokeContext);
127
+ expect(service.updateSetting).toHaveBeenCalledWith(key, updateDto, {
128
+ invokeContext: mockInvokeContext,
129
+ });
130
+ expect(result).toEqual(expectedResult);
131
+ });
132
+ it('should handle update errors', async () => {
133
+ const key = { pk: 'MASTER#test-tenant', sk: 'test-sk' };
134
+ const updateDto = { name: 'Updated Setting' };
135
+ const error = new Error('Update failed');
136
+ jest.spyOn(service, 'updateSetting').mockRejectedValue(error);
137
+ await expect(controller.updateTenant(key, updateDto, mockInvokeContext)).rejects.toThrow('Update failed');
138
+ });
139
+ });
140
+ describe('deleteTenant', () => {
141
+ it('should delete tenant setting successfully', async () => {
142
+ const key = { pk: 'MASTER#test-tenant', sk: 'test-sk' };
143
+ const expectedResult = {
144
+ pk: 'MASTER#test-tenant',
145
+ sk: 'test-sk',
146
+ isDeleted: true,
147
+ version: 2,
148
+ };
149
+ jest.spyOn(service, 'deleteSetting').mockResolvedValue(expectedResult);
150
+ const result = await controller.deleteTenant(key, mockInvokeContext);
151
+ expect(service.deleteSetting).toHaveBeenCalledWith(key, {
152
+ invokeContext: mockInvokeContext,
153
+ });
154
+ expect(result).toEqual(expectedResult);
155
+ });
156
+ it('should handle deletion errors', async () => {
157
+ const key = { pk: 'MASTER#test-tenant', sk: 'test-sk' };
158
+ const error = new Error('Deletion failed');
159
+ jest.spyOn(service, 'deleteSetting').mockRejectedValue(error);
160
+ await expect(controller.deleteTenant(key, mockInvokeContext)).rejects.toThrow('Deletion failed');
161
+ });
162
+ });
163
+ });
164
+ //# sourceMappingURL=master-setting.controller.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"master-setting.controller.spec.js","sourceRoot":"","sources":["../../src/controllers/master-setting.controller.spec.ts"],"names":[],"mappings":";;AAAA,6CAAqD;AACrD,2CAAoD;AAGpD,2EAAqE;AACrE,+EAAyE;AAEzE,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACvC,IAAI,UAAmC,CAAA;IACvC,IAAI,OAA6B,CAAA;IAEjC,MAAM,iBAAiB,GAAY;QACjC,KAAK,EAAE;YACL,cAAc,EAAE;gBACd,UAAU,EAAE;oBACV,GAAG,EAAE;wBACH,MAAM,EAAE;4BACN,GAAG,EAAE,UAAU;4BACf,GAAG,EAAE,aAAa;4BAClB,kBAAkB,EAAE,WAAW;4BAC/B,GAAG,EAAE,eAAe;4BACpB,QAAQ,EAAE,eAAe;4BACzB,SAAS,EAAE,IAAI;4BACf,SAAS,EAAE,UAAU;4BACrB,IAAI,EAAE,WAAW;4BACjB,eAAe,EAAE,aAAa;4BAC9B,GAAG,EAAE,UAAU;4BACf,KAAK,EAAE,kBAAkB;4BACzB,GAAG,EAAE,UAAU;4BACf,GAAG,EAAE,UAAU;yBAChB;qBACF;iBACF;aACF;SACF;KACF,CAAA;IAED,UAAU,CAAC,KAAK,IAAI,EAAE;QACpB,MAAM,wBAAwB,GAAG;YAC/B,UAAU,EAAE,IAAI,CAAC,EAAE,EAAE;YACrB,iBAAiB,EAAE,IAAI,CAAC,EAAE,EAAE;YAC5B,aAAa,EAAE,IAAI,CAAC,EAAE,EAAE;YACxB,aAAa,EAAE,IAAI,CAAC,EAAE,EAAE;SACzB,CAAA;QAED,MAAM,MAAM,GAAkB,MAAM,cAAI,CAAC,mBAAmB,CAAC;YAC3D,WAAW,EAAE,CAAC,mDAAuB,CAAC;YACtC,SAAS,EAAE;gBACT;oBACE,OAAO,EAAE,6CAAoB;oBAC7B,QAAQ,EAAE,wBAAwB;iBACnC;aACF;SACF,CAAC,CAAC,OAAO,EAAE,CAAA;QAEZ,UAAU,GAAG,MAAM,CAAC,GAAG,CAA0B,mDAAuB,CAAC,CAAA;QACzE,OAAO,GAAG,MAAM,CAAC,GAAG,CAAuB,6CAAoB,CAAC,CAAA;IAClE,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,mBAAmB,EAAE,GAAG,EAAE;QAC3B,MAAM,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,CAAA;IAClC,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAChC,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;YACtD,MAAM,MAAM,GAAG,EAAE,IAAI,EAAE,cAAc,EAAE,CAAA;YACvC,MAAM,cAAc,GAAG;gBACrB,EAAE,EAAE,oBAAoB;gBACxB,EAAE,EAAE,cAAc;gBAClB,WAAW,EAAE,cAAc;gBAC3B,IAAI,EAAE,cAAc;gBACpB,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,CAAC;aACX,CAAA;YAED,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,iBAAiB,CAAC,cAAqB,CAAC,CAAA;YAE1E,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,gBAAgB,CAAC,MAAa,EAAE,iBAAiB,CAAC,CAAA;YAElF,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,oBAAoB,CAAC,MAAM,EAAE,EAAE,aAAa,EAAE,iBAAiB,EAAE,CAAC,CAAA;YAC7F,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;QACxC,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,8BAA8B,EAAE,KAAK,IAAI,EAAE;YAC5C,MAAM,MAAM,GAAG,EAAE,IAAI,EAAE,cAAc,EAAE,CAAA;YACvC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAA;YAE5C,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAA;YAE1D,MAAM,MAAM,CAAC,UAAU,CAAC,gBAAgB,CAAC,MAAa,EAAE,iBAAiB,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CACzF,mBAAmB,CACpB,CAAA;QACH,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;QACjC,EAAE,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;YACvD,MAAM,SAAS,GAAG;gBAChB,IAAI,EAAE,aAAa;gBACnB,IAAI,EAAE,aAAa;gBACnB,UAAU,EAAE,aAAa;gBACzB,YAAY,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE;aACrD,CAAA;YACD,MAAM,cAAc,GAAG;gBACrB,EAAE,EAAE,4BAA4B;gBAChC,EAAE,EAAE,aAAa;gBACjB,WAAW,EAAE,aAAa;gBAC1B,IAAI,EAAE,aAAa;gBACnB,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,CAAC;aACX,CAAA;YAED,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC,iBAAiB,CAAC,cAAqB,CAAC,CAAA;YAEjF,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,iBAAiB,CAC/C,iBAAiB,EACjB,SAAS,CACV,CAAA;YAED,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,oBAAoB,CAAC,SAAS,EAAE;gBAChE,aAAa,EAAE,iBAAiB;aACjC,CAAC,CAAA;YACF,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;QACxC,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;YAC7C,MAAM,SAAS,GAAG;gBAChB,IAAI,EAAE,aAAa;gBACnB,IAAI,EAAE,aAAa;gBACnB,UAAU,EAAE,aAAa;gBACzB,YAAY,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE;aACrD,CAAA;YACD,MAAM,KAAK,GAAG,IAAI,4BAAmB,CAAC,sBAAsB,CAAC,CAAA;YAE7D,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAA;YAEjE,MAAM,MAAM,CACV,UAAU,CAAC,iBAAiB,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAC3D,CAAC,OAAO,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAA;QAC3C,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;QAC5B,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;YACzD,MAAM,GAAG,GAAc,EAAE,EAAE,EAAE,oBAAoB,EAAE,EAAE,EAAE,SAAS,EAAE,CAAA;YAClE,MAAM,SAAS,GAAG,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAA;YAC7C,MAAM,cAAc,GAAG;gBACrB,EAAE,EAAE,oBAAoB;gBACxB,EAAE,EAAE,SAAS;gBACb,IAAI,EAAE,iBAAiB;gBACvB,OAAO,EAAE,CAAC;aACX,CAAA;YAED,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,iBAAiB,CAAC,cAAqB,CAAC,CAAA;YAE7E,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,YAAY,CAC1C,GAAG,EACH,SAAgB,EAChB,iBAAiB,CAClB,CAAA;YAED,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,oBAAoB,CAAC,GAAG,EAAE,SAAS,EAAE;gBACjE,aAAa,EAAE,iBAAiB;aACjC,CAAC,CAAA;YACF,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;QACxC,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;YAC3C,MAAM,GAAG,GAAc,EAAE,EAAE,EAAE,oBAAoB,EAAE,EAAE,EAAE,SAAS,EAAE,CAAA;YAClE,MAAM,SAAS,GAAG,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAA;YAC7C,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,eAAe,CAAC,CAAA;YAExC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAA;YAE7D,MAAM,MAAM,CACV,UAAU,CAAC,YAAY,CAAC,GAAG,EAAE,SAAgB,EAAE,iBAAiB,CAAC,CAClE,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,CAAA;QACpC,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;QAC5B,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;YACzD,MAAM,GAAG,GAAc,EAAE,EAAE,EAAE,oBAAoB,EAAE,EAAE,EAAE,SAAS,EAAE,CAAA;YAClE,MAAM,cAAc,GAAG;gBACrB,EAAE,EAAE,oBAAoB;gBACxB,EAAE,EAAE,SAAS;gBACb,SAAS,EAAE,IAAI;gBACf,OAAO,EAAE,CAAC;aACX,CAAA;YAED,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,iBAAiB,CAAC,cAAqB,CAAC,CAAA;YAE7E,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,YAAY,CAC1C,GAAG,EACH,iBAAiB,CAClB,CAAA;YAED,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,oBAAoB,CAAC,GAAG,EAAE;gBACtD,aAAa,EAAE,iBAAiB;aACjC,CAAC,CAAA;YACF,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;QACxC,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;YAC7C,MAAM,GAAG,GAAc,EAAE,EAAE,EAAE,oBAAoB,EAAE,EAAE,EAAE,SAAS,EAAE,CAAA;YAClE,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;YAE1C,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAA;YAE7D,MAAM,MAAM,CACV,UAAU,CAAC,YAAY,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAChD,CAAC,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAA;QACtC,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -0,0 +1 @@
1
+ export {};