@aneoconsultingfr/armonik.api.angular 3.29.0-edge.13.eb211e2 → 3.29.0-edge.68.23f0ea8b

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 (113) hide show
  1. package/fesm2022/aneoconsultingfr-armonik.api.angular.mjs +29 -29
  2. package/fesm2022/aneoconsultingfr-armonik.api.angular.mjs.map +1 -1
  3. package/index.d.ts +11699 -3
  4. package/package.json +6 -8
  5. package/esm2022/aneoconsultingfr-armonik.api.angular.mjs +0 -5
  6. package/esm2022/lib/generated/applications-common.pb.mjs +0 -586
  7. package/esm2022/lib/generated/applications-fields.pb.mjs +0 -231
  8. package/esm2022/lib/generated/applications-filters.pb.mjs +0 -349
  9. package/esm2022/lib/generated/applications-service.pb.mjs +0 -2
  10. package/esm2022/lib/generated/applications-service.pbconf.mjs +0 -13
  11. package/esm2022/lib/generated/applications-service.pbsc.mjs +0 -74
  12. package/esm2022/lib/generated/auth-common.pb.mjs +0 -318
  13. package/esm2022/lib/generated/auth-service.pb.mjs +0 -2
  14. package/esm2022/lib/generated/auth-service.pbconf.mjs +0 -13
  15. package/esm2022/lib/generated/auth-service.pbsc.mjs +0 -74
  16. package/esm2022/lib/generated/events-common.pb.mjs +0 -1139
  17. package/esm2022/lib/generated/events-service.pb.mjs +0 -2
  18. package/esm2022/lib/generated/events-service.pbconf.mjs +0 -13
  19. package/esm2022/lib/generated/events-service.pbsc.mjs +0 -74
  20. package/esm2022/lib/generated/filters-common.pb.mjs +0 -774
  21. package/esm2022/lib/generated/health-checks-common.pb.mjs +0 -331
  22. package/esm2022/lib/generated/health-checks-service.pb.mjs +0 -2
  23. package/esm2022/lib/generated/health-checks-service.pbconf.mjs +0 -13
  24. package/esm2022/lib/generated/health-checks-service.pbsc.mjs +0 -74
  25. package/esm2022/lib/generated/objects.pb.mjs +0 -2721
  26. package/esm2022/lib/generated/partitions-common.pb.mjs +0 -978
  27. package/esm2022/lib/generated/partitions-fields.pb.mjs +0 -233
  28. package/esm2022/lib/generated/partitions-filters.pb.mjs +0 -431
  29. package/esm2022/lib/generated/partitions-service.pb.mjs +0 -2
  30. package/esm2022/lib/generated/partitions-service.pbconf.mjs +0 -13
  31. package/esm2022/lib/generated/partitions-service.pbsc.mjs +0 -104
  32. package/esm2022/lib/generated/result-status.pb.mjs +0 -16
  33. package/esm2022/lib/generated/results-common.pb.mjs +0 -3476
  34. package/esm2022/lib/generated/results-fields.pb.mjs +0 -238
  35. package/esm2022/lib/generated/results-filters.pb.mjs +0 -573
  36. package/esm2022/lib/generated/results-service.pb.mjs +0 -2
  37. package/esm2022/lib/generated/results-service.pbconf.mjs +0 -13
  38. package/esm2022/lib/generated/results-service.pbsc.mjs +0 -375
  39. package/esm2022/lib/generated/session-status.pb.mjs +0 -17
  40. package/esm2022/lib/generated/sessions-common.pb.mjs +0 -2638
  41. package/esm2022/lib/generated/sessions-fields.pb.mjs +0 -509
  42. package/esm2022/lib/generated/sessions-filters.pb.mjs +0 -629
  43. package/esm2022/lib/generated/sessions-service.pb.mjs +0 -2
  44. package/esm2022/lib/generated/sessions-service.pbconf.mjs +0 -13
  45. package/esm2022/lib/generated/sessions-service.pbsc.mjs +0 -344
  46. package/esm2022/lib/generated/sort-direction.pb.mjs +0 -13
  47. package/esm2022/lib/generated/task-status.pb.mjs +0 -24
  48. package/esm2022/lib/generated/tasks-common.pb.mjs +0 -3383
  49. package/esm2022/lib/generated/tasks-fields.pb.mjs +0 -518
  50. package/esm2022/lib/generated/tasks-filters.pb.mjs +0 -629
  51. package/esm2022/lib/generated/tasks-service.pb.mjs +0 -2
  52. package/esm2022/lib/generated/tasks-service.pbconf.mjs +0 -13
  53. package/esm2022/lib/generated/tasks-service.pbsc.mjs +0 -254
  54. package/esm2022/lib/generated/versions-common.pb.mjs +0 -200
  55. package/esm2022/lib/generated/versions-service.pb.mjs +0 -2
  56. package/esm2022/lib/generated/versions-service.pbconf.mjs +0 -13
  57. package/esm2022/lib/generated/versions-service.pbsc.mjs +0 -74
  58. package/esm2022/lib/index.mjs +0 -35
  59. package/esm2022/public-api.mjs +0 -5
  60. package/lib/generated/applications-common.pb.d.ts +0 -331
  61. package/lib/generated/applications-fields.pb.d.ts +0 -153
  62. package/lib/generated/applications-filters.pb.d.ts +0 -222
  63. package/lib/generated/applications-service.pb.d.ts +0 -1
  64. package/lib/generated/applications-service.pbconf.d.ts +0 -6
  65. package/lib/generated/applications-service.pbsc.d.ts +0 -38
  66. package/lib/generated/auth-common.pb.d.ts +0 -214
  67. package/lib/generated/auth-service.pb.d.ts +0 -1
  68. package/lib/generated/auth-service.pbconf.d.ts +0 -6
  69. package/lib/generated/auth-service.pbsc.d.ts +0 -38
  70. package/lib/generated/events-common.pb.d.ts +0 -612
  71. package/lib/generated/events-service.pb.d.ts +0 -1
  72. package/lib/generated/events-service.pbconf.d.ts +0 -6
  73. package/lib/generated/events-service.pbsc.d.ts +0 -38
  74. package/lib/generated/filters-common.pb.d.ts +0 -491
  75. package/lib/generated/health-checks-common.pb.d.ts +0 -220
  76. package/lib/generated/health-checks-service.pb.d.ts +0 -1
  77. package/lib/generated/health-checks-service.pbconf.d.ts +0 -6
  78. package/lib/generated/health-checks-service.pbsc.d.ts +0 -38
  79. package/lib/generated/objects.pb.d.ts +0 -1678
  80. package/lib/generated/partitions-common.pb.d.ts +0 -566
  81. package/lib/generated/partitions-fields.pb.d.ts +0 -155
  82. package/lib/generated/partitions-filters.pb.d.ts +0 -240
  83. package/lib/generated/partitions-service.pb.d.ts +0 -1
  84. package/lib/generated/partitions-service.pbconf.d.ts +0 -6
  85. package/lib/generated/partitions-service.pbsc.d.ts +0 -54
  86. package/lib/generated/result-status.pb.d.ts +0 -8
  87. package/lib/generated/results-common.pb.d.ts +0 -2121
  88. package/lib/generated/results-fields.pb.d.ts +0 -160
  89. package/lib/generated/results-filters.pb.d.ts +0 -321
  90. package/lib/generated/results-service.pb.d.ts +0 -1
  91. package/lib/generated/results-service.pbconf.d.ts +0 -6
  92. package/lib/generated/results-service.pbsc.d.ts +0 -199
  93. package/lib/generated/session-status.pb.d.ts +0 -9
  94. package/lib/generated/sessions-common.pb.d.ts +0 -1637
  95. package/lib/generated/sessions-fields.pb.d.ts +0 -323
  96. package/lib/generated/sessions-filters.pb.d.ts +0 -333
  97. package/lib/generated/sessions-service.pb.d.ts +0 -1
  98. package/lib/generated/sessions-service.pbconf.d.ts +0 -6
  99. package/lib/generated/sessions-service.pbsc.d.ts +0 -182
  100. package/lib/generated/sort-direction.pb.d.ts +0 -5
  101. package/lib/generated/task-status.pb.d.ts +0 -16
  102. package/lib/generated/tasks-common.pb.d.ts +0 -1754
  103. package/lib/generated/tasks-fields.pb.d.ts +0 -332
  104. package/lib/generated/tasks-filters.pb.d.ts +0 -333
  105. package/lib/generated/tasks-service.pb.d.ts +0 -1
  106. package/lib/generated/tasks-service.pbconf.d.ts +0 -6
  107. package/lib/generated/tasks-service.pbsc.d.ts +0 -134
  108. package/lib/generated/versions-common.pb.d.ts +0 -140
  109. package/lib/generated/versions-service.pb.d.ts +0 -1
  110. package/lib/generated/versions-service.pbconf.d.ts +0 -6
  111. package/lib/generated/versions-service.pbsc.d.ts +0 -38
  112. package/lib/index.d.ts +0 -34
  113. package/public-api.d.ts +0 -1
