@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.
- package/README.md +2 -0
- package/api/base/base.api.ts +48 -56
- package/api/dsym/dsym.api.ts +8 -0
- package/api/proguard/proguard.api.ts +8 -0
- package/api/react-native/react-native.api.ts +8 -0
- package/api/source-maps/source-maps.api.ts +8 -0
- package/cli/commands/dsym/upload-dsym-command.ts +4 -2
- package/cli/commands/proguard/upload-proguard-command.ts +4 -2
- package/cli/commands/react-native/upload-react-native-source-maps-command.ts +4 -2
- package/cli/commands/source-maps/upload-source-maps-command.ts +4 -2
- package/consts/consts.ts +1 -0
- package/dist/api/base/base.api.d.ts +10 -9
- package/dist/api/base/base.api.js +20 -34
- package/dist/api/dsym/dsym.api.d.ts +2 -2
- package/dist/api/dsym/dsym.api.js +7 -3
- package/dist/api/proguard/proguard.api.d.ts +2 -2
- package/dist/api/proguard/proguard.api.js +7 -3
- package/dist/api/react-native/react-native.api.d.ts +2 -2
- package/dist/api/react-native/react-native.api.js +7 -3
- package/dist/api/source-maps/source-maps.api.d.ts +2 -2
- package/dist/api/source-maps/source-maps.api.js +7 -3
- package/dist/cli/commands/dsym/upload-dsym-command.js +5 -3
- package/dist/cli/commands/proguard/upload-proguard-command.js +5 -3
- package/dist/cli/commands/react-native/upload-react-native-source-maps-command.js +5 -3
- package/dist/cli/commands/source-maps/upload-source-maps-command.js +5 -3
- package/dist/consts/consts.js +3 -2
- package/dist/grpc-client/grpc-client-factory.d.ts +158 -0
- package/dist/models/dsym-commands.model.d.ts +2 -0
- package/dist/models/dsym-commands.model.js +1 -1
- package/dist/models/proguard-commands.model.d.ts +2 -0
- package/dist/models/proguard-commands.model.js +1 -1
- package/dist/models/react-native-commands.model.d.ts +2 -0
- package/dist/models/react-native-commands.model.js +1 -1
- package/dist/models/source-maps-commands.model.d.ts +2 -0
- package/dist/models/source-maps-commands.model.js +1 -1
- package/dist/proto-models/com/coralogix/blobset/v2/blobset_query_service.d.ts +150 -0
- package/dist/proto-models/com/coralogix/blobset/v2/blobset_query_service.js +29 -1
- package/dist/proto-models/com/coralogix/blobset/v2/case_file.d.ts +36 -0
- package/dist/proto-models/com/coralogix/blobset/v2/case_file.js +161 -0
- package/dist/proto-models/com/coralogix/blobset/v2/dsym.d.ts +1 -0
- package/dist/proto-models/com/coralogix/blobset/v2/dsym.js +33 -3
- package/dist/proto-models/com/coralogix/blobset/v2/entity_metadata.d.ts +47 -0
- package/dist/proto-models/com/coralogix/blobset/v2/entity_metadata.js +375 -11
- package/dist/proto-models/com/coralogix/blobset/v2/entity_type.d.ts +3 -1
- package/dist/proto-models/com/coralogix/blobset/v2/entity_type.js +13 -1
- package/dist/proto-models/com/coralogix/blobset/v2/investigation_file.d.ts +36 -0
- package/dist/proto-models/com/coralogix/blobset/v2/investigation_file.js +161 -0
- package/dist/proto-models/com/coralogix/blobset/v2/proguard.d.ts +68 -0
- package/dist/proto-models/com/coralogix/blobset/v2/proguard.js +400 -0
- package/dist/proto-models/com/coralogix/rum/v2/ai_assist.d.ts +89 -0
- package/dist/proto-models/com/coralogix/rum/v2/ai_assist.js +290 -0
- package/dist/proto-models/com/coralogix/rum/v2/application_releases.d.ts +38 -0
- package/dist/proto-models/com/coralogix/rum/v2/application_releases.js +180 -0
- package/dist/proto-models/com/coralogix/rum/v2/merge_error.d.ts +38 -0
- package/dist/proto-models/com/coralogix/rum/v2/merge_error.js +171 -0
- package/dist/proto-models/com/coralogix/rum/v2/release_entity_metadata.d.ts +19 -0
- package/dist/proto-models/com/coralogix/rum/v2/release_entity_metadata.js +225 -10
- package/dist/proto-models/com/coralogix/rum/v2/rum_merge_erros_service.d.ts +197 -0
- package/dist/proto-models/com/coralogix/rum/v2/rum_merge_erros_service.js +478 -0
- package/dist/proto-models/com/coralogix/rum/v2/rum_service.d.ts +107 -0
- package/dist/proto-models/com/coralogix/rum/v2/rum_service.js +385 -2
- package/dist/proto-models/com/coralogix/rum/v2/rum_source_map_service.d.ts +94 -1
- package/dist/proto-models/com/coralogix/rum/v2/rum_source_map_service.js +300 -2
- package/dist/proto-models/com/coralogix/rum/v2/saved_filter.d.ts +5 -1
- package/dist/proto-models/com/coralogix/rum/v2/saved_filter.js +25 -1
- package/dist/proto-models/com/coralogix/rum/v2/template.d.ts +2 -0
- package/dist/proto-models/com/coralogix/rum/v2/template.js +31 -3
- package/dist/proto-models/google/protobuf/struct.d.ts +127 -0
- package/dist/proto-models/google/protobuf/struct.js +476 -0
- package/dist/services/base/base.service.d.ts +1 -1
- package/dist/services/base/base.service.js +7 -5
- package/dist/utils/upload-mode.utils.d.ts +12 -0
- package/dist/utils/upload-mode.utils.js +26 -0
- package/dist/utils/version-context.utils.d.ts +20 -0
- package/dist/utils/version-context.utils.js +71 -0
- package/models/dsym-commands.model.ts +2 -0
- package/models/proguard-commands.model.ts +2 -0
- package/models/react-native-commands.model.ts +2 -0
- package/models/source-maps-commands.model.ts +2 -0
- package/package.json +2 -2
- package/protofetch.lock +4 -4
- package/protofetch.toml +2 -2
- package/services/base/base.service.ts +7 -3
- package/utils/upload-mode.utils.ts +30 -0
- package/utils/version-context.utils.ts +95 -0
- package/proto-models/com/coralogix/blobset/v2/audit_log.ts +0 -84
- package/proto-models/com/coralogix/blobset/v2/blobset_query_service.ts +0 -36
- package/proto-models/com/coralogix/blobset/v2/blobset_service.ts +0 -209
- package/proto-models/com/coralogix/blobset/v2/dsym.ts +0 -400
- package/proto-models/com/coralogix/blobset/v2/entity_metadata.ts +0 -540
- package/proto-models/com/coralogix/blobset/v2/entity_type.ts +0 -56
- package/proto-models/com/coralogix/blobset/v2/s3_metadata.ts +0 -154
- package/proto-models/com/coralogix/blobset/v2/source_map.ts +0 -418
- package/proto-models/com/coralogix/rum/v2/analytics.ts +0 -924
- package/proto-models/com/coralogix/rum/v2/audit_log.ts +0 -84
- package/proto-models/com/coralogix/rum/v2/chunk.ts +0 -399
- package/proto-models/com/coralogix/rum/v2/file.ts +0 -159
- package/proto-models/com/coralogix/rum/v2/hide_errors.ts +0 -234
- package/proto-models/com/coralogix/rum/v2/release_entity_metadata.ts +0 -699
- package/proto-models/com/coralogix/rum/v2/release_entity_type.ts +0 -56
- package/proto-models/com/coralogix/rum/v2/rum_hide_errors_service.ts +0 -605
- package/proto-models/com/coralogix/rum/v2/rum_react_native_source_map_service.ts +0 -229
- package/proto-models/com/coralogix/rum/v2/rum_saved_filters_service.ts +0 -1679
- package/proto-models/com/coralogix/rum/v2/rum_sdk_versions.ts +0 -279
- package/proto-models/com/coralogix/rum/v2/rum_service.ts +0 -2158
- package/proto-models/com/coralogix/rum/v2/rum_session_recording_service.ts +0 -16
- package/proto-models/com/coralogix/rum/v2/rum_settings.ts +0 -215
- package/proto-models/com/coralogix/rum/v2/rum_settings_service.ts +0 -283
- package/proto-models/com/coralogix/rum/v2/rum_source_map_service.ts +0 -905
- package/proto-models/com/coralogix/rum/v2/saved_filter.ts +0 -307
- package/proto-models/com/coralogix/rum/v2/source_code_file_mapping.ts +0 -358
- package/proto-models/com/coralogix/rum/v2/source_map_release.ts +0 -301
- package/proto-models/com/coralogix/rum/v2/template.ts +0 -588
- package/proto-models/google/protobuf/descriptor.ts +0 -4921
- package/protos/com/coralogix/blobset/v2/audit_log.proto +0 -13
- package/protos/com/coralogix/blobset/v2/blobset_query_service.proto +0 -12
- package/protos/com/coralogix/blobset/v2/blobset_service.proto +0 -18
- package/protos/com/coralogix/blobset/v2/dsym.proto +0 -19
- package/protos/com/coralogix/blobset/v2/entity_metadata.proto +0 -35
- package/protos/com/coralogix/blobset/v2/entity_type.proto +0 -11
- package/protos/com/coralogix/blobset/v2/s3_metadata.proto +0 -14
- package/protos/com/coralogix/blobset/v2/source_map.proto +0 -30
- package/protos/com/coralogix/rum/v2/analytics.proto +0 -57
- package/protos/com/coralogix/rum/v2/audit_log.proto +0 -13
- package/protos/com/coralogix/rum/v2/chunk.proto +0 -24
- package/protos/com/coralogix/rum/v2/file.proto +0 -8
- package/protos/com/coralogix/rum/v2/hide_errors.proto +0 -19
- package/protos/com/coralogix/rum/v2/release_entity_metadata.proto +0 -44
- package/protos/com/coralogix/rum/v2/release_entity_type.proto +0 -11
- package/protos/com/coralogix/rum/v2/rum_hide_errors_service.proto +0 -42
- package/protos/com/coralogix/rum/v2/rum_react_native_source_map_service.proto +0 -19
- package/protos/com/coralogix/rum/v2/rum_saved_filters_service.proto +0 -117
- package/protos/com/coralogix/rum/v2/rum_sdk_versions.proto +0 -17
- package/protos/com/coralogix/rum/v2/rum_service.proto +0 -144
- package/protos/com/coralogix/rum/v2/rum_session_recording_service.proto +0 -4
- package/protos/com/coralogix/rum/v2/rum_settings.proto +0 -26
- package/protos/com/coralogix/rum/v2/rum_settings_service.proto +0 -23
- package/protos/com/coralogix/rum/v2/rum_source_map_service.proto +0 -58
- package/protos/com/coralogix/rum/v2/saved_filter.proto +0 -28
- package/protos/com/coralogix/rum/v2/source_code_file_mapping.proto +0 -16
- package/protos/com/coralogix/rum/v2/source_map_release.proto +0 -18
- package/protos/com/coralogix/rum/v2/template.proto +0 -40
- 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 {};
|