@coralogix/rum-cli 1.1.17 → 1.1.18
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/.prettierrc +15 -0
- package/README.md +26 -19
- package/api/rum-api.ts +104 -91
- package/cli/commands/delete-source-maps-command.ts +34 -0
- package/cli/commands/index.ts +7 -0
- package/cli/commands/update-source-maps-command.ts +38 -0
- package/cli/commands/upload-source-maps-command.ts +38 -0
- package/cli/rum-cli.ts +13 -47
- package/cli/validators/index.ts +9 -10
- package/config/config.ts +21 -21
- package/consts/consts.ts +16 -0
- package/dist/api/rum-api.d.ts +4 -3
- package/dist/api/rum-api.js +60 -72
- package/dist/cli/commands/delete-source-maps-command.d.ts +2 -0
- package/dist/cli/commands/delete-source-maps-command.js +43 -0
- package/dist/cli/commands/index.d.ts +6 -0
- package/dist/cli/commands/index.js +8 -0
- package/dist/cli/commands/update-source-maps-command.d.ts +2 -0
- package/dist/cli/commands/update-source-maps-command.js +47 -0
- package/dist/cli/commands/upload-source-maps-command.d.ts +2 -0
- package/dist/cli/commands/upload-source-maps-command.js +47 -0
- package/dist/cli/rum-cli.js +14 -55
- package/dist/cli/validators/index.js +5 -6
- package/dist/config/config.js +6 -5
- package/dist/{cli/theme/index.d.ts → consts/consts.d.ts} +2 -0
- package/dist/consts/consts.js +16 -0
- package/dist/models/commands.model.d.ts +29 -0
- package/dist/models/commands.model.js +3 -0
- package/dist/proto-models/com/coralogix/rum/v2/rum_service.d.ts +88 -1
- package/dist/proto-models/com/coralogix/rum/v2/rum_service.js +228 -4
- package/dist/proto-models/com/coralogix/rum/v2/rum_session_recording_service.d.ts +65 -0
- package/dist/proto-models/com/coralogix/rum/v2/rum_session_recording_service.js +182 -0
- package/dist/proto-models/com/coralogix/rum/v2/rum_source_map_service.d.ts +92 -0
- package/dist/proto-models/com/coralogix/rum/v2/rum_source_map_service.js +271 -2
- package/dist/proto-models/com/coralogix/rum/v2/source_map_release.d.ts +13 -0
- package/dist/proto-models/com/coralogix/rum/v2/source_map_release.js +77 -2
- package/dist/services/source-maps.service.d.ts +5 -0
- package/dist/services/source-maps.service.js +80 -0
- package/dist/utils/index.d.ts +6 -0
- package/dist/utils/index.js +115 -0
- package/models/commands.model.ts +31 -0
- package/package.json +5 -3
- package/proto-models/com/coralogix/rum/v2/rum_service.ts +268 -2
- package/proto-models/com/coralogix/rum/v2/rum_session_recording_service.ts +217 -0
- package/proto-models/com/coralogix/rum/v2/rum_source_map_service.ts +322 -0
- package/proto-models/com/coralogix/rum/v2/source_map_release.ts +90 -0
- package/protofetch.lock +2 -2
- package/protofetch.toml +1 -1
- package/protos/com/coralogix/rum/v2/rum_service.proto +16 -1
- package/protos/com/coralogix/rum/v2/rum_session_recording_service.proto +15 -0
- package/protos/com/coralogix/rum/v2/rum_source_map_service.proto +18 -0
- package/protos/com/coralogix/rum/v2/source_map_release.proto +6 -0
- package/protoset.bin +0 -0
- package/services/source-maps.service.ts +96 -0
- package/utils/index.ts +93 -0
- package/cli/consts/consts.ts +0 -2
- package/cli/theme/index.ts +0 -5
- package/dist/cli/consts/consts.d.ts +0 -2
- package/dist/cli/consts/consts.js +0 -6
- package/dist/cli/theme/index.js +0 -7
- package/dist/model/cli.model.d.ts +0 -1
- package/dist/model/cli.model.js +0 -12
- package/dist/services/source-maps/source-maps.service.d.ts +0 -3
- package/dist/services/source-maps/source-maps.service.js +0 -42
- package/dist/services/source-maps/utils/traverse-folder.util.d.ts +0 -2
- package/dist/services/source-maps/utils/traverse-folder.util.js +0 -42
- package/model/cli.model.ts +0 -8
- package/services/source-maps/source-maps.service.ts +0 -31
- package/services/source-maps/utils/traverse-folder.util.ts +0 -33
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import _m0 from "protobufjs/minimal";
|
|
2
|
+
export declare const protobufPackage = "com.coralogix.rum.v2";
|
|
3
|
+
export interface GetSessionRecordingRequest {
|
|
4
|
+
sessionId: string;
|
|
5
|
+
application: string;
|
|
6
|
+
}
|
|
7
|
+
export interface GetSessionRecordingResponse {
|
|
8
|
+
sessionRecordings: Uint8Array;
|
|
9
|
+
}
|
|
10
|
+
export declare const GetSessionRecordingRequest: {
|
|
11
|
+
encode(message: GetSessionRecordingRequest, writer?: _m0.Writer): _m0.Writer;
|
|
12
|
+
decode(input: _m0.Reader | Uint8Array, length?: number): GetSessionRecordingRequest;
|
|
13
|
+
fromJSON(object: any): GetSessionRecordingRequest;
|
|
14
|
+
toJSON(message: GetSessionRecordingRequest): unknown;
|
|
15
|
+
create(base?: DeepPartial<GetSessionRecordingRequest>): GetSessionRecordingRequest;
|
|
16
|
+
fromPartial(object: DeepPartial<GetSessionRecordingRequest>): GetSessionRecordingRequest;
|
|
17
|
+
};
|
|
18
|
+
export declare const GetSessionRecordingResponse: {
|
|
19
|
+
encode(message: GetSessionRecordingResponse, writer?: _m0.Writer): _m0.Writer;
|
|
20
|
+
decode(input: _m0.Reader | Uint8Array, length?: number): GetSessionRecordingResponse;
|
|
21
|
+
fromJSON(object: any): GetSessionRecordingResponse;
|
|
22
|
+
toJSON(message: GetSessionRecordingResponse): unknown;
|
|
23
|
+
create(base?: DeepPartial<GetSessionRecordingResponse>): GetSessionRecordingResponse;
|
|
24
|
+
fromPartial(object: DeepPartial<GetSessionRecordingResponse>): GetSessionRecordingResponse;
|
|
25
|
+
};
|
|
26
|
+
export type RumSessionRecordingServiceDefinition = typeof RumSessionRecordingServiceDefinition;
|
|
27
|
+
export declare const RumSessionRecordingServiceDefinition: {
|
|
28
|
+
readonly name: "RumSessionRecordingService";
|
|
29
|
+
readonly fullName: "com.coralogix.rum.v2.RumSessionRecordingService";
|
|
30
|
+
readonly methods: {
|
|
31
|
+
readonly getSessionRecording: {
|
|
32
|
+
readonly name: "GetSessionRecording";
|
|
33
|
+
readonly requestType: {
|
|
34
|
+
encode(message: GetSessionRecordingRequest, writer?: _m0.Writer): _m0.Writer;
|
|
35
|
+
decode(input: _m0.Reader | Uint8Array, length?: number): GetSessionRecordingRequest;
|
|
36
|
+
fromJSON(object: any): GetSessionRecordingRequest;
|
|
37
|
+
toJSON(message: GetSessionRecordingRequest): unknown;
|
|
38
|
+
create(base?: DeepPartial<GetSessionRecordingRequest>): GetSessionRecordingRequest;
|
|
39
|
+
fromPartial(object: DeepPartial<GetSessionRecordingRequest>): GetSessionRecordingRequest;
|
|
40
|
+
};
|
|
41
|
+
readonly requestStream: false;
|
|
42
|
+
readonly responseType: {
|
|
43
|
+
encode(message: GetSessionRecordingResponse, writer?: _m0.Writer): _m0.Writer;
|
|
44
|
+
decode(input: _m0.Reader | Uint8Array, length?: number): GetSessionRecordingResponse;
|
|
45
|
+
fromJSON(object: any): GetSessionRecordingResponse;
|
|
46
|
+
toJSON(message: GetSessionRecordingResponse): unknown;
|
|
47
|
+
create(base?: DeepPartial<GetSessionRecordingResponse>): GetSessionRecordingResponse;
|
|
48
|
+
fromPartial(object: DeepPartial<GetSessionRecordingResponse>): GetSessionRecordingResponse;
|
|
49
|
+
};
|
|
50
|
+
readonly responseStream: false;
|
|
51
|
+
readonly options: {};
|
|
52
|
+
};
|
|
53
|
+
};
|
|
54
|
+
};
|
|
55
|
+
type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
|
|
56
|
+
export type DeepPartial<T> = T extends Builtin ? T : T extends Array<infer U> ? Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {
|
|
57
|
+
$case: string;
|
|
58
|
+
} ? {
|
|
59
|
+
[K in keyof Omit<T, "$case">]?: DeepPartial<T[K]>;
|
|
60
|
+
} & {
|
|
61
|
+
$case: T["$case"];
|
|
62
|
+
} : T extends {} ? {
|
|
63
|
+
[K in keyof T]?: DeepPartial<T[K]>;
|
|
64
|
+
} : Partial<T>;
|
|
65
|
+
export {};
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.RumSessionRecordingServiceDefinition = exports.GetSessionRecordingResponse = exports.GetSessionRecordingRequest = exports.protobufPackage = void 0;
|
|
7
|
+
/* eslint-disable */
|
|
8
|
+
const minimal_1 = __importDefault(require("protobufjs/minimal"));
|
|
9
|
+
exports.protobufPackage = "com.coralogix.rum.v2";
|
|
10
|
+
function createBaseGetSessionRecordingRequest() {
|
|
11
|
+
return { sessionId: "", application: "" };
|
|
12
|
+
}
|
|
13
|
+
exports.GetSessionRecordingRequest = {
|
|
14
|
+
encode(message, writer = minimal_1.default.Writer.create()) {
|
|
15
|
+
if (message.sessionId !== "") {
|
|
16
|
+
writer.uint32(10).string(message.sessionId);
|
|
17
|
+
}
|
|
18
|
+
if (message.application !== "") {
|
|
19
|
+
writer.uint32(18).string(message.application);
|
|
20
|
+
}
|
|
21
|
+
return writer;
|
|
22
|
+
},
|
|
23
|
+
decode(input, length) {
|
|
24
|
+
const reader = input instanceof minimal_1.default.Reader ? input : minimal_1.default.Reader.create(input);
|
|
25
|
+
let end = length === undefined ? reader.len : reader.pos + length;
|
|
26
|
+
const message = createBaseGetSessionRecordingRequest();
|
|
27
|
+
while (reader.pos < end) {
|
|
28
|
+
const tag = reader.uint32();
|
|
29
|
+
switch (tag >>> 3) {
|
|
30
|
+
case 1:
|
|
31
|
+
if (tag !== 10) {
|
|
32
|
+
break;
|
|
33
|
+
}
|
|
34
|
+
message.sessionId = reader.string();
|
|
35
|
+
continue;
|
|
36
|
+
case 2:
|
|
37
|
+
if (tag !== 18) {
|
|
38
|
+
break;
|
|
39
|
+
}
|
|
40
|
+
message.application = reader.string();
|
|
41
|
+
continue;
|
|
42
|
+
}
|
|
43
|
+
if ((tag & 7) === 4 || tag === 0) {
|
|
44
|
+
break;
|
|
45
|
+
}
|
|
46
|
+
reader.skipType(tag & 7);
|
|
47
|
+
}
|
|
48
|
+
return message;
|
|
49
|
+
},
|
|
50
|
+
fromJSON(object) {
|
|
51
|
+
return {
|
|
52
|
+
sessionId: isSet(object.sessionId) ? String(object.sessionId) : "",
|
|
53
|
+
application: isSet(object.application) ? String(object.application) : "",
|
|
54
|
+
};
|
|
55
|
+
},
|
|
56
|
+
toJSON(message) {
|
|
57
|
+
const obj = {};
|
|
58
|
+
message.sessionId !== undefined && (obj.sessionId = message.sessionId);
|
|
59
|
+
message.application !== undefined && (obj.application = message.application);
|
|
60
|
+
return obj;
|
|
61
|
+
},
|
|
62
|
+
create(base) {
|
|
63
|
+
return exports.GetSessionRecordingRequest.fromPartial(base !== null && base !== void 0 ? base : {});
|
|
64
|
+
},
|
|
65
|
+
fromPartial(object) {
|
|
66
|
+
var _a, _b;
|
|
67
|
+
const message = createBaseGetSessionRecordingRequest();
|
|
68
|
+
message.sessionId = (_a = object.sessionId) !== null && _a !== void 0 ? _a : "";
|
|
69
|
+
message.application = (_b = object.application) !== null && _b !== void 0 ? _b : "";
|
|
70
|
+
return message;
|
|
71
|
+
},
|
|
72
|
+
};
|
|
73
|
+
function createBaseGetSessionRecordingResponse() {
|
|
74
|
+
return { sessionRecordings: new Uint8Array() };
|
|
75
|
+
}
|
|
76
|
+
exports.GetSessionRecordingResponse = {
|
|
77
|
+
encode(message, writer = minimal_1.default.Writer.create()) {
|
|
78
|
+
if (message.sessionRecordings.length !== 0) {
|
|
79
|
+
writer.uint32(10).bytes(message.sessionRecordings);
|
|
80
|
+
}
|
|
81
|
+
return writer;
|
|
82
|
+
},
|
|
83
|
+
decode(input, length) {
|
|
84
|
+
const reader = input instanceof minimal_1.default.Reader ? input : minimal_1.default.Reader.create(input);
|
|
85
|
+
let end = length === undefined ? reader.len : reader.pos + length;
|
|
86
|
+
const message = createBaseGetSessionRecordingResponse();
|
|
87
|
+
while (reader.pos < end) {
|
|
88
|
+
const tag = reader.uint32();
|
|
89
|
+
switch (tag >>> 3) {
|
|
90
|
+
case 1:
|
|
91
|
+
if (tag !== 10) {
|
|
92
|
+
break;
|
|
93
|
+
}
|
|
94
|
+
message.sessionRecordings = reader.bytes();
|
|
95
|
+
continue;
|
|
96
|
+
}
|
|
97
|
+
if ((tag & 7) === 4 || tag === 0) {
|
|
98
|
+
break;
|
|
99
|
+
}
|
|
100
|
+
reader.skipType(tag & 7);
|
|
101
|
+
}
|
|
102
|
+
return message;
|
|
103
|
+
},
|
|
104
|
+
fromJSON(object) {
|
|
105
|
+
return {
|
|
106
|
+
sessionRecordings: isSet(object.sessionRecordings) ? bytesFromBase64(object.sessionRecordings) : new Uint8Array(),
|
|
107
|
+
};
|
|
108
|
+
},
|
|
109
|
+
toJSON(message) {
|
|
110
|
+
const obj = {};
|
|
111
|
+
message.sessionRecordings !== undefined &&
|
|
112
|
+
(obj.sessionRecordings = base64FromBytes(message.sessionRecordings !== undefined ? message.sessionRecordings : new Uint8Array()));
|
|
113
|
+
return obj;
|
|
114
|
+
},
|
|
115
|
+
create(base) {
|
|
116
|
+
return exports.GetSessionRecordingResponse.fromPartial(base !== null && base !== void 0 ? base : {});
|
|
117
|
+
},
|
|
118
|
+
fromPartial(object) {
|
|
119
|
+
var _a;
|
|
120
|
+
const message = createBaseGetSessionRecordingResponse();
|
|
121
|
+
message.sessionRecordings = (_a = object.sessionRecordings) !== null && _a !== void 0 ? _a : new Uint8Array();
|
|
122
|
+
return message;
|
|
123
|
+
},
|
|
124
|
+
};
|
|
125
|
+
exports.RumSessionRecordingServiceDefinition = {
|
|
126
|
+
name: "RumSessionRecordingService",
|
|
127
|
+
fullName: "com.coralogix.rum.v2.RumSessionRecordingService",
|
|
128
|
+
methods: {
|
|
129
|
+
getSessionRecording: {
|
|
130
|
+
name: "GetSessionRecording",
|
|
131
|
+
requestType: exports.GetSessionRecordingRequest,
|
|
132
|
+
requestStream: false,
|
|
133
|
+
responseType: exports.GetSessionRecordingResponse,
|
|
134
|
+
responseStream: false,
|
|
135
|
+
options: {},
|
|
136
|
+
},
|
|
137
|
+
},
|
|
138
|
+
};
|
|
139
|
+
var tsProtoGlobalThis = (() => {
|
|
140
|
+
if (typeof globalThis !== "undefined") {
|
|
141
|
+
return globalThis;
|
|
142
|
+
}
|
|
143
|
+
if (typeof self !== "undefined") {
|
|
144
|
+
return self;
|
|
145
|
+
}
|
|
146
|
+
if (typeof window !== "undefined") {
|
|
147
|
+
return window;
|
|
148
|
+
}
|
|
149
|
+
if (typeof global !== "undefined") {
|
|
150
|
+
return global;
|
|
151
|
+
}
|
|
152
|
+
throw "Unable to locate global object";
|
|
153
|
+
})();
|
|
154
|
+
function bytesFromBase64(b64) {
|
|
155
|
+
if (tsProtoGlobalThis.Buffer) {
|
|
156
|
+
return Uint8Array.from(tsProtoGlobalThis.Buffer.from(b64, "base64"));
|
|
157
|
+
}
|
|
158
|
+
else {
|
|
159
|
+
const bin = tsProtoGlobalThis.atob(b64);
|
|
160
|
+
const arr = new Uint8Array(bin.length);
|
|
161
|
+
for (let i = 0; i < bin.length; ++i) {
|
|
162
|
+
arr[i] = bin.charCodeAt(i);
|
|
163
|
+
}
|
|
164
|
+
return arr;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
function base64FromBytes(arr) {
|
|
168
|
+
if (tsProtoGlobalThis.Buffer) {
|
|
169
|
+
return tsProtoGlobalThis.Buffer.from(arr).toString("base64");
|
|
170
|
+
}
|
|
171
|
+
else {
|
|
172
|
+
const bin = [];
|
|
173
|
+
arr.forEach((byte) => {
|
|
174
|
+
bin.push(String.fromCharCode(byte));
|
|
175
|
+
});
|
|
176
|
+
return tsProtoGlobalThis.btoa(bin.join(""));
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
function isSet(value) {
|
|
180
|
+
return value !== null && value !== undefined;
|
|
181
|
+
}
|
|
182
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVtX3Nlc3Npb25fcmVjb3JkaW5nX3NlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm90by1tb2RlbHMvY29tL2NvcmFsb2dpeC9ydW0vdjIvcnVtX3Nlc3Npb25fcmVjb3JkaW5nX3NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsb0JBQW9CO0FBQ3BCLGlFQUFxQztBQUV4QixRQUFBLGVBQWUsR0FBRyxzQkFBc0IsQ0FBQztBQVd0RCxTQUFTLG9DQUFvQztJQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxXQUFXLEVBQUUsRUFBRSxFQUFFLENBQUM7QUFDNUMsQ0FBQztBQUVZLFFBQUEsMEJBQTBCLEdBQUc7SUFDeEMsTUFBTSxDQUFDLE9BQW1DLEVBQUUsU0FBcUIsaUJBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1FBQ2xGLElBQUksT0FBTyxDQUFDLFNBQVMsS0FBSyxFQUFFLEVBQUU7WUFDNUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQzdDO1FBQ0QsSUFBSSxPQUFPLENBQUMsV0FBVyxLQUFLLEVBQUUsRUFBRTtZQUM5QixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDL0M7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQThCLEVBQUUsTUFBZTtRQUNwRCxNQUFNLE1BQU0sR0FBRyxLQUFLLFlBQVksaUJBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsaUJBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlFLElBQUksR0FBRyxHQUFHLE1BQU0sS0FBSyxT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LFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztLQUM5RDtTQUFNO1FBQ0wsTUFBTSxHQUFHLEdBQWEsRUFBRSxDQUFDO1FBQ3pCLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNuQixHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUN0QyxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8saUJBQWlCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztLQUM3QztBQUNILENBQUM7QUFVRCxTQUFTLEtBQUssQ0FBQyxLQUFVO0lBQ3ZCLE9BQU8sS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssU0FBUyxDQUFDO0FBQy9DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSAqL1xuaW1wb3J0IF9tMCBmcm9tIFwicHJvdG9idWZqcy9taW5pbWFsXCI7XG5cbmV4cG9ydCBjb25zdCBwcm90b2J1ZlBhY2thZ2UgPSBcImNvbS5jb3JhbG9naXgucnVtLnYyXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0U2Vzc2lvblJlY29yZGluZ1JlcXVlc3Qge1xuICBzZXNzaW9uSWQ6IHN0cmluZztcbiAgYXBwbGljYXRpb246IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZXRTZXNzaW9uUmVjb3JkaW5nUmVzcG9uc2Uge1xuICBzZXNzaW9uUmVjb3JkaW5nczogVWludDhBcnJheTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlQmFzZUdldFNlc3Npb25SZWNvcmRpbmdSZXF1ZXN0KCk6IEdldFNlc3Npb25SZWNvcmRpbmdSZXF1ZXN0IHtcbiAgcmV0dXJuIHsgc2Vzc2lvbklkOiBcIlwiLCBhcHBsaWNhdGlvbjogXCJcIiB9O1xufVxuXG5leHBvcnQgY29uc3QgR2V0U2Vzc2lvblJlY29yZGluZ1JlcXVlc3QgPSB7XG4gIGVuY29kZShtZXNzYWdlOiBHZXRTZXNzaW9uUmVjb3JkaW5nUmVxdWVzdCwgd3JpdGVyOiBfbTAuV3JpdGVyID0gX20wLldyaXRlci5jcmVhdGUoKSk6IF9tMC5Xcml0ZXIge1xuICAgIGlmIChtZXNzYWdlLnNlc3Npb25JZCAhPT0gXCJcIikge1xuICAgICAgd3JpdGVyLnVpbnQzMigxMCkuc3RyaW5nKG1lc3NhZ2Uuc2Vzc2lvbklkKTtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2UuYXBwbGljYXRpb24gIT09IFwiXCIpIHtcbiAgICAgIHdyaXRlci51aW50MzIoMTgpLnN0cmluZyhtZXNzYWdlLmFwcGxpY2F0aW9uKTtcbiAgICB9XG4gICAgcmV0dXJuIHdyaXRlcjtcbiAgfSxcblxuICBkZWNvZGUoaW5wdXQ6IF9tMC5SZWFkZXIgfCBVaW50OEFycmF5LCBsZW5ndGg/OiBudW1iZXIpOiBHZXRTZXNzaW9uUmVjb3JkaW5nUmVxdWVzdCB7XG4gICAgY29uc3QgcmVhZGVyID0gaW5wdXQgaW5zdGFuY2VvZiBfbTAuUmVhZGVyID8gaW5wdXQgOiBfbTAuUmVhZGVyLmNyZWF0ZShpbnB1dCk7XG4gICAgbGV0IGVuZCA9IGxlbmd0aCA9PT0gdW5kZWZpbmVkID8gcmVhZGVyLmxlbiA6IHJlYWRlci5wb3MgKyBsZW5ndGg7XG4gICAgY29uc3QgbWVzc2FnZSA9IGNyZWF0ZUJhc2VHZXRTZXNzaW9uUmVjb3JkaW5nUmVxdWVzdCgpO1xuICAgIHdoaWxlIChyZWFkZXIucG9zIDwgZW5kKSB7XG4gICAgICBjb25zdCB0YWcgPSByZWFkZXIudWludDMyKCk7XG4gICAgICBzd2l0Y2ggKHRhZyA+Pj4gMykge1xuICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgaWYgKHRhZyAhPT0gMTApIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG1lc3NhZ2Uuc2Vzc2lvbklkID0gcmVhZGVyLnN0cmluZygpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgaWYgKHRhZyAhPT0gMTgpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG1lc3NhZ2UuYXBwbGljYXRpb24gPSByZWFkZXIuc3RyaW5nKCk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBpZiAoKHRhZyAmIDcpID09PSA0IHx8IHRhZyA9PT0gMCkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIHJlYWRlci5za2lwVHlwZSh0YWcgJiA3KTtcbiAgICB9XG4gICAgcmV0dXJuIG1lc3NhZ2U7XG4gIH0sXG5cbiAgZnJvbUpTT04ob2JqZWN0OiBhbnkpOiBHZXRTZXNzaW9uUmVjb3JkaW5nUmVxdWVzdCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHNlc3Npb25JZDogaXNTZXQob2JqZWN0LnNlc3Npb25JZCkgPyBTdHJpbmcob2JqZWN0LnNlc3Npb25JZCkgOiBcIlwiLFxuICAgICAgYXBwbGljYXRpb246IGlzU2V0KG9iamVjdC5hcHBsaWNhdGlvbikgPyBTdHJpbmcob2JqZWN0LmFwcGxpY2F0aW9uKSA6IFwiXCIsXG4gICAgfTtcbiAgfSxcblxuICB0b0pTT04obWVzc2FnZTogR2V0U2Vzc2lvblJlY29yZGluZ1JlcXVlc3QpOiB1bmtub3duIHtcbiAgICBjb25zdCBvYmo6IGFueSA9IHt9O1xuICAgIG1lc3NhZ2Uuc2Vzc2lvbklkICE9PSB1bmRlZmluZWQgJiYgKG9iai5zZXNzaW9uSWQgPSBtZXNzYWdlLnNlc3Npb25JZCk7XG4gICAgbWVzc2FnZS5hcHBsaWNhdGlvbiAhPT0gdW5kZWZpbmVkICYmIChvYmouYXBwbGljYXRpb24gPSBtZXNzYWdlLmFwcGxpY2F0aW9uKTtcbiAgICByZXR1cm4gb2JqO1xuICB9LFxuXG4gIGNyZWF0ZShiYXNlPzogRGVlcFBhcnRpYWw8R2V0U2Vzc2lvblJlY29yZGluZ1JlcXVlc3Q+KTogR2V0U2Vzc2lvblJlY29yZGluZ1JlcXVlc3Qge1xuICAgIHJldHVybiBHZXRTZXNzaW9uUmVjb3JkaW5nUmVxdWVzdC5mcm9tUGFydGlhbChiYXNlID8/IHt9KTtcbiAgfSxcblxuICBmcm9tUGFydGlhbChvYmplY3Q6IERlZXBQYXJ0aWFsPEdldFNlc3Npb25SZWNvcmRpbmdSZXF1ZXN0Pik6IEdldFNlc3Npb25SZWNvcmRpbmdSZXF1ZXN0IHtcbiAgICBjb25zdCBtZXNzYWdlID0gY3JlYXRlQmFzZUdldFNlc3Npb25SZWNvcmRpbmdSZXF1ZXN0KCk7XG4gICAgbWVzc2FnZS5zZXNzaW9uSWQgPSBvYmplY3Quc2Vzc2lvbklkID8/IFwiXCI7XG4gICAgbWVzc2FnZS5hcHBsaWNhdGlvbiA9IG9iamVjdC5hcHBsaWNhdGlvbiA/PyBcIlwiO1xuICAgIHJldHVybiBtZXNzYWdlO1xuICB9LFxufTtcblxuZnVuY3Rpb24gY3JlYXRlQmFzZUdldFNlc3Npb25SZWNvcmRpbmdSZXNwb25zZSgpOiBHZXRTZXNzaW9uUmVjb3JkaW5nUmVzcG9uc2Uge1xuICByZXR1cm4geyBzZXNzaW9uUmVjb3JkaW5nczogbmV3IFVpbnQ4QXJyYXkoKSB9O1xufVxuXG5leHBvcnQgY29uc3QgR2V0U2Vzc2lvblJlY29yZGluZ1Jlc3BvbnNlID0ge1xuICBlbmNvZGUobWVzc2FnZTogR2V0U2Vzc2lvblJlY29yZGluZ1Jlc3BvbnNlLCB3cml0ZXI6IF9tMC5Xcml0ZXIgPSBfbTAuV3JpdGVyLmNyZWF0ZSgpKTogX20wLldyaXRlciB7XG4gICAgaWYgKG1lc3NhZ2Uuc2Vzc2lvblJlY29yZGluZ3MubGVuZ3RoICE9PSAwKSB7XG4gICAgICB3cml0ZXIudWludDMyKDEwKS5ieXRlcyhtZXNzYWdlLnNlc3Npb25SZWNvcmRpbmdzKTtcbiAgICB9XG4gICAgcmV0dXJuIHdyaXRlcjtcbiAgfSxcblxuICBkZWNvZGUoaW5wdXQ6IF9tMC5SZWFkZXIgfCBVaW50OEFycmF5LCBsZW5ndGg/OiBudW1iZXIpOiBHZXRTZXNzaW9uUmVjb3JkaW5nUmVzcG9uc2Uge1xuICAgIGNvbnN0IHJlYWRlciA9IGlucHV0IGluc3RhbmNlb2YgX20wLlJlYWRlciA/IGlucHV0IDogX20wLlJlYWRlci5jcmVhdGUoaW5wdXQpO1xuICAgIGxldCBlbmQgPSBsZW5ndGggPT09IHVuZGVmaW5lZCA/IHJlYWRlci5sZW4gOiByZWFkZXIucG9zICsgbGVuZ3RoO1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBjcmVhdGVCYXNlR2V0U2Vzc2lvblJlY29yZGluZ1Jlc3BvbnNlKCk7XG4gICAgd2hpbGUgKHJlYWRlci5wb3MgPCBlbmQpIHtcbiAgICAgIGNvbnN0IHRhZyA9IHJlYWRlci51aW50MzIoKTtcbiAgICAgIHN3aXRjaCAodGFnID4+PiAzKSB7XG4gICAgICAgIGNhc2UgMTpcbiAgICAgICAgICBpZiAodGFnICE9PSAxMCkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbWVzc2FnZS5zZXNzaW9uUmVjb3JkaW5ncyA9IHJlYWRlci5ieXRlcygpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgaWYgKCh0YWcgJiA3KSA9PT0gNCB8fCB0YWcgPT09IDApIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICByZWFkZXIuc2tpcFR5cGUodGFnICYgNyk7XG4gICAgfVxuICAgIHJldHVybiBtZXNzYWdlO1xuICB9LFxuXG4gIGZyb21KU09OKG9iamVjdDogYW55KTogR2V0U2Vzc2lvblJlY29yZGluZ1Jlc3BvbnNlIHtcbiAgICByZXR1cm4ge1xuICAgICAgc2Vzc2lvblJlY29yZGluZ3M6IGlzU2V0KG9iamVjdC5zZXNzaW9uUmVjb3JkaW5ncykgPyBieXRlc0Zyb21CYXNlNjQob2JqZWN0LnNlc3Npb25SZWNvcmRpbmdzKSA6IG5ldyBVaW50OEFycmF5KCksXG4gICAgfTtcbiAgfSxcblxuICB0b0pTT04obWVzc2FnZTogR2V0U2Vzc2lvblJlY29yZGluZ1Jlc3BvbnNlKTogdW5rbm93biB7XG4gICAgY29uc3Qgb2JqOiBhbnkgPSB7fTtcbiAgICBtZXNzYWdlLnNlc3Npb25SZWNvcmRpbmdzICE9PSB1bmRlZmluZWQgJiZcbiAgICAgIChvYmouc2Vzc2lvblJlY29yZGluZ3MgPSBiYXNlNjRGcm9tQnl0ZXMoXG4gICAgICAgIG1lc3NhZ2Uuc2Vzc2lvblJlY29yZGluZ3MgIT09IHVuZGVmaW5lZCA/IG1lc3NhZ2Uuc2Vzc2lvblJlY29yZGluZ3MgOiBuZXcgVWludDhBcnJheSgpLFxuICAgICAgKSk7XG4gICAgcmV0dXJuIG9iajtcbiAgfSxcblxuICBjcmVhdGUoYmFzZT86IERlZXBQYXJ0aWFsPEdldFNlc3Npb25SZWNvcmRpbmdSZXNwb25zZT4pOiBHZXRTZXNzaW9uUmVjb3JkaW5nUmVzcG9uc2Uge1xuICAgIHJldHVybiBHZXRTZXNzaW9uUmVjb3JkaW5nUmVzcG9uc2UuZnJvbVBhcnRpYWwoYmFzZSA/PyB7fSk7XG4gIH0sXG5cbiAgZnJvbVBhcnRpYWwob2JqZWN0OiBEZWVwUGFydGlhbDxHZXRTZXNzaW9uUmVjb3JkaW5nUmVzcG9uc2U+KTogR2V0U2Vzc2lvblJlY29yZGluZ1Jlc3BvbnNlIHtcbiAgICBjb25zdCBtZXNzYWdlID0gY3JlYXRlQmFzZUdldFNlc3Npb25SZWNvcmRpbmdSZXNwb25zZSgpO1xuICAgIG1lc3NhZ2Uuc2Vzc2lvblJlY29yZGluZ3MgPSBvYmplY3Quc2Vzc2lvblJlY29yZGluZ3MgPz8gbmV3IFVpbnQ4QXJyYXkoKTtcbiAgICByZXR1cm4gbWVzc2FnZTtcbiAgfSxcbn07XG5cbmV4cG9ydCB0eXBlIFJ1bVNlc3Npb25SZWNvcmRpbmdTZXJ2aWNlRGVmaW5pdGlvbiA9IHR5cGVvZiBSdW1TZXNzaW9uUmVjb3JkaW5nU2VydmljZURlZmluaXRpb247XG5leHBvcnQgY29uc3QgUnVtU2Vzc2lvblJlY29yZGluZ1NlcnZpY2VEZWZpbml0aW9uID0ge1xuICBuYW1lOiBcIlJ1bVNlc3Npb25SZWNvcmRpbmdTZXJ2aWNlXCIsXG4gIGZ1bGxOYW1lOiBcImNvbS5jb3JhbG9naXgucnVtLnYyLlJ1bVNlc3Npb25SZWNvcmRpbmdTZXJ2aWNlXCIsXG4gIG1ldGhvZHM6IHtcbiAgICBnZXRTZXNzaW9uUmVjb3JkaW5nOiB7XG4gICAgICBuYW1lOiBcIkdldFNlc3Npb25SZWNvcmRpbmdcIixcbiAgICAgIHJlcXVlc3RUeXBlOiBHZXRTZXNzaW9uUmVjb3JkaW5nUmVxdWVzdCxcbiAgICAgIHJlcXVlc3RTdHJlYW06IGZhbHNlLFxuICAgICAgcmVzcG9uc2VUeXBlOiBHZXRTZXNzaW9uUmVjb3JkaW5nUmVzcG9uc2UsXG4gICAgICByZXNwb25zZVN0cmVhbTogZmFsc2UsXG4gICAgICBvcHRpb25zOiB7fSxcbiAgICB9LFxuICB9LFxufSBhcyBjb25zdDtcblxuZGVjbGFyZSB2YXIgc2VsZjogYW55IHwgdW5kZWZpbmVkO1xuZGVjbGFyZSB2YXIgd2luZG93OiBhbnkgfCB1bmRlZmluZWQ7XG5kZWNsYXJlIHZhciBnbG9iYWw6IGFueSB8IHVuZGVmaW5lZDtcbnZhciB0c1Byb3RvR2xvYmFsVGhpczogYW55ID0gKCgpID0+IHtcbiAgaWYgKHR5cGVvZiBnbG9iYWxUaGlzICE9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgcmV0dXJuIGdsb2JhbFRoaXM7XG4gIH1cbiAgaWYgKHR5cGVvZiBzZWxmICE9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgcmV0dXJuIHNlbGY7XG4gIH1cbiAgaWYgKHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICByZXR1cm4gd2luZG93O1xuICB9XG4gIGlmICh0eXBlb2YgZ2xvYmFsICE9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgcmV0dXJuIGdsb2JhbDtcbiAgfVxuICB0aHJvdyBcIlVuYWJsZSB0byBsb2NhdGUgZ2xvYmFsIG9iamVjdFwiO1xufSkoKTtcblxuZnVuY3Rpb24gYnl0ZXNGcm9tQmFzZTY0KGI2NDogc3RyaW5nKTogVWludDhBcnJheSB7XG4gIGlmICh0c1Byb3RvR2xvYmFsVGhpcy5CdWZmZXIpIHtcbiAgICByZXR1cm4gVWludDhBcnJheS5mcm9tKHRzUHJvdG9HbG9iYWxUaGlzLkJ1ZmZlci5mcm9tKGI2NCwgXCJiYXNlNjRcIikpO1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IGJpbiA9IHRzUHJvdG9HbG9iYWxUaGlzLmF0b2IoYjY0KTtcbiAgICBjb25zdCBhcnIgPSBuZXcgVWludDhBcnJheShiaW4ubGVuZ3RoKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGJpbi5sZW5ndGg7ICsraSkge1xuICAgICAgYXJyW2ldID0gYmluLmNoYXJDb2RlQXQoaSk7XG4gICAgfVxuICAgIHJldHVybiBhcnI7XG4gIH1cbn1cblxuZnVuY3Rpb24gYmFzZTY0RnJvbUJ5dGVzKGFycjogVWludDhBcnJheSk6IHN0cmluZyB7XG4gIGlmICh0c1Byb3RvR2xvYmFsVGhpcy5CdWZmZXIpIHtcbiAgICByZXR1cm4gdHNQcm90b0dsb2JhbFRoaXMuQnVmZmVyLmZyb20oYXJyKS50b1N0cmluZyhcImJhc2U2NFwiKTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBiaW46IHN0cmluZ1tdID0gW107XG4gICAgYXJyLmZvckVhY2goKGJ5dGUpID0+IHtcbiAgICAgIGJpbi5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoYnl0ZSkpO1xuICAgIH0pO1xuICAgIHJldHVybiB0c1Byb3RvR2xvYmFsVGhpcy5idG9hKGJpbi5qb2luKFwiXCIpKTtcbiAgfVxufVxuXG50eXBlIEJ1aWx0aW4gPSBEYXRlIHwgRnVuY3Rpb24gfCBVaW50OEFycmF5IHwgc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IHVuZGVmaW5lZDtcblxuZXhwb3J0IHR5cGUgRGVlcFBhcnRpYWw8VD4gPSBUIGV4dGVuZHMgQnVpbHRpbiA/IFRcbiAgOiBUIGV4dGVuZHMgQXJyYXk8aW5mZXIgVT4gPyBBcnJheTxEZWVwUGFydGlhbDxVPj4gOiBUIGV4dGVuZHMgUmVhZG9ubHlBcnJheTxpbmZlciBVPiA/IFJlYWRvbmx5QXJyYXk8RGVlcFBhcnRpYWw8VT4+XG4gIDogVCBleHRlbmRzIHsgJGNhc2U6IHN0cmluZyB9ID8geyBbSyBpbiBrZXlvZiBPbWl0PFQsIFwiJGNhc2VcIj5dPzogRGVlcFBhcnRpYWw8VFtLXT4gfSAmIHsgJGNhc2U6IFRbXCIkY2FzZVwiXSB9XG4gIDogVCBleHRlbmRzIHt9ID8geyBbSyBpbiBrZXlvZiBUXT86IERlZXBQYXJ0aWFsPFRbS10+IH1cbiAgOiBQYXJ0aWFsPFQ+O1xuXG5mdW5jdGlvbiBpc1NldCh2YWx1ZTogYW55KTogYm9vbGVhbiB7XG4gIHJldHVybiB2YWx1ZSAhPT0gbnVsbCAmJiB2YWx1ZSAhPT0gdW5kZWZpbmVkO1xufVxuIl19
|
|
@@ -9,8 +9,24 @@ export interface UploadSourceMapsRequest {
|
|
|
9
9
|
user?: string | undefined;
|
|
10
10
|
files: FileMetadata[];
|
|
11
11
|
}
|
|
12
|
+
export interface UpdateSourceMapRequest {
|
|
13
|
+
application: string;
|
|
14
|
+
releaseId: string;
|
|
15
|
+
commitHash?: string | undefined;
|
|
16
|
+
repoName?: string | undefined;
|
|
17
|
+
user?: string | undefined;
|
|
18
|
+
files: FileMetadata[];
|
|
19
|
+
}
|
|
20
|
+
export interface DeleteSourceMapRequest {
|
|
21
|
+
application: string;
|
|
22
|
+
releaseId: string;
|
|
23
|
+
}
|
|
12
24
|
export interface UploadSourceMapsResponse {
|
|
13
25
|
}
|
|
26
|
+
export interface UpdateSourceMapResponse {
|
|
27
|
+
}
|
|
28
|
+
export interface DeleteSourceMapResponse {
|
|
29
|
+
}
|
|
14
30
|
export declare const UploadSourceMapsRequest: {
|
|
15
31
|
encode(message: UploadSourceMapsRequest, writer?: _m0.Writer): _m0.Writer;
|
|
16
32
|
decode(input: _m0.Reader | Uint8Array, length?: number): UploadSourceMapsRequest;
|
|
@@ -19,6 +35,22 @@ export declare const UploadSourceMapsRequest: {
|
|
|
19
35
|
create(base?: DeepPartial<UploadSourceMapsRequest>): UploadSourceMapsRequest;
|
|
20
36
|
fromPartial(object: DeepPartial<UploadSourceMapsRequest>): UploadSourceMapsRequest;
|
|
21
37
|
};
|
|
38
|
+
export declare const UpdateSourceMapRequest: {
|
|
39
|
+
encode(message: UpdateSourceMapRequest, writer?: _m0.Writer): _m0.Writer;
|
|
40
|
+
decode(input: _m0.Reader | Uint8Array, length?: number): UpdateSourceMapRequest;
|
|
41
|
+
fromJSON(object: any): UpdateSourceMapRequest;
|
|
42
|
+
toJSON(message: UpdateSourceMapRequest): unknown;
|
|
43
|
+
create(base?: DeepPartial<UpdateSourceMapRequest>): UpdateSourceMapRequest;
|
|
44
|
+
fromPartial(object: DeepPartial<UpdateSourceMapRequest>): UpdateSourceMapRequest;
|
|
45
|
+
};
|
|
46
|
+
export declare const DeleteSourceMapRequest: {
|
|
47
|
+
encode(message: DeleteSourceMapRequest, writer?: _m0.Writer): _m0.Writer;
|
|
48
|
+
decode(input: _m0.Reader | Uint8Array, length?: number): DeleteSourceMapRequest;
|
|
49
|
+
fromJSON(object: any): DeleteSourceMapRequest;
|
|
50
|
+
toJSON(message: DeleteSourceMapRequest): unknown;
|
|
51
|
+
create(base?: DeepPartial<DeleteSourceMapRequest>): DeleteSourceMapRequest;
|
|
52
|
+
fromPartial(object: DeepPartial<DeleteSourceMapRequest>): DeleteSourceMapRequest;
|
|
53
|
+
};
|
|
22
54
|
export declare const UploadSourceMapsResponse: {
|
|
23
55
|
encode(_: UploadSourceMapsResponse, writer?: _m0.Writer): _m0.Writer;
|
|
24
56
|
decode(input: _m0.Reader | Uint8Array, length?: number): UploadSourceMapsResponse;
|
|
@@ -27,6 +59,22 @@ export declare const UploadSourceMapsResponse: {
|
|
|
27
59
|
create(base?: DeepPartial<UploadSourceMapsResponse>): UploadSourceMapsResponse;
|
|
28
60
|
fromPartial(_: DeepPartial<UploadSourceMapsResponse>): UploadSourceMapsResponse;
|
|
29
61
|
};
|
|
62
|
+
export declare const UpdateSourceMapResponse: {
|
|
63
|
+
encode(_: UpdateSourceMapResponse, writer?: _m0.Writer): _m0.Writer;
|
|
64
|
+
decode(input: _m0.Reader | Uint8Array, length?: number): UpdateSourceMapResponse;
|
|
65
|
+
fromJSON(_: any): UpdateSourceMapResponse;
|
|
66
|
+
toJSON(_: UpdateSourceMapResponse): unknown;
|
|
67
|
+
create(base?: DeepPartial<UpdateSourceMapResponse>): UpdateSourceMapResponse;
|
|
68
|
+
fromPartial(_: DeepPartial<UpdateSourceMapResponse>): UpdateSourceMapResponse;
|
|
69
|
+
};
|
|
70
|
+
export declare const DeleteSourceMapResponse: {
|
|
71
|
+
encode(_: DeleteSourceMapResponse, writer?: _m0.Writer): _m0.Writer;
|
|
72
|
+
decode(input: _m0.Reader | Uint8Array, length?: number): DeleteSourceMapResponse;
|
|
73
|
+
fromJSON(_: any): DeleteSourceMapResponse;
|
|
74
|
+
toJSON(_: DeleteSourceMapResponse): unknown;
|
|
75
|
+
create(base?: DeepPartial<DeleteSourceMapResponse>): DeleteSourceMapResponse;
|
|
76
|
+
fromPartial(_: DeepPartial<DeleteSourceMapResponse>): DeleteSourceMapResponse;
|
|
77
|
+
};
|
|
30
78
|
export type RumSourceMapServiceDefinition = typeof RumSourceMapServiceDefinition;
|
|
31
79
|
export declare const RumSourceMapServiceDefinition: {
|
|
32
80
|
readonly name: "RumSourceMapService";
|
|
@@ -54,6 +102,50 @@ export declare const RumSourceMapServiceDefinition: {
|
|
|
54
102
|
readonly responseStream: false;
|
|
55
103
|
readonly options: {};
|
|
56
104
|
};
|
|
105
|
+
readonly updateSourceMap: {
|
|
106
|
+
readonly name: "UpdateSourceMap";
|
|
107
|
+
readonly requestType: {
|
|
108
|
+
encode(message: UpdateSourceMapRequest, writer?: _m0.Writer): _m0.Writer;
|
|
109
|
+
decode(input: _m0.Reader | Uint8Array, length?: number): UpdateSourceMapRequest;
|
|
110
|
+
fromJSON(object: any): UpdateSourceMapRequest;
|
|
111
|
+
toJSON(message: UpdateSourceMapRequest): unknown;
|
|
112
|
+
create(base?: DeepPartial<UpdateSourceMapRequest>): UpdateSourceMapRequest;
|
|
113
|
+
fromPartial(object: DeepPartial<UpdateSourceMapRequest>): UpdateSourceMapRequest;
|
|
114
|
+
};
|
|
115
|
+
readonly requestStream: false;
|
|
116
|
+
readonly responseType: {
|
|
117
|
+
encode(_: UpdateSourceMapResponse, writer?: _m0.Writer): _m0.Writer;
|
|
118
|
+
decode(input: _m0.Reader | Uint8Array, length?: number): UpdateSourceMapResponse;
|
|
119
|
+
fromJSON(_: any): UpdateSourceMapResponse;
|
|
120
|
+
toJSON(_: UpdateSourceMapResponse): unknown;
|
|
121
|
+
create(base?: DeepPartial<UpdateSourceMapResponse>): UpdateSourceMapResponse;
|
|
122
|
+
fromPartial(_: DeepPartial<UpdateSourceMapResponse>): UpdateSourceMapResponse;
|
|
123
|
+
};
|
|
124
|
+
readonly responseStream: false;
|
|
125
|
+
readonly options: {};
|
|
126
|
+
};
|
|
127
|
+
readonly deleteSourceMap: {
|
|
128
|
+
readonly name: "DeleteSourceMap";
|
|
129
|
+
readonly requestType: {
|
|
130
|
+
encode(message: DeleteSourceMapRequest, writer?: _m0.Writer): _m0.Writer;
|
|
131
|
+
decode(input: _m0.Reader | Uint8Array, length?: number): DeleteSourceMapRequest;
|
|
132
|
+
fromJSON(object: any): DeleteSourceMapRequest;
|
|
133
|
+
toJSON(message: DeleteSourceMapRequest): unknown;
|
|
134
|
+
create(base?: DeepPartial<DeleteSourceMapRequest>): DeleteSourceMapRequest;
|
|
135
|
+
fromPartial(object: DeepPartial<DeleteSourceMapRequest>): DeleteSourceMapRequest;
|
|
136
|
+
};
|
|
137
|
+
readonly requestStream: false;
|
|
138
|
+
readonly responseType: {
|
|
139
|
+
encode(_: DeleteSourceMapResponse, writer?: _m0.Writer): _m0.Writer;
|
|
140
|
+
decode(input: _m0.Reader | Uint8Array, length?: number): DeleteSourceMapResponse;
|
|
141
|
+
fromJSON(_: any): DeleteSourceMapResponse;
|
|
142
|
+
toJSON(_: DeleteSourceMapResponse): unknown;
|
|
143
|
+
create(base?: DeepPartial<DeleteSourceMapResponse>): DeleteSourceMapResponse;
|
|
144
|
+
fromPartial(_: DeepPartial<DeleteSourceMapResponse>): DeleteSourceMapResponse;
|
|
145
|
+
};
|
|
146
|
+
readonly responseStream: false;
|
|
147
|
+
readonly options: {};
|
|
148
|
+
};
|
|
57
149
|
};
|
|
58
150
|
};
|
|
59
151
|
type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
|