@@ -1,331 +0,0 @@
1
- import { BinaryReader, BinaryWriter } from 'google-protobuf';
2
- export var HealthStatusEnum;
3
- (function (HealthStatusEnum) {
4
- HealthStatusEnum[HealthStatusEnum["HEALTH_STATUS_ENUM_UNSPECIFIED"] = 0] = "HEALTH_STATUS_ENUM_UNSPECIFIED";
5
- HealthStatusEnum[HealthStatusEnum["HEALTH_STATUS_ENUM_HEALTHY"] = 1] = "HEALTH_STATUS_ENUM_HEALTHY";
6
- HealthStatusEnum[HealthStatusEnum["HEALTH_STATUS_ENUM_DEGRADED"] = 2] = "HEALTH_STATUS_ENUM_DEGRADED";
7
- HealthStatusEnum[HealthStatusEnum["HEALTH_STATUS_ENUM_UNHEALTHY"] = 3] = "HEALTH_STATUS_ENUM_UNHEALTHY";
8
- })(HealthStatusEnum || (HealthStatusEnum = {}));
9
- /**
10
- * Message implementation for armonik.api.grpc.v1.health_checks.CheckHealthRequest
11
- */
12
- export class CheckHealthRequest {
13
- static { this.id = 'armonik.api.grpc.v1.health_checks.CheckHealthRequest'; }
14
- /**
15
- * Deserialize binary data to message
16
- * @param instance message instance
17
- */
18
- static deserializeBinary(bytes) {
19
- const instance = new CheckHealthRequest();
20
- CheckHealthRequest.deserializeBinaryFromReader(instance, new BinaryReader(bytes));
21
- return instance;
22
- }
23
- /**
24
- * Check all the properties and set default protobuf values if necessary
25
- * @param _instance message instance
26
- */
27
- static refineValues(_instance) { }
28
- /**
29
- * Deserializes / reads binary message into message instance using provided binary reader
30
- * @param _instance message instance
31
- * @param _reader binary reader instance
32
- */
33
- static deserializeBinaryFromReader(_instance, _reader) {
34
- while (_reader.nextField()) {
35
- if (_reader.isEndGroup())
36
- break;
37
- switch (_reader.getFieldNumber()) {
38
- default:
39
- _reader.skipField();
40
- }
41
- }
42
- CheckHealthRequest.refineValues(_instance);
43
- }
44
- /**
45
- * Serializes a message to binary format using provided binary reader
46
- * @param _instance message instance
47
- * @param _writer binary writer instance
48
- */
49
- static serializeBinaryToWriter(_instance, _writer) { }
50
- /**
51
- * Message constructor. Initializes the properties and applies default Protobuf values if necessary
52
- * @param _value initial values object or instance of CheckHealthRequest to deeply clone from
53
- */
54
- constructor(_value) {
55
- _value = _value || {};
56
- CheckHealthRequest.refineValues(this);
57
- }
58
- /**
59
- * Serialize message to binary data
60
- * @param instance message instance
61
- */
62
- serializeBinary() {
63
- const writer = new BinaryWriter();
64
- CheckHealthRequest.serializeBinaryToWriter(this, writer);
65
- return writer.getResultBuffer();
66
- }
67
- /**
68
- * Cast message to standard JavaScript object (all non-primitive values are deeply cloned)
69
- */
70
- toObject() {
71
- return {};
72
- }
73
- /**
74
- * Convenience method to support JSON.stringify(message), replicates the structure of toObject()
75
- */
76
- toJSON() {
77
- return this.toObject();
78
- }
79
- /**
80
- * Cast message to JSON using protobuf JSON notation: https://developers.google.com/protocol-buffers/docs/proto3#json
81
- * Attention: output differs from toObject() e.g. enums are represented as names and not as numbers, Timestamp is an ISO Date string format etc.
82
- * If the message itself or some of descendant messages is google.protobuf.Any, you MUST provide a message pool as options. If not, the messagePool is not required
83
- */
84
- toProtobufJSON(
85
- // @ts-ignore
86
- options) {
87
- return {};
88
- }
89
- }
90
- /**
91
- * Message implementation for armonik.api.grpc.v1.health_checks.CheckHealthResponse
92
- */
93
- export class CheckHealthResponse {
94
- static { this.id = 'armonik.api.grpc.v1.health_checks.CheckHealthResponse'; }
95
- /**
96
- * Deserialize binary data to message
97
- * @param instance message instance
98
- */
99
- static deserializeBinary(bytes) {
100
- const instance = new CheckHealthResponse();
101
- CheckHealthResponse.deserializeBinaryFromReader(instance, new BinaryReader(bytes));
102
- return instance;
103
- }
104
- /**
105
- * Check all the properties and set default protobuf values if necessary
106
- * @param _instance message instance
107
- */
108
- static refineValues(_instance) {
109
- _instance.services = _instance.services || [];
110
- }
111
- /**
112
- * Deserializes / reads binary message into message instance using provided binary reader
113
- * @param _instance message instance
114
- * @param _reader binary reader instance
115
- */
116
- static deserializeBinaryFromReader(_instance, _reader) {
117
- while (_reader.nextField()) {
118
- if (_reader.isEndGroup())
119
- break;
120
- switch (_reader.getFieldNumber()) {
121
- case 1:
122
- const messageInitializer1 = new CheckHealthResponse.ServiceHealth();
123
- _reader.readMessage(messageInitializer1, CheckHealthResponse.ServiceHealth.deserializeBinaryFromReader);
124
- (_instance.services = _instance.services || []).push(messageInitializer1);
125
- break;
126
- default:
127
- _reader.skipField();
128
- }
129
- }
130
- CheckHealthResponse.refineValues(_instance);
131
- }
132
- /**
133
- * Serializes a message to binary format using provided binary reader
134
- * @param _instance message instance
135
- * @param _writer binary writer instance
136
- */
137
- static serializeBinaryToWriter(_instance, _writer) {
138
- if (_instance.services && _instance.services.length) {
139
- _writer.writeRepeatedMessage(1, _instance.services, CheckHealthResponse.ServiceHealth.serializeBinaryToWriter);
140
- }
141
- }
142
- /**
143
- * Message constructor. Initializes the properties and applies default Protobuf values if necessary
144
- * @param _value initial values object or instance of CheckHealthResponse to deeply clone from
145
- */
146
- constructor(_value) {
147
- _value = _value || {};
148
- this.services = (_value.services || []).map(m => new CheckHealthResponse.ServiceHealth(m));
149
- CheckHealthResponse.refineValues(this);
150
- }
151
- get services() {
152
- return this._services;
153
- }
154
- set services(value) {
155
- this._services = value;
156
- }
157
- /**
158
- * Serialize message to binary data
159
- * @param instance message instance
160
- */
161
- serializeBinary() {
162
- const writer = new BinaryWriter();
163
- CheckHealthResponse.serializeBinaryToWriter(this, writer);
164
- return writer.getResultBuffer();
165
- }
166
- /**
167
- * Cast message to standard JavaScript object (all non-primitive values are deeply cloned)
168
- */
169
- toObject() {
170
- return {
171
- services: (this.services || []).map(m => m.toObject())
172
- };
173
- }
174
- /**
175
- * Convenience method to support JSON.stringify(message), replicates the structure of toObject()
176
- */
177
- toJSON() {
178
- return this.toObject();
179
- }
180
- /**
181
- * Cast message to JSON using protobuf JSON notation: https://developers.google.com/protocol-buffers/docs/proto3#json
182
- * Attention: output differs from toObject() e.g. enums are represented as names and not as numbers, Timestamp is an ISO Date string format etc.
183
- * If the message itself or some of descendant messages is google.protobuf.Any, you MUST provide a message pool as options. If not, the messagePool is not required
184
- */
185
- toProtobufJSON(
186
- // @ts-ignore
187
- options) {
188
- return {
189
- services: (this.services || []).map(m => m.toProtobufJSON(options))
190
- };
191
- }
192
- }
193
- (function (CheckHealthResponse) {
194
- /**
195
- * Message implementation for armonik.api.grpc.v1.health_checks.CheckHealthResponse.ServiceHealth
196
- */
197
- class ServiceHealth {
198
- static { this.id = 'armonik.api.grpc.v1.health_checks.CheckHealthResponse.ServiceHealth'; }
199
- /**
200
- * Deserialize binary data to message
201
- * @param instance message instance
202
- */
203
- static deserializeBinary(bytes) {
204
- const instance = new ServiceHealth();
205
- ServiceHealth.deserializeBinaryFromReader(instance, new BinaryReader(bytes));
206
- return instance;
207
- }
208
- /**
209
- * Check all the properties and set default protobuf values if necessary
210
- * @param _instance message instance
211
- */
212
- static refineValues(_instance) {
213
- _instance.name = _instance.name || '';
214
- _instance.message = _instance.message || '';
215
- _instance.healthy = _instance.healthy || 0;
216
- }
217
- /**
218
- * Deserializes / reads binary message into message instance using provided binary reader
219
- * @param _instance message instance
220
- * @param _reader binary reader instance
221
- */
222
- static deserializeBinaryFromReader(_instance, _reader) {
223
- while (_reader.nextField()) {
224
- if (_reader.isEndGroup())
225
- break;
226
- switch (_reader.getFieldNumber()) {
227
- case 1:
228
- _instance.name = _reader.readString();
229
- break;
230
- case 2:
231
- _instance.message = _reader.readString();
232
- break;
233
- case 3:
234
- _instance.healthy = _reader.readEnum();
235
- break;
236
- default:
237
- _reader.skipField();
238
- }
239
- }
240
- ServiceHealth.refineValues(_instance);
241
- }
242
- /**
243
- * Serializes a message to binary format using provided binary reader
244
- * @param _instance message instance
245
- * @param _writer binary writer instance
246
- */
247
- static serializeBinaryToWriter(_instance, _writer) {
248
- if (_instance.name) {
249
- _writer.writeString(1, _instance.name);
250
- }
251
- if (_instance.message) {
252
- _writer.writeString(2, _instance.message);
253
- }
254
- if (_instance.healthy) {
255
- _writer.writeEnum(3, _instance.healthy);
256
- }
257
- }
258
- /**
259
- * Message constructor. Initializes the properties and applies default Protobuf values if necessary
260
- * @param _value initial values object or instance of ServiceHealth to deeply clone from
261
- */
262
- constructor(_value) {
263
- _value = _value || {};
264
- this.name = _value.name;
265
- this.message = _value.message;
266
- this.healthy = _value.healthy;
267
- ServiceHealth.refineValues(this);
268
- }
269
- get name() {
270
- return this._name;
271
- }
272
- set name(value) {
273
- this._name = value;
274
- }
275
- get message() {
276
- return this._message;
277
- }
278
- set message(value) {
279
- this._message = value;
280
- }
281
- get healthy() {
282
- return this._healthy;
283
- }
284
- set healthy(value) {
285
- this._healthy = value;
286
- }
287
- /**
288
- * Serialize message to binary data
289
- * @param instance message instance
290
- */
291
- serializeBinary() {
292
- const writer = new BinaryWriter();
293
- ServiceHealth.serializeBinaryToWriter(this, writer);
294
- return writer.getResultBuffer();
295
- }
296
- /**
297
- * Cast message to standard JavaScript object (all non-primitive values are deeply cloned)
298
- */
299
- toObject() {
300
- return {
301
- name: this.name,
302
- message: this.message,
303
- healthy: this.healthy
304
- };
305
- }
306
- /**
307
- * Convenience method to support JSON.stringify(message), replicates the structure of toObject()
308
- */
309
- toJSON() {
310
- return this.toObject();
311
- }
312
- /**
313
- * Cast message to JSON using protobuf JSON notation: https://developers.google.com/protocol-buffers/docs/proto3#json
314
- * Attention: output differs from toObject() e.g. enums are represented as names and not as numbers, Timestamp is an ISO Date string format etc.
315
- * If the message itself or some of descendant messages is google.protobuf.Any, you MUST provide a message pool as options. If not, the messagePool is not required
316
- */
317
- toProtobufJSON(
318
- // @ts-ignore
319
- options) {
320
- return {
321
- name: this.name,
322
- message: this.message,
323
- healthy: HealthStatusEnum[this.healthy === null || this.healthy === undefined
324
- ? 0
325
- : this.healthy]
326
- };
327
- }
328
- }
329
- CheckHealthResponse.ServiceHealth = ServiceHealth;
330
- })(CheckHealthResponse || (CheckHealthResponse = {}));
331
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhbHRoLWNoZWNrcy1jb21tb24ucGIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmVvY29uc3VsdGluZ2ZyL2FybW9uaWsuYXBpLmFuZ3VsYXIvc3JjL2xpYi9nZW5lcmF0ZWQvaGVhbHRoLWNoZWNrcy1jb21tb24ucGIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBV0EsT0FBTyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQWMsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RSxNQUFNLENBQU4sSUFBWSxnQkFLWDtBQUxELFdBQVksZ0JBQWdCO0lBQzFCLDJHQUFrQyxDQUFBO0lBQ2xDLG1HQUE4QixDQUFBO0lBQzlCLHFHQUErQixDQUFBO0lBQy9CLHVHQUFnQyxDQUFBO0FBQ2xDLENBQUMsRUFMVyxnQkFBZ0IsS0FBaEIsZ0JBQWdCLFFBSzNCO0FBQ0Q7O0dBRUc7QUFDSCxNQUFNLE9BQU8sa0JBQWtCO2FBQ3RCLE9BQUUsR0FBRyxzREFBc0QsQ0FBQztJQUVuRTs7O09BR0c7SUFDSCxNQUFNLENBQUMsaUJBQWlCLENBQUMsS0FBaUI7UUFDeEMsTUFBTSxRQUFRLEdBQUcsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO1FBQzFDLGtCQUFrQixDQUFDLDJCQUEyQixDQUM1QyxRQUFRLEVBQ1IsSUFBSSxZQUFZLENBQUMsS0FBSyxDQUFDLENBQ3hCLENBQUM7UUFDRixPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLFlBQVksQ0FBQyxTQUE2QixJQUFHLENBQUM7SUFFckQ7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQywyQkFBMkIsQ0FDaEMsU0FBNkIsRUFDN0IsT0FBcUI7UUFFckIsT0FBTyxPQUFPLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQztZQUMzQixJQUFJLE9BQU8sQ0FBQyxVQUFVLEVBQUU7Z0JBQUUsTUFBTTtZQUVoQyxRQUFRLE9BQU8sQ0FBQyxjQUFj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LENBQUMsT0FBTyxLQUFLLElBQUksSUFBSSxJQUFJLENBQUMsT0FBTyxLQUFLLFNBQVM7b0JBQ2pELENBQUMsQ0FBQyxDQUFDO29CQUNILENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUNqQjthQUNKLENBQUM7UUFDSixDQUFDOztJQTlKVSxpQ0FBYSxnQkErSnpCLENBQUE7QUFvQkgsQ0FBQyxFQXJNYSxtQkFBbUIsS0FBbkIsbUJBQW1CLFFBcU1oQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIHRzbGludDpkaXNhYmxlICovXG4vKiBlc2xpbnQtZGlzYWJsZSAqL1xuLy8gQHRzLW5vY2hlY2tcbi8vXG4vLyBUSElTIElTIEEgR0VORVJBVEVEIEZJTEVcbi8vIERPIE5PVCBNT0RJRlkgSVQhIFlPVVIgQ0hBTkdFUyBXSUxMIEJFIExPU1RcbmltcG9ydCB7XG4gIEdycGNNZXNzYWdlLFxuICBSZWN1cnNpdmVQYXJ0aWFsLFxuICBUb1Byb3RvYnVmSlNPTk9wdGlvbnNcbn0gZnJvbSAnQG5neC1ncnBjL2NvbW1vbic7XG5pbXBvcnQgeyBCaW5hcnlSZWFkZXIsIEJpbmFyeVdyaXRlciwgQnl0ZVNvdXJjZSB9IGZyb20gJ2dvb2dsZS1wcm90b2J1Zic7XG5leHBvcnQgZW51bSBIZWFsdGhTdGF0dXNFbnVtIHtcbiAgSEVBTFRIX1NUQVRVU19FTlVNX1VOU1BFQ0lGSUVEID0gMCxcbiAgSEVBTFRIX1NUQVRVU19FTlVNX0hFQUxUSFkgPSAxLFxuICBIRUFMVEhfU1RBVFVTX0VOVU1fREVHUkFERUQgPSAyLFxuICBIRUFMVEhfU1RBVFVTX0VOVU1fVU5IRUFMVEhZID0gM1xufVxuLyoqXG4gKiBNZXNzYWdlIGltcGxlbWVudGF0aW9uIGZvciBhcm1vbmlrLmFwaS5ncnBjLnYxLmhlYWx0aF9jaGVja3MuQ2hlY2tIZWFsdGhSZXF1ZXN0XG4gKi9cbmV4cG9ydCBjbGFzcyBDaGVja0hlYWx0aFJlcXVlc3QgaW1wbGVtZW50cyBHcnBjTWVzc2FnZSB7XG4gIHN0YXRpYyBpZCA9ICdhcm1vbmlrLmFwaS5ncnBjLnYxLmhlYWx0aF9jaGVja3MuQ2hlY2tIZWFsdGhSZXF1ZXN0JztcblxuICAvKipcbiAgICogRGVzZXJpYWxpemUgYmluYXJ5IGRhdGEgdG8gbWVzc2FnZVxuICAgKiBAcGFyYW0gaW5zdGFuY2UgbWVzc2FnZSBpbnN0YW5jZVxuICAgKi9cbiAgc3RhdGljIGRlc2VyaWFsaXplQmluYXJ5KGJ5dGVzOiBCeXRlU291cmNlKSB7XG4gICAgY29uc3QgaW5zdGFuY2UgPSBuZXcgQ2hlY2tIZWFsdGhSZXF1ZXN0KCk7XG4gICAgQ2hlY2tIZWFsdGhSZXF1ZXN0LmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlcihcbiAgICAgIGluc3RhbmNlLFxuICAgICAgbmV3IEJpbmFyeVJlYWRlcihieXRlcylcbiAgICApO1xuICAgIHJldHVybiBpbnN0YW5jZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBhbGwgdGhlIHByb3BlcnRpZXMgYW5kIHNldCBkZWZhdWx0IHByb3RvYnVmIHZhbHVlcyBpZiBuZWNlc3NhcnlcbiAgICogQHBhcmFtIF9pbnN0YW5jZSBtZXNzYWdlIGluc3RhbmNlXG4gICAqL1xuICBzdGF0aWMgcmVmaW5lVmFsdWVzKF9pbnN0YW5jZTogQ2hlY2tIZWFsdGhSZXF1ZXN0KSB7fVxuXG4gIC8qKlxuICAgKiBEZXNlcmlhbGl6ZXMgLyByZWFkcyBiaW5hcnkgbWVzc2FnZSBpbnRvIG1lc3NhZ2UgaW5zdGFuY2UgdXNpbmcgcHJvdmlkZWQgYmluYXJ5IHJlYWRlclxuICAgKiBAcGFyYW0gX2luc3RhbmNlIG1lc3NhZ2UgaW5zdGFuY2VcbiAgICogQHBhcmFtIF9yZWFkZXIgYmluYXJ5IHJlYWRlciBpbnN0YW5jZVxuICAgKi9cbiAgc3RhdGljIGRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlcihcbiAgICBfaW5zdGFuY2U6IENoZWNrSGVhbHRoUmVxdWVzdCxcbiAgICBfcmVhZGVyOiBCaW5hcnlSZWFkZXJcbiAgKSB7XG4gICAgd2hpbGUgKF9yZWFkZXIubmV4dEZpZWxkKCkpIHtcbiAgICAgIGlmIChfcmVhZGVyLmlzRW5kR3JvdXAoKSkgYnJlYWs7XG5cbiAgICAgIHN3aXRjaCAoX3JlYWRlci5nZXRGaWVsZE51bWJlcigpKSB7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgX3JlYWRlci5za2lwRmllbGQoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBDaGVja0hlYWx0aFJlcXVlc3QucmVmaW5lVmFsdWVzKF9pbnN0YW5jZSk7XG4gIH1cblxuICAvKipcbiAgICogU2VyaWFsaXplcyBhIG1lc3NhZ2UgdG8gYmluYXJ5IGZvcm1hdCB1c2luZyBwcm92aWRlZCBiaW5hcnkgcmVhZGVyXG4gICAqIEBwYXJhbSBfaW5zdGFuY2UgbWVzc2FnZSBpbnN0YW5jZVxuICAgKiBAcGFyYW0gX3dyaXRlciBiaW5hcnkgd3JpdGVyIGluc3RhbmNlXG4gICAqL1xuICBzdGF0aWMgc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXIoXG4gICAgX2luc3RhbmNlOiBDaGVja0hlYWx0aFJlcXVlc3QsXG4gICAgX3dyaXRlcjogQmluYXJ5V3JpdGVyXG4gICkge31cblxuICAvKipcbiAgICogTWVzc2FnZSBjb25zdHJ1Y3Rvci4gSW5pdGlhbGl6ZXMgdGhlIHByb3BlcnRpZXMgYW5kIGFwcGxpZXMgZGVmYXVsdCBQcm90b2J1ZiB2YWx1ZXMgaWYgbmVjZXNzYXJ5XG4gICAqIEBwYXJhbSBfdmFsdWUgaW5pdGlhbCB2YWx1ZXMgb2JqZWN0IG9yIGluc3RhbmNlIG9mIENoZWNrSGVhbHRoUmVxdWVzdCB0byBkZWVwbHkgY2xvbmUgZnJvbVxuICAgKi9cbiAgY29uc3RydWN0b3IoX3ZhbHVlPzogUmVjdXJzaXZlUGFydGlhbDxDaGVja0hlYWx0aFJlcXVlc3QuQXNPYmplY3Q+KSB7XG4gICAgX3ZhbHVlID0gX3ZhbHVlIHx8IHt9O1xuICAgIENoZWNrSGVhbHRoUmVxdWVzdC5yZWZpbmVWYWx1ZXModGhpcyk7XG4gIH1cblxuICAvKipcbiAgICogU2VyaWFsaXplIG1lc3NhZ2UgdG8gYmluYXJ5IGRhdGFcbiAgICogQHBhcmFtIGluc3RhbmNlIG1lc3NhZ2UgaW5zdGFuY2VcbiAgICovXG4gIHNlcmlhbGl6ZUJpbmFyeSgpIHtcbiAgICBjb25zdCB3cml0ZXIgPSBuZXcgQmluYXJ5V3JpdGVyKCk7XG4gICAgQ2hlY2tIZWFsdGhSZXF1ZXN0LnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyKHRoaXMsIHdyaXRlcik7XG4gICAgcmV0dXJuIHdyaXRlci5nZXRSZXN1bHRCdWZmZXIoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYXN0IG1lc3NhZ2UgdG8gc3RhbmRhcmQgSmF2YVNjcmlwdCBvYmplY3QgKGFsbCBub24tcHJpbWl0aXZlIHZhbHVlcyBhcmUgZGVlcGx5IGNsb25lZClcbiAgICovXG4gIHRvT2JqZWN0KCk6IENoZWNrSGVhbHRoUmVxdWVzdC5Bc09iamVjdCB7XG4gICAgcmV0dXJuIHt9O1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlbmllbmNlIG1ldGhvZCB0byBzdXBwb3J0IEpTT04uc3RyaW5naWZ5KG1lc3NhZ2UpLCByZXBsaWNhdGVzIHRoZSBzdHJ1Y3R1cmUgb2YgdG9PYmplY3QoKVxuICAgKi9cbiAgdG9KU09OKCkge1xuICAgIHJldHVybiB0aGlzLnRvT2JqZWN0KCk7XG4gIH1cblxuICAvKipcbiAgICogQ2FzdCBtZXNzYWdlIHRvIEpTT04gdXNpbmcgcHJvdG9idWYgSlNPTiBub3RhdGlvbjogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy9kb2NzL3Byb3RvMyNqc29uXG4gICAqIEF0dGVudGlvbjogb3V0cHV0IGRpZmZlcnMgZnJvbSB0b09iamVjdCgpIGUuZy4gZW51bXMgYXJlIHJlcHJlc2VudGVkIGFzIG5hbWVzIGFuZCBub3QgYXMgbnVtYmVycywgVGltZXN0YW1wIGlzIGFuIElTTyBEYXRlIHN0cmluZyBmb3JtYXQgZXRjLlxuICAgKiBJZiB0aGUgbWVzc2FnZSBpdHNlbGYgb3Igc29tZSBvZiBkZXNjZW5kYW50IG1lc3NhZ2VzIGlzIGdvb2dsZS5wcm90b2J1Zi5BbnksIHlvdSBNVVNUIHByb3ZpZGUgYSBtZXNzYWdlIHBvb2wgYXMgb3B0aW9ucy4gSWYgbm90LCB0aGUgbWVzc2FnZVBvb2wgaXMgbm90IHJlcXVpcmVkXG4gICAqL1xuICB0b1Byb3RvYnVmSlNPTihcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgb3B0aW9ucz86IFRvUHJvdG9idWZKU09OT3B0aW9uc1xuICApOiBDaGVja0hlYWx0aFJlcXVlc3QuQXNQcm90b2J1ZkpTT04ge1xuICAgIHJldHVybiB7fTtcbiAgfVxufVxuZXhwb3J0IG1vZHVsZSBDaGVja0hlYWx0aFJlcXVlc3Qge1xuICAvKipcbiAgICogU3RhbmRhcmQgSmF2YVNjcmlwdCBvYmplY3QgcmVwcmVzZW50YXRpb24gZm9yIENoZWNrSGVhbHRoUmVxdWVzdFxuICAgKi9cbiAgZXhwb3J0IGludGVyZmFjZSBBc09iamVjdCB7fVxuXG4gIC8qKlxuICAgKiBQcm90b2J1ZiBKU09OIHJlcHJlc2VudGF0aW9uIGZvciBDaGVja0hlYWx0aFJlcXVlc3RcbiAgICovXG4gIGV4cG9ydCBpbnRlcmZhY2UgQXNQcm90b2J1ZkpTT04ge31cbn1cblxuLyoqXG4gKiBNZXNzYWdlIGltcGxlbWVudGF0aW9uIGZvciBhcm1vbmlrLmFwaS5ncnBjLnYxLmhlYWx0aF9jaGVja3MuQ2hlY2tIZWFsdGhSZXNwb25zZVxuICovXG5leHBvcnQgY2xhc3MgQ2hlY2tIZWFsdGhSZXNwb25zZSBpbXBsZW1lbnRzIEdycGNNZXNzYWdlIHtcbiAgc3RhdGljIGlkID0gJ2FybW9uaWsuYXBpLmdycGMudjEuaGVhbHRoX2NoZWNrcy5DaGVja0hlYWx0aFJlc3BvbnNlJztcblxuICAvKipcbiAgICogRGVzZXJpYWxpemUgYmluYXJ5IGRhdGEgdG8gbWVzc2FnZVxuICAgKiBAcGFyYW0gaW5zdGFuY2UgbWVzc2FnZSBpbnN0YW5jZVxuICAgKi9cbiAgc3RhdGljIGRlc2VyaWFsaXplQmluYXJ5KGJ5dGVzOiBCeXRlU291cmNlKSB7XG4gICAgY29uc3QgaW5zdGFuY2UgPSBuZXcgQ2hlY2tIZWFsdGhSZXNwb25zZSgpO1xuICAgIENoZWNrSGVhbHRoUmVzcG9uc2UuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyKFxuICAgICAgaW5zdGFuY2UsXG4gICAgICBuZXcgQmluYXJ5UmVhZGVyKGJ5dGVzKVxuICAgICk7XG4gICAgcmV0dXJuIGluc3RhbmNlO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGFsbCB0aGUgcHJvcGVydGllcyBhbmQgc2V0IGRlZmF1bHQgcHJvdG9idWYgdmFsdWVzIGlmIG5lY2Vzc2FyeVxuICAgKiBAcGFyYW0gX2luc3RhbmNlIG1lc3NhZ2UgaW5zdGFuY2VcbiAgICovXG4gIHN0YXRpYyByZWZpbmVWYWx1ZXMoX2luc3RhbmNlOiBDaGVja0hlYWx0aFJlc3BvbnNlKSB7XG4gICAgX2luc3RhbmNlLnNlcnZpY2VzID0gX2luc3RhbmNlLnNlcnZpY2VzIHx8IFtdO1xuICB9XG5cbiAgLyoqXG4gICAqIERlc2VyaWFsaXplcyAvIHJlYWRzIGJpbmFyeSBtZXNzYWdlIGludG8gbWVzc2FnZSBpbnN0YW5jZSB1c2luZyBwcm92aWRlZCBiaW5hcnkgcmVhZGVyXG4gICAqIEBwYXJhbSBfaW5zdGFuY2UgbWVzc2FnZSBpbnN0YW5jZVxuICAgKiBAcGFyYW0gX3JlYWRlciBiaW5hcnkgcmVhZGVyIGluc3RhbmNlXG4gICAqL1xuICBzdGF0aWMgZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyKFxuICAgIF9pbnN0YW5jZTogQ2hlY2tIZWFsdGhSZXNwb25zZSxcbiAgICBfcmVhZGVyOiBCaW5hcnlSZWFkZXJcbiAgKSB7XG4gICAgd2hpbGUgKF9yZWFkZXIubmV4dEZpZWxkKCkpIHtcbiAgICAgIGlmIChfcmVhZGVyLmlzRW5kR3JvdXAoKSkgYnJlYWs7XG5cbiAgICAgIHN3aXRjaCAoX3JlYWRlci5nZXRGaWVsZE51bWJlcigpKSB7XG4gICAgICAgIGNhc2UgMTpcbiAgICAgICAgICBjb25zdCBtZXNzYWdlSW5pdGlhbGl6ZXIxID0gbmV3IENoZWNrSGVhbHRoUmVzcG9uc2UuU2VydmljZUhlYWx0aCgpO1xuICAgICAgICAgIF9yZWFkZXIucmVhZE1lc3NhZ2UoXG4gICAgICAgICAgICBtZXNzYWdlSW5pdGlhbGl6ZXIxLFxuICAgICAgICAgICAgQ2hlY2tIZWFsdGhSZXNwb25zZS5TZXJ2aWNlSGVhbHRoLmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlclxuICAgICAgICAgICk7XG4gICAgICAgICAgKF9pbnN0YW5jZS5zZXJ2aWNlcyA9IF9pbnN0YW5jZS5zZXJ2aWNlcyB8fCBbXSkucHVzaChcbiAgICAgICAgICAgIG1lc3NhZ2VJbml0aWFsaXplcjFcbiAgICAgICAgICApO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIF9yZWFkZXIuc2tpcEZpZWxkKCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQ2hlY2tIZWFsdGhSZXNwb25zZS5yZWZpbmVWYWx1ZXMoX2luc3RhbmNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXJpYWxpemVzIGEgbWVzc2FnZSB0byBiaW5hcnkgZm9ybWF0IHVzaW5nIHByb3ZpZGVkIGJpbmFyeSByZWFkZXJcbiAgICogQHBhcmFtIF9pbnN0YW5jZSBtZXNzYWdlIGluc3RhbmNlXG4gICAqIEBwYXJhbSBfd3JpdGVyIGJpbmFyeSB3cml0ZXIgaW5zdGFuY2VcbiAgICovXG4gIHN0YXRpYyBzZXJpYWxpemVCaW5hcnlUb1dyaXRlcihcbiAgICBfaW5zdGFuY2U6IENoZWNrSGVhbHRoUmVzcG9uc2UsXG4gICAgX3dyaXRlcjogQmluYXJ5V3JpdGVyXG4gICkge1xuICAgIGlmIChfaW5zdGFuY2Uuc2VydmljZXMgJiYgX2luc3RhbmNlLnNlcnZpY2VzLmxlbmd0aCkge1xuICAgICAgX3dyaXRlci53cml0ZVJlcGVhdGVkTWVzc2FnZShcbiAgICAgICAgMSxcbiAgICAgICAgX2luc3RhbmNlLnNlcnZpY2VzIGFzIGFueSxcbiAgICAgICAgQ2hlY2tIZWFsdGhSZXNwb25zZS5TZXJ2aWNlSGVhbHRoLnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3NlcnZpY2VzPzogQ2hlY2tIZWFsdGhSZXNwb25zZS5TZXJ2aWNlSGVhbHRoW107XG5cbiAgLyoqXG4gICAqIE1lc3NhZ2UgY29uc3RydWN0b3IuIEluaXRpYWxpemVzIHRoZSBwcm9wZXJ0aWVzIGFuZCBhcHBsaWVzIGRlZmF1bHQgUHJvdG9idWYgdmFsdWVzIGlmIG5lY2Vzc2FyeVxuICAgKiBAcGFyYW0gX3ZhbHVlIGluaXRpYWwgdmFsdWVzIG9iamVjdCBvciBpbnN0YW5jZSBvZiBDaGVja0hlYWx0aFJlc3BvbnNlIHRvIGRlZXBseSBjbG9uZSBmcm9tXG4gICAqL1xuICBjb25zdHJ1Y3RvcihfdmFsdWU/OiBSZWN1cnNpdmVQYXJ0aWFsPENoZWNrSGVhbHRoUmVzcG9uc2UuQXNPYmplY3Q+KSB7XG4gICAgX3ZhbHVlID0gX3ZhbHVlIHx8IHt9O1xuICAgIHRoaXMuc2VydmljZXMgPSAoX3ZhbHVlLnNlcnZpY2VzIHx8IFtdKS5tYXAoXG4gICAgICBtID0+IG5ldyBDaGVja0hlYWx0aFJlc3BvbnNlLlNlcnZpY2VIZWFsdGgobSlcbiAgICApO1xuICAgIENoZWNrSGVhbHRoUmVzcG9uc2UucmVmaW5lVmFsdWVzKHRoaXMpO1xuICB9XG4gIGdldCBzZXJ2aWNlcygpOiBDaGVja0hlYWx0aFJlc3BvbnNlLlNlcnZpY2VIZWFsdGhbXSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX3NlcnZpY2VzO1xuICB9XG4gIHNldCBzZXJ2aWNlcyh2YWx1ZTogQ2hlY2tIZWFsdGhSZXNwb25zZS5TZXJ2aWNlSGVhbHRoW10gfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9zZXJ2aWNlcyA9IHZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFNlcmlhbGl6ZSBtZXNzYWdlIHRvIGJpbmFyeSBkYXRhXG4gICAqIEBwYXJhbSBpbnN0YW5jZSBtZXNzYWdlIGluc3RhbmNlXG4gICAqL1xuICBzZXJpYWxpemVCaW5hcnkoKSB7XG4gICAgY29uc3Qgd3JpdGVyID0gbmV3IEJpbmFyeVdyaXRlcigpO1xuICAgIENoZWNrSGVhbHRoUmVzcG9uc2Uuc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXIodGhpcywgd3JpdGVyKTtcbiAgICByZXR1cm4gd3JpdGVyLmdldFJlc3VsdEJ1ZmZlcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIENhc3QgbWVzc2FnZSB0byBzdGFuZGFyZCBKYXZhU2NyaXB0IG9iamVjdCAoYWxsIG5vbi1wcmltaXRpdmUgdmFsdWVzIGFyZSBkZWVwbHkgY2xvbmVkKVxuICAgKi9cbiAgdG9PYmplY3QoKTogQ2hlY2tIZWFsdGhSZXNwb25zZS5Bc09iamVjdCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHNlcnZpY2VzOiAodGhpcy5zZXJ2aWNlcyB8fCBbXSkubWFwKG0gPT4gbS50b09iamVjdCgpKVxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQ29udmVuaWVuY2UgbWV0aG9kIHRvIHN1cHBvcnQgSlNPTi5zdHJpbmdpZnkobWVzc2FnZSksIHJlcGxpY2F0ZXMgdGhlIHN0cnVjdHVyZSBvZiB0b09iamVjdCgpXG4gICAqL1xuICB0b0pTT04oKSB7XG4gICAgcmV0dXJuIHRoaXMudG9PYmplY3QoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYXN0IG1lc3NhZ2UgdG8gSlNPTiB1c2luZyBwcm90b2J1ZiBKU09OIG5vdGF0aW9uOiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzL2RvY3MvcHJvdG8zI2pzb25cbiAgICogQXR0ZW50aW9uOiBvdXRwdXQgZGlmZmVycyBmcm9tIHRvT2JqZWN0KCkgZS5nLiBlbnVtcyBhcmUgcmVwcmVzZW50ZWQgYXMgbmFtZXMgYW5kIG5vdCBhcyBudW1iZXJzLCBUaW1lc3RhbXAgaXMgYW4gSVNPIERhdGUgc3RyaW5nIGZvcm1hdCBldGMuXG4gICAqIElmIHRoZSBtZXNzYWdlIGl0c2VsZiBvciBzb21lIG9mIGRlc2NlbmRhbnQgbWVzc2FnZXMgaXMgZ29vZ2xlLnByb3RvYnVmLkFueSwgeW91IE1VU1QgcHJvdmlkZSBhIG1lc3NhZ2UgcG9vbCBhcyBvcHRpb25zLiBJZiBub3QsIHRoZSBtZXNzYWdlUG9vbCBpcyBub3QgcmVxdWlyZWRcbiAgICovXG4gIHRvUHJvdG9idWZKU09OKFxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBvcHRpb25zPzogVG9Qcm90b2J1ZkpTT05PcHRpb25zXG4gICk6IENoZWNrSGVhbHRoUmVzcG9uc2UuQXNQcm90b2J1ZkpTT04ge1xuICAgIHJldHVybiB7XG4gICAgICBzZXJ2aWNlczogKHRoaXMuc2VydmljZXMgfHwgW10pLm1hcChtID0+IG0udG9Qcm90b2J1ZkpTT04ob3B0aW9ucykpXG4gICAgfTtcbiAgfVxufVxuZXhwb3J0IG1vZHVsZSBDaGVja0hlYWx0aFJlc3BvbnNlIHtcbiAgLyoqXG4gICAqIFN0YW5kYXJkIEphdmFTY3JpcHQgb2JqZWN0IHJlcHJlc2VudGF0aW9uIGZvciBDaGVja0hlYWx0aFJlc3BvbnNlXG4gICAqL1xuICBleHBvcnQgaW50ZXJmYWNlIEFzT2JqZWN0IHtcbiAgICBzZXJ2aWNlcz86IENoZWNrSGVhbHRoUmVzcG9uc2UuU2VydmljZUhlYWx0aC5Bc09iamVjdFtdO1xuICB9XG5cbiAgLyoqXG4gICAqIFByb3RvYnVmIEpTT04gcmVwcmVzZW50YXRpb24gZm9yIENoZWNrSGVhbHRoUmVzcG9uc2VcbiAgICovXG4gIGV4cG9ydCBpbnRlcmZhY2UgQXNQcm90b2J1ZkpTT04ge1xuICAgIHNlcnZpY2VzOiBDaGVja0hlYWx0aFJlc3BvbnNlLlNlcnZpY2VIZWFsdGguQXNQcm90b2J1ZkpTT05bXSB8IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogTWVzc2FnZSBpbXBsZW1lbnRhdGlvbiBmb3IgYXJtb25pay5hcGkuZ3JwYy52MS5oZWFsdGhfY2hlY2tzLkNoZWNrSGVhbHRoUmVzcG9uc2UuU2VydmljZUhlYWx0aFxuICAgKi9cbiAgZXhwb3J0IGNsYXNzIFNlcnZpY2VIZWFsdGggaW1wbGVtZW50cyBHcnBjTWVzc2FnZSB7XG4gICAgc3RhdGljIGlkID1cbiAgICAgICdhcm1vbmlrLmFwaS5ncnBjLnYxLmhlYWx0aF9jaGVja3MuQ2hlY2tIZWFsdGhSZXNwb25zZS5TZXJ2aWNlSGVhbHRoJztcblxuICAgIC8qKlxuICAgICAqIERlc2VyaWFsaXplIGJpbmFyeSBkYXRhIHRvIG1lc3NhZ2VcbiAgICAgKiBAcGFyYW0gaW5zdGFuY2UgbWVzc2FnZSBpbnN0YW5jZVxuICAgICAqL1xuICAgIHN0YXRpYyBkZXNlcmlhbGl6ZUJpbmFyeShieXRlczogQnl0ZVNvdXJjZSkge1xuICAgICAgY29uc3QgaW5zdGFuY2UgPSBuZXcgU2VydmljZUhlYWx0aCgpO1xuICAgICAgU2VydmljZUhlYWx0aC5kZXNlcmlhbGl6ZUJpbmFyeUZyb21SZWFkZXIoXG4gICAgICAgIGluc3RhbmNlLFxuICAgICAgICBuZXcgQmluYXJ5UmVhZGVyKGJ5dGVzKVxuICAgICAgKTtcbiAgICAgIHJldHVybiBpbnN0YW5jZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVjayBhbGwgdGhlIHByb3BlcnRpZXMgYW5kIHNldCBkZWZhdWx0IHByb3RvYnVmIHZhbHVlcyBpZiBuZWNlc3NhcnlcbiAgICAgKiBAcGFyYW0gX2luc3RhbmNlIG1lc3NhZ2UgaW5zdGFuY2VcbiAgICAgKi9cbiAgICBzdGF0aWMgcmVmaW5lVmFsdWVzKF9pbnN0YW5jZTogU2VydmljZUhlYWx0aCkge1xuICAgICAgX2luc3RhbmNlLm5hbWUgPSBfaW5zdGFuY2UubmFtZSB8fCAnJztcbiAgICAgIF9pbnN0YW5jZS5tZXNzYWdlID0gX2luc3RhbmNlLm1lc3NhZ2UgfHwgJyc7XG4gICAgICBfaW5zdGFuY2UuaGVhbHRoeSA9IF9pbnN0YW5jZS5oZWFsdGh5IHx8IDA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGVzZXJpYWxpemVzIC8gcmVhZHMgYmluYXJ5IG1lc3NhZ2UgaW50byBtZXNzYWdlIGluc3RhbmNlIHVzaW5nIHByb3ZpZGVkIGJpbmFyeSByZWFkZXJcbiAgICAgKiBAcGFyYW0gX2luc3RhbmNlIG1lc3NhZ2UgaW5zdGFuY2VcbiAgICAgKiBAcGFyYW0gX3JlYWRlciBiaW5hcnkgcmVhZGVyIGluc3RhbmNlXG4gICAgICovXG4gICAgc3RhdGljIGRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlcihcbiAgICAgIF9pbnN0YW5jZTogU2VydmljZUhlYWx0aCxcbiAgICAgIF9yZWFkZXI6IEJpbmFyeVJlYWRlclxuICAgICkge1xuICAgICAgd2hpbGUgKF9yZWFkZXIubmV4dEZpZWxkKCkpIHtcbiAgICAgICAgaWYgKF9yZWFkZXIuaXNFbmRHcm91cCgpKSBicmVhaztcblxuICAgICAgICBzd2l0Y2ggKF9yZWFkZXIuZ2V0RmllbGROdW1iZXIoKSkge1xuICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgIF9pbnN0YW5jZS5uYW1lID0gX3JlYWRlci5yZWFkU3RyaW5nKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICBfaW5zdGFuY2UubWVzc2FnZSA9IF9yZWFkZXIucmVhZFN0cmluZygpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAzOlxuICAgICAgICAgICAgX2luc3RhbmNlLmhlYWx0aHkgPSBfcmVhZGVyLnJlYWRFbnVtKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgX3JlYWRlci5za2lwRmllbGQoKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBTZXJ2aWNlSGVhbHRoLnJlZmluZVZhbHVlcyhfaW5zdGFuY2UpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNlcmlhbGl6ZXMgYSBtZXNzYWdlIHRvIGJpbmFyeSBmb3JtYXQgdXNpbmcgcHJvdmlkZWQgYmluYXJ5IHJlYWRlclxuICAgICAqIEBwYXJhbSBfaW5zdGFuY2UgbWVzc2FnZSBpbnN0YW5jZVxuICAgICAqIEBwYXJhbSBfd3JpdGVyIGJpbmFyeSB3cml0ZXIgaW5zdGFuY2VcbiAgICAgKi9cbiAgICBzdGF0aWMgc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXIoXG4gICAgICBfaW5zdGFuY2U6IFNlcnZpY2VIZWFsdGgsXG4gICAgICBfd3JpdGVyOiBCaW5hcnlXcml0ZXJcbiAgICApIHtcbiAgICAgIGlmIChfaW5zdGFuY2UubmFtZSkge1xuICAgICAgICBfd3JpdGVyLndyaXRlU3RyaW5nKDEsIF9pbnN0YW5jZS5uYW1lKTtcbiAgICAgIH1cbiAgICAgIGlmIChfaW5zdGFuY2UubWVzc2FnZSkge1xuICAgICAgICBfd3JpdGVyLndyaXRlU3RyaW5nKDIsIF9pbnN0YW5jZS5tZXNzYWdlKTtcbiAgICAgIH1cbiAgICAgIGlmIChfaW5zdGFuY2UuaGVhbHRoeSkge1xuICAgICAgICBfd3JpdGVyLndyaXRlRW51bSgzLCBfaW5zdGFuY2UuaGVhbHRoeSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfbmFtZTogc3RyaW5nO1xuICAgIHByaXZhdGUgX21lc3NhZ2U6IHN0cmluZztcbiAgICBwcml2YXRlIF9oZWFsdGh5OiBIZWFsdGhTdGF0dXNFbnVtO1xuXG4gICAgLyoqXG4gICAgICogTWVzc2FnZSBjb25zdHJ1Y3Rvci4gSW5pdGlhbGl6ZXMgdGhlIHByb3BlcnRpZXMgYW5kIGFwcGxpZXMgZGVmYXVsdCBQcm90b2J1ZiB2YWx1ZXMgaWYgbmVjZXNzYXJ5XG4gICAgICogQHBhcmFtIF92YWx1ZSBpbml0aWFsIHZhbHVlcyBvYmplY3Qgb3IgaW5zdGFuY2Ugb2YgU2VydmljZUhlYWx0aCB0byBkZWVwbHkgY2xvbmUgZnJvbVxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKF92YWx1ZT86IFJlY3Vyc2l2ZVBhcnRpYWw8U2VydmljZUhlYWx0aC5Bc09iamVjdD4pIHtcbiAgICAgIF92YWx1ZSA9IF92YWx1ZSB8fCB7fTtcbiAgICAgIHRoaXMubmFtZSA9IF92YWx1ZS5uYW1lO1xuICAgICAgdGhpcy5tZXNzYWdlID0gX3ZhbHVlLm1lc3NhZ2U7XG4gICAgICB0aGlzLmhlYWx0aHkgPSBfdmFsdWUuaGVhbHRoeTtcbiAgICAgIFNlcnZpY2VIZWFsdGgucmVmaW5lVmFsdWVzKHRoaXMpO1xuICAgIH1cbiAgICBnZXQgbmFtZSgpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuIHRoaXMuX25hbWU7XG4gICAgfVxuICAgIHNldCBuYW1lKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgIHRoaXMuX25hbWUgPSB2YWx1ZTtcbiAgICB9XG4gICAgZ2V0IG1lc3NhZ2UoKTogc3RyaW5nIHtcbiAgICAgIHJldHVybiB0aGlzLl9tZXNzYWdlO1xuICAgIH1cbiAgICBzZXQgbWVzc2FnZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICB0aGlzLl9tZXNzYWdlID0gdmFsdWU7XG4gICAgfVxuICAgIGdldCBoZWFsdGh5KCk6IEhlYWx0aFN0YXR1c0VudW0ge1xuICAgICAgcmV0dXJuIHRoaXMuX2hlYWx0aHk7XG4gICAgfVxuICAgIHNldCBoZWFsdGh5KHZhbHVlOiBIZWFsdGhTdGF0dXNFbnVtKSB7XG4gICAgICB0aGlzLl9oZWFsdGh5ID0gdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2VyaWFsaXplIG1lc3NhZ2UgdG8gYmluYXJ5IGRhdGFcbiAgICAgKiBAcGFyYW0gaW5zdGFuY2UgbWVzc2FnZSBpbnN0YW5jZVxuICAgICAqL1xuICAgIHNlcmlhbGl6ZUJpbmFyeSgpIHtcbiAgICAgIGNvbnN0IHdyaXRlciA9IG5ldyBCaW5hcnlXcml0ZXIoKTtcbiAgICAgIFNlcnZpY2VIZWFsdGguc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXIodGhpcywgd3JpdGVyKTtcbiAgICAgIHJldHVybiB3cml0ZXIuZ2V0UmVzdWx0QnVmZmVyKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2FzdCBtZXNzYWdlIHRvIHN0YW5kYXJkIEphdmFTY3JpcHQgb2JqZWN0IChhbGwgbm9uLXByaW1pdGl2ZSB2YWx1ZXMgYXJlIGRlZXBseSBjbG9uZWQpXG4gICAgICovXG4gICAgdG9PYmplY3QoKTogU2VydmljZUhlYWx0aC5Bc09iamVjdCB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBuYW1lOiB0aGlzLm5hbWUsXG4gICAgICAgIG1lc3NhZ2U6IHRoaXMubWVzc2FnZSxcbiAgICAgICAgaGVhbHRoeTogdGhpcy5oZWFsdGh5XG4gICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvbnZlbmllbmNlIG1ldGhvZCB0byBzdXBwb3J0IEpTT04uc3RyaW5naWZ5KG1lc3NhZ2UpLCByZXBsaWNhdGVzIHRoZSBzdHJ1Y3R1cmUgb2YgdG9PYmplY3QoKVxuICAgICAqL1xuICAgIHRvSlNPTigpIHtcbiAgICAgIHJldHVybiB0aGlzLnRvT2JqZWN0KCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2FzdCBtZXNzYWdlIHRvIEpTT04gdXNpbmcgcHJvdG9idWYgSlNPTiBub3RhdGlvbjogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy9kb2NzL3Byb3RvMyNqc29uXG4gICAgICogQXR0ZW50aW9uOiBvdXRwdXQgZGlmZmVycyBmcm9tIHRvT2JqZWN0KCkgZS5nLiBlbnVtcyBhcmUgcmVwcmVzZW50ZWQgYXMgbmFtZXMgYW5kIG5vdCBhcyBudW1iZXJzLCBUaW1lc3RhbXAgaXMgYW4gSVNPIERhdGUgc3RyaW5nIGZvcm1hdCBldGMuXG4gICAgICogSWYgdGhlIG1lc3NhZ2UgaXRzZWxmIG9yIHNvbWUgb2YgZGVzY2VuZGFudCBtZXNzYWdlcyBpcyBnb29nbGUucHJvdG9idWYuQW55LCB5b3UgTVVTVCBwcm92aWRlIGEgbWVzc2FnZSBwb29sIGFzIG9wdGlvbnMuIElmIG5vdCwgdGhlIG1lc3NhZ2VQb29sIGlzIG5vdCByZXF1aXJlZFxuICAgICAqL1xuICAgIHRvUHJvdG9idWZKU09OKFxuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgb3B0aW9ucz86IFRvUHJvdG9idWZKU09OT3B0aW9uc1xuICAgICk6IFNlcnZpY2VIZWFsdGguQXNQcm90b2J1ZkpTT04ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbmFtZTogdGhpcy5uYW1lLFxuICAgICAgICBtZXNzYWdlOiB0aGlzLm1lc3NhZ2UsXG4gICAgICAgIGhlYWx0aHk6XG4gICAgICAgICAgSGVhbHRoU3RhdHVzRW51bVtcbiAgICAgICAgICAgIHRoaXMuaGVhbHRoeSA9PT0gbnVsbCB8fCB0aGlzLmhlYWx0aHkgPT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgICA/IDBcbiAgICAgICAgICAgICAgOiB0aGlzLmhlYWx0aHlcbiAgICAgICAgICBdXG4gICAgICB9O1xuICAgIH1cbiAgfVxuICBleHBvcnQgbW9kdWxlIFNlcnZpY2VIZWFsdGgge1xuICAgIC8qKlxuICAgICAqIFN0YW5kYXJkIEphdmFTY3JpcHQgb2JqZWN0IHJlcHJlc2VudGF0aW9uIGZvciBTZXJ2aWNlSGVhbHRoXG4gICAgICovXG4gICAgZXhwb3J0IGludGVyZmFjZSBBc09iamVjdCB7XG4gICAgICBuYW1lOiBzdHJpbmc7XG4gICAgICBtZXNzYWdlOiBzdHJpbmc7XG4gICAgICBoZWFsdGh5OiBIZWFsdGhTdGF0dXNFbnVtO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFByb3RvYnVmIEpTT04gcmVwcmVzZW50YXRpb24gZm9yIFNlcnZpY2VIZWFsdGhcbiAgICAgKi9cbiAgICBleHBvcnQgaW50ZXJmYWNlIEFzUHJvdG9idWZKU09OIHtcbiAgICAgIG5hbWU6IHN0cmluZztcbiAgICAgIG1lc3NhZ2U6IHN0cmluZztcbiAgICAgIGhlYWx0aHk6IHN0cmluZztcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhbHRoLWNoZWNrcy1zZXJ2aWNlLnBiLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5lb2NvbnN1bHRpbmdmci9hcm1vbmlrLmFwaS5hbmd1bGFyL3NyYy9saWIvZ2VuZXJhdGVkL2hlYWx0aC1jaGVja3Mtc2VydmljZS5wYi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyogdHNsaW50OmRpc2FibGUgKi9cbi8qIGVzbGludC1kaXNhYmxlICovXG4vLyBAdHMtbm9jaGVja1xuLy9cbi8vIFRISVMgSVMgQSBHRU5FUkFURUQgRklMRVxuLy8gRE8gTk9UIE1PRElGWSBJVCEgWU9VUiBDSEFOR0VTIFdJTEwgQkUgTE9TVFxuaW1wb3J0ICogYXMgYXJtb25pa0FwaUdycGNWMUhlYWx0aF9jaGVja3MwMDAgZnJvbSAnLi9oZWFsdGgtY2hlY2tzLWNvbW1vbi5wYic7XG4iXX0=
@@ -1,13 +0,0 @@
1
- /* tslint:disable */
2
- /* eslint-disable */
3
- // @ts-nocheck
4
- //
5
- // THIS IS A GENERATED FILE
6
- // DO NOT MODIFY IT! YOUR CHANGES WILL BE LOST
7
- import { InjectionToken } from '@angular/core';
8
- /**
9
- * Specific GrpcClientSettings for HealthChecksService.
10
- * Use it only if your default settings are not set or the service requires other settings.
11
- */
12
- export const GRPC_HEALTH_CHECKS_SERVICE_CLIENT_SETTINGS = new InjectionToken('GRPC_HEALTH_CHECKS_SERVICE_CLIENT_SETTINGS');
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhbHRoLWNoZWNrcy1zZXJ2aWNlLnBiY29uZi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZW9jb25zdWx0aW5nZnIvYXJtb25pay5hcGkuYW5ndWxhci9zcmMvbGliL2dlbmVyYXRlZC9oZWFsdGgtY2hlY2tzLXNlcnZpY2UucGJjb25mLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG9CQUFvQjtBQUNwQixvQkFBb0I7QUFDcEIsY0FBYztBQUNkLEVBQUU7QUFDRiwyQkFBMkI7QUFDM0IsOENBQThDO0FBQzlDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0M7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sMENBQTBDLEdBQUcsSUFBSSxjQUFjLENBRTFFLDRDQUE0QyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiB0c2xpbnQ6ZGlzYWJsZSAqL1xuLyogZXNsaW50LWRpc2FibGUgKi9cbi8vIEB0cy1ub2NoZWNrXG4vL1xuLy8gVEhJUyBJUyBBIEdFTkVSQVRFRCBGSUxFXG4vLyBETyBOT1QgTU9ESUZZIElUISBZT1VSIENIQU5HRVMgV0lMTCBCRSBMT1NUXG5pbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIFNwZWNpZmljIEdycGNDbGllbnRTZXR0aW5ncyBmb3IgSGVhbHRoQ2hlY2tzU2VydmljZS5cbiAqIFVzZSBpdCBvbmx5IGlmIHlvdXIgZGVmYXVsdCBzZXR0aW5ncyBhcmUgbm90IHNldCBvciB0aGUgc2VydmljZSByZXF1aXJlcyBvdGhlciBzZXR0aW5ncy5cbiAqL1xuZXhwb3J0IGNvbnN0IEdSUENfSEVBTFRIX0NIRUNLU19TRVJWSUNFX0NMSUVOVF9TRVRUSU5HUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxcbiAgYW55XG4+KCdHUlBDX0hFQUxUSF9DSEVDS1NfU0VSVklDRV9DTElFTlRfU0VUVElOR1MnKTtcbiJdfQ==
@@ -1,74 +0,0 @@
1
- /* tslint:disable */
2
- /* eslint-disable */
3
- // @ts-nocheck
4
- //
5
- // THIS IS A GENERATED FILE
6
- // DO NOT MODIFY IT! YOUR CHANGES WILL BE LOST
7
- import { Inject, Injectable, Optional } from '@angular/core';
8
- import { GrpcCallType, GrpcMetadata } from '@ngx-grpc/common';
9
- import { GRPC_CLIENT_FACTORY, takeMessages, throwStatusErrors } from '@ngx-grpc/core';
10
- import * as armonikApiGrpcV1Health_checks000 from './health-checks-common.pb';
11
- import { GRPC_HEALTH_CHECKS_SERVICE_CLIENT_SETTINGS } from './health-checks-service.pbconf';
12
- import * as i0 from "@angular/core";
13
- import * as i1 from "@ngx-grpc/core";
14
- /**
15
- * Service client implementation for armonik.api.grpc.v1.health_checks.HealthChecksService
16
- */
17
- export class HealthChecksServiceClient {
18
- constructor(settings, clientFactory, handler) {
19
- this.handler = handler;
20
- /**
21
- * Raw RPC implementation for each service client method.
22
- * The raw methods provide more control on the incoming data and events. E.g. they can be useful to read status `OK` metadata.
23
- * Attention: these methods do not throw errors when non-zero status codes are received.
24
- */
25
- this.$raw = {
26
- /**
27
- * Unary call: /armonik.api.grpc.v1.health_checks.HealthChecksService/CheckHealth
28
- *
29
- * @param requestMessage Request message
30
- * @param requestMetadata Request metadata
31
- * @returns Observable<GrpcEvent<armonikApiGrpcV1Health_checks000.CheckHealthResponse>>
32
- */
33
- checkHealth: (requestData, requestMetadata = new GrpcMetadata()) => {
34
- return this.handler.handle({
35
- type: GrpcCallType.unary,
36
- client: this.client,
37
- path: '/armonik.api.grpc.v1.health_checks.HealthChecksService/CheckHealth',
38
- requestData,
39
- requestMetadata,
40
- requestClass: armonikApiGrpcV1Health_checks000.CheckHealthRequest,
41
- responseClass: armonikApiGrpcV1Health_checks000.CheckHealthResponse
42
- });
43
- }
44
- };
45
- this.client = clientFactory.createClient('armonik.api.grpc.v1.health_checks.HealthChecksService', settings);
46
- }
47
- /**
48
- * Unary call @/armonik.api.grpc.v1.health_checks.HealthChecksService/CheckHealth
49
- *
50
- * @param requestMessage Request message
51
- * @param requestMetadata Request metadata
52
- * @returns Observable<armonikApiGrpcV1Health_checks000.CheckHealthResponse>
53
- */
54
- checkHealth(requestData, requestMetadata = new GrpcMetadata()) {
55
- return this.$raw
56
- .checkHealth(requestData, requestMetadata)
57
- .pipe(throwStatusErrors(), takeMessages());
58
- }
59
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: HealthChecksServiceClient, deps: [{ token: GRPC_HEALTH_CHECKS_SERVICE_CLIENT_SETTINGS, optional: true }, { token: GRPC_CLIENT_FACTORY }, { token: i1.GrpcHandler }], target: i0.ɵɵFactoryTarget.Injectable }); }
60
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: HealthChecksServiceClient, providedIn: 'any' }); }
61
- }
62
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: HealthChecksServiceClient, decorators: [{
63
- type: Injectable,
64
- args: [{ providedIn: 'any' }]
65
- }], ctorParameters: () => [{ type: undefined, decorators: [{
66
- type: Optional
67
- }, {
68
- type: Inject,
69
- args: [GRPC_HEALTH_CHECKS_SERVICE_CLIENT_SETTINGS]
70
- }] }, { type: undefined, decorators: [{
71
- type: Inject,
72
- args: [GRPC_CLIENT_FACTORY]
73
- }] }, { type: i1.GrpcHandler }] });
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhbHRoLWNoZWNrcy1zZXJ2aWNlLnBic2MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmVvY29uc3VsdGluZ2ZyL2FybW9uaWsuYXBpLmFuZ3VsYXIvc3JjL2xpYi9nZW5lcmF0ZWQvaGVhbHRoLWNoZWNrcy1zZXJ2aWNlLnBic2MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0JBQW9CO0FBQ3BCLG9CQUFvQjtBQUNwQixjQUFjO0FBQ2QsRUFBRTtBQUNGLDJCQUEyQjtBQUMzQiw4Q0FBOEM7QUFDOUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFDTCxZQUFZLEVBSVosWUFBWSxFQUNiLE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxFQUNMLG1CQUFtQixFQUVuQixZQUFZLEVBQ1osaUJBQWlCLEVBQ2xCLE1BQU0sZ0JBQWdCLENBQUM7QUFHeEIsT0FBTyxLQUFLLGdDQUFnQyxNQUFNLDJCQUEyQixDQUFDO0FBQzlFLE9BQU8sRUFBRSwwQ0FBMEMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7QUFDNUY7O0dBRUc7QUFFSCxNQUFNLE9BQU8seUJBQXlCO0lBbUNwQyxZQUdFLFFBQWEsRUFDZ0IsYUFBcUMsRUFDMUQsT0FBb0I7UUFBcEIsWUFBTyxHQUFQLE9BQU8sQ0FBYTtRQXJDOUI7Ozs7V0FJRztRQUNILFNBQUksR0FBRztZQUNMOzs7Ozs7ZUFNRztZQUNILFdBQVcsRUFBRSxDQUNYLFdBQWdFLEVBQ2hFLGVBQWUsR0FBRyxJQUFJLFlBQVksRUFBRSxFQUdwQyxFQUFFO2dCQUNGLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7b0JBQ3pCLElBQUksRUFBRSxZQUFZLENBQUMsS0FBSztvQkFDeEIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO29CQUNuQixJQUFJLEVBQ0Ysb0VBQW9FO29CQUN0RSxXQUFXO29CQUNYLGVBQWU7b0JBQ2YsWUFBWSxFQUFFLGdDQUFnQyxDQUFDLGtCQUFrQjtvQkFDakUsYUFBYSxFQUFFLGdDQUFnQyxDQUFDLG1CQUFtQjtpQkFDcEUsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztTQUNGLENBQUM7UUFTQSxJQUFJLENBQUMsTUFBTSxHQUFHLGFBQWEsQ0FBQyxZQUFZLENBQ3RDLHVEQUF1RCxFQUN2RCxRQUFRLENBQ1QsQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxXQUFXLENBQ1QsV0FBZ0UsRUFDaEUsZUFBZSxHQUFHLElBQUksWUFBWSxFQUFFO1FBRXBDLE9BQU8sSUFBSSxDQUFDLElBQUk7YUFDYixXQUFXLENBQUMsV0FBVyxFQUFFLGVBQWUsQ0FBQzthQUN6QyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDO0lBQy9DLENBQUM7OEdBOURVLHlCQUF5QixrQkFxQzFCLDBDQUEwQyw2QkFFMUMsbUJBQW1CO2tIQXZDbEIseUJBQXlCLGNBRFosS0FBSzs7MkZBQ2xCLHlCQUF5QjtrQkFEckMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUU7OzBCQXFDNUIsUUFBUTs7MEJBQ1IsTUFBTTsyQkFBQywwQ0FBMEM7OzBCQUVqRCxNQUFNOzJCQUFDLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbIi8qIHRzbGludDpkaXNhYmxlICovXG4vKiBlc2xpbnQtZGlzYWJsZSAqL1xuLy8gQHRzLW5vY2hlY2tcbi8vXG4vLyBUSElTIElTIEEgR0VORVJBVEVEIEZJTEVcbi8vIERPIE5PVCBNT0RJRlkgSVQhIFlPVVIgQ0hBTkdFUyBXSUxMIEJFIExPU1RcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEdycGNDYWxsVHlwZSxcbiAgR3JwY0NsaWVudCxcbiAgR3JwY0NsaWVudEZhY3RvcnksXG4gIEdycGNFdmVudCxcbiAgR3JwY01ldGFkYXRhXG59IGZyb20gJ0BuZ3gtZ3JwYy9jb21tb24nO1xuaW1wb3J0IHtcbiAgR1JQQ19DTElFTlRfRkFDVE9SWSxcbiAgR3JwY0hhbmRsZXIsXG4gIHRha2VNZXNzYWdlcyxcbiAgdGhyb3dTdGF0dXNFcnJvcnNcbn0gZnJvbSAnQG5neC1ncnBjL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0ICogYXMgdGhpc1Byb3RvIGZyb20gJy4vaGVhbHRoLWNoZWNrcy1zZXJ2aWNlLnBiJztcbmltcG9ydCAqIGFzIGFybW9uaWtBcGlHcnBjVjFIZWFsdGhfY2hlY2tzMDAwIGZyb20gJy4vaGVhbHRoLWNoZWNrcy1jb21tb24ucGInO1xuaW1wb3J0IHsgR1JQQ19IRUFMVEhfQ0hFQ0tTX1NFUlZJQ0VfQ0xJRU5UX1NFVFRJTkdTIH0gZnJvbSAnLi9oZWFsdGgtY2hlY2tzLXNlcnZpY2UucGJjb25mJztcbi8qKlxuICogU2VydmljZSBjbGllbnQgaW1wbGVtZW50YXRpb24gZm9yIGFybW9uaWsuYXBpLmdycGMudjEuaGVhbHRoX2NoZWNrcy5IZWFsdGhDaGVja3NTZXJ2aWNlXG4gKi9cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ2FueScgfSlcbmV4cG9ydCBjbGFzcyBIZWFsdGhDaGVja3NTZXJ2aWNlQ2xpZW50IHtcbiAgcHJpdmF0ZSBjbGllbnQ6IEdycGNDbGllbnQ8YW55PjtcblxuICAvKipcbiAgICogUmF3IFJQQyBpbXBsZW1lbnRhdGlvbiBmb3IgZWFjaCBzZXJ2aWNlIGNsaWVudCBtZXRob2QuXG4gICAqIFRoZSByYXcgbWV0aG9kcyBwcm92aWRlIG1vcmUgY29udHJvbCBvbiB0aGUgaW5jb21pbmcgZGF0YSBhbmQgZXZlbnRzLiBFLmcuIHRoZXkgY2FuIGJlIHVzZWZ1bCB0byByZWFkIHN0YXR1cyBgT0tgIG1ldGFkYXRhLlxuICAgKiBBdHRlbnRpb246IHRoZXNlIG1ldGhvZHMgZG8gbm90IHRocm93IGVycm9ycyB3aGVuIG5vbi16ZXJvIHN0YXR1cyBjb2RlcyBhcmUgcmVjZWl2ZWQuXG4gICAqL1xuICAkcmF3ID0ge1xuICAgIC8qKlxuICAgICAqIFVuYXJ5IGNhbGw6IC9hcm1vbmlrLmFwaS5ncnBjLnYxLmhlYWx0aF9jaGVja3MuSGVhbHRoQ2hlY2tzU2VydmljZS9DaGVja0hlYWx0aFxuICAgICAqXG4gICAgICogQHBhcmFtIHJlcXVlc3RNZXNzYWdlIFJlcXVlc3QgbWVzc2FnZVxuICAgICAqIEBwYXJhbSByZXF1ZXN0TWV0YWRhdGEgUmVxdWVzdCBtZXRhZGF0YVxuICAgICAqIEByZXR1cm5zIE9ic2VydmFibGU8R3JwY0V2ZW50PGFybW9uaWtBcGlHcnBjVjFIZWFsdGhfY2hlY2tzMDAwLkNoZWNrSGVhbHRoUmVzcG9uc2U+PlxuICAgICAqL1xuICAgIGNoZWNrSGVhbHRoOiAoXG4gICAgICByZXF1ZXN0RGF0YTogYXJtb25pa0FwaUdycGNWMUhlYWx0aF9jaGVja3MwMDAuQ2hlY2tIZWFsdGhSZXF1ZXN0LFxuICAgICAgcmVxdWVzdE1ldGFkYXRhID0gbmV3IEdycGNNZXRhZGF0YSgpXG4gICAgKTogT2JzZXJ2YWJsZTxcbiAgICAgIEdycGNFdmVudDxhcm1vbmlrQXBpR3JwY1YxSGVhbHRoX2NoZWNrczAwMC5DaGVja0hlYWx0aFJlc3BvbnNlPlxuICAgID4gPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlci5oYW5kbGUoe1xuICAgICAgICB0eXBlOiBHcnBjQ2FsbFR5cGUudW5hcnksXG4gICAgICAgIGNsaWVudDogdGhpcy5jbGllbnQsXG4gICAgICAgIHBhdGg6XG4gICAgICAgICAgJy9hcm1vbmlrLmFwaS5ncnBjLnYxLmhlYWx0aF9jaGVja3MuSGVhbHRoQ2hlY2tzU2VydmljZS9DaGVja0hlYWx0aCcsXG4gICAgICAgIHJlcXVlc3REYXRhLFxuICAgICAgICByZXF1ZXN0TWV0YWRhdGEsXG4gICAgICAgIHJlcXVlc3RDbGFzczogYXJtb25pa0FwaUdycGNWMUhlYWx0aF9jaGVja3MwMDAuQ2hlY2tIZWFsdGhSZXF1ZXN0LFxuICAgICAgICByZXNwb25zZUNsYXNzOiBhcm1vbmlrQXBpR3JwY1YxSGVhbHRoX2NoZWNrczAwMC5DaGVja0hlYWx0aFJlc3BvbnNlXG4gICAgICB9KTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQE9wdGlvbmFsKClcbiAgICBASW5qZWN0KEdSUENfSEVBTFRIX0NIRUNLU19TRVJWSUNFX0NMSUVOVF9TRVRUSU5HUylcbiAgICBzZXR0aW5nczogYW55LFxuICAgIEBJbmplY3QoR1JQQ19DTElFTlRfRkFDVE9SWSkgY2xpZW50RmFjdG9yeTogR3JwY0NsaWVudEZhY3Rvcnk8YW55PixcbiAgICBwcml2YXRlIGhhbmRsZXI6IEdycGNIYW5kbGVyXG4gICkge1xuICAgIHRoaXMuY2xpZW50ID0gY2xpZW50RmFjdG9yeS5jcmVhdGVDbGllbnQoXG4gICAgICAnYXJtb25pay5hcGkuZ3JwYy52MS5oZWFsdGhfY2hlY2tzLkhlYWx0aENoZWNrc1NlcnZpY2UnLFxuICAgICAgc2V0dGluZ3NcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFVuYXJ5IGNhbGwgQC9hcm1vbmlrLmFwaS5ncnBjLnYxLmhlYWx0aF9jaGVja3MuSGVhbHRoQ2hlY2tzU2VydmljZS9DaGVja0hlYWx0aFxuICAgKlxuICAgKiBAcGFyYW0gcmVxdWVzdE1lc3NhZ2UgUmVxdWVzdCBtZXNzYWdlXG4gICAqIEBwYXJhbSByZXF1ZXN0TWV0YWRhdGEgUmVxdWVzdCBtZXRhZGF0YVxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPGFybW9uaWtBcGlHcnBjVjFIZWFsdGhfY2hlY2tzMDAwLkNoZWNrSGVhbHRoUmVzcG9uc2U+XG4gICAqL1xuICBjaGVja0hlYWx0aChcbiAgICByZXF1ZXN0RGF0YTogYXJtb25pa0FwaUdycGNWMUhlYWx0aF9jaGVja3MwMDAuQ2hlY2tIZWFsdGhSZXF1ZXN0LFxuICAgIHJlcXVlc3RNZXRhZGF0YSA9IG5ldyBHcnBjTWV0YWRhdGEoKVxuICApOiBPYnNlcnZhYmxlPGFybW9uaWtBcGlHcnBjVjFIZWFsdGhfY2hlY2tzMDAwLkNoZWNrSGVhbHRoUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy4kcmF3XG4gICAgICAuY2hlY2tIZWFsdGgocmVxdWVzdERhdGEsIHJlcXVlc3RNZXRhZGF0YSlcbiAgICAgIC5waXBlKHRocm93U3RhdHVzRXJyb3JzKCksIHRha2VNZXNzYWdlcygpKTtcbiAgfVxufVxuIl19