@coralogix/rum-cli 1.1.24 → 1.1.26
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 +0 -12
- package/api/client/request-builder.ts +18 -27
- package/api/react-native.api.ts +12 -9
- package/api/source-maps.api.ts +47 -84
- package/cli/commands/source-maps/index.ts +1 -3
- package/cli/rum-cli.ts +0 -4
- package/consts/consts.ts +1 -0
- package/dist/api/client/client-factory.d.ts +0 -20
- package/dist/api/client/request-builder.d.ts +4 -10
- package/dist/api/client/request-builder.js +11 -11
- package/dist/api/react-native.api.d.ts +1 -1
- package/dist/api/react-native.api.js +7 -6
- package/dist/api/source-maps.api.d.ts +2 -5
- package/dist/api/source-maps.api.js +19 -65
- package/dist/cli/commands/source-maps/index.d.ts +0 -2
- package/dist/cli/commands/source-maps/index.js +2 -4
- package/dist/cli/rum-cli.js +1 -5
- package/dist/consts/consts.js +3 -2
- package/dist/proto-models/com/coralogix/blobset/v2/audit_log.js +6 -1
- package/dist/proto-models/com/coralogix/blobset/v2/blobset_query_service.d.ts +19 -17
- package/dist/proto-models/com/coralogix/blobset/v2/blobset_query_service.js +11 -6
- package/dist/proto-models/com/coralogix/blobset/v2/blobset_service.js +6 -1
- package/dist/proto-models/com/coralogix/blobset/v2/dsym.js +6 -1
- package/dist/proto-models/com/coralogix/blobset/v2/entity_metadata.d.ts +0 -18
- package/dist/proto-models/com/coralogix/blobset/v2/entity_metadata.js +10 -142
- package/dist/proto-models/com/coralogix/blobset/v2/entity_type.js +7 -2
- package/dist/proto-models/com/coralogix/blobset/v2/s3_metadata.js +6 -1
- package/dist/proto-models/com/coralogix/blobset/v2/source_map.d.ts +62 -0
- package/dist/proto-models/com/coralogix/blobset/v2/source_map.js +367 -0
- package/dist/proto-models/com/coralogix/rum/v2/analytics.js +9 -1
- package/dist/proto-models/com/coralogix/rum/v2/audit_log.js +6 -1
- package/dist/proto-models/com/coralogix/rum/v2/chunk.js +9 -1
- package/dist/proto-models/com/coralogix/rum/v2/file.js +9 -1
- package/dist/proto-models/com/coralogix/rum/v2/hide_errors.js +9 -1
- package/dist/proto-models/com/coralogix/rum/v2/release_entity_metadata.js +6 -1
- package/dist/proto-models/com/coralogix/rum/v2/release_entity_type.js +7 -2
- package/dist/proto-models/com/coralogix/rum/v2/rum_hide_errors_service.js +6 -1
- package/dist/proto-models/com/coralogix/rum/v2/rum_react_native_source_map_service.js +6 -1
- package/dist/proto-models/com/coralogix/rum/v2/rum_saved_filters_service.js +8 -3
- package/dist/proto-models/com/coralogix/rum/v2/rum_sdk_versions.js +9 -1
- package/dist/proto-models/com/coralogix/rum/v2/rum_service.js +13 -5
- package/dist/proto-models/com/coralogix/rum/v2/rum_session_recording_service.js +7 -2
- package/dist/proto-models/com/coralogix/rum/v2/rum_settings.js +6 -1
- package/dist/proto-models/com/coralogix/rum/v2/rum_settings_service.js +6 -1
- package/dist/proto-models/com/coralogix/rum/v2/rum_source_map_service.js +8 -3
- package/dist/proto-models/com/coralogix/rum/v2/saved_filter.js +8 -3
- package/dist/proto-models/com/coralogix/rum/v2/source_code_file_mapping.js +6 -1
- package/dist/proto-models/com/coralogix/rum/v2/source_map_release.js +9 -1
- package/dist/proto-models/com/coralogix/rum/v2/template.js +9 -1
- package/dist/proto-models/google/protobuf/descriptor.d.ts +95 -95
- package/dist/proto-models/google/protobuf/descriptor.js +184 -176
- package/dist/services/react-native.service.js +2 -2
- package/dist/services/source-maps.service.d.ts +0 -2
- package/dist/services/source-maps.service.js +8 -50
- package/dist/utils/file-processor.utils.js +5 -5
- package/package.json +5 -5
- package/proto-models/com/coralogix/blobset/v2/audit_log.ts +6 -0
- package/proto-models/com/coralogix/blobset/v2/blobset_query_service.ts +11 -5
- package/proto-models/com/coralogix/blobset/v2/blobset_service.ts +8 -2
- package/proto-models/com/coralogix/blobset/v2/dsym.ts +6 -0
- package/proto-models/com/coralogix/blobset/v2/entity_metadata.ts +10 -163
- package/proto-models/com/coralogix/blobset/v2/entity_type.ts +6 -0
- package/proto-models/com/coralogix/blobset/v2/s3_metadata.ts +6 -0
- package/proto-models/com/coralogix/blobset/v2/{react_native.ts → source_map.ts} +94 -37
- package/proto-models/com/coralogix/rum/v2/analytics.ts +9 -0
- package/proto-models/com/coralogix/rum/v2/audit_log.ts +6 -0
- package/proto-models/com/coralogix/rum/v2/chunk.ts +9 -0
- package/proto-models/com/coralogix/rum/v2/file.ts +11 -2
- package/proto-models/com/coralogix/rum/v2/hide_errors.ts +9 -0
- package/proto-models/com/coralogix/rum/v2/release_entity_metadata.ts +6 -0
- package/proto-models/com/coralogix/rum/v2/release_entity_type.ts +6 -0
- package/proto-models/com/coralogix/rum/v2/rum_hide_errors_service.ts +6 -0
- package/proto-models/com/coralogix/rum/v2/rum_react_native_source_map_service.ts +6 -0
- package/proto-models/com/coralogix/rum/v2/rum_saved_filters_service.ts +8 -2
- package/proto-models/com/coralogix/rum/v2/rum_sdk_versions.ts +9 -0
- package/proto-models/com/coralogix/rum/v2/rum_service.ts +13 -4
- package/proto-models/com/coralogix/rum/v2/rum_session_recording_service.ts +6 -0
- package/proto-models/com/coralogix/rum/v2/rum_settings.ts +6 -0
- package/proto-models/com/coralogix/rum/v2/rum_settings_service.ts +6 -0
- package/proto-models/com/coralogix/rum/v2/rum_source_map_service.ts +8 -2
- package/proto-models/com/coralogix/rum/v2/saved_filter.ts +8 -2
- package/proto-models/com/coralogix/rum/v2/source_code_file_mapping.ts +6 -0
- package/proto-models/com/coralogix/rum/v2/source_map_release.ts +9 -0
- package/proto-models/com/coralogix/rum/v2/template.ts +9 -0
- package/proto-models/google/protobuf/descriptor.ts +391 -272
- package/protofetch.lock +2 -2
- package/protofetch.toml +1 -1
- package/protos/com/coralogix/blobset/v2/blobset_query_service.proto +3 -3
- package/protos/com/coralogix/blobset/v2/entity_metadata.proto +0 -10
- package/protos/com/coralogix/blobset/v2/{react_native.proto → source_map.proto} +10 -3
- package/protoset.bin +0 -0
- package/services/react-native.service.ts +2 -2
- package/services/source-maps.service.ts +7 -69
- package/utils/file-processor.utils.ts +1 -1
- package/cli/commands/source-maps/delete-source-maps-command.ts +0 -32
- package/cli/commands/source-maps/update-source-maps-command.ts +0 -37
- package/dist/cli/commands/source-maps/delete-source-maps-command.d.ts +0 -2
- package/dist/cli/commands/source-maps/delete-source-maps-command.js +0 -41
- package/dist/cli/commands/source-maps/update-source-maps-command.d.ts +0 -2
- package/dist/cli/commands/source-maps/update-source-maps-command.js +0 -46
- package/dist/proto-models/com/coralogix/blobset/v2/react_native.d.ts +0 -54
- package/dist/proto-models/com/coralogix/blobset/v2/react_native.js +0 -313
- package/dist/proto-models/com/coralogix/rum/v2/rum_snooze_errors_service.d.ts +0 -261
- package/dist/proto-models/com/coralogix/rum/v2/rum_snooze_errors_service.js +0 -698
- package/dist/proto-models/com/coralogix/rum/v2/snooze_errors.d.ts +0 -109
- package/dist/proto-models/com/coralogix/rum/v2/snooze_errors.js +0 -580
- package/proto-models/com/coralogix/rum/v2/rum_snooze_errors_service.ts +0 -818
- package/proto-models/com/coralogix/rum/v2/snooze_errors.ts +0 -656
- package/protos/com/coralogix/rum/v2/rum_snooze_errors_service.proto +0 -64
- package/protos/com/coralogix/rum/v2/snooze_errors.proto +0 -55
|
@@ -16,82 +16,36 @@ exports.SourceMapsApi = void 0;
|
|
|
16
16
|
const nice_grpc_1 = require("nice-grpc");
|
|
17
17
|
const config_1 = __importDefault(require("../config/config"));
|
|
18
18
|
const shared_utils_1 = require("../utils/shared.utils");
|
|
19
|
+
const release_entity_type_1 = require("../proto-models/com/coralogix/rum/v2/release_entity_type");
|
|
19
20
|
const client_factory_1 = require("./client/client-factory");
|
|
20
|
-
const
|
|
21
|
+
const request_builder_1 = require("./client/request-builder");
|
|
22
|
+
const entity_type_1 = require("../proto-models/com/coralogix/blobset/v2/entity_type");
|
|
21
23
|
class SourceMapsApi {
|
|
22
|
-
static
|
|
23
|
-
return files.reduce((acc, file) => acc + file.size, 0);
|
|
24
|
-
}
|
|
25
|
-
static uploadSourceMaps(request, env, privateKey) {
|
|
26
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
27
|
-
try {
|
|
28
|
-
const client = client_factory_1.ClientFactory.getRumSourceMapGrpcClient(env);
|
|
29
|
-
const { files, releaseId, application, repoName, commitHash, user } = request;
|
|
30
|
-
const compressedFiles = yield Promise.all(files.map((file) => __awaiter(this, void 0, void 0, function* () {
|
|
31
|
-
const content = file_processor_utils_1.FileProcessor.compressFileContentChunks(file.content);
|
|
32
|
-
const size = content.length;
|
|
33
|
-
const chunkName = file.chunkName;
|
|
34
|
-
return { chunkName, size, content };
|
|
35
|
-
})));
|
|
36
|
-
(0, shared_utils_1.validateCompressedFilesSize)(this.sumFilesSize(compressedFiles), config_1.default.rumApi.sourceMapsMaxCompressedFilesSize);
|
|
37
|
-
const metadata = new nice_grpc_1.Metadata();
|
|
38
|
-
metadata.set('Authorization', `Bearer ${privateKey}`);
|
|
39
|
-
yield client.uploadSourceMaps({
|
|
40
|
-
files: compressedFiles,
|
|
41
|
-
releaseId,
|
|
42
|
-
application,
|
|
43
|
-
repoName,
|
|
44
|
-
commitHash,
|
|
45
|
-
user,
|
|
46
|
-
}, { metadata });
|
|
47
|
-
}
|
|
48
|
-
catch (error) {
|
|
49
|
-
throw error;
|
|
50
|
-
}
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
static updateSourceMap(request, env, privateKey) {
|
|
54
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
55
|
-
try {
|
|
56
|
-
const client = client_factory_1.ClientFactory.getRumSourceMapGrpcClient(env);
|
|
57
|
-
const { files, releaseId, application, repoName, commitHash, user, generate } = request;
|
|
58
|
-
const compressedFiles = yield Promise.all(files.map((file) => __awaiter(this, void 0, void 0, function* () {
|
|
59
|
-
const content = file_processor_utils_1.FileProcessor.compressFileContentChunks(file.content);
|
|
60
|
-
const size = content.length;
|
|
61
|
-
const chunkName = file.chunkName;
|
|
62
|
-
return { chunkName, size, content };
|
|
63
|
-
})));
|
|
64
|
-
(0, shared_utils_1.validateCompressedFilesSize)(this.sumFilesSize(compressedFiles), config_1.default.rumApi.sourceMapsMaxCompressedFilesSize);
|
|
65
|
-
const metadata = new nice_grpc_1.Metadata();
|
|
66
|
-
metadata.set('Authorization', `Bearer ${privateKey}`);
|
|
67
|
-
yield client.updateSourceMap({
|
|
68
|
-
files: compressedFiles,
|
|
69
|
-
releaseId,
|
|
70
|
-
application,
|
|
71
|
-
repoName,
|
|
72
|
-
commitHash,
|
|
73
|
-
user,
|
|
74
|
-
generate: (generate === null || generate === void 0 ? void 0 : generate.toString()) || undefined,
|
|
75
|
-
}, { metadata });
|
|
76
|
-
}
|
|
77
|
-
catch (error) {
|
|
78
|
-
throw error;
|
|
79
|
-
}
|
|
80
|
-
});
|
|
81
|
-
}
|
|
82
|
-
static deleteSourceMap(request, env, privateKey) {
|
|
24
|
+
static uploadSourceMaps(request, application, version, repoName, commitHash, orgName, env, privateKey) {
|
|
83
25
|
return __awaiter(this, void 0, void 0, function* () {
|
|
84
26
|
try {
|
|
85
|
-
const
|
|
27
|
+
const blobSetClient = client_factory_1.ClientFactory.getBlobSetGrpcClient(env);
|
|
28
|
+
const rumSourceMapClient = client_factory_1.ClientFactory.getRumSourceMapGrpcClient(env);
|
|
86
29
|
const metadata = new nice_grpc_1.Metadata();
|
|
87
30
|
metadata.set('Authorization', `Bearer ${privateKey}`);
|
|
88
|
-
|
|
31
|
+
(0, shared_utils_1.validateCompressedFilesSize)(request.data.length, config_1.default.rumApi.dsymMaxCompressedFilesSize);
|
|
32
|
+
const { exists } = yield rumSourceMapClient.isEntityReleaseExists({ releaseId: version, application, releaseEntityType: release_entity_type_1.ReleaseEntityType.RELEASE_ENTITY_TYPE_SOURCE_MAP }, { metadata });
|
|
33
|
+
if (exists) {
|
|
34
|
+
(0, shared_utils_1.consoleError)(`Entity release already exists for releaseId: ${version} and application: ${application}`);
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
const uploadBlobRequest = request_builder_1.RequestBuilder.createSourceMapsUploadBlobRequest(entity_type_1.EntityType.ENTITY_TYPE_SOURCE_MAP, request, application, version, repoName, commitHash, orgName);
|
|
38
|
+
const iterableRequest = (0, shared_utils_1.createUploadBlobRequestChunks)(uploadBlobRequest);
|
|
39
|
+
yield blobSetClient.uploadBlob(iterableRequest, { metadata });
|
|
40
|
+
const uploadEntityReleaseRequest = request_builder_1.RequestBuilder.createReactNativeReleaseRequest(application, version, repoName, commitHash, orgName, release_entity_type_1.ReleaseEntityType.RELEASE_ENTITY_TYPE_SOURCE_MAP);
|
|
41
|
+
yield rumSourceMapClient.createEntityRelease(uploadEntityReleaseRequest, { metadata });
|
|
89
42
|
}
|
|
90
43
|
catch (error) {
|
|
44
|
+
(0, shared_utils_1.consoleError)(`Failed to upload source maps: ${error}`);
|
|
91
45
|
throw error;
|
|
92
46
|
}
|
|
93
47
|
});
|
|
94
48
|
}
|
|
95
49
|
}
|
|
96
50
|
exports.SourceMapsApi = SourceMapsApi;
|
|
97
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlLW1hcHMuYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vYXBpL3NvdXJjZS1tYXBzLmFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQSx5Q0FBNkM7QUFDN0MsOERBQXNDO0FBRXRDLHdEQUFpSDtBQUNqSCxrR0FBNkY7QUFDN0YsNERBQXdEO0FBRXhELDhEQUEwRDtBQUMxRCxzRkFBa0Y7QUFFbEYsTUFBYSxhQUFhO0lBQ3hCLE1BQU0sQ0FBTyxnQkFBZ0IsQ0FDM0IsT0FBMEIsRUFDMUIsV0FBbUIsRUFDbkIsT0FBZSxFQUNmLFFBQTRCLEVBQzVCLFVBQThCLEVBQzlCLE9BQTJCLEVBQzNCLEdBQVcsRUFDWCxVQUFrQjs7WUFFbEIsSUFBSTtnQkFDRixNQUFNLGFBQWEsR0FBNEMsOEJBQWEsQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDdkcsTUFBTSxrQkFBa0IsR0FBaUQsOEJBQWEsQ0FBQyx5QkFBeUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFFdEgsTUFBTSxRQUFRLEdBQWEsSUFBSSxvQkFBUSxFQUFFLENBQUM7Z0JBQzFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsZUFBZSxFQUFFLFVBQVUsVUFBVSxFQUFFLENBQUMsQ0FBQztnQkFFdEQsSUFBQSwwQ0FBMkIsRUFBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxnQkFBTSxDQUFDLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO2dCQUUzRixNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsTUFBTSxrQkFBa0IsQ0FBQyxxQkFBcUIsQ0FDL0QsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSx1Q0FBaUIsQ0FBQyw4QkFBOEIsRUFBRSxFQUN4RyxFQUFFLFFBQVEsRUFBRSxDQUNiLENBQUM7Z0JBRUYsSUFBSSxNQUFNLEVBQUU7b0JBQ1YsSUFBQSwyQkFBWSxFQUFDLGdEQUFnRCxPQUFPLHFCQUFxQixXQUFXLEVBQUUsQ0FBQyxDQUFDO29CQUN4RyxPQUFPO2lCQUNSO2dCQUVELE1BQU0saUJBQWlCLEdBQXNCLGdDQUFjLENBQUMsaUNBQWlDLENBQzNGLHdCQUFVLENBQUMsc0JBQXNCLEVBQ2pDLE9BQU8sRUFDUCxXQUFXLEVBQ1gsT0FBTyxFQUNQLFFBQVEsRUFDUixVQUFVLEVBQ1YsT0FBTyxDQUNSLENBQUM7Z0JBRUYsTUFBTSxlQUFlLEdBQUcsSUFBQSw0Q0FBNkIsRUFBQyxpQkFBaUIsQ0FBQyxDQUFDO2dCQUV6RSxNQUFNLGFBQWEsQ0FBQyxVQUFVLENBQUMsZUFBZSxFQUFFLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztnQkFFOUQsTUFBTSwwQkFBMEIsR0FBK0IsZ0NBQWMsQ0FBQywrQkFBK0IsQ0FDM0csV0FBVyxFQUNYLE9BQU8sRUFDUCxRQUFRLEVBQ1IsVUFBVSxFQUNWLE9BQU8sRUFDUCx1Q0FBaUIsQ0FBQyw4QkFBOEIsQ0FDakQsQ0FBQztnQkFFRixNQUFNLGtCQUFrQixDQUFDLG1CQUFtQixDQUFDLDBCQUEwQixFQUFFLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQzthQUN4RjtZQUFDLE9BQU8sS0FBSyxFQUFFO2dCQUNkLElBQUEsMkJBQVksRUFBQyxpQ0FBaUMsS0FBSyxFQUFFLENBQUMsQ0FBQztnQkFDdkQsTUFBTSxLQUFLLENBQUM7YUFDYjtRQUNILENBQUM7S0FBQTtDQUNGO0FBM0RELHNDQTJEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENsaWVudCwgTWV0YWRhdGEgfSBmcm9tICduaWNlLWdycGMnO1xuaW1wb3J0IGNvbmZpZyBmcm9tICcuLi9jb25maWcvY29uZmlnJztcbmltcG9ydCB7IEJsb2JTZXRTZXJ2aWNlRGVmaW5pdGlvbiwgVXBsb2FkQmxvYlJlcXVlc3QgfSBmcm9tICcuLi9wcm90by1tb2RlbHMvY29tL2NvcmFsb2dpeC9ibG9ic2V0L3YyL2Jsb2JzZXRfc2VydmljZSc7XG5pbXBvcnQgeyBjb25zb2xlRXJyb3IsIGNyZWF0ZVVwbG9hZEJsb2JSZXF1ZXN0Q2h1bmtzLCB2YWxpZGF0ZUNvbXByZXNzZWRGaWxlc1NpemUgfSBmcm9tICcuLi91dGlscy9zaGFyZWQudXRpbHMnO1xuaW1wb3J0IHsgUmVsZWFzZUVudGl0eVR5cGUgfSBmcm9tICcuLi9wcm90by1tb2RlbHMvY29tL2NvcmFsb2dpeC9ydW0vdjIvcmVsZWFzZV9lbnRpdHlfdHlwZSc7XG5pbXBvcnQgeyBDbGllbnRGYWN0b3J5IH0gZnJvbSAnLi9jbGllbnQvY2xpZW50LWZhY3RvcnknO1xuaW1wb3J0IHsgQ3JlYXRlRW50aXR5UmVsZWFzZVJlcXVlc3QsIFJ1bVNvdXJjZU1hcFNlcnZpY2VEZWZpbml0aW9uIH0gZnJvbSAnLi4vcHJvdG8tbW9kZWxzL2NvbS9jb3JhbG9naXgvcnVtL3YyL3J1bV9zb3VyY2VfbWFwX3NlcnZpY2UnO1xuaW1wb3J0IHsgUmVxdWVzdEJ1aWxkZXIgfSBmcm9tICcuL2NsaWVudC9yZXF1ZXN0LWJ1aWxkZXInO1xuaW1wb3J0IHsgRW50aXR5VHlwZSB9IGZyb20gJy4uL3Byb3RvLW1vZGVscy9jb20vY29yYWxvZ2l4L2Jsb2JzZXQvdjIvZW50aXR5X3R5cGUnO1xuXG5leHBvcnQgY2xhc3MgU291cmNlTWFwc0FwaSB7XG4gIHN0YXRpYyBhc3luYyB1cGxvYWRTb3VyY2VNYXBzKFxuICAgIHJlcXVlc3Q6IFVwbG9hZEJsb2JSZXF1ZXN0LFxuICAgIGFwcGxpY2F0aW9uOiBzdHJpbmcsXG4gICAgdmVyc2lvbjogc3RyaW5nLFxuICAgIHJlcG9OYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gICAgY29tbWl0SGFzaDogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICAgIG9yZ05hbWU6IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgICBlbnY6IHN0cmluZyxcbiAgICBwcml2YXRlS2V5OiBzdHJpbmcsXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBibG9iU2V0Q2xpZW50OiBDbGllbnQ8dHlwZW9mIEJsb2JTZXRTZXJ2aWNlRGVmaW5pdGlvbj4gPSBDbGllbnRGYWN0b3J5LmdldEJsb2JTZXRHcnBjQ2xpZW50KGVudik7XG4gICAgICBjb25zdCBydW1Tb3VyY2VNYXBDbGllbnQ6IENsaWVudDx0eXBlb2YgUnVtU291cmNlTWFwU2VydmljZURlZmluaXRpb24+ID0gQ2xpZW50RmFjdG9yeS5nZXRSdW1Tb3VyY2VNYXBHcnBjQ2xpZW50KGVudik7XG5cbiAgICAgIGNvbnN0IG1ldGFkYXRhOiBNZXRhZGF0YSA9IG5ldyBNZXRhZGF0YSgpO1xuICAgICAgbWV0YWRhdGEuc2V0KCdBdXRob3JpemF0aW9uJywgYEJlYXJlciAke3ByaXZhdGVLZXl9YCk7XG5cbiAgICAgIHZhbGlkYXRlQ29tcHJlc3NlZEZpbGVzU2l6ZShyZXF1ZXN0LmRhdGEubGVuZ3RoLCBjb25maWcucnVtQXBpLmRzeW1NYXhDb21wcmVzc2VkRmlsZXNTaXplKTtcblxuICAgICAgY29uc3QgeyBleGlzdHMgfSA9IGF3YWl0IHJ1bVNvdXJjZU1hcENsaWVudC5pc0VudGl0eVJlbGVhc2VFeGlzdHMoXG4gICAgICAgIHsgcmVsZWFzZUlkOiB2ZXJzaW9uLCBhcHBsaWNhdGlvbiwgcmVsZWFzZUVudGl0eVR5cGU6IFJlbGVhc2VFbnRpdHlUeXBlLlJFTEVBU0VfRU5USVRZX1RZUEVfU09VUkNFX01BUCB9LFxuICAgICAgICB7IG1ldGFkYXRhIH0sXG4gICAgICApO1xuXG4gICAgICBpZiAoZXhpc3RzKSB7XG4gICAgICAgIGNvbnNvbGVFcnJvcihgRW50aXR5IHJlbGVhc2UgYWxyZWFkeSBleGlzdHMgZm9yIHJlbGVhc2VJZDogJHt2ZXJzaW9ufSBhbmQgYXBwbGljYXRpb246ICR7YXBwbGljYXRpb259YCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgdXBsb2FkQmxvYlJlcXVlc3Q6IFVwbG9hZEJsb2JSZXF1ZXN0ID0gUmVxdWVzdEJ1aWxkZXIuY3JlYXRlU291cmNlTWFwc1VwbG9hZEJsb2JSZXF1ZXN0KFxuICAgICAgICBFbnRpdHlUeXBlLkVOVElUWV9UWVBFX1NPVVJDRV9NQVAsXG4gICAgICAgIHJlcXVlc3QsXG4gICAgICAgIGFwcGxpY2F0aW9uLFxuICAgICAgICB2ZXJzaW9uLFxuICAgICAgICByZXBvTmFtZSxcbiAgICAgICAgY29tbWl0SGFzaCxcbiAgICAgICAgb3JnTmFtZSxcbiAgICAgICk7XG5cbiAgICAgIGNvbnN0IGl0ZXJhYmxlUmVxdWVzdCA9IGNyZWF0ZVVwbG9hZEJsb2JSZXF1ZXN0Q2h1bmtzKHVwbG9hZEJsb2JSZXF1ZXN0KTtcblxuICAgICAgYXdhaXQgYmxvYlNldENsaWVudC51cGxvYWRCbG9iKGl0ZXJhYmxlUmVxdWVzdCwgeyBtZXRhZGF0YSB9KTtcblxuICAgICAgY29uc3QgdXBsb2FkRW50aXR5UmVsZWFzZVJlcXVlc3Q6IENyZWF0ZUVudGl0eVJlbGVhc2VSZXF1ZXN0ID0gUmVxdWVzdEJ1aWxkZXIuY3JlYXRlUmVhY3ROYXRpdmVSZWxlYXNlUmVxdWVzdChcbiAgICAgICAgYXBwbGljYXRpb24sXG4gICAgICAgIHZlcnNpb24sXG4gICAgICAgIHJlcG9OYW1lLFxuICAgICAgICBjb21taXRIYXNoLFxuICAgICAgICBvcmdOYW1lLFxuICAgICAgICBSZWxlYXNlRW50aXR5VHlwZS5SRUxFQVNFX0VOVElUWV9UWVBFX1NPVVJDRV9NQVAsXG4gICAgICApO1xuXG4gICAgICBhd2FpdCBydW1Tb3VyY2VNYXBDbGllbnQuY3JlYXRlRW50aXR5UmVsZWFzZSh1cGxvYWRFbnRpdHlSZWxlYXNlUmVxdWVzdCwgeyBtZXRhZGF0YSB9KTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZUVycm9yKGBGYWlsZWQgdG8gdXBsb2FkIHNvdXJjZSBtYXBzOiAke2Vycm9yfWApO1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const update_source_maps_command_1 = require("./update-source-maps-command");
|
|
4
3
|
const upload_source_maps_command_1 = require("./upload-source-maps-command");
|
|
5
|
-
const
|
|
6
|
-
const sourceMapsCommands = { uploadSourceMapsCommand: upload_source_maps_command_1.uploadSourceMapsCommand, updateSourceMapsCommand: update_source_maps_command_1.updateSourceMapsCommand, deleteSourceMapsCommand: delete_source_maps_command_1.deleteSourceMapsCommand };
|
|
4
|
+
const sourceMapsCommands = { uploadSourceMapsCommand: upload_source_maps_command_1.uploadSourceMapsCommand };
|
|
7
5
|
exports.default = sourceMapsCommands;
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jbGkvY29tbWFuZHMvc291cmNlLW1hcHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSw2RUFBdUU7QUFFdkUsTUFBTSxrQkFBa0IsR0FBRyxFQUFFLHVCQUF1QixFQUF2QixvREFBdUIsRUFBRSxDQUFDO0FBRXZELGtCQUFlLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXBsb2FkU291cmNlTWFwc0NvbW1hbmQgfSBmcm9tICcuL3VwbG9hZC1zb3VyY2UtbWFwcy1jb21tYW5kJztcblxuY29uc3Qgc291cmNlTWFwc0NvbW1hbmRzID0geyB1cGxvYWRTb3VyY2VNYXBzQ29tbWFuZCB9O1xuXG5leHBvcnQgZGVmYXVsdCBzb3VyY2VNYXBzQ29tbWFuZHM7XG4iXX0=
|
package/dist/cli/rum-cli.js
CHANGED
|
@@ -12,16 +12,12 @@ const program = new commander_1.Command();
|
|
|
12
12
|
program.name('coralogix-rum-cli').description('CLI for upload, update, and delete source maps');
|
|
13
13
|
// Create instances for each command
|
|
14
14
|
const uploadSourceMapCommand = source_maps_1.default.uploadSourceMapsCommand();
|
|
15
|
-
const updateSourceMapCommand = source_maps_1.default.updateSourceMapsCommand();
|
|
16
|
-
const deleteSourceMapCommand = source_maps_1.default.deleteSourceMapsCommand();
|
|
17
15
|
const uploadReactNativeSourceMapsCommand = react_native_1.default.uploadReactNativeSourceMapsCommand();
|
|
18
16
|
const uploadDsymCommand = dsym_1.default.uploadDsymCommand();
|
|
19
17
|
// Register commands
|
|
20
18
|
program.addCommand(uploadSourceMapCommand);
|
|
21
|
-
program.addCommand(updateSourceMapCommand);
|
|
22
|
-
program.addCommand(deleteSourceMapCommand);
|
|
23
19
|
program.addCommand(uploadReactNativeSourceMapsCommand);
|
|
24
20
|
program.addCommand(uploadDsymCommand);
|
|
25
21
|
// Parse command line arguments
|
|
26
22
|
program.parse(process.argv);
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVtLWNsaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2NsaS9ydW0tY2xpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBLHlDQUFvQztBQUNwQyx5RUFBd0Q7QUFDeEQsMkVBQTBEO0FBQzFELDJEQUEyQztBQUUzQyxNQUFNLE9BQU8sR0FBWSxJQUFJLG1CQUFPLEVBQUUsQ0FBQztBQUV2QyxPQUFPLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUMsV0FBVyxDQUFDLGdEQUFnRCxDQUFDLENBQUM7QUFFaEcsb0NBQW9DO0FBQ3BDLE1BQU0sc0JBQXNCLEdBQVkscUJBQWtCLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztBQUVyRixNQUFNLGtDQUFrQyxHQUFZLHNCQUFtQixDQUFDLGtDQUFrQyxFQUFFLENBQUM7QUFFN0csTUFBTSxpQkFBaUIsR0FBWSxjQUFZLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztBQUVwRSxvQkFBb0I7QUFDcEIsT0FBTyxDQUFDLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0FBRTNDLE9BQU8sQ0FBQyxVQUFVLENBQUMsa0NBQWtDLENBQUMsQ0FBQztBQUV2RCxPQUFPLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLENBQUM7QUFFdEMsK0JBQStCO0FBQy9CLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiIyEvdXNyL2Jpbi9lbnYgbm9kZVxuaW1wb3J0IHsgQ29tbWFuZCB9IGZyb20gJ2NvbW1hbmRlcic7XG5pbXBvcnQgc291cmNlTWFwc0NvbW1hbmRzIGZyb20gJy4vY29tbWFuZHMvc291cmNlLW1hcHMnO1xuaW1wb3J0IHJlYWN0TmF0aXZlQ29tbWFuZHMgZnJvbSAnLi9jb21tYW5kcy9yZWFjdC1uYXRpdmUnO1xuaW1wb3J0IGRzeW1Db21tYW5kcyBmcm9tICcuL2NvbW1hbmRzL2RzeW0nO1xuXG5jb25zdCBwcm9ncmFtOiBDb21tYW5kID0gbmV3IENvbW1hbmQoKTtcblxucHJvZ3JhbS5uYW1lKCdjb3JhbG9naXgtcnVtLWNsaScpLmRlc2NyaXB0aW9uKCdDTEkgZm9yIHVwbG9hZCwgdXBkYXRlLCBhbmQgZGVsZXRlIHNvdXJjZSBtYXBzJyk7XG5cbi8vIENyZWF0ZSBpbnN0YW5jZXMgZm9yIGVhY2ggY29tbWFuZFxuY29uc3QgdXBsb2FkU291cmNlTWFwQ29tbWFuZDogQ29tbWFuZCA9IHNvdXJjZU1hcHNDb21tYW5kcy51cGxvYWRTb3VyY2VNYXBzQ29tbWFuZCgpO1xuXG5jb25zdCB1cGxvYWRSZWFjdE5hdGl2ZVNvdXJjZU1hcHNDb21tYW5kOiBDb21tYW5kID0gcmVhY3ROYXRpdmVDb21tYW5kcy51cGxvYWRSZWFjdE5hdGl2ZVNvdXJjZU1hcHNDb21tYW5kKCk7XG5cbmNvbnN0IHVwbG9hZERzeW1Db21tYW5kOiBDb21tYW5kID0gZHN5bUNvbW1hbmRzLnVwbG9hZERzeW1Db21tYW5kKCk7XG5cbi8vIFJlZ2lzdGVyIGNvbW1hbmRzXG5wcm9ncmFtLmFkZENvbW1hbmQodXBsb2FkU291cmNlTWFwQ29tbWFuZCk7XG5cbnByb2dyYW0uYWRkQ29tbWFuZCh1cGxvYWRSZWFjdE5hdGl2ZVNvdXJjZU1hcHNDb21tYW5kKTtcblxucHJvZ3JhbS5hZGRDb21tYW5kKHVwbG9hZERzeW1Db21tYW5kKTtcblxuLy8gUGFyc2UgY29tbWFuZCBsaW5lIGFyZ3VtZW50c1xucHJvZ3JhbS5wYXJzZShwcm9jZXNzLmFyZ3YpO1xuIl19
|
package/dist/consts/consts.js
CHANGED
|
@@ -12,6 +12,7 @@ exports.envToDomain = {
|
|
|
12
12
|
US1: 'https://ng-api-grpc.coralogix.us:443',
|
|
13
13
|
US2: 'https://ng-api-grpc.cx498.coralogix.com:443',
|
|
14
14
|
AP1: 'https://ng-api-grpc.app.coralogix.in:443',
|
|
15
|
-
AP2: 'https://ng-api-grpc.coralogixsg.com:443',
|
|
15
|
+
AP2: 'https://ng-api-grpc.coralogixsg.com:443',
|
|
16
|
+
STAGING: 'https://ng-api-grpc.staging.coralogix.net:443'
|
|
16
17
|
};
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vY29uc3RzL2NvbnN0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBYSxRQUFBLEVBQUUsR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDO0FBRWpCLFFBQUEsV0FBVyxHQUFHLG1CQUFtQixDQUFDO0FBRWxDLFFBQUEsU0FBUyxHQUFHLG1CQUFtQixDQUFDO0FBRWhDLFFBQUEsVUFBVSxHQUFHLG1CQUFtQixDQUFDO0FBRWpDLFFBQUEsaUJBQWlCLEdBQVcsRUFBRSxHQUFHLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQyxRQUFRO0FBRXRELFFBQUEsV0FBVyxHQUEyQjtJQUNqRCxHQUFHLEVBQUUsdUNBQXVDO0lBQzVDLEdBQUcsRUFBRSwyQ0FBMkM7SUFDaEQsR0FBRyxFQUFFLHNDQUFzQztJQUMzQyxHQUFHLEVBQUUsNkNBQTZDO0lBQ2xELEdBQUcsRUFBRSwwQ0FBMEM7SUFDL0MsR0FBRyxFQUFFLHlDQUF5QztJQUM5QyxPQUFPLEVBQUUsK0NBQStDO0NBQ3pELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgTUIgPSAxMDI0ICogMTAyNDtcblxuZXhwb3J0IGNvbnN0IEdSRUVOX0NPTE9SID0gJ1xceDFiWzMybSVzXFx4MWJbMG0nO1xuXG5leHBvcnQgY29uc3QgUkVEX0NPTE9SID0gJ1xceDFiWzMxbSVzXFx4MWJbMG0nO1xuXG5leHBvcnQgY29uc3QgR1JBWV9DT0xPUiA9ICdcXHgxYlszN20lc1xceDFiWzBtJztcblxuZXhwb3J0IGNvbnN0IFNUUkVBTV9DSFVOS19TSVpFOiBudW1iZXIgPSAxMCAqIDEwMjQgKiAxMDI0OyAvLyAxMCBNQlxuXG5leHBvcnQgY29uc3QgZW52VG9Eb21haW46IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIEVVMTogJ2h0dHBzOi8vbmctYXBpLWdycGMuY29yYWxvZ2l4LmNvbTo0NDMnLCAvLyBldS13ZXN0LTEgKElyZWxhbmQpXG4gIEVVMjogJ2h0dHBzOi8vbmctYXBpLWdycGMuZXUyLmNvcmFsb2dpeC5jb206NDQzJywgLy8gZXUtbm9ydGgtMSAoU3RvY2tob2xtKVxuICBVUzE6ICdodHRwczovL25nLWFwaS1ncnBjLmNvcmFsb2dpeC51czo0NDMnLCAvLyB1cy1lYXN0LTIgKE9oaW8pXG4gIFVTMjogJ2h0dHBzOi8vbmctYXBpLWdycGMuY3g0OTguY29yYWxvZ2l4LmNvbTo0NDMnLCAvLyB1cy13ZXN0LTIgKE9yZWdvbilcbiAgQVAxOiAnaHR0cHM6Ly9uZy1hcGktZ3JwYy5hcHAuY29yYWxvZ2l4LmluOjQ0MycsIC8vIGFwLXNvdXRoLTEgKE11bWJhaSlcbiAgQVAyOiAnaHR0cHM6Ly9uZy1hcGktZ3JwYy5jb3JhbG9naXhzZy5jb206NDQzJywgLy8gYXAtc291dGhlYXN0LTEgKFNpbmdhcG9yZSlcbiAgU1RBR0lORzogJ2h0dHBzOi8vbmctYXBpLWdycGMuc3RhZ2luZy5jb3JhbG9naXgubmV0OjQ0Mydcbn07XG4iXX0=
|
|
@@ -1,4 +1,9 @@
|
|
|
1
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/audit_log.proto
|
|
2
7
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
8
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
9
|
};
|
|
@@ -61,4 +66,4 @@ exports.AuditLogDescription = {
|
|
|
61
66
|
function isSet(value) {
|
|
62
67
|
return value !== null && value !== undefined;
|
|
63
68
|
}
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaXRfbG9nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvdG8tbW9kZWxzL2NvbS9jb3JhbG9naXgvYmxvYnNldC92Mi9hdWRpdF9sb2cudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHNEQUFzRDtBQUN0RCxZQUFZO0FBQ1osa0NBQWtDO0FBQ2xDLGlDQUFpQztBQUNqQyxtREFBbUQ7Ozs7OztBQUVuRCxvQkFBb0I7QUFDcEIsaUVBQXFDO0FBRXhCLFFBQUEsZUFBZSxHQUFHLDBCQUEwQixDQUFDO0FBTTFELFNBQVMsNkJBQTZCO0lBQ3BDLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLENBQUM7QUFDcEMsQ0FBQztBQUVZLFFBQUEsbUJBQW1CLEdBQUc7SUFDakMsTUFBTSxDQUFDLE9BQTRCLEVBQUUsU0FBcUIsaUJBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1FBQzNFLElBQUksT0FBTyxDQUFDLFdBQVcsS0FBSyxTQUFTLEVBQUU7WUFDckMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQy9DO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUE4QixFQUFFLE1BQWU7UUFDcEQsTUFBTSxNQUFNLEdBQUcsS0FBSyxZQUFZLGlCQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLGlCQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5RSxJQUFJLEdBQUcsR0FBRyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQztRQUNsRSxNQUFNLE9BQU8sR0FBRyw2QkFBNkIsRUFBRSxDQUFDO1FBQ2hELE9BQU8sTUFBTSxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUU7WUFDdkIsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzVCLFFBQVEsR0FBRyxLQUFLLENBQUMsRUFBRTtnQkFDakIsS0FBSyxDQUFDO29CQUNKLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRTt3QkFDZCxNQUFNO3FCQUNQO29CQUVELE9BQU8sQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUN0QyxTQUFTO2FBQ1o7WUFDRCxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxFQUFFO2dCQUNoQyxNQUFNO2FBQ1A7WUFDRCxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztTQUMxQjtRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxRQUFRLENBQUMsTUFBVztRQUNsQixPQUFPLEVBQUUsV0FBVyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUN4RyxDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQTRCO1FBQ2pDLE1BQU0sR0FBRyxHQUFRLEVBQUUsQ0FBQztRQUNwQixJQUFJLE9BQU8sQ0FBQyxXQUFXLEtBQUssU0FBUyxFQUFFO1lBQ3JDLEdBQUcsQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQztTQUN2QztRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELE1BQU0sQ0FBQyxJQUF1QztRQUM1QyxPQUFPLDJCQUFtQixDQUFDLFdBQVcsQ0FBQyxJQUFJLGFBQUosSUFBSSxjQUFKLElBQUksR0FBSSxFQUFFLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBQ0QsV0FBVyxDQUFDLE1BQXdDOztRQUNsRCxNQUFNLE9BQU8sR0FBRyw2QkFBNkIsRUFBRSxDQUFDO1FBQ2hELE9BQU8sQ0FBQyxXQUFXLEdBQUcsTUFBQSxNQUFNLENBQUMsV0FBVyxtQ0FBSSxTQUFTLENBQUM7UUFDdEQsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGLENBQUM7QUFXRixTQUFTLEtBQUssQ0FBQyxLQUFVO0lBQ3ZCLE9BQU8sS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssU0FBUyxDQUFDO0FBQy9DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb2RlIGdlbmVyYXRlZCBieSBwcm90b2MtZ2VuLXRzX3Byb3RvLiBETyBOT1QgRURJVC5cbi8vIHZlcnNpb25zOlxuLy8gICBwcm90b2MtZ2VuLXRzX3Byb3RvICB2MS4xODEuMVxuLy8gICBwcm90b2MgICAgICAgICAgICAgICB2My4xOS4xXG4vLyBzb3VyY2U6IGNvbS9jb3JhbG9naXgvYmxvYnNldC92Mi9hdWRpdF9sb2cucHJvdG9cblxuLyogZXNsaW50LWRpc2FibGUgKi9cbmltcG9ydCBfbTAgZnJvbSBcInByb3RvYnVmanMvbWluaW1hbFwiO1xuXG5leHBvcnQgY29uc3QgcHJvdG9idWZQYWNrYWdlID0gXCJjb20uY29yYWxvZ2l4LmJsb2JzZXQudjJcIjtcblxuZXhwb3J0IGludGVyZmFjZSBBdWRpdExvZ0Rlc2NyaXB0aW9uIHtcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUJhc2VBdWRpdExvZ0Rlc2NyaXB0aW9uKCk6IEF1ZGl0TG9nRGVzY3JpcHRpb24ge1xuICByZXR1cm4geyBkZXNjcmlwdGlvbjogdW5kZWZpbmVkIH07XG59XG5cbmV4cG9ydCBjb25zdCBBdWRpdExvZ0Rlc2NyaXB0aW9uID0ge1xuICBlbmNvZGUobWVzc2FnZTogQXVkaXRMb2dEZXNjcmlwdGlvbiwgd3JpdGVyOiBfbTAuV3JpdGVyID0gX20wLldyaXRlci5jcmVhdGUoKSk6IF9tMC5Xcml0ZXIge1xuICAgIGlmIChtZXNzYWdlLmRlc2NyaXB0aW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHdyaXRlci51aW50MzIoMTApLnN0cmluZyhtZXNzYWdlLmRlc2NyaXB0aW9uKTtcbiAgICB9XG4gICAgcmV0dXJuIHdyaXRlcjtcbiAgfSxcblxuICBkZWNvZGUoaW5wdXQ6IF9tMC5SZWFkZXIgfCBVaW50OEFycmF5LCBsZW5ndGg/OiBudW1iZXIpOiBBdWRpdExvZ0Rlc2NyaXB0aW9uIHtcbiAgICBjb25zdCByZWFkZXIgPSBpbnB1dCBpbnN0YW5jZW9mIF9tMC5SZWFkZXIgPyBpbnB1dCA6IF9tMC5SZWFkZXIuY3JlYXRlKGlucHV0KTtcbiAgICBsZXQgZW5kID0gbGVuZ3RoID09PSB1bmRlZmluZWQgPyByZWFkZXIubGVuIDogcmVhZGVyLnBvcyArIGxlbmd0aDtcbiAgICBjb25zdCBtZXNzYWdlID0gY3JlYXRlQmFzZUF1ZGl0TG9nRGVzY3JpcHRpb24oKTtcbiAgICB3aGlsZSAocmVhZGVyLnBvcyA8IGVuZCkge1xuICAgICAgY29uc3QgdGFnID0gcmVhZGVyLnVpbnQzMigpO1xuICAgICAgc3dpdGNoICh0YWcgPj4+IDMpIHtcbiAgICAgICAgY2FzZSAxOlxuICAgICAgICAgIGlmICh0YWcgIT09IDEwKSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBtZXNzYWdlLmRlc2NyaXB0aW9uID0gcmVhZGVyLnN0cmluZygpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgaWYgKCh0YWcgJiA3KSA9PT0gNCB8fCB0YWcgPT09IDApIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICByZWFkZXIuc2tpcFR5cGUodGFnICYgNyk7XG4gICAgfVxuICAgIHJldHVybiBtZXNzYWdlO1xuICB9LFxuXG4gIGZyb21KU09OKG9iamVjdDogYW55KTogQXVkaXRMb2dEZXNjcmlwdGlvbiB7XG4gICAgcmV0dXJuIHsgZGVzY3JpcHRpb246IGlzU2V0KG9iamVjdC5kZXNjcmlwdGlvbikgPyBnbG9iYWxUaGlzLlN0cmluZyhvYmplY3QuZGVzY3JpcHRpb24pIDogdW5kZWZpbmVkIH07XG4gIH0sXG5cbiAgdG9KU09OKG1lc3NhZ2U6IEF1ZGl0TG9nRGVzY3JpcHRpb24pOiB1bmtub3duIHtcbiAgICBjb25zdCBvYmo6IGFueSA9IHt9O1xuICAgIGlmIChtZXNzYWdlLmRlc2NyaXB0aW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIG9iai5kZXNjcmlwdGlvbiA9IG1lc3NhZ2UuZGVzY3JpcHRpb247XG4gICAgfVxuICAgIHJldHVybiBvYmo7XG4gIH0sXG5cbiAgY3JlYXRlKGJhc2U/OiBEZWVwUGFydGlhbDxBdWRpdExvZ0Rlc2NyaXB0aW9uPik6IEF1ZGl0TG9nRGVzY3JpcHRpb24ge1xuICAgIHJldHVybiBBdWRpdExvZ0Rlc2NyaXB0aW9uLmZyb21QYXJ0aWFsKGJhc2UgPz8ge30pO1xuICB9LFxuICBmcm9tUGFydGlhbChvYmplY3Q6IERlZXBQYXJ0aWFsPEF1ZGl0TG9nRGVzY3JpcHRpb24+KTogQXVkaXRMb2dEZXNjcmlwdGlvbiB7XG4gICAgY29uc3QgbWVzc2FnZSA9IGNyZWF0ZUJhc2VBdWRpdExvZ0Rlc2NyaXB0aW9uKCk7XG4gICAgbWVzc2FnZS5kZXNjcmlwdGlvbiA9IG9iamVjdC5kZXNjcmlwdGlvbiA/PyB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIG1lc3NhZ2U7XG4gIH0sXG59O1xuXG50eXBlIEJ1aWx0aW4gPSBEYXRlIHwgRnVuY3Rpb24gfCBVaW50OEFycmF5IHwgc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IHVuZGVmaW5lZDtcblxuZXhwb3J0IHR5cGUgRGVlcFBhcnRpYWw8VD4gPSBUIGV4dGVuZHMgQnVpbHRpbiA/IFRcbiAgOiBUIGV4dGVuZHMgZ2xvYmFsVGhpcy5BcnJheTxpbmZlciBVPiA/IGdsb2JhbFRoaXMuQXJyYXk8RGVlcFBhcnRpYWw8VT4+XG4gIDogVCBleHRlbmRzIFJlYWRvbmx5QXJyYXk8aW5mZXIgVT4gPyBSZWFkb25seUFycmF5PERlZXBQYXJ0aWFsPFU+PlxuICA6IFQgZXh0ZW5kcyB7ICRjYXNlOiBzdHJpbmcgfSA/IHsgW0sgaW4ga2V5b2YgT21pdDxULCBcIiRjYXNlXCI+XT86IERlZXBQYXJ0aWFsPFRbS10+IH0gJiB7ICRjYXNlOiBUW1wiJGNhc2VcIl0gfVxuICA6IFQgZXh0ZW5kcyB7fSA/IHsgW0sgaW4ga2V5b2YgVF0/OiBEZWVwUGFydGlhbDxUW0tdPiB9XG4gIDogUGFydGlhbDxUPjtcblxuZnVuY3Rpb24gaXNTZXQodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xuICByZXR1cm4gdmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09IHVuZGVmaW5lZDtcbn1cbiJdfQ==
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { GetMappedIosStackTraceRequest, GetMappedIosStackTraceResponse } from "./dsym";
|
|
2
|
-
import {
|
|
2
|
+
import { GetSourceMapsChunksRequest, GetSourceMapsChunksResponse } from "./source_map";
|
|
3
3
|
export declare const protobufPackage = "com.coralogix.blobset.v2";
|
|
4
4
|
export type BlobSetQueryServiceDefinition = typeof BlobSetQueryServiceDefinition;
|
|
5
5
|
export declare const BlobSetQueryServiceDefinition: {
|
|
@@ -57,30 +57,32 @@ export declare const BlobSetQueryServiceDefinition: {
|
|
|
57
57
|
readonly responseStream: false;
|
|
58
58
|
readonly options: {};
|
|
59
59
|
};
|
|
60
|
-
readonly
|
|
61
|
-
readonly name: "
|
|
60
|
+
readonly getSourceMapsChunks: {
|
|
61
|
+
readonly name: "GetSourceMapsChunks";
|
|
62
62
|
readonly requestType: {
|
|
63
|
-
encode(message:
|
|
64
|
-
decode(input: Uint8Array | import("protobufjs").Reader, length?: number | undefined):
|
|
65
|
-
fromJSON(object: any):
|
|
66
|
-
toJSON(message:
|
|
63
|
+
encode(message: GetSourceMapsChunksRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer;
|
|
64
|
+
decode(input: Uint8Array | import("protobufjs").Reader, length?: number | undefined): GetSourceMapsChunksRequest;
|
|
65
|
+
fromJSON(object: any): GetSourceMapsChunksRequest;
|
|
66
|
+
toJSON(message: GetSourceMapsChunksRequest): unknown;
|
|
67
67
|
create(base?: {
|
|
68
68
|
application?: string | undefined;
|
|
69
69
|
releaseId?: string | undefined;
|
|
70
|
-
|
|
71
|
-
|
|
70
|
+
sourceMapType?: import("./source_map").SourceMapType | undefined;
|
|
71
|
+
chunksNames?: string[] | undefined;
|
|
72
|
+
} | undefined): GetSourceMapsChunksRequest;
|
|
72
73
|
fromPartial(object: {
|
|
73
74
|
application?: string | undefined;
|
|
74
75
|
releaseId?: string | undefined;
|
|
75
|
-
|
|
76
|
-
|
|
76
|
+
sourceMapType?: import("./source_map").SourceMapType | undefined;
|
|
77
|
+
chunksNames?: string[] | undefined;
|
|
78
|
+
}): GetSourceMapsChunksRequest;
|
|
77
79
|
};
|
|
78
80
|
readonly requestStream: false;
|
|
79
81
|
readonly responseType: {
|
|
80
|
-
encode(message:
|
|
81
|
-
decode(input: Uint8Array | import("protobufjs").Reader, length?: number | undefined):
|
|
82
|
-
fromJSON(object: any):
|
|
83
|
-
toJSON(message:
|
|
82
|
+
encode(message: GetSourceMapsChunksResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer;
|
|
83
|
+
decode(input: Uint8Array | import("protobufjs").Reader, length?: number | undefined): GetSourceMapsChunksResponse;
|
|
84
|
+
fromJSON(object: any): GetSourceMapsChunksResponse;
|
|
85
|
+
toJSON(message: GetSourceMapsChunksResponse): unknown;
|
|
84
86
|
create(base?: {
|
|
85
87
|
application?: string | undefined;
|
|
86
88
|
releaseId?: string | undefined;
|
|
@@ -91,7 +93,7 @@ export declare const BlobSetQueryServiceDefinition: {
|
|
|
91
93
|
commitHash?: string | undefined;
|
|
92
94
|
repoName?: string | undefined;
|
|
93
95
|
user?: string | undefined;
|
|
94
|
-
} | undefined):
|
|
96
|
+
} | undefined): GetSourceMapsChunksResponse;
|
|
95
97
|
fromPartial(object: {
|
|
96
98
|
application?: string | undefined;
|
|
97
99
|
releaseId?: string | undefined;
|
|
@@ -102,7 +104,7 @@ export declare const BlobSetQueryServiceDefinition: {
|
|
|
102
104
|
commitHash?: string | undefined;
|
|
103
105
|
repoName?: string | undefined;
|
|
104
106
|
user?: string | undefined;
|
|
105
|
-
}):
|
|
107
|
+
}): GetSourceMapsChunksResponse;
|
|
106
108
|
};
|
|
107
109
|
readonly responseStream: false;
|
|
108
110
|
readonly options: {};
|
|
@@ -1,9 +1,14 @@
|
|
|
1
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/blobset_query_service.proto
|
|
2
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
8
|
exports.BlobSetQueryServiceDefinition = exports.protobufPackage = void 0;
|
|
4
9
|
/* eslint-disable */
|
|
5
10
|
const dsym_1 = require("./dsym");
|
|
6
|
-
const
|
|
11
|
+
const source_map_1 = require("./source_map");
|
|
7
12
|
exports.protobufPackage = "com.coralogix.blobset.v2";
|
|
8
13
|
exports.BlobSetQueryServiceDefinition = {
|
|
9
14
|
name: "BlobSetQueryService",
|
|
@@ -18,14 +23,14 @@ exports.BlobSetQueryServiceDefinition = {
|
|
|
18
23
|
responseStream: false,
|
|
19
24
|
options: {},
|
|
20
25
|
},
|
|
21
|
-
|
|
22
|
-
name: "
|
|
23
|
-
requestType:
|
|
26
|
+
getSourceMapsChunks: {
|
|
27
|
+
name: "GetSourceMapsChunks",
|
|
28
|
+
requestType: source_map_1.GetSourceMapsChunksRequest,
|
|
24
29
|
requestStream: false,
|
|
25
|
-
responseType:
|
|
30
|
+
responseType: source_map_1.GetSourceMapsChunksResponse,
|
|
26
31
|
responseStream: false,
|
|
27
32
|
options: {},
|
|
28
33
|
},
|
|
29
34
|
},
|
|
30
35
|
};
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvYnNldF9xdWVyeV9zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvdG8tbW9kZWxzL2NvbS9jb3JhbG9naXgvYmxvYnNldC92Mi9ibG9ic2V0X3F1ZXJ5X3NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHNEQUFzRDtBQUN0RCxZQUFZO0FBQ1osa0NBQWtDO0FBQ2xDLGlDQUFpQztBQUNqQywrREFBK0Q7OztBQUUvRCxvQkFBb0I7QUFDcEIsaUNBQXVGO0FBQ3ZGLDZDQUF1RjtBQUUxRSxRQUFBLGVBQWUsR0FBRywwQkFBMEIsQ0FBQztBQUc3QyxRQUFBLDZCQUE2QixHQUFHO0lBQzNDLElBQUksRUFBRSxxQkFBcUI7SUFDM0IsUUFBUSxFQUFFLDhDQUE4QztJQUN4RCxPQUFPLEVBQUU7UUFDUCxVQUFVO1FBQ1Ysc0JBQXNCLEVBQUU7WUFDdEIsSUFBSSxFQUFFLHdCQUF3QjtZQUM5QixXQUFXLEVBQUUsb0NBQTZCO1lBQzFDLGFBQWEsRUFBRSxLQUFLO1lBQ3BCLFlBQVksRUFBRSxxQ0FBOEI7WUFDNUMsY0FBYyxFQUFFLEtBQUs7WUFDckIsT0FBTyxFQUFFLEVBQUU7U0FDWjtRQUNELG1CQUFtQixFQUFFO1lBQ25CLElBQUksRUFBRSxxQkFBcUI7WUFDM0IsV0FBVyxFQUFFLHVDQUEwQjtZQUN2QyxhQUFhLEVBQUUsS0FBSztZQUNwQixZQUFZLEVBQUUsd0NBQTJCO1lBQ3pDLGNBQWMsRUFBRSxLQUFLO1lBQ3JCLE9BQU8sRUFBRSxFQUFFO1NBQ1o7S0FDRjtDQUNPLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb2RlIGdlbmVyYXRlZCBieSBwcm90b2MtZ2VuLXRzX3Byb3RvLiBETyBOT1QgRURJVC5cbi8vIHZlcnNpb25zOlxuLy8gICBwcm90b2MtZ2VuLXRzX3Byb3RvICB2MS4xODEuMVxuLy8gICBwcm90b2MgICAgICAgICAgICAgICB2My4xOS4xXG4vLyBzb3VyY2U6IGNvbS9jb3JhbG9naXgvYmxvYnNldC92Mi9ibG9ic2V0X3F1ZXJ5X3NlcnZpY2UucHJvdG9cblxuLyogZXNsaW50LWRpc2FibGUgKi9cbmltcG9ydCB7IEdldE1hcHBlZElvc1N0YWNrVHJhY2VSZXF1ZXN0LCBHZXRNYXBwZWRJb3NTdGFja1RyYWNlUmVzcG9uc2UgfSBmcm9tIFwiLi9kc3ltXCI7XG5pbXBvcnQgeyBHZXRTb3VyY2VNYXBzQ2h1bmtzUmVxdWVzdCwgR2V0U291cmNlTWFwc0NodW5rc1Jlc3BvbnNlIH0gZnJvbSBcIi4vc291cmNlX21hcFwiO1xuXG5leHBvcnQgY29uc3QgcHJvdG9idWZQYWNrYWdlID0gXCJjb20uY29yYWxvZ2l4LmJsb2JzZXQudjJcIjtcblxuZXhwb3J0IHR5cGUgQmxvYlNldFF1ZXJ5U2VydmljZURlZmluaXRpb24gPSB0eXBlb2YgQmxvYlNldFF1ZXJ5U2VydmljZURlZmluaXRpb247XG5leHBvcnQgY29uc3QgQmxvYlNldFF1ZXJ5U2VydmljZURlZmluaXRpb24gPSB7XG4gIG5hbWU6IFwiQmxvYlNldFF1ZXJ5U2VydmljZVwiLFxuICBmdWxsTmFtZTogXCJjb20uY29yYWxvZ2l4LmJsb2JzZXQudjIuQmxvYlNldFF1ZXJ5U2VydmljZVwiLFxuICBtZXRob2RzOiB7XG4gICAgLyoqIFJVTSAqL1xuICAgIGdldE1hcHBlZElvc1N0YWNrVHJhY2U6IHtcbiAgICAgIG5hbWU6IFwiR2V0TWFwcGVkSW9zU3RhY2tUcmFjZVwiLFxuICAgICAgcmVxdWVzdFR5cGU6IEdldE1hcHBlZElvc1N0YWNrVHJhY2VSZXF1ZXN0LFxuICAgICAgcmVxdWVzdFN0cmVhbTogZmFsc2UsXG4gICAgICByZXNwb25zZVR5cGU6IEdldE1hcHBlZElvc1N0YWNrVHJhY2VSZXNwb25zZSxcbiAgICAgIHJlc3BvbnNlU3RyZWFtOiBmYWxzZSxcbiAgICAgIG9wdGlvbnM6IHt9LFxuICAgIH0sXG4gICAgZ2V0U291cmNlTWFwc0NodW5rczoge1xuICAgICAgbmFtZTogXCJHZXRTb3VyY2VNYXBzQ2h1bmtzXCIsXG4gICAgICByZXF1ZXN0VHlwZTogR2V0U291cmNlTWFwc0NodW5rc1JlcXVlc3QsXG4gICAgICByZXF1ZXN0U3RyZWFtOiBmYWxzZSxcbiAgICAgIHJlc3BvbnNlVHlwZTogR2V0U291cmNlTWFwc0NodW5rc1Jlc3BvbnNlLFxuICAgICAgcmVzcG9uc2VTdHJlYW06IGZhbHNlLFxuICAgICAgb3B0aW9uczoge30sXG4gICAgfSxcbiAgfSxcbn0gYXMgY29uc3Q7XG4iXX0=
|
|
@@ -1,4 +1,9 @@
|
|
|
1
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/blobset_service.proto
|
|
2
7
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
8
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
9
|
};
|
|
@@ -171,4 +176,4 @@ function base64FromBytes(arr) {
|
|
|
171
176
|
function isSet(value) {
|
|
172
177
|
return value !== null && value !== undefined;
|
|
173
178
|
}
|
|
174
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvYnNldF9zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvdG8tbW9kZWxzL2NvbS9jb3JhbG9naXgvYmxvYnNldC92Mi9ibG9ic2V0X3NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsb0JBQW9CO0FBQ3BCLGlFQUFxQztBQUNyQyx1REFBbUQ7QUFDbkQsK0NBQWlGO0FBRXBFLFFBQUEsZUFBZSxHQUFHLDBCQUEwQixDQUFDO0FBVzFELFNBQVMsMkJBQTJCO0lBQ2xDLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsVUFBVSxFQUFFLENBQUMsRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUFFLENBQUM7QUFDL0UsQ0FBQztBQUVZLFFBQUEsaUJBQWlCLEdBQUc7SUFDL0IsTUFBTSxDQUFDLE9BQTBCLEVBQUUsU0FBcUIsaUJBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1FBQ3pFLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQzdCLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN2QztRQUNELElBQUksT0FBTyxDQUFDLFVBQVUsS0FBSyxDQUFDLEVBQUU7WUFDNUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQzdDO1FBQ0QsSUFBSSxPQUFPLENBQUMsY0FBYyxLQUFLLFNBQVMsRUFBRTtZQUN4QyxnQ0FBYyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUNsRjtRQUNELE9B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LENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNqRCxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7S0FDdEM7QUFDSCxDQUFDO0FBV0QsU0FBUyxLQUFLLENBQUMsS0FBVTtJQUN2QixPQUFPLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxLQUFLLFNBQVMsQ0FBQztBQUMvQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgKi9cbmltcG9ydCBfbTAgZnJvbSBcInByb3RvYnVmanMvbWluaW1hbFwiO1xuaW1wb3J0IHsgRW50aXR5TWV0YWRhdGEgfSBmcm9tIFwiLi9lbnRpdHlfbWV0YWRhdGFcIjtcbmltcG9ydCB7IEVudGl0eVR5cGUsIGVudGl0eVR5cGVGcm9tSlNPTiwgZW50aXR5VHlwZVRvSlNPTiB9IGZyb20gXCIuL2VudGl0eV90eXBlXCI7XG5cbmV4cG9ydCBjb25zdCBwcm90b2J1ZlBhY2thZ2UgPSBcImNvbS5jb3JhbG9naXguYmxvYnNldC52MlwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFVwbG9hZEJsb2JSZXF1ZXN0IHtcbiAgZGF0YTogVWludDhBcnJheTtcbiAgZW50aXR5VHlwZTogRW50aXR5VHlwZTtcbiAgZW50aXR5TWV0YWRhdGE6IEVudGl0eU1ldGFkYXRhIHwgdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVwbG9hZEJsb2JSZXNwb25zZSB7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUJhc2VVcGxvYWRCbG9iUmVxdWVzdCgpOiBVcGxvYWRCbG9iUmVxdWVzdCB7XG4gIHJldHVybiB7IGRhdGE6IG5ldyBVaW50OEFycmF5KDApLCBlbnRpdHlUeXBlOiAwLCBlbnRpdHlNZXRhZGF0YTogdW5kZWZpbmVkIH07XG59XG5cbmV4cG9ydCBjb25zdCBVcGxvYWRCbG9iUmVxdWVzdCA9IHtcbiAgZW5jb2RlKG1lc3NhZ2U6IFVwbG9hZEJsb2JSZXF1ZXN0LCB3cml0ZXI6IF9tMC5Xcml0ZXIgPSBfbTAuV3JpdGVyLmNyZWF0ZSgpKTogX20wLldyaXRlciB7XG4gICAgaWYgKG1lc3NhZ2UuZGF0YS5sZW5ndGggIT09IDApIHtcbiAgICAgIHdyaXRlci51aW50MzIoMTApLmJ5dGVzKG1lc3NhZ2UuZGF0YSk7XG4gICAgfVxuICAgIGlmIChtZXNzYWdlLmVudGl0eVR5cGUgIT09IDApIHtcbiAgICAgIHdyaXRlci51aW50MzIoMTYpLmludDMyKG1lc3NhZ2UuZW50aXR5VHlwZSk7XG4gICAgfVxuICAgIGlmIChtZXNzYWdlLmVudGl0eU1ldGFkYXRhICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIEVudGl0eU1ldGFkYXRhLmVuY29kZShtZXNzYWdlLmVudGl0eU1ldGFkYXRhLCB3cml0ZXIudWludDMyKDI2KS5mb3JrKCkpLmxkZWxpbSgpO1xuICAgIH1cbiAgICByZXR1cm4gd3JpdGVyO1xuICB9LFxuXG4gIGRlY29kZShpbnB1dDogX20wLlJlYWRlciB8IFVpbnQ4QXJyYXksIGxlbmd0aD86IG51bWJlcik6IFVwbG9hZEJsb2JSZXF1ZXN0IHtcbiAgICBjb25zdCByZWFkZXIgPSBpbnB1dCBpbnN0YW5jZW9mIF9tMC5SZWFkZXIgPyBpbnB1dCA6IF9tMC5SZWFkZXIuY3JlYXRlKGlucHV0KTtcbiAgICBsZXQgZW5kID0gbGVuZ3RoID09PSB1bmRlZmluZWQgPyByZWFkZXIubGVuIDogcmVhZGVyLnBvcyArIGxlbmd0aDtcbiAgICBjb25zdCBtZXNzYWdlID0gY3JlYXRlQmFzZVVwbG9hZEJsb2JSZXF1ZXN0KCk7XG4gICAgd2hpbGUgKHJlYWRlci5wb3MgPCBlbmQpIHtcbiAgICAgIGNvbnN0IHRhZyA9IHJlYWRlci51aW50MzIoKTtcbiAgICAgIHN3aXRjaCAodGFnID4+PiAzKSB7XG4gICAgICAgIGNhc2UgMTpcbiAgICAgICAgICBpZiAodGFnICE9PSAxMCkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbWVzc2FnZS5kYXRhID0gcmVhZGVyLmJ5dGVzKCk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIGNhc2UgMjpcbiAgICAgICAgICBpZiAodGFnICE9PSAxNikge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbWVzc2FnZS5lbnRpdHlUeXBlID0gcmVhZGVyLmludDMyKCkgYXMgYW55O1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgaWYgKHRhZyAhPT0gMjYpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG1lc3NhZ2UuZW50aXR5TWV0YWRhdGEgPSBFbnRpdHlNZXRhZGF0YS5kZWNvZGUocmVhZGVyLCByZWFkZXIudWludDMyKCkpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgaWYgKCh0YWcgJiA3KSA9PT0gNCB8fCB0YWcgPT09IDApIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICByZWFkZXIuc2tpcFR5cGUodGFnICYgNyk7XG4gICAgfVxuICAgIHJldHVybiBtZXNzYWdlO1xuICB9LFxuXG4gIGZyb21KU09OKG9iamVjdDogYW55KTogVXBsb2FkQmxvYlJlcXVlc3Qge1xuICAgIHJldHVybiB7XG4gICAgICBkYXRhOiBpc1NldChvYmplY3QuZGF0YSkgPyBieXRlc0Zyb21CYXNlNjQob2JqZWN0LmRhdGEpIDogbmV3IFVpbnQ4QXJyYXkoMCksXG4gICAgICBlbnRpdHlUeXBlOiBpc1NldChvYmplY3QuZW50aXR5VHlwZSkgPyBlbnRpdHlUeXBlRnJvbUpTT04ob2JqZWN0LmVudGl0eVR5cGUpIDogMCxcbiAgICAgIGVudGl0eU1ldGFkYXRhOiBpc1NldChvYmplY3QuZW50aXR5TWV0YWRhdGEpID8gRW50aXR5TWV0YWRhdGEuZnJvbUpTT04ob2JqZWN0LmVudGl0eU1ldGFkYXRhKSA6IHVuZGVmaW5lZCxcbiAgICB9O1xuICB9LFxuXG4gIHRvSlNPTihtZXNzYWdlOiBVcGxvYWRCbG9iUmVxdWVzdCk6IHVua25vd24ge1xuICAgIGNvbnN0IG9iajogYW55ID0ge307XG4gICAgaWYgKG1lc3NhZ2UuZGF0YS5sZW5ndGggIT09IDApIHtcbiAgICAgIG9iai5kYXRhID0gYmFzZTY0RnJvbUJ5dGVzKG1lc3NhZ2UuZGF0YSk7XG4gICAgfVxuICAgIGlmIChtZXNzYWdlLmVudGl0eVR5cGUgIT09IDApIHtcbiAgICAgIG9iai5lbnRpdHlUeXBlID0gZW50aXR5VHlwZVRvSlNPTihtZXNzYWdlLmVudGl0eVR5cGUpO1xuICAgIH1cbiAgICBpZiAobWVzc2FnZS5lbnRpdHlNZXRhZGF0YSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBvYmouZW50aXR5TWV0YWRhdGEgPSBFbnRpdHlNZXRhZGF0YS50b0pTT04obWVzc2FnZS5lbnRpdHlNZXRhZGF0YSk7XG4gICAgfVxuICAgIHJldHVybiBvYmo7XG4gIH0sXG5cbiAgY3JlYXRlKGJhc2U/OiBEZWVwUGFydGlhbDxVcGxvYWRCbG9iUmVxdWVzdD4pOiBVcGxvYWRCbG9iUmVxdWVzdCB7XG4gICAgcmV0dXJuIFVwbG9hZEJsb2JSZXF1ZXN0LmZyb21QYXJ0aWFsKGJhc2UgPz8ge30pO1xuICB9LFxuICBmcm9tUGFydGlhbChvYmplY3Q6IERlZXBQYXJ0aWFsPFVwbG9hZEJsb2JSZXF1ZXN0Pik6IFVwbG9hZEJsb2JSZXF1ZXN0IHtcbiAgICBjb25zdCBtZXNzYWdlID0gY3JlYXRlQmFzZVVwbG9hZEJsb2JSZXF1ZXN0KCk7XG4gICAgbWVzc2FnZS5kYXRhID0gb2JqZWN0LmRhdGEgPz8gbmV3IFVpbnQ4QXJyYXkoMCk7XG4gICAgbWVzc2FnZS5lbnRpdHlUeXBlID0gb2JqZWN0LmVudGl0eVR5cGUgPz8gMDtcbiAgICBtZXNzYWdlLmVudGl0eU1ldGFkYXRhID0gKG9iamVjdC5lbnRpdHlNZXRhZGF0YSAhPT0gdW5kZWZpbmVkICYmIG9iamVjdC5lbnRpdHlNZXRhZGF0YSAhPT0gbnVsbClcbiAgICAgID8gRW50aXR5TWV0YWRhdGEuZnJvbVBhcnRpYWwob2JqZWN0LmVudGl0eU1ldGFkYXRhKVxuICAgICAgOiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIG1lc3NhZ2U7XG4gIH0sXG59O1xuXG5mdW5jdGlvbiBjcmVhdGVCYXNlVXBsb2FkQmxvYlJlc3BvbnNlKCk6IFVwbG9hZEJsb2JSZXNwb25zZSB7XG4gIHJldHVybiB7fTtcbn1cblxuZXhwb3J0IGNvbnN0IFVwbG9hZEJsb2JSZXNwb25zZSA9IHtcbiAgZW5jb2RlKF86IFVwbG9hZEJsb2JSZXNwb25zZSwgd3JpdGVyOiBfbTAuV3JpdGVyID0gX20wLldyaXRlci5jcmVhdGUoKSk6IF9tMC5Xcml0ZXIge1xuICAgIHJldHVybiB3cml0ZXI7XG4gIH0sXG5cbiAgZGVjb2RlKGlucHV0OiBfbTAuUmVhZGVyIHwgVWludDhBcnJheSwgbGVuZ3RoPzogbnVtYmVyKTogVXBsb2FkQmxvYlJlc3BvbnNlIHtcbiAgICBjb25zdCByZWFkZXIgPSBpbnB1dCBpbnN0YW5jZW9mIF9tMC5SZWFkZXIgPyBpbnB1dCA6IF9tMC5SZWFkZXIuY3JlYXRlKGlucHV0KTtcbiAgICBsZXQgZW5kID0gbGVuZ3RoID09PSB1bmRlZmluZWQgPyByZWFkZXIubGVuIDogcmVhZGVyLnBvcyArIGxlbmd0aDtcbiAgICBjb25zdCBtZXNzYWdlID0gY3JlYXRlQmFzZVVwbG9hZEJsb2JSZXNwb25zZSgpO1xuICAgIHdoaWxlIChyZWFkZXIucG9zIDwgZW5kKSB7XG4gICAgICBjb25zdCB0YWcgPSByZWFkZXIudWludDMyKCk7XG4gICAgICBzd2l0Y2ggKHRhZyA+Pj4gMykge1xuICAgICAgfVxuICAgICAgaWYgKCh0YWcgJiA3KSA9PT0gNCB8fCB0YWcgPT09IDApIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICByZWFkZXIuc2tpcFR5cGUodGFnICYgNyk7XG4gICAgfVxuICAgIHJldHVybiBtZXNzYWdlO1xuICB9LFxuXG4gIGZyb21KU09OKF86IGFueSk6IFVwbG9hZEJsb2JSZXNwb25zZSB7XG4gICAgcmV0dXJuIHt9O1xuICB9LFxuXG4gIHRvSlNPTihfOiBVcGxvYWRCbG9iUmVzcG9uc2UpOiB1bmtub3duIHtcbiAgICBjb25zdCBvYmo6IGFueSA9IHt9O1xuICAgIHJldHVybiBvYmo7XG4gIH0sXG5cbiAgY3JlYXRlKGJhc2U/OiBEZWVwUGFydGlhbDxVcGxvYWRCbG9iUmVzcG9uc2U+KTogVXBsb2FkQmxvYlJlc3BvbnNlIHtcbiAgICByZXR1cm4gVXBsb2FkQmxvYlJlc3BvbnNlLmZyb21QYXJ0aWFsKGJhc2UgPz8ge30pO1xuICB9LFxuICBmcm9tUGFydGlhbChfOiBEZWVwUGFydGlhbDxVcGxvYWRCbG9iUmVzcG9uc2U+KTogVXBsb2FkQmxvYlJlc3BvbnNlIHtcbiAgICBjb25zdCBtZXNzYWdlID0gY3JlYXRlQmFzZVVwbG9hZEJsb2JSZXNwb25zZSgpO1xuICAgIHJldHVybiBtZXNzYWdlO1xuICB9LFxufTtcblxuZXhwb3J0IHR5cGUgQmxvYlNldFNlcnZpY2VEZWZpbml0aW9uID0gdHlwZW9mIEJsb2JTZXRTZXJ2aWNlRGVmaW5pdGlvbjtcbmV4cG9ydCBjb25zdCBCbG9iU2V0U2VydmljZURlZmluaXRpb24gPSB7XG4gIG5hbWU6IFwiQmxvYlNldFNlcnZpY2VcIixcbiAgZnVsbE5hbWU6IFwiY29tLmNvcmFsb2dpeC5ibG9ic2V0LnYyLkJsb2JTZXRTZXJ2aWNlXCIsXG4gIG1ldGhvZHM6IHtcbiAgICB1cGxvYWRCbG9iOiB7XG4gICAgICBuYW1lOiBcIlVwbG9hZEJsb2JcIixcbiAgICAgIHJlcXVlc3RUeXBlOiBVcGxvYWRCbG9iUmVxdWVzdCxcbiAgICAgIHJlcXVlc3RTdHJlYW06IHRydWUsXG4gICAgICByZXNwb25zZVR5cGU6IFVwbG9hZEJsb2JSZXNwb25zZSxcbiAgICAgIHJlc3BvbnNlU3RyZWFtOiBmYWxzZSxcbiAgICAgIG9wdGlvbnM6IHt9LFxuICAgIH0sXG4gIH0sXG59IGFzIGNvbnN0O1xuXG5mdW5jdGlvbiBieXRlc0Zyb21CYXNlNjQoYjY0OiBzdHJpbmcpOiBVaW50OEFycmF5IHtcbiAgaWYgKGdsb2JhbFRoaXMuQnVmZmVyKSB7XG4gICAgcmV0dXJuIFVpbnQ4QXJyYXkuZnJvbShnbG9iYWxUaGlzLkJ1ZmZlci5mcm9tKGI2NCwgXCJiYXNlNjRcIikpO1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IGJpbiA9IGdsb2JhbFRoaXMuYXRvYihiNjQpO1xuICAgIGNvbnN0IGFyciA9IG5ldyBVaW50OEFycmF5KGJpbi5sZW5ndGgpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYmluLmxlbmd0aDsgKytpKSB7XG4gICAgICBhcnJbaV0gPSBiaW4uY2hhckNvZGVBdChpKTtcbiAgICB9XG4gICAgcmV0dXJuIGFycjtcbiAgfVxufVxuXG5mdW5jdGlvbiBiYXNlNjRGcm9tQnl0ZXMoYXJyOiBVaW50OEFycmF5KTogc3RyaW5nIHtcbiAgaWYgKGdsb2JhbFRoaXMuQnVmZmVyKSB7XG4gICAgcmV0dXJuIGdsb2JhbFRoaXMuQnVmZmVyLmZyb20oYXJyKS50b1N0cmluZyhcImJhc2U2NFwiKTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBiaW46IHN0cmluZ1tdID0gW107XG4gICAgYXJyLmZvckVhY2goKGJ5dGUpID0+IHtcbiAgICAgIGJpbi5wdXNoKGdsb2JhbFRoaXMuU3RyaW5nLmZyb21DaGFyQ29kZShieXRlKSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIGdsb2JhbFRoaXMuYnRvYShiaW4uam9pbihcIlwiKSk7XG4gIH1cbn1cblxudHlwZSBCdWlsdGluID0gRGF0ZSB8IEZ1bmN0aW9uIHwgVWludDhBcnJheSB8IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cbmV4cG9ydCB0eXBlIERlZXBQYXJ0aWFsPFQ+ID0gVCBleHRlbmRzIEJ1aWx0aW4gPyBUXG4gIDogVCBleHRlbmRzIGdsb2JhbFRoaXMuQXJyYXk8aW5mZXIgVT4gPyBnbG9iYWxUaGlzLkFycmF5PERlZXBQYXJ0aWFsPFU+PlxuICA6IFQgZXh0ZW5kcyBSZWFkb25seUFycmF5PGluZmVyIFU+ID8gUmVhZG9ubHlBcnJheTxEZWVwUGFydGlhbDxVPj5cbiAgOiBUIGV4dGVuZHMgeyAkY2FzZTogc3RyaW5nIH0gPyB7IFtLIGluIGtleW9mIE9taXQ8VCwgXCIkY2FzZVwiPl0/OiBEZWVwUGFydGlhbDxUW0tdPiB9ICYgeyAkY2FzZTogVFtcIiRjYXNlXCJdIH1cbiAgOiBUIGV4dGVuZHMge30gPyB7IFtLIGluIGtleW9mIFRdPzogRGVlcFBhcnRpYWw8VFtLXT4gfVxuICA6IFBhcnRpYWw8VD47XG5cbmZ1bmN0aW9uIGlzU2V0KHZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgcmV0dXJuIHZhbHVlICE9PSBudWxsICYmIHZhbHVlICE9PSB1bmRlZmluZWQ7XG59XG4iXX0=
|
|
179
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvYnNldF9zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvdG8tbW9kZWxzL2NvbS9jb3JhbG9naXgvYmxvYnNldC92Mi9ibG9ic2V0X3NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHNEQUFzRDtBQUN0RCxZQUFZO0FBQ1osa0NBQWtDO0FBQ2xDLGlDQUFpQztBQUNqQyx5REFBeUQ7Ozs7OztBQUV6RCxvQkFBb0I7QUFDcEIsaUVBQXFDO0FBQ3JDLHVEQUFtRDtBQUNuRCwrQ0FBaUY7QUFFcEUsUUFBQSxlQUFlLEdBQUcsMEJBQTBCLENBQUM7QUFXMUQsU0FBUywyQkFBMkI7SUFDbEMsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxVQUFVLEVBQUUsQ0FBQyxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsQ0FBQztBQUMvRSxDQUFDO0FBRVksUUFBQSxpQkFBaUIsR0FBRztJQUMvQixNQUFNLENBQUMsT0FBMEIsRUFBRSxTQUFxQixpQkFBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7UUFDekUsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDN0IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3ZDO1FBQ0QsSUFBSSxPQUFPLENBQUMsVUFBVSxLQUFLLENBQUMsRUFBRTtZQUM1QixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDN0M7UUFDRCxJQUFJLE9BQU8sQ0FBQyxjQUFjLEtBQUssU0FBUyxFQUFFO1lBQ3hDLGdDQUFjLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxF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Q3pCLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNuQixHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDakQsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0tBQ3RDO0FBQ0gsQ0FBQztBQVdELFNBQVMsS0FBSyxDQUFDLEtBQVU7SUFDdkIsT0FBTyxLQUFLLEtBQUssSUFBSSxJQUFJLEtBQUssS0FBSyxTQUFTLENBQUM7QUFDL0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvZGUgZ2VuZXJhdGVkIGJ5IHByb3RvYy1nZW4tdHNfcHJvdG8uIERPIE5PVCBFRElULlxuLy8gdmVyc2lvbnM6XG4vLyAgIHByb3RvYy1nZW4tdHNfcHJvdG8gIHYxLjE4MS4xXG4vLyAgIHByb3RvYyAgICAgICAgICAgICAgIHYzLjE5LjFcbi8vIHNvdXJjZTogY29tL2NvcmFsb2dpeC9ibG9ic2V0L3YyL2Jsb2JzZXRfc2VydmljZS5wcm90b1xuXG4vKiBlc2xpbnQtZGlzYWJsZSAqL1xuaW1wb3J0IF9tMCBmcm9tIFwicHJvdG9idWZqcy9taW5pbWFsXCI7XG5pbXBvcnQgeyBFbnRpdHlNZXRhZGF0YSB9IGZyb20gXCIuL2VudGl0eV9tZXRhZGF0YVwiO1xuaW1wb3J0IHsgRW50aXR5VHlwZSwgZW50aXR5VHlwZUZyb21KU09OLCBlbnRpdHlUeXBlVG9KU09OIH0gZnJvbSBcIi4vZW50aXR5X3R5cGVcIjtcblxuZXhwb3J0IGNvbnN0IHByb3RvYnVmUGFja2FnZSA9IFwiY29tLmNvcmFsb2dpeC5ibG9ic2V0LnYyXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXBsb2FkQmxvYlJlcXVlc3Qge1xuICBkYXRhOiBVaW50OEFycmF5O1xuICBlbnRpdHlUeXBlOiBFbnRpdHlUeXBlO1xuICBlbnRpdHlNZXRhZGF0YTogRW50aXR5TWV0YWRhdGEgfCB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXBsb2FkQmxvYlJlc3BvbnNlIHtcbn1cblxuZnVuY3Rpb24gY3JlYXRlQmFzZVVwbG9hZEJsb2JSZXF1ZXN0KCk6IFVwbG9hZEJsb2JSZXF1ZXN0IHtcbiAgcmV0dXJuIHsgZGF0YTogbmV3IFVpbnQ4QXJyYXkoMCksIGVudGl0eVR5cGU6IDAsIGVudGl0eU1ldGFkYXRhOiB1bmRlZmluZWQgfTtcbn1cblxuZXhwb3J0IGNvbnN0IFVwbG9hZEJsb2JSZXF1ZXN0ID0ge1xuICBlbmNvZGUobWVzc2FnZTogVXBsb2FkQmxvYlJlcXVlc3QsIHdyaXRlcjogX20wLldyaXRlciA9IF9tMC5Xcml0ZXIuY3JlYXRlKCkpOiBfbTAuV3JpdGVyIHtcbiAgICBpZiAobWVzc2FnZS5kYXRhLmxlbmd0aCAhPT0gMCkge1xuICAgICAgd3JpdGVyLnVpbnQzMigxMCkuYnl0ZXMobWVzc2FnZS5kYXRhKTtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2UuZW50aXR5VHlwZSAhPT0gMCkge1xuICAgICAgd3JpdGVyLnVpbnQzMigxNikuaW50MzIobWVzc2FnZS5lbnRpdHlUeXBlKTtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2UuZW50aXR5TWV0YWRhdGEgIT09IHVuZGVmaW5lZCkge1xuICAgICAgRW50aXR5TWV0YWRhdGEuZW5jb2RlKG1lc3NhZ2UuZW50aXR5TWV0YWRhdGEsIHdyaXRlci51aW50MzIoMjYpLmZvcmsoKSkubGRlbGltKCk7XG4gICAgfVxuICAgIHJldHVybiB3cml0ZXI7XG4gIH0sXG5cbiAgZGVjb2RlKGlucHV0OiBfbTAuUmVhZGVyIHwgVWludDhBcnJheSwgbGVuZ3RoPzogbnVtYmVyKTogVXBsb2FkQmxvYlJlcXVlc3Qge1xuICAgIGNvbnN0IHJlYWRlciA9IGlucHV0IGluc3RhbmNlb2YgX20wLlJlYWRlciA/IGlucHV0IDogX20wLlJlYWRlci5jcmVhdGUoaW5wdXQpO1xuICAgIGxldCBlbmQgPSBsZW5ndGggPT09IHVuZGVmaW5lZCA/IHJlYWRlci5sZW4gOiByZWFkZXIucG9zICsgbGVuZ3RoO1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBjcmVhdGVCYXNlVXBsb2FkQmxvYlJlcXVlc3QoKTtcbiAgICB3aGlsZSAocmVhZGVyLnBvcyA8IGVuZCkge1xuICAgICAgY29uc3QgdGFnID0gcmVhZGVyLnVpbnQzMigpO1xuICAgICAgc3dpdGNoICh0YWcgPj4+IDMpIHtcbiAgICAgICAgY2FzZSAxOlxuICAgICAgICAgIGlmICh0YWcgIT09IDEwKSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBtZXNzYWdlLmRhdGEgPSByZWFkZXIuYnl0ZXMoKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgY2FzZSAyOlxuICAgICAgICAgIGlmICh0YWcgIT09IDE2KSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBtZXNzYWdlLmVudGl0eVR5cGUgPSByZWFkZXIuaW50MzIoKSBhcyBhbnk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIGNhc2UgMzpcbiAgICAgICAgICBpZiAodGFnICE9PSAyNikge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbWVzc2FnZS5lbnRpdHlNZXRhZGF0YSA9IEVudGl0eU1ldGFkYXRhLmRlY29kZShyZWFkZXIsIHJlYWRlci51aW50MzIoKSk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBpZiAoKHRhZyAmIDcpID09PSA0IHx8IHRhZyA9PT0gMCkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIHJlYWRlci5za2lwVHlwZSh0YWcgJiA3KTtcbiAgICB9XG4gICAgcmV0dXJuIG1lc3NhZ2U7XG4gIH0sXG5cbiAgZnJvbUpTT04ob2JqZWN0OiBhbnkpOiBVcGxvYWRCbG9iUmVxdWVzdCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGRhdGE6IGlzU2V0KG9iamVjdC5kYXRhKSA/IGJ5dGVzRnJvbUJhc2U2NChvYmplY3QuZGF0YSkgOiBuZXcgVWludDhBcnJheSgwKSxcbiAgICAgIGVudGl0eVR5cGU6IGlzU2V0KG9iamVjdC5lbnRpdHlUeXBlKSA/IGVudGl0eVR5cGVGcm9tSlNPTihvYmplY3QuZW50aXR5VHlwZSkgOiAwLFxuICAgICAgZW50aXR5TWV0YWRhdGE6IGlzU2V0KG9iamVjdC5lbnRpdHlNZXRhZGF0YSkgPyBFbnRpdHlNZXRhZGF0YS5mcm9tSlNPTihvYmplY3QuZW50aXR5TWV0YWRhdGEpIDogdW5kZWZpbmVkLFxuICAgIH07XG4gIH0sXG5cbiAgdG9KU09OKG1lc3NhZ2U6IFVwbG9hZEJsb2JSZXF1ZXN0KTogdW5rbm93biB7XG4gICAgY29uc3Qgb2JqOiBhbnkgPSB7fTtcbiAgICBpZiAobWVzc2FnZS5kYXRhLmxlbmd0aCAhPT0gMCkge1xuICAgICAgb2JqLmRhdGEgPSBiYXNlNjRGcm9tQnl0ZXMobWVzc2FnZS5kYXRhKTtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2UuZW50aXR5VHlwZSAhPT0gMCkge1xuICAgICAgb2JqLmVudGl0eVR5cGUgPSBlbnRpdHlUeXBlVG9KU09OKG1lc3NhZ2UuZW50aXR5VHlwZSk7XG4gICAgfVxuICAgIGlmIChtZXNzYWdlLmVudGl0eU1ldGFkYXRhICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIG9iai5lbnRpdHlNZXRhZGF0YSA9IEVudGl0eU1ldGFkYXRhLnRvSlNPTihtZXNzYWdlLmVudGl0eU1ldGFkYXRhKTtcbiAgICB9XG4gICAgcmV0dXJuIG9iajtcbiAgfSxcblxuICBjcmVhdGUoYmFzZT86IERlZXBQYXJ0aWFsPFVwbG9hZEJsb2JSZXF1ZXN0Pik6IFVwbG9hZEJsb2JSZXF1ZXN0IHtcbiAgICByZXR1cm4gVXBsb2FkQmxvYlJlcXVlc3QuZnJvbVBhcnRpYWwoYmFzZSA/PyB7fSk7XG4gIH0sXG4gIGZyb21QYXJ0aWFsKG9iamVjdDogRGVlcFBhcnRpYWw8VXBsb2FkQmxvYlJlcXVlc3Q+KTogVXBsb2FkQmxvYlJlcXVlc3Qge1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBjcmVhdGVCYXNlVXBsb2FkQmxvYlJlcXVlc3QoKTtcbiAgICBtZXNzYWdlLmRhdGEgPSBvYmplY3QuZGF0YSA/PyBuZXcgVWludDhBcnJheSgwKTtcbiAgICBtZXNzYWdlLmVudGl0eVR5cGUgPSBvYmplY3QuZW50aXR5VHlwZSA/PyAwO1xuICAgIG1lc3NhZ2UuZW50aXR5TWV0YWRhdGEgPSAob2JqZWN0LmVudGl0eU1ldGFkYXRhICE9PSB1bmRlZmluZWQgJiYgb2JqZWN0LmVudGl0eU1ldGFkYXRhICE9PSBudWxsKVxuICAgICAgPyBFbnRpdHlNZXRhZGF0YS5mcm9tUGFydGlhbChvYmplY3QuZW50aXR5TWV0YWRhdGEpXG4gICAgICA6IHVuZGVmaW5lZDtcbiAgICByZXR1cm4gbWVzc2FnZTtcbiAgfSxcbn07XG5cbmZ1bmN0aW9uIGNyZWF0ZUJhc2VVcGxvYWRCbG9iUmVzcG9uc2UoKTogVXBsb2FkQmxvYlJlc3BvbnNlIHtcbiAgcmV0dXJuIHt9O1xufVxuXG5leHBvcnQgY29uc3QgVXBsb2FkQmxvYlJlc3BvbnNlID0ge1xuICBlbmNvZGUoXzogVXBsb2FkQmxvYlJlc3BvbnNlLCB3cml0ZXI6IF9tMC5Xcml0ZXIgPSBfbTAuV3JpdGVyLmNyZWF0ZSgpKTogX20wLldyaXRlciB7XG4gICAgcmV0dXJuIHdyaXRlcjtcbiAgfSxcblxuICBkZWNvZGUoaW5wdXQ6IF9tMC5SZWFkZXIgfCBVaW50OEFycmF5LCBsZW5ndGg/OiBudW1iZXIpOiBVcGxvYWRCbG9iUmVzcG9uc2Uge1xuICAgIGNvbnN0IHJlYWRlciA9IGlucHV0IGluc3RhbmNlb2YgX20wLlJlYWRlciA/IGlucHV0IDogX20wLlJlYWRlci5jcmVhdGUoaW5wdXQpO1xuICAgIGxldCBlbmQgPSBsZW5ndGggPT09IHVuZGVmaW5lZCA/IHJlYWRlci5sZW4gOiByZWFkZXIucG9zICsgbGVuZ3RoO1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBjcmVhdGVCYXNlVXBsb2FkQmxvYlJlc3BvbnNlKCk7XG4gICAgd2hpbGUgKHJlYWRlci5wb3MgPCBlbmQpIHtcbiAgICAgIGNvbnN0IHRhZyA9IHJlYWRlci51aW50MzIoKTtcbiAgICAgIHN3aXRjaCAodGFnID4+PiAzKSB7XG4gICAgICB9XG4gICAgICBpZiAoKHRhZyAmIDcpID09PSA0IHx8IHRhZyA9PT0gMCkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIHJlYWRlci5za2lwVHlwZSh0YWcgJiA3KTtcbiAgICB9XG4gICAgcmV0dXJuIG1lc3NhZ2U7XG4gIH0sXG5cbiAgZnJvbUpTT04oXzogYW55KTogVXBsb2FkQmxvYlJlc3BvbnNlIHtcbiAgICByZXR1cm4ge307XG4gIH0sXG5cbiAgdG9KU09OKF86IFVwbG9hZEJsb2JSZXNwb25zZSk6IHVua25vd24ge1xuICAgIGNvbnN0IG9iajogYW55ID0ge307XG4gICAgcmV0dXJuIG9iajtcbiAgfSxcblxuICBjcmVhdGUoYmFzZT86IERlZXBQYXJ0aWFsPFVwbG9hZEJsb2JSZXNwb25zZT4pOiBVcGxvYWRCbG9iUmVzcG9uc2Uge1xuICAgIHJldHVybiBVcGxvYWRCbG9iUmVzcG9uc2UuZnJvbVBhcnRpYWwoYmFzZSA/PyB7fSk7XG4gIH0sXG4gIGZyb21QYXJ0aWFsKF86IERlZXBQYXJ0aWFsPFVwbG9hZEJsb2JSZXNwb25zZT4pOiBVcGxvYWRCbG9iUmVzcG9uc2Uge1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBjcmVhdGVCYXNlVXBsb2FkQmxvYlJlc3BvbnNlKCk7XG4gICAgcmV0dXJuIG1lc3NhZ2U7XG4gIH0sXG59O1xuXG5leHBvcnQgdHlwZSBCbG9iU2V0U2VydmljZURlZmluaXRpb24gPSB0eXBlb2YgQmxvYlNldFNlcnZpY2VEZWZpbml0aW9uO1xuZXhwb3J0IGNvbnN0IEJsb2JTZXRTZXJ2aWNlRGVmaW5pdGlvbiA9IHtcbiAgbmFtZTogXCJCbG9iU2V0U2VydmljZVwiLFxuICBmdWxsTmFtZTogXCJjb20uY29yYWxvZ2l4LmJsb2JzZXQudjIuQmxvYlNldFNlcnZpY2VcIixcbiAgbWV0aG9kczoge1xuICAgIHVwbG9hZEJsb2I6IHtcbiAgICAgIG5hbWU6IFwiVXBsb2FkQmxvYlwiLFxuICAgICAgcmVxdWVzdFR5cGU6IFVwbG9hZEJsb2JSZXF1ZXN0LFxuICAgICAgcmVxdWVzdFN0cmVhbTogdHJ1ZSxcbiAgICAgIHJlc3BvbnNlVHlwZTogVXBsb2FkQmxvYlJlc3BvbnNlLFxuICAgICAgcmVzcG9uc2VTdHJlYW06IGZhbHNlLFxuICAgICAgb3B0aW9uczoge30sXG4gICAgfSxcbiAgfSxcbn0gYXMgY29uc3Q7XG5cbmZ1bmN0aW9uIGJ5dGVzRnJvbUJhc2U2NChiNjQ6IHN0cmluZyk6IFVpbnQ4QXJyYXkge1xuICBpZiAoKGdsb2JhbFRoaXMgYXMgYW55KS5CdWZmZXIpIHtcbiAgICByZXR1cm4gVWludDhBcnJheS5mcm9tKGdsb2JhbFRoaXMuQnVmZmVyLmZyb20oYjY0LCBcImJhc2U2NFwiKSk7XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgYmluID0gZ2xvYmFsVGhpcy5hdG9iKGI2NCk7XG4gICAgY29uc3QgYXJyID0gbmV3IFVpbnQ4QXJyYXkoYmluLmxlbmd0aCk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBiaW4ubGVuZ3RoOyArK2kpIHtcbiAgICAgIGFycltpXSA9IGJpbi5jaGFyQ29kZUF0KGkpO1xuICAgIH1cbiAgICByZXR1cm4gYXJyO1xuICB9XG59XG5cbmZ1bmN0aW9uIGJhc2U2NEZyb21CeXRlcyhhcnI6IFVpbnQ4QXJyYXkpOiBzdHJpbmcge1xuICBpZiAoKGdsb2JhbFRoaXMgYXMgYW55KS5CdWZmZXIpIHtcbiAgICByZXR1cm4gZ2xvYmFsVGhpcy5CdWZmZXIuZnJvbShhcnIpLnRvU3RyaW5nKFwiYmFzZTY0XCIpO1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IGJpbjogc3RyaW5nW10gPSBbXTtcbiAgICBhcnIuZm9yRWFjaCgoYnl0ZSkgPT4ge1xuICAgICAgYmluLnB1c2goZ2xvYmFsVGhpcy5TdHJpbmcuZnJvbUNoYXJDb2RlKGJ5dGUpKTtcbiAgICB9KTtcbiAgICByZXR1cm4gZ2xvYmFsVGhpcy5idG9hKGJpbi5qb2luKFwiXCIpKTtcbiAgfVxufVxuXG50eXBlIEJ1aWx0aW4gPSBEYXRlIHwgRnVuY3Rpb24gfCBVaW50OEFycmF5IHwgc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IHVuZGVmaW5lZDtcblxuZXhwb3J0IHR5cGUgRGVlcFBhcnRpYWw8VD4gPSBUIGV4dGVuZHMgQnVpbHRpbiA/IFRcbiAgOiBUIGV4dGVuZHMgZ2xvYmFsVGhpcy5BcnJheTxpbmZlciBVPiA/IGdsb2JhbFRoaXMuQXJyYXk8RGVlcFBhcnRpYWw8VT4+XG4gIDogVCBleHRlbmRzIFJlYWRvbmx5QXJyYXk8aW5mZXIgVT4gPyBSZWFkb25seUFycmF5PERlZXBQYXJ0aWFsPFU+PlxuICA6IFQgZXh0ZW5kcyB7ICRjYXNlOiBzdHJpbmcgfSA/IHsgW0sgaW4ga2V5b2YgT21pdDxULCBcIiRjYXNlXCI+XT86IERlZXBQYXJ0aWFsPFRbS10+IH0gJiB7ICRjYXNlOiBUW1wiJGNhc2VcIl0gfVxuICA6IFQgZXh0ZW5kcyB7fSA/IHsgW0sgaW4ga2V5b2YgVF0/OiBEZWVwUGFydGlhbDxUW0tdPiB9XG4gIDogUGFydGlhbDxUPjtcblxuZnVuY3Rpb24gaXNTZXQodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xuICByZXR1cm4gdmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09IHVuZGVmaW5lZDtcbn1cbiJdfQ==
|