@abyss-project/console 5.0.0 → 7.0.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/api/internal-ticket-config.api.d.ts +5 -1
- package/dist/api/internal-ticket-config.api.js +20 -1
- package/dist/api/internal-ticket-config.api.js.map +1 -1
- package/dist/api/internal-ticket.api.d.ts +5 -1
- package/dist/api/internal-ticket.api.js +20 -1
- package/dist/api/internal-ticket.api.js.map +1 -1
- package/dist/api/workflow.admin.api.js.map +1 -1
- package/dist/index.d.ts +12 -0
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -1
- package/dist/types/dto/internal-ticket-activity.dto.d.ts +16 -0
- package/dist/types/dto/workflow.dto.d.ts +1 -1
- package/dist/types/enum/internal-ticket.enum.d.ts +29 -1
- package/dist/types/enum/internal-ticket.enum.js +32 -1
- package/dist/types/enum/internal-ticket.enum.js.map +1 -1
- package/dist/types/interface/api/index.d.ts +2 -0
- package/dist/types/interface/api/index.js +2 -0
- package/dist/types/interface/api/index.js.map +1 -1
- package/dist/types/interface/api/requests/internal-ticket-approval.request.d.ts +59 -0
- package/dist/types/interface/api/requests/internal-ticket-approval.request.js +3 -0
- package/dist/types/interface/api/requests/internal-ticket-approval.request.js.map +1 -0
- package/dist/types/interface/api/requests/internal-ticket-config.request.d.ts +14 -1
- package/dist/types/interface/api/requests/internal-ticket.request.d.ts +3 -1
- package/dist/types/interface/api/responses/internal-ticket-approval.response.d.ts +21 -0
- package/dist/types/interface/api/responses/internal-ticket-approval.response.js +3 -0
- package/dist/types/interface/api/responses/internal-ticket-approval.response.js.map +1 -0
- package/dist/types/interface/index.d.ts +2 -0
- package/dist/types/interface/index.js +2 -0
- package/dist/types/interface/index.js.map +1 -1
- package/dist/types/interface/models/internal-ticket-approval-rule.model.d.ts +12 -0
- package/dist/types/interface/models/internal-ticket-approval-rule.model.js +3 -0
- package/dist/types/interface/models/internal-ticket-approval-rule.model.js.map +1 -0
- package/dist/types/interface/models/internal-ticket-approval.model.d.ts +17 -0
- package/dist/types/interface/models/internal-ticket-approval.model.js +3 -0
- package/dist/types/interface/models/internal-ticket-approval.model.js.map +1 -0
- package/dist/types/interface/models/internal-ticket-artifact-type.model.d.ts +3 -0
- package/dist/types/interface/models/internal-ticket.model.d.ts +6 -1
- package/dist/utils/index.d.ts +3 -0
- package/dist/utils/index.js +3 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/internal-ticket-approval.utils.d.ts +13 -0
- package/dist/utils/internal-ticket-approval.utils.js +50 -0
- package/dist/utils/internal-ticket-approval.utils.js.map +1 -0
- package/dist/utils/internal-ticket-artifact-rules.utils.d.ts +13 -0
- package/dist/utils/internal-ticket-artifact-rules.utils.js +44 -0
- package/dist/utils/internal-ticket-artifact-rules.utils.js.map +1 -0
- package/dist/utils/internal-ticket-artifact-value.utils.d.ts +16 -0
- package/dist/utils/internal-ticket-artifact-value.utils.js +53 -0
- package/dist/utils/internal-ticket-artifact-value.utils.js.map +1 -0
- package/dist/utils/internal-ticket-status.utils.d.ts +1 -1
- package/dist/utils/internal-ticket-status.utils.js +15 -1
- package/dist/utils/internal-ticket-status.utils.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { InternalTicketApprovalDecision } from '../../../enum';
|
|
2
|
+
import { ArtifactRuleConditionType } from '../../models/internal-ticket-artifact-rule.model';
|
|
3
|
+
export interface IRequestInternalTicketApprovalParams {
|
|
4
|
+
organizationId: string;
|
|
5
|
+
internalTicketId: string;
|
|
6
|
+
}
|
|
7
|
+
export interface IRequestInternalTicketApprovalBody {
|
|
8
|
+
approverUserId: string;
|
|
9
|
+
}
|
|
10
|
+
export interface IDecideInternalTicketApprovalParams {
|
|
11
|
+
organizationId: string;
|
|
12
|
+
internalTicketId: string;
|
|
13
|
+
internalTicketApprovalId: string;
|
|
14
|
+
}
|
|
15
|
+
export interface IDecideInternalTicketApprovalBody {
|
|
16
|
+
decision: InternalTicketApprovalDecision.APPROVED | InternalTicketApprovalDecision.REFUSED;
|
|
17
|
+
comment?: string;
|
|
18
|
+
}
|
|
19
|
+
export interface IWithdrawInternalTicketApprovalParams {
|
|
20
|
+
organizationId: string;
|
|
21
|
+
internalTicketId: string;
|
|
22
|
+
internalTicketApprovalId: string;
|
|
23
|
+
}
|
|
24
|
+
export interface IListInternalTicketApprovalParams {
|
|
25
|
+
organizationId: string;
|
|
26
|
+
internalTicketId: string;
|
|
27
|
+
}
|
|
28
|
+
export interface IListInternalTicketApprovalRuleParams {
|
|
29
|
+
organizationId: string;
|
|
30
|
+
}
|
|
31
|
+
export interface IListInternalTicketApprovalRuleQuery {
|
|
32
|
+
internalTicketSectionId?: string;
|
|
33
|
+
}
|
|
34
|
+
export interface ICreateInternalTicketApprovalRuleParams {
|
|
35
|
+
organizationId: string;
|
|
36
|
+
}
|
|
37
|
+
export interface ICreateInternalTicketApprovalRuleBody {
|
|
38
|
+
internalTicketSectionId: string;
|
|
39
|
+
conditionType: ArtifactRuleConditionType;
|
|
40
|
+
conditionId?: string;
|
|
41
|
+
step?: number;
|
|
42
|
+
approverUserId: string;
|
|
43
|
+
isEnabled?: boolean;
|
|
44
|
+
}
|
|
45
|
+
export interface IUpdateInternalTicketApprovalRuleParams {
|
|
46
|
+
organizationId: string;
|
|
47
|
+
internalTicketApprovalRuleId: string;
|
|
48
|
+
}
|
|
49
|
+
export interface IUpdateInternalTicketApprovalRuleBody {
|
|
50
|
+
conditionType?: ArtifactRuleConditionType;
|
|
51
|
+
conditionId?: string | null;
|
|
52
|
+
step?: number;
|
|
53
|
+
approverUserId?: string;
|
|
54
|
+
isEnabled?: boolean;
|
|
55
|
+
}
|
|
56
|
+
export interface IDeleteInternalTicketApprovalRuleParams {
|
|
57
|
+
organizationId: string;
|
|
58
|
+
internalTicketApprovalRuleId: string;
|
|
59
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"internal-ticket-approval.request.js","sourceRoot":"","sources":["../../../../../src/types/interface/api/requests/internal-ticket-approval.request.ts"],"names":[],"mappings":""}
|
|
@@ -2,12 +2,18 @@ import { InternalTicketSectionVisibility } from '../../../enum/internal-ticket.e
|
|
|
2
2
|
export interface ICreateInternalTicketSectionParams {
|
|
3
3
|
organizationId: string;
|
|
4
4
|
}
|
|
5
|
+
export interface IInternalTicketSectionConfigItem {
|
|
6
|
+
name: string;
|
|
7
|
+
color?: string;
|
|
8
|
+
}
|
|
5
9
|
export interface ICreateInternalTicketSectionBody {
|
|
6
10
|
name: string;
|
|
7
11
|
description?: string;
|
|
8
12
|
color?: string;
|
|
9
13
|
icon?: string;
|
|
10
14
|
order?: number;
|
|
15
|
+
categories?: IInternalTicketSectionConfigItem[];
|
|
16
|
+
priorities?: IInternalTicketSectionConfigItem[];
|
|
11
17
|
}
|
|
12
18
|
export interface IListInternalTicketSectionParams {
|
|
13
19
|
organizationId: string;
|
|
@@ -145,7 +151,8 @@ export interface IDeleteInternalTicketTagParams {
|
|
|
145
151
|
organizationId: string;
|
|
146
152
|
internalTicketTagId: string;
|
|
147
153
|
}
|
|
148
|
-
import { ArtifactRuleConditionType } from '../../models/internal-ticket-artifact-rule.model';
|
|
154
|
+
import { ArtifactRuleBehaviorType, ArtifactRuleConditionType } from '../../models/internal-ticket-artifact-rule.model';
|
|
155
|
+
import { ArtifactValueType } from '../../../enum';
|
|
149
156
|
export interface ICreateInternalTicketArtifactTypeParams {
|
|
150
157
|
organizationId: string;
|
|
151
158
|
}
|
|
@@ -156,9 +163,12 @@ export interface ICreateInternalTicketArtifactTypeBody {
|
|
|
156
163
|
description?: string;
|
|
157
164
|
order?: number;
|
|
158
165
|
isEnabled?: boolean;
|
|
166
|
+
valueType?: ArtifactValueType;
|
|
167
|
+
valueOptions?: string[];
|
|
159
168
|
rules?: Array<{
|
|
160
169
|
conditionType: ArtifactRuleConditionType;
|
|
161
170
|
conditionId?: string;
|
|
171
|
+
behaviorType?: ArtifactRuleBehaviorType;
|
|
162
172
|
}>;
|
|
163
173
|
}
|
|
164
174
|
export interface IListInternalTicketArtifactTypeParams {
|
|
@@ -178,9 +188,12 @@ export interface IUpdateInternalTicketArtifactTypeBody {
|
|
|
178
188
|
order?: number;
|
|
179
189
|
isEnabled?: boolean;
|
|
180
190
|
isArchived?: boolean;
|
|
191
|
+
valueType?: ArtifactValueType;
|
|
192
|
+
valueOptions?: string[];
|
|
181
193
|
rules?: Array<{
|
|
182
194
|
conditionType: ArtifactRuleConditionType;
|
|
183
195
|
conditionId?: string;
|
|
196
|
+
behaviorType?: ArtifactRuleBehaviorType;
|
|
184
197
|
}>;
|
|
185
198
|
}
|
|
186
199
|
export interface IDeleteInternalTicketArtifactTypeParams {
|
|
@@ -13,10 +13,11 @@ export interface ICreateInternalTicketBody {
|
|
|
13
13
|
isPrivate?: boolean;
|
|
14
14
|
tagIds?: string[];
|
|
15
15
|
artifacts?: {
|
|
16
|
+
internalTicketArtifactTypeId?: string;
|
|
16
17
|
label: string;
|
|
17
18
|
value: string;
|
|
18
19
|
}[];
|
|
19
|
-
projectId
|
|
20
|
+
projectId?: string;
|
|
20
21
|
}
|
|
21
22
|
export interface IPaginateInternalTicketParams {
|
|
22
23
|
organizationId: string;
|
|
@@ -53,6 +54,7 @@ export interface IUpdateInternalTicketBody {
|
|
|
53
54
|
priorityReason?: string;
|
|
54
55
|
priorityCheckedAt?: Date;
|
|
55
56
|
reviewedAt?: Date;
|
|
57
|
+
waitingRequesterSince?: Date | null;
|
|
56
58
|
resolvedAt?: Date | null;
|
|
57
59
|
resolvedReason?: string;
|
|
58
60
|
closedAt?: Date | null;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { IInternalTicketApproval } from '../../models/internal-ticket-approval.model';
|
|
2
|
+
import { IInternalTicketApprovalRule } from '../../models/internal-ticket-approval-rule.model';
|
|
3
|
+
import { IResponse } from '../type-message/response';
|
|
4
|
+
export interface IInternalTicketApprovalData {
|
|
5
|
+
internalTicketApproval: IInternalTicketApproval;
|
|
6
|
+
}
|
|
7
|
+
export type IRequestInternalTicketApprovalResponse = IResponse<IInternalTicketApprovalData>;
|
|
8
|
+
export type IDecideInternalTicketApprovalResponse = IResponse<IInternalTicketApprovalData>;
|
|
9
|
+
export interface IListInternalTicketApprovalData {
|
|
10
|
+
internalTicketApprovals: IInternalTicketApproval[];
|
|
11
|
+
}
|
|
12
|
+
export type IListInternalTicketApprovalResponse = IResponse<IListInternalTicketApprovalData>;
|
|
13
|
+
export interface IInternalTicketApprovalRuleData {
|
|
14
|
+
internalTicketApprovalRule: IInternalTicketApprovalRule;
|
|
15
|
+
}
|
|
16
|
+
export type ICreateInternalTicketApprovalRuleResponse = IResponse<IInternalTicketApprovalRuleData>;
|
|
17
|
+
export type IUpdateInternalTicketApprovalRuleResponse = IResponse<IInternalTicketApprovalRuleData>;
|
|
18
|
+
export interface IListInternalTicketApprovalRuleData {
|
|
19
|
+
internalTicketApprovalRules: IInternalTicketApprovalRule[];
|
|
20
|
+
}
|
|
21
|
+
export type IListInternalTicketApprovalRuleResponse = IResponse<IListInternalTicketApprovalRuleData>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"internal-ticket-approval.response.js","sourceRoot":"","sources":["../../../../../src/types/interface/api/responses/internal-ticket-approval.response.ts"],"names":[],"mappings":""}
|
|
@@ -36,5 +36,7 @@ export * from './models/internal-ticket-assignee.model';
|
|
|
36
36
|
export * from './models/internal-ticket-tag.model';
|
|
37
37
|
export * from './models/internal-ticket-ticket-tag.model';
|
|
38
38
|
export * from './models/internal-ticket-artifact-type.model';
|
|
39
|
+
export * from './models/internal-ticket-approval.model';
|
|
40
|
+
export * from './models/internal-ticket-approval-rule.model';
|
|
39
41
|
export * from './models/internal-ticket-artifact-rule.model';
|
|
40
42
|
export * from './models/internal-ticket-artifact.model';
|
|
@@ -52,6 +52,8 @@ __exportStar(require("./models/internal-ticket-assignee.model"), exports);
|
|
|
52
52
|
__exportStar(require("./models/internal-ticket-tag.model"), exports);
|
|
53
53
|
__exportStar(require("./models/internal-ticket-ticket-tag.model"), exports);
|
|
54
54
|
__exportStar(require("./models/internal-ticket-artifact-type.model"), exports);
|
|
55
|
+
__exportStar(require("./models/internal-ticket-approval.model"), exports);
|
|
56
|
+
__exportStar(require("./models/internal-ticket-approval-rule.model"), exports);
|
|
55
57
|
__exportStar(require("./models/internal-ticket-artifact-rule.model"), exports);
|
|
56
58
|
__exportStar(require("./models/internal-ticket-artifact.model"), exports);
|
|
57
59
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/interface/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AACA,wCAAsB;AAGtB,yDAAuC;AACvC,0DAAwC;AACxC,kEAAgD;AAChD,+DAA6C;AAC7C,0EAAwD;AACxD,oEAAkD;AAClD,yEAAuD;AACvD,kEAAgD;AAChD,qEAAmD;AACnD,4DAA0C;AAC1C,wDAAsC;AACtC,gEAA8C;AAC9C,sEAAoD;AACpD,+DAA6C;AAC7C,mEAAiD;AACjD,0EAAwD;AACxD,0DAAwC;AACxC,iEAA+C;AAC/C,0EAAwD;AACxD,4EAA0D;AAC1D,qEAAmD;AACnD,iEAA+C;AAC/C,0EAAwD;AACxD,0EAAwD;AACxD,yEAAuD;AACvD,kFAAgE;AAChE,4EAA0D;AAC1D,0EAAwD;AACxD,0EAAwD;AACxD,iFAA+D;AAC/D,4EAA0D;AAC1D,+EAA6D;AAC7D,yEAAuD;AACvD,0EAAwD;AACxD,qEAAmD;AACnD,4EAA0D;AAC1D,+EAA6D;AAC7D,+EAA6D;AAC7D,0EAAwD"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/interface/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AACA,wCAAsB;AAGtB,yDAAuC;AACvC,0DAAwC;AACxC,kEAAgD;AAChD,+DAA6C;AAC7C,0EAAwD;AACxD,oEAAkD;AAClD,yEAAuD;AACvD,kEAAgD;AAChD,qEAAmD;AACnD,4DAA0C;AAC1C,wDAAsC;AACtC,gEAA8C;AAC9C,sEAAoD;AACpD,+DAA6C;AAC7C,mEAAiD;AACjD,0EAAwD;AACxD,0DAAwC;AACxC,iEAA+C;AAC/C,0EAAwD;AACxD,4EAA0D;AAC1D,qEAAmD;AACnD,iEAA+C;AAC/C,0EAAwD;AACxD,0EAAwD;AACxD,yEAAuD;AACvD,kFAAgE;AAChE,4EAA0D;AAC1D,0EAAwD;AACxD,0EAAwD;AACxD,iFAA+D;AAC/D,4EAA0D;AAC1D,+EAA6D;AAC7D,yEAAuD;AACvD,0EAAwD;AACxD,qEAAmD;AACnD,4EAA0D;AAC1D,+EAA6D;AAC7D,0EAAwD;AACxD,+EAA6D;AAC7D,+EAA6D;AAC7D,0EAAwD"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ArtifactRuleConditionType } from './internal-ticket-artifact-rule.model';
|
|
2
|
+
export interface IInternalTicketApprovalRule {
|
|
3
|
+
id: string;
|
|
4
|
+
internalTicketSectionId: string;
|
|
5
|
+
conditionType: ArtifactRuleConditionType;
|
|
6
|
+
conditionId: string | null;
|
|
7
|
+
step: number;
|
|
8
|
+
approverUserId: string;
|
|
9
|
+
isEnabled: boolean;
|
|
10
|
+
createdAt?: Date;
|
|
11
|
+
updatedAt?: Date;
|
|
12
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"internal-ticket-approval-rule.model.js","sourceRoot":"","sources":["../../../../src/types/interface/models/internal-ticket-approval-rule.model.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { InternalTicketApprovalDecision } from '../../enum';
|
|
2
|
+
import { IInternalTicketApprovalRule } from './internal-ticket-approval-rule.model';
|
|
3
|
+
export interface IInternalTicketApproval {
|
|
4
|
+
id: string;
|
|
5
|
+
internalTicketId: string;
|
|
6
|
+
requestedByUserId: string;
|
|
7
|
+
approverUserId: string;
|
|
8
|
+
step: number;
|
|
9
|
+
internalTicketApprovalRuleId: string | null;
|
|
10
|
+
decision: InternalTicketApprovalDecision;
|
|
11
|
+
decidedAt: Date | null;
|
|
12
|
+
comment: string | null;
|
|
13
|
+
withdrawnAt: Date | null;
|
|
14
|
+
createdAt?: Date;
|
|
15
|
+
updatedAt?: Date;
|
|
16
|
+
internalTicketApprovalRule?: IInternalTicketApprovalRule;
|
|
17
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"internal-ticket-approval.model.js","sourceRoot":"","sources":["../../../../src/types/interface/models/internal-ticket-approval.model.ts"],"names":[],"mappings":""}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { ArtifactValueType } from '../../enum';
|
|
1
2
|
import { IInternalTicketSection } from './internal-ticket-section.model';
|
|
2
3
|
import { IInternalTicketArtifactRule } from './internal-ticket-artifact-rule.model';
|
|
3
4
|
export interface IInternalTicketArtifactType {
|
|
@@ -8,6 +9,8 @@ export interface IInternalTicketArtifactType {
|
|
|
8
9
|
color: string | null;
|
|
9
10
|
order: number;
|
|
10
11
|
isEnabled: boolean;
|
|
12
|
+
valueType: ArtifactValueType;
|
|
13
|
+
valueOptions: string[];
|
|
11
14
|
archivedAt: Date | null;
|
|
12
15
|
createdAt?: Date;
|
|
13
16
|
updatedAt?: Date;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { InternalTicketStatus } from '../../enum';
|
|
1
|
+
import { InternalTicketApprovalState, InternalTicketStatus } from '../../enum';
|
|
2
2
|
import { IInternalTicketAssignee } from './internal-ticket-assignee.model';
|
|
3
3
|
import { IInternalTicketCategory } from './internal-ticket-category.model';
|
|
4
4
|
import { IInternalTicketMessage } from './internal-ticket-message.model';
|
|
@@ -9,6 +9,7 @@ import { IInternalTicketPriority } from './internal-ticket-priority.model';
|
|
|
9
9
|
import { IInternalTicketSection } from './internal-ticket-section.model';
|
|
10
10
|
import { IInternalTicketTicketTag } from './internal-ticket-ticket-tag.model';
|
|
11
11
|
import { IInternalTicketArtifact } from './internal-ticket-artifact.model';
|
|
12
|
+
import { IInternalTicketApproval } from './internal-ticket-approval.model';
|
|
12
13
|
export interface IInternalTicket {
|
|
13
14
|
id: string;
|
|
14
15
|
projectId: string | null;
|
|
@@ -34,6 +35,9 @@ export interface IInternalTicket {
|
|
|
34
35
|
archivedAt: Date | null;
|
|
35
36
|
closedAt: Date | null;
|
|
36
37
|
closedReason: string | null;
|
|
38
|
+
waitingRequesterSince: Date | null;
|
|
39
|
+
approvalState: InternalTicketApprovalState;
|
|
40
|
+
approvalRequestedAt: Date | null;
|
|
37
41
|
createdAt?: Date;
|
|
38
42
|
updatedAt?: Date;
|
|
39
43
|
internalTicketSection?: IInternalTicketSection;
|
|
@@ -47,4 +51,5 @@ export interface IInternalTicket {
|
|
|
47
51
|
internalTicketAssignees?: IInternalTicketAssignee[];
|
|
48
52
|
internalTicketTicketTags?: IInternalTicketTicketTag[];
|
|
49
53
|
internalTicketArtifacts?: IInternalTicketArtifact[];
|
|
54
|
+
internalTicketApprovals?: IInternalTicketApproval[];
|
|
50
55
|
}
|
package/dist/utils/index.d.ts
CHANGED
|
@@ -3,3 +3,6 @@ export * from './ip-address-validator.utils';
|
|
|
3
3
|
export * from './cidr.util';
|
|
4
4
|
export * from './mention.utils';
|
|
5
5
|
export * from './internal-ticket-status.utils';
|
|
6
|
+
export * from './internal-ticket-artifact-rules.utils';
|
|
7
|
+
export * from './internal-ticket-artifact-value.utils';
|
|
8
|
+
export * from './internal-ticket-approval.utils';
|
package/dist/utils/index.js
CHANGED
|
@@ -19,4 +19,7 @@ __exportStar(require("./ip-address-validator.utils"), exports);
|
|
|
19
19
|
__exportStar(require("./cidr.util"), exports);
|
|
20
20
|
__exportStar(require("./mention.utils"), exports);
|
|
21
21
|
__exportStar(require("./internal-ticket-status.utils"), exports);
|
|
22
|
+
__exportStar(require("./internal-ticket-artifact-rules.utils"), exports);
|
|
23
|
+
__exportStar(require("./internal-ticket-artifact-value.utils"), exports);
|
|
24
|
+
__exportStar(require("./internal-ticket-approval.utils"), exports);
|
|
22
25
|
//# sourceMappingURL=index.js.map
|
package/dist/utils/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,+DAA6C;AAC7C,8CAA4B;AAC5B,kDAAgC;AAChC,iEAA+C"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,+DAA6C;AAC7C,8CAA4B;AAC5B,kDAAgC;AAChC,iEAA+C;AAC/C,yEAAuD;AACvD,yEAAuD;AACvD,mEAAiD"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { InternalTicketApprovalState } from '../types/enum/internal-ticket.enum';
|
|
2
|
+
import { IInternalTicketApproval } from '../types/interface/models/internal-ticket-approval.model';
|
|
3
|
+
import { IInternalTicketApprovalRule } from '../types/interface/models/internal-ticket-approval-rule.model';
|
|
4
|
+
import type { ArtifactRuleContext } from './internal-ticket-artifact-rules.utils';
|
|
5
|
+
type ApprovalInput = Pick<IInternalTicketApproval, 'decision' | 'withdrawnAt'>;
|
|
6
|
+
export declare const computeApprovalState: (approvals: ApprovalInput[]) => InternalTicketApprovalState;
|
|
7
|
+
type RuleInput = Pick<IInternalTicketApprovalRule, 'conditionType' | 'conditionId' | 'step' | 'approverUserId' | 'isEnabled'>;
|
|
8
|
+
export declare const matchApprovalRules: <T extends RuleInput>(rules: T[], context: ArtifactRuleContext) => {
|
|
9
|
+
step: number;
|
|
10
|
+
rules: T[];
|
|
11
|
+
}[];
|
|
12
|
+
export declare const nextApprovalStep: (approvals: Pick<IInternalTicketApproval, 'step' | 'decision' | 'withdrawnAt'>[], plannedSteps: number[]) => number | null;
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.nextApprovalStep = exports.matchApprovalRules = exports.computeApprovalState = void 0;
|
|
4
|
+
const internal_ticket_enum_1 = require("../types/enum/internal-ticket.enum");
|
|
5
|
+
const internal_ticket_artifact_rules_utils_1 = require("./internal-ticket-artifact-rules.utils");
|
|
6
|
+
const computeApprovalState = (approvals) => {
|
|
7
|
+
const live = approvals.filter((approval) => !approval.withdrawnAt);
|
|
8
|
+
if (live.length === 0) {
|
|
9
|
+
return internal_ticket_enum_1.InternalTicketApprovalState.NOT_REQUIRED;
|
|
10
|
+
}
|
|
11
|
+
if (live.some((approval) => approval.decision === internal_ticket_enum_1.InternalTicketApprovalDecision.REFUSED)) {
|
|
12
|
+
return internal_ticket_enum_1.InternalTicketApprovalState.REFUSED;
|
|
13
|
+
}
|
|
14
|
+
if (live.every((approval) => approval.decision === internal_ticket_enum_1.InternalTicketApprovalDecision.APPROVED)) {
|
|
15
|
+
return internal_ticket_enum_1.InternalTicketApprovalState.APPROVED;
|
|
16
|
+
}
|
|
17
|
+
return internal_ticket_enum_1.InternalTicketApprovalState.PENDING;
|
|
18
|
+
};
|
|
19
|
+
exports.computeApprovalState = computeApprovalState;
|
|
20
|
+
const matchApprovalRules = (rules, context) => {
|
|
21
|
+
const matching = rules.filter((rule) => rule.isEnabled && (0, internal_ticket_artifact_rules_utils_1.matchesArtifactRuleCondition)(rule, context));
|
|
22
|
+
const byStep = new Map();
|
|
23
|
+
for (const rule of matching) {
|
|
24
|
+
const bucket = byStep.get(rule.step);
|
|
25
|
+
if (bucket) {
|
|
26
|
+
bucket.push(rule);
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
byStep.set(rule.step, [rule]);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return [...byStep.entries()]
|
|
33
|
+
.sort(([a], [b]) => a - b)
|
|
34
|
+
.map(([step, stepRules]) => ({ step, rules: stepRules }));
|
|
35
|
+
};
|
|
36
|
+
exports.matchApprovalRules = matchApprovalRules;
|
|
37
|
+
const nextApprovalStep = (approvals, plannedSteps) => {
|
|
38
|
+
const live = approvals.filter((approval) => !approval.withdrawnAt);
|
|
39
|
+
if (live.some((approval) => approval.decision === internal_ticket_enum_1.InternalTicketApprovalDecision.REFUSED)) {
|
|
40
|
+
return null;
|
|
41
|
+
}
|
|
42
|
+
const openStep = live.find((approval) => approval.decision === internal_ticket_enum_1.InternalTicketApprovalDecision.PENDING);
|
|
43
|
+
if (openStep) {
|
|
44
|
+
return null;
|
|
45
|
+
}
|
|
46
|
+
const done = new Set(live.map((approval) => approval.step));
|
|
47
|
+
return plannedSteps.filter((step) => !done.has(step)).sort((a, b) => a - b)[0] ?? null;
|
|
48
|
+
};
|
|
49
|
+
exports.nextApprovalStep = nextApprovalStep;
|
|
50
|
+
//# sourceMappingURL=internal-ticket-approval.utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"internal-ticket-approval.utils.js","sourceRoot":"","sources":["../../src/utils/internal-ticket-approval.utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { IInternalTicketArtifactRule } from '../types/interface/models/internal-ticket-artifact-rule.model';
|
|
2
|
+
import { IInternalTicketArtifactType } from '../types/interface/models/internal-ticket-artifact-type.model';
|
|
3
|
+
export type ArtifactRuleContext = {
|
|
4
|
+
internalTicketCategoryId?: string | null;
|
|
5
|
+
internalTicketPriorityId?: string | null;
|
|
6
|
+
tagIds?: string[];
|
|
7
|
+
};
|
|
8
|
+
export type PartitionedArtifactTypes = {
|
|
9
|
+
required: IInternalTicketArtifactType[];
|
|
10
|
+
suggested: IInternalTicketArtifactType[];
|
|
11
|
+
};
|
|
12
|
+
export declare const matchesArtifactRuleCondition: (rule: Pick<IInternalTicketArtifactRule, 'conditionType' | 'conditionId'>, context: ArtifactRuleContext) => boolean;
|
|
13
|
+
export declare const partitionArtifactTypesByRules: (artifactTypes: IInternalTicketArtifactType[], context: ArtifactRuleContext) => PartitionedArtifactTypes;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.partitionArtifactTypesByRules = exports.matchesArtifactRuleCondition = void 0;
|
|
4
|
+
const internal_ticket_artifact_rule_model_1 = require("../types/interface/models/internal-ticket-artifact-rule.model");
|
|
5
|
+
const matchesArtifactRuleCondition = (rule, context) => {
|
|
6
|
+
switch (rule.conditionType) {
|
|
7
|
+
case internal_ticket_artifact_rule_model_1.ArtifactRuleConditionType.ALWAYS:
|
|
8
|
+
return true;
|
|
9
|
+
case internal_ticket_artifact_rule_model_1.ArtifactRuleConditionType.CATEGORY:
|
|
10
|
+
return !!rule.conditionId && rule.conditionId === context.internalTicketCategoryId;
|
|
11
|
+
case internal_ticket_artifact_rule_model_1.ArtifactRuleConditionType.PRIORITY:
|
|
12
|
+
return !!rule.conditionId && rule.conditionId === context.internalTicketPriorityId;
|
|
13
|
+
case internal_ticket_artifact_rule_model_1.ArtifactRuleConditionType.TAG:
|
|
14
|
+
return !!rule.conditionId && (context.tagIds ?? []).includes(rule.conditionId);
|
|
15
|
+
default:
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
exports.matchesArtifactRuleCondition = matchesArtifactRuleCondition;
|
|
20
|
+
const partitionArtifactTypesByRules = (artifactTypes, context) => {
|
|
21
|
+
const required = [];
|
|
22
|
+
const suggested = [];
|
|
23
|
+
for (const artifactType of artifactTypes) {
|
|
24
|
+
if (!artifactType.isEnabled || artifactType.archivedAt) {
|
|
25
|
+
continue;
|
|
26
|
+
}
|
|
27
|
+
const rules = artifactType.internalTicketArtifactRules ?? [];
|
|
28
|
+
const matching = rules.filter((rule) => (0, exports.matchesArtifactRuleCondition)(rule, context));
|
|
29
|
+
if (matching.length === 0) {
|
|
30
|
+
continue;
|
|
31
|
+
}
|
|
32
|
+
const isRequired = matching.some((rule) => (rule.behaviorType ?? internal_ticket_artifact_rule_model_1.ArtifactRuleBehaviorType.REQUIRED) ===
|
|
33
|
+
internal_ticket_artifact_rule_model_1.ArtifactRuleBehaviorType.REQUIRED);
|
|
34
|
+
if (isRequired) {
|
|
35
|
+
required.push(artifactType);
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
suggested.push(artifactType);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return { required, suggested };
|
|
42
|
+
};
|
|
43
|
+
exports.partitionArtifactTypesByRules = partitionArtifactTypesByRules;
|
|
44
|
+
//# sourceMappingURL=internal-ticket-artifact-rules.utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"internal-ticket-artifact-rules.utils.js","sourceRoot":"","sources":["../../src/utils/internal-ticket-artifact-rules.utils.ts"],"names":[],"mappings":";;;AAAA,uHAIuE;AAwBhE,MAAM,4BAA4B,GAAG,CAC1C,IAAwE,EACxE,OAA4B,EACnB,EAAE;IACX,QAAQ,IAAI,CAAC,aAAa,EAAE,CAAC;QAC3B,KAAK,+DAAyB,CAAC,MAAM;YACnC,OAAO,IAAI,CAAC;QACd,KAAK,+DAAyB,CAAC,QAAQ;YACrC,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,KAAK,OAAO,CAAC,wBAAwB,CAAC;QACrF,KAAK,+DAAyB,CAAC,QAAQ;YACrC,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,KAAK,OAAO,CAAC,wBAAwB,CAAC;QACrF,KAAK,+DAAyB,CAAC,GAAG;YAChC,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACjF;YACE,OAAO,KAAK,CAAC;IACjB,CAAC;AACH,CAAC,CAAC;AAhBW,QAAA,4BAA4B,gCAgBvC;AAgBK,MAAM,6BAA6B,GAAG,CAC3C,aAA4C,EAC5C,OAA4B,EACF,EAAE;IAC5B,MAAM,QAAQ,GAAkC,EAAE,CAAC;IACnD,MAAM,SAAS,GAAkC,EAAE,CAAC;IAEpD,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE,CAAC;QACzC,IAAI,CAAC,YAAY,CAAC,SAAS,IAAI,YAAY,CAAC,UAAU,EAAE,CAAC;YACvD,SAAS;QACX,CAAC;QAED,MAAM,KAAK,GAAG,YAAY,CAAC,2BAA2B,IAAI,EAAE,CAAC;QAC7D,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,oCAA4B,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;QAErF,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,SAAS;QACX,CAAC;QAED,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAC9B,CAAC,IAAI,EAAE,EAAE,CACP,CAAC,IAAI,CAAC,YAAY,IAAI,8DAAwB,CAAC,QAAQ,CAAC;YACxD,8DAAwB,CAAC,QAAQ,CACpC,CAAC;QAEF,IAAI,UAAU,EAAE,CAAC;YACf,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC9B,CAAC;aAAM,CAAC;YACN,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;AACjC,CAAC,CAAC;AAjCW,QAAA,6BAA6B,iCAiCxC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ArtifactValueType } from '../types/enum/internal-ticket.enum';
|
|
2
|
+
export type ArtifactValueCheck = {
|
|
3
|
+
valid: true;
|
|
4
|
+
} | {
|
|
5
|
+
valid: false;
|
|
6
|
+
reason: ArtifactValueRejection;
|
|
7
|
+
};
|
|
8
|
+
export declare enum ArtifactValueRejection {
|
|
9
|
+
MALFORMED = "MALFORMED",
|
|
10
|
+
NOT_IN_OPTIONS = "NOT_IN_OPTIONS",
|
|
11
|
+
UNKNOWN_USER = "UNKNOWN_USER"
|
|
12
|
+
}
|
|
13
|
+
export declare const checkArtifactValue: (valueType: ArtifactValueType, value: string, options?: {
|
|
14
|
+
valueOptions?: string[];
|
|
15
|
+
knownUserIds?: string[];
|
|
16
|
+
}) => ArtifactValueCheck;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.checkArtifactValue = exports.ArtifactValueRejection = void 0;
|
|
4
|
+
const internal_ticket_enum_1 = require("../types/enum/internal-ticket.enum");
|
|
5
|
+
const UUID_V4 = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
|
|
6
|
+
const ISO_DATE = /^\d{4}-\d{2}-\d{2}$/;
|
|
7
|
+
const DECIMAL = /^-?\d+(\.\d+)?$/;
|
|
8
|
+
var ArtifactValueRejection;
|
|
9
|
+
(function (ArtifactValueRejection) {
|
|
10
|
+
ArtifactValueRejection["MALFORMED"] = "MALFORMED";
|
|
11
|
+
ArtifactValueRejection["NOT_IN_OPTIONS"] = "NOT_IN_OPTIONS";
|
|
12
|
+
ArtifactValueRejection["UNKNOWN_USER"] = "UNKNOWN_USER";
|
|
13
|
+
})(ArtifactValueRejection || (exports.ArtifactValueRejection = ArtifactValueRejection = {}));
|
|
14
|
+
const checkArtifactValue = (valueType, value, options) => {
|
|
15
|
+
switch (valueType) {
|
|
16
|
+
case internal_ticket_enum_1.ArtifactValueType.TEXT:
|
|
17
|
+
case internal_ticket_enum_1.ArtifactValueType.LONG_TEXT:
|
|
18
|
+
return { valid: true };
|
|
19
|
+
case internal_ticket_enum_1.ArtifactValueType.NUMBER:
|
|
20
|
+
return DECIMAL.test(value)
|
|
21
|
+
? { valid: true }
|
|
22
|
+
: { valid: false, reason: ArtifactValueRejection.MALFORMED };
|
|
23
|
+
case internal_ticket_enum_1.ArtifactValueType.DATE:
|
|
24
|
+
if (!ISO_DATE.test(value)) {
|
|
25
|
+
return { valid: false, reason: ArtifactValueRejection.MALFORMED };
|
|
26
|
+
}
|
|
27
|
+
return new Date(`${value}T00:00:00.000Z`).toISOString().slice(0, 10) === value
|
|
28
|
+
? { valid: true }
|
|
29
|
+
: { valid: false, reason: ArtifactValueRejection.MALFORMED };
|
|
30
|
+
case internal_ticket_enum_1.ArtifactValueType.BOOLEAN:
|
|
31
|
+
return value === 'true' || value === 'false'
|
|
32
|
+
? { valid: true }
|
|
33
|
+
: { valid: false, reason: ArtifactValueRejection.MALFORMED };
|
|
34
|
+
case internal_ticket_enum_1.ArtifactValueType.SINGLE_CHOICE:
|
|
35
|
+
return (options?.valueOptions ?? []).includes(value)
|
|
36
|
+
? { valid: true }
|
|
37
|
+
: { valid: false, reason: ArtifactValueRejection.NOT_IN_OPTIONS };
|
|
38
|
+
case internal_ticket_enum_1.ArtifactValueType.USER:
|
|
39
|
+
if (!UUID_V4.test(value)) {
|
|
40
|
+
return { valid: false, reason: ArtifactValueRejection.MALFORMED };
|
|
41
|
+
}
|
|
42
|
+
if (!options?.knownUserIds) {
|
|
43
|
+
return { valid: true };
|
|
44
|
+
}
|
|
45
|
+
return options.knownUserIds.includes(value)
|
|
46
|
+
? { valid: true }
|
|
47
|
+
: { valid: false, reason: ArtifactValueRejection.UNKNOWN_USER };
|
|
48
|
+
default:
|
|
49
|
+
return { valid: false, reason: ArtifactValueRejection.MALFORMED };
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
exports.checkArtifactValue = checkArtifactValue;
|
|
53
|
+
//# sourceMappingURL=internal-ticket-artifact-value.utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"internal-ticket-artifact-value.utils.js","sourceRoot":"","sources":["../../src/utils/internal-ticket-artifact-value.utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { InternalTicketStatus, InternalTicketStatusReason } from '../types/enum/internal-ticket.enum';
|
|
2
2
|
import { IInternalTicket } from '../types/interface/models/internal-ticket.model';
|
|
3
|
-
type TicketStatusInput = Pick<IInternalTicket, 'archivedAt' | 'closedAt' | 'resolvedAt' | 'reviewedAt' | 'assignedToUserId' | 'internalTicketAssignees'>;
|
|
3
|
+
type TicketStatusInput = Pick<IInternalTicket, 'archivedAt' | 'closedAt' | 'resolvedAt' | 'reviewedAt' | 'assignedToUserId' | 'internalTicketAssignees' | 'approvalState' | 'waitingRequesterSince'>;
|
|
4
4
|
export type ComputedTicketStatus = {
|
|
5
5
|
status: InternalTicketStatus;
|
|
6
6
|
reason: InternalTicketStatusReason;
|
|
@@ -12,7 +12,9 @@ function computeInternalTicketStatus(ticket) {
|
|
|
12
12
|
if (ticket.closedAt) {
|
|
13
13
|
return {
|
|
14
14
|
status: internal_ticket_enum_1.InternalTicketStatus.CLOSED,
|
|
15
|
-
reason: internal_ticket_enum_1.
|
|
15
|
+
reason: ticket.approvalState === internal_ticket_enum_1.InternalTicketApprovalState.REFUSED
|
|
16
|
+
? internal_ticket_enum_1.InternalTicketStatusReason.APPROVAL_REFUSED
|
|
17
|
+
: internal_ticket_enum_1.InternalTicketStatusReason.TICKET_CLOSED,
|
|
16
18
|
};
|
|
17
19
|
}
|
|
18
20
|
if (ticket.resolvedAt) {
|
|
@@ -21,6 +23,18 @@ function computeInternalTicketStatus(ticket) {
|
|
|
21
23
|
reason: internal_ticket_enum_1.InternalTicketStatusReason.TICKET_RESOLVED,
|
|
22
24
|
};
|
|
23
25
|
}
|
|
26
|
+
if (ticket.approvalState === internal_ticket_enum_1.InternalTicketApprovalState.PENDING) {
|
|
27
|
+
return {
|
|
28
|
+
status: internal_ticket_enum_1.InternalTicketStatus.WAITING_APPROVAL,
|
|
29
|
+
reason: internal_ticket_enum_1.InternalTicketStatusReason.APPROVAL_PENDING,
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
if (ticket.waitingRequesterSince) {
|
|
33
|
+
return {
|
|
34
|
+
status: internal_ticket_enum_1.InternalTicketStatus.WAITING_REQUESTER,
|
|
35
|
+
reason: internal_ticket_enum_1.InternalTicketStatusReason.WAITING_ON_REQUESTER,
|
|
36
|
+
};
|
|
37
|
+
}
|
|
24
38
|
if (!ticket.reviewedAt) {
|
|
25
39
|
return {
|
|
26
40
|
status: internal_ticket_enum_1.InternalTicketStatus.WAITING_REVIEW,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internal-ticket-status.utils.js","sourceRoot":"","sources":["../../src/utils/internal-ticket-status.utils.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"internal-ticket-status.utils.js","sourceRoot":"","sources":["../../src/utils/internal-ticket-status.utils.ts"],"names":[],"mappings":";;;AAAA,6EAI4C;AAsC5C,SAAgB,2BAA2B,CAAC,MAAyB;IAEnE,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACtB,OAAO;YACL,MAAM,EAAE,2CAAoB,CAAC,QAAQ;YACrC,MAAM,EAAE,iDAA0B,CAAC,eAAe;SACnD,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QAGpB,OAAO;YACL,MAAM,EAAE,2CAAoB,CAAC,MAAM;YACnC,MAAM,EACJ,MAAM,CAAC,aAAa,KAAK,kDAA2B,CAAC,OAAO;gBAC1D,CAAC,CAAC,iDAA0B,CAAC,gBAAgB;gBAC7C,CAAC,CAAC,iDAA0B,CAAC,aAAa;SAC/C,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACtB,OAAO;YACL,MAAM,EAAE,2CAAoB,CAAC,QAAQ;YACrC,MAAM,EAAE,iDAA0B,CAAC,eAAe;SACnD,CAAC;IACJ,CAAC;IAID,IAAI,MAAM,CAAC,aAAa,KAAK,kDAA2B,CAAC,OAAO,EAAE,CAAC;QACjE,OAAO;YACL,MAAM,EAAE,2CAAoB,CAAC,gBAAgB;YAC7C,MAAM,EAAE,iDAA0B,CAAC,gBAAgB;SACpD,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,CAAC,qBAAqB,EAAE,CAAC;QACjC,OAAO;YACL,MAAM,EAAE,2CAAoB,CAAC,iBAAiB;YAC9C,MAAM,EAAE,iDAA0B,CAAC,oBAAoB;SACxD,CAAC;IACJ,CAAC;IAGD,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QACvB,OAAO;YACL,MAAM,EAAE,2CAAoB,CAAC,cAAc;YAC3C,MAAM,EAAE,iDAA0B,CAAC,YAAY;SAChD,CAAC;IACJ,CAAC;IAED,MAAM,YAAY,GAChB,CAAC,CAAC,MAAM,CAAC,gBAAgB,IAAI,CAAC,MAAM,CAAC,uBAAuB,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IAEjF,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO;YACL,MAAM,EAAE,2CAAoB,CAAC,gBAAgB;YAC7C,MAAM,EAAE,iDAA0B,CAAC,WAAW;SAC/C,CAAC;IACJ,CAAC;IAED,OAAO;QACL,MAAM,EAAE,2CAAoB,CAAC,WAAW;QACxC,MAAM,EAAE,iDAA0B,CAAC,YAAY;KAChD,CAAC;AACJ,CAAC;AAlED,kEAkEC"}
|