@coralogix/rum-cli 1.1.38 → 1.1.43

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 (143) hide show
  1. package/README.md +2 -0
  2. package/api/base/base.api.ts +48 -56
  3. package/api/dsym/dsym.api.ts +8 -0
  4. package/api/proguard/proguard.api.ts +8 -0
  5. package/api/react-native/react-native.api.ts +8 -0
  6. package/api/source-maps/source-maps.api.ts +8 -0
  7. package/cli/commands/dsym/upload-dsym-command.ts +4 -2
  8. package/cli/commands/proguard/upload-proguard-command.ts +4 -2
  9. package/cli/commands/react-native/upload-react-native-source-maps-command.ts +4 -2
  10. package/cli/commands/source-maps/upload-source-maps-command.ts +4 -2
  11. package/consts/consts.ts +1 -0
  12. package/dist/api/base/base.api.d.ts +10 -9
  13. package/dist/api/base/base.api.js +20 -34
  14. package/dist/api/dsym/dsym.api.d.ts +2 -2
  15. package/dist/api/dsym/dsym.api.js +7 -3
  16. package/dist/api/proguard/proguard.api.d.ts +2 -2
  17. package/dist/api/proguard/proguard.api.js +7 -3
  18. package/dist/api/react-native/react-native.api.d.ts +2 -2
  19. package/dist/api/react-native/react-native.api.js +7 -3
  20. package/dist/api/source-maps/source-maps.api.d.ts +2 -2
  21. package/dist/api/source-maps/source-maps.api.js +7 -3
  22. package/dist/cli/commands/dsym/upload-dsym-command.js +5 -3
  23. package/dist/cli/commands/proguard/upload-proguard-command.js +5 -3
  24. package/dist/cli/commands/react-native/upload-react-native-source-maps-command.js +5 -3
  25. package/dist/cli/commands/source-maps/upload-source-maps-command.js +5 -3
  26. package/dist/consts/consts.js +3 -2
  27. package/dist/grpc-client/grpc-client-factory.d.ts +158 -0
  28. package/dist/models/dsym-commands.model.d.ts +2 -0
  29. package/dist/models/dsym-commands.model.js +1 -1
  30. package/dist/models/proguard-commands.model.d.ts +2 -0
  31. package/dist/models/proguard-commands.model.js +1 -1
  32. package/dist/models/react-native-commands.model.d.ts +2 -0
  33. package/dist/models/react-native-commands.model.js +1 -1
  34. package/dist/models/source-maps-commands.model.d.ts +2 -0
  35. package/dist/models/source-maps-commands.model.js +1 -1
  36. package/dist/proto-models/com/coralogix/blobset/v2/blobset_query_service.d.ts +150 -0
  37. package/dist/proto-models/com/coralogix/blobset/v2/blobset_query_service.js +29 -1
  38. package/dist/proto-models/com/coralogix/blobset/v2/case_file.d.ts +36 -0
  39. package/dist/proto-models/com/coralogix/blobset/v2/case_file.js +161 -0
  40. package/dist/proto-models/com/coralogix/blobset/v2/dsym.d.ts +1 -0
  41. package/dist/proto-models/com/coralogix/blobset/v2/dsym.js +33 -3
  42. package/dist/proto-models/com/coralogix/blobset/v2/entity_metadata.d.ts +47 -0
  43. package/dist/proto-models/com/coralogix/blobset/v2/entity_metadata.js +375 -11
  44. package/dist/proto-models/com/coralogix/blobset/v2/entity_type.d.ts +3 -1
  45. package/dist/proto-models/com/coralogix/blobset/v2/entity_type.js +13 -1
  46. package/dist/proto-models/com/coralogix/blobset/v2/investigation_file.d.ts +36 -0
  47. package/dist/proto-models/com/coralogix/blobset/v2/investigation_file.js +161 -0
  48. package/dist/proto-models/com/coralogix/blobset/v2/proguard.d.ts +68 -0
  49. package/dist/proto-models/com/coralogix/blobset/v2/proguard.js +400 -0
  50. package/dist/proto-models/com/coralogix/rum/v2/ai_assist.d.ts +89 -0
  51. package/dist/proto-models/com/coralogix/rum/v2/ai_assist.js +290 -0
  52. package/dist/proto-models/com/coralogix/rum/v2/application_releases.d.ts +38 -0
  53. package/dist/proto-models/com/coralogix/rum/v2/application_releases.js +180 -0
  54. package/dist/proto-models/com/coralogix/rum/v2/merge_error.d.ts +38 -0
  55. package/dist/proto-models/com/coralogix/rum/v2/merge_error.js +171 -0
  56. package/dist/proto-models/com/coralogix/rum/v2/release_entity_metadata.d.ts +19 -0
  57. package/dist/proto-models/com/coralogix/rum/v2/release_entity_metadata.js +225 -10
  58. package/dist/proto-models/com/coralogix/rum/v2/rum_merge_erros_service.d.ts +197 -0
  59. package/dist/proto-models/com/coralogix/rum/v2/rum_merge_erros_service.js +478 -0
  60. package/dist/proto-models/com/coralogix/rum/v2/rum_service.d.ts +107 -0
  61. package/dist/proto-models/com/coralogix/rum/v2/rum_service.js +385 -2
  62. package/dist/proto-models/com/coralogix/rum/v2/rum_source_map_service.d.ts +94 -1
  63. package/dist/proto-models/com/coralogix/rum/v2/rum_source_map_service.js +300 -2
  64. package/dist/proto-models/com/coralogix/rum/v2/saved_filter.d.ts +5 -1
  65. package/dist/proto-models/com/coralogix/rum/v2/saved_filter.js +25 -1
  66. package/dist/proto-models/com/coralogix/rum/v2/template.d.ts +2 -0
  67. package/dist/proto-models/com/coralogix/rum/v2/template.js +31 -3
  68. package/dist/proto-models/google/protobuf/struct.d.ts +127 -0
  69. package/dist/proto-models/google/protobuf/struct.js +476 -0
  70. package/dist/services/base/base.service.d.ts +1 -1
  71. package/dist/services/base/base.service.js +7 -5
  72. package/dist/utils/upload-mode.utils.d.ts +12 -0
  73. package/dist/utils/upload-mode.utils.js +26 -0
  74. package/dist/utils/version-context.utils.d.ts +20 -0
  75. package/dist/utils/version-context.utils.js +71 -0
  76. package/models/dsym-commands.model.ts +2 -0
  77. package/models/proguard-commands.model.ts +2 -0
  78. package/models/react-native-commands.model.ts +2 -0
  79. package/models/source-maps-commands.model.ts +2 -0
  80. package/package.json +2 -2
  81. package/protofetch.lock +4 -4
  82. package/protofetch.toml +2 -2
  83. package/services/base/base.service.ts +7 -3
  84. package/utils/upload-mode.utils.ts +30 -0
  85. package/utils/version-context.utils.ts +95 -0
  86. package/proto-models/com/coralogix/blobset/v2/audit_log.ts +0 -84
  87. package/proto-models/com/coralogix/blobset/v2/blobset_query_service.ts +0 -36
  88. package/proto-models/com/coralogix/blobset/v2/blobset_service.ts +0 -209
  89. package/proto-models/com/coralogix/blobset/v2/dsym.ts +0 -400
  90. package/proto-models/com/coralogix/blobset/v2/entity_metadata.ts +0 -540
  91. package/proto-models/com/coralogix/blobset/v2/entity_type.ts +0 -56
  92. package/proto-models/com/coralogix/blobset/v2/s3_metadata.ts +0 -154
  93. package/proto-models/com/coralogix/blobset/v2/source_map.ts +0 -418
  94. package/proto-models/com/coralogix/rum/v2/analytics.ts +0 -924
  95. package/proto-models/com/coralogix/rum/v2/audit_log.ts +0 -84
  96. package/proto-models/com/coralogix/rum/v2/chunk.ts +0 -399
  97. package/proto-models/com/coralogix/rum/v2/file.ts +0 -159
  98. package/proto-models/com/coralogix/rum/v2/hide_errors.ts +0 -234
  99. package/proto-models/com/coralogix/rum/v2/release_entity_metadata.ts +0 -699
  100. package/proto-models/com/coralogix/rum/v2/release_entity_type.ts +0 -56
  101. package/proto-models/com/coralogix/rum/v2/rum_hide_errors_service.ts +0 -605
  102. package/proto-models/com/coralogix/rum/v2/rum_react_native_source_map_service.ts +0 -229
  103. package/proto-models/com/coralogix/rum/v2/rum_saved_filters_service.ts +0 -1679
  104. package/proto-models/com/coralogix/rum/v2/rum_sdk_versions.ts +0 -279
  105. package/proto-models/com/coralogix/rum/v2/rum_service.ts +0 -2158
  106. package/proto-models/com/coralogix/rum/v2/rum_session_recording_service.ts +0 -16
  107. package/proto-models/com/coralogix/rum/v2/rum_settings.ts +0 -215
  108. package/proto-models/com/coralogix/rum/v2/rum_settings_service.ts +0 -283
  109. package/proto-models/com/coralogix/rum/v2/rum_source_map_service.ts +0 -905
  110. package/proto-models/com/coralogix/rum/v2/saved_filter.ts +0 -307
  111. package/proto-models/com/coralogix/rum/v2/source_code_file_mapping.ts +0 -358
  112. package/proto-models/com/coralogix/rum/v2/source_map_release.ts +0 -301
  113. package/proto-models/com/coralogix/rum/v2/template.ts +0 -588
  114. package/proto-models/google/protobuf/descriptor.ts +0 -4921
  115. package/protos/com/coralogix/blobset/v2/audit_log.proto +0 -13
  116. package/protos/com/coralogix/blobset/v2/blobset_query_service.proto +0 -12
  117. package/protos/com/coralogix/blobset/v2/blobset_service.proto +0 -18
  118. package/protos/com/coralogix/blobset/v2/dsym.proto +0 -19
  119. package/protos/com/coralogix/blobset/v2/entity_metadata.proto +0 -35
  120. package/protos/com/coralogix/blobset/v2/entity_type.proto +0 -11
  121. package/protos/com/coralogix/blobset/v2/s3_metadata.proto +0 -14
  122. package/protos/com/coralogix/blobset/v2/source_map.proto +0 -30
  123. package/protos/com/coralogix/rum/v2/analytics.proto +0 -57
  124. package/protos/com/coralogix/rum/v2/audit_log.proto +0 -13
  125. package/protos/com/coralogix/rum/v2/chunk.proto +0 -24
  126. package/protos/com/coralogix/rum/v2/file.proto +0 -8
  127. package/protos/com/coralogix/rum/v2/hide_errors.proto +0 -19
  128. package/protos/com/coralogix/rum/v2/release_entity_metadata.proto +0 -44
  129. package/protos/com/coralogix/rum/v2/release_entity_type.proto +0 -11
  130. package/protos/com/coralogix/rum/v2/rum_hide_errors_service.proto +0 -42
  131. package/protos/com/coralogix/rum/v2/rum_react_native_source_map_service.proto +0 -19
  132. package/protos/com/coralogix/rum/v2/rum_saved_filters_service.proto +0 -117
  133. package/protos/com/coralogix/rum/v2/rum_sdk_versions.proto +0 -17
  134. package/protos/com/coralogix/rum/v2/rum_service.proto +0 -144
  135. package/protos/com/coralogix/rum/v2/rum_session_recording_service.proto +0 -4
  136. package/protos/com/coralogix/rum/v2/rum_settings.proto +0 -26
  137. package/protos/com/coralogix/rum/v2/rum_settings_service.proto +0 -23
  138. package/protos/com/coralogix/rum/v2/rum_source_map_service.proto +0 -58
  139. package/protos/com/coralogix/rum/v2/saved_filter.proto +0 -28
  140. package/protos/com/coralogix/rum/v2/source_code_file_mapping.proto +0 -16
  141. package/protos/com/coralogix/rum/v2/source_map_release.proto +0 -18
  142. package/protos/com/coralogix/rum/v2/template.proto +0 -40
  143. package/protoset.bin +0 -0
