@gravitee/ui-policy-studio-angular 1.4.4-design-studio-angular-65923df → 1.5.0-design-studio-angular-part2-4fe7ec0

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 (181) hide show
  1. package/bundles/gravitee-ui-policy-studio-angular-testing.umd.js +5728 -0
  2. package/bundles/gravitee-ui-policy-studio-angular-testing.umd.js.map +1 -0
  3. package/bundles/gravitee-ui-policy-studio-angular.umd.js +4569 -36
  4. package/bundles/gravitee-ui-policy-studio-angular.umd.js.map +1 -1
  5. package/esm2015/lib/gio-policy-studio.component.js +157 -0
  6. package/esm2015/lib/gio-policy-studio.module.js +60 -0
  7. package/esm2015/lib/models/flow/ConfigurationSchema.fixture.js +25 -0
  8. package/esm2015/lib/models/flow/ConfigurationSchema.js +2 -0
  9. package/esm2015/lib/models/flow/OrganizationFlowConfiguration.fixture.js +7 -0
  10. package/esm2015/lib/models/flow/OrganizationFlowConfiguration.js +2 -0
  11. package/esm2015/lib/models/flow/PlatformFlowSchema.fixture.js +69 -0
  12. package/esm2015/lib/models/flow/PlatformFlowSchema.js +17 -0
  13. package/esm2015/lib/models/flow/index.js +19 -0
  14. package/esm2015/lib/models/flow/testing.js +19 -0
  15. package/esm2015/lib/models/index.js +21 -0
  16. package/esm2015/lib/models/json.js +2 -0
  17. package/esm2015/lib/models/policy/PolicyDocumentation.fixture.js +218 -0
  18. package/esm2015/lib/models/policy/PolicyDocumentation.js +2 -0
  19. package/esm2015/lib/models/policy/PolicyListItem.fixture.js +15 -0
  20. package/esm2015/lib/models/policy/PolicyListItem.js +2 -0
  21. package/esm2015/lib/models/policy/PolicySchema.fixture.js +5 -0
  22. package/esm2015/lib/models/policy/PolicySchema.js +2 -0
  23. package/esm2015/lib/models/policy/index.js +19 -0
  24. package/esm2015/lib/models/policy/testing.js +19 -0
  25. package/esm2015/lib/models/resource/ResourceDocumentation.fixture.js +70 -0
  26. package/esm2015/lib/models/resource/ResourceDocumentation.js +2 -0
  27. package/esm2015/lib/models/resource/ResourceListItem.fixture.js +12 -0
  28. package/esm2015/lib/models/resource/ResourceListItem.js +2 -0
  29. package/esm2015/lib/models/resource/index.js +18 -0
  30. package/esm2015/lib/models/resource/testing.js +18 -0
  31. package/esm2015/lib/models/spel/Grammar.fixture.js +3693 -0
  32. package/esm2015/lib/models/spel/Grammar.js +17 -0
  33. package/esm2015/lib/models/spel/index.js +17 -0
  34. package/esm2015/lib/models/spel/testing.js +17 -0
  35. package/esm2015/lib/services/flow.abstract.service.js +3 -0
  36. package/esm2015/lib/services/flow.service.fixture.js +37 -0
  37. package/esm2015/lib/services/policy.abstract.service.js +3 -0
  38. package/esm2015/lib/services/policy.service.fixture.js +41 -0
  39. package/esm2015/lib/services/resource.abstract.service.js +3 -0
  40. package/esm2015/lib/services/resource.service.fixture.js +34 -0
  41. package/esm2015/lib/services/spel.abstract.service.js +3 -0
  42. package/esm2015/lib/services/spel.service.fixture.js +34 -0
  43. package/esm2015/public-api.js +4 -4
  44. package/esm2015/testing/gravitee-ui-policy-studio-angular-testing.js +5 -0
  45. package/esm2015/testing/lib/models/flow/ConfigurationSchema.fixture.js +25 -0
  46. package/esm2015/testing/lib/models/flow/ConfigurationSchema.js +2 -0
  47. package/esm2015/testing/lib/models/flow/OrganizationFlowConfiguration.fixture.js +7 -0
  48. package/esm2015/testing/lib/models/flow/OrganizationFlowConfiguration.js +2 -0
  49. package/esm2015/testing/lib/models/flow/PlatformFlowSchema.fixture.js +69 -0
  50. package/esm2015/testing/lib/models/flow/PlatformFlowSchema.js +17 -0
  51. package/esm2015/testing/lib/models/flow/index.js +19 -0
  52. package/esm2015/testing/lib/models/flow/testing.js +19 -0
  53. package/esm2015/testing/lib/models/json.js +2 -0
  54. package/esm2015/testing/lib/models/policy/PolicyDocumentation.fixture.js +218 -0
  55. package/esm2015/testing/lib/models/policy/PolicyDocumentation.js +2 -0
  56. package/esm2015/testing/lib/models/policy/PolicyListItem.fixture.js +15 -0
  57. package/esm2015/testing/lib/models/policy/PolicyListItem.js +2 -0
  58. package/esm2015/testing/lib/models/policy/PolicySchema.fixture.js +5 -0
  59. package/esm2015/testing/lib/models/policy/PolicySchema.js +2 -0
  60. package/esm2015/testing/lib/models/policy/index.js +19 -0
  61. package/esm2015/testing/lib/models/policy/testing.js +19 -0
  62. package/esm2015/testing/lib/models/resource/ResourceDocumentation.fixture.js +70 -0
  63. package/esm2015/testing/lib/models/resource/ResourceDocumentation.js +2 -0
  64. package/esm2015/testing/lib/models/resource/ResourceListItem.fixture.js +12 -0
  65. package/esm2015/testing/lib/models/resource/ResourceListItem.js +2 -0
  66. package/esm2015/testing/lib/models/resource/index.js +18 -0
  67. package/esm2015/testing/lib/models/resource/testing.js +18 -0
  68. package/esm2015/testing/lib/models/spel/Grammar.fixture.js +3693 -0
  69. package/esm2015/testing/lib/models/spel/Grammar.js +17 -0
  70. package/esm2015/testing/lib/models/spel/index.js +17 -0
  71. package/esm2015/testing/lib/models/spel/testing.js +17 -0
  72. package/esm2015/testing/lib/models/testing.js +20 -0
  73. package/esm2015/testing/lib/services/flow.abstract.service.js +3 -0
  74. package/esm2015/testing/lib/services/flow.service.fixture.js +37 -0
  75. package/esm2015/testing/lib/services/policy.abstract.service.js +3 -0
  76. package/esm2015/testing/lib/services/policy.service.fixture.js +41 -0
  77. package/esm2015/testing/lib/services/resource.abstract.service.js +3 -0
  78. package/esm2015/testing/lib/services/resource.service.fixture.js +34 -0
  79. package/esm2015/testing/lib/services/spel.abstract.service.js +3 -0
  80. package/esm2015/testing/lib/services/spel.service.fixture.js +34 -0
  81. package/esm2015/testing/lib/services/testing.js +20 -0
  82. package/esm2015/testing/public-testing-api.js +19 -0
  83. package/esm2015/testing/testing/index.js +17 -0
  84. package/esm2015/testing/testing/stories-resources/apim-definition.json +405 -0
  85. package/esm2015/testing/testing/stories-resources/apim-flow.json +54 -0
  86. package/esm2015/testing/testing/stories-resources/apim-policies.json +486 -0
  87. package/esm2015/testing/testing/stories-resources/apim-property-providers.json +39 -0
  88. package/esm2015/testing/testing/stories-resources/apim-resource-types.json +187 -0
  89. package/esm2015/testing/testing/stories-resources/index.js +26 -0
  90. package/fesm2015/gravitee-ui-policy-studio-angular-testing.js +5699 -0
  91. package/fesm2015/gravitee-ui-policy-studio-angular-testing.js.map +1 -0
  92. package/fesm2015/gravitee-ui-policy-studio-angular.js +4572 -25
  93. package/fesm2015/gravitee-ui-policy-studio-angular.js.map +1 -1
  94. package/lib/gio-policy-studio.component.d.ts +79 -0
  95. package/lib/gio-policy-studio.module.d.ts +8 -0
  96. package/lib/models/flow/ConfigurationSchema.d.ts +2 -0
  97. package/lib/models/flow/ConfigurationSchema.fixture.d.ts +2 -0
  98. package/lib/models/flow/OrganizationFlowConfiguration.d.ts +3 -0
  99. package/lib/models/flow/OrganizationFlowConfiguration.fixture.d.ts +2 -0
  100. package/lib/models/flow/PlatformFlowSchema.d.ts +2 -0
  101. package/lib/models/flow/PlatformFlowSchema.fixture.d.ts +2 -0
  102. package/lib/models/flow/index.d.ts +3 -0
  103. package/lib/models/flow/testing.d.ts +3 -0
  104. package/lib/models/index.d.ts +5 -0
  105. package/lib/models/json.d.ts +3 -0
  106. package/lib/models/policy/PolicyDocumentation.d.ts +1 -0
  107. package/lib/models/policy/PolicyDocumentation.fixture.d.ts +2 -0
  108. package/lib/models/policy/PolicyListItem.d.ts +13 -0
  109. package/lib/models/policy/PolicyListItem.fixture.d.ts +2 -0
  110. package/lib/models/policy/PolicySchema.d.ts +1 -0
  111. package/lib/models/policy/PolicySchema.fixture.d.ts +2 -0
  112. package/lib/models/policy/index.d.ts +3 -0
  113. package/lib/models/policy/testing.d.ts +3 -0
  114. package/lib/models/resource/ResourceDocumentation.d.ts +1 -0
  115. package/lib/models/resource/ResourceDocumentation.fixture.d.ts +2 -0
  116. package/lib/models/resource/ResourceListItem.d.ts +8 -0
  117. package/lib/models/resource/ResourceListItem.fixture.d.ts +2 -0
  118. package/lib/models/resource/index.d.ts +2 -0
  119. package/lib/models/resource/testing.d.ts +2 -0
  120. package/lib/models/spel/Grammar.d.ts +2 -0
  121. package/lib/models/spel/Grammar.fixture.d.ts +2 -0
  122. package/lib/models/spel/index.d.ts +1 -0
  123. package/lib/models/spel/testing.d.ts +1 -0
  124. package/lib/services/flow.abstract.service.d.ts +7 -0
  125. package/lib/services/flow.service.fixture.d.ts +11 -0
  126. package/lib/services/policy.abstract.service.d.ts +14 -0
  127. package/lib/services/policy.service.fixture.d.ts +13 -0
  128. package/lib/services/resource.abstract.service.d.ts +11 -0
  129. package/lib/services/resource.service.fixture.d.ts +10 -0
  130. package/lib/services/spel.abstract.service.d.ts +5 -0
  131. package/lib/services/spel.service.fixture.d.ts +9 -0
  132. package/package.json +5 -2
  133. package/public-api.d.ts +3 -3
  134. package/testing/gravitee-ui-policy-studio-angular-testing.d.ts +5 -0
  135. package/testing/lib/models/flow/ConfigurationSchema.d.ts +2 -0
  136. package/testing/lib/models/flow/ConfigurationSchema.fixture.d.ts +2 -0
  137. package/testing/lib/models/flow/OrganizationFlowConfiguration.d.ts +3 -0
  138. package/testing/lib/models/flow/OrganizationFlowConfiguration.fixture.d.ts +2 -0
  139. package/testing/lib/models/flow/PlatformFlowSchema.d.ts +2 -0
  140. package/testing/lib/models/flow/PlatformFlowSchema.fixture.d.ts +2 -0
  141. package/testing/lib/models/flow/index.d.ts +3 -0
  142. package/testing/lib/models/flow/testing.d.ts +3 -0
  143. package/testing/lib/models/json.d.ts +3 -0
  144. package/testing/lib/models/policy/PolicyDocumentation.d.ts +1 -0
  145. package/testing/lib/models/policy/PolicyDocumentation.fixture.d.ts +2 -0
  146. package/testing/lib/models/policy/PolicyListItem.d.ts +13 -0
  147. package/testing/lib/models/policy/PolicyListItem.fixture.d.ts +2 -0
  148. package/testing/lib/models/policy/PolicySchema.d.ts +1 -0
  149. package/testing/lib/models/policy/PolicySchema.fixture.d.ts +2 -0
  150. package/testing/lib/models/policy/index.d.ts +3 -0
  151. package/testing/lib/models/policy/testing.d.ts +3 -0
  152. package/testing/lib/models/resource/ResourceDocumentation.d.ts +1 -0
  153. package/testing/lib/models/resource/ResourceDocumentation.fixture.d.ts +2 -0
  154. package/testing/lib/models/resource/ResourceListItem.d.ts +8 -0
  155. package/testing/lib/models/resource/ResourceListItem.fixture.d.ts +2 -0
  156. package/testing/lib/models/resource/index.d.ts +2 -0
  157. package/testing/lib/models/resource/testing.d.ts +2 -0
  158. package/testing/lib/models/spel/Grammar.d.ts +2 -0
  159. package/testing/lib/models/spel/Grammar.fixture.d.ts +2 -0
  160. package/testing/lib/models/spel/index.d.ts +1 -0
  161. package/testing/lib/models/spel/testing.d.ts +1 -0
  162. package/testing/lib/models/testing.d.ts +4 -0
  163. package/testing/lib/services/flow.abstract.service.d.ts +7 -0
  164. package/testing/lib/services/flow.service.fixture.d.ts +11 -0
  165. package/testing/lib/services/policy.abstract.service.d.ts +14 -0
  166. package/testing/lib/services/policy.service.fixture.d.ts +13 -0
  167. package/testing/lib/services/resource.abstract.service.d.ts +11 -0
  168. package/testing/lib/services/resource.service.fixture.d.ts +10 -0
  169. package/testing/lib/services/spel.abstract.service.d.ts +5 -0
  170. package/testing/lib/services/spel.service.fixture.d.ts +9 -0
  171. package/testing/lib/services/testing.d.ts +4 -0
  172. package/testing/package.json +10 -0
  173. package/testing/public-testing-api.d.ts +3 -0
  174. package/testing/testing/index.d.ts +1 -0
  175. package/testing/testing/stories-resources/index.d.ts +592 -0
  176. package/esm2015/lib/ui-policy-studio-angular.component.js +0 -30
  177. package/esm2015/lib/ui-policy-studio-angular.module.js +0 -32
  178. package/esm2015/lib/ui-policy-studio-angular.service.js +0 -29
  179. package/lib/ui-policy-studio-angular.component.d.ts +0 -5
  180. package/lib/ui-policy-studio-angular.module.d.ts +0 -7
  181. package/lib/ui-policy-studio-angular.service.d.ts +0 -6
