@tomei/rental 0.2.5 → 0.3.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 (73) hide show
  1. package/.commitlintrc.json +22 -22
  2. package/.eslintrc +16 -16
  3. package/.eslintrc.js +35 -35
  4. package/.husky/commit-msg +15 -15
  5. package/.husky/pre-commit +7 -7
  6. package/.prettierrc +4 -4
  7. package/Jenkinsfile +51 -57
  8. package/README.md +8 -8
  9. package/dist/index.d.ts +1 -1
  10. package/dist/index.js +17 -17
  11. package/dist/src/components/rental/rental.d.ts +36 -35
  12. package/dist/src/components/rental/rental.js +238 -208
  13. package/dist/src/components/rental/rental.js.map +1 -1
  14. package/dist/src/components/rental/rental.repository.d.ts +8 -8
  15. package/dist/src/components/rental/rental.repository.js +66 -66
  16. package/dist/src/components/rental-price/rental-price.d.ts +12 -12
  17. package/dist/src/components/rental-price/rental-price.js +71 -71
  18. package/dist/src/components/rental-price/rental-price.repository.d.ts +8 -8
  19. package/dist/src/components/rental-price/rental-price.repository.js +66 -66
  20. package/dist/src/database.d.ts +4 -4
  21. package/dist/src/database.js +19 -19
  22. package/dist/src/enum/index.d.ts +2 -2
  23. package/dist/src/enum/index.js +5 -5
  24. package/dist/src/enum/rental-status.enum.d.ts +6 -6
  25. package/dist/src/enum/rental-status.enum.js +10 -10
  26. package/dist/src/index.d.ts +9 -9
  27. package/dist/src/index.js +30 -30
  28. package/dist/src/interfaces/index.d.ts +4 -4
  29. package/dist/src/interfaces/index.js +2 -2
  30. package/dist/src/interfaces/rental-attr.interface.d.ts +20 -20
  31. package/dist/src/interfaces/rental-attr.interface.js +2 -2
  32. package/dist/src/interfaces/rental-find-all-search-attr.interface.d.ts +8 -8
  33. package/dist/src/interfaces/rental-find-all-search-attr.interface.js +2 -2
  34. package/dist/src/interfaces/rental-price-attr.interface.d.ts +7 -7
  35. package/dist/src/interfaces/rental-price-attr.interface.js +2 -2
  36. package/dist/src/models/index.d.ts +3 -3
  37. package/dist/src/models/index.js +7 -7
  38. package/dist/src/models/rental-price.entity.d.ts +8 -8
  39. package/dist/src/models/rental-price.entity.js +58 -58
  40. package/dist/src/models/rental.entity.d.ts +23 -23
  41. package/dist/src/models/rental.entity.js +140 -138
  42. package/dist/src/models/rental.entity.js.map +1 -1
  43. package/dist/tsconfig.tsbuildinfo +1 -1
  44. package/jest.config.js +10 -10
  45. package/migrations/rental-price-table-migration.js +32 -32
  46. package/migrations/rental-table-migrations.js +86 -84
  47. package/package.json +71 -71
  48. package/src/components/rental/rental.repository.ts +51 -51
  49. package/src/components/rental/rental.ts +332 -285
  50. package/src/components/rental-price/rental-price.repository.ts +54 -54
  51. package/src/components/rental-price/rental-price.ts +89 -89
  52. package/src/database.ts +21 -21
  53. package/src/enum/index.ts +3 -3
  54. package/src/enum/rental-status.enum.ts +6 -6
  55. package/src/index.ts +16 -16
  56. package/src/interfaces/index.ts +5 -5
  57. package/src/interfaces/rental-attr.interface.ts +21 -21
  58. package/src/interfaces/rental-find-all-search-attr.interface.ts +9 -9
  59. package/src/interfaces/rental-price-attr.interface.ts +7 -7
  60. package/src/models/index.ts +4 -4
  61. package/src/models/rental-price.entity.ts +38 -38
  62. package/src/models/rental.entity.ts +116 -114
  63. package/tsconfig.build.json +5 -5
  64. package/tsconfig.json +23 -23
  65. package/dist/jest.config.d.ts +0 -2
  66. package/dist/jest.config.js +0 -11
  67. package/dist/jest.config.js.map +0 -1
  68. package/dist/migrations/rental-price-table-migration.d.ts +0 -2
  69. package/dist/migrations/rental-price-table-migration.js +0 -43
  70. package/dist/migrations/rental-price-table-migration.js.map +0 -1
  71. package/dist/migrations/rental-table-migrations.d.ts +0 -2
  72. package/dist/migrations/rental-table-migrations.js +0 -95
  73. package/dist/migrations/rental-table-migrations.js.map +0 -1