@@ -0,0 +1,400 @@
1
+ "use strict";
2
+ // Code generated by protoc-gen-ts_proto. DO NOT EDIT.
3
+ // versions:
4
+ // protoc-gen-ts_proto v1.181.1
5
+ // protoc v3.19.1
6
+ // source: com/coralogix/blobset/v2/proguard.proto
7
+ var __importDefault = (this && this.__importDefault) || function (mod) {
8
+ return (mod && mod.__esModule) ? mod : { "default": mod };
9
+ };
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.GetMappedAndroidStackTraceResponse = exports.GetMappedAndroidStackTraceRequest = exports.StackFrameMapping = exports.StackFrame = exports.protobufPackage = void 0;
12
+ /* eslint-disable */
13
+ const minimal_1 = __importDefault(require("protobufjs/minimal"));
14
+ exports.protobufPackage = "com.coralogix.blobset.v2";
15
+ function createBaseStackFrame() {
16
+ return { className: "", functionName: "", lineNumber: 0, fileName: undefined };
17
+ }
18
+ exports.StackFrame = {
19
+ encode(message, writer = minimal_1.default.Writer.create()) {
20
+ if (message.className !== "") {
21
+ writer.uint32(10).string(message.className);
22
+ }
23
+ if (message.functionName !== "") {
24
+ writer.uint32(18).string(message.functionName);
25
+ }
26
+ if (message.lineNumber !== 0) {
27
+ writer.uint32(24).int32(message.lineNumber);
28
+ }
29
+ if (message.fileName !== undefined) {
30
+ writer.uint32(34).string(message.fileName);
31
+ }
32
+ return writer;
33
+ },
34
+ decode(input, length) {
35
+ const reader = input instanceof minimal_1.default.Reader ? input : minimal_1.default.Reader.create(input);
36
+ let end = length === undefined ? reader.len : reader.pos + length;
37
+ const message = createBaseStackFrame();
38
+ while (reader.pos < end) {
39
+ const tag = reader.uint32();
40
+ switch (tag >>> 3) {
41
+ case 1:
42
+ if (tag !== 10) {
43
+ break;
44
+ }
45
+ message.className = reader.string();
46
+ continue;
47
+ case 2:
48
+ if (tag !== 18) {
49
+ break;
50
+ }
51
+ message.functionName = reader.string();
52
+ continue;
53
+ case 3:
54
+ if (tag !== 24) {
55
+ break;
56
+ }
57
+ message.lineNumber = reader.int32();
58
+ continue;
59
+ case 4:
60
+ if (tag !== 34) {
61
+ break;
62
+ }
63
+ message.fileName = reader.string();
64
+ continue;
65
+ }
66
+ if ((tag & 7) === 4 || tag === 0) {
67
+ break;
68
+ }
69
+ reader.skipType(tag & 7);
70
+ }
71
+ return message;
72
+ },
73
+ fromJSON(object) {
74
+ return {
75
+ className: isSet(object.className) ? globalThis.String(object.className) : "",
76
+ functionName: isSet(object.functionName) ? globalThis.String(object.functionName) : "",
77
+ lineNumber: isSet(object.lineNumber) ? globalThis.Number(object.lineNumber) : 0,
78
+ fileName: isSet(object.fileName) ? globalThis.String(object.fileName) : undefined,
79
+ };
80
+ },
81
+ toJSON(message) {
82
+ const obj = {};
83
+ if (message.className !== "") {
84
+ obj.className = message.className;
85
+ }
86
+ if (message.functionName !== "") {
87
+ obj.functionName = message.functionName;
88
+ }
89
+ if (message.lineNumber !== 0) {
90
+ obj.lineNumber = Math.round(message.lineNumber);
91
+ }
92
+ if (message.fileName !== undefined) {
93
+ obj.fileName = message.fileName;
94
+ }
95
+ return obj;
96
+ },
97
+ create(base) {
98
+ return exports.StackFrame.fromPartial(base !== null && base !== void 0 ? base : {});
99
+ },
100
+ fromPartial(object) {
101
+ var _a, _b, _c, _d;
102
+ const message = createBaseStackFrame();
103
+ message.className = (_a = object.className) !== null && _a !== void 0 ? _a : "";
104
+ message.functionName = (_b = object.functionName) !== null && _b !== void 0 ? _b : "";
105
+ message.lineNumber = (_c = object.lineNumber) !== null && _c !== void 0 ? _c : 0;
106
+ message.fileName = (_d = object.fileName) !== null && _d !== void 0 ? _d : undefined;
107
+ return message;
108
+ },
109
+ };
110
+ function createBaseStackFrameMapping() {
111
+ return { originalFrame: undefined, mappedFrame: undefined };
112
+ }
113
+ exports.StackFrameMapping = {
114
+ encode(message, writer = minimal_1.default.Writer.create()) {
115
+ if (message.originalFrame !== undefined) {
116
+ exports.StackFrame.encode(message.originalFrame, writer.uint32(10).fork()).ldelim();
117
+ }
118
+ if (message.mappedFrame !== undefined) {
119
+ exports.StackFrame.encode(message.mappedFrame, writer.uint32(18).fork()).ldelim();
120
+ }
121
+ return writer;
122
+ },
123
+ decode(input, length) {
124
+ const reader = input instanceof minimal_1.default.Reader ? input : minimal_1.default.Reader.create(input);
125
+ let end = length === undefined ? reader.len : reader.pos + length;
126
+ const message = createBaseStackFrameMapping();
127
+ while (reader.pos < end) {
128
+ const tag = reader.uint32();
129
+ switch (tag >>> 3) {
130
+ case 1:
131
+ if (tag !== 10) {
132
+ break;
133
+ }
134
+ message.originalFrame = exports.StackFrame.decode(reader, reader.uint32());
135
+ continue;
136
+ case 2:
137
+ if (tag !== 18) {
138
+ break;
139
+ }
140
+ message.mappedFrame = exports.StackFrame.decode(reader, reader.uint32());
141
+ continue;
142
+ }
143
+ if ((tag & 7) === 4 || tag === 0) {
144
+ break;
145
+ }
146
+ reader.skipType(tag & 7);
147
+ }
148
+ return message;
149
+ },
150
+ fromJSON(object) {
151
+ return {
152
+ originalFrame: isSet(object.originalFrame) ? exports.StackFrame.fromJSON(object.originalFrame) : undefined,
153
+ mappedFrame: isSet(object.mappedFrame) ? exports.StackFrame.fromJSON(object.mappedFrame) : undefined,
154
+ };
155
+ },
156
+ toJSON(message) {
157
+ const obj = {};
158
+ if (message.originalFrame !== undefined) {
159
+ obj.originalFrame = exports.StackFrame.toJSON(message.originalFrame);
160
+ }
161
+ if (message.mappedFrame !== undefined) {
162
+ obj.mappedFrame = exports.StackFrame.toJSON(message.mappedFrame);
163
+ }
164
+ return obj;
165
+ },
166
+ create(base) {
167
+ return exports.StackFrameMapping.fromPartial(base !== null && base !== void 0 ? base : {});
168
+ },
169
+ fromPartial(object) {
170
+ const message = createBaseStackFrameMapping();
171
+ message.originalFrame = (object.originalFrame !== undefined && object.originalFrame !== null)
172
+ ? exports.StackFrame.fromPartial(object.originalFrame)
173
+ : undefined;
174
+ message.mappedFrame = (object.mappedFrame !== undefined && object.mappedFrame !== null)
175
+ ? exports.StackFrame.fromPartial(object.mappedFrame)
176
+ : undefined;
177
+ return message;
178
+ },
179
+ };
180
+ function createBaseGetMappedAndroidStackTraceRequest() {
181
+ return { application: "", releaseId: "", stackFrames: [] };
182
+ }
183
+ exports.GetMappedAndroidStackTraceRequest = {
184
+ encode(message, writer = minimal_1.default.Writer.create()) {
185
+ if (message.application !== "") {
186
+ writer.uint32(10).string(message.application);
187
+ }
188
+ if (message.releaseId !== "") {
189
+ writer.uint32(18).string(message.releaseId);
190
+ }
191
+ for (const v of message.stackFrames) {
192
+ exports.StackFrame.encode(v, writer.uint32(26).fork()).ldelim();
193
+ }
194
+ return writer;
195
+ },
196
+ decode(input, length) {
197
+ const reader = input instanceof minimal_1.default.Reader ? input : minimal_1.default.Reader.create(input);
198
+ let end = length === undefined ? reader.len : reader.pos + length;
199
+ const message = createBaseGetMappedAndroidStackTraceRequest();
200
+ while (reader.pos < end) {
201
+ const tag = reader.uint32();
202
+ switch (tag >>> 3) {
203
+ case 1:
204
+ if (tag !== 10) {
205
+ break;
206
+ }
207
+ message.application = reader.string();
208
+ continue;
209
+ case 2:
210
+ if (tag !== 18) {
211
+ break;
212
+ }
213
+ message.releaseId = reader.string();
214
+ continue;
215
+ case 3:
216
+ if (tag !== 26) {
217
+ break;
218
+ }
219
+ message.stackFrames.push(exports.StackFrame.decode(reader, reader.uint32()));
220
+ continue;
221
+ }
222
+ if ((tag & 7) === 4 || tag === 0) {
223
+ break;
224
+ }
225
+ reader.skipType(tag & 7);
226
+ }
227
+ return message;
228
+ },
229
+ fromJSON(object) {
230
+ return {
231
+ application: isSet(object.application) ? globalThis.String(object.application) : "",
232
+ releaseId: isSet(object.releaseId) ? globalThis.String(object.releaseId) : "",
233
+ stackFrames: globalThis.Array.isArray(object === null || object === void 0 ? void 0 : object.stackFrames)
234
+ ? object.stackFrames.map((e) => exports.StackFrame.fromJSON(e))
235
+ : [],
236
+ };
237
+ },
238
+ toJSON(message) {
239
+ var _a;
240
+ const obj = {};
241
+ if (message.application !== "") {
242
+ obj.application = message.application;
243
+ }
244
+ if (message.releaseId !== "") {
245
+ obj.releaseId = message.releaseId;
246
+ }
247
+ if ((_a = message.stackFrames) === null || _a === void 0 ? void 0 : _a.length) {
248
+ obj.stackFrames = message.stackFrames.map((e) => exports.StackFrame.toJSON(e));
249
+ }
250
+ return obj;
251
+ },
252
+ create(base) {
253
+ return exports.GetMappedAndroidStackTraceRequest.fromPartial(base !== null && base !== void 0 ? base : {});
254
+ },
255
+ fromPartial(object) {
256
+ var _a, _b, _c;
257
+ const message = createBaseGetMappedAndroidStackTraceRequest();
258
+ message.application = (_a = object.application) !== null && _a !== void 0 ? _a : "";
259
+ message.releaseId = (_b = object.releaseId) !== null && _b !== void 0 ? _b : "";
260
+ message.stackFrames = ((_c = object.stackFrames) === null || _c === void 0 ? void 0 : _c.map((e) => exports.StackFrame.fromPartial(e))) || [];
261
+ return message;
262
+ },
263
+ };
264
+ function createBaseGetMappedAndroidStackTraceResponse() {
265
+ return {
266
+ application: "",
267
+ releaseId: "",
268
+ mappedStackFrames: [],
269
+ commitHash: undefined,
270
+ repoName: undefined,
271
+ user: undefined,
272
+ };
273
+ }
274
+ exports.GetMappedAndroidStackTraceResponse = {
275
+ encode(message, writer = minimal_1.default.Writer.create()) {
276
+ if (message.application !== "") {
277
+ writer.uint32(10).string(message.application);
278
+ }
279
+ if (message.releaseId !== "") {
280
+ writer.uint32(18).string(message.releaseId);
281
+ }
282
+ for (const v of message.mappedStackFrames) {
283
+ exports.StackFrameMapping.encode(v, writer.uint32(26).fork()).ldelim();
284
+ }
285
+ if (message.commitHash !== undefined) {
286
+ writer.uint32(34).string(message.commitHash);
287
+ }
288
+ if (message.repoName !== undefined) {
289
+ writer.uint32(42).string(message.repoName);
290
+ }
291
+ if (message.user !== undefined) {
292
+ writer.uint32(50).string(message.user);
293
+ }
294
+ return writer;
295
+ },
296
+ decode(input, length) {
297
+ const reader = input instanceof minimal_1.default.Reader ? input : minimal_1.default.Reader.create(input);
298
+ let end = length === undefined ? reader.len : reader.pos + length;
299
+ const message = createBaseGetMappedAndroidStackTraceResponse();
300
+ while (reader.pos < end) {
301
+ const tag = reader.uint32();
302
+ switch (tag >>> 3) {
303
+ case 1:
304
+ if (tag !== 10) {
305
+ break;
306
+ }
307
+ message.application = reader.string();
308
+ continue;
309
+ case 2:
310
+ if (tag !== 18) {
311
+ break;
312
+ }
313
+ message.releaseId = reader.string();
314
+ continue;
315
+ case 3:
316
+ if (tag !== 26) {
317
+ break;
318
+ }
319
+ message.mappedStackFrames.push(exports.StackFrameMapping.decode(reader, reader.uint32()));
320
+ continue;
321
+ case 4:
322
+ if (tag !== 34) {
323
+ break;
324
+ }
325
+ message.commitHash = reader.string();
326
+ continue;
327
+ case 5:
328
+ if (tag !== 42) {
329
+ break;
330
+ }
331
+ message.repoName = reader.string();
332
+ continue;
333
+ case 6:
334
+ if (tag !== 50) {
335
+ break;
336
+ }
337
+ message.user = reader.string();
338
+ continue;
339
+ }
340
+ if ((tag & 7) === 4 || tag === 0) {
341
+ break;
342
+ }
343
+ reader.skipType(tag & 7);
344
+ }
345
+ return message;
346
+ },
347
+ fromJSON(object) {
348
+ return {
349
+ application: isSet(object.application) ? globalThis.String(object.application) : "",
350
+ releaseId: isSet(object.releaseId) ? globalThis.String(object.releaseId) : "",
351
+ mappedStackFrames: globalThis.Array.isArray(object === null || object === void 0 ? void 0 : object.mappedStackFrames)
352
+ ? object.mappedStackFrames.map((e) => exports.StackFrameMapping.fromJSON(e))
353
+ : [],
354
+ commitHash: isSet(object.commitHash) ? globalThis.String(object.commitHash) : undefined,
355
+ repoName: isSet(object.repoName) ? globalThis.String(object.repoName) : undefined,
356
+ user: isSet(object.user) ? globalThis.String(object.user) : undefined,
357
+ };
358
+ },
359
+ toJSON(message) {
360
+ var _a;
361
+ const obj = {};
362
+ if (message.application !== "") {
363
+ obj.application = message.application;
364
+ }
365
+ if (message.releaseId !== "") {
366
+ obj.releaseId = message.releaseId;
367
+ }
368
+ if ((_a = message.mappedStackFrames) === null || _a === void 0 ? void 0 : _a.length) {
369
+ obj.mappedStackFrames = message.mappedStackFrames.map((e) => exports.StackFrameMapping.toJSON(e));
370
+ }
371
+ if (message.commitHash !== undefined) {
372
+ obj.commitHash = message.commitHash;
373
+ }
374
+ if (message.repoName !== undefined) {
375
+ obj.repoName = message.repoName;
376
+ }
377
+ if (message.user !== undefined) {
378
+ obj.user = message.user;
379
+ }
380
+ return obj;
381
+ },
382
+ create(base) {
383
+ return exports.GetMappedAndroidStackTraceResponse.fromPartial(base !== null && base !== void 0 ? base : {});
384
+ },
385
+ fromPartial(object) {
386
+ var _a, _b, _c, _d, _e, _f;
387
+ const message = createBaseGetMappedAndroidStackTraceResponse();
388
+ message.application = (_a = object.application) !== null && _a !== void 0 ? _a : "";
389
+ message.releaseId = (_b = object.releaseId) !== null && _b !== void 0 ? _b : "";
390
+ message.mappedStackFrames = ((_c = object.mappedStackFrames) === null || _c === void 0 ? void 0 : _c.map((e) => exports.StackFrameMapping.fromPartial(e))) || [];
391
+ message.commitHash = (_d = object.commitHash) !== null && _d !== void 0 ? _d : undefined;
392
+ message.repoName = (_e = object.repoName) !== null && _e !== void 0 ? _e : undefined;
393
+ message.user = (_f = object.user) !== null && _f !== void 0 ? _f : undefined;
394
+ return message;
395
+ },
396
+ };
397
+ function isSet(value) {
398
+ return value !== null && value !== undefined;
399
+ }
400
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3VhcmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm90by1tb2RlbHMvY29tL2NvcmFsb2dpeC9ibG9ic2V0L3YyL3Byb2d1YXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxzREFBc0Q7QUFDdEQsWUFBWTtBQUNaLGtDQUFrQztBQUNsQyxpQ0FBaUM7QUFDakMsa0RBQWtEOzs7Ozs7QUFFbEQsb0JBQW9CO0FBQ3BCLGlFQUFxQztBQUV4QixRQUFBLGVBQWUsR0FBRywwQkFBMEIsQ0FBQztBQTZCMUQsU0FBUyxvQkFBb0I7SUFDM0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsWUFBWSxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsQ0FBQztBQUNqRixDQUFDO0FBRVksUUFBQSxVQUFVLEdBQUc7SUFDeEIsTUFBTSxDQUFDLE9BQW1CLEVBQUUsU0FBcUIsaUJBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1FBQ2xFLElBQUksT0FBTyxDQUFDLFNBQVMsS0FBSyxFQUFFLEVBQUU7WUFDNUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQzdDO1FBQ0QsSUFBSSxPQUFPLENBQUMsWUFBWSxLQUFLLEVBQUUsRUFBRTtZQUMvQixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDaEQ7UUFDRCxJQUFJLE9BQU8sQ0FBQyxVQUFVLEtBQUssQ0FBQyxFQUFFO1lBQzVCLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUM3QztRQUNELElBQUksT0FBTyxDQUFDLFFBQVEsS0FBSyxTQUFTLEVB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LEdBQUksRUFBRSxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUNELFdBQVcsQ0FBQyxNQUF1RDs7UUFDakUsTUFBTSxPQUFPLEdBQUcsNENBQTRDLEVBQUUsQ0FBQztRQUMvRCxPQUFPLENBQUMsV0FBVyxHQUFHLE1BQUEsTUFBTSxDQUFDLFdBQVcsbUNBQUksRUFBRSxDQUFDO1FBQy9DLE9BQU8sQ0FBQyxTQUFTLEdBQUcsTUFBQSxNQUFNLENBQUMsU0FBUyxtQ0FBSSxFQUFFLENBQUM7UUFDM0MsT0FBTyxDQUFDLGlCQUFpQixHQUFHLENBQUEsTUFBQSxNQUFNLENBQUMsaUJBQWlCLDBDQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMseUJBQWlCLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUksRUFBRSxDQUFDO1FBQ3pHLE9BQU8sQ0FBQyxVQUFVLEdBQUcsTUFBQSxNQUFNLENBQUMsVUFBVSxtQ0FBSSxTQUFTLENBQUM7UUFDcEQsT0FBTyxDQUFDLFFBQVEsR0FBRyxNQUFBLE1BQU0sQ0FBQyxRQUFRLG1DQUFJLFNBQVMsQ0FBQztRQUNoRCxPQUFPLENBQUMsSUFBSSxHQUFHLE1BQUEsTUFBTSxDQUFDLElBQUksbUNBQUksU0FBUyxDQUFDO1FBQ3hDLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7Q0FDRixDQUFDO0FBV0YsU0FBUyxLQUFLLENBQUMsS0FBVTtJQUN2QixPQUFPLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxLQUFLLFNBQVMsQ0FBQztBQUMvQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29kZSBnZW5lcmF0ZWQgYnkgcHJvdG9jLWdlbi10c19wcm90by4gRE8gTk9UIEVESVQuXG4vLyB2ZXJzaW9uczpcbi8vICAgcHJvdG9jLWdlbi10c19wcm90byAgdjEuMTgxLjFcbi8vICAgcHJvdG9jICAgICAgICAgICAgICAgdjMuMTkuMVxuLy8gc291cmNlOiBjb20vY29yYWxvZ2l4L2Jsb2JzZXQvdjIvcHJvZ3VhcmQucHJvdG9cblxuLyogZXNsaW50LWRpc2FibGUgKi9cbmltcG9ydCBfbTAgZnJvbSBcInByb3RvYnVmanMvbWluaW1hbFwiO1xuXG5leHBvcnQgY29uc3QgcHJvdG9idWZQYWNrYWdlID0gXCJjb20uY29yYWxvZ2l4LmJsb2JzZXQudjJcIjtcblxuZXhwb3J0IGludGVyZmFjZSBTdGFja0ZyYW1lIHtcbiAgY2xhc3NOYW1lOiBzdHJpbmc7XG4gIGZ1bmN0aW9uTmFtZTogc3RyaW5nO1xuICBsaW5lTnVtYmVyOiBudW1iZXI7XG4gIGZpbGVOYW1lPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN0YWNrRnJhbWVNYXBwaW5nIHtcbiAgb3JpZ2luYWxGcmFtZTogU3RhY2tGcmFtZSB8IHVuZGVmaW5lZDtcbiAgbWFwcGVkRnJhbWU6IFN0YWNrRnJhbWUgfCB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0TWFwcGVkQW5kcm9pZFN0YWNrVHJhY2VSZXF1ZXN0IHtcbiAgYXBwbGljYXRpb246IHN0cmluZztcbiAgcmVsZWFzZUlkOiBzdHJpbmc7XG4gIHN0YWNrRnJhbWVzOiBTdGFja0ZyYW1lW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0TWFwcGVkQW5kcm9pZFN0YWNrVHJhY2VSZXNwb25zZSB7XG4gIGFwcGxpY2F0aW9uOiBzdHJpbmc7XG4gIHJlbGVhc2VJZDogc3RyaW5nO1xuICBtYXBwZWRTdGFja0ZyYW1lczogU3RhY2tGcmFtZU1hcHBpbmdbXTtcbiAgY29tbWl0SGFzaD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgcmVwb05hbWU/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIHVzZXI/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUJhc2VTdGFja0ZyYW1lKCk6IFN0YWNrRnJhbWUge1xuICByZXR1cm4geyBjbGFzc05hbWU6IFwiXCIsIGZ1bmN0aW9uTmFtZTogXCJcIiwgbGluZU51bWJlcjogMCwgZmlsZU5hbWU6IHVuZGVmaW5lZCB9O1xufVxuXG5leHBvcnQgY29uc3QgU3RhY2tGcmFtZSA9IHtcbiAgZW5jb2RlKG1lc3NhZ2U6IFN0YWNrRnJhbWUsIHdyaXRlcjogX20wLldyaXRlciA9IF9tMC5Xcml0ZXIuY3JlYXRlKCkpOiBfbTAuV3JpdGVyIHtcbiAgICBpZiAobWVzc2FnZS5jbGFzc05hbWUgIT09IFwiXCIpIHtcbiAgICAgIHdyaXRlci51aW50MzIoMTApLnN0cmluZyhtZXNzYWdlLmNsYXNzTmFtZSk7XG4gICAgfVxuICAgIGlmIChtZXNzYWdlLmZ1bmN0aW9uTmFtZSAhPT0gXCJcIikge1xuICAgICAgd3JpdGVyLnVpbnQzMigxOCkuc3RyaW5nKG1lc3NhZ2UuZnVuY3Rpb25OYW1lKTtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2UubGluZU51bWJlciAhPT0gMCkge1xuICAgICAgd3JpdGVyLnVpbnQzMigyNCkuaW50MzIobWVzc2FnZS5saW5lTnVtYmVyKTtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2UuZmlsZU5hbWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgd3JpdGVyLnVpbnQzMigzNCkuc3RyaW5nKG1lc3NhZ2UuZmlsZU5hbWUpO1xuICAgIH1cbiAgICByZXR1cm4gd3JpdGVyO1xuICB9LFxuXG4gIGRlY29kZShpbnB1dDogX20wLlJlYWRlciB8IFVpbnQ4QXJyYXksIGxlbmd0aD86IG51bWJlcik6IFN0YWNrRnJhbWUge1xuICAgIGNvbnN0IHJlYWRlciA9IGlucHV0IGluc3RhbmNlb2YgX20wLlJlYWRlciA/IGlucHV0IDogX20wLlJlYWRlci5jcmVhdGUoaW5wdXQpO1xuICAgIGxldCBlbmQgPSBsZW5ndGggPT09IHVuZGVmaW5lZCA/IHJlYWRlci5sZW4gOiByZWFkZXIucG9zICsgbGVuZ3RoO1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBjcmVhdGVCYXNlU3RhY2tGcmFtZSgpO1xuICAgIHdoaWxlIChyZWFkZXIucG9zIDwgZW5kKSB7XG4gICAgICBjb25zdCB0YWcgPSByZWFkZXIudWludDMyKCk7XG4gICAgICBzd2l0Y2ggKHRhZyA+Pj4gMykge1xuICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgaWYgKHRhZyAhPT0gMTApIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG1lc3NhZ2UuY2xhc3NOYW1lID0gcmVhZGVyLnN0cmluZygpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgaWYgKHRhZyAhPT0gMTgpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG1lc3NhZ2UuZnVuY3Rpb25OYW1lID0gcmVhZGVyLnN0cmluZygpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgaWYgKHRhZyAhPT0gMjQpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG1lc3NhZ2UubGluZU51bWJlciA9IHJlYWRlci5pbnQzMigpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgaWYgKHRhZyAhPT0gMzQpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG1lc3NhZ2UuZmlsZU5hbWUgPSByZWFkZXIuc3RyaW5nKCk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBpZiAoKHRhZyAmIDcpID09PSA0IHx8IHRhZyA9PT0gMCkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIHJlYWRlci5za2lwVHlwZSh0YWcgJiA3KTtcbiAgICB9XG4gICAgcmV0dXJuIG1lc3NhZ2U7XG4gIH0sXG5cbiAgZnJvbUpTT04ob2JqZWN0OiBhbnkpOiBTdGFja0ZyYW1lIHtcbiAgICByZXR1cm4ge1xuICAgICAgY2xhc3NOYW1lOiBpc1NldChvYmplY3QuY2xhc3NOYW1lKSA/IGdsb2JhbFRoaXMuU3RyaW5nKG9iamVjdC5jbGFzc05hbWUpIDogXCJcIixcbiAgICAgIGZ1bmN0aW9uTmFtZTogaXNTZXQob2JqZWN0LmZ1bmN0aW9uTmFtZSkgPyBnbG9iYWxUaGlzLlN0cmluZyhvYmplY3QuZnVuY3Rpb25OYW1lKSA6IFwiXCIsXG4gICAgICBsaW5lTnVtYmVyOiBpc1NldChvYmplY3QubGluZU51bWJlcikgPyBnbG9iYWxUaGlzLk51bWJlcihvYmplY3QubGluZU51bWJlcikgOiAwLFxuICAgICAgZmlsZU5hbWU6IGlzU2V0KG9iamVjdC5maWxlTmFtZSkgPyBnbG9iYWxUaGlzLlN0cmluZyhvYmplY3QuZmlsZU5hbWUpIDogdW5kZWZpbmVkLFxuICAgIH07XG4gIH0sXG5cbiAgdG9KU09OKG1lc3NhZ2U6IFN0YWNrRnJhbWUpOiB1bmtub3duIHtcbiAgICBjb25zdCBvYmo6IGFueSA9IHt9O1xuICAgIGlmIChtZXNzYWdlLmNsYXNzTmFtZSAhPT0gXCJcIikge1xuICAgICAgb2JqLmNsYXNzTmFtZSA9IG1lc3NhZ2UuY2xhc3NOYW1lO1xuICAgIH1cbiAgICBpZiAobWVzc2FnZS5mdW5jdGlvbk5hbWUgIT09IFwiXCIpIHtcbiAgICAgIG9iai5mdW5jdGlvbk5hbWUgPSBtZXNzYWdlLmZ1bmN0aW9uTmFtZTtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2UubGluZU51bWJlciAhPT0gMCkge1xuICAgICAgb2JqLmxpbmVOdW1iZXIgPSBNYXRoLnJvdW5kKG1lc3NhZ2UubGluZU51bWJlcik7XG4gICAgfVxuICAgIGlmIChtZXNzYWdlLmZpbGVOYW1lICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIG9iai5maWxlTmFtZSA9IG1lc3NhZ2UuZmlsZU5hbWU7XG4gICAgfVxuICAgIHJldHVybiBvYmo7XG4gIH0sXG5cbiAgY3JlYXRlKGJhc2U/OiBEZWVwUGFydGlhbDxTdGFja0ZyYW1lPik6IFN0YWNrRnJhbWUge1xuICAgIHJldHVybiBTdGFja0ZyYW1lLmZyb21QYXJ0aWFsKGJhc2UgPz8ge30pO1xuICB9LFxuICBmcm9tUGFydGlhbChvYmplY3Q6IERlZXBQYXJ0aWFsPFN0YWNrRnJhbWU+KTogU3RhY2tGcmFtZSB7XG4gICAgY29uc3QgbWVzc2FnZSA9IGNyZWF0ZUJhc2VTdGFja0ZyYW1lKCk7XG4gICAgbWVzc2FnZS5jbGFzc05hbWUgPSBvYmplY3QuY2xhc3NOYW1lID8/IFwiXCI7XG4gICAgbWVzc2FnZS5mdW5jdGlvbk5hbWUgPSBvYmplY3QuZnVuY3Rpb25OYW1lID8/IFwiXCI7XG4gICAgbWVzc2FnZS5saW5lTnVtYmVyID0gb2JqZWN0LmxpbmVOdW1iZXIgPz8gMDtcbiAgICBtZXNzYWdlLmZpbGVOYW1lID0gb2JqZWN0LmZpbGVOYW1lID8/IHVuZGVmaW5lZDtcbiAgICByZXR1cm4gbWVzc2FnZTtcbiAgfSxcbn07XG5cbmZ1bmN0aW9uIGNyZWF0ZUJhc2VTdGFja0ZyYW1lTWFwcGluZygpOiBTdGFja0ZyYW1lTWFwcGluZyB7XG4gIHJldHVybiB7IG9yaWdpbmFsRnJhbWU6IHVuZGVmaW5lZCwgbWFwcGVkRnJhbWU6IHVuZGVmaW5lZCB9O1xufVxuXG5leHBvcnQgY29uc3QgU3RhY2tGcmFtZU1hcHBpbmcgPSB7XG4gIGVuY29kZShtZXNzYWdlOiBTdGFja0ZyYW1lTWFwcGluZywgd3JpdGVyOiBfbTAuV3JpdGVyID0gX20wLldyaXRlci5jcmVhdGUoKSk6IF9tMC5Xcml0ZXIge1xuICAgIGlmIChtZXNzYWdlLm9yaWdpbmFsRnJhbWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgU3RhY2tGcmFtZS5lbmNvZGUobWVzc2FnZS5vcmlnaW5hbEZyYW1lLCB3cml0ZXIudWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpO1xuICAgIH1cbiAgICBpZiAobWVzc2FnZS5tYXBwZWRGcmFtZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBTdGFja0ZyYW1lLmVuY29kZShtZXNzYWdlLm1hcHBlZEZyYW1lLCB3cml0ZXIudWludDMyKDE4KS5mb3JrKCkpLmxkZWxpbSgpO1xuICAgIH1cbiAgICByZXR1cm4gd3JpdGVyO1xuICB9LFxuXG4gIGRlY29kZShpbnB1dDogX20wLlJlYWRlciB8IFVpbnQ4QXJyYXksIGxlbmd0aD86IG51bWJlcik6IFN0YWNrRnJhbWVNYXBwaW5nIHtcbiAgICBjb25zdCByZWFkZXIgPSBpbnB1dCBpbnN0YW5jZW9mIF9tMC5SZWFkZXIgPyBpbnB1dCA6IF9tMC5SZWFkZXIuY3JlYXRlKGlucHV0KTtcbiAgICBsZXQgZW5kID0gbGVuZ3RoID09PSB1bmRlZmluZWQgPyByZWFkZXIubGVuIDogcmVhZGVyLnBvcyArIGxlbmd0aDtcbiAgICBjb25zdCBtZXNzYWdlID0gY3JlYXRlQmFzZVN0YWNrRnJhbWVNYXBwaW5nKCk7XG4gICAgd2hpbGUgKHJlYWRlci5wb3MgPCBlbmQpIHtcbiAgICAgIGNvbnN0IHRhZyA9IHJlYWRlci51aW50MzIoKTtcbiAgICAgIHN3aXRjaCAodGFnID4+PiAzKSB7XG4gICAgICAgIGNhc2UgMTpcbiAgICAgICAgICBpZiAodGFnICE9PSAxMCkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbWVzc2FnZS5vcmlnaW5hbEZyYW1lID0gU3RhY2tGcmFtZS5kZWNvZGUocmVhZGVyLCByZWFkZXIudWludDMyKCkpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgaWYgKHRhZyAhPT0gMTgpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG1lc3NhZ2UubWFwcGVkRnJhbWUgPSBTdGFja0ZyYW1lLmRlY29kZShyZWFkZXIsIHJlYWRlci51aW50MzIoKSk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBpZiAoKHRhZyAmIDcpID09PSA0IHx8IHRhZyA9PT0gMCkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIHJlYWRlci5za2lwVHlwZSh0YWcgJiA3KTtcbiAgICB9XG4gICAgcmV0dXJuIG1lc3NhZ2U7XG4gIH0sXG5cbiAgZnJvbUpTT04ob2JqZWN0OiBhbnkpOiBTdGFja0ZyYW1lTWFwcGluZyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG9yaWdpbmFsRnJhbWU6IGlzU2V0KG9iamVjdC5vcmlnaW5hbEZyYW1lKSA/IFN0YWNrRnJhbWUuZnJvbUpTT04ob2JqZWN0Lm9yaWdpbmFsRnJhbWUpIDogdW5kZWZpbmVkLFxuICAgICAgbWFwcGVkRnJhbWU6IGlzU2V0KG9iamVjdC5tYXBwZWRGcmFtZSkgPyBTdGFja0ZyYW1lLmZyb21KU09OKG9iamVjdC5tYXBwZWRGcmFtZSkgOiB1bmRlZmluZWQsXG4gICAgfTtcbiAgfSxcblxuICB0b0pTT04obWVzc2FnZTogU3RhY2tGcmFtZU1hcHBpbmcpOiB1bmtub3duIHtcbiAgICBjb25zdCBvYmo6IGFueSA9IHt9O1xuICAgIGlmIChtZXNzYWdlLm9yaWdpbmFsRnJhbWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgb2JqLm9yaWdpbmFsRnJhbWUgPSBTdGFja0ZyYW1lLnRvSlNPTihtZXNzYWdlLm9yaWdpbmFsRnJhbWUpO1xuICAgIH1cbiAgICBpZiAobWVzc2FnZS5tYXBwZWRGcmFtZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBvYmoubWFwcGVkRnJhbWUgPSBTdGFja0ZyYW1lLnRvSlNPTihtZXNzYWdlLm1hcHBlZEZyYW1lKTtcbiAgICB9XG4gICAgcmV0dXJuIG9iajtcbiAgfSxcblxuICBjcmVhdGUoYmFzZT86IERlZXBQYXJ0aWFsPFN0YWNrRnJhbWVNYXBwaW5nPik6IFN0YWNrRnJhbWVNYXBwaW5nIHtcbiAgICByZXR1cm4gU3RhY2tGcmFtZU1hcHBpbmcuZnJvbVBhcnRpYWwoYmFzZSA/PyB7fSk7XG4gIH0sXG4gIGZyb21QYXJ0aWFsKG9iamVjdDogRGVlcFBhcnRpYWw8U3RhY2tGcmFtZU1hcHBpbmc+KTogU3RhY2tGcmFtZU1hcHBpbmcge1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBjcmVhdGVCYXNlU3RhY2tGcmFtZU1hcHBpbmcoKTtcbiAgICBtZXNzYWdlLm9yaWdpbmFsRnJhbWUgPSAob2JqZWN0Lm9yaWdpbmFsRnJhbWUgIT09IHVuZGVmaW5lZCAmJiBvYmplY3Qub3JpZ2luYWxGcmFtZSAhPT0gbnVsbClcbiAgICAgID8gU3RhY2tGcmFtZS5mcm9tUGFydGlhbChvYmplY3Qub3JpZ2luYWxGcmFtZSlcbiAgICAgIDogdW5kZWZpbmVkO1xuICAgIG1lc3NhZ2UubWFwcGVkRnJhbWUgPSAob2JqZWN0Lm1hcHBlZEZyYW1lICE9PSB1bmRlZmluZWQgJiYgb2JqZWN0Lm1hcHBlZEZyYW1lICE9PSBudWxsKVxuICAgICAgPyBTdGFja0ZyYW1lLmZyb21QYXJ0aWFsKG9iamVjdC5tYXBwZWRGcmFtZSlcbiAgICAgIDogdW5kZWZpbmVkO1xuICAgIHJldHVybiBtZXNzYWdlO1xuICB9LFxufTtcblxuZnVuY3Rpb24gY3JlYXRlQmFzZUdldE1hcHBlZEFuZHJvaWRTdGFja1RyYWNlUmVxdWVzdCgpOiBHZXRNYXBwZWRBbmRyb2lkU3RhY2tUcmFjZVJlcXVlc3Qge1xuICByZXR1cm4geyBhcHBsaWNhdGlvbjogXCJcIiwgcmVsZWFzZUlkOiBcIlwiLCBzdGFja0ZyYW1lczogW10gfTtcbn1cblxuZXhwb3J0IGNvbnN0IEdldE1hcHBlZEFuZHJvaWRTdGFja1RyYWNlUmVxdWVzdCA9IHtcbiAgZW5jb2RlKG1lc3NhZ2U6IEdldE1hcHBlZEFuZHJvaWRTdGFja1RyYWNlUmVxdWVzdCwgd3JpdGVyOiBfbTAuV3JpdGVyID0gX20wLldyaXRlci5jcmVhdGUoKSk6IF9tMC5Xcml0ZXIge1xuICAgIGlmIChtZXNzYWdlLmFwcGxpY2F0aW9uICE9PSBcIlwiKSB7XG4gICAgICB3cml0ZXIudWludDMyKDEwKS5zdHJpbmcobWVzc2FnZS5hcHBsaWNhdGlvbik7XG4gICAgfVxuICAgIGlmIChtZXNzYWdlLnJlbGVhc2VJZCAhPT0gXCJcIikge1xuICAgICAgd3JpdGVyLnVpbnQzMigxOCkuc3RyaW5nKG1lc3NhZ2UucmVsZWFzZUlkKTtcbiAgICB9XG4gICAgZm9yIChjb25zdCB2IG9mIG1lc3NhZ2Uuc3RhY2tGcmFtZXMpIHtcbiAgICAgIFN0YWNrRnJhbWUuZW5jb2RlKHYhLCB3cml0ZXIudWludDMyKDI2KS5mb3JrKCkpLmxkZWxpbSgpO1xuICAgIH1cbiAgICByZXR1cm4gd3JpdGVyO1xuICB9LFxuXG4gIGRlY29kZShpbnB1dDogX20wLlJlYWRlciB8IFVpbnQ4QXJyYXksIGxlbmd0aD86IG51bWJlcik6IEdldE1hcHBlZEFuZHJvaWRTdGFja1RyYWNlUmVxdWVzdCB7XG4gICAgY29uc3QgcmVhZGVyID0gaW5wdXQgaW5zdGFuY2VvZiBfbTAuUmVhZGVyID8gaW5wdXQgOiBfbTAuUmVhZGVyLmNyZWF0ZShpbnB1dCk7XG4gICAgbGV0IGVuZCA9IGxlbmd0aCA9PT0gdW5kZWZpbmVkID8gcmVhZGVyLmxlbiA6IHJlYWRlci5wb3MgKyBsZW5ndGg7XG4gICAgY29uc3QgbWVzc2FnZSA9IGNyZWF0ZUJhc2VHZXRNYXBwZWRBbmRyb2lkU3RhY2tUcmFjZVJlcXVlc3QoKTtcbiAgICB3aGlsZSAocmVhZGVyLnBvcyA8IGVuZCkge1xuICAgICAgY29uc3QgdGFnID0gcmVhZGVyLnVpbnQzMigpO1xuICAgICAgc3dpdGNoICh0YWcgPj4+IDMpIHtcbiAgICAgICAgY2FzZSAxOlxuICAgICAgICAgIGlmICh0YWcgIT09IDEwKSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBtZXNzYWdlLmFwcGxpY2F0aW9uID0gcmVhZGVyLnN0cmluZygpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgaWYgKHRhZyAhPT0gMTgpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG1lc3NhZ2UucmVsZWFzZUlkID0gcmVhZGVyLnN0cmluZygpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgaWYgKHRhZyAhPT0gMjYpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG1lc3NhZ2Uuc3RhY2tGcmFtZXMucHVzaChTdGFja0ZyYW1lLmRlY29kZShyZWFkZXIsIHJlYWRlci51aW50MzIoKSkpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgaWYgKCh0YWcgJiA3KSA9PT0gNCB8fCB0YWcgPT09IDApIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICByZWFkZXIuc2tpcFR5cGUodGFnICYgNyk7XG4gICAgfVxuICAgIHJldHVybiBtZXNzYWdlO1xuICB9LFxuXG4gIGZyb21KU09OKG9iamVjdDogYW55KTogR2V0TWFwcGVkQW5kcm9pZFN0YWNrVHJhY2VSZXF1ZXN0IHtcbiAgICByZXR1cm4ge1xuICAgICAgYXBwbGljYXRpb246IGlzU2V0KG9iamVjdC5hcHBsaWNhdGlvbikgPyBnbG9iYWxUaGlzLlN0cmluZyhvYmplY3QuYXBwbGljYXRpb24pIDogXCJcIixcbiAgICAgIHJlbGVhc2VJZDogaXNTZXQob2JqZWN0LnJlbGVhc2VJZCkgPyBnbG9iYWxUaGlzLlN0cmluZyhvYmplY3QucmVsZWFzZUlkKSA6IFwiXCIsXG4gICAgICBzdGFja0ZyYW1lczogZ2xvYmFsVGhpcy5BcnJheS5pc0FycmF5KG9iamVjdD8uc3RhY2tGcmFtZXMpXG4gICAgICAgID8gb2JqZWN0LnN0YWNrRnJhbWVzLm1hcCgoZTogYW55KSA9PiBTdGFja0ZyYW1lLmZyb21KU09OKGUpKVxuICAgICAgICA6IFtdLFxuICAgIH07XG4gIH0sXG5cbiAgdG9KU09OKG1lc3NhZ2U6IEdldE1hcHBlZEFuZHJvaWRTdGFja1RyYWNlUmVxdWVzdCk6IHVua25vd24ge1xuICAgIGNvbnN0IG9iajogYW55ID0ge307XG4gICAgaWYgKG1lc3NhZ2UuYXBwbGljYXRpb24gIT09IFwiXCIpIHtcbiAgICAgIG9iai5hcHBsaWNhdGlvbiA9IG1lc3NhZ2UuYXBwbGljYXRpb247XG4gICAgfVxuICAgIGlmIChtZXNzYWdlLnJlbGVhc2VJZCAhPT0gXCJcIikge1xuICAgICAgb2JqLnJlbGVhc2VJZCA9IG1lc3NhZ2UucmVsZWFzZUlkO1xuICAgIH1cbiAgICBpZiAobWVzc2FnZS5zdGFja0ZyYW1lcz8ubGVuZ3RoKSB7XG4gICAgICBvYmouc3RhY2tGcmFtZXMgPSBtZXNzYWdlLnN0YWNrRnJhbWVzLm1hcCgoZSkgPT4gU3RhY2tGcmFtZS50b0pTT04oZSkpO1xuICAgIH1cbiAgICByZXR1cm4gb2JqO1xuICB9LFxuXG4gIGNyZWF0ZShiYXNlPzogRGVlcFBhcnRpYWw8R2V0TWFwcGVkQW5kcm9pZFN0YWNrVHJhY2VSZXF1ZXN0Pik6IEdldE1hcHBlZEFuZHJvaWRTdGFja1RyYWNlUmVxdWVzdCB7XG4gICAgcmV0dXJuIEdldE1hcHBlZEFuZHJvaWRTdGFja1RyYWNlUmVxdWVzdC5mcm9tUGFydGlhbChiYXNlID8/IHt9KTtcbiAgfSxcbiAgZnJvbVBhcnRpYWwob2JqZWN0OiBEZWVwUGFydGlhbDxHZXRNYXBwZWRBbmRyb2lkU3RhY2tUcmFjZVJlcXVlc3Q+KTogR2V0TWFwcGVkQW5kcm9pZFN0YWNrVHJhY2VSZXF1ZXN0IHtcbiAgICBjb25zdCBtZXNzYWdlID0gY3JlYXRlQmFzZUdldE1hcHBlZEFuZHJvaWRTdGFja1RyYWNlUmVxdWVzdCgpO1xuICAgIG1lc3NhZ2UuYXBwbGljYXRpb24gPSBvYmplY3QuYXBwbGljYXRpb24gPz8gXCJcIjtcbiAgICBtZXNzYWdlLnJlbGVhc2VJZCA9IG9iamVjdC5yZWxlYXNlSWQgPz8gXCJcIjtcbiAgICBtZXNzYWdlLnN0YWNrRnJhbWVzID0gb2JqZWN0LnN0YWNrRnJhbWVzPy5tYXAoKGUpID0+IFN0YWNrRnJhbWUuZnJvbVBhcnRpYWwoZSkpIHx8IFtdO1xuICAgIHJldHVybiBtZXNzYWdlO1xuICB9LFxufTtcblxuZnVuY3Rpb24gY3JlYXRlQmFzZUdldE1hcHBlZEFuZHJvaWRTdGFja1RyYWNlUmVzcG9uc2UoKTogR2V0TWFwcGVkQW5kcm9pZFN0YWNrVHJhY2VSZXNwb25zZSB7XG4gIHJldHVybiB7XG4gICAgYXBwbGljYXRpb246IFwiXCIsXG4gICAgcmVsZWFzZUlkOiBcIlwiLFxuICAgIG1hcHBlZFN0YWNrRnJhbWVzOiBbXSxcbiAgICBjb21taXRIYXNoOiB1bmRlZmluZWQsXG4gICAgcmVwb05hbWU6IHVuZGVmaW5lZCxcbiAgICB1c2VyOiB1bmRlZmluZWQsXG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBHZXRNYXBwZWRBbmRyb2lkU3RhY2tUcmFjZVJlc3BvbnNlID0ge1xuICBlbmNvZGUobWVzc2FnZTogR2V0TWFwcGVkQW5kcm9pZFN0YWNrVHJhY2VSZXNwb25zZSwgd3JpdGVyOiBfbTAuV3JpdGVyID0gX20wLldyaXRlci5jcmVhdGUoKSk6IF9tMC5Xcml0ZXIge1xuICAgIGlmIChtZXNzYWdlLmFwcGxpY2F0aW9uICE9PSBcIlwiKSB7XG4gICAgICB3cml0ZXIudWludDMyKDEwKS5zdHJpbmcobWVzc2FnZS5hcHBsaWNhdGlvbik7XG4gICAgfVxuICAgIGlmIChtZXNzYWdlLnJlbGVhc2VJZCAhPT0gXCJcIikge1xuICAgICAgd3JpdGVyLnVpbnQzMigxOCkuc3RyaW5nKG1lc3NhZ2UucmVsZWFzZUlkKTtcbiAgICB9XG4gICAgZm9yIChjb25zdCB2IG9mIG1lc3NhZ2UubWFwcGVkU3RhY2tGcmFtZXMpIHtcbiAgICAgIFN0YWNrRnJhbWVNYXBwaW5nLmVuY29kZSh2ISwgd3JpdGVyLnVpbnQzMigyNikuZm9yaygpKS5sZGVsaW0oKTtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2UuY29tbWl0SGFzaCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB3cml0ZXIudWludDMyKDM0KS5zdHJpbmcobWVzc2FnZS5jb21taXRIYXNoKTtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2UucmVwb05hbWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgd3JpdGVyLnVpbnQzMig0Mikuc3RyaW5nKG1lc3NhZ2UucmVwb05hbWUpO1xuICAgIH1cbiAgICBpZiAobWVzc2FnZS51c2VyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHdyaXRlci51aW50MzIoNTApLnN0cmluZyhtZXNzYWdlLnVzZXIpO1xuICAgIH1cbiAgICByZXR1cm4gd3JpdGVyO1xuICB9LFxuXG4gIGRlY29kZShpbnB1dDogX20wLlJlYWRlciB8IFVpbnQ4QXJyYXksIGxlbmd0aD86IG51bWJlcik6IEdldE1hcHBlZEFuZHJvaWRTdGFja1RyYWNlUmVzcG9uc2Uge1xuICAgIGNvbnN0IHJlYWRlciA9IGlucHV0IGluc3RhbmNlb2YgX20wLlJlYWRlciA/IGlucHV0IDogX20wLlJlYWRlci5jcmVhdGUoaW5wdXQpO1xuICAgIGxldCBlbmQgPSBsZW5ndGggPT09IHVuZGVmaW5lZCA/IHJlYWRlci5sZW4gOiByZWFkZXIucG9zICsgbGVuZ3RoO1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBjcmVhdGVCYXNlR2V0TWFwcGVkQW5kcm9pZFN0YWNrVHJhY2VSZXNwb25zZSgpO1xuICAgIHdoaWxlIChyZWFkZXIucG9zIDwgZW5kKSB7XG4gICAgICBjb25zdCB0YWcgPSByZWFkZXIudWludDMyKCk7XG4gICAgICBzd2l0Y2ggKHRhZyA+Pj4gMykge1xuICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgaWYgKHRhZyAhPT0gMTApIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG1lc3NhZ2UuYXBwbGljYXRpb24gPSByZWFkZXIuc3RyaW5nKCk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIGNhc2UgMjpcbiAgICAgICAgICBpZiAodGFnICE9PSAxOCkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbWVzc2FnZS5yZWxlYXNlSWQgPSByZWFkZXIuc3RyaW5nKCk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIGNhc2UgMzpcbiAgICAgICAgICBpZiAodGFnICE9PSAyNikge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbWVzc2FnZS5tYXBwZWRTdGFja0ZyYW1lcy5wdXNoKFN0YWNrRnJhbWVNYXBwaW5nLmRlY29kZShyZWFkZXIsIHJlYWRlci51aW50MzIoKSkpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgaWYgKHRhZyAhPT0gMzQpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG1lc3NhZ2UuY29tbWl0SGFzaCA9IHJlYWRlci5zdHJpbmcoKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgY2FzZSA1OlxuICAgICAgICAgIGlmICh0YWcgIT09IDQyKSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBtZXNzYWdlLnJlcG9OYW1lID0gcmVhZGVyLnN0cmluZygpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICBjYXNlIDY6XG4gICAgICAgICAgaWYgKHRhZyAhPT0gNTApIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG1lc3NhZ2UudXNlciA9IHJlYWRlci5zdHJpbmcoKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGlmICgodGFnICYgNykgPT09IDQgfHwgdGFnID09PSAwKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgcmVhZGVyLnNraXBUeXBlKHRhZyAmIDcpO1xuICAgIH1cbiAgICByZXR1cm4gbWVzc2FnZTtcbiAgfSxcblxuICBmcm9tSlNPTihvYmplY3Q6IGFueSk6IEdldE1hcHBlZEFuZHJvaWRTdGFja1RyYWNlUmVzcG9uc2Uge1xuICAgIHJldHVybiB7XG4gICAgICBhcHBsaWNhdGlvbjogaXNTZXQob2JqZWN0LmFwcGxpY2F0aW9uKSA/IGdsb2JhbFRoaXMuU3RyaW5nKG9iamVjdC5hcHBsaWNhdGlvbikgOiBcIlwiLFxuICAgICAgcmVsZWFzZUlkOiBpc1NldChvYmplY3QucmVsZWFzZUlkKSA/IGdsb2JhbFRoaXMuU3RyaW5nKG9iamVjdC5yZWxlYXNlSWQpIDogXCJcIixcbiAgICAgIG1hcHBlZFN0YWNrRnJhbWVzOiBnbG9iYWxUaGlzLkFycmF5LmlzQXJyYXkob2JqZWN0Py5tYXBwZWRTdGFja0ZyYW1lcylcbiAgICAgICAgPyBvYmplY3QubWFwcGVkU3RhY2tGcmFtZXMubWFwKChlOiBhbnkpID0+IFN0YWNrRnJhbWVNYXBwaW5nLmZyb21KU09OKGUpKVxuICAgICAgICA6IFtdLFxuICAgICAgY29tbWl0SGFzaDogaXNTZXQob2JqZWN0LmNvbW1pdEhhc2gpID8gZ2xvYmFsVGhpcy5TdHJpbmcob2JqZWN0LmNvbW1pdEhhc2gpIDogdW5kZWZpbmVkLFxuICAgICAgcmVwb05hbWU6IGlzU2V0KG9iamVjdC5yZXBvTmFtZSkgPyBnbG9iYWxUaGlzLlN0cmluZyhvYmplY3QucmVwb05hbWUpIDogdW5kZWZpbmVkLFxuICAgICAgdXNlcjogaXNTZXQob2JqZWN0LnVzZXIpID8gZ2xvYmFsVGhpcy5TdHJpbmcob2JqZWN0LnVzZXIpIDogdW5kZWZpbmVkLFxuICAgIH07XG4gIH0sXG5cbiAgdG9KU09OKG1lc3NhZ2U6IEdldE1hcHBlZEFuZHJvaWRTdGFja1RyYWNlUmVzcG9uc2UpOiB1bmtub3duIHtcbiAgICBjb25zdCBvYmo6IGFueSA9IHt9O1xuICAgIGlmIChtZXNzYWdlLmFwcGxpY2F0aW9uICE9PSBcIlwiKSB7XG4gICAgICBvYmouYXBwbGljYXRpb24gPSBtZXNzYWdlLmFwcGxpY2F0aW9uO1xuICAgIH1cbiAgICBpZiAobWVzc2FnZS5yZWxlYXNlSWQgIT09IFwiXCIpIHtcbiAgICAgIG9iai5yZWxlYXNlSWQgPSBtZXNzYWdlLnJlbGVhc2VJZDtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2UubWFwcGVkU3RhY2tGcmFtZXM/Lmxlbmd0aCkge1xuICAgICAgb2JqLm1hcHBlZFN0YWNrRnJhbWVzID0gbWVzc2FnZS5tYXBwZWRTdGFja0ZyYW1lcy5tYXAoKGUpID0+IFN0YWNrRnJhbWVNYXBwaW5nLnRvSlNPTihlKSk7XG4gICAgfVxuICAgIGlmIChtZXNzYWdlLmNvbW1pdEhhc2ggIT09IHVuZGVmaW5lZCkge1xuICAgICAgb2JqLmNvbW1pdEhhc2ggPSBtZXNzYWdlLmNvbW1pdEhhc2g7XG4gICAgfVxuICAgIGlmIChtZXNzYWdlLnJlcG9OYW1lICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIG9iai5yZXBvTmFtZSA9IG1lc3NhZ2UucmVwb05hbWU7XG4gICAgfVxuICAgIGlmIChtZXNzYWdlLnVzZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgb2JqLnVzZXIgPSBtZXNzYWdlLnVzZXI7XG4gICAgfVxuICAgIHJldHVybiBvYmo7XG4gIH0sXG5cbiAgY3JlYXRlKGJhc2U/OiBEZWVwUGFydGlhbDxHZXRNYXBwZWRBbmRyb2lkU3RhY2tUcmFjZVJlc3BvbnNlPik6IEdldE1hcHBlZEFuZHJvaWRTdGFja1RyYWNlUmVzcG9uc2Uge1xuICAgIHJldHVybiBHZXRNYXBwZWRBbmRyb2lkU3RhY2tUcmFjZVJlc3BvbnNlLmZyb21QYXJ0aWFsKGJhc2UgPz8ge30pO1xuICB9LFxuICBmcm9tUGFydGlhbChvYmplY3Q6IERlZXBQYXJ0aWFsPEdldE1hcHBlZEFuZHJvaWRTdGFja1RyYWNlUmVzcG9uc2U+KTogR2V0TWFwcGVkQW5kcm9pZFN0YWNrVHJhY2VSZXNwb25zZSB7XG4gICAgY29uc3QgbWVzc2FnZSA9IGNyZWF0ZUJhc2VHZXRNYXBwZWRBbmRyb2lkU3RhY2tUcmFjZVJlc3BvbnNlKCk7XG4gICAgbWVzc2FnZS5hcHBsaWNhdGlvbiA9IG9iamVjdC5hcHBsaWNhdGlvbiA/PyBcIlwiO1xuICAgIG1lc3NhZ2UucmVsZWFzZUlkID0gb2JqZWN0LnJlbGVhc2VJZCA/PyBcIlwiO1xuICAgIG1lc3NhZ2UubWFwcGVkU3RhY2tGcmFtZXMgPSBvYmplY3QubWFwcGVkU3RhY2tGcmFtZXM/Lm1hcCgoZSkgPT4gU3RhY2tGcmFtZU1hcHBpbmcuZnJvbVBhcnRpYWwoZSkpIHx8IFtdO1xuICAgIG1lc3NhZ2UuY29tbWl0SGFzaCA9IG9iamVjdC5jb21taXRIYXNoID8/IHVuZGVmaW5lZDtcbiAgICBtZXNzYWdlLnJlcG9OYW1lID0gb2JqZWN0LnJlcG9OYW1lID8/IHVuZGVmaW5lZDtcbiAgICBtZXNzYWdlLnVzZXIgPSBvYmplY3QudXNlciA/PyB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIG1lc3NhZ2U7XG4gIH0sXG59O1xuXG50eXBlIEJ1aWx0aW4gPSBEYXRlIHwgRnVuY3Rpb24gfCBVaW50OEFycmF5IHwgc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IHVuZGVmaW5lZDtcblxuZXhwb3J0IHR5cGUgRGVlcFBhcnRpYWw8VD4gPSBUIGV4dGVuZHMgQnVpbHRpbiA/IFRcbiAgOiBUIGV4dGVuZHMgZ2xvYmFsVGhpcy5BcnJheTxpbmZlciBVPiA/IGdsb2JhbFRoaXMuQXJyYXk8RGVlcFBhcnRpYWw8VT4+XG4gIDogVCBleHRlbmRzIFJlYWRvbmx5QXJyYXk8aW5mZXIgVT4gPyBSZWFkb25seUFycmF5PERlZXBQYXJ0aWFsPFU+PlxuICA6IFQgZXh0ZW5kcyB7ICRjYXNlOiBzdHJpbmcgfSA/IHsgW0sgaW4ga2V5b2YgT21pdDxULCBcIiRjYXNlXCI+XT86IERlZXBQYXJ0aWFsPFRbS10+IH0gJiB7ICRjYXNlOiBUW1wiJGNhc2VcIl0gfVxuICA6IFQgZXh0ZW5kcyB7fSA/IHsgW0sgaW4ga2V5b2YgVF0/OiBEZWVwUGFydGlhbDxUW0tdPiB9XG4gIDogUGFydGlhbDxUPjtcblxuZnVuY3Rpb24gaXNTZXQodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xuICByZXR1cm4gdmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09IHVuZGVmaW5lZDtcbn1cbiJdfQ==
@@ -0,0 +1,89 @@
1
+ import _m0 from "protobufjs/minimal";
2
+ export declare const protobufPackage = "com.coralogix.rum.v2";
3
+ export declare enum AiAssistRequestId {
4
+ AI_ASSIST_REQUEST_ID_UNSPECIFIED = 0,
5
+ AI_ASSIST_REQUEST_ID_ERROR_ANALYSIS = 1
6
+ }
7
+ export declare function aiAssistRequestIdFromJSON(object: any): AiAssistRequestId;
8
+ export declare function aiAssistRequestIdToJSON(object: AiAssistRequestId): string;
9
+ export interface AiAssistRequest {
10
+ id: AiAssistRequestId;
11
+ context: {
12
+ [key: string]: any;
13
+ } | undefined;
14
+ }
15
+ export interface ErrorAnalysisResult {
16
+ summary: string;
17
+ debuggingOptions: string[];
18
+ actionableSteps: string[];
19
+ }
20
+ export interface AiAssistResponse {
21
+ result?: {
22
+ $case: "errorAnalysisResult";
23
+ errorAnalysisResult: ErrorAnalysisResult;
24
+ } | undefined;
25
+ }
26
+ export declare const AiAssistRequest: {
27
+ encode(message: AiAssistRequest, writer?: _m0.Writer): _m0.Writer;
28
+ decode(input: _m0.Reader | Uint8Array, length?: number): AiAssistRequest;
29
+ fromJSON(object: any): AiAssistRequest;
30
+ toJSON(message: AiAssistRequest): unknown;
31
+ create(base?: DeepPartial<AiAssistRequest>): AiAssistRequest;
32
+ fromPartial(object: DeepPartial<AiAssistRequest>): AiAssistRequest;
33
+ };
34
+ export declare const ErrorAnalysisResult: {
35
+ encode(message: ErrorAnalysisResult, writer?: _m0.Writer): _m0.Writer;
36
+ decode(input: _m0.Reader | Uint8Array, length?: number): ErrorAnalysisResult;
37
+ fromJSON(object: any): ErrorAnalysisResult;
38
+ toJSON(message: ErrorAnalysisResult): unknown;
39
+ create(base?: DeepPartial<ErrorAnalysisResult>): ErrorAnalysisResult;
40
+ fromPartial(object: DeepPartial<ErrorAnalysisResult>): ErrorAnalysisResult;
41
+ };
42
+ export declare const AiAssistResponse: {
43
+ encode(message: AiAssistResponse, writer?: _m0.Writer): _m0.Writer;
44
+ decode(input: _m0.Reader | Uint8Array, length?: number): AiAssistResponse;
45
+ fromJSON(object: any): AiAssistResponse;
46
+ toJSON(message: AiAssistResponse): unknown;
47
+ create(base?: DeepPartial<AiAssistResponse>): AiAssistResponse;
48
+ fromPartial(object: DeepPartial<AiAssistResponse>): AiAssistResponse;
49
+ };
50
+ export type AiAssistServiceDefinition = typeof AiAssistServiceDefinition;
51
+ export declare const AiAssistServiceDefinition: {
52
+ readonly name: "AiAssistService";
53
+ readonly fullName: "com.coralogix.rum.v2.AiAssistService";
54
+ readonly methods: {
55
+ readonly aiAssist: {
56
+ readonly name: "AiAssist";
57
+ readonly requestType: {
58
+ encode(message: AiAssistRequest, writer?: _m0.Writer): _m0.Writer;
59
+ decode(input: _m0.Reader | Uint8Array, length?: number): AiAssistRequest;
60
+ fromJSON(object: any): AiAssistRequest;
61
+ toJSON(message: AiAssistRequest): unknown;
62
+ create(base?: DeepPartial<AiAssistRequest>): AiAssistRequest;
63
+ fromPartial(object: DeepPartial<AiAssistRequest>): AiAssistRequest;
64
+ };
65
+ readonly requestStream: false;
66
+ readonly responseType: {
67
+ encode(message: AiAssistResponse, writer?: _m0.Writer): _m0.Writer;
68
+ decode(input: _m0.Reader | Uint8Array, length?: number): AiAssistResponse;
69
+ fromJSON(object: any): AiAssistResponse;
70
+ toJSON(message: AiAssistResponse): unknown;
71
+ create(base?: DeepPartial<AiAssistResponse>): AiAssistResponse;
72
+ fromPartial(object: DeepPartial<AiAssistResponse>): AiAssistResponse;
73
+ };
74
+ readonly responseStream: false;
75
+ readonly options: {};
76
+ };
77
+ };
78
+ };
79
+ type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
80
+ export type DeepPartial<T> = T extends Builtin ? T : T extends globalThis.Array<infer U> ? globalThis.Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {
81
+ $case: string;
82
+ } ? {
83
+ [K in keyof Omit<T, "$case">]?: DeepPartial<T[K]>;
84
+ } & {
85
+ $case: T["$case"];
86
+ } : T extends {} ? {
87
+ [K in keyof T]?: DeepPartial<T[K]>;
88
+ } : Partial<T>;
89
+ export {};