@@ -1,5 +1,106 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Injectable, Component, NgModule } from '@angular/core';
2
+ import { EventEmitter, Component, Inject, Input, Output, Injectable, NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
3
+ import { tap, catchError, map } from 'rxjs/operators';
4
+ import { chain, isNil } from 'lodash';
5
+ import '@gravitee/ui-components/wc/gv-policy-studio';
6
+ import { EMPTY, of } from 'rxjs';
7
+ import * as i1 from '@angular/common';
8
+
9
+ /*
10
+ * Copyright (C) 2015 The Gravitee team (http://gravitee.io)
11
+ *
12
+ * Licensed under the Apache License, Version 2.0 (the "License");
13
+ * you may not use this file except in compliance with the License.
14
+ * You may obtain a copy of the License at
15
+ *
16
+ * http://www.apache.org/licenses/LICENSE-2.0
17
+ *
18
+ * Unless required by applicable law or agreed to in writing, software
19
+ * distributed under the License is distributed on an "AS IS" BASIS,
20
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21
+ * See the License for the specific language governing permissions and
22
+ * limitations under the License.
23
+ */
24
+
25
+ /*
26
+ * Copyright (C) 2022 The Gravitee team (http://gravitee.io)
27
+ *
28
+ * Licensed under the Apache License, Version 2.0 (the "License");
29
+ * you may not use this file except in compliance with the License.
30
+ * You may obtain a copy of the License at
31
+ *
32
+ * http://www.apache.org/licenses/LICENSE-2.0
33
+ *
34
+ * Unless required by applicable law or agreed to in writing, software
35
+ * distributed under the License is distributed on an "AS IS" BASIS,
36
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
37
+ * See the License for the specific language governing permissions and
38
+ * limitations under the License.
39
+ */
40
+
41
+ /*
42
+ * Copyright (C) 2015 The Gravitee team (http://gravitee.io)
43
+ *
44
+ * Licensed under the Apache License, Version 2.0 (the "License");
45
+ * you may not use this file except in compliance with the License.
46
+ * You may obtain a copy of the License at
47
+ *
48
+ * http://www.apache.org/licenses/LICENSE-2.0
49
+ *
50
+ * Unless required by applicable law or agreed to in writing, software
51
+ * distributed under the License is distributed on an "AS IS" BASIS,
52
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
53
+ * See the License for the specific language governing permissions and
54
+ * limitations under the License.
55
+ */
56
+
57
+ /*
58
+ * Copyright (C) 2022 The Gravitee team (http://gravitee.io)
59
+ *
60
+ * Licensed under the Apache License, Version 2.0 (the "License");
61
+ * you may not use this file except in compliance with the License.
62
+ * You may obtain a copy of the License at
63
+ *
64
+ * http://www.apache.org/licenses/LICENSE-2.0
65
+ *
66
+ * Unless required by applicable law or agreed to in writing, software
67
+ * distributed under the License is distributed on an "AS IS" BASIS,
68
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
69
+ * See the License for the specific language governing permissions and
70
+ * limitations under the License.
71
+ */
72
+
73
+ /*
74
+ * Copyright (C) 2015 The Gravitee team (http://gravitee.io)
75
+ *
76
+ * Licensed under the Apache License, Version 2.0 (the "License");
77
+ * you may not use this file except in compliance with the License.
78
+ * You may obtain a copy of the License at
79
+ *
80
+ * http://www.apache.org/licenses/LICENSE-2.0
81
+ *
82
+ * Unless required by applicable law or agreed to in writing, software
83
+ * distributed under the License is distributed on an "AS IS" BASIS,
84
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
85
+ * See the License for the specific language governing permissions and
86
+ * limitations under the License.
87
+ */
88
+
89
+ /*
90
+ * Copyright (C) 2022 The Gravitee team (http://gravitee.io)
91
+ *
92
+ * Licensed under the Apache License, Version 2.0 (the "License");
93
+ * you may not use this file except in compliance with the License.
94
+ * You may obtain a copy of the License at
95
+ *
96
+ * http://www.apache.org/licenses/LICENSE-2.0
97
+ *
98
+ * Unless required by applicable law or agreed to in writing, software
99
+ * distributed under the License is distributed on an "AS IS" BASIS,
100
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
101
+ * See the License for the specific language governing permissions and
102
+ * limitations under the License.
103
+ */
3
104
 
4
105
  /*
5
106
  * Copyright (C) 2022 The Gravitee team (http://gravitee.io)
@@ -16,17 +117,265 @@ import { Injectable, Component, NgModule } from '@angular/core';
16
117
  * See the License for the specific language governing permissions and
17
118
  * limitations under the License.
18
119
  */
19
- class UiPolicyStudioAngularService {
20
- constructor() { }
120
+
121
+ class FlowServiceAbstract {
21
122
  }
22
- UiPolicyStudioAngularService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: UiPolicyStudioAngularService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
23
- UiPolicyStudioAngularService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: UiPolicyStudioAngularService, providedIn: 'root' });
24
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: UiPolicyStudioAngularService, decorators: [{
25
- type: Injectable,
123
+
124
+ class PolicyServiceAbstract {
125
+ }
126
+
127
+ class ResourceServiceAbstract {
128
+ }
129
+
130
+ class SpelServiceAbstract {
131
+ }
132
+
133
+ class GioPolicyStudioComponent {
134
+ constructor(location, flowService, policyService, resourceService, spelService) {
135
+ this.location = location;
136
+ this.flowService = flowService;
137
+ this.policyService = policyService;
138
+ this.resourceService = resourceService;
139
+ this.spelService = spelService;
140
+ this.services = {};
141
+ this.dynamicPropertySchema = {};
142
+ this.configurationInformation = 'By default, the selection of a flow is based on the operator defined in the flow itself. This operator allows either to select a flow when the path matches exactly, or when the start of the path matches. The "Best match" option allows you to select the flow from the path that is closest.';
143
+ this.save = new EventEmitter();
144
+ this.unknownPolicyCategory = 'others';
145
+ this.policyCategoriesOrder = ['security', 'performance', 'transformation', this.unknownPolicyCategory];
146
+ }
147
+ set policies(policies) {
148
+ this._policies = chain(policies)
149
+ .map(policy => (!isNil(policy.category) ? policy : Object.assign(Object.assign({}, policy), { category: this.unknownPolicyCategory })))
150
+ // First sort by category (based on category order) and then by name
151
+ .sortBy([policy => { var _a; return this.policyCategoriesOrder.indexOf((_a = policy.category) !== null && _a !== void 0 ? _a : ''); }, policy => policy.name])
152
+ .value();
153
+ }
154
+ get policies() {
155
+ return this._policies;
156
+ }
157
+ ngOnInit() {
158
+ this.flowService
159
+ .getConfigurationSchemaForm()
160
+ .pipe(tap(configurationSchema => {
161
+ this.configurationSchema = configurationSchema;
162
+ }))
163
+ .subscribe();
164
+ const { tabId, flowsIds } = this.parseUrl();
165
+ this.tabId = tabId;
166
+ this.selectedFlowsIds = JSON.stringify(flowsIds);
167
+ }
168
+ onTabChanged(tabId) {
169
+ this.updateUrl(Object.assign(Object.assign({}, this.parseUrl()), { tabId }));
170
+ }
171
+ onFlowSelectionChanged({ flows }) {
172
+ this.updateUrl(Object.assign(Object.assign({}, this.parseUrl()), { flowsIds: flows }));
173
+ }
174
+ fetchPolicyDocumentation({ policy }) {
175
+ this.policyService
176
+ .getDocumentation(policy.id)
177
+ .pipe(tap(documentation => (this.policyDocumentation = { id: policy.id, image: policy.icon, content: documentation })))
178
+ .subscribe();
179
+ }
180
+ fetchResourceDocumentation({ resourceType, target, }) {
181
+ this.resourceService
182
+ .getDocumentation(resourceType.id)
183
+ .pipe(tap(documentation => (target.documentation = { image: resourceType.icon, content: documentation })), catchError(() => {
184
+ target.documentation = null;
185
+ return EMPTY;
186
+ }))
187
+ .subscribe();
188
+ }
189
+ fetchSpelGrammar({ currentTarget }) {
190
+ this.spelService
191
+ .getGrammar()
192
+ .pipe(tap(grammar => (currentTarget.grammar = grammar)))
193
+ .subscribe();
194
+ }
195
+ parseUrl() {
196
+ // TODO: Improve this with Angular Router
197
+ // Hack to add the tab as Fragment part of the URL
198
+ const [path, tabId] = this.location.path(true).split(/#(\w*)$/);
199
+ const [basePath, ...flowsIds] = path.split('flows');
200
+ const cleanedPath = basePath.replace('?', '');
201
+ const cleanedFlows = (flowsIds !== null && flowsIds !== void 0 ? flowsIds : []).map(flow => flow.replace('=', ''));
202
+ return {
203
+ path: cleanedPath,
204
+ tabId: tabId !== null && tabId !== void 0 ? tabId : '',
205
+ flowsIds: cleanedFlows,
206
+ };
207
+ }
208
+ updateUrl({ path, tabId, flowsIds }) {
209
+ // TODO: Improve this with Angular Router
210
+ // Hack to add the tab as Fragment part of the URL
211
+ const flowsQueryParams = (flowsIds !== null && flowsIds !== void 0 ? flowsIds : []).map(value => `flows=${value}`).join('&');
212
+ const queryParams = flowsQueryParams.length > 0 ? `?${flowsQueryParams}` : '';
213
+ this.location.go(`${path}${queryParams}#${tabId}`);
214
+ }
215
+ }
216
+ GioPolicyStudioComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: GioPolicyStudioComponent, deps: [{ token: i1.Location }, { token: 'FlowService' }, { token: 'PolicyService' }, { token: 'ResourceService' }, { token: 'SpelService' }], target: i0.ɵɵFactoryTarget.Component });
217
+ GioPolicyStudioComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: GioPolicyStudioComponent, selector: "gio-policy-studio", inputs: { canAdd: "canAdd", canDebug: "canDebug", hasResources: "hasResources", hasProperties: "hasProperties", hasPolicyFilter: "hasPolicyFilter", sortable: "sortable", policies: "policies", definition: "definition", services: "services", flowSchema: "flowSchema", resourceTypes: "resourceTypes", propertyProviders: "propertyProviders", readonlyPlans: "readonlyPlans", dynamicPropertySchema: "dynamicPropertySchema", debugResponse: "debugResponse", flowsTitle: "flowsTitle", hasConditionalSteps: "hasConditionalSteps", configurationInformation: "configurationInformation" }, outputs: { save: "save" }, ngImport: i0, template: "<!--\n\n Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n\n<div class=\"policy-studio-wrapper\">\n <gv-policy-studio\n [policies]=\"policies\"\n [services]=\"services\"\n [resourceTypes]=\"resourceTypes\"\n [propertyProviders]=\"propertyProviders\"\n [dynamicPropertySchema]=\"dynamicPropertySchema\"\n [definition]=\"definition\"\n [flowSchema]=\"flowSchema\"\n [configurationSchema]=\"configurationSchema\"\n [configurationInformation]=\"configurationInformation\"\n [attr.can-add]=\"canAdd ? canAdd : null\"\n [attr.can-debug]=\"canDebug ? canDebug : null\"\n [attr.has-resources]=\"hasResources ? hasResources : null\"\n [attr.has-properties]=\"hasProperties ? hasProperties : null\"\n [attr.has-policy-filter]=\"hasPolicyFilter ? hasPolicyFilter : null\"\n [attr.sortable]=\"sortable ? sortable : null\"\n [attr.readonly-plans]=\"readonlyPlans ? readonlyPlans : null\"\n [attr.flows-title]=\"flowsTitle\"\n [attr.has-conditional-steps]=\"flowsTitle\"\n [debugResponse]=\"debugResponse\"\n [tabId]=\"tabId\"\n (:gv-policy-studio:change-tab)=\"onTabChanged($any($event).detail)\"\n [documentation]=\"policyDocumentation\"\n (:gv-policy-studio:fetch-documentation)=\"fetchPolicyDocumentation($any($event).detail)\"\n (:gv-resources:fetch-documentation)=\"fetchResourceDocumentation($any($event).detail)\"\n (:gv-expression-language:ready)=\"fetchSpelGrammar($any($event).detail)\"\n [attr.selected-flows-id]=\"selectedFlowsIds ? selectedFlowsIds : null\"\n (:gv-policy-studio:select-flows)=\"onFlowSelectionChanged($any($event).detail)\"\n (:gv-policy-studio:save)=\"save.emit($any($event).detail)\"\n >\n </gv-policy-studio>\n</div>\n", styles: [".policy-studio-wrapper{background-color:#fff}gv-policy-studio{--gv-policy-studio--h: calc(100vh - 75px);overflow:hidden;margin:2rem 0 1rem 1rem}\n"] });
218
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: GioPolicyStudioComponent, decorators: [{
219
+ type: Component,
26
220
  args: [{
27
- providedIn: 'root',
221
+ selector: 'gio-policy-studio',
222
+ templateUrl: './gio-policy-studio.component.html',
223
+ styleUrls: ['./gio-policy-studio.component.scss'],
28
224
  }]
29
- }], ctorParameters: function () { return []; } });
225
+ }], ctorParameters: function () { return [{ type: i1.Location }, { type: FlowServiceAbstract, decorators: [{
226
+ type: Inject,
227
+ args: ['FlowService']
228
+ }] }, { type: PolicyServiceAbstract, decorators: [{
229
+ type: Inject,
230
+ args: ['PolicyService']
231
+ }] }, { type: ResourceServiceAbstract, decorators: [{
232
+ type: Inject,
233
+ args: ['ResourceService']
234
+ }] }, { type: SpelServiceAbstract, decorators: [{
235
+ type: Inject,
236
+ args: ['SpelService']
237
+ }] }]; }, propDecorators: {
238
+ // TODO: Remove ! and add init value ! for all
239
+ canAdd: [{
240
+ type: Input
241
+ }], canDebug: [{
242
+ type: Input
243
+ }], hasResources: [{
244
+ type: Input
245
+ }], hasProperties: [{
246
+ type: Input
247
+ }], hasPolicyFilter: [{
248
+ type: Input
249
+ }], sortable: [{
250
+ type: Input
251
+ }], policies: [{
252
+ type: Input
253
+ }], definition: [{
254
+ type: Input
255
+ }], services: [{
256
+ type: Input
257
+ }], flowSchema: [{
258
+ type: Input
259
+ }], resourceTypes: [{
260
+ type: Input
261
+ }], propertyProviders: [{
262
+ type: Input
263
+ }], readonlyPlans: [{
264
+ type: Input
265
+ }], dynamicPropertySchema: [{
266
+ type: Input
267
+ }], debugResponse: [{
268
+ type: Input
269
+ }], flowsTitle: [{
270
+ type: Input
271
+ }], hasConditionalSteps: [{
272
+ type: Input
273
+ }], configurationInformation: [{
274
+ type: Input
275
+ }], save: [{
276
+ type: Output
277
+ }] } });
278
+
279
+ function fakeFlowConfigurationSchema(attributes) {
280
+ const base = {
281
+ type: 'object',
282
+ id: 'apim',
283
+ properties: {
284
+ 'flow-mode': {
285
+ title: 'Flow Mode',
286
+ description: 'The flow mode',
287
+ type: 'string',
288
+ enum: ['DEFAULT', 'BEST_MATCH'],
289
+ default: 'DEFAULT',
290
+ 'x-schema-form': {
291
+ titleMap: {
292
+ DEFAULT: 'Default',
293
+ BEST_MATCH: 'Best match',
294
+ },
295
+ },
296
+ },
297
+ },
298
+ required: [],
299
+ disabled: [],
300
+ };
301
+ return Object.assign(Object.assign({}, base), attributes);
302
+ }
303
+
304
+ function fakeOrganizationFlowConfiguration(attributes) {
305
+ const base = {
306
+ has_policies: true,
307
+ };
308
+ return Object.assign(Object.assign({}, base), attributes);
309
+ }
310
+
311
+ function fakePlatformFlowSchema(attributes) {
312
+ const base = {
313
+ type: 'object',
314
+ id: 'apim',
315
+ properties: {
316
+ name: {
317
+ title: 'Name',
318
+ description: 'The name of flow. If empty, the name will be generated with the path and methods',
319
+ type: 'string',
320
+ },
321
+ 'path-operator': {
322
+ type: 'object',
323
+ properties: {
324
+ operator: {
325
+ title: 'Operator path',
326
+ description: 'The operator path',
327
+ type: 'string',
328
+ enum: ['EQUALS', 'STARTS_WITH'],
329
+ default: 'STARTS_WITH',
330
+ 'x-schema-form': {
331
+ titleMap: {
332
+ EQUALS: 'Equals',
333
+ STARTS_WITH: 'Starts with',
334
+ },
335
+ },
336
+ },
337
+ path: {
338
+ title: 'Path',
339
+ description: 'The path of flow (must start by /)',
340
+ type: 'string',
341
+ pattern: '^/',
342
+ default: '/',
343
+ },
344
+ },
345
+ required: ['path', 'operator'],
346
+ },
347
+ methods: {
348
+ title: 'Methods',
349
+ description: 'The HTTP methods of flow (ALL if empty)',
350
+ type: 'array',
351
+ items: {
352
+ type: 'string',
353
+ enum: ['CONNECT', 'DELETE', 'GET', 'HEAD', 'OPTIONS', 'PATCH', 'POST', 'PUT', 'TRACE'],
354
+ },
355
+ },
356
+ consumers: {
357
+ title: 'Tags',
358
+ description: 'The tags of flow.',
359
+ type: 'array',
360
+ items: {
361
+ type: 'string',
362
+ enum: [],
363
+ },
364
+ },
365
+ condition: {
366
+ title: 'Condition',
367
+ description: 'The condition of the flow. Supports EL.',
368
+ type: 'string',
369
+ 'x-schema-form': {
370
+ 'expression-language': true,
371
+ },
372
+ },
373
+ },
374
+ required: [],
375
+ disabled: [],
376
+ };
377
+ return Object.assign(Object.assign({}, base), attributes);
378
+ }
30
379
 
31
380
  /*
32
381
  * Copyright (C) 2022 The Gravitee team (http://gravitee.io)
@@ -43,16 +392,4190 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImpo
43
392
  * See the License for the specific language governing permissions and
44
393
  * limitations under the License.
45
394
  */