@@ -1,114 +1,116 @@
1
- import {
2
- Column,
3
- DataType,
4
- Table,
5
- Model,
6
- ForeignKey,
7
- BelongsTo,
8
- CreatedAt,
9
- UpdatedAt,
10
- } from 'sequelize-typescript';
11
- import { RentalPriceModel } from './rental-price.entity';
12
- import { RentalStatusEnum } from '../enum/rental-status.enum';
13
-
14
- @Table({
15
- tableName: 'rental_Rental',
16
- })
17
- export class RentalModel extends Model {
18
- @Column({
19
- primaryKey: true,
20
- allowNull: false,
21
- type: DataType.STRING(30),
22
- })
23
- RentalId: string;
24
-
25
- @Column({
26
- allowNull: false,
27
- type: DataType.STRING(30),
28
- })
29
- CustomerId: string;
30
-
31
- @Column({
32
- allowNull: false,
33
- type: DataType.STRING(30),
34
- })
35
- CustomerType: string;
36
-
37
- @Column({
38
- allowNull: false,
39
- type: DataType.STRING(30),
40
- })
41
- ItemId: string;
42
-
43
- @Column({
44
- allowNull: false,
45
- type: DataType.STRING(30),
46
- })
47
- ItemType: string;
48
-
49
- @ForeignKey(() => RentalPriceModel)
50
- @Column({
51
- allowNull: false,
52
- type: DataType.STRING(30),
53
- })
54
- PriceId: string;
55
-
56
- @Column({
57
- allowNull: false,
58
- type: DataType.DATE,
59
- })
60
- StartDateTime: Date;
61
-
62
- @Column({
63
- allowNull: false,
64
- type: DataType.DATE,
65
- })
66
- EndDateTime: Date;
67
-
68
- @Column({
69
- allowNull: false,
70
- type: DataType.STRING(20),
71
- })
72
- Status: RentalStatusEnum;
73
-
74
- @Column({
75
- type: DataType.STRING(3000),
76
- })
77
- CancelRemarks: string;
78
-
79
- @Column({
80
- type: DataType.STRING(3000),
81
- })
82
- TerminateRemarks: string;
83
-
84
- @Column({
85
- type: DataType.CHAR(1),
86
- })
87
- EscheatmentYN: string;
88
-
89
- @Column({
90
- type: DataType.STRING(30),
91
- })
92
- AgreementNo: string;
93
-
94
- @Column({
95
- allowNull: false,
96
- type: DataType.STRING(30),
97
- })
98
- CreatedById: string;
99
-
100
- @CreatedAt
101
- CreatedAt: Date;
102
-
103
- @Column({
104
- allowNull: false,
105
- type: DataType.STRING(30),
106
- })
107
- UpdatedById: string;
108
-
109
- @UpdatedAt
110
- UpdatedAt: Date;
111
-
112
- @BelongsTo(() => RentalPriceModel)
113
- RentalPrice: RentalPriceModel;
114
- }
1
+ import {
2
+ Column,
3
+ DataType,
4
+ Table,
5
+ Model,
6
+ ForeignKey,
7
+ BelongsTo,
8
+ CreatedAt,
9
+ UpdatedAt,
10
+ } from 'sequelize-typescript';
11
+ import { RentalPriceModel } from './rental-price.entity';
12
+ import { RentalStatusEnum } from '../enum/rental-status.enum';
13
+
14
+ @Table({
15
+ tableName: 'rental_Rental',
16
+ })
17
+ export class RentalModel extends Model {
18
+ @Column({
19
+ primaryKey: true,
20
+ allowNull: false,
21
+ type: DataType.STRING(30),
22
+ })
23
+ RentalId: string;
24
+
25
+ @Column({
26
+ allowNull: false,
27
+ type: DataType.STRING(30),
28
+ })
29
+ CustomerId: string;
30
+
31
+ @Column({
32
+ allowNull: false,
33
+ type: DataType.STRING(30),
34
+ })
35
+ CustomerType: string;
36
+
37
+ @Column({
38
+ allowNull: false,
39
+ type: DataType.STRING(30),
40
+ })
41
+ ItemId: string;
42
+
43
+ @Column({
44
+ allowNull: false,
45
+ type: DataType.STRING(30),
46
+ })
47
+ ItemType: string;
48
+
49
+ @ForeignKey(() => RentalPriceModel)
50
+ @Column({
51
+ allowNull: false,
52
+ type: DataType.STRING(30),
53
+ })
54
+ PriceId: string;
55
+
56
+ @Column({
57
+ allowNull: false,
58
+ type: DataType.DATE,
59
+ })
60
+ StartDateTime: Date;
61
+
62
+ @Column({
63
+ allowNull: false,
64
+ type: DataType.DATE,
65
+ })
66
+ EndDateTime: Date;
67
+
68
+ @Column({
69
+ allowNull: false,
70
+ type: DataType.STRING(20),
71
+ })
72
+ Status: RentalStatusEnum;
73
+
74
+ @Column({
75
+ type: DataType.STRING(3000),
76
+ })
77
+ CancelRemarks: string;
78
+
79
+ @Column({
80
+ type: DataType.STRING(3000),
81
+ })
82
+ TerminateRemarks: string;
83
+
84
+ @Column({
85
+ type: DataType.CHAR(1),
86
+ })
87
+ EscheatmentYN: string;
88
+
89
+ @Column({
90
+ allowNull: false,
91
+ unique: true,
92
+ type: DataType.STRING(30),
93
+ })
94
+ AgreementNo: string;
95
+
96
+ @Column({
97
+ allowNull: false,
98
+ type: DataType.STRING(30),
99
+ })
100
+ CreatedById: string;
101
+
102
+ @CreatedAt
103
+ CreatedAt: Date;
104
+
105
+ @Column({
106
+ allowNull: false,
107
+ type: DataType.STRING(30),
108
+ })
109
+ UpdatedById: string;
110
+
111
+ @UpdatedAt
112
+ UpdatedAt: Date;
113
+
114
+ @BelongsTo(() => RentalPriceModel)
115
+ RentalPrice: RentalPriceModel;
116
+ }
@@ -1,6 +1,6 @@
1
- {
2
- "extends": "./tsconfig.json",
3
- "include": ["**/*.ts"],
4
- "exclude": ["node_modules", "__tests__", "dist", "**/*spec.ts"]
5
- }
1
+ {
2
+ "extends": "./tsconfig.json",
3
+ "include": ["**/*.ts"],
4
+ "exclude": ["node_modules", "__tests__", "dist", "**/*spec.ts"]
5
+ }
6
6
 
