@gravitee/ui-policy-studio-angular 15.13.0 → 16.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/fesm2022/gravitee-ui-policy-studio-angular-testing.mjs +1 -1
- package/fesm2022/gravitee-ui-policy-studio-angular-testing.mjs.map +1 -1
- package/fesm2022/gravitee-ui-policy-studio-angular.mjs +92 -95
- package/fesm2022/gravitee-ui-policy-studio-angular.mjs.map +1 -1
- package/index.d.ts +404 -3
- package/package.json +7 -11
- package/testing/index.d.ts +369 -3
- package/esm2022/gravitee-ui-policy-studio-angular.mjs +0 -5
- package/esm2022/lib/components/filter-pipe/gio-flter-connectors-by-mode.pipe.mjs +0 -43
- package/esm2022/lib/components/flow-details/gio-ps-flow-details.component.mjs +0 -184
- package/esm2022/lib/components/flow-details-info-bar/gio-ps-flow-details-info-bar.component.mjs +0 -115
- package/esm2022/lib/components/flow-details-phase/gio-ps-flow-details-phase.component.mjs +0 -179
- package/esm2022/lib/components/flow-details-phase-step/gio-ps-flow-details-phase-step.component.mjs +0 -162
- package/esm2022/lib/components/flow-execution-form-dialog/gio-ps-flow-execution-form-dialog.component.mjs +0 -81
- package/esm2022/lib/components/flow-form-dialog/flow-message-form-dialog/gio-ps-flow-message-form-dialog.component.mjs +0 -109
- package/esm2022/lib/components/flow-form-dialog/flow-native-form-dialog/gio-ps-flow-native-form-dialog.component.mjs +0 -89
- package/esm2022/lib/components/flow-form-dialog/flow-proxy-form-dialog/gio-ps-flow-proxy-form-dialog.component.mjs +0 -135
- package/esm2022/lib/components/flow-form-dialog/gio-ps-flow-form-dialog-result.model.mjs +0 -2
- package/esm2022/lib/components/flows-menu/gio-ps-flows-menu.component.mjs +0 -432
- package/esm2022/lib/components/policies-catalog-dialog/gio-ps-policies-catalog-dialog.component.mjs +0 -165
- package/esm2022/lib/components/step-edit-dialog/gio-ps-step-edit-dialog.component.mjs +0 -53
- package/esm2022/lib/components/step-form/gio-ps-step-form.component.mjs +0 -158
- package/esm2022/lib/models/ApiProtocolType.mjs +0 -17
- package/esm2022/lib/models/ApiType.mjs +0 -17
- package/esm2022/lib/models/ConnectorsInfo.mjs +0 -2
- package/esm2022/lib/models/PolicySchemaFetcher.mjs +0 -2
- package/esm2022/lib/models/SaveOutput.mjs +0 -2
- package/esm2022/lib/models/flow/Flow.mjs +0 -2
- package/esm2022/lib/models/flow/FlowExecution.mjs +0 -17
- package/esm2022/lib/models/flow/HttpMethod.mjs +0 -43
- package/esm2022/lib/models/flow/Selector.mjs +0 -2
- package/esm2022/lib/models/flow/Step.mjs +0 -2
- package/esm2022/lib/models/flow/index.mjs +0 -21
- package/esm2022/lib/models/index.mjs +0 -24
- package/esm2022/lib/models/plan/Plan.mjs +0 -17
- package/esm2022/lib/models/plan/index.mjs +0 -17
- package/esm2022/lib/models/policy/GenericPolicy.mjs +0 -24
- package/esm2022/lib/models/policy/Policy.mjs +0 -44
- package/esm2022/lib/models/policy/SharedPolicyGroupPolicy.mjs +0 -17
- package/esm2022/lib/models/policy/index.mjs +0 -19
- package/esm2022/lib/policy-group-studio/gio-policy-group-studio.component.mjs +0 -228
- package/esm2022/lib/policy-studio/gio-policy-studio.component.mjs +0 -304
- package/esm2022/lib/policy-studio/gio-policy-studio.model.mjs +0 -17
- package/esm2022/lib/policy-studio/gio-policy-studio.service.mjs +0 -74
- package/esm2022/public-api.mjs +0 -22
- package/esm2022/testing/gravitee-ui-policy-studio-angular-testing.mjs +0 -5
- package/esm2022/testing/lib/components/flow-details/gio-ps-flow-details.harness.mjs +0 -56
- package/esm2022/testing/lib/components/flow-details-info-bar/gio-ps-flow-details-info-bar.harness.mjs +0 -35
- package/esm2022/testing/lib/components/flow-details-phase/gio-ps-flow-details-phase.harness.mjs +0 -155
- package/esm2022/testing/lib/components/flow-details-phase-step/gio-ps-flow-details-phase-step.harness.mjs +0 -69
- package/esm2022/testing/lib/components/flow-execution-form-dialog/gio-ps-flow-execution-form-dialog.harness.mjs +0 -60
- package/esm2022/testing/lib/components/flow-form-dialog/flow-message-form-dialog/gio-ps-flow-message-form-dialog.harness.mjs +0 -128
- package/esm2022/testing/lib/components/flow-form-dialog/flow-native-form-dialog/gio-ps-flow-native-form-dialog.harness.mjs +0 -50
- package/esm2022/testing/lib/components/flow-form-dialog/flow-proxy-form-dialog/gio-ps-flow-proxy-form-dialog.harness.mjs +0 -98
- package/esm2022/testing/lib/components/flows-menu/gio-ps-flows-menu.harness.mjs +0 -91
- package/esm2022/testing/lib/components/policies-catalog-dialog/gio-ps-policies-catalog-dialog.harness.mjs +0 -87
- package/esm2022/testing/lib/components/step-edit-dialog/gio-ps-step-edit-dialog.harness.mjs +0 -30
- package/esm2022/testing/lib/components/step-form/gio-ps-step-form.harness.mjs +0 -56
- package/esm2022/testing/lib/models/ApiProtocolType.mjs +0 -17
- package/esm2022/testing/lib/models/ApiType.mjs +0 -17
- package/esm2022/testing/lib/models/ConnectorsInfo.fixture.mjs +0 -182
- package/esm2022/testing/lib/models/ConnectorsInfo.mjs +0 -2
- package/esm2022/testing/lib/models/PolicySchemaFetcher.mjs +0 -2
- package/esm2022/testing/lib/models/SaveOutput.mjs +0 -2
- package/esm2022/testing/lib/models/flow/Flow.fixture.mjs +0 -122
- package/esm2022/testing/lib/models/flow/Flow.mjs +0 -2
- package/esm2022/testing/lib/models/flow/FlowExecution.fixture.mjs +0 -43
- package/esm2022/testing/lib/models/flow/FlowExecution.mjs +0 -17
- package/esm2022/testing/lib/models/flow/HttpMethod.mjs +0 -43
- package/esm2022/testing/lib/models/flow/Selector.mjs +0 -2
- package/esm2022/testing/lib/models/flow/Step.fixture.mjs +0 -92
- package/esm2022/testing/lib/models/flow/Step.mjs +0 -2
- package/esm2022/testing/lib/models/flow/index-testing.mjs +0 -19
- package/esm2022/testing/lib/models/flow/index.mjs +0 -21
- package/esm2022/testing/lib/models/index-testing.mjs +0 -20
- package/esm2022/testing/lib/models/index.mjs +0 -24
- package/esm2022/testing/lib/models/plan/Plan.fixture.mjs +0 -31
- package/esm2022/testing/lib/models/plan/Plan.mjs +0 -17
- package/esm2022/testing/lib/models/plan/index-testing.mjs +0 -17
- package/esm2022/testing/lib/models/plan/index.mjs +0 -17
- package/esm2022/testing/lib/models/policy/GenericPolicy.mjs +0 -24
- package/esm2022/testing/lib/models/policy/Policy.fixture.mjs +0 -194
- package/esm2022/testing/lib/models/policy/Policy.mjs +0 -44
- package/esm2022/testing/lib/models/policy/SharedPolicyGroupPolicy.mjs +0 -17
- package/esm2022/testing/lib/models/policy/index-testing.mjs +0 -17
- package/esm2022/testing/lib/models/policy/index.mjs +0 -19
- package/esm2022/testing/lib/policy-group-studio/gio-policy-group-studio.harness.mjs +0 -52
- package/esm2022/testing/lib/policy-studio/gio-policy-studio.harness.mjs +0 -202
- package/esm2022/testing/lib/policy-studio/gio-policy-studio.model.mjs +0 -17
- package/esm2022/testing/public-testing-api.mjs +0 -19
- package/lib/components/filter-pipe/gio-flter-connectors-by-mode.pipe.d.ts +0 -8
- package/lib/components/flow-details/gio-ps-flow-details.component.d.ts +0 -29
- package/lib/components/flow-details-info-bar/gio-ps-flow-details-info-bar.component.d.ts +0 -20
- package/lib/components/flow-details-phase/gio-ps-flow-details-phase.component.d.ts +0 -47
- package/lib/components/flow-details-phase-step/gio-ps-flow-details-phase-step.component.d.ts +0 -33
- package/lib/components/flow-execution-form-dialog/gio-ps-flow-execution-form-dialog.component.d.ts +0 -18
- package/lib/components/flow-form-dialog/flow-message-form-dialog/gio-ps-flow-message-form-dialog.component.d.ts +0 -21
- package/lib/components/flow-form-dialog/flow-native-form-dialog/gio-ps-flow-native-form-dialog.component.d.ts +0 -21
- package/lib/components/flow-form-dialog/flow-proxy-form-dialog/gio-ps-flow-proxy-form-dialog.component.d.ts +0 -24
- package/lib/components/flow-form-dialog/gio-ps-flow-form-dialog-result.model.d.ts +0 -2
- package/lib/components/flows-menu/gio-ps-flows-menu.component.d.ts +0 -57
- package/lib/components/policies-catalog-dialog/gio-ps-policies-catalog-dialog.component.d.ts +0 -47
- package/lib/components/step-edit-dialog/gio-ps-step-edit-dialog.component.d.ts +0 -24
- package/lib/components/step-form/gio-ps-step-form.component.d.ts +0 -35
- package/lib/models/ApiProtocolType.d.ts +0 -1
- package/lib/models/ApiType.d.ts +0 -1
- package/lib/models/ConnectorsInfo.d.ts +0 -7
- package/lib/models/PolicySchemaFetcher.d.ts +0 -5
- package/lib/models/SaveOutput.d.ts +0 -7
- package/lib/models/flow/Flow.d.ts +0 -24
- package/lib/models/flow/FlowExecution.d.ts +0 -11
- package/lib/models/flow/HttpMethod.d.ts +0 -3
- package/lib/models/flow/Selector.d.ts +0 -37
- package/lib/models/flow/Step.d.ts +0 -34
- package/lib/models/flow/index.d.ts +0 -5
- package/lib/models/index.d.ts +0 -8
- package/lib/models/plan/Plan.d.ts +0 -6
- package/lib/models/plan/index.d.ts +0 -1
- package/lib/models/policy/GenericPolicy.d.ts +0 -22
- package/lib/models/policy/Policy.d.ts +0 -28
- package/lib/models/policy/SharedPolicyGroupPolicy.d.ts +0 -11
- package/lib/models/policy/index.d.ts +0 -3
- package/lib/policy-group-studio/gio-policy-group-studio.component.d.ts +0 -70
- package/lib/policy-studio/gio-policy-studio.component.d.ts +0 -98
- package/lib/policy-studio/gio-policy-studio.model.d.ts +0 -17
- package/lib/policy-studio/gio-policy-studio.service.d.ts +0 -30
- package/public-api.d.ts +0 -3
- package/testing/lib/components/flow-details/gio-ps-flow-details.harness.d.ts +0 -12
- package/testing/lib/components/flow-details-info-bar/gio-ps-flow-details-info-bar.harness.d.ts +0 -5
- package/testing/lib/components/flow-details-phase/gio-ps-flow-details-phase.harness.d.ts +0 -69
- package/testing/lib/components/flow-details-phase-step/gio-ps-flow-details-phase-step.harness.d.ts +0 -21
- package/testing/lib/components/flow-execution-form-dialog/gio-ps-flow-execution-form-dialog.harness.d.ts +0 -13
- package/testing/lib/components/flow-form-dialog/flow-message-form-dialog/gio-ps-flow-message-form-dialog.harness.d.ts +0 -37
- package/testing/lib/components/flow-form-dialog/flow-native-form-dialog/gio-ps-flow-native-form-dialog.harness.d.ts +0 -17
- package/testing/lib/components/flow-form-dialog/flow-proxy-form-dialog/gio-ps-flow-proxy-form-dialog.harness.d.ts +0 -33
- package/testing/lib/components/flows-menu/gio-ps-flows-menu.harness.d.ts +0 -31
- package/testing/lib/components/policies-catalog-dialog/gio-ps-policies-catalog-dialog.harness.d.ts +0 -20
- package/testing/lib/components/step-edit-dialog/gio-ps-step-edit-dialog.harness.d.ts +0 -8
- package/testing/lib/components/step-form/gio-ps-step-form.harness.d.ts +0 -18
- package/testing/lib/models/ApiProtocolType.d.ts +0 -1
- package/testing/lib/models/ApiType.d.ts +0 -1
- package/testing/lib/models/ConnectorsInfo.d.ts +0 -7
- package/testing/lib/models/ConnectorsInfo.fixture.d.ts +0 -12
- package/testing/lib/models/PolicySchemaFetcher.d.ts +0 -5
- package/testing/lib/models/SaveOutput.d.ts +0 -7
- package/testing/lib/models/flow/Flow.d.ts +0 -24
- package/testing/lib/models/flow/Flow.fixture.d.ts +0 -6
- package/testing/lib/models/flow/FlowExecution.d.ts +0 -11
- package/testing/lib/models/flow/FlowExecution.fixture.d.ts +0 -3
- package/testing/lib/models/flow/HttpMethod.d.ts +0 -3
- package/testing/lib/models/flow/Selector.d.ts +0 -37
- package/testing/lib/models/flow/Step.d.ts +0 -34
- package/testing/lib/models/flow/Step.fixture.d.ts +0 -5
- package/testing/lib/models/flow/index-testing.d.ts +0 -3
- package/testing/lib/models/flow/index.d.ts +0 -5
- package/testing/lib/models/index-testing.d.ts +0 -4
- package/testing/lib/models/index.d.ts +0 -8
- package/testing/lib/models/plan/Plan.d.ts +0 -6
- package/testing/lib/models/plan/Plan.fixture.d.ts +0 -2
- package/testing/lib/models/plan/index-testing.d.ts +0 -1
- package/testing/lib/models/plan/index.d.ts +0 -1
- package/testing/lib/models/policy/GenericPolicy.d.ts +0 -22
- package/testing/lib/models/policy/Policy.d.ts +0 -28
- package/testing/lib/models/policy/Policy.fixture.d.ts +0 -4
- package/testing/lib/models/policy/SharedPolicyGroupPolicy.d.ts +0 -11
- package/testing/lib/models/policy/index-testing.d.ts +0 -1
- package/testing/lib/models/policy/index.d.ts +0 -3
- package/testing/lib/policy-group-studio/gio-policy-group-studio.harness.d.ts +0 -20
- package/testing/lib/policy-studio/gio-policy-studio.harness.d.ts +0 -78
- package/testing/lib/policy-studio/gio-policy-studio.model.d.ts +0 -17
- package/testing/public-testing-api.d.ts +0 -3
package/testing/index.d.ts
CHANGED
|
@@ -1,5 +1,371 @@
|
|
|
1
|
+
import { ComponentHarness, BaseHarnessFilters, HarnessPredicate, LocatorFactory } from '@angular/cdk/testing';
|
|
2
|
+
import { MatInputHarness } from '@angular/material/input/testing';
|
|
3
|
+
|
|
4
|
+
declare const HttpMethods: readonly ["CONNECT", "DELETE", "GET", "HEAD", "OPTIONS", "PATCH", "POST", "PUT", "TRACE", "OTHER"];
|
|
5
|
+
type HttpMethod = (typeof HttpMethods)[number];
|
|
6
|
+
|
|
7
|
+
type Operation = 'PUBLISH' | 'SUBSCRIBE';
|
|
8
|
+
type Operator = 'EQUALS' | 'STARTS_WITH';
|
|
9
|
+
type BaseSelectorTypeEnum = 'HTTP' | 'CHANNEL' | 'CONDITION';
|
|
10
|
+
interface BaseSelector {
|
|
11
|
+
/**
|
|
12
|
+
* Selector type.
|
|
13
|
+
*/
|
|
14
|
+
type?: BaseSelectorTypeEnum;
|
|
15
|
+
}
|
|
16
|
+
interface HttpSelector extends BaseSelector {
|
|
17
|
+
/**
|
|
18
|
+
* The path of the selector
|
|
19
|
+
*/
|
|
20
|
+
path: string;
|
|
21
|
+
pathOperator: Operator;
|
|
22
|
+
methods?: HttpMethod[];
|
|
23
|
+
}
|
|
24
|
+
interface ChannelSelector extends BaseSelector {
|
|
25
|
+
/**
|
|
26
|
+
* The list of operations associated with this channel selector.
|
|
27
|
+
*/
|
|
28
|
+
operations?: Operation[];
|
|
29
|
+
/**
|
|
30
|
+
* The channel of the selector
|
|
31
|
+
*/
|
|
32
|
+
channel: string;
|
|
33
|
+
channelOperator: Operator;
|
|
34
|
+
entrypoints?: string[];
|
|
35
|
+
}
|
|
36
|
+
interface ConditionSelector extends BaseSelector {
|
|
37
|
+
/**
|
|
38
|
+
* The condition of the selector
|
|
39
|
+
*/
|
|
40
|
+
condition: string;
|
|
41
|
+
}
|
|
42
|
+
type Selector = HttpSelector | ChannelSelector | ConditionSelector;
|
|
43
|
+
|
|
44
|
+
interface Step {
|
|
45
|
+
/**
|
|
46
|
+
* The name of the step
|
|
47
|
+
*/
|
|
48
|
+
name?: string;
|
|
49
|
+
/**
|
|
50
|
+
* The description of the step
|
|
51
|
+
*/
|
|
52
|
+
description?: string;
|
|
53
|
+
/**
|
|
54
|
+
* Is the step enabled or not.
|
|
55
|
+
*/
|
|
56
|
+
enabled?: boolean;
|
|
57
|
+
/**
|
|
58
|
+
* The policy of the step
|
|
59
|
+
*/
|
|
60
|
+
policy?: string;
|
|
61
|
+
/**
|
|
62
|
+
* The configuration of the step
|
|
63
|
+
*/
|
|
64
|
+
configuration?: unknown;
|
|
65
|
+
/**
|
|
66
|
+
* The condition of the step
|
|
67
|
+
*/
|
|
68
|
+
condition?: string;
|
|
69
|
+
/**
|
|
70
|
+
* The message condition of the step
|
|
71
|
+
*/
|
|
72
|
+
messageCondition?: string;
|
|
73
|
+
/**
|
|
74
|
+
* Is the policy deployed or not.
|
|
75
|
+
*/
|
|
76
|
+
deployed?: boolean;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
interface Flow {
|
|
80
|
+
id?: string;
|
|
81
|
+
/**
|
|
82
|
+
* Flow's name.
|
|
83
|
+
*/
|
|
84
|
+
name?: string;
|
|
85
|
+
/**
|
|
86
|
+
* Is the flow enabled.
|
|
87
|
+
*/
|
|
88
|
+
enabled?: boolean;
|
|
89
|
+
selectors?: Selector[];
|
|
90
|
+
connect?: Step[];
|
|
91
|
+
interact?: Step[];
|
|
92
|
+
request?: Step[];
|
|
93
|
+
response?: Step[];
|
|
94
|
+
subscribe?: Step[];
|
|
95
|
+
publish?: Step[];
|
|
96
|
+
/**
|
|
97
|
+
* Flow's tags.
|
|
98
|
+
*/
|
|
99
|
+
tags?: string[];
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
declare function fakeChannelFlow(modifier?: Partial<Flow> | ((baseApi: Flow) => Flow)): Flow;
|
|
103
|
+
declare function fakeConditionedChannelFlow(modifier?: Partial<Flow> | ((baseApi: Flow) => Flow)): Flow;
|
|
104
|
+
declare function fakeHttpFlow(modifier?: Partial<Flow> | ((baseApi: Flow) => Flow)): Flow;
|
|
105
|
+
declare function fakeConditionedHttpFlow(modifier?: Partial<Flow> | ((baseApi: Flow) => Flow)): Flow;
|
|
106
|
+
declare function fakeNativeFlow(modifier?: Partial<Flow> | ((baseApi: Flow) => Flow)): Flow;
|
|
107
|
+
|
|
1
108
|
/**
|
|
2
|
-
*
|
|
109
|
+
* API's flow mode.
|
|
3
110
|
*/
|
|
4
|
-
|
|
5
|
-
|
|
111
|
+
type FlowMode = 'BEST_MATCH' | 'DEFAULT';
|
|
112
|
+
interface FlowExecution {
|
|
113
|
+
mode?: FlowMode;
|
|
114
|
+
/**
|
|
115
|
+
* Is the flow execution match required.
|
|
116
|
+
*/
|
|
117
|
+
matchRequired?: boolean;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
declare function fakeBestMatchFlowExecution(modifier?: Partial<FlowExecution> | ((baseApi: FlowExecution) => FlowExecution)): FlowExecution;
|
|
121
|
+
declare function fakeDefaultFlowExecution(modifier?: Partial<FlowExecution> | ((baseApi: FlowExecution) => FlowExecution)): FlowExecution;
|
|
122
|
+
|
|
123
|
+
declare function fakeTestPolicyStep(modifier?: Partial<Step> | ((base: Step) => Step)): Step;
|
|
124
|
+
declare function fakeRateLimitStep(modifier?: Partial<Step> | ((base: Step) => Step)): Step;
|
|
125
|
+
declare function fakeJsonToXmlStep(modifier?: Partial<Step> | ((base: Step) => Step)): Step;
|
|
126
|
+
declare function fakeSharedPolicyGroupPolicyStep(modifier?: Partial<Step> | ((base: Step) => Step)): Step;
|
|
127
|
+
|
|
128
|
+
interface Plan {
|
|
129
|
+
id: string;
|
|
130
|
+
name: string;
|
|
131
|
+
flows: Flow[];
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
declare function fakePlan(modifier?: Partial<Plan> | ((base: Plan) => Plan)): Plan;
|
|
135
|
+
|
|
136
|
+
type ApiProtocolType = 'HTTP_MESSAGE' | 'HTTP_PROXY' | 'NATIVE_KAFKA';
|
|
137
|
+
|
|
138
|
+
type FlowPhase = 'REQUEST' | 'RESPONSE' | 'INTERACT' | 'CONNECT' | 'PUBLISH' | 'SUBSCRIBE';
|
|
139
|
+
interface Policy {
|
|
140
|
+
id: string;
|
|
141
|
+
name: string;
|
|
142
|
+
icon?: string;
|
|
143
|
+
description?: string;
|
|
144
|
+
category?: string;
|
|
145
|
+
version?: string;
|
|
146
|
+
flowPhaseCompatibility?: Partial<Record<ApiProtocolType, FlowPhase[]>>;
|
|
147
|
+
deployed?: boolean;
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* @Deprecated to keep as long as we support APIM < 4.6
|
|
151
|
+
*/
|
|
152
|
+
type ExecutionPhase = 'REQUEST' | 'RESPONSE' | 'MESSAGE_REQUEST' | 'MESSAGE_RESPONSE';
|
|
153
|
+
type PolicyInput = Omit<Policy, 'proxy' | 'message'> & {
|
|
154
|
+
proxy?: ExecutionPhase[];
|
|
155
|
+
message?: ExecutionPhase[];
|
|
156
|
+
};
|
|
157
|
+
|
|
158
|
+
declare const POLICIES_V4_UNREGISTERED_ICON: Policy[];
|
|
159
|
+
declare function fakeTestPolicy(modifier?: Partial<Policy> | ((base: Policy) => Policy)): Policy;
|
|
160
|
+
declare function fakeAllPolicies(): (PolicyInput | Policy)[];
|
|
161
|
+
|
|
162
|
+
interface ConnectorInfo {
|
|
163
|
+
name: string;
|
|
164
|
+
type: string;
|
|
165
|
+
icon: string;
|
|
166
|
+
supportedModes: ConnectorMode[];
|
|
167
|
+
}
|
|
168
|
+
type ConnectorMode = 'CONNECT' | 'INTERACT' | 'SUBSCRIBE' | 'PUBLISH' | 'REQUEST_RESPONSE';
|
|
169
|
+
|
|
170
|
+
declare function fakeSSEMessageEntrypoint(modifier?: Partial<ConnectorInfo> | ((base: ConnectorInfo) => ConnectorInfo)): ConnectorInfo;
|
|
171
|
+
declare function fakeWebsocketMessageEntrypoint(modifier?: Partial<ConnectorInfo> | ((base: ConnectorInfo) => ConnectorInfo)): ConnectorInfo;
|
|
172
|
+
declare function fakeHTTPPostMessageEntrypoint(modifier?: Partial<ConnectorInfo> | ((base: ConnectorInfo) => ConnectorInfo)): ConnectorInfo;
|
|
173
|
+
declare function fakeHTTPGetMessageEntrypoint(modifier?: Partial<ConnectorInfo> | ((base: ConnectorInfo) => ConnectorInfo)): ConnectorInfo;
|
|
174
|
+
declare function fakeWebhookMessageEntrypoint(modifier?: Partial<ConnectorInfo> | ((base: ConnectorInfo) => ConnectorInfo)): ConnectorInfo;
|
|
175
|
+
declare function fakeHTTPProxyEntrypoint(modifier?: Partial<ConnectorInfo> | ((base: ConnectorInfo) => ConnectorInfo)): ConnectorInfo;
|
|
176
|
+
declare function fakeMockMessageEndpoint(modifier?: Partial<ConnectorInfo> | ((base: ConnectorInfo) => ConnectorInfo)): ConnectorInfo;
|
|
177
|
+
declare function fakeKafkaMessageEndpoint(modifier?: Partial<ConnectorInfo> | ((base: ConnectorInfo) => ConnectorInfo)): ConnectorInfo;
|
|
178
|
+
declare function fakeHTTPProxyEndpoint(modifier?: Partial<ConnectorInfo> | ((base: ConnectorInfo) => ConnectorInfo)): ConnectorInfo;
|
|
179
|
+
declare function fakeKafkaNativeEntrypoint(modifier?: Partial<ConnectorInfo> | ((base: ConnectorInfo) => ConnectorInfo)): ConnectorInfo;
|
|
180
|
+
declare function fakeKafkaNativeEndpoint(modifier?: Partial<ConnectorInfo> | ((base: ConnectorInfo) => ConnectorInfo)): ConnectorInfo;
|
|
181
|
+
|
|
182
|
+
type GioPolicyStudioDetailsPhaseStepHarnessFilters = BaseHarnessFilters;
|
|
183
|
+
declare class GioPolicyStudioDetailsPhaseStepHarness extends ComponentHarness {
|
|
184
|
+
static hostSelector: string;
|
|
185
|
+
/**
|
|
186
|
+
* Get Harness with the given filter.
|
|
187
|
+
*
|
|
188
|
+
* @param options Options for filtering which input instances are considered a match.
|
|
189
|
+
* @return a `HarnessPredicate` configured with the given options.
|
|
190
|
+
*/
|
|
191
|
+
static with(options?: GioPolicyStudioDetailsPhaseStepHarnessFilters): HarnessPredicate<GioPolicyStudioDetailsPhaseStepHarness>;
|
|
192
|
+
getName(): Promise<string>;
|
|
193
|
+
getDescription(): Promise<string | undefined>;
|
|
194
|
+
getInfoMessage(): Promise<string | undefined>;
|
|
195
|
+
clickOnEdit(): Promise<void>;
|
|
196
|
+
clickOnDelete(): Promise<void>;
|
|
197
|
+
clickOnDisableEnable(): Promise<void>;
|
|
198
|
+
clickOnDuplicate(): Promise<void>;
|
|
199
|
+
clickOnMoveRight(): Promise<void>;
|
|
200
|
+
clickOnMoveLeft(): Promise<void>;
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
type StepForm = {
|
|
204
|
+
description?: string;
|
|
205
|
+
condition?: string;
|
|
206
|
+
messageCondition?: string;
|
|
207
|
+
waitForPolicyFormCompletionCb?: (locator: LocatorFactory) => Promise<void>;
|
|
208
|
+
waitForInitHttpRequestCompletionCb?: () => void;
|
|
209
|
+
};
|
|
210
|
+
|
|
211
|
+
type PhaseType = 'INTERACT' | 'REQUEST' | 'RESPONSE' | 'PUBLISH' | 'SUBSCRIBE';
|
|
212
|
+
type GioPolicyStudioDetailsPhaseHarnessFilters = BaseHarnessFilters & {
|
|
213
|
+
type?: PhaseType;
|
|
214
|
+
};
|
|
215
|
+
type StepCard = {
|
|
216
|
+
name: string;
|
|
217
|
+
type: 'connector';
|
|
218
|
+
} | {
|
|
219
|
+
name: string;
|
|
220
|
+
description?: string;
|
|
221
|
+
hasCondition: boolean;
|
|
222
|
+
type: 'step';
|
|
223
|
+
};
|
|
224
|
+
declare class GioPolicyStudioDetailsPhaseHarness extends ComponentHarness {
|
|
225
|
+
static hostSelector: string;
|
|
226
|
+
private getHeaderName;
|
|
227
|
+
/**
|
|
228
|
+
* Get Harness with the given filter.
|
|
229
|
+
*
|
|
230
|
+
* @param options Options for filtering which input instances are considered a match.
|
|
231
|
+
* @return a `HarnessPredicate` configured with the given options.
|
|
232
|
+
*/
|
|
233
|
+
static with(options?: GioPolicyStudioDetailsPhaseHarnessFilters): HarnessPredicate<GioPolicyStudioDetailsPhaseHarness>;
|
|
234
|
+
getSteps(): Promise<StepCard[] | 'DISABLED'>;
|
|
235
|
+
getStep(index: number): Promise<GioPolicyStudioDetailsPhaseStepHarness>;
|
|
236
|
+
clickAddStep(index: number): Promise<void>;
|
|
237
|
+
/**
|
|
238
|
+
* Add a step to a phase
|
|
239
|
+
* @param index Index where to add the step. (Add button index)
|
|
240
|
+
* @param stepConfig Step to add
|
|
241
|
+
*/
|
|
242
|
+
addStep(index: number, stepConfig: {
|
|
243
|
+
policyName: string;
|
|
244
|
+
} & StepForm): Promise<void>;
|
|
245
|
+
/**
|
|
246
|
+
* Edit a step configuration
|
|
247
|
+
* @param index Index of the policy step to edit
|
|
248
|
+
* @param stepConfig Step configuration
|
|
249
|
+
*/
|
|
250
|
+
editStep(index: number, stepConfig: StepForm): Promise<void>;
|
|
251
|
+
/**
|
|
252
|
+
* Delete a step
|
|
253
|
+
* @param index Index of the policy step to delete
|
|
254
|
+
*/
|
|
255
|
+
deleteStep(index: number): Promise<void>;
|
|
256
|
+
/**
|
|
257
|
+
* Disable a step
|
|
258
|
+
* @param index Index of the policy step to disable
|
|
259
|
+
*/
|
|
260
|
+
disableEnableStep(index: number): Promise<void>;
|
|
261
|
+
/**
|
|
262
|
+
* Duplicate a step
|
|
263
|
+
* @param index Index of the policy step to duplicate
|
|
264
|
+
*/
|
|
265
|
+
duplicateStep(index: number): Promise<void>;
|
|
266
|
+
/**
|
|
267
|
+
* Move a step to the right
|
|
268
|
+
* @param index Index of the policy step to move
|
|
269
|
+
*/
|
|
270
|
+
moveStepRight(index: number): Promise<void>;
|
|
271
|
+
/**
|
|
272
|
+
* Move a step to the left
|
|
273
|
+
* @param index Index of the policy step to move
|
|
274
|
+
*/
|
|
275
|
+
moveStepLeft(index: number): Promise<void>;
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
declare class GioPolicyStudioHarness extends ComponentHarness {
|
|
279
|
+
static hostSelector: string;
|
|
280
|
+
private menuHarness;
|
|
281
|
+
private detailsHarness;
|
|
282
|
+
private phaseHarness;
|
|
283
|
+
isReadOnly(): Promise<boolean>;
|
|
284
|
+
/**
|
|
285
|
+
* Add a flow to a plan or to "Common flows"
|
|
286
|
+
*
|
|
287
|
+
* @param groupName Plan name where to add the flow. You also can define "Common flows" to add a flow to this group.
|
|
288
|
+
* @param flow Flow to add
|
|
289
|
+
*/
|
|
290
|
+
addFlow(groupName: string, flow: Flow): Promise<void>;
|
|
291
|
+
/**
|
|
292
|
+
* Edit a flow configuration
|
|
293
|
+
*
|
|
294
|
+
* @param flowName Flow name to edit
|
|
295
|
+
* @param flow
|
|
296
|
+
*/
|
|
297
|
+
editFlowConfig(flowName: string, flow: Partial<Flow>): Promise<void>;
|
|
298
|
+
/**
|
|
299
|
+
* Delete a flow
|
|
300
|
+
*
|
|
301
|
+
* @param flowName Flow name to delete
|
|
302
|
+
*/
|
|
303
|
+
deleteFlow(flowName: string): Promise<void>;
|
|
304
|
+
/**
|
|
305
|
+
* Enable or disable a flow
|
|
306
|
+
*/
|
|
307
|
+
enableDisableFlow(flowName: string): Promise<void>;
|
|
308
|
+
/**
|
|
309
|
+
* Duplicate a flow
|
|
310
|
+
*
|
|
311
|
+
* @param flowName Flow name to clone
|
|
312
|
+
*/
|
|
313
|
+
duplicateFlow(flowName: string): Promise<void>;
|
|
314
|
+
/**
|
|
315
|
+
* Select a flow in the menu
|
|
316
|
+
*
|
|
317
|
+
* @param flowName Flow name to select
|
|
318
|
+
*/
|
|
319
|
+
selectFlowInMenu(flowName: string): Promise<void>;
|
|
320
|
+
/**
|
|
321
|
+
* Get the list of flows in the menu
|
|
322
|
+
*/
|
|
323
|
+
getFlowsMenu(): Promise<{
|
|
324
|
+
name: string | null;
|
|
325
|
+
flows: {
|
|
326
|
+
name: string | null;
|
|
327
|
+
isSelected: boolean;
|
|
328
|
+
infos: string | null;
|
|
329
|
+
}[];
|
|
330
|
+
}[]>;
|
|
331
|
+
/**
|
|
332
|
+
* Get selected flow infos
|
|
333
|
+
*/
|
|
334
|
+
getSelectedFlowInfos(): Promise<Record<string, (string | null)[]>>;
|
|
335
|
+
/**
|
|
336
|
+
* Get selected flow phase harness
|
|
337
|
+
* @param phaseType Phase type to get
|
|
338
|
+
*/
|
|
339
|
+
getSelectedFlowPhase(phaseType: PhaseType): Promise<GioPolicyStudioDetailsPhaseHarness | undefined>;
|
|
340
|
+
/**
|
|
341
|
+
* Get Save button state
|
|
342
|
+
*/
|
|
343
|
+
getSaveButtonState(): Promise<'VISIBLE' | 'DISABLED' | 'SAVING'>;
|
|
344
|
+
/**
|
|
345
|
+
* Click on the "Save" button
|
|
346
|
+
*/
|
|
347
|
+
save(): Promise<void>;
|
|
348
|
+
private setFlowFormDialog;
|
|
349
|
+
setFlowExecutionConfig(flowExecution: FlowExecution): Promise<void>;
|
|
350
|
+
getSearchInput(): Promise<MatInputHarness>;
|
|
351
|
+
}
|
|
352
|
+
|
|
353
|
+
declare class GioPolicyGroupStudioHarness extends ComponentHarness {
|
|
354
|
+
static hostSelector: string;
|
|
355
|
+
private phaseHarness;
|
|
356
|
+
/**
|
|
357
|
+
* Get Policy Group phase harness
|
|
358
|
+
*/
|
|
359
|
+
getPolicyGroupPhase(): Promise<GioPolicyStudioDetailsPhaseHarness>;
|
|
360
|
+
clickAddStep(index: number): Promise<void>;
|
|
361
|
+
/**
|
|
362
|
+
* Add a step to a policy-group
|
|
363
|
+
* @param index Index where to add the step. (Add button index)
|
|
364
|
+
* @param stepConfig Step to add
|
|
365
|
+
*/
|
|
366
|
+
addStep(index: number, stepConfig: {
|
|
367
|
+
policyName: string;
|
|
368
|
+
} & StepForm): Promise<void>;
|
|
369
|
+
}
|
|
370
|
+
|
|
371
|
+
export { GioPolicyGroupStudioHarness, GioPolicyStudioHarness, POLICIES_V4_UNREGISTERED_ICON, fakeAllPolicies, fakeBestMatchFlowExecution, fakeChannelFlow, fakeConditionedChannelFlow, fakeConditionedHttpFlow, fakeDefaultFlowExecution, fakeHTTPGetMessageEntrypoint, fakeHTTPPostMessageEntrypoint, fakeHTTPProxyEndpoint, fakeHTTPProxyEntrypoint, fakeHttpFlow, fakeJsonToXmlStep, fakeKafkaMessageEndpoint, fakeKafkaNativeEndpoint, fakeKafkaNativeEntrypoint, fakeMockMessageEndpoint, fakeNativeFlow, fakePlan, fakeRateLimitStep, fakeSSEMessageEntrypoint, fakeSharedPolicyGroupPolicyStep, fakeTestPolicy, fakeTestPolicyStep, fakeWebhookMessageEntrypoint, fakeWebsocketMessageEntrypoint };
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './public-api';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3Jhdml0ZWUtdWktcG9saWN5LXN0dWRpby1hbmd1bGFyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcHJvamVjdHMvdWktcG9saWN5LXN0dWRpby1hbmd1bGFyL3NyYy9ncmF2aXRlZS11aS1wb2xpY3ktc3R1ZGlvLWFuZ3VsYXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (C) 2023 The Gravitee team (http://gravitee.io)
|
|
3
|
-
*
|
|
4
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
-
* you may not use this file except in compliance with the License.
|
|
6
|
-
* You may obtain a copy of the License at
|
|
7
|
-
*
|
|
8
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
-
*
|
|
10
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
* See the License for the specific language governing permissions and
|
|
14
|
-
* limitations under the License.
|
|
15
|
-
*/
|
|
16
|
-
import { Pipe } from '@angular/core';
|
|
17
|
-
import { filter, isEmpty } from 'lodash';
|
|
18
|
-
import * as i0 from "@angular/core";
|
|
19
|
-
export class GioFilterConnectorsByModePipe {
|
|
20
|
-
transform(items, mode, activeModes = []) {
|
|
21
|
-
if (items) {
|
|
22
|
-
if (!mode) {
|
|
23
|
-
return items;
|
|
24
|
-
}
|
|
25
|
-
if (isEmpty(activeModes) || activeModes.includes(mode)) {
|
|
26
|
-
return filter(items, (item) => {
|
|
27
|
-
return item.supportedModes.includes(mode);
|
|
28
|
-
});
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
return [];
|
|
32
|
-
}
|
|
33
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: GioFilterConnectorsByModePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
34
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.4", ngImport: i0, type: GioFilterConnectorsByModePipe, isStandalone: true, name: "gioFilterConnectorsByMode" }); }
|
|
35
|
-
}
|
|
36
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: GioFilterConnectorsByModePipe, decorators: [{
|
|
37
|
-
type: Pipe,
|
|
38
|
-
args: [{
|
|
39
|
-
standalone: true,
|
|
40
|
-
name: 'gioFilterConnectorsByMode',
|
|
41
|
-
}]
|
|
42
|
-
}] });
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLWZsdGVyLWNvbm5lY3RvcnMtYnktbW9kZS5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktcG9saWN5LXN0dWRpby1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9maWx0ZXItcGlwZS9naW8tZmx0ZXItY29ubmVjdG9ycy1ieS1tb2RlLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNwRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLFFBQVEsQ0FBQzs7QUFRekMsTUFBTSxPQUFPLDZCQUE2QjtJQUNqQyxTQUFTLENBQUMsS0FBc0IsRUFBRSxJQUFtQixFQUFFLGNBQStCLEVBQUU7UUFDN0YsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNWLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDVixPQUFPLEtBQUssQ0FBQztZQUNmLENBQUM7WUFFRCxJQUFJLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ3ZELE9BQU8sTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLElBQW1CLEVBQUUsRUFBRTtvQkFDM0MsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDNUMsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQzs4R0FkVSw2QkFBNkI7NEdBQTdCLDZCQUE2Qjs7MkZBQTdCLDZCQUE2QjtrQkFKekMsSUFBSTttQkFBQztvQkFDSixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsSUFBSSxFQUFFLDJCQUEyQjtpQkFDbEMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChDKSAyMDIzIFRoZSBHcmF2aXRlZSB0ZWFtIChodHRwOi8vZ3Jhdml0ZWUuaW8pXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZmlsdGVyLCBpc0VtcHR5IH0gZnJvbSAnbG9kYXNoJztcblxuaW1wb3J0IHsgQ29ubmVjdG9ySW5mbywgQ29ubmVjdG9yTW9kZSB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5cbkBQaXBlKHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgbmFtZTogJ2dpb0ZpbHRlckNvbm5lY3RvcnNCeU1vZGUnLFxufSlcbmV4cG9ydCBjbGFzcyBHaW9GaWx0ZXJDb25uZWN0b3JzQnlNb2RlUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICBwdWJsaWMgdHJhbnNmb3JtKGl0ZW1zOiBDb25uZWN0b3JJbmZvW10sIG1vZGU6IENvbm5lY3Rvck1vZGUsIGFjdGl2ZU1vZGVzOiBDb25uZWN0b3JNb2RlW10gPSBbXSk6IENvbm5lY3RvckluZm9bXSB7XG4gICAgaWYgKGl0ZW1zKSB7XG4gICAgICBpZiAoIW1vZGUpIHtcbiAgICAgICAgcmV0dXJuIGl0ZW1zO1xuICAgICAgfVxuXG4gICAgICBpZiAoaXNFbXB0eShhY3RpdmVNb2RlcykgfHwgYWN0aXZlTW9kZXMuaW5jbHVkZXMobW9kZSkpIHtcbiAgICAgICAgcmV0dXJuIGZpbHRlcihpdGVtcywgKGl0ZW06IENvbm5lY3RvckluZm8pID0+IHtcbiAgICAgICAgICByZXR1cm4gaXRlbS5zdXBwb3J0ZWRNb2Rlcy5pbmNsdWRlcyhtb2RlKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBbXTtcbiAgfVxufVxuIl19
|