46
- class UiPolicyStudioAngularComponent {
395
+
396
+ /*
397
+ * Copyright (C) 2015 The Gravitee team (http://gravitee.io)
398
+ *
399
+ * Licensed under the Apache License, Version 2.0 (the "License");
400
+ * you may not use this file except in compliance with the License.
401
+ * You may obtain a copy of the License at
402
+ *
403
+ * http://www.apache.org/licenses/LICENSE-2.0
404
+ *
405
+ * Unless required by applicable law or agreed to in writing, software
406
+ * distributed under the License is distributed on an "AS IS" BASIS,
407
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
408
+ * See the License for the specific language governing permissions and
409
+ * limitations under the License.
410
+ */
411
+ class FlowService extends FlowServiceAbstract {
412
+ getConfigurationSchemaForm() {
413
+ return of(fakeFlowConfigurationSchema());
414
+ }
415
+ getPlatformFlowSchemaForm() {
416
+ return of(fakePlatformFlowSchema());
417
+ }
418
+ getConfiguration() {
419
+ return of(fakeOrganizationFlowConfiguration());
420
+ }
47
421
  }
48
- UiPolicyStudioAngularComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: UiPolicyStudioAngularComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
49
- UiPolicyStudioAngularComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: UiPolicyStudioAngularComponent, selector: "gio-ui-policy-studio-angular", ngImport: i0, template: ` <p class="wow">ui-policy-studio-angular works!</p> `, isInline: true });
50
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: UiPolicyStudioAngularComponent, decorators: [{
51
- type: Component,
422
+ FlowService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: FlowService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
423
+ FlowService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: FlowService });
424
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: FlowService, decorators: [{
425
+ type: Injectable
426
+ }] });
427
+
428
+ function fakePolicyListItem(attributes) {
429
+ const base = {
430
+ category: 'transformation',
431
+ description: 'Description of the JSON to JSON Transformation Gravitee Policy',
432
+ icon: 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAuNzEgMTEyLjgyIj48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6Izg2YzNkMDt9LmNscy0ye2ZpbGw6I2ZmZjt9LmNscy0ze2ZvbnQtc2l6ZToxMnB4O2ZpbGw6IzFkMWQxYjtmb250LWZhbWlseTpNeXJpYWRQcm8tUmVndWxhciwgTXlyaWFkIFBybzt9LmNscy00e2xldHRlci1zcGFjaW5nOi0wLjAxZW07fTwvc3R5bGU+PC9kZWZzPjxnIGlkPSJBUEkiPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTUwLjM1LDEzLjM3YTQzLDQzLDAsMSwwLDQzLjA1LDQzQTQzLDQzLDAsMCwwLDUwLjM1LDEzLjM3WiIvPjxwYXRoIGNsYXNzPSJjbHMtMiIgZD0iTTYzLjgsNzcuMDlhNC44Myw0LjgzLDAsMSwxLDMuNjktNy45Miw0Ljc0LDQuNzQsMCwwLDEsMS4xMywzLjA5QTQuODMsNC44MywwLDAsMSw2My44LDc3LjA5Wm0wLTcuOTNhMy4xMSwzLjExLDAsMSwwLDIuMzgsMS4xMkEzLjEsMy4xLDAsMCwwLDYzLjgsNjkuMTZaIi8+PHBhdGggY2xhc3M9ImNscy0yIiBkPSJNNTEuNSw0My42OGE0Ljg1LDQuODUsMCwwLDEtNC43Ny00LjE0LDUsNSwwLDAsMSwwLS42OSw0LjgzLDQuODMsMCwwLDEsOS42NSwwLDMuNDUsMy40NSwwLDAsMS0uMDcuNzRBNC44MSw0LjgxLDAsMCwxLDUxLjUsNDMuNjhabTAtNy45M2EzLjEsMy4xLDAsMCwwLTMuMSwzLjEsMy4yNSwzLjI1LDAsMCwwLDAsLjQ0LDMuMSwzLjEsMCwwLDAsNi4xNCwwLDIuNjYsMi42NiwwLDAsMCwwLS40NUEzLjExLDMuMTEsMCwwLDAsNTEuNSwzNS43NVoiLz48cGF0aCBjbGFzcz0iY2xzLTIiIGQ9Ik0zMy42NCw3MC4xNWE0LjgzLDQuODMsMCwwLDEtMS4zNy05LjQ2LDUsNSwwLDAsMSwxLjM3LS4xOSw0LjgyLDQuODIsMCwwLDEsNC44Miw0LjgyLDQuODcsNC44NywwLDAsMS0yLjcxLDQuMzVBNC43Myw0LjczLDAsMCwxLDMzLjY0LDcwLjE1Wm0wLTcuOTNhMywzLDAsMCwwLS44OS4xMywzLjEsMy4xLDAsMCwwLC44OSw2LjA4QTMsMywwLDAsMCwzNSw2OC4xMmEzLjExLDMuMTEsMCwwLDAtMS4zNS01LjlaIi8+PHBhdGggY2xhc3M9ImNscy0yIiBkPSJNMzIuMTgsNTYuMzVoLS4xMmEuODcuODcsMCwwLDEtLjczLTFBMjAuNDcsMjAuNDcsMCwwLDEsNDIsNDAuMzNhLjg2Ljg2LDAsMSwxLC44LDEuNTJBMTguNzcsMTguNzcsMCwwLDAsMzMsNTUuNjEuODYuODYsMCwwLDEsMzIuMTgsNTYuMzVaIi8+PHBhdGggY2xhc3M9ImNscy0yIiBkPSJNNTEuNSw3OC43OWEyMC4xNywyMC4xNywwLDAsMS0xMi4yNy00LjExLjg2Ljg2LDAsMCwxLS4xNy0xLjIxLjg1Ljg1LDAsMCwxLDEuMi0uMTZBMTguNTIsMTguNTIsMCwwLDAsNTEuNSw3Ny4wNywxOC4yMywxOC4yMywwLDAsMCw1NSw3Ni43M2EuODcuODcsMCwwLDEsLjMzLDEuN0EyMC44NywyMC44NywwLDAsMSw1MS41LDc4Ljc5WiIvPjxwYXRoIGNsYXNzPSJjbHMtMiIgZD0iTTcwLDY1LjQyYS44NC44NCwwLDAsMS0uMjcsMCwuODYuODYsMCwwLDEtLjU0LTEuMDksMTguNzEsMTguNzEsMCwwLDAtOC41NS0yMi4xNy44Ni44NiwwLDEsMSwuODUtMS41LDIwLjQyLDIwLjQyLDAsMCwxLDkuMzMsMjQuMjFBLjg3Ljg3LDAsMCwxLDcwLDY1LjQyWiIvPjwvZz48ZyBpZD0iSE9TVElORyI+PHRleHQgY2xhc3M9ImNscy0zIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxNy45MyAtNC45OCkiPkpTT04gPHRzcGFuIGNsYXNzPSJjbHMtNCIgeD0iMjkuMDYiIHk9IjAiPnQ8L3RzcGFuPjx0c3BhbiB4PSIzMi45NiIgeT0iMCI+byBKU09OPC90c3Bhbj48L3RleHQ+PC9nPjwvc3ZnPg==',
433
+ id: 'json-to-json',
434
+ name: 'JSON to JSON Transformation',
435
+ onRequest: true,
436
+ onResponse: true,
437
+ schema: '{\n "type" : "object",\n "id" : "urn:jsonschema:io:gravitee:policy:json2json:configuration:JsonToJsonTransformationPolicyConfiguration",\n "properties" : {\n "scope" : {\n "title": "Scope",\n "description": "Execute policy on <strong>request</strong> or <strong>response</strong> phase.",\n "type" : "string",\n "default": "REQUEST",\n "enum" : [ "REQUEST", "RESPONSE" ],\n "deprecated": "true"\n },\n "overrideContentType" : {\n "title": "Override the Content-Type",\n "description": "Enforce the Content-Type: application/json",\n "type" : "boolean",\n "default": true\n },\n "specification" : {\n "title": "JOLT specification",\n "type" : "string",\n "x-schema-form": {\n "type": "codemirror",\n "codemirrorOptions": {\n "placeholder": "Place your JOLT specification here or drag\'n\'drop your JOLT specification file",\n "lineWrapping": true,\n "lineNumbers": true,\n "allowDropFileTypes": true,\n "autoCloseTags": true,\n "mode": "javascript"\n },\n "expression-language": true\n }\n }\n },\n "required": [\n "specification"\n ]\n}\n',
438
+ version: '1.6.0',
439
+ };
440
+ return Object.assign(Object.assign({}, base), attributes);
441
+ }
442
+
443
+ function fakePolicyDocumentation(attributes) {
444
+ const base = `
445
+ = RateLimit policy
446
+
447
+
448
+ ifdef::env-github[]
449
+ image:https://ci.gravitee.io/buildStatus/icon?job=gravitee-io/gravitee-policy-ratelimit/master["Build status", link="https://ci.gravitee.io/job/gravitee-io/job/gravitee-policy-ratelimit/"]
450
+ image:https://badges.gitter.im/Join Chat.svg["Gitter", link="https://gitter.im/gravitee-io/gravitee-io?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge"]
451
+ endif::[]
452
+
453
+ == Phase
454
+
455
+ |===
456
+ |onRequest |onResponse
457
+
458
+ | X
459
+ |
460
+
461
+ |===
462
+
463
+ == Description
464
+
465
+ There are three \`rate-limit\` policies:
466
+
467
+ * Quota: configures the number of requests allowed over a period of time (hours, days, weeks, months)
468
+ * Rate-Limit: configures the number of requests allowed over a limited period of time (seconds, minutes)
469
+ * Spike-Arrest: throttles the number of requests processed and sends them to the backend to avoid a spike
470
+
471
+ == Configuration
472
+
473
+ You can configure the policies with the following options:
474
+
475
+ === Quota
476
+
477
+ The Quota policy configures the number of requests allowed over a large period of time (from hours to months).
478
+ This policy does not prevent request spikes.
479
+
480
+ |===
481
+ |Property |Required |Description |Type |Default
482
+
483
+ |key
484
+ |No
485
+ |Key to identify a consumer to apply the quota against. Leave it empty to apply the default behavior (plan/subscription pair). Supports Expression Language.
486
+ |String
487
+ |null
488
+
489
+ |limit
490
+ |No
491
+ |Static limit on the number of requests that can be sent (this limit is used if the value > 0).
492
+ |integer
493
+ |0
494
+
495
+ |dynamicLimit
496
+ |No
497
+ |Dynamic limit on the number of requests that can be sent (this limit is used if static limit = 0). The dynamic value is based on Expression Language expressions.
498
+ |string
499
+ |null
500
+
501
+ |periodTime
502
+ |Yes
503
+ |Time duration
504
+ |Integer
505
+ |1
506
+
507
+ |periodTimeUnit
508
+ |Yes
509
+ |Time unit (\`HOURS\`, \`DAYS\`, \`WEEKS\`, \`MONTHS\`)
510
+ |String
511
+ |MONTHS
512
+
513
+ |===
514
+
515
+ ==== Configuration example
516
+
517
+ [source, json]
518
+ ----
519
+ "quota": {
520
+ "limit": "1000",
521
+ "periodTime": 1,
522
+ "periodTimeUnit": "MONTHS"
523
+ }
524
+ ----
525
+
526
+ === Rate-Limit
527
+
528
+ The Rate-Limit policy configures the number of requests allow over a limited period of time (from seconds to minutes).
529
+ This policy does not prevent request spikes.
530
+
531
+ |===
532
+ |Property |Required |Description |Type |Default
533
+
534
+ |key
535
+ |No
536
+ |Key to identify a consumer to apply rate-limiting against. Leave it empty to use the default behavior (plan/subscription pair). Supports Expression Language.
537
+ |String
538
+ |null
539
+
540
+ |limit
541
+ |No
542
+ |Static limit on the number of requests that can be sent (this limit is used if the value > 0).
543
+ |integer
544
+ |0
545
+
546
+ |dynamicLimit
547
+ |No
548
+ |Dynamic limit on the number of requests that can be sent (this limit is used if static limit = 0). The dynamic value is based on Expression Language expressions.
549
+ |string
550
+ |null
551
+
552
+ |periodTime
553
+ |Yes
554
+ |Time duration
555
+ |Integer
556
+ |1
557
+
558
+ |periodTimeUnit
559
+ |Yes
560
+ |Time unit ("SECONDS", "MINUTES" )
561
+ |String
562
+ |SECONDS
563
+
564
+ |===
565
+
566
+ ==== Configuration example
567
+
568
+ [source, json]
569
+ ----
570
+ "rate": {
571
+ "limit": "10",
572
+ "periodTime": 10,
573
+ "periodTimeUnit": "MINUTES"
574
+ }
575
+ ----
576
+
577
+ === Spike Arrest
578
+
579
+ The Spike-Arrest policy configures the number of requests allow over a limited period of time (from seconds to minutes).
580
+ This policy prevents request spikes by throttling incoming requests.
581
+ For example, a SpikeArrest policy configured to 2000 requests/second will limit the execution of simultaneous requests to 200 requests per 100ms.
582
+
583
+ By default, the SpikeArrest policy is applied to a plan, not a consumer. To apply a spike arrest to a consumer, you need to use the \`key\` attribute, which supports Expression Language.
584
+
585
+ |===
586
+ |Property |Required |Description |Type |Default
587
+
588
+ |key
589
+ |No
590
+ |Key to identify a consumer to apply spike arresting against. Leave it empty to use the default behavior. Supports Expression Language (example: \`{#request.headers['x-consumer-id']}\`).
591
+ |String
592
+ |null
593
+
594
+ |limit
595
+ |No
596
+ |Static limit on the number of requests that can be sent (this limit is used if the value > 0).
597
+ |integer
598
+ |0
599
+
600
+ |dynamicLimit
601
+ |No
602
+ |Dynamic limit on the number of requests that can be sent (this limit is used if static limit = 0). The dynamic value is based on Expression Language expressions.
603
+ |string
604
+ |null
605
+
606
+ |periodTime
607
+ |Yes
608
+ |Time duration
609
+ |Integer
610
+ |1
611
+
612
+ |periodTimeUnit
613
+ |Yes
614
+ |Time unit (\`SECONDS\`, \`MINUTES\`)
615
+ |String
616
+ |SECONDS
617
+
618
+ |===
619
+
620
+ ==== Configuration example
621
+
622
+ [source, json]
623
+ ----
624
+ "spike": {
625
+ "limit": "10",
626
+ "periodTime": 10,
627
+ "periodTimeUnit": "MINUTES"
628
+ }
629
+ ----
630
+
631
+ == Errors
632
+
633
+ === Default response override
634
+
635
+ You can use the response template feature to override the default response provided by the policies. These templates must be defined at the API level (see the API Console *Response Templates*
636
+ option in the API *Proxy* menu).
637
+
638
+ === Error keys
639
+
640
+ The error keys sent by these policies are as follows:
641
+
642
+ [cols="2*", options="header"]
643
+ |===
644
+ ^|Key
645
+ ^|Parameters
646
+
647
+ .^|RATE_LIMIT_TOO_MANY_REQUESTS
648
+ ^.^|limit - period_time - period_unit
649
+
650
+ .^|QUOTA_TOO_MANY_REQUESTS
651
+ ^.^|limit - period_time - period_unit
652
+
653
+ .^|SPIKE_ARREST_TOO_MANY_REQUESTS
654
+ ^.^|limit - period_time - period_unit - slice_limit - slice_period_time - slice_limit_period_unit
655
+
656
+ |===
657
+ `;
658
+ return attributes !== null && attributes !== void 0 ? attributes : base;
659
+ }
660
+
661
+ function fakePolicySchema(attributes) {
662
+ const base = 'A policy schema';
663
+ return attributes !== null && attributes !== void 0 ? attributes : base;
664
+ }
665
+
666
+ /*
667
+ * Copyright (C) 2022 The Gravitee team (http://gravitee.io)
668
+ *
669
+ * Licensed under the Apache License, Version 2.0 (the "License");
670
+ * you may not use this file except in compliance with the License.
671
+ * You may obtain a copy of the License at
672
+ *
673
+ * http://www.apache.org/licenses/LICENSE-2.0
674
+ *
675
+ * Unless required by applicable law or agreed to in writing, software
676
+ * distributed under the License is distributed on an "AS IS" BASIS,
677
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
678
+ * See the License for the specific language governing permissions and
679
+ * limitations under the License.
680
+ */
681
+
682
+ /*
683
+ * Copyright (C) 2015 The Gravitee team (http://gravitee.io)
684
+ *
685
+ * Licensed under the Apache License, Version 2.0 (the "License");
686
+ * you may not use this file except in compliance with the License.
687
+ * You may obtain a copy of the License at
688
+ *
689
+ * http://www.apache.org/licenses/LICENSE-2.0
690
+ *
691
+ * Unless required by applicable law or agreed to in writing, software
692
+ * distributed under the License is distributed on an "AS IS" BASIS,
693
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
694
+ * See the License for the specific language governing permissions and
695
+ * limitations under the License.
696
+ */
697
+ class PolicyService extends PolicyServiceAbstract {
698
+ list(_params) {
699
+ return of([fakePolicyListItem()]);
700
+ }
701
+ listSwaggerPolicies() {
702
+ return of([fakePolicyListItem()]);
703
+ }
704
+ getSchema(_policyId) {
705
+ return of(fakePolicySchema());
706
+ }
707
+ getDocumentation(_policyId) {
708
+ return of(fakePolicyDocumentation()).pipe(map(buffer => buffer.toString()));
709
+ }
710
+ }
711
+ PolicyService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: PolicyService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
712
+ PolicyService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: PolicyService });
713
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: PolicyService, decorators: [{
714
+ type: Injectable
715
+ }] });
716
+
717
+ function fakeResourceDocumentation(attributes) {
718
+ const base = `
719
+ = Cache Resource
720
+
721
+ ifdef::env-github[]
722
+ image:https://ci.gravitee.io/buildStatus/icon?job=gravitee-io/gravitee-resource-cache/master["Build status", link="https://ci.gravitee.io/job/gravitee-io/job/gravitee-resource-cache/"]
723
+ image:https://badges.gitter.im/Join Chat.svg["Gitter", link="https://gitter.im/gravitee-io/gravitee-io?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge"]
724
+ endif::[]
725
+
726
+ == Description
727
+
728
+ The cache resource is used to maintain a cache and link it to the API lifecycle.
729
+ It means that the cache is initialized when the API is starting and released when API is stopped.
730
+
731
+ This cache is responsible to store HTTP response from the backend to avoid subsequent calls.
732
+
733
+ Current implementation of the cache resource is based on https://hazelcast.com/[Hazelcast].
734
+
735
+ == Configuration
736
+
737
+ You can configure the resource with the following options :
738
+
739
+ |===
740
+ |Property |Required |Description |Type |Default
741
+
742
+ .^|name
743
+ ^.^|X
744
+ |The name of the cache.
745
+ ^.^|string
746
+ ^.^|my-cache
747
+
748
+ .^|timeToIdleSeconds
749
+ ^.^|X
750
+ |The maximum number of seconds an element can exist in the cache without being accessed. The element expires at this limit and will no longer be returned from the cache. The default value is 0, which means no timeToIdle (TTI) eviction takes place (infinite lifetime).
751
+ ^.^|integer
752
+ ^.^|0
753
+
754
+ .^|timeToLiveSeconds
755
+ ^.^|X
756
+ |The maximum number of seconds an element can exist in the cache regardless of use. The element expires at this limit and will no longer be returned from the cache. The default value is 0, which means no timeToLive (TTL) eviction takes place (infinite lifetime).
757
+ ^.^|integer
758
+ ^.^|0
759
+
760
+ .^|maxEntriesLocalHeap
761
+ ^.^|X
762
+ |The maximum objects to be held in local heap memory (0 = no limit).
763
+ ^.^|integer
764
+ ^.^|1000
765
+
766
+ |===
767
+
768
+
769
+ [source, json]
770
+ .Configuration example
771
+ ----
772
+ {
773
+ "name" : "cache",
774
+ "type" : "cache",
775
+ "enabled" : true,
776
+ "configuration" : {
777
+ "name": "my-cache",
778
+ "timeToIdleSeconds":0,
779
+ "timeToLiveSeconds":0,
780
+ "maxEntriesLocalHeap":1000
781
+ }
782
+ }
783
+ ----`;
784
+ return attributes !== null && attributes !== void 0 ? attributes : base;
785
+ }
786
+
787
+ function fakeResourceListItem(attributes) {
788
+ const base = {
789
+ description: 'The resource is used to maintain a cache and link it to the API lifecycle. It means that the cache is initialized when the API is starting and released when API is stopped.',
790
+ icon: 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAuNzEgMTEyLjgyIj48ZGVmcz48c3R5bGU+LmNscy0xe2ZvbnQtc2l6ZToxMnB4O2ZpbGw6IzFkMWQxYjtmb250LWZhbWlseTpNeXJpYWRQcm8tUmVndWxhciwgTXlyaWFkIFBybzt9LmNscy0ye2xldHRlci1zcGFjaW5nOi0wLjAxZW07fS5jbHMtM3tmaWxsOiM4NmMzZDA7fS5jbHMtNHtmaWxsOiNmZmY7c3Ryb2tlOiNmZmY7c3Ryb2tlLW1pdGVybGltaXQ6MTA7fTwvc3R5bGU+PC9kZWZzPjxnIGlkPSJIT1NUSU5HIj48dGV4dCBjbGFzcz0iY2xzLTEiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE3LjkzIC00Ljk4KSI+PHRzcGFuIGNsYXNzPSJjbHMtMiI+QzwvdHNwYW4+PHRzcGFuIHg9IjYuODgiIHk9IjAiPmFjaGU8L3RzcGFuPjwvdGV4dD48cmVjdCBjbGFzcz0iY2xzLTMiIHg9IjUiIHk9IjExIiB3aWR0aD0iOTAiIGhlaWdodD0iOTAiIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2Utd2lkdGg9IjUiLz48cGF0aCBjbGFzcz0iY2xzLTQiIGQ9Ik00Ny40NSw3Ny41OEEyMy4zLDIzLjMsMCwwLDEsNDIsNzYuOTNMNDIuNDYsNzVhMjEuMzQsMjEuMzQsMCwxLDAtMTEtMzQuODNsLTEuNS0xLjMyQTIzLjM0LDIzLjM0LDAsMSwxLDQ3LjQ1LDc3LjU4WiIvPjxwb2x5Z29uIGNsYXNzPSJjbHMtNCIgcG9pbnRzPSI0Ni4yOCA3MC44OSAzNC40MSA3Mi4zNyA0MS42MyA4MS45MSA0Ni4yOCA3MC44OSIvPjwvZz48L3N2Zz4K',
791
+ id: 'cache',
792
+ name: 'Cache',
793
+ schema: '{\n "type" : "object",\n "id" : "urn:jsonschema:io:gravitee:resource:cache:configuration:CacheResourceConfiguration",\n "properties" : {\n "name" : {\n "title": "Cache name",\n "description": "The name of the cache.",\n "type" : "string",\n "default": "my-cache"\n },\n "timeToIdleSeconds" : {\n "title": "Time to idle (in seconds)",\n "type" : "integer",\n "description": "The maximum number of seconds an element can exist in the cache without being accessed. The element expires at this limit and will no longer be returned from the cache. The default value is 0, which means no timeToIdle (TTI) eviction takes place (infinite lifetime).",\n "default": 0,\n "minimum": 0\n },\n "timeToLiveSeconds" : {\n "title": "Time to live (in seconds)",\n "type" : "integer",\n "description": "The maximum number of seconds an element can exist in the cache regardless of use. The element expires at this limit and will no longer be returned from the cache. The default value is 0, which means no timeToLive (TTL) eviction takes place (infinite lifetime).",\n "default": 0,\n "minimum": 0\n },\n "maxEntriesLocalHeap" : {\n "title": "Max entries on heap",\n "description": "The maximum objects to be held in local heap memory (0 = no limit).",\n "type" : "integer",\n "default": 1000,\n "minimum": 0\n }\n },\n "required": [\n "name",\n "timeToIdleSeconds",\n "timeToLiveSeconds",\n "maxEntriesLocalHeap",\n "timeToLiveSeconds"\n ]\n}\n',
794
+ version: '1.6.1',
795
+ };
796
+ return Object.assign(Object.assign({}, base), attributes);
797
+ }
798
+
799
+ /*
800
+ * Copyright (C) 2022 The Gravitee team (http://gravitee.io)
801
+ *
802
+ * Licensed under the Apache License, Version 2.0 (the "License");
803
+ * you may not use this file except in compliance with the License.
804
+ * You may obtain a copy of the License at
805
+ *
806
+ * http://www.apache.org/licenses/LICENSE-2.0
807
+ *
808
+ * Unless required by applicable law or agreed to in writing, software
809
+ * distributed under the License is distributed on an "AS IS" BASIS,
810
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
811
+ * See the License for the specific language governing permissions and
812
+ * limitations under the License.
813
+ */
814
+
815
+ /*
816
+ * Copyright (C) 2015 The Gravitee team (http://gravitee.io)
817
+ *
818
+ * Licensed under the Apache License, Version 2.0 (the "License");
819
+ * you may not use this file except in compliance with the License.
820
+ * You may obtain a copy of the License at
821
+ *
822
+ * http://www.apache.org/licenses/LICENSE-2.0
823
+ *
824
+ * Unless required by applicable law or agreed to in writing, software
825
+ * distributed under the License is distributed on an "AS IS" BASIS,
826
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
827
+ * See the License for the specific language governing permissions and
828
+ * limitations under the License.
829
+ */
830
+ class ResourceService extends ResourceServiceAbstract {
831
+ list(_params) {
832
+ return of([fakeResourceListItem()]);
833
+ }
834
+ getDocumentation(_resourceId) {
835
+ return of(fakeResourceDocumentation());
836
+ }
837
+ }
838
+ ResourceService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: ResourceService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
839
+ ResourceService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: ResourceService });
840
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: ResourceService, decorators: [{
841
+ type: Injectable
842
+ }] });
843
+
844
+ function fakeGrammar(attributes) {
845
+ return Object.assign(Object.assign({}, base), attributes);
846
+ }
847
+ const base = {
848
+ request: {
849
+ content: {
850
+ _type: 'String',
851
+ },
852
+ contextPath: {
853
+ _type: 'String',
854
+ },
855
+ headers: {
856
+ _type: 'HttpHeaders',
857
+ },
858
+ id: {
859
+ _type: 'String',
860
+ },
861
+ localAddress: {
862
+ _type: 'String',
863
+ },
864
+ params: {
865
+ _type: 'MultiValueMap',
866
+ },
867
+ path: {
868
+ _type: 'String',
869
+ },
870
+ pathInfo: {
871
+ _type: 'String',
872
+ },
873
+ pathInfos: {
874
+ _type: 'String[]',
875
+ },
876
+ pathParams: {
877
+ _type: 'MultiValueMap',
878
+ },
879
+ paths: {
880
+ _type: 'String[]',
881
+ },
882
+ remoteAddress: {
883
+ _type: 'String',
884
+ },
885
+ scheme: {
886
+ _type: 'String',
887
+ },
888
+ ssl: {
889
+ client: {
890
+ attributes: {
891
+ _type: 'MultiValueMap',
892
+ },
893
+ businessCategory: {
894
+ _type: 'String',
895
+ },
896
+ c: {
897
+ _type: 'String',
898
+ },
899
+ cn: {
900
+ _type: 'String',
901
+ },
902
+ countryOfCitizenship: {
903
+ _type: 'String',
904
+ },
905
+ countryOfResidence: {
906
+ _type: 'String',
907
+ },
908
+ dateOfBirth: {
909
+ _type: 'String',
910
+ },
911
+ dc: {
912
+ _type: 'String',
913
+ },
914
+ defined: {
915
+ _type: 'boolean',
916
+ },
917
+ description: {
918
+ _type: 'String',
919
+ },
920
+ dmdName: {
921
+ _type: 'String',
922
+ },
923
+ dn: {
924
+ _type: 'String',
925
+ },
926
+ dnQualifier: {
927
+ _type: 'String',
928
+ },
929
+ e: {
930
+ _type: 'String',
931
+ },
932
+ emailAddress: {
933
+ _type: 'String',
934
+ },
935
+ gender: {
936
+ _type: 'String',
937
+ },
938
+ generation: {
939
+ _type: 'String',
940
+ },
941
+ givenname: {
942
+ _type: 'String',
943
+ },
944
+ initials: {
945
+ _type: 'String',
946
+ },
947
+ l: {
948
+ _type: 'String',
949
+ },
950
+ name: {
951
+ _type: 'String',
952
+ },
953
+ nameAtBirth: {
954
+ _type: 'String',
955
+ },
956
+ o: {
957
+ _type: 'String',
958
+ },
959
+ organizationIdentifier: {
960
+ _type: 'String',
961
+ },
962
+ ou: {
963
+ _type: 'String',
964
+ },
965
+ placeOfBirth: {
966
+ _type: 'String',
967
+ },
968
+ postalAddress: {
969
+ _type: 'String',
970
+ },
971
+ postalCode: {
972
+ _type: 'String',
973
+ },
974
+ pseudonym: {
975
+ _type: 'String',
976
+ },
977
+ role: {
978
+ _type: 'String',
979
+ },
980
+ serialnumber: {
981
+ _type: 'String',
982
+ },
983
+ st: {
984
+ _type: 'String',
985
+ },
986
+ street: {
987
+ _type: 'String',
988
+ },
989
+ surname: {
990
+ _type: 'String',
991
+ },
992
+ t: {
993
+ _type: 'String',
994
+ },
995
+ telephoneNumber: {
996
+ _type: 'String',
997
+ },
998
+ uid: {
999
+ _type: 'String',
1000
+ },
1001
+ uniqueIdentifier: {
1002
+ _type: 'String',
1003
+ },
1004
+ unstructuredAddress: {
1005
+ _type: 'String',
1006
+ },
1007
+ },
1008
+ clientHost: {
1009
+ _type: 'String',
1010
+ },
1011
+ clientPort: {
1012
+ _type: 'Integer',
1013
+ },
1014
+ server: {
1015
+ attributes: {
1016
+ _type: 'MultiValueMap',
1017
+ },
1018
+ businessCategory: {
1019
+ _type: 'String',
1020
+ },
1021
+ c: {
1022
+ _type: 'String',
1023
+ },
1024
+ cn: {
1025
+ _type: 'String',
1026
+ },
1027
+ countryOfCitizenship: {
1028
+ _type: 'String',
1029
+ },
1030
+ countryOfResidence: {
1031
+ _type: 'String',
1032
+ },
1033
+ dateOfBirth: {
1034
+ _type: 'String',
1035
+ },
1036
+ dc: {
1037
+ _type: 'String',
1038
+ },
1039
+ defined: {
1040
+ _type: 'boolean',
1041
+ },
1042
+ description: {
1043
+ _type: 'String',
1044
+ },
1045
+ dmdName: {
1046
+ _type: 'String',
1047
+ },
1048
+ dn: {
1049
+ _type: 'String',
1050
+ },
1051
+ dnQualifier: {
1052
+ _type: 'String',
1053
+ },
1054
+ e: {
1055
+ _type: 'String',
1056
+ },
1057
+ emailAddress: {
1058
+ _type: 'String',
1059
+ },
1060
+ gender: {
1061
+ _type: 'String',
1062
+ },
1063
+ generation: {
1064
+ _type: 'String',
1065
+ },
1066
+ givenname: {
1067
+ _type: 'String',
1068
+ },
1069
+ initials: {
1070
+ _type: 'String',
1071
+ },
1072
+ l: {
1073
+ _type: 'String',
1074
+ },
1075
+ name: {
1076
+ _type: 'String',
1077
+ },
1078
+ nameAtBirth: {
1079
+ _type: 'String',
1080
+ },
1081
+ o: {
1082
+ _type: 'String',
1083
+ },
1084
+ organizationIdentifier: {
1085
+ _type: 'String',
1086
+ },
1087
+ ou: {
1088
+ _type: 'String',
1089
+ },
1090
+ placeOfBirth: {
1091
+ _type: 'String',
1092
+ },
1093
+ postalAddress: {
1094
+ _type: 'String',
1095
+ },
1096
+ postalCode: {
1097
+ _type: 'String',
1098
+ },
1099
+ pseudonym: {
1100
+ _type: 'String',
1101
+ },
1102
+ role: {
1103
+ _type: 'String',
1104
+ },
1105
+ serialnumber: {
1106
+ _type: 'String',
1107
+ },
1108
+ st: {
1109
+ _type: 'String',
1110
+ },
1111
+ street: {
1112
+ _type: 'String',
1113
+ },
1114
+ surname: {
1115
+ _type: 'String',
1116
+ },
1117
+ t: {
1118
+ _type: 'String',
1119
+ },
1120
+ telephoneNumber: {
1121
+ _type: 'String',
1122
+ },
1123
+ uid: {
1124
+ _type: 'String',
1125
+ },
1126
+ uniqueIdentifier: {
1127
+ _type: 'String',
1128
+ },
1129
+ unstructuredAddress: {
1130
+ _type: 'String',
1131
+ },
1132
+ },
1133
+ },
1134
+ timestamp: {
1135
+ _type: 'long',
1136
+ },
1137
+ transactionId: {
1138
+ _type: 'String',
1139
+ },
1140
+ uri: {
1141
+ _type: 'String',
1142
+ },
1143
+ version: {
1144
+ _type: 'String',
1145
+ },
1146
+ },
1147
+ endpoints: {
1148
+ _type: 'String[]',
1149
+ },
1150
+ response: {
1151
+ headers: {
1152
+ _type: 'HttpHeaders',
1153
+ },
1154
+ content: {
1155
+ _type: 'String',
1156
+ },
1157
+ status: {
1158
+ _type: 'int',
1159
+ },
1160
+ },
1161
+ context: {
1162
+ attributes: {
1163
+ 'context-path': {
1164
+ _type: 'String',
1165
+ },
1166
+ application: {
1167
+ _type: 'String',
1168
+ },
1169
+ 'api-key': {
1170
+ _type: 'String',
1171
+ },
1172
+ 'user-id': {
1173
+ _type: 'String',
1174
+ },
1175
+ api: {
1176
+ _type: 'String',
1177
+ },
1178
+ plan: {
1179
+ _type: 'String',
1180
+ },
1181
+ 'resolved-path': {
1182
+ _type: 'String',
1183
+ },
1184
+ },
1185
+ },
1186
+ _enums: {
1187
+ HttpHeaders: [
1188
+ 'Accept',
1189
+ 'Accept-Charset',
1190
+ 'Accept-Encoding',
1191
+ 'Accept-Language',
1192
+ 'Accept-Ranges',
1193
+ 'Access-Control-Allow-Credentials',
1194
+ 'Access-Control-Allow-Headers',
1195
+ 'Access-Control-Allow-Methods',
1196
+ 'Access-Control-Allow-Origin',
1197
+ 'Access-Control-Expose-Headers',
1198
+ 'Access-Control-Max-Age',
1199
+ 'Access-Control-Request-Headers',
1200
+ 'Access-Control-Request-Method',
1201
+ 'Age',
1202
+ 'Allow',
1203
+ 'Authorization',
1204
+ 'Cache-Control',
1205
+ 'Connection',
1206
+ 'Content-Disposition',
1207
+ 'Content-Encoding',
1208
+ 'Content-ID',
1209
+ 'Content-Language',
1210
+ 'Content-Length',
1211
+ 'Content-Location',
1212
+ 'Content-MD5',
1213
+ 'Content-Range',
1214
+ 'Content-Type',
1215
+ 'Cookie',
1216
+ 'Date',
1217
+ 'ETag',
1218
+ 'Expires',
1219
+ 'Expect',
1220
+ 'Forwarded',
1221
+ 'From',
1222
+ 'Host',
1223
+ 'If-Match',
1224
+ 'If-Modified-Since',
1225
+ 'If-None-Match',
1226
+ 'If-Unmodified-Since',
1227
+ 'Keep-Alive',
1228
+ 'Last-Modified',
1229
+ 'Location',
1230
+ 'Link',
1231
+ 'Max-Forwards',
1232
+ 'MIME-Version',
1233
+ 'Origin',
1234
+ 'Pragma',
1235
+ 'Proxy-Authenticate',
1236
+ 'Proxy-Authorization',
1237
+ 'Proxy-Connection',
1238
+ 'Range',
1239
+ 'Referer',
1240
+ 'Retry-After',
1241
+ 'Server',
1242
+ 'Set-Cookie',
1243
+ 'Set-Cookie2',
1244
+ 'TE',
1245
+ 'Trailer',
1246
+ 'Transfer-Encoding',
1247
+ 'Upgrade',
1248
+ 'User-Agent',
1249
+ 'Vary',
1250
+ 'Via',
1251
+ 'Warning',
1252
+ 'WWW-Authenticate',
1253
+ 'X-Forwarded-For',
1254
+ 'X-Forwarded-Proto',
1255
+ 'X-Forwarded-Server',
1256
+ 'X-Forwarded-Host',
1257
+ 'X-Forwarded-Port',
1258
+ 'X-Forwarded-Prefix',
1259
+ ],
1260
+ },
1261
+ properties: {
1262
+ _type: 'String[]',
1263
+ },
1264
+ dictionaries: {
1265
+ _type: 'String[]',
1266
+ },
1267
+ _types: {
1268
+ MultiValueMap: {
1269
+ methods: [
1270
+ {
1271
+ name: 'containsKey',
1272
+ returnType: 'boolean',
1273
+ params: [
1274
+ {
1275
+ name: 'arg0',
1276
+ type: 'Object',
1277
+ },
1278
+ ],
1279
+ },
1280
+ {
1281
+ name: 'containsValue',
1282
+ returnType: 'boolean',
1283
+ params: [
1284
+ {
1285
+ name: 'arg0',
1286
+ type: 'Object',
1287
+ },
1288
+ ],
1289
+ },
1290
+ {
1291
+ name: 'entrySet',
1292
+ returnType: 'Set',
1293
+ },
1294
+ {
1295
+ name: 'get',
1296
+ returnType: 'Object',
1297
+ params: [
1298
+ {
1299
+ name: 'arg0',
1300
+ type: 'Object',
1301
+ },
1302
+ ],
1303
+ },
1304
+ {
1305
+ name: 'getOrDefault',
1306
+ returnType: 'Object',
1307
+ params: [
1308
+ {
1309
+ name: 'arg0',
1310
+ type: 'Object',
1311
+ },
1312
+ {
1313
+ name: 'arg1',
1314
+ type: 'Object',
1315
+ },
1316
+ ],
1317
+ },
1318
+ {
1319
+ name: 'isEmpty',
1320
+ returnType: 'boolean',
1321
+ },
1322
+ {
1323
+ name: 'keySet',
1324
+ returnType: 'Set',
1325
+ },
1326
+ {
1327
+ name: 'size',
1328
+ returnType: 'int',
1329
+ },
1330
+ {
1331
+ name: 'values',
1332
+ returnType: 'Collection',
1333
+ },
1334
+ ],
1335
+ },
1336
+ HttpHeaders: {
1337
+ methods: [
1338
+ {
1339
+ name: 'equals',
1340
+ returnType: 'boolean',
1341
+ params: [
1342
+ {
1343
+ name: 'arg0',
1344
+ type: 'Object',
1345
+ },
1346
+ ],
1347
+ },
1348
+ {
1349
+ name: 'hashCode',
1350
+ returnType: 'int',
1351
+ },
1352
+ {
1353
+ name: 'toString',
1354
+ returnType: 'String',
1355
+ },
1356
+ {
1357
+ name: 'containsKey',
1358
+ returnType: 'boolean',
1359
+ params: [
1360
+ {
1361
+ name: 'arg0',
1362
+ type: 'Object',
1363
+ },
1364
+ ],
1365
+ },
1366
+ {
1367
+ name: 'containsValue',
1368
+ returnType: 'boolean',
1369
+ params: [
1370
+ {
1371
+ name: 'arg0',
1372
+ type: 'Object',
1373
+ },
1374
+ ],
1375
+ },
1376
+ {
1377
+ name: 'entrySet',
1378
+ returnType: 'Set',
1379
+ },
1380
+ {
1381
+ name: 'get',
1382
+ returnType: 'Object',
1383
+ params: [
1384
+ {
1385
+ name: 'arg0',
1386
+ type: 'Object',
1387
+ },
1388
+ ],
1389
+ },
1390
+ {
1391
+ name: 'getOrDefault',
1392
+ returnType: 'Object',
1393
+ params: [
1394
+ {
1395
+ name: 'arg0',
1396
+ type: 'Object',
1397
+ },
1398
+ {
1399
+ name: 'arg1',
1400
+ type: 'Object',
1401
+ },
1402
+ ],
1403
+ },
1404
+ {
1405
+ name: 'isEmpty',
1406
+ returnType: 'boolean',
1407
+ },
1408
+ {
1409
+ name: 'keySet',
1410
+ returnType: 'Set',
1411
+ },
1412
+ {
1413
+ name: 'size',
1414
+ returnType: 'int',
1415
+ },
1416
+ {
1417
+ name: 'values',
1418
+ returnType: 'Collection',
1419
+ },
1420
+ ],
1421
+ },
1422
+ Map: {
1423
+ methods: [
1424
+ {
1425
+ name: 'containsKey',
1426
+ returnType: 'boolean',
1427
+ params: [
1428
+ {
1429
+ name: 'arg0',
1430
+ type: 'Object',
1431
+ },
1432
+ ],
1433
+ },
1434
+ {
1435
+ name: 'containsValue',
1436
+ returnType: 'boolean',
1437
+ params: [
1438
+ {
1439
+ name: 'arg0',
1440
+ type: 'Object',
1441
+ },
1442
+ ],
1443
+ },
1444
+ {
1445
+ name: 'entrySet',
1446
+ returnType: 'Set',
1447
+ },
1448
+ {
1449
+ name: 'get',
1450
+ returnType: 'Object',
1451
+ params: [
1452
+ {
1453
+ name: 'arg0',
1454
+ type: 'Object',
1455
+ },
1456
+ ],
1457
+ },
1458
+ {
1459
+ name: 'getOrDefault',
1460
+ returnType: 'Object',
1461
+ params: [
1462
+ {
1463
+ name: 'arg0',
1464
+ type: 'Object',
1465
+ },
1466
+ {
1467
+ name: 'arg1',
1468
+ type: 'Object',
1469
+ },
1470
+ ],
1471
+ },
1472
+ {
1473
+ name: 'isEmpty',
1474
+ returnType: 'boolean',
1475
+ },
1476
+ {
1477
+ name: 'keySet',
1478
+ returnType: 'Set',
1479
+ },
1480
+ {
1481
+ name: 'size',
1482
+ returnType: 'int',
1483
+ },
1484
+ {
1485
+ name: 'values',
1486
+ returnType: 'Collection',
1487
+ },
1488
+ ],
1489
+ },
1490
+ Boolean: {
1491
+ methods: [
1492
+ {
1493
+ name: 'equals',
1494
+ returnType: 'boolean',
1495
+ params: [
1496
+ {
1497
+ name: 'arg0',
1498
+ type: 'Object',
1499
+ },
1500
+ ],
1501
+ },
1502
+ {
1503
+ name: 'hashCode',
1504
+ returnType: 'int',
1505
+ },
1506
+ {
1507
+ name: 'toString',
1508
+ returnType: 'String',
1509
+ },
1510
+ ],
1511
+ },
1512
+ Integer: {
1513
+ methods: [
1514
+ {
1515
+ name: 'numberOfLeadingZeros',
1516
+ returnType: 'int',
1517
+ params: [
1518
+ {
1519
+ name: 'arg0',
1520
+ type: 'int',
1521
+ },
1522
+ ],
1523
+ },
1524
+ {
1525
+ name: 'numberOfTrailingZeros',
1526
+ returnType: 'int',
1527
+ params: [
1528
+ {
1529
+ name: 'arg0',
1530
+ type: 'int',
1531
+ },
1532
+ ],
1533
+ },
1534
+ {
1535
+ name: 'bitCount',
1536
+ returnType: 'int',
1537
+ params: [
1538
+ {
1539
+ name: 'arg0',
1540
+ type: 'int',
1541
+ },
1542
+ ],
1543
+ },
1544
+ {
1545
+ name: 'equals',
1546
+ returnType: 'boolean',
1547
+ params: [
1548
+ {
1549
+ name: 'arg0',
1550
+ type: 'Object',
1551
+ },
1552
+ ],
1553
+ },
1554
+ {
1555
+ name: 'toString',
1556
+ returnType: 'String',
1557
+ params: [
1558
+ {
1559
+ name: 'arg0',
1560
+ type: 'int',
1561
+ },
1562
+ ],
1563
+ },
1564
+ {
1565
+ name: 'toString',
1566
+ returnType: 'String',
1567
+ params: [
1568
+ {
1569
+ name: 'arg0',
1570
+ type: 'int',
1571
+ },
1572
+ {
1573
+ name: 'arg1',
1574
+ type: 'int',
1575
+ },
1576
+ ],
1577
+ },
1578
+ {
1579
+ name: 'toString',
1580
+ returnType: 'String',
1581
+ },
1582
+ {
1583
+ name: 'hashCode',
1584
+ returnType: 'int',
1585
+ params: [
1586
+ {
1587
+ name: 'arg0',
1588
+ type: 'int',
1589
+ },
1590
+ ],
1591
+ },
1592
+ {
1593
+ name: 'hashCode',
1594
+ returnType: 'int',
1595
+ },
1596
+ {
1597
+ name: 'min',
1598
+ returnType: 'int',
1599
+ params: [
1600
+ {
1601
+ name: 'arg0',
1602
+ type: 'int',
1603
+ },
1604
+ {
1605
+ name: 'arg1',
1606
+ type: 'int',
1607
+ },
1608
+ ],
1609
+ },
1610
+ {
1611
+ name: 'max',
1612
+ returnType: 'int',
1613
+ params: [
1614
+ {
1615
+ name: 'arg0',
1616
+ type: 'int',
1617
+ },
1618
+ {
1619
+ name: 'arg1',
1620
+ type: 'int',
1621
+ },
1622
+ ],
1623
+ },
1624
+ {
1625
+ name: 'signum',
1626
+ returnType: 'int',
1627
+ params: [
1628
+ {
1629
+ name: 'arg0',
1630
+ type: 'int',
1631
+ },
1632
+ ],
1633
+ },
1634
+ {
1635
+ name: 'reverseBytes',
1636
+ returnType: 'int',
1637
+ params: [
1638
+ {
1639
+ name: 'arg0',
1640
+ type: 'int',
1641
+ },
1642
+ ],
1643
+ },
1644
+ {
1645
+ name: 'compareTo',
1646
+ returnType: 'int',
1647
+ params: [
1648
+ {
1649
+ name: 'arg0',
1650
+ type: 'Object',
1651
+ },
1652
+ ],
1653
+ },
1654
+ {
1655
+ name: 'compareTo',
1656
+ returnType: 'int',
1657
+ params: [
1658
+ {
1659
+ name: 'arg0',
1660
+ type: 'Integer',
1661
+ },
1662
+ ],
1663
+ },
1664
+ {
1665
+ name: 'byteValue',
1666
+ returnType: 'byte',
1667
+ },
1668
+ {
1669
+ name: 'shortValue',
1670
+ returnType: 'short',
1671
+ },
1672
+ {
1673
+ name: 'intValue',
1674
+ returnType: 'int',
1675
+ },
1676
+ {
1677
+ name: 'longValue',
1678
+ returnType: 'long',
1679
+ },
1680
+ {
1681
+ name: 'floatValue',
1682
+ returnType: 'float',
1683
+ },
1684
+ {
1685
+ name: 'doubleValue',
1686
+ returnType: 'double',
1687
+ },
1688
+ {
1689
+ name: 'valueOf',
1690
+ returnType: 'Integer',
1691
+ params: [
1692
+ {
1693
+ name: 'arg0',
1694
+ type: 'String',
1695
+ },
1696
+ ],
1697
+ },
1698
+ {
1699
+ name: 'valueOf',
1700
+ returnType: 'Integer',
1701
+ params: [
1702
+ {
1703
+ name: 'arg0',
1704
+ type: 'int',
1705
+ },
1706
+ ],
1707
+ },
1708
+ {
1709
+ name: 'valueOf',
1710
+ returnType: 'Integer',
1711
+ params: [
1712
+ {
1713
+ name: 'arg0',
1714
+ type: 'String',
1715
+ },
1716
+ {
1717
+ name: 'arg1',
1718
+ type: 'int',
1719
+ },
1720
+ ],
1721
+ },
1722
+ {
1723
+ name: 'toHexString',
1724
+ returnType: 'String',
1725
+ params: [
1726
+ {
1727
+ name: 'arg0',
1728
+ type: 'int',
1729
+ },
1730
+ ],
1731
+ },
1732
+ {
1733
+ name: 'decode',
1734
+ returnType: 'Integer',
1735
+ params: [
1736
+ {
1737
+ name: 'arg0',
1738
+ type: 'String',
1739
+ },
1740
+ ],
1741
+ },
1742
+ {
1743
+ name: 'compare',
1744
+ returnType: 'int',
1745
+ params: [
1746
+ {
1747
+ name: 'arg0',
1748
+ type: 'int',
1749
+ },
1750
+ {
1751
+ name: 'arg1',
1752
+ type: 'int',
1753
+ },
1754
+ ],
1755
+ },
1756
+ {
1757
+ name: 'reverse',
1758
+ returnType: 'int',
1759
+ params: [
1760
+ {
1761
+ name: 'arg0',
1762
+ type: 'int',
1763
+ },
1764
+ ],
1765
+ },
1766
+ {
1767
+ name: 'toUnsignedLong',
1768
+ returnType: 'long',
1769
+ params: [
1770
+ {
1771
+ name: 'arg0',
1772
+ type: 'int',
1773
+ },
1774
+ ],
1775
+ },
1776
+ {
1777
+ name: 'parseInt',
1778
+ returnType: 'int',
1779
+ params: [
1780
+ {
1781
+ name: 'arg0',
1782
+ type: 'String',
1783
+ },
1784
+ {
1785
+ name: 'arg1',
1786
+ type: 'int',
1787
+ },
1788
+ ],
1789
+ },
1790
+ {
1791
+ name: 'parseInt',
1792
+ returnType: 'int',
1793
+ params: [
1794
+ {
1795
+ name: 'arg0',
1796
+ type: 'String',
1797
+ },
1798
+ ],
1799
+ },
1800
+ {
1801
+ name: 'parseInt',
1802
+ returnType: 'int',
1803
+ params: [
1804
+ {
1805
+ name: 'arg0',
1806
+ type: 'CharSequence',
1807
+ },
1808
+ {
1809
+ name: 'arg1',
1810
+ type: 'int',
1811
+ },
1812
+ {
1813
+ name: 'arg2',
1814
+ type: 'int',
1815
+ },
1816
+ {
1817
+ name: 'arg3',
1818
+ type: 'int',
1819
+ },
1820
+ ],
1821
+ },
1822
+ {
1823
+ name: 'sum',
1824
+ returnType: 'int',
1825
+ params: [
1826
+ {
1827
+ name: 'arg0',
1828
+ type: 'int',
1829
+ },
1830
+ {
1831
+ name: 'arg1',
1832
+ type: 'int',
1833
+ },
1834
+ ],
1835
+ },
1836
+ {
1837
+ name: 'compareUnsigned',
1838
+ returnType: 'int',
1839
+ params: [
1840
+ {
1841
+ name: 'arg0',
1842
+ type: 'int',
1843
+ },
1844
+ {
1845
+ name: 'arg1',
1846
+ type: 'int',
1847
+ },
1848
+ ],
1849
+ },
1850
+ {
1851
+ name: 'toUnsignedString',
1852
+ returnType: 'String',
1853
+ params: [
1854
+ {
1855
+ name: 'arg0',
1856
+ type: 'int',
1857
+ },
1858
+ {
1859
+ name: 'arg1',
1860
+ type: 'int',
1861
+ },
1862
+ ],
1863
+ },
1864
+ {
1865
+ name: 'toUnsignedString',
1866
+ returnType: 'String',
1867
+ params: [
1868
+ {
1869
+ name: 'arg0',
1870
+ type: 'int',
1871
+ },
1872
+ ],
1873
+ },
1874
+ {
1875
+ name: 'toOctalString',
1876
+ returnType: 'String',
1877
+ params: [
1878
+ {
1879
+ name: 'arg0',
1880
+ type: 'int',
1881
+ },
1882
+ ],
1883
+ },
1884
+ {
1885
+ name: 'toBinaryString',
1886
+ returnType: 'String',
1887
+ params: [
1888
+ {
1889
+ name: 'arg0',
1890
+ type: 'int',
1891
+ },
1892
+ ],
1893
+ },
1894
+ {
1895
+ name: 'parseUnsignedInt',
1896
+ returnType: 'int',
1897
+ params: [
1898
+ {
1899
+ name: 'arg0',
1900
+ type: 'String',
1901
+ },
1902
+ {
1903
+ name: 'arg1',
1904
+ type: 'int',
1905
+ },
1906
+ ],
1907
+ },
1908
+ {
1909
+ name: 'parseUnsignedInt',
1910
+ returnType: 'int',
1911
+ params: [
1912
+ {
1913
+ name: 'arg0',
1914
+ type: 'String',
1915
+ },
1916
+ ],
1917
+ },
1918
+ {
1919
+ name: 'parseUnsignedInt',
1920
+ returnType: 'int',
1921
+ params: [
1922
+ {
1923
+ name: 'arg0',
1924
+ type: 'CharSequence',
1925
+ },
1926
+ {
1927
+ name: 'arg1',
1928
+ type: 'int',
1929
+ },
1930
+ {
1931
+ name: 'arg2',
1932
+ type: 'int',
1933
+ },
1934
+ {
1935
+ name: 'arg3',
1936
+ type: 'int',
1937
+ },
1938
+ ],
1939
+ },
1940
+ {
1941
+ name: 'getInteger',
1942
+ returnType: 'Integer',
1943
+ params: [
1944
+ {
1945
+ name: 'arg0',
1946
+ type: 'String',
1947
+ },
1948
+ {
1949
+ name: 'arg1',
1950
+ type: 'int',
1951
+ },
1952
+ ],
1953
+ },
1954
+ {
1955
+ name: 'getInteger',
1956
+ returnType: 'Integer',
1957
+ params: [
1958
+ {
1959
+ name: 'arg0',
1960
+ type: 'String',
1961
+ },
1962
+ ],
1963
+ },
1964
+ {
1965
+ name: 'getInteger',
1966
+ returnType: 'Integer',
1967
+ params: [
1968
+ {
1969
+ name: 'arg0',
1970
+ type: 'String',
1971
+ },
1972
+ {
1973
+ name: 'arg1',
1974
+ type: 'Integer',
1975
+ },
1976
+ ],
1977
+ },
1978
+ {
1979
+ name: 'divideUnsigned',
1980
+ returnType: 'int',
1981
+ params: [
1982
+ {
1983
+ name: 'arg0',
1984
+ type: 'int',
1985
+ },
1986
+ {
1987
+ name: 'arg1',
1988
+ type: 'int',
1989
+ },
1990
+ ],
1991
+ },
1992
+ {
1993
+ name: 'remainderUnsigned',
1994
+ returnType: 'int',
1995
+ params: [
1996
+ {
1997
+ name: 'arg0',
1998
+ type: 'int',
1999
+ },
2000
+ {
2001
+ name: 'arg1',
2002
+ type: 'int',
2003
+ },
2004
+ ],
2005
+ },
2006
+ {
2007
+ name: 'highestOneBit',
2008
+ returnType: 'int',
2009
+ params: [
2010
+ {
2011
+ name: 'arg0',
2012
+ type: 'int',
2013
+ },
2014
+ ],
2015
+ },
2016
+ {
2017
+ name: 'lowestOneBit',
2018
+ returnType: 'int',
2019
+ params: [
2020
+ {
2021
+ name: 'arg0',
2022
+ type: 'int',
2023
+ },
2024
+ ],
2025
+ },
2026
+ {
2027
+ name: 'rotateLeft',
2028
+ returnType: 'int',
2029
+ params: [
2030
+ {
2031
+ name: 'arg0',
2032
+ type: 'int',
2033
+ },
2034
+ {
2035
+ name: 'arg1',
2036
+ type: 'int',
2037
+ },
2038
+ ],
2039
+ },
2040
+ {
2041
+ name: 'rotateRight',
2042
+ returnType: 'int',
2043
+ params: [
2044
+ {
2045
+ name: 'arg0',
2046
+ type: 'int',
2047
+ },
2048
+ {
2049
+ name: 'arg1',
2050
+ type: 'int',
2051
+ },
2052
+ ],
2053
+ },
2054
+ {
2055
+ name: 'equals',
2056
+ returnType: 'boolean',
2057
+ params: [
2058
+ {
2059
+ name: 'arg0',
2060
+ type: 'Object',
2061
+ },
2062
+ ],
2063
+ },
2064
+ {
2065
+ name: 'hashCode',
2066
+ returnType: 'int',
2067
+ },
2068
+ {
2069
+ name: 'toString',
2070
+ returnType: 'String',
2071
+ },
2072
+ ],
2073
+ },
2074
+ Long: {
2075
+ methods: [
2076
+ {
2077
+ name: 'numberOfLeadingZeros',
2078
+ returnType: 'int',
2079
+ params: [
2080
+ {
2081
+ name: 'arg0',
2082
+ type: 'long',
2083
+ },
2084
+ ],
2085
+ },
2086
+ {
2087
+ name: 'numberOfTrailingZeros',
2088
+ returnType: 'int',
2089
+ params: [
2090
+ {
2091
+ name: 'arg0',
2092
+ type: 'long',
2093
+ },
2094
+ ],
2095
+ },
2096
+ {
2097
+ name: 'bitCount',
2098
+ returnType: 'int',
2099
+ params: [
2100
+ {
2101
+ name: 'arg0',
2102
+ type: 'long',
2103
+ },
2104
+ ],
2105
+ },
2106
+ {
2107
+ name: 'equals',
2108
+ returnType: 'boolean',
2109
+ params: [
2110
+ {
2111
+ name: 'arg0',
2112
+ type: 'Object',
2113
+ },
2114
+ ],
2115
+ },
2116
+ {
2117
+ name: 'toString',
2118
+ returnType: 'String',
2119
+ params: [
2120
+ {
2121
+ name: 'arg0',
2122
+ type: 'long',
2123
+ },
2124
+ ],
2125
+ },
2126
+ {
2127
+ name: 'toString',
2128
+ returnType: 'String',
2129
+ params: [
2130
+ {
2131
+ name: 'arg0',
2132
+ type: 'long',
2133
+ },
2134
+ {
2135
+ name: 'arg1',
2136
+ type: 'int',
2137
+ },
2138
+ ],
2139
+ },
2140
+ {
2141
+ name: 'toString',
2142
+ returnType: 'String',
2143
+ },
2144
+ {
2145
+ name: 'hashCode',
2146
+ returnType: 'int',
2147
+ params: [
2148
+ {
2149
+ name: 'arg0',
2150
+ type: 'long',
2151
+ },
2152
+ ],
2153
+ },
2154
+ {
2155
+ name: 'hashCode',
2156
+ returnType: 'int',
2157
+ },
2158
+ {
2159
+ name: 'min',
2160
+ returnType: 'long',
2161
+ params: [
2162
+ {
2163
+ name: 'arg0',
2164
+ type: 'long',
2165
+ },
2166
+ {
2167
+ name: 'arg1',
2168
+ type: 'long',
2169
+ },
2170
+ ],
2171
+ },
2172
+ {
2173
+ name: 'max',
2174
+ returnType: 'long',
2175
+ params: [
2176
+ {
2177
+ name: 'arg0',
2178
+ type: 'long',
2179
+ },
2180
+ {
2181
+ name: 'arg1',
2182
+ type: 'long',
2183
+ },
2184
+ ],
2185
+ },
2186
+ {
2187
+ name: 'signum',
2188
+ returnType: 'int',
2189
+ params: [
2190
+ {
2191
+ name: 'arg0',
2192
+ type: 'long',
2193
+ },
2194
+ ],
2195
+ },
2196
+ {
2197
+ name: 'reverseBytes',
2198
+ returnType: 'long',
2199
+ params: [
2200
+ {
2201
+ name: 'arg0',
2202
+ type: 'long',
2203
+ },
2204
+ ],
2205
+ },
2206
+ {
2207
+ name: 'compareTo',
2208
+ returnType: 'int',
2209
+ params: [
2210
+ {
2211
+ name: 'arg0',
2212
+ type: 'Object',
2213
+ },
2214
+ ],
2215
+ },
2216
+ {
2217
+ name: 'compareTo',
2218
+ returnType: 'int',
2219
+ params: [
2220
+ {
2221
+ name: 'arg0',
2222
+ type: 'Long',
2223
+ },
2224
+ ],
2225
+ },
2226
+ {
2227
+ name: 'getLong',
2228
+ returnType: 'Long',
2229
+ params: [
2230
+ {
2231
+ name: 'arg0',
2232
+ type: 'String',
2233
+ },
2234
+ ],
2235
+ },
2236
+ {
2237
+ name: 'getLong',
2238
+ returnType: 'Long',
2239
+ params: [
2240
+ {
2241
+ name: 'arg0',
2242
+ type: 'String',
2243
+ },
2244
+ {
2245
+ name: 'arg1',
2246
+ type: 'long',
2247
+ },
2248
+ ],
2249
+ },
2250
+ {
2251
+ name: 'getLong',
2252
+ returnType: 'Long',
2253
+ params: [
2254
+ {
2255
+ name: 'arg0',
2256
+ type: 'String',
2257
+ },
2258
+ {
2259
+ name: 'arg1',
2260
+ type: 'Long',
2261
+ },
2262
+ ],
2263
+ },
2264
+ {
2265
+ name: 'byteValue',
2266
+ returnType: 'byte',
2267
+ },
2268
+ {
2269
+ name: 'shortValue',
2270
+ returnType: 'short',
2271
+ },
2272
+ {
2273
+ name: 'intValue',
2274
+ returnType: 'int',
2275
+ },
2276
+ {
2277
+ name: 'longValue',
2278
+ returnType: 'long',
2279
+ },
2280
+ {
2281
+ name: 'floatValue',
2282
+ returnType: 'float',
2283
+ },
2284
+ {
2285
+ name: 'doubleValue',
2286
+ returnType: 'double',
2287
+ },
2288
+ {
2289
+ name: 'valueOf',
2290
+ returnType: 'Long',
2291
+ params: [
2292
+ {
2293
+ name: 'arg0',
2294
+ type: 'long',
2295
+ },
2296
+ ],
2297
+ },
2298
+ {
2299
+ name: 'valueOf',
2300
+ returnType: 'Long',
2301
+ params: [
2302
+ {
2303
+ name: 'arg0',
2304
+ type: 'String',
2305
+ },
2306
+ {
2307
+ name: 'arg1',
2308
+ type: 'int',
2309
+ },
2310
+ ],
2311
+ },
2312
+ {
2313
+ name: 'valueOf',
2314
+ returnType: 'Long',
2315
+ params: [
2316
+ {
2317
+ name: 'arg0',
2318
+ type: 'String',
2319
+ },
2320
+ ],
2321
+ },
2322
+ {
2323
+ name: 'toHexString',
2324
+ returnType: 'String',
2325
+ params: [
2326
+ {
2327
+ name: 'arg0',
2328
+ type: 'long',
2329
+ },
2330
+ ],
2331
+ },
2332
+ {
2333
+ name: 'decode',
2334
+ returnType: 'Long',
2335
+ params: [
2336
+ {
2337
+ name: 'arg0',
2338
+ type: 'String',
2339
+ },
2340
+ ],
2341
+ },
2342
+ {
2343
+ name: 'compare',
2344
+ returnType: 'int',
2345
+ params: [
2346
+ {
2347
+ name: 'arg0',
2348
+ type: 'long',
2349
+ },
2350
+ {
2351
+ name: 'arg1',
2352
+ type: 'long',
2353
+ },
2354
+ ],
2355
+ },
2356
+ {
2357
+ name: 'reverse',
2358
+ returnType: 'long',
2359
+ params: [
2360
+ {
2361
+ name: 'arg0',
2362
+ type: 'long',
2363
+ },
2364
+ ],
2365
+ },
2366
+ {
2367
+ name: 'sum',
2368
+ returnType: 'long',
2369
+ params: [
2370
+ {
2371
+ name: 'arg0',
2372
+ type: 'long',
2373
+ },
2374
+ {
2375
+ name: 'arg1',
2376
+ type: 'long',
2377
+ },
2378
+ ],
2379
+ },
2380
+ {
2381
+ name: 'compareUnsigned',
2382
+ returnType: 'int',
2383
+ params: [
2384
+ {
2385
+ name: 'arg0',
2386
+ type: 'long',
2387
+ },
2388
+ {
2389
+ name: 'arg1',
2390
+ type: 'long',
2391
+ },
2392
+ ],
2393
+ },
2394
+ {
2395
+ name: 'toUnsignedString',
2396
+ returnType: 'String',
2397
+ params: [
2398
+ {
2399
+ name: 'arg0',
2400
+ type: 'long',
2401
+ },
2402
+ {
2403
+ name: 'arg1',
2404
+ type: 'int',
2405
+ },
2406
+ ],
2407
+ },
2408
+ {
2409
+ name: 'toUnsignedString',
2410
+ returnType: 'String',
2411
+ params: [
2412
+ {
2413
+ name: 'arg0',
2414
+ type: 'long',
2415
+ },
2416
+ ],
2417
+ },
2418
+ {
2419
+ name: 'toOctalString',
2420
+ returnType: 'String',
2421
+ params: [
2422
+ {
2423
+ name: 'arg0',
2424
+ type: 'long',
2425
+ },
2426
+ ],
2427
+ },
2428
+ {
2429
+ name: 'toBinaryString',
2430
+ returnType: 'String',
2431
+ params: [
2432
+ {
2433
+ name: 'arg0',
2434
+ type: 'long',
2435
+ },
2436
+ ],
2437
+ },
2438
+ {
2439
+ name: 'parseLong',
2440
+ returnType: 'long',
2441
+ params: [
2442
+ {
2443
+ name: 'arg0',
2444
+ type: 'String',
2445
+ },
2446
+ {
2447
+ name: 'arg1',
2448
+ type: 'int',
2449
+ },
2450
+ ],
2451
+ },
2452
+ {
2453
+ name: 'parseLong',
2454
+ returnType: 'long',
2455
+ params: [
2456
+ {
2457
+ name: 'arg0',
2458
+ type: 'CharSequence',
2459
+ },
2460
+ {
2461
+ name: 'arg1',
2462
+ type: 'int',
2463
+ },
2464
+ {
2465
+ name: 'arg2',
2466
+ type: 'int',
2467
+ },
2468
+ {
2469
+ name: 'arg3',
2470
+ type: 'int',
2471
+ },
2472
+ ],
2473
+ },
2474
+ {
2475
+ name: 'parseLong',
2476
+ returnType: 'long',
2477
+ params: [
2478
+ {
2479
+ name: 'arg0',
2480
+ type: 'String',
2481
+ },
2482
+ ],
2483
+ },
2484
+ {
2485
+ name: 'divideUnsigned',
2486
+ returnType: 'long',
2487
+ params: [
2488
+ {
2489
+ name: 'arg0',
2490
+ type: 'long',
2491
+ },
2492
+ {
2493
+ name: 'arg1',
2494
+ type: 'long',
2495
+ },
2496
+ ],
2497
+ },
2498
+ {
2499
+ name: 'remainderUnsigned',
2500
+ returnType: 'long',
2501
+ params: [
2502
+ {
2503
+ name: 'arg0',
2504
+ type: 'long',
2505
+ },
2506
+ {
2507
+ name: 'arg1',
2508
+ type: 'long',
2509
+ },
2510
+ ],
2511
+ },
2512
+ {
2513
+ name: 'highestOneBit',
2514
+ returnType: 'long',
2515
+ params: [
2516
+ {
2517
+ name: 'arg0',
2518
+ type: 'long',
2519
+ },
2520
+ ],
2521
+ },
2522
+ {
2523
+ name: 'lowestOneBit',
2524
+ returnType: 'long',
2525
+ params: [
2526
+ {
2527
+ name: 'arg0',
2528
+ type: 'long',
2529
+ },
2530
+ ],
2531
+ },
2532
+ {
2533
+ name: 'rotateLeft',
2534
+ returnType: 'long',
2535
+ params: [
2536
+ {
2537
+ name: 'arg0',
2538
+ type: 'long',
2539
+ },
2540
+ {
2541
+ name: 'arg1',
2542
+ type: 'int',
2543
+ },
2544
+ ],
2545
+ },
2546
+ {
2547
+ name: 'rotateRight',
2548
+ returnType: 'long',
2549
+ params: [
2550
+ {
2551
+ name: 'arg0',
2552
+ type: 'long',
2553
+ },
2554
+ {
2555
+ name: 'arg1',
2556
+ type: 'int',
2557
+ },
2558
+ ],
2559
+ },
2560
+ {
2561
+ name: 'parseUnsignedLong',
2562
+ returnType: 'long',
2563
+ params: [
2564
+ {
2565
+ name: 'arg0',
2566
+ type: 'String',
2567
+ },
2568
+ ],
2569
+ },
2570
+ {
2571
+ name: 'parseUnsignedLong',
2572
+ returnType: 'long',
2573
+ params: [
2574
+ {
2575
+ name: 'arg0',
2576
+ type: 'CharSequence',
2577
+ },
2578
+ {
2579
+ name: 'arg1',
2580
+ type: 'int',
2581
+ },
2582
+ {
2583
+ name: 'arg2',
2584
+ type: 'int',
2585
+ },
2586
+ {
2587
+ name: 'arg3',
2588
+ type: 'int',
2589
+ },
2590
+ ],
2591
+ },
2592
+ {
2593
+ name: 'parseUnsignedLong',
2594
+ returnType: 'long',
2595
+ params: [
2596
+ {
2597
+ name: 'arg0',
2598
+ type: 'String',
2599
+ },
2600
+ {
2601
+ name: 'arg1',
2602
+ type: 'int',
2603
+ },
2604
+ ],
2605
+ },
2606
+ {
2607
+ name: 'equals',
2608
+ returnType: 'boolean',
2609
+ params: [
2610
+ {
2611
+ name: 'arg0',
2612
+ type: 'Object',
2613
+ },
2614
+ ],
2615
+ },
2616
+ {
2617
+ name: 'hashCode',
2618
+ returnType: 'int',
2619
+ },
2620
+ {
2621
+ name: 'toString',
2622
+ returnType: 'String',
2623
+ },
2624
+ ],
2625
+ },
2626
+ Math: {
2627
+ methods: [
2628
+ {
2629
+ name: 'abs',
2630
+ returnType: 'long',
2631
+ params: [
2632
+ {
2633
+ name: 'arg0',
2634
+ type: 'long',
2635
+ },
2636
+ ],
2637
+ },
2638
+ {
2639
+ name: 'abs',
2640
+ returnType: 'double',
2641
+ params: [
2642
+ {
2643
+ name: 'arg0',
2644
+ type: 'double',
2645
+ },
2646
+ ],
2647
+ },
2648
+ {
2649
+ name: 'abs',
2650
+ returnType: 'int',
2651
+ params: [
2652
+ {
2653
+ name: 'arg0',
2654
+ type: 'int',
2655
+ },
2656
+ ],
2657
+ },
2658
+ {
2659
+ name: 'abs',
2660
+ returnType: 'float',
2661
+ params: [
2662
+ {
2663
+ name: 'arg0',
2664
+ type: 'float',
2665
+ },
2666
+ ],
2667
+ },
2668
+ {
2669
+ name: 'sin',
2670
+ returnType: 'double',
2671
+ params: [
2672
+ {
2673
+ name: 'arg0',
2674
+ type: 'double',
2675
+ },
2676
+ ],
2677
+ },
2678
+ {
2679
+ name: 'cos',
2680
+ returnType: 'double',
2681
+ params: [
2682
+ {
2683
+ name: 'arg0',
2684
+ type: 'double',
2685
+ },
2686
+ ],
2687
+ },
2688
+ {
2689
+ name: 'tan',
2690
+ returnType: 'double',
2691
+ params: [
2692
+ {
2693
+ name: 'arg0',
2694
+ type: 'double',
2695
+ },
2696
+ ],
2697
+ },
2698
+ {
2699
+ name: 'atan2',
2700
+ returnType: 'double',
2701
+ params: [
2702
+ {
2703
+ name: 'arg0',
2704
+ type: 'double',
2705
+ },
2706
+ {
2707
+ name: 'arg1',
2708
+ type: 'double',
2709
+ },
2710
+ ],
2711
+ },
2712
+ {
2713
+ name: 'sqrt',
2714
+ returnType: 'double',
2715
+ params: [
2716
+ {
2717
+ name: 'arg0',
2718
+ type: 'double',
2719
+ },
2720
+ ],
2721
+ },
2722
+ {
2723
+ name: 'log',
2724
+ returnType: 'double',
2725
+ params: [
2726
+ {
2727
+ name: 'arg0',
2728
+ type: 'double',
2729
+ },
2730
+ ],
2731
+ },
2732
+ {
2733
+ name: 'log10',
2734
+ returnType: 'double',
2735
+ params: [
2736
+ {
2737
+ name: 'arg0',
2738
+ type: 'double',
2739
+ },
2740
+ ],
2741
+ },
2742
+ {
2743
+ name: 'pow',
2744
+ returnType: 'double',
2745
+ params: [
2746
+ {
2747
+ name: 'arg0',
2748
+ type: 'double',
2749
+ },
2750
+ {
2751
+ name: 'arg1',
2752
+ type: 'double',
2753
+ },
2754
+ ],
2755
+ },
2756
+ {
2757
+ name: 'exp',
2758
+ returnType: 'double',
2759
+ params: [
2760
+ {
2761
+ name: 'arg0',
2762
+ type: 'double',
2763
+ },
2764
+ ],
2765
+ },
2766
+ {
2767
+ name: 'min',
2768
+ returnType: 'long',
2769
+ params: [
2770
+ {
2771
+ name: 'arg0',
2772
+ type: 'long',
2773
+ },
2774
+ {
2775
+ name: 'arg1',
2776
+ type: 'long',
2777
+ },
2778
+ ],
2779
+ },
2780
+ {
2781
+ name: 'min',
2782
+ returnType: 'float',
2783
+ params: [
2784
+ {
2785
+ name: 'arg0',
2786
+ type: 'float',
2787
+ },
2788
+ {
2789
+ name: 'arg1',
2790
+ type: 'float',
2791
+ },
2792
+ ],
2793
+ },
2794
+ {
2795
+ name: 'min',
2796
+ returnType: 'double',
2797
+ params: [
2798
+ {
2799
+ name: 'arg0',
2800
+ type: 'double',
2801
+ },
2802
+ {
2803
+ name: 'arg1',
2804
+ type: 'double',
2805
+ },
2806
+ ],
2807
+ },
2808
+ {
2809
+ name: 'min',
2810
+ returnType: 'int',
2811
+ params: [
2812
+ {
2813
+ name: 'arg0',
2814
+ type: 'int',
2815
+ },
2816
+ {
2817
+ name: 'arg1',
2818
+ type: 'int',
2819
+ },
2820
+ ],
2821
+ },
2822
+ {
2823
+ name: 'max',
2824
+ returnType: 'long',
2825
+ params: [
2826
+ {
2827
+ name: 'arg0',
2828
+ type: 'long',
2829
+ },
2830
+ {
2831
+ name: 'arg1',
2832
+ type: 'long',
2833
+ },
2834
+ ],
2835
+ },
2836
+ {
2837
+ name: 'max',
2838
+ returnType: 'float',
2839
+ params: [
2840
+ {
2841
+ name: 'arg0',
2842
+ type: 'float',
2843
+ },
2844
+ {
2845
+ name: 'arg1',
2846
+ type: 'float',
2847
+ },
2848
+ ],
2849
+ },
2850
+ {
2851
+ name: 'max',
2852
+ returnType: 'double',
2853
+ params: [
2854
+ {
2855
+ name: 'arg0',
2856
+ type: 'double',
2857
+ },
2858
+ {
2859
+ name: 'arg1',
2860
+ type: 'double',
2861
+ },
2862
+ ],
2863
+ },
2864
+ {
2865
+ name: 'max',
2866
+ returnType: 'int',
2867
+ params: [
2868
+ {
2869
+ name: 'arg0',
2870
+ type: 'int',
2871
+ },
2872
+ {
2873
+ name: 'arg1',
2874
+ type: 'int',
2875
+ },
2876
+ ],
2877
+ },
2878
+ {
2879
+ name: 'floor',
2880
+ returnType: 'double',
2881
+ params: [
2882
+ {
2883
+ name: 'arg0',
2884
+ type: 'double',
2885
+ },
2886
+ ],
2887
+ },
2888
+ {
2889
+ name: 'ceil',
2890
+ returnType: 'double',
2891
+ params: [
2892
+ {
2893
+ name: 'arg0',
2894
+ type: 'double',
2895
+ },
2896
+ ],
2897
+ },
2898
+ {
2899
+ name: 'rint',
2900
+ returnType: 'double',
2901
+ params: [
2902
+ {
2903
+ name: 'arg0',
2904
+ type: 'double',
2905
+ },
2906
+ ],
2907
+ },
2908
+ {
2909
+ name: 'addExact',
2910
+ returnType: 'int',
2911
+ params: [
2912
+ {
2913
+ name: 'arg0',
2914
+ type: 'int',
2915
+ },
2916
+ {
2917
+ name: 'arg1',
2918
+ type: 'int',
2919
+ },
2920
+ ],
2921
+ },
2922
+ {
2923
+ name: 'addExact',
2924
+ returnType: 'long',
2925
+ params: [
2926
+ {
2927
+ name: 'arg0',
2928
+ type: 'long',
2929
+ },
2930
+ {
2931
+ name: 'arg1',
2932
+ type: 'long',
2933
+ },
2934
+ ],
2935
+ },
2936
+ {
2937
+ name: 'decrementExact',
2938
+ returnType: 'int',
2939
+ params: [
2940
+ {
2941
+ name: 'arg0',
2942
+ type: 'int',
2943
+ },
2944
+ ],
2945
+ },
2946
+ {
2947
+ name: 'decrementExact',
2948
+ returnType: 'long',
2949
+ params: [
2950
+ {
2951
+ name: 'arg0',
2952
+ type: 'long',
2953
+ },
2954
+ ],
2955
+ },
2956
+ {
2957
+ name: 'incrementExact',
2958
+ returnType: 'long',
2959
+ params: [
2960
+ {
2961
+ name: 'arg0',
2962
+ type: 'long',
2963
+ },
2964
+ ],
2965
+ },
2966
+ {
2967
+ name: 'incrementExact',
2968
+ returnType: 'int',
2969
+ params: [
2970
+ {
2971
+ name: 'arg0',
2972
+ type: 'int',
2973
+ },
2974
+ ],
2975
+ },
2976
+ {
2977
+ name: 'multiplyExact',
2978
+ returnType: 'int',
2979
+ params: [
2980
+ {
2981
+ name: 'arg0',
2982
+ type: 'int',
2983
+ },
2984
+ {
2985
+ name: 'arg1',
2986
+ type: 'int',
2987
+ },
2988
+ ],
2989
+ },
2990
+ {
2991
+ name: 'multiplyExact',
2992
+ returnType: 'long',
2993
+ params: [
2994
+ {
2995
+ name: 'arg0',
2996
+ type: 'long',
2997
+ },
2998
+ {
2999
+ name: 'arg1',
3000
+ type: 'int',
3001
+ },
3002
+ ],
3003
+ },
3004
+ {
3005
+ name: 'multiplyExact',
3006
+ returnType: 'long',
3007
+ params: [
3008
+ {
3009
+ name: 'arg0',
3010
+ type: 'long',
3011
+ },
3012
+ {
3013
+ name: 'arg1',
3014
+ type: 'long',
3015
+ },
3016
+ ],
3017
+ },
3018
+ {
3019
+ name: 'multiplyHigh',
3020
+ returnType: 'long',
3021
+ params: [
3022
+ {
3023
+ name: 'arg0',
3024
+ type: 'long',
3025
+ },
3026
+ {
3027
+ name: 'arg1',
3028
+ type: 'long',
3029
+ },
3030
+ ],
3031
+ },
3032
+ {
3033
+ name: 'negateExact',
3034
+ returnType: 'long',
3035
+ params: [
3036
+ {
3037
+ name: 'arg0',
3038
+ type: 'long',
3039
+ },
3040
+ ],
3041
+ },
3042
+ {
3043
+ name: 'negateExact',
3044
+ returnType: 'int',
3045
+ params: [
3046
+ {
3047
+ name: 'arg0',
3048
+ type: 'int',
3049
+ },
3050
+ ],
3051
+ },
3052
+ {
3053
+ name: 'subtractExact',
3054
+ returnType: 'long',
3055
+ params: [
3056
+ {
3057
+ name: 'arg0',
3058
+ type: 'long',
3059
+ },
3060
+ {
3061
+ name: 'arg1',
3062
+ type: 'long',
3063
+ },
3064
+ ],
3065
+ },
3066
+ {
3067
+ name: 'subtractExact',
3068
+ returnType: 'int',
3069
+ params: [
3070
+ {
3071
+ name: 'arg0',
3072
+ type: 'int',
3073
+ },
3074
+ {
3075
+ name: 'arg1',
3076
+ type: 'int',
3077
+ },
3078
+ ],
3079
+ },
3080
+ {
3081
+ name: 'fma',
3082
+ returnType: 'float',
3083
+ params: [
3084
+ {
3085
+ name: 'arg0',
3086
+ type: 'float',
3087
+ },
3088
+ {
3089
+ name: 'arg1',
3090
+ type: 'float',
3091
+ },
3092
+ {
3093
+ name: 'arg2',
3094
+ type: 'float',
3095
+ },
3096
+ ],
3097
+ },
3098
+ {
3099
+ name: 'fma',
3100
+ returnType: 'double',
3101
+ params: [
3102
+ {
3103
+ name: 'arg0',
3104
+ type: 'double',
3105
+ },
3106
+ {
3107
+ name: 'arg1',
3108
+ type: 'double',
3109
+ },
3110
+ {
3111
+ name: 'arg2',
3112
+ type: 'double',
3113
+ },
3114
+ ],
3115
+ },
3116
+ {
3117
+ name: 'copySign',
3118
+ returnType: 'float',
3119
+ params: [
3120
+ {
3121
+ name: 'arg0',
3122
+ type: 'float',
3123
+ },
3124
+ {
3125
+ name: 'arg1',
3126
+ type: 'float',
3127
+ },
3128
+ ],
3129
+ },
3130
+ {
3131
+ name: 'copySign',
3132
+ returnType: 'double',
3133
+ params: [
3134
+ {
3135
+ name: 'arg0',
3136
+ type: 'double',
3137
+ },
3138
+ {
3139
+ name: 'arg1',
3140
+ type: 'double',
3141
+ },
3142
+ ],
3143
+ },
3144
+ {
3145
+ name: 'signum',
3146
+ returnType: 'double',
3147
+ params: [
3148
+ {
3149
+ name: 'arg0',
3150
+ type: 'double',
3151
+ },
3152
+ ],
3153
+ },
3154
+ {
3155
+ name: 'signum',
3156
+ returnType: 'float',
3157
+ params: [
3158
+ {
3159
+ name: 'arg0',
3160
+ type: 'float',
3161
+ },
3162
+ ],
3163
+ },
3164
+ {
3165
+ name: 'scalb',
3166
+ returnType: 'double',
3167
+ params: [
3168
+ {
3169
+ name: 'arg0',
3170
+ type: 'double',
3171
+ },
3172
+ {
3173
+ name: 'arg1',
3174
+ type: 'int',
3175
+ },
3176
+ ],
3177
+ },
3178
+ {
3179
+ name: 'scalb',
3180
+ returnType: 'float',
3181
+ params: [
3182
+ {
3183
+ name: 'arg0',
3184
+ type: 'float',
3185
+ },
3186
+ {
3187
+ name: 'arg1',
3188
+ type: 'int',
3189
+ },
3190
+ ],
3191
+ },
3192
+ {
3193
+ name: 'getExponent',
3194
+ returnType: 'int',
3195
+ params: [
3196
+ {
3197
+ name: 'arg0',
3198
+ type: 'float',
3199
+ },
3200
+ ],
3201
+ },
3202
+ {
3203
+ name: 'getExponent',
3204
+ returnType: 'int',
3205
+ params: [
3206
+ {
3207
+ name: 'arg0',
3208
+ type: 'double',
3209
+ },
3210
+ ],
3211
+ },
3212
+ {
3213
+ name: 'floorMod',
3214
+ returnType: 'int',
3215
+ params: [
3216
+ {
3217
+ name: 'arg0',
3218
+ type: 'int',
3219
+ },
3220
+ {
3221
+ name: 'arg1',
3222
+ type: 'int',
3223
+ },
3224
+ ],
3225
+ },
3226
+ {
3227
+ name: 'floorMod',
3228
+ returnType: 'long',
3229
+ params: [
3230
+ {
3231
+ name: 'arg0',
3232
+ type: 'long',
3233
+ },
3234
+ {
3235
+ name: 'arg1',
3236
+ type: 'long',
3237
+ },
3238
+ ],
3239
+ },
3240
+ {
3241
+ name: 'floorMod',
3242
+ returnType: 'int',
3243
+ params: [
3244
+ {
3245
+ name: 'arg0',
3246
+ type: 'long',
3247
+ },
3248
+ {
3249
+ name: 'arg1',
3250
+ type: 'int',
3251
+ },
3252
+ ],
3253
+ },
3254
+ {
3255
+ name: 'asin',
3256
+ returnType: 'double',
3257
+ params: [
3258
+ {
3259
+ name: 'arg0',
3260
+ type: 'double',
3261
+ },
3262
+ ],
3263
+ },
3264
+ {
3265
+ name: 'acos',
3266
+ returnType: 'double',
3267
+ params: [
3268
+ {
3269
+ name: 'arg0',
3270
+ type: 'double',
3271
+ },
3272
+ ],
3273
+ },
3274
+ {
3275
+ name: 'atan',
3276
+ returnType: 'double',
3277
+ params: [
3278
+ {
3279
+ name: 'arg0',
3280
+ type: 'double',
3281
+ },
3282
+ ],
3283
+ },
3284
+ {
3285
+ name: 'toRadians',
3286
+ returnType: 'double',
3287
+ params: [
3288
+ {
3289
+ name: 'arg0',
3290
+ type: 'double',
3291
+ },
3292
+ ],
3293
+ },
3294
+ {
3295
+ name: 'toDegrees',
3296
+ returnType: 'double',
3297
+ params: [
3298
+ {
3299
+ name: 'arg0',
3300
+ type: 'double',
3301
+ },
3302
+ ],
3303
+ },
3304
+ {
3305
+ name: 'cbrt',
3306
+ returnType: 'double',
3307
+ params: [
3308
+ {
3309
+ name: 'arg0',
3310
+ type: 'double',
3311
+ },
3312
+ ],
3313
+ },
3314
+ {
3315
+ name: 'IEEEremainder',
3316
+ returnType: 'double',
3317
+ params: [
3318
+ {
3319
+ name: 'arg0',
3320
+ type: 'double',
3321
+ },
3322
+ {
3323
+ name: 'arg1',
3324
+ type: 'double',
3325
+ },
3326
+ ],
3327
+ },
3328
+ {
3329
+ name: 'round',
3330
+ returnType: 'int',
3331
+ params: [
3332
+ {
3333
+ name: 'arg0',
3334
+ type: 'float',
3335
+ },
3336
+ ],
3337
+ },
3338
+ {
3339
+ name: 'round',
3340
+ returnType: 'long',
3341
+ params: [
3342
+ {
3343
+ name: 'arg0',
3344
+ type: 'double',
3345
+ },
3346
+ ],
3347
+ },
3348
+ {
3349
+ name: 'random',
3350
+ returnType: 'double',
3351
+ },
3352
+ {
3353
+ name: 'toIntExact',
3354
+ returnType: 'int',
3355
+ params: [
3356
+ {
3357
+ name: 'arg0',
3358
+ type: 'long',
3359
+ },
3360
+ ],
3361
+ },
3362
+ {
3363
+ name: 'multiplyFull',
3364
+ returnType: 'long',
3365
+ params: [
3366
+ {
3367
+ name: 'arg0',
3368
+ type: 'int',
3369
+ },
3370
+ {
3371
+ name: 'arg1',
3372
+ type: 'int',
3373
+ },
3374
+ ],
3375
+ },
3376
+ {
3377
+ name: 'floorDiv',
3378
+ returnType: 'long',
3379
+ params: [
3380
+ {
3381
+ name: 'arg0',
3382
+ type: 'long',
3383
+ },
3384
+ {
3385
+ name: 'arg1',
3386
+ type: 'int',
3387
+ },
3388
+ ],
3389
+ },
3390
+ {
3391
+ name: 'floorDiv',
3392
+ returnType: 'long',
3393
+ params: [
3394
+ {
3395
+ name: 'arg0',
3396
+ type: 'long',
3397
+ },
3398
+ {
3399
+ name: 'arg1',
3400
+ type: 'long',
3401
+ },
3402
+ ],
3403
+ },
3404
+ {
3405
+ name: 'floorDiv',
3406
+ returnType: 'int',
3407
+ params: [
3408
+ {
3409
+ name: 'arg0',
3410
+ type: 'int',
3411
+ },
3412
+ {
3413
+ name: 'arg1',
3414
+ type: 'int',
3415
+ },
3416
+ ],
3417
+ },
3418
+ {
3419
+ name: 'ulp',
3420
+ returnType: 'float',
3421
+ params: [
3422
+ {
3423
+ name: 'arg0',
3424
+ type: 'float',
3425
+ },
3426
+ ],
3427
+ },
3428
+ {
3429
+ name: 'ulp',
3430
+ returnType: 'double',
3431
+ params: [
3432
+ {
3433
+ name: 'arg0',
3434
+ type: 'double',
3435
+ },
3436
+ ],
3437
+ },
3438
+ {
3439
+ name: 'sinh',
3440
+ returnType: 'double',
3441
+ params: [
3442
+ {
3443
+ name: 'arg0',
3444
+ type: 'double',
3445
+ },
3446
+ ],
3447
+ },
3448
+ {
3449
+ name: 'cosh',
3450
+ returnType: 'double',
3451
+ params: [
3452
+ {
3453
+ name: 'arg0',
3454
+ type: 'double',
3455
+ },
3456
+ ],
3457
+ },
3458
+ {
3459
+ name: 'tanh',
3460
+ returnType: 'double',
3461
+ params: [
3462
+ {
3463
+ name: 'arg0',
3464
+ type: 'double',
3465
+ },
3466
+ ],
3467
+ },
3468
+ {
3469
+ name: 'hypot',
3470
+ returnType: 'double',
3471
+ params: [
3472
+ {
3473
+ name: 'arg0',
3474
+ type: 'double',
3475
+ },
3476
+ {
3477
+ name: 'arg1',
3478
+ type: 'double',
3479
+ },
3480
+ ],
3481
+ },
3482
+ {
3483
+ name: 'expm1',
3484
+ returnType: 'double',
3485
+ params: [
3486
+ {
3487
+ name: 'arg0',
3488
+ type: 'double',
3489
+ },
3490
+ ],
3491
+ },
3492
+ {
3493
+ name: 'log1p',
3494
+ returnType: 'double',
3495
+ params: [
3496
+ {
3497
+ name: 'arg0',
3498
+ type: 'double',
3499
+ },
3500
+ ],
3501
+ },
3502
+ {
3503
+ name: 'nextAfter',
3504
+ returnType: 'double',
3505
+ params: [
3506
+ {
3507
+ name: 'arg0',
3508
+ type: 'double',
3509
+ },
3510
+ {
3511
+ name: 'arg1',
3512
+ type: 'double',
3513
+ },
3514
+ ],
3515
+ },
3516
+ {
3517
+ name: 'nextAfter',
3518
+ returnType: 'float',
3519
+ params: [
3520
+ {
3521
+ name: 'arg0',
3522
+ type: 'float',
3523
+ },
3524
+ {
3525
+ name: 'arg1',
3526
+ type: 'double',
3527
+ },
3528
+ ],
3529
+ },
3530
+ {
3531
+ name: 'nextUp',
3532
+ returnType: 'double',
3533
+ params: [
3534
+ {
3535
+ name: 'arg0',
3536
+ type: 'double',
3537
+ },
3538
+ ],
3539
+ },
3540
+ {
3541
+ name: 'nextUp',
3542
+ returnType: 'float',
3543
+ params: [
3544
+ {
3545
+ name: 'arg0',
3546
+ type: 'float',
3547
+ },
3548
+ ],
3549
+ },
3550
+ {
3551
+ name: 'nextDown',
3552
+ returnType: 'float',
3553
+ params: [
3554
+ {
3555
+ name: 'arg0',
3556
+ type: 'float',
3557
+ },
3558
+ ],
3559
+ },
3560
+ {
3561
+ name: 'nextDown',
3562
+ returnType: 'double',
3563
+ params: [
3564
+ {
3565
+ name: 'arg0',
3566
+ type: 'double',
3567
+ },
3568
+ ],
3569
+ },
3570
+ {
3571
+ name: 'equals',
3572
+ returnType: 'boolean',
3573
+ params: [
3574
+ {
3575
+ name: 'arg0',
3576
+ type: 'Object',
3577
+ },
3578
+ ],
3579
+ },
3580
+ {
3581
+ name: 'hashCode',
3582
+ returnType: 'int',
3583
+ },
3584
+ {
3585
+ name: 'toString',
3586
+ returnType: 'String',
3587
+ },
3588
+ ],
3589
+ },
3590
+ Object: {
3591
+ methods: [
3592
+ {
3593
+ name: 'equals',
3594
+ returnType: 'boolean',
3595
+ params: [
3596
+ {
3597
+ name: 'arg0',
3598
+ type: 'Object',
3599
+ },
3600
+ ],
3601
+ },
3602
+ {
3603
+ name: 'hashCode',
3604
+ returnType: 'int',
3605
+ },
3606
+ {
3607
+ name: 'toString',
3608
+ returnType: 'String',
3609
+ },
3610
+ ],
3611
+ },
3612
+ List: {
3613
+ methods: [
3614
+ {
3615
+ name: 'get',
3616
+ returnType: 'Object',
3617
+ params: [
3618
+ {
3619
+ name: 'arg0',
3620
+ type: 'int',
3621
+ },
3622
+ ],
3623
+ },
3624
+ {
3625
+ name: 'contains',
3626
+ returnType: 'boolean',
3627
+ params: [
3628
+ {
3629
+ name: 'arg0',
3630
+ type: 'Object',
3631
+ },
3632
+ ],
3633
+ },
3634
+ {
3635
+ name: 'isEmpty',
3636
+ returnType: 'boolean',
3637
+ },
3638
+ {
3639
+ name: 'size',
3640
+ returnType: 'int',
3641
+ },
3642
+ ],
3643
+ },
3644
+ Collection: {
3645
+ methods: [
3646
+ {
3647
+ name: 'contains',
3648
+ returnType: 'boolean',
3649
+ params: [
3650
+ {
3651
+ name: 'arg0',
3652
+ type: 'Object',
3653
+ },
3654
+ ],
3655
+ },
3656
+ {
3657
+ name: 'isEmpty',
3658
+ returnType: 'boolean',
3659
+ },
3660
+ {
3661
+ name: 'size',
3662
+ returnType: 'int',
3663
+ },
3664
+ ],
3665
+ },
3666
+ Set: {
3667
+ methods: [
3668
+ {
3669
+ name: 'contains',
3670
+ returnType: 'boolean',
3671
+ params: [
3672
+ {
3673
+ name: 'arg0',
3674
+ type: 'Object',
3675
+ },
3676
+ ],
3677
+ },
3678
+ {
3679
+ name: 'isEmpty',
3680
+ returnType: 'boolean',
3681
+ },
3682
+ {
3683
+ name: 'size',
3684
+ returnType: 'int',
3685
+ },
3686
+ ],
3687
+ },
3688
+ String: {
3689
+ methods: [
3690
+ {
3691
+ name: 'equals',
3692
+ returnType: 'boolean',
3693
+ params: [
3694
+ {
3695
+ name: 'arg0',
3696
+ type: 'Object',
3697
+ },
3698
+ ],
3699
+ },
3700
+ {
3701
+ name: 'length',
3702
+ returnType: 'int',
3703
+ },
3704
+ {
3705
+ name: 'toString',
3706
+ returnType: 'String',
3707
+ },
3708
+ {
3709
+ name: 'hashCode',
3710
+ returnType: 'int',
3711
+ },
3712
+ {
3713
+ name: 'getChars',
3714
+ returnType: 'void',
3715
+ params: [
3716
+ {
3717
+ name: 'arg0',
3718
+ type: 'int',
3719
+ },
3720
+ {
3721
+ name: 'arg1',
3722
+ type: 'int',
3723
+ },
3724
+ {
3725
+ name: 'arg2',
3726
+ type: 'char[]',
3727
+ },
3728
+ {
3729
+ name: 'arg3',
3730
+ type: 'int',
3731
+ },
3732
+ ],
3733
+ },
3734
+ {
3735
+ name: 'compareTo',
3736
+ returnType: 'int',
3737
+ params: [
3738
+ {
3739
+ name: 'arg0',
3740
+ type: 'String',
3741
+ },
3742
+ ],
3743
+ },
3744
+ {
3745
+ name: 'compareTo',
3746
+ returnType: 'int',
3747
+ params: [
3748
+ {
3749
+ name: 'arg0',
3750
+ type: 'Object',
3751
+ },
3752
+ ],
3753
+ },
3754
+ {
3755
+ name: 'indexOf',
3756
+ returnType: 'int',
3757
+ params: [
3758
+ {
3759
+ name: 'arg0',
3760
+ type: 'String',
3761
+ },
3762
+ {
3763
+ name: 'arg1',
3764
+ type: 'int',
3765
+ },
3766
+ ],
3767
+ },
3768
+ {
3769
+ name: 'indexOf',
3770
+ returnType: 'int',
3771
+ params: [
3772
+ {
3773
+ name: 'arg0',
3774
+ type: 'int',
3775
+ },
3776
+ ],
3777
+ },
3778
+ {
3779
+ name: 'indexOf',
3780
+ returnType: 'int',
3781
+ params: [
3782
+ {
3783
+ name: 'arg0',
3784
+ type: 'int',
3785
+ },
3786
+ {
3787
+ name: 'arg1',
3788
+ type: 'int',
3789
+ },
3790
+ ],
3791
+ },
3792
+ {
3793
+ name: 'indexOf',
3794
+ returnType: 'int',
3795
+ params: [
3796
+ {
3797
+ name: 'arg0',
3798
+ type: 'String',
3799
+ },
3800
+ ],
3801
+ },
3802
+ {
3803
+ name: 'valueOf',
3804
+ returnType: 'String',
3805
+ params: [
3806
+ {
3807
+ name: 'arg0',
3808
+ type: 'long',
3809
+ },
3810
+ ],
3811
+ },
3812
+ {
3813
+ name: 'valueOf',
3814
+ returnType: 'String',
3815
+ params: [
3816
+ {
3817
+ name: 'arg0',
3818
+ type: 'int',
3819
+ },
3820
+ ],
3821
+ },
3822
+ {
3823
+ name: 'valueOf',
3824
+ returnType: 'String',
3825
+ params: [
3826
+ {
3827
+ name: 'arg0',
3828
+ type: 'char',
3829
+ },
3830
+ ],
3831
+ },
3832
+ {
3833
+ name: 'valueOf',
3834
+ returnType: 'String',
3835
+ params: [
3836
+ {
3837
+ name: 'arg0',
3838
+ type: 'double',
3839
+ },
3840
+ ],
3841
+ },
3842
+ {
3843
+ name: 'valueOf',
3844
+ returnType: 'String',
3845
+ params: [
3846
+ {
3847
+ name: 'arg0',
3848
+ type: 'float',
3849
+ },
3850
+ ],
3851
+ },
3852
+ {
3853
+ name: 'valueOf',
3854
+ returnType: 'String',
3855
+ params: [
3856
+ {
3857
+ name: 'arg0',
3858
+ type: 'Object',
3859
+ },
3860
+ ],
3861
+ },
3862
+ {
3863
+ name: 'valueOf',
3864
+ returnType: 'String',
3865
+ params: [
3866
+ {
3867
+ name: 'arg0',
3868
+ type: 'char[]',
3869
+ },
3870
+ ],
3871
+ },
3872
+ {
3873
+ name: 'valueOf',
3874
+ returnType: 'String',
3875
+ params: [
3876
+ {
3877
+ name: 'arg0',
3878
+ type: 'boolean',
3879
+ },
3880
+ ],
3881
+ },
3882
+ {
3883
+ name: 'valueOf',
3884
+ returnType: 'String',
3885
+ params: [
3886
+ {
3887
+ name: 'arg0',
3888
+ type: 'char[]',
3889
+ },
3890
+ {
3891
+ name: 'arg1',
3892
+ type: 'int',
3893
+ },
3894
+ {
3895
+ name: 'arg2',
3896
+ type: 'int',
3897
+ },
3898
+ ],
3899
+ },
3900
+ {
3901
+ name: 'isEmpty',
3902
+ returnType: 'boolean',
3903
+ },
3904
+ {
3905
+ name: 'charAt',
3906
+ returnType: 'char',
3907
+ params: [
3908
+ {
3909
+ name: 'arg0',
3910
+ type: 'int',
3911
+ },
3912
+ ],
3913
+ },
3914
+ {
3915
+ name: 'codePointAt',
3916
+ returnType: 'int',
3917
+ params: [
3918
+ {
3919
+ name: 'arg0',
3920
+ type: 'int',
3921
+ },
3922
+ ],
3923
+ },
3924
+ {
3925
+ name: 'codePointBefore',
3926
+ returnType: 'int',
3927
+ params: [
3928
+ {
3929
+ name: 'arg0',
3930
+ type: 'int',
3931
+ },
3932
+ ],
3933
+ },
3934
+ {
3935
+ name: 'codePointCount',
3936
+ returnType: 'int',
3937
+ params: [
3938
+ {
3939
+ name: 'arg0',
3940
+ type: 'int',
3941
+ },
3942
+ {
3943
+ name: 'arg1',
3944
+ type: 'int',
3945
+ },
3946
+ ],
3947
+ },
3948
+ {
3949
+ name: 'offsetByCodePoints',
3950
+ returnType: 'int',
3951
+ params: [
3952
+ {
3953
+ name: 'arg0',
3954
+ type: 'int',
3955
+ },
3956
+ {
3957
+ name: 'arg1',
3958
+ type: 'int',
3959
+ },
3960
+ ],
3961
+ },
3962
+ {
3963
+ name: 'getBytes',
3964
+ returnType: 'byte[]',
3965
+ params: [
3966
+ {
3967
+ name: 'arg0',
3968
+ type: 'Charset',
3969
+ },
3970
+ ],
3971
+ },
3972
+ {
3973
+ name: 'getBytes',
3974
+ returnType: 'void',
3975
+ params: [
3976
+ {
3977
+ name: 'arg0',
3978
+ type: 'int',
3979
+ },
3980
+ {
3981
+ name: 'arg1',
3982
+ type: 'int',
3983
+ },
3984
+ {
3985
+ name: 'arg2',
3986
+ type: 'byte[]',
3987
+ },
3988
+ {
3989
+ name: 'arg3',
3990
+ type: 'int',
3991
+ },
3992
+ ],
3993
+ },
3994
+ {
3995
+ name: 'getBytes',
3996
+ returnType: 'byte[]',
3997
+ params: [
3998
+ {
3999
+ name: 'arg0',
4000
+ type: 'String',
4001
+ },
4002
+ ],
4003
+ },
4004
+ {
4005
+ name: 'getBytes',
4006
+ returnType: 'byte[]',
4007
+ },
4008
+ {
4009
+ name: 'contentEquals',
4010
+ returnType: 'boolean',
4011
+ params: [
4012
+ {
4013
+ name: 'arg0',
4014
+ type: 'StringBuffer',
4015
+ },
4016
+ ],
4017
+ },
4018
+ {
4019
+ name: 'contentEquals',
4020
+ returnType: 'boolean',
4021
+ params: [
4022
+ {
4023
+ name: 'arg0',
4024
+ type: 'CharSequence',
4025
+ },
4026
+ ],
4027
+ },
4028
+ {
4029
+ name: 'equalsIgnoreCase',
4030
+ returnType: 'boolean',
4031
+ params: [
4032
+ {
4033
+ name: 'arg0',
4034
+ type: 'String',
4035
+ },
4036
+ ],
4037
+ },
4038
+ {
4039
+ name: 'regionMatches',
4040
+ returnType: 'boolean',
4041
+ params: [
4042
+ {
4043
+ name: 'arg0',
4044
+ type: 'boolean',
4045
+ },
4046
+ {
4047
+ name: 'arg1',
4048
+ type: 'int',
4049
+ },
4050
+ {
4051
+ name: 'arg2',
4052
+ type: 'String',
4053
+ },
4054
+ {
4055
+ name: 'arg3',
4056
+ type: 'int',
4057
+ },
4058
+ {
4059
+ name: 'arg4',
4060
+ type: 'int',
4061
+ },
4062
+ ],
4063
+ },
4064
+ {
4065
+ name: 'regionMatches',
4066
+ returnType: 'boolean',
4067
+ params: [
4068
+ {
4069
+ name: 'arg0',
4070
+ type: 'int',
4071
+ },
4072
+ {
4073
+ name: 'arg1',
4074
+ type: 'String',
4075
+ },
4076
+ {
4077
+ name: 'arg2',
4078
+ type: 'int',
4079
+ },
4080
+ {
4081
+ name: 'arg3',
4082
+ type: 'int',
4083
+ },
4084
+ ],
4085
+ },
4086
+ {
4087
+ name: 'compareToIgnoreCase',
4088
+ returnType: 'int',
4089
+ params: [
4090
+ {
4091
+ name: 'arg0',
4092
+ type: 'String',
4093
+ },
4094
+ ],
4095
+ },
4096
+ {
4097
+ name: 'startsWith',
4098
+ returnType: 'boolean',
4099
+ params: [
4100
+ {
4101
+ name: 'arg0',
4102
+ type: 'String',
4103
+ },
4104
+ {
4105
+ name: 'arg1',
4106
+ type: 'int',
4107
+ },
4108
+ ],
4109
+ },
4110
+ {
4111
+ name: 'startsWith',
4112
+ returnType: 'boolean',
4113
+ params: [
4114
+ {
4115
+ name: 'arg0',
4116
+ type: 'String',
4117
+ },
4118
+ ],
4119
+ },
4120
+ {
4121
+ name: 'endsWith',
4122
+ returnType: 'boolean',
4123
+ params: [
4124
+ {
4125
+ name: 'arg0',
4126
+ type: 'String',
4127
+ },
4128
+ ],
4129
+ },
4130
+ {
4131
+ name: 'lastIndexOf',
4132
+ returnType: 'int',
4133
+ params: [
4134
+ {
4135
+ name: 'arg0',
4136
+ type: 'String',
4137
+ },
4138
+ {
4139
+ name: 'arg1',
4140
+ type: 'int',
4141
+ },
4142
+ ],
4143
+ },
4144
+ {
4145
+ name: 'lastIndexOf',
4146
+ returnType: 'int',
4147
+ params: [
4148
+ {
4149
+ name: 'arg0',
4150
+ type: 'String',
4151
+ },
4152
+ ],
4153
+ },
4154
+ {
4155
+ name: 'lastIndexOf',
4156
+ returnType: 'int',
4157
+ params: [
4158
+ {
4159
+ name: 'arg0',
4160
+ type: 'int',
4161
+ },
4162
+ {
4163
+ name: 'arg1',
4164
+ type: 'int',
4165
+ },
4166
+ ],
4167
+ },
4168
+ {
4169
+ name: 'lastIndexOf',
4170
+ returnType: 'int',
4171
+ params: [
4172
+ {
4173
+ name: 'arg0',
4174
+ type: 'int',
4175
+ },
4176
+ ],
4177
+ },
4178
+ {
4179
+ name: 'substring',
4180
+ returnType: 'String',
4181
+ params: [
4182
+ {
4183
+ name: 'arg0',
4184
+ type: 'int',
4185
+ },
4186
+ ],
4187
+ },
4188
+ {
4189
+ name: 'substring',
4190
+ returnType: 'String',
4191
+ params: [
4192
+ {
4193
+ name: 'arg0',
4194
+ type: 'int',
4195
+ },
4196
+ {
4197
+ name: 'arg1',
4198
+ type: 'int',
4199
+ },
4200
+ ],
4201
+ },
4202
+ {
4203
+ name: 'subSequence',
4204
+ returnType: 'CharSequence',
4205
+ params: [
4206
+ {
4207
+ name: 'arg0',
4208
+ type: 'int',
4209
+ },
4210
+ {
4211
+ name: 'arg1',
4212
+ type: 'int',
4213
+ },
4214
+ ],
4215
+ },
4216
+ {
4217
+ name: 'concat',
4218
+ returnType: 'String',
4219
+ params: [
4220
+ {
4221
+ name: 'arg0',
4222
+ type: 'String',
4223
+ },
4224
+ ],
4225
+ },
4226
+ {
4227
+ name: 'replace',
4228
+ returnType: 'String',
4229
+ params: [
4230
+ {
4231
+ name: 'arg0',
4232
+ type: 'CharSequence',
4233
+ },
4234
+ {
4235
+ name: 'arg1',
4236
+ type: 'CharSequence',
4237
+ },
4238
+ ],
4239
+ },
4240
+ {
4241
+ name: 'replace',
4242
+ returnType: 'String',
4243
+ params: [
4244
+ {
4245
+ name: 'arg0',
4246
+ type: 'char',
4247
+ },
4248
+ {
4249
+ name: 'arg1',
4250
+ type: 'char',
4251
+ },
4252
+ ],
4253
+ },
4254
+ {
4255
+ name: 'matches',
4256
+ returnType: 'boolean',
4257
+ params: [
4258
+ {
4259
+ name: 'arg0',
4260
+ type: 'String',
4261
+ },
4262
+ ],
4263
+ },
4264
+ {
4265
+ name: 'contains',
4266
+ returnType: 'boolean',
4267
+ params: [
4268
+ {
4269
+ name: 'arg0',
4270
+ type: 'CharSequence',
4271
+ },
4272
+ ],
4273
+ },
4274
+ {
4275
+ name: 'replaceFirst',
4276
+ returnType: 'String',
4277
+ params: [
4278
+ {
4279
+ name: 'arg0',
4280
+ type: 'String',
4281
+ },
4282
+ {
4283
+ name: 'arg1',
4284
+ type: 'String',
4285
+ },
4286
+ ],
4287
+ },
4288
+ {
4289
+ name: 'replaceAll',
4290
+ returnType: 'String',
4291
+ params: [
4292
+ {
4293
+ name: 'arg0',
4294
+ type: 'String',
4295
+ },
4296
+ {
4297
+ name: 'arg1',
4298
+ type: 'String',
4299
+ },
4300
+ ],
4301
+ },
4302
+ {
4303
+ name: 'split',
4304
+ returnType: 'String[]',
4305
+ params: [
4306
+ {
4307
+ name: 'arg0',
4308
+ type: 'String',
4309
+ },
4310
+ ],
4311
+ },
4312
+ {
4313
+ name: 'split',
4314
+ returnType: 'String[]',
4315
+ params: [
4316
+ {
4317
+ name: 'arg0',
4318
+ type: 'String',
4319
+ },
4320
+ {
4321
+ name: 'arg1',
4322
+ type: 'int',
4323
+ },
4324
+ ],
4325
+ },
4326
+ {
4327
+ name: 'join',
4328
+ returnType: 'String',
4329
+ params: [
4330
+ {
4331
+ name: 'arg0',
4332
+ type: 'CharSequence',
4333
+ },
4334
+ {
4335
+ name: 'arg1',
4336
+ type: 'CharSequence[]',
4337
+ },
4338
+ ],
4339
+ },
4340
+ {
4341
+ name: 'join',
4342
+ returnType: 'String',
4343
+ params: [
4344
+ {
4345
+ name: 'arg0',
4346
+ type: 'CharSequence',
4347
+ },
4348
+ {
4349
+ name: 'arg1',
4350
+ type: 'Iterable',
4351
+ },
4352
+ ],
4353
+ },
4354
+ {
4355
+ name: 'toLowerCase',
4356
+ returnType: 'String',
4357
+ params: [
4358
+ {
4359
+ name: 'arg0',
4360
+ type: 'Locale',
4361
+ },
4362
+ ],
4363
+ },
4364
+ {
4365
+ name: 'toLowerCase',
4366
+ returnType: 'String',
4367
+ },
4368
+ {
4369
+ name: 'toUpperCase',
4370
+ returnType: 'String',
4371
+ params: [
4372
+ {
4373
+ name: 'arg0',
4374
+ type: 'Locale',
4375
+ },
4376
+ ],
4377
+ },
4378
+ {
4379
+ name: 'toUpperCase',
4380
+ returnType: 'String',
4381
+ },
4382
+ {
4383
+ name: 'trim',
4384
+ returnType: 'String',
4385
+ },
4386
+ {
4387
+ name: 'strip',
4388
+ returnType: 'String',
4389
+ },
4390
+ {
4391
+ name: 'stripLeading',
4392
+ returnType: 'String',
4393
+ },
4394
+ {
4395
+ name: 'stripTrailing',
4396
+ returnType: 'String',
4397
+ },
4398
+ {
4399
+ name: 'isBlank',
4400
+ returnType: 'boolean',
4401
+ },
4402
+ {
4403
+ name: 'lines',
4404
+ returnType: 'Stream',
4405
+ },
4406
+ {
4407
+ name: 'chars',
4408
+ returnType: 'IntStream',
4409
+ },
4410
+ {
4411
+ name: 'codePoints',
4412
+ returnType: 'IntStream',
4413
+ },
4414
+ {
4415
+ name: 'toCharArray',
4416
+ returnType: 'char[]',
4417
+ },
4418
+ {
4419
+ name: 'format',
4420
+ returnType: 'String',
4421
+ params: [
4422
+ {
4423
+ name: 'arg0',
4424
+ type: 'String',
4425
+ },
4426
+ {
4427
+ name: 'arg1',
4428
+ type: 'Object[]',
4429
+ },
4430
+ ],
4431
+ },
4432
+ {
4433
+ name: 'format',
4434
+ returnType: 'String',
4435
+ params: [
4436
+ {
4437
+ name: 'arg0',
4438
+ type: 'Locale',
4439
+ },
4440
+ {
4441
+ name: 'arg1',
4442
+ type: 'String',
4443
+ },
4444
+ {
4445
+ name: 'arg2',
4446
+ type: 'Object[]',
4447
+ },
4448
+ ],
4449
+ },
4450
+ {
4451
+ name: 'copyValueOf',
4452
+ returnType: 'String',
4453
+ params: [
4454
+ {
4455
+ name: 'arg0',
4456
+ type: 'char[]',
4457
+ },
4458
+ {
4459
+ name: 'arg1',
4460
+ type: 'int',
4461
+ },
4462
+ {
4463
+ name: 'arg2',
4464
+ type: 'int',
4465
+ },
4466
+ ],
4467
+ },
4468
+ {
4469
+ name: 'copyValueOf',
4470
+ returnType: 'String',
4471
+ params: [
4472
+ {
4473
+ name: 'arg0',
4474
+ type: 'char[]',
4475
+ },
4476
+ ],
4477
+ },
4478
+ {
4479
+ name: 'intern',
4480
+ returnType: 'String',
4481
+ },
4482
+ {
4483
+ name: 'repeat',
4484
+ returnType: 'String',
4485
+ params: [
4486
+ {
4487
+ name: 'arg0',
4488
+ type: 'int',
4489
+ },
4490
+ ],
4491
+ },
4492
+ {
4493
+ name: 'equals',
4494
+ returnType: 'boolean',
4495
+ params: [
4496
+ {
4497
+ name: 'arg0',
4498
+ type: 'Object',
4499
+ },
4500
+ ],
4501
+ },
4502
+ {
4503
+ name: 'hashCode',
4504
+ returnType: 'int',
4505
+ },
4506
+ {
4507
+ name: 'toString',
4508
+ returnType: 'String',
4509
+ },
4510
+ ],
4511
+ },
4512
+ 'String[]': {
4513
+ methods: [
4514
+ {
4515
+ name: 'equals',
4516
+ returnType: 'boolean',
4517
+ params: [
4518
+ {
4519
+ name: 'arg0',
4520
+ type: 'Object',
4521
+ },
4522
+ ],
4523
+ },
4524
+ {
4525
+ name: 'hashCode',
4526
+ returnType: 'int',
4527
+ },
4528
+ {
4529
+ name: 'toString',
4530
+ returnType: 'String',
4531
+ },
4532
+ ],
4533
+ },
4534
+ },
4535
+ };
4536
+
4537
+ /*
4538
+ * Copyright (C) 2022 The Gravitee team (http://gravitee.io)
4539
+ *
4540
+ * Licensed under the Apache License, Version 2.0 (the "License");
4541
+ * you may not use this file except in compliance with the License.
4542
+ * You may obtain a copy of the License at
4543
+ *
4544
+ * http://www.apache.org/licenses/LICENSE-2.0
4545
+ *
4546
+ * Unless required by applicable law or agreed to in writing, software
4547
+ * distributed under the License is distributed on an "AS IS" BASIS,
4548
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
4549
+ * See the License for the specific language governing permissions and
4550
+ * limitations under the License.
4551
+ */
4552
+
4553
+ /*
4554
+ * Copyright (C) 2015 The Gravitee team (http://gravitee.io)
4555
+ *
4556
+ * Licensed under the Apache License, Version 2.0 (the "License");
4557
+ * you may not use this file except in compliance with the License.
4558
+ * You may obtain a copy of the License at
4559
+ *
4560
+ * http://www.apache.org/licenses/LICENSE-2.0
4561
+ *
4562
+ * Unless required by applicable law or agreed to in writing, software
4563
+ * distributed under the License is distributed on an "AS IS" BASIS,
4564
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
4565
+ * See the License for the specific language governing permissions and
4566
+ * limitations under the License.
4567
+ */
4568
+ class SpelService extends SpelServiceAbstract {
4569
+ getGrammar() {
4570
+ return of(fakeGrammar());
4571
+ }
4572
+ }
4573
+ SpelService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: SpelService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
4574
+ SpelService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: SpelService, providedIn: 'root' });
4575
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: SpelService, decorators: [{
4576
+ type: Injectable,
52
4577
  args: [{
53
- selector: 'gio-ui-policy-studio-angular',
54
- template: ` <p class="wow">ui-policy-studio-angular works!</p> `,
55
- styles: [],
4578
+ providedIn: 'root',
56
4579
  }]
57
4580
  }] });