package/tsconfig.json CHANGED
@@ -1,23 +1,23 @@
1
- {
2
- "compilerOptions": {
3
- "module": "commonjs",
4
- "declaration": true,
5
- "removeComments": true,
6
- "emitDecoratorMetadata": true,
7
- "experimentalDecorators": true,
8
- "allowSyntheticDefaultImports": true,
9
- "moduleResolution": "node",
10
- "target": "es6",
11
- "sourceMap": true,
12
- "outDir": "dist",
13
- "baseUrl": "./src",
14
- "rootDir": "./",
15
- "incremental": true,
16
- "skipLibCheck": true,
17
- "noImplicitAny": false,
18
- "strictBindCallApply": false,
19
- "forceConsistentCasingInFileNames": false,
20
- "noFallthroughCasesInSwitch": false,
21
- "strictNullChecks": true
22
- },
23
- }
1
+ {
2
+ "compilerOptions": {
3
+ "module": "commonjs",
4
+ "declaration": true,
5
+ "removeComments": true,
6
+ "emitDecoratorMetadata": true,
7
+ "experimentalDecorators": true,
8
+ "allowSyntheticDefaultImports": true,
9
+ "moduleResolution": "node",
10
+ "target": "es6",
11
+ "sourceMap": true,
12
+ "outDir": "dist",
13
+ "baseUrl": "./src",
14
+ "rootDir": "./",
15
+ "incremental": true,
16
+ "skipLibCheck": true,
17
+ "noImplicitAny": false,
18
+ "strictBindCallApply": false,
19
+ "forceConsistentCasingInFileNames": false,
20
+ "noFallthroughCasesInSwitch": false,
21
+ "strictNullChecks": true
22
+ },
23
+ }
@@ -1,2 +0,0 @@
1
- declare const _exports: import('ts-jest').JestConfigWithTsJest;
2
- export = _exports;
@@ -1,11 +0,0 @@
1
- module.exports = {
2
- clearMocks: true,
3
- preset: 'ts-jest',
4
- testTimeout: 20000,
5
- coverageDirectory: "coverage",
6
- testEnvironment: 'node',
7
- "modulePathIgnorePatterns": [
8
- "<rootDir>/dist"
9
- ],
10
- };
11
- //# sourceMappingURL=jest.config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"jest.config.js","sourceRoot":"","sources":["../jest.config.js"],"names":[],"mappings":"AACA,MAAM,CAAC,OAAO,GAAG;IACf,UAAU,EAAE,IAAI;IAChB,MAAM,EAAE,SAAS;IACjB,WAAW,EAAE,KAAK;IAClB,iBAAiB,EAAE,UAAU;IAC7B,eAAe,EAAE,MAAM;IACvB,0BAA0B,EAAE;QAC1B,gBAAgB;KACjB;CACF,CAAC"}
@@ -1,2 +0,0 @@
1
- declare const _exports: any;
2
- export = _exports;
@@ -1,43 +0,0 @@
1
- 'use strict';
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- module.exports = {
12
- up(queryInterface, Sequelize) {
13
- return __awaiter(this, void 0, void 0, function* () {
14
- yield queryInterface.createTable('rental_Price', {
15
- PriceId: {
16
- type: Sequelize.STRING(30),
17
- allowNull: false,
18
- primaryKey: true,
19
- },
20
- RetailPrice: {
21
- type: Sequelize.DECIMAL(10, 2),
22
- allowNull: false,
23
- },
24
- Currency: {
25
- type: Sequelize.CHAR(3),
26
- allowNull: false,
27
- },
28
- PromoCode: {
29
- type: Sequelize.STRING(10),
30
- },
31
- Remarks: {
32
- type: Sequelize.STRING(3000),
33
- },
34
- });
35
- });
36
- },
37
- down(queryInterface, Sequelize) {
38
- return __awaiter(this, void 0, void 0, function* () {
39
- yield queryInterface.dropTable('rental_Price');
40
- });
41
- },
42
- };
43
- //# sourceMappingURL=rental-price-table-migration.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rental-price-table-migration.js","sourceRoot":"","sources":["../../migrations/rental-price-table-migration.js"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;;;;;;AAGb,MAAM,CAAC,OAAO,GAAG;IACP,EAAE,CAAC,cAAc,EAAE,SAAS;;YAC9B,MAAM,cAAc,CAAC,WAAW,CAAC,cAAc,EAAE;gBAC7C,OAAO,EAAE;oBACL,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC1B,SAAS,EAAE,KAAK;oBAChB,UAAU,EAAE,IAAI;iBACnB;gBACD,WAAW,EAAE;oBACT,IAAI,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;oBAC9B,SAAS,EAAE,KAAK;iBACnB;gBACD,QAAQ,EAAE;oBACN,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;oBACvB,SAAS,EAAE,KAAK;iBACnB;gBACD,SAAS,EAAE;oBACP,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;iBAC7B;gBACD,OAAO,EAAE;oBACL,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC;iBAC/B;aACJ,CAAC,CAAC;QACP,CAAC;KAAA;IAEK,IAAI,CAAC,cAAc,EAAE,SAAS;;YAChC,MAAM,cAAc,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QACnD,CAAC;KAAA;CACJ,CAAC"}
@@ -1,2 +0,0 @@
1
- declare const _exports: any;
2
- export = _exports;
@@ -1,95 +0,0 @@
1
- 'use strict';
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- module.exports = {
12
- up(queryInterface, Sequelize) {
13
- return __awaiter(this, void 0, void 0, function* () {
14
- yield queryInterface.createTable('rental_Rental', {
15
- RentalId: {
16
- type: Sequelize.STRING(30),
17
- allowNull: false,
18
- primaryKey: true,
19
- },
20
- CustomerId: {
21
- type: Sequelize.STRING(30),
22
- allowNull: false,
23
- },
24
- CustomerType: {
25
- type: Sequelize.STRING(30),
26
- allowNull: false,
27
- },
28
- ItemId: {
29
- type: Sequelize.STRING(30),
30
- allowNull: false,
31
- },
32
- ItemType: {
33
- type: Sequelize.STRING(30),
34
- allowNull: false,
35
- },
36
- PriceId: {
37
- type: Sequelize.STRING(30),
38
- allowNull: false,
39
- references: {
40
- model: 'rental_Price',
41
- key: 'PriceId',
42
- },
43
- onUpdate: 'CASCADE',
44
- onDelete: 'CASCADE',
45
- },
46
- StartDateTime: {
47
- type: Sequelize.DATE,
48
- allowNull: false,
49
- },
50
- EndDateTime: {
51
- type: Sequelize.DATE,
52
- allowNull: false,
53
- },
54
- Status: {
55
- type: Sequelize.STRING(20),
56
- allowNull: false,
57
- },
58
- CancelRemarks: {
59
- type: Sequelize.STRING(3000),
60
- },
61
- TerminateRemarks: {
62
- type: Sequelize.STRING(3000),
63
- },
64
- EscheatmentYN: {
65
- type: Sequelize.CHAR(1),
66
- },
67
- AgreementNo: {
68
- type: Sequelize.STRING(30),
69
- },
70
- CreatedById: {
71
- type: Sequelize.STRING(30),
72
- allowNull: false,
73
- },
74
- CreatedAt: {
75
- type: Sequelize.DATE,
76
- allowNull: false,
77
- },
78
- UpdatedById: {
79
- type: Sequelize.STRING(30),
80
- allowNull: false,
81
- },
82
- UpdatedAt: {
83
- type: Sequelize.DATE,
84
- allowNull: false,
85
- },
86
- });
87
- });
88
- },
89
- down(queryInterface, Sequelize) {
90
- return __awaiter(this, void 0, void 0, function* () {
91
- yield queryInterface.dropTable('rental_Rental');
92
- });
93
- },
94
- };
95
- //# sourceMappingURL=rental-table-migrations.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rental-table-migrations.js","sourceRoot":"","sources":["../../migrations/rental-table-migrations.js"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;;;;;;AAGb,MAAM,CAAC,OAAO,GAAG;IACP,EAAE,CAAC,cAAc,EAAE,SAAS;;YAC9B,MAAM,cAAc,CAAC,WAAW,CAAC,eAAe,EAAE;gBAC9C,QAAQ,EAAE;oBACN,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC1B,SAAS,EAAE,KAAK;oBAChB,UAAU,EAAE,IAAI;iBACnB;gBACD,UAAU,EAAE;oBACR,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC1B,SAAS,EAAE,KAAK;iBACnB;gBACD,YAAY,EAAE;oBACV,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC1B,SAAS,EAAE,KAAK;iBACnB;gBACD,MAAM,EAAE;oBACJ,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC1B,SAAS,EAAE,KAAK;iBACnB;gBACD,QAAQ,EAAE;oBACN,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC1B,SAAS,EAAE,KAAK;iBACnB;gBACD,OAAO,EAAE;oBACL,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC1B,SAAS,EAAE,KAAK;oBAChB,UAAU,EAAE;wBACR,KAAK,EAAE,cAAc;wBACrB,GAAG,EAAE,SAAS;qBACjB;oBACD,QAAQ,EAAE,SAAS;oBACnB,QAAQ,EAAE,SAAS;iBACtB;gBACD,aAAa,EAAE;oBACX,IAAI,EAAE,SAAS,CAAC,IAAI;oBACpB,SAAS,EAAE,KAAK;iBACnB;gBACD,WAAW,EAAE;oBACT,IAAI,EAAE,SAAS,CAAC,IAAI;oBACpB,SAAS,EAAE,KAAK;iBACnB;gBACD,MAAM,EAAE;oBACJ,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC1B,SAAS,EAAE,KAAK;iBACnB;gBACD,aAAa,EAAE;oBACX,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC;iBAC/B;gBACD,gBAAgB,EAAE;oBACd,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC;iBAC/B;gBACD,aAAa,EAAE;oBACX,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;iBAC1B;gBACD,WAAW,EAAE;oBACT,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;iBAC7B;gBACD,WAAW,EAAE;oBACT,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC1B,SAAS,EAAE,KAAK;iBACnB;gBACD,SAAS,EAAE;oBACP,IAAI,EAAE,SAAS,CAAC,IAAI;oBACpB,SAAS,EAAE,KAAK;iBACnB;gBACD,WAAW,EAAE;oBACT,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC1B,SAAS,EAAE,KAAK;iBACnB;gBACD,SAAS,EAAE;oBACP,IAAI,EAAE,SAAS,CAAC,IAAI;oBACpB,SAAS,EAAE,KAAK;iBACnB;aACJ,CAAC,CAAC;QACP,CAAC;KAAA;IAEK,IAAI,CAAC,cAAc,EAAE,SAAS;;YAChC,MAAM,cAAc,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QACpD,CAAC;KAAA;CACJ,CAAC"}