@coralogix/rum-cli 1.1.17 → 1.1.19
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/audit_log.d.ts +1 -1
- package/dist/proto-models/com/coralogix/rum/v2/audit_log.js +5 -3
- package/dist/proto-models/com/coralogix/rum/v2/chunk.d.ts +1 -1
- package/dist/proto-models/com/coralogix/rum/v2/chunk.js +54 -49
- package/dist/proto-models/com/coralogix/rum/v2/file.d.ts +1 -1
- package/dist/proto-models/com/coralogix/rum/v2/file.js +24 -34
- package/dist/proto-models/com/coralogix/rum/v2/rum_service.d.ts +89 -2
- package/dist/proto-models/com/coralogix/rum/v2/rum_service.js +304 -78
- 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 +174 -0
- package/dist/proto-models/com/coralogix/rum/v2/rum_source_map_service.d.ts +93 -1
- package/dist/proto-models/com/coralogix/rum/v2/rum_source_map_service.js +306 -17
- package/dist/proto-models/com/coralogix/rum/v2/source_code_file_mapping.d.ts +1 -1
- package/dist/proto-models/com/coralogix/rum/v2/source_code_file_mapping.js +47 -24
- package/dist/proto-models/com/coralogix/rum/v2/source_map_release.d.ts +14 -1
- package/dist/proto-models/com/coralogix/rum/v2/source_map_release.js +113 -33
- package/dist/proto-models/com/coralogix/rum/v2/template.d.ts +1 -1
- package/dist/proto-models/com/coralogix/rum/v2/template.js +66 -53
- package/dist/proto-models/google/protobuf/descriptor.d.ts +1 -1
- package/dist/proto-models/google/protobuf/descriptor.js +537 -427
- 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/audit_log.ts +6 -4
- package/proto-models/com/coralogix/rum/v2/chunk.ts +55 -56
- package/proto-models/com/coralogix/rum/v2/file.ts +25 -39
- package/proto-models/com/coralogix/rum/v2/rum_service.ts +345 -89
- package/proto-models/com/coralogix/rum/v2/rum_session_recording_service.ts +202 -0
- package/proto-models/com/coralogix/rum/v2/rum_source_map_service.ts +355 -18
- package/proto-models/com/coralogix/rum/v2/source_code_file_mapping.ts +48 -27
- package/proto-models/com/coralogix/rum/v2/source_map_release.ts +126 -36
- package/proto-models/com/coralogix/rum/v2/template.ts +67 -60
- package/proto-models/google/protobuf/descriptor.ts +551 -464
- 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 globalThis.Array<infer U> ? globalThis.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,174 @@
|
|
|
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) ? globalThis.String(object.sessionId) : "",
|
|
53
|
+
application: isSet(object.application) ? globalThis.String(object.application) : "",
|
|
54
|
+
};
|
|
55
|
+
},
|
|
56
|
+
toJSON(message) {
|
|
57
|
+
const obj = {};
|
|
58
|
+
if (message.sessionId !== "") {
|
|
59
|
+
obj.sessionId = message.sessionId;
|
|
60
|
+
}
|
|
61
|
+
if (message.application !== "") {
|
|
62
|
+
obj.application = message.application;
|
|
63
|
+
}
|
|
64
|
+
return obj;
|
|
65
|
+
},
|
|
66
|
+
create(base) {
|
|
67
|
+
return exports.GetSessionRecordingRequest.fromPartial(base !== null && base !== void 0 ? base : {});
|
|
68
|
+
},
|
|
69
|
+
fromPartial(object) {
|
|
70
|
+
var _a, _b;
|
|
71
|
+
const message = createBaseGetSessionRecordingRequest();
|
|
72
|
+
message.sessionId = (_a = object.sessionId) !== null && _a !== void 0 ? _a : "";
|
|
73
|
+
message.application = (_b = object.application) !== null && _b !== void 0 ? _b : "";
|
|
74
|
+
return message;
|
|
75
|
+
},
|
|
76
|
+
};
|
|
77
|
+
function createBaseGetSessionRecordingResponse() {
|
|
78
|
+
return { sessionRecordings: new Uint8Array(0) };
|
|
79
|
+
}
|
|
80
|
+
exports.GetSessionRecordingResponse = {
|
|
81
|
+
encode(message, writer = minimal_1.default.Writer.create()) {
|
|
82
|
+
if (message.sessionRecordings.length !== 0) {
|
|
83
|
+
writer.uint32(10).bytes(message.sessionRecordings);
|
|
84
|
+
}
|
|
85
|
+
return writer;
|
|
86
|
+
},
|
|
87
|
+
decode(input, length) {
|
|
88
|
+
const reader = input instanceof minimal_1.default.Reader ? input : minimal_1.default.Reader.create(input);
|
|
89
|
+
let end = length === undefined ? reader.len : reader.pos + length;
|
|
90
|
+
const message = createBaseGetSessionRecordingResponse();
|
|
91
|
+
while (reader.pos < end) {
|
|
92
|
+
const tag = reader.uint32();
|
|
93
|
+
switch (tag >>> 3) {
|
|
94
|
+
case 1:
|
|
95
|
+
if (tag !== 10) {
|
|
96
|
+
break;
|
|
97
|
+
}
|
|
98
|
+
message.sessionRecordings = reader.bytes();
|
|
99
|
+
continue;
|
|
100
|
+
}
|
|
101
|
+
if ((tag & 7) === 4 || tag === 0) {
|
|
102
|
+
break;
|
|
103
|
+
}
|
|
104
|
+
reader.skipType(tag & 7);
|
|
105
|
+
}
|
|
106
|
+
return message;
|
|
107
|
+
},
|
|
108
|
+
fromJSON(object) {
|
|
109
|
+
return {
|
|
110
|
+
sessionRecordings: isSet(object.sessionRecordings)
|
|
111
|
+
? bytesFromBase64(object.sessionRecordings)
|
|
112
|
+
: new Uint8Array(0),
|
|
113
|
+
};
|
|
114
|
+
},
|
|
115
|
+
toJSON(message) {
|
|
116
|
+
const obj = {};
|
|
117
|
+
if (message.sessionRecordings.length !== 0) {
|
|
118
|
+
obj.sessionRecordings = base64FromBytes(message.sessionRecordings);
|
|
119
|
+
}
|
|
120
|
+
return obj;
|
|
121
|
+
},
|
|
122
|
+
create(base) {
|
|
123
|
+
return exports.GetSessionRecordingResponse.fromPartial(base !== null && base !== void 0 ? base : {});
|
|
124
|
+
},
|
|
125
|
+
fromPartial(object) {
|
|
126
|
+
var _a;
|
|
127
|
+
const message = createBaseGetSessionRecordingResponse();
|
|
128
|
+
message.sessionRecordings = (_a = object.sessionRecordings) !== null && _a !== void 0 ? _a : new Uint8Array(0);
|
|
129
|
+
return message;
|
|
130
|
+
},
|
|
131
|
+
};
|
|
132
|
+
exports.RumSessionRecordingServiceDefinition = {
|
|
133
|
+
name: "RumSessionRecordingService",
|
|
134
|
+
fullName: "com.coralogix.rum.v2.RumSessionRecordingService",
|
|
135
|
+
methods: {
|
|
136
|
+
getSessionRecording: {
|
|
137
|
+
name: "GetSessionRecording",
|
|
138
|
+
requestType: exports.GetSessionRecordingRequest,
|
|
139
|
+
requestStream: false,
|
|
140
|
+
responseType: exports.GetSessionRecordingResponse,
|
|
141
|
+
responseStream: false,
|
|
142
|
+
options: {},
|
|
143
|
+
},
|
|
144
|
+
},
|
|
145
|
+
};
|
|
146
|
+
function bytesFromBase64(b64) {
|
|
147
|
+
if (globalThis.Buffer) {
|
|
148
|
+
return Uint8Array.from(globalThis.Buffer.from(b64, "base64"));
|
|
149
|
+
}
|
|
150
|
+
else {
|
|
151
|
+
const bin = globalThis.atob(b64);
|
|
152
|
+
const arr = new Uint8Array(bin.length);
|
|
153
|
+
for (let i = 0; i < bin.length; ++i) {
|
|
154
|
+
arr[i] = bin.charCodeAt(i);
|
|
155
|
+
}
|
|
156
|
+
return arr;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
function base64FromBytes(arr) {
|
|
160
|
+
if (globalThis.Buffer) {
|
|
161
|
+
return globalThis.Buffer.from(arr).toString("base64");
|
|
162
|
+
}
|
|
163
|
+
else {
|
|
164
|
+
const bin = [];
|
|
165
|
+
arr.forEach((byte) => {
|
|
166
|
+
bin.push(globalThis.String.fromCharCode(byte));
|
|
167
|
+
});
|
|
168
|
+
return globalThis.btoa(bin.join(""));
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
function isSet(value) {
|
|
172
|
+
return value !== null && value !== undefined;
|
|
173
|
+
}
|
|
174
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVtX3Nlc3Npb25fcmVjb3JkaW5nX3NlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm90by1tb2RlbHMvY29tL2NvcmFsb2dpeC9ydW0vdjIvcnVtX3Nlc3Npb25fcmVjb3JkaW5nX3NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsb0JBQW9CO0FBQ3BCLGlFQUFxQztBQUV4QixRQUFBLGVBQWUsR0FBRyxzQkFBc0IsQ0FBQztBQVd0RCxTQUFTLG9DQUFvQztJQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxXQUFXLEVBQUUsRUFBRSxFQUFFLENBQUM7QUFDNUMsQ0FBQztBQUVZLFFBQUEsMEJBQTBCLEdBQUc7SUFDeEMsTUFBTSxDQUFDLE9BQW1DLEVBQUUsU0FBcUIsaUJBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1FBQ2xGLElBQUksT0FBTyxDQUFDLFNBQVMsS0FBSyxFQUFFLEVBQUU7WUFDNUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQzdDO1FBQ0QsSUFBSSxPQUFPLENBQUMsV0FBVyxLQUFLLEVBQUUsRUFBRTtZQUM5QixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDL0M7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQThCLEVBQUUsTUFBZTtRQUNwRCxNQUFNLE1BQU0sR0FBRyxLQUFLLFlBQVksaUJBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsaUJBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlFLElBQUksR0FBRyxHQUFHLE1BQU0sS0FBSyxT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QUFLLEtBQUssSUFBSSxJQUFJLEtBQUssS0FBSyxTQUFTLENBQUM7QUFDL0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlICovXG5pbXBvcnQgX20wIGZyb20gXCJwcm90b2J1ZmpzL21pbmltYWxcIjtcblxuZXhwb3J0IGNvbnN0IHByb3RvYnVmUGFja2FnZSA9IFwiY29tLmNvcmFsb2dpeC5ydW0udjJcIjtcblxuZXhwb3J0IGludGVyZmFjZSBHZXRTZXNzaW9uUmVjb3JkaW5nUmVxdWVzdCB7XG4gIHNlc3Npb25JZDogc3RyaW5nO1xuICBhcHBsaWNhdGlvbjogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdldFNlc3Npb25SZWNvcmRpbmdSZXNwb25zZSB7XG4gIHNlc3Npb25SZWNvcmRpbmdzOiBVaW50OEFycmF5O1xufVxuXG5mdW5jdGlvbiBjcmVhdGVCYXNlR2V0U2Vzc2lvblJlY29yZGluZ1JlcXVlc3QoKTogR2V0U2Vzc2lvblJlY29yZGluZ1JlcXVlc3Qge1xuICByZXR1cm4geyBzZXNzaW9uSWQ6IFwiXCIsIGFwcGxpY2F0aW9uOiBcIlwiIH07XG59XG5cbmV4cG9ydCBjb25zdCBHZXRTZXNzaW9uUmVjb3JkaW5nUmVxdWVzdCA9IHtcbiAgZW5jb2RlKG1lc3NhZ2U6IEdldFNlc3Npb25SZWNvcmRpbmdSZXF1ZXN0LCB3cml0ZXI6IF9tMC5Xcml0ZXIgPSBfbTAuV3JpdGVyLmNyZWF0ZSgpKTogX20wLldyaXRlciB7XG4gICAgaWYgKG1lc3NhZ2Uuc2Vzc2lvbklkICE9PSBcIlwiKSB7XG4gICAgICB3cml0ZXIudWludDMyKDEwKS5zdHJpbmcobWVzc2FnZS5zZXNzaW9uSWQpO1xuICAgIH1cbiAgICBpZiAobWVzc2FnZS5hcHBsaWNhdGlvbiAhPT0gXCJcIikge1xuICAgICAgd3JpdGVyLnVpbnQzMigxOCkuc3RyaW5nKG1lc3NhZ2UuYXBwbGljYXRpb24pO1xuICAgIH1cbiAgICByZXR1cm4gd3JpdGVyO1xuICB9LFxuXG4gIGRlY29kZShpbnB1dDogX20wLlJlYWRlciB8IFVpbnQ4QXJyYXksIGxlbmd0aD86IG51bWJlcik6IEdldFNlc3Npb25SZWNvcmRpbmdSZXF1ZXN0IHtcbiAgICBjb25zdCByZWFkZXIgPSBpbnB1dCBpbnN0YW5jZW9mIF9tMC5SZWFkZXIgPyBpbnB1dCA6IF9tMC5SZWFkZXIuY3JlYXRlKGlucHV0KTtcbiAgICBsZXQgZW5kID0gbGVuZ3RoID09PSB1bmRlZmluZWQgPyByZWFkZXIubGVuIDogcmVhZGVyLnBvcyArIGxlbmd0aDtcbiAgICBjb25zdCBtZXNzYWdlID0gY3JlYXRlQmFzZUdldFNlc3Npb25SZWNvcmRpbmdSZXF1ZXN0KCk7XG4gICAgd2hpbGUgKHJlYWRlci5wb3MgPCBlbmQpIHtcbiAgICAgIGNvbnN0IHRhZyA9IHJlYWRlci51aW50MzIoKTtcbiAgICAgIHN3aXRjaCAodGFnID4+PiAzKSB7XG4gICAgICAgIGNhc2UgMTpcbiAgICAgICAgICBpZiAodGFnICE9PSAxMCkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbWVzc2FnZS5zZXNzaW9uSWQgPSByZWFkZXIuc3RyaW5nKCk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIGNhc2UgMjpcbiAgICAgICAgICBpZiAodGFnICE9PSAxOCkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbWVzc2FnZS5hcHBsaWNhdGlvbiA9IHJlYWRlci5zdHJpbmcoKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGlmICgodGFnICYgNykgPT09IDQgfHwgdGFnID09PSAwKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgcmVhZGVyLnNraXBUeXBlKHRhZyAmIDcpO1xuICAgIH1cbiAgICByZXR1cm4gbWVzc2FnZTtcbiAgfSxcblxuICBmcm9tSlNPTihvYmplY3Q6IGFueSk6IEdldFNlc3Npb25SZWNvcmRpbmdSZXF1ZXN0IHtcbiAgICByZXR1cm4ge1xuICAgICAgc2Vzc2lvbklkOiBpc1NldChvYmplY3Quc2Vzc2lvbklkKSA/IGdsb2JhbFRoaXMuU3RyaW5nKG9iamVjdC5zZXNzaW9uSWQpIDogXCJcIixcbiAgICAgIGFwcGxpY2F0aW9uOiBpc1NldChvYmplY3QuYXBwbGljYXRpb24pID8gZ2xvYmFsVGhpcy5TdHJpbmcob2JqZWN0LmFwcGxpY2F0aW9uKSA6IFwiXCIsXG4gICAgfTtcbiAgfSxcblxuICB0b0pTT04obWVzc2FnZTogR2V0U2Vzc2lvblJlY29yZGluZ1JlcXVlc3QpOiB1bmtub3duIHtcbiAgICBjb25zdCBvYmo6IGFueSA9IHt9O1xuICAgIGlmIChtZXNzYWdlLnNlc3Npb25JZCAhPT0gXCJcIikge1xuICAgICAgb2JqLnNlc3Npb25JZCA9IG1lc3NhZ2Uuc2Vzc2lvbklkO1xuICAgIH1cbiAgICBpZiAobWVzc2FnZS5hcHBsaWNhdGlvbiAhPT0gXCJcIikge1xuICAgICAgb2JqLmFwcGxpY2F0aW9uID0gbWVzc2FnZS5hcHBsaWNhdGlvbjtcbiAgICB9XG4gICAgcmV0dXJuIG9iajtcbiAgfSxcblxuICBjcmVhdGUoYmFzZT86IERlZXBQYXJ0aWFsPEdldFNlc3Npb25SZWNvcmRpbmdSZXF1ZXN0Pik6IEdldFNlc3Npb25SZWNvcmRpbmdSZXF1ZXN0IHtcbiAgICByZXR1cm4gR2V0U2Vzc2lvblJlY29yZGluZ1JlcXVlc3QuZnJvbVBhcnRpYWwoYmFzZSA/PyB7fSk7XG4gIH0sXG4gIGZyb21QYXJ0aWFsKG9iamVjdDogRGVlcFBhcnRpYWw8R2V0U2Vzc2lvblJlY29yZGluZ1JlcXVlc3Q+KTogR2V0U2Vzc2lvblJlY29yZGluZ1JlcXVlc3Qge1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBjcmVhdGVCYXNlR2V0U2Vzc2lvblJlY29yZGluZ1JlcXVlc3QoKTtcbiAgICBtZXNzYWdlLnNlc3Npb25JZCA9IG9iamVjdC5zZXNzaW9uSWQgPz8gXCJcIjtcbiAgICBtZXNzYWdlLmFwcGxpY2F0aW9uID0gb2JqZWN0LmFwcGxpY2F0aW9uID8/IFwiXCI7XG4gICAgcmV0dXJuIG1lc3NhZ2U7XG4gIH0sXG59O1xuXG5mdW5jdGlvbiBjcmVhdGVCYXNlR2V0U2Vzc2lvblJlY29yZGluZ1Jlc3BvbnNlKCk6IEdldFNlc3Npb25SZWNvcmRpbmdSZXNwb25zZSB7XG4gIHJldHVybiB7IHNlc3Npb25SZWNvcmRpbmdzOiBuZXcgVWludDhBcnJheSgwKSB9O1xufVxuXG5leHBvcnQgY29uc3QgR2V0U2Vzc2lvblJlY29yZGluZ1Jlc3BvbnNlID0ge1xuICBlbmNvZGUobWVzc2FnZTogR2V0U2Vzc2lvblJlY29yZGluZ1Jlc3BvbnNlLCB3cml0ZXI6IF9tMC5Xcml0ZXIgPSBfbTAuV3JpdGVyLmNyZWF0ZSgpKTogX20wLldyaXRlciB7XG4gICAgaWYgKG1lc3NhZ2Uuc2Vzc2lvblJlY29yZGluZ3MubGVuZ3RoICE9PSAwKSB7XG4gICAgICB3cml0ZXIudWludDMyKDEwKS5ieXRlcyhtZXNzYWdlLnNlc3Npb25SZWNvcmRpbmdzKTtcbiAgICB9XG4gICAgcmV0dXJuIHdyaXRlcjtcbiAgfSxcblxuICBkZWNvZGUoaW5wdXQ6IF9tMC5SZWFkZXIgfCBVaW50OEFycmF5LCBsZW5ndGg/OiBudW1iZXIpOiBHZXRTZXNzaW9uUmVjb3JkaW5nUmVzcG9uc2Uge1xuICAgIGNvbnN0IHJlYWRlciA9IGlucHV0IGluc3RhbmNlb2YgX20wLlJlYWRlciA/IGlucHV0IDogX20wLlJlYWRlci5jcmVhdGUoaW5wdXQpO1xuICAgIGxldCBlbmQgPSBsZW5ndGggPT09IHVuZGVmaW5lZCA/IHJlYWRlci5sZW4gOiByZWFkZXIucG9zICsgbGVuZ3RoO1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBjcmVhdGVCYXNlR2V0U2Vzc2lvblJlY29yZGluZ1Jlc3BvbnNlKCk7XG4gICAgd2hpbGUgKHJlYWRlci5wb3MgPCBlbmQpIHtcbiAgICAgIGNvbnN0IHRhZyA9IHJlYWRlci51aW50MzIoKTtcbiAgICAgIHN3aXRjaCAodGFnID4+PiAzKSB7XG4gICAgICAgIGNhc2UgMTpcbiAgICAgICAgICBpZiAodGFnICE9PSAxMCkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbWVzc2FnZS5zZXNzaW9uUmVjb3JkaW5ncyA9IHJlYWRlci5ieXRlcygpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgaWYgKCh0YWcgJiA3KSA9PT0gNCB8fCB0YWcgPT09IDApIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICByZWFkZXIuc2tpcFR5cGUodGFnICYgNyk7XG4gICAgfVxuICAgIHJldHVybiBtZXNzYWdlO1xuICB9LFxuXG4gIGZyb21KU09OKG9iamVjdDogYW55KTogR2V0U2Vzc2lvblJlY29yZGluZ1Jlc3BvbnNlIHtcbiAgICByZXR1cm4ge1xuICAgICAgc2Vzc2lvblJlY29yZGluZ3M6IGlzU2V0KG9iamVjdC5zZXNzaW9uUmVjb3JkaW5ncylcbiAgICAgICAgPyBieXRlc0Zyb21CYXNlNjQob2JqZWN0LnNlc3Npb25SZWNvcmRpbmdzKVxuICAgICAgICA6IG5ldyBVaW50OEFycmF5KDApLFxuICAgIH07XG4gIH0sXG5cbiAgdG9KU09OKG1lc3NhZ2U6IEdldFNlc3Npb25SZWNvcmRpbmdSZXNwb25zZSk6IHVua25vd24ge1xuICAgIGNvbnN0IG9iajogYW55ID0ge307XG4gICAgaWYgKG1lc3NhZ2Uuc2Vzc2lvblJlY29yZGluZ3MubGVuZ3RoICE9PSAwKSB7XG4gICAgICBvYmouc2Vzc2lvblJlY29yZGluZ3MgPSBiYXNlNjRGcm9tQnl0ZXMobWVzc2FnZS5zZXNzaW9uUmVjb3JkaW5ncyk7XG4gICAgfVxuICAgIHJldHVybiBvYmo7XG4gIH0sXG5cbiAgY3JlYXRlKGJhc2U/OiBEZWVwUGFydGlhbDxHZXRTZXNzaW9uUmVjb3JkaW5nUmVzcG9uc2U+KTogR2V0U2Vzc2lvblJlY29yZGluZ1Jlc3BvbnNlIHtcbiAgICByZXR1cm4gR2V0U2Vzc2lvblJlY29yZGluZ1Jlc3BvbnNlLmZyb21QYXJ0aWFsKGJhc2UgPz8ge30pO1xuICB9LFxuICBmcm9tUGFydGlhbChvYmplY3Q6IERlZXBQYXJ0aWFsPEdldFNlc3Npb25SZWNvcmRpbmdSZXNwb25zZT4pOiBHZXRTZXNzaW9uUmVjb3JkaW5nUmVzcG9uc2Uge1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBjcmVhdGVCYXNlR2V0U2Vzc2lvblJlY29yZGluZ1Jlc3BvbnNlKCk7XG4gICAgbWVzc2FnZS5zZXNzaW9uUmVjb3JkaW5ncyA9IG9iamVjdC5zZXNzaW9uUmVjb3JkaW5ncyA/PyBuZXcgVWludDhBcnJheSgwKTtcbiAgICByZXR1cm4gbWVzc2FnZTtcbiAgfSxcbn07XG5cbmV4cG9ydCB0eXBlIFJ1bVNlc3Npb25SZWNvcmRpbmdTZXJ2aWNlRGVmaW5pdGlvbiA9IHR5cGVvZiBSdW1TZXNzaW9uUmVjb3JkaW5nU2VydmljZURlZmluaXRpb247XG5leHBvcnQgY29uc3QgUnVtU2Vzc2lvblJlY29yZGluZ1NlcnZpY2VEZWZpbml0aW9uID0ge1xuICBuYW1lOiBcIlJ1bVNlc3Npb25SZWNvcmRpbmdTZXJ2aWNlXCIsXG4gIGZ1bGxOYW1lOiBcImNvbS5jb3JhbG9naXgucnVtLnYyLlJ1bVNlc3Npb25SZWNvcmRpbmdTZXJ2aWNlXCIsXG4gIG1ldGhvZHM6IHtcbiAgICBnZXRTZXNzaW9uUmVjb3JkaW5nOiB7XG4gICAgICBuYW1lOiBcIkdldFNlc3Npb25SZWNvcmRpbmdcIixcbiAgICAgIHJlcXVlc3RUeXBlOiBHZXRTZXNzaW9uUmVjb3JkaW5nUmVxdWVzdCxcbiAgICAgIHJlcXVlc3RTdHJlYW06IGZhbHNlLFxuICAgICAgcmVzcG9uc2VUeXBlOiBHZXRTZXNzaW9uUmVjb3JkaW5nUmVzcG9uc2UsXG4gICAgICByZXNwb25zZVN0cmVhbTogZmFsc2UsXG4gICAgICBvcHRpb25zOiB7fSxcbiAgICB9LFxuICB9LFxufSBhcyBjb25zdDtcblxuZnVuY3Rpb24gYnl0ZXNGcm9tQmFzZTY0KGI2NDogc3RyaW5nKTogVWludDhBcnJheSB7XG4gIGlmIChnbG9iYWxUaGlzLkJ1ZmZlcikge1xuICAgIHJldHVybiBVaW50OEFycmF5LmZyb20oZ2xvYmFsVGhpcy5CdWZmZXIuZnJvbShiNjQsIFwiYmFzZTY0XCIpKTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBiaW4gPSBnbG9iYWxUaGlzLmF0b2IoYjY0KTtcbiAgICBjb25zdCBhcnIgPSBuZXcgVWludDhBcnJheShiaW4ubGVuZ3RoKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGJpbi5sZW5ndGg7ICsraSkge1xuICAgICAgYXJyW2ldID0gYmluLmNoYXJDb2RlQXQoaSk7XG4gICAgfVxuICAgIHJldHVybiBhcnI7XG4gIH1cbn1cblxuZnVuY3Rpb24gYmFzZTY0RnJvbUJ5dGVzKGFycjogVWludDhBcnJheSk6IHN0cmluZyB7XG4gIGlmIChnbG9iYWxUaGlzLkJ1ZmZlcikge1xuICAgIHJldHVybiBnbG9iYWxUaGlzLkJ1ZmZlci5mcm9tKGFycikudG9TdHJpbmcoXCJiYXNlNjRcIik7XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgYmluOiBzdHJpbmdbXSA9IFtdO1xuICAgIGFyci5mb3JFYWNoKChieXRlKSA9PiB7XG4gICAgICBiaW4ucHVzaChnbG9iYWxUaGlzLlN0cmluZy5mcm9tQ2hhckNvZGUoYnl0ZSkpO1xuICAgIH0pO1xuICAgIHJldHVybiBnbG9iYWxUaGlzLmJ0b2EoYmluLmpvaW4oXCJcIikpO1xuICB9XG59XG5cbnR5cGUgQnVpbHRpbiA9IERhdGUgfCBGdW5jdGlvbiB8IFVpbnQ4QXJyYXkgfCBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgdW5kZWZpbmVkO1xuXG5leHBvcnQgdHlwZSBEZWVwUGFydGlhbDxUPiA9IFQgZXh0ZW5kcyBCdWlsdGluID8gVFxuICA6IFQgZXh0ZW5kcyBnbG9iYWxUaGlzLkFycmF5PGluZmVyIFU+ID8gZ2xvYmFsVGhpcy5BcnJheTxEZWVwUGFydGlhbDxVPj5cbiAgOiBUIGV4dGVuZHMgUmVhZG9ubHlBcnJheTxpbmZlciBVPiA/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,10 +102,54 @@ 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;
|
|
60
|
-
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 {
|
|
152
|
+
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 {
|
|
61
153
|
$case: string;
|
|
62
154
|
} ? {
|
|
63
155
|
[K in keyof Omit<T, "$case">]?: DeepPartial<T[K]>;
|