58
4581
 
@@ -71,17 +4594,41 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImpo
71
4594
  * See the License for the specific language governing permissions and
72
4595
  * limitations under the License.
73
4596
  */
74
- class UiPolicyStudioAngularModule {
4597
+ class GioPolicyStudioModule {
4598
+ static forSpecs() {
4599
+ return {
4600
+ ngModule: GioPolicyStudioModule,
4601
+ providers: [
4602
+ {
4603
+ provide: 'FlowService',
4604
+ useClass: FlowService,
4605
+ },
4606
+ {
4607
+ provide: 'PolicyService',
4608
+ useClass: PolicyService,
4609
+ },
4610
+ {
4611
+ provide: 'ResourceService',
4612
+ useClass: ResourceService,
4613
+ },
4614
+ {
4615
+ provide: 'SpelService',
4616
+ useClass: SpelService,
4617
+ },
4618
+ ],
4619
+ };
4620
+ }
75
4621
  }
76
- UiPolicyStudioAngularModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: UiPolicyStudioAngularModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
77
- UiPolicyStudioAngularModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: UiPolicyStudioAngularModule, declarations: [UiPolicyStudioAngularComponent], exports: [UiPolicyStudioAngularComponent] });
78
- UiPolicyStudioAngularModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: UiPolicyStudioAngularModule, imports: [[]] });
79
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: UiPolicyStudioAngularModule, decorators: [{
4622
+ GioPolicyStudioModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: GioPolicyStudioModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
4623
+ GioPolicyStudioModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: GioPolicyStudioModule, declarations: [GioPolicyStudioComponent], exports: [GioPolicyStudioComponent] });
4624
+ GioPolicyStudioModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: GioPolicyStudioModule, imports: [[]] });
4625
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: GioPolicyStudioModule, decorators: [{
80
4626
  type: NgModule,
81
4627
  args: [{
82
- declarations: [UiPolicyStudioAngularComponent],
4628
+ declarations: [GioPolicyStudioComponent],
83
4629
  imports: [],
84
- exports: [UiPolicyStudioAngularComponent],
4630
+ exports: [GioPolicyStudioComponent],
4631
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
85
4632
  }]
86
4633
  }] });
87
4634
 
@@ -105,5 +4652,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImpo
105
4652
  * Generated bundle index. Do not edit.
106
4653
  */
107
4654
 
108
- export { UiPolicyStudioAngularComponent, UiPolicyStudioAngularModule, UiPolicyStudioAngularService };
4655
+ export { GioPolicyStudioComponent, GioPolicyStudioModule };
109
4656
  //# sourceMappingURL=gravitee-ui-policy-studio-angular.js.map