@coralogix/rum-cli 1.1.21 → 1.1.24
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 +32 -9
- package/api/client/client-factory.ts +26 -0
- package/api/client/request-builder.ts +122 -0
- package/api/dsym.api.ts +61 -0
- package/api/react-native.api.ts +67 -0
- package/api/{rum-api.ts → source-maps.api.ts} +15 -23
- package/cli/commands/dsym/index.ts +5 -0
- package/cli/commands/dsym/upload-dsym-command.ts +36 -0
- package/cli/commands/react-native/index.ts +5 -0
- package/cli/commands/react-native/upload-react-native-source-maps-command.ts +42 -0
- package/cli/commands/{delete-source-maps-command.ts → source-maps/delete-source-maps-command.ts} +8 -10
- package/cli/commands/source-maps/index.ts +7 -0
- package/cli/commands/{update-source-maps-command.ts → source-maps/update-source-maps-command.ts} +8 -10
- package/cli/commands/{upload-source-maps-command.ts → source-maps/upload-source-maps-command.ts} +8 -10
- package/cli/rum-cli.ts +17 -7
- package/config/config.ts +10 -4
- package/consts/consts.ts +2 -0
- package/dist/api/client/client-factory.d.ts +355 -0
- package/dist/api/client/client-factory.js +31 -0
- package/dist/api/client/request-builder.d.ts +33 -0
- package/dist/api/client/request-builder.js +58 -0
- package/dist/api/dsym.api.d.ts +4 -0
- package/dist/api/dsym.api.js +50 -0
- package/dist/api/react-native.api.d.ts +4 -0
- package/dist/api/react-native.api.js +50 -0
- package/dist/api/{rum-api.d.ts → source-maps.api.d.ts} +2 -2
- package/dist/api/source-maps.api.js +97 -0
- package/dist/cli/commands/dsym/index.d.ts +4 -0
- package/dist/cli/commands/dsym/index.js +6 -0
- package/dist/cli/commands/dsym/upload-dsym-command.d.ts +2 -0
- package/dist/cli/commands/dsym/upload-dsym-command.js +45 -0
- package/dist/cli/commands/react-native/index.d.ts +4 -0
- package/dist/cli/commands/react-native/index.js +6 -0
- package/dist/cli/commands/react-native/upload-react-native-source-maps-command.d.ts +2 -0
- package/dist/cli/commands/react-native/upload-react-native-source-maps-command.js +51 -0
- package/dist/cli/commands/source-maps/delete-source-maps-command.d.ts +2 -0
- package/dist/cli/commands/source-maps/delete-source-maps-command.js +41 -0
- package/dist/cli/commands/source-maps/index.d.ts +6 -0
- package/dist/cli/commands/source-maps/index.js +8 -0
- package/dist/cli/commands/source-maps/update-source-maps-command.d.ts +2 -0
- package/dist/cli/commands/source-maps/update-source-maps-command.js +46 -0
- package/dist/cli/commands/source-maps/upload-source-maps-command.d.ts +2 -0
- package/dist/cli/commands/source-maps/upload-source-maps-command.js +45 -0
- package/dist/cli/rum-cli.js +14 -8
- package/dist/config/config.d.ts +5 -2
- package/dist/config/config.js +6 -3
- package/dist/consts/consts.d.ts +1 -0
- package/dist/consts/consts.js +3 -2
- package/dist/models/dsym-commands.model.d.ts +11 -0
- package/dist/models/dsym-commands.model.js +3 -0
- package/dist/models/react-native-commands.model.d.ts +11 -0
- package/dist/models/react-native-commands.model.js +3 -0
- package/dist/models/{commands.model.d.ts → source-maps-commands.model.d.ts} +3 -3
- package/dist/models/source-maps-commands.model.js +3 -0
- package/dist/proto-models/com/coralogix/blobset/v2/audit_log.d.ts +24 -0
- package/dist/proto-models/com/coralogix/blobset/v2/audit_log.js +64 -0
- package/dist/proto-models/com/coralogix/blobset/v2/blobset_query_service.d.ts +111 -0
- package/dist/proto-models/com/coralogix/blobset/v2/blobset_query_service.js +31 -0
- package/dist/proto-models/com/coralogix/blobset/v2/blobset_service.d.ts +67 -0
- package/dist/proto-models/com/coralogix/blobset/v2/blobset_service.js +174 -0
- package/dist/proto-models/com/coralogix/blobset/v2/dsym.d.ts +58 -0
- package/dist/proto-models/com/coralogix/blobset/v2/dsym.js +331 -0
- package/dist/proto-models/com/coralogix/blobset/v2/entity_metadata.d.ts +78 -0
- package/dist/proto-models/com/coralogix/blobset/v2/entity_metadata.js +459 -0
- package/dist/proto-models/com/coralogix/blobset/v2/entity_type.d.ts +9 -0
- package/dist/proto-models/com/coralogix/blobset/v2/entity_type.js +47 -0
- package/dist/proto-models/com/coralogix/blobset/v2/react_native.d.ts +54 -0
- package/dist/proto-models/com/coralogix/blobset/v2/react_native.js +313 -0
- package/dist/proto-models/com/coralogix/blobset/v2/s3_metadata.d.ts +30 -0
- package/dist/proto-models/com/coralogix/blobset/v2/s3_metadata.js +126 -0
- package/dist/proto-models/com/coralogix/rum/v2/analytics.d.ts +1 -1
- package/dist/proto-models/com/coralogix/rum/v2/analytics.js +115 -102
- 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/hide_errors.d.ts +44 -0
- package/dist/proto-models/com/coralogix/rum/v2/hide_errors.js +195 -0
- package/dist/proto-models/com/coralogix/rum/v2/release_entity_metadata.d.ts +78 -0
- package/dist/proto-models/com/coralogix/rum/v2/release_entity_metadata.js +459 -0
- package/dist/proto-models/com/coralogix/rum/v2/release_entity_type.d.ts +9 -0
- package/dist/proto-models/com/coralogix/rum/v2/release_entity_type.js +47 -0
- package/dist/proto-models/com/coralogix/rum/v2/rum_hide_errors_service.d.ts +198 -0
- package/dist/proto-models/com/coralogix/rum/v2/rum_hide_errors_service.js +517 -0
- package/dist/proto-models/com/coralogix/rum/v2/rum_react_native_source_map_service.d.ts +69 -0
- package/dist/proto-models/com/coralogix/rum/v2/rum_react_native_source_map_service.js +189 -0
- package/dist/proto-models/com/coralogix/rum/v2/rum_saved_filters_service.d.ts +480 -0
- package/dist/proto-models/com/coralogix/rum/v2/rum_saved_filters_service.js +1420 -0
- package/dist/proto-models/com/coralogix/rum/v2/rum_sdk_versions.d.ts +41 -0
- package/dist/proto-models/com/coralogix/rum/v2/rum_sdk_versions.js +217 -0
- package/dist/proto-models/com/coralogix/rum/v2/rum_service.d.ts +143 -3
- package/dist/proto-models/com/coralogix/rum/v2/rum_service.js +595 -127
- package/dist/proto-models/com/coralogix/rum/v2/rum_session_recording_service.d.ts +1 -59
- package/dist/proto-models/com/coralogix/rum/v2/rum_session_recording_service.js +4 -175
- package/dist/proto-models/com/coralogix/rum/v2/rum_settings.d.ts +45 -0
- package/dist/proto-models/com/coralogix/rum/v2/rum_settings.js +193 -0
- package/dist/proto-models/com/coralogix/rum/v2/rum_settings_service.d.ts +107 -0
- package/dist/proto-models/com/coralogix/rum/v2/rum_settings_service.js +214 -0
- package/dist/proto-models/com/coralogix/rum/v2/rum_snooze_errors_service.d.ts +261 -0
- package/dist/proto-models/com/coralogix/rum/v2/rum_snooze_errors_service.js +698 -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 +325 -42
- package/dist/proto-models/com/coralogix/rum/v2/saved_filter.d.ts +55 -0
- package/dist/proto-models/com/coralogix/rum/v2/saved_filter.js +267 -0
- package/dist/proto-models/com/coralogix/rum/v2/snooze_errors.d.ts +109 -0
- package/dist/proto-models/com/coralogix/rum/v2/snooze_errors.js +580 -0
- 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 +1 -1
- package/dist/proto-models/com/coralogix/rum/v2/source_map_release.js +43 -38
- package/dist/proto-models/com/coralogix/rum/v2/template.d.ts +14 -1
- package/dist/proto-models/com/coralogix/rum/v2/template.js +148 -54
- package/dist/proto-models/google/protobuf/descriptor.d.ts +1 -1
- package/dist/proto-models/google/protobuf/descriptor.js +537 -427
- package/dist/services/dsym.service.d.ts +3 -0
- package/dist/services/dsym.service.js +36 -0
- package/dist/services/react-native.service.d.ts +3 -0
- package/dist/services/react-native.service.js +37 -0
- package/dist/services/source-maps.service.js +12 -14
- package/dist/utils/file-processor.utils.d.ts +12 -0
- package/dist/utils/file-processor.utils.js +196 -0
- package/dist/utils/shared.utils.d.ts +9 -0
- package/dist/utils/shared.utils.js +62 -0
- package/models/dsym-commands.model.ts +11 -0
- package/models/react-native-commands.model.ts +11 -0
- package/models/{commands.model.ts → source-maps-commands.model.ts} +3 -3
- package/package.json +4 -3
- package/proto-models/com/coralogix/blobset/v2/audit_log.ts +78 -0
- package/proto-models/com/coralogix/blobset/v2/blobset_query_service.ts +30 -0
- package/proto-models/com/coralogix/blobset/v2/blobset_service.ts +203 -0
- package/proto-models/com/coralogix/blobset/v2/dsym.ts +394 -0
- package/proto-models/com/coralogix/blobset/v2/entity_metadata.ts +537 -0
- package/proto-models/com/coralogix/blobset/v2/entity_type.ts +44 -0
- package/proto-models/com/coralogix/blobset/v2/react_native.ts +361 -0
- package/proto-models/com/coralogix/blobset/v2/s3_metadata.ts +148 -0
- package/proto-models/com/coralogix/rum/v2/analytics.ts +113 -108
- 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/hide_errors.ts +225 -0
- package/proto-models/com/coralogix/rum/v2/release_entity_metadata.ts +537 -0
- package/proto-models/com/coralogix/rum/v2/release_entity_type.ts +44 -0
- package/proto-models/com/coralogix/rum/v2/rum_hide_errors_service.ts +599 -0
- package/proto-models/com/coralogix/rum/v2/rum_react_native_source_map_service.ts +223 -0
- package/proto-models/com/coralogix/rum/v2/rum_saved_filters_service.ts +1673 -0
- package/proto-models/com/coralogix/rum/v2/rum_sdk_versions.ts +254 -0
- package/proto-models/com/coralogix/rum/v2/rum_service.ts +672 -146
- package/proto-models/com/coralogix/rum/v2/rum_session_recording_service.ts +1 -208
- package/proto-models/com/coralogix/rum/v2/rum_settings.ts +209 -0
- package/proto-models/com/coralogix/rum/v2/rum_settings_service.ts +260 -0
- package/proto-models/com/coralogix/rum/v2/rum_snooze_errors_service.ts +818 -0
- package/proto-models/com/coralogix/rum/v2/rum_source_map_service.ts +369 -46
- package/proto-models/com/coralogix/rum/v2/saved_filter.ts +301 -0
- package/proto-models/com/coralogix/rum/v2/snooze_errors.ts +656 -0
- 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 +44 -44
- package/proto-models/com/coralogix/rum/v2/template.ts +161 -59
- package/proto-models/google/protobuf/descriptor.ts +551 -464
- package/protofetch.lock +21 -2
- package/protofetch.toml +6 -1
- package/protos/com/coralogix/blobset/v2/audit_log.proto +13 -0
- package/protos/com/coralogix/blobset/v2/blobset_query_service.proto +12 -0
- package/protos/com/coralogix/blobset/v2/blobset_service.proto +18 -0
- package/protos/com/coralogix/blobset/v2/dsym.proto +19 -0
- package/protos/com/coralogix/blobset/v2/entity_metadata.proto +36 -0
- package/protos/com/coralogix/blobset/v2/entity_type.proto +10 -0
- package/protos/com/coralogix/blobset/v2/react_native.proto +23 -0
- package/protos/com/coralogix/blobset/v2/s3_metadata.proto +14 -0
- package/protos/com/coralogix/rum/v2/hide_errors.proto +19 -0
- package/protos/com/coralogix/rum/v2/release_entity_metadata.proto +35 -0
- package/protos/com/coralogix/rum/v2/release_entity_type.proto +10 -0
- package/protos/com/coralogix/rum/v2/rum_hide_errors_service.proto +42 -0
- package/protos/com/coralogix/rum/v2/rum_react_native_source_map_service.proto +19 -0
- package/protos/com/coralogix/rum/v2/rum_saved_filters_service.proto +117 -0
- package/protos/com/coralogix/rum/v2/rum_sdk_versions.proto +16 -0
- package/protos/com/coralogix/rum/v2/rum_service.proto +36 -0
- package/protos/com/coralogix/rum/v2/rum_session_recording_service.proto +1 -12
- package/protos/com/coralogix/rum/v2/rum_settings.proto +26 -0
- package/protos/com/coralogix/rum/v2/rum_settings_service.proto +21 -0
- package/protos/com/coralogix/rum/v2/rum_snooze_errors_service.proto +64 -0
- package/protos/com/coralogix/rum/v2/rum_source_map_service.proto +20 -1
- package/protos/com/coralogix/rum/v2/saved_filter.proto +28 -0
- package/protos/com/coralogix/rum/v2/snooze_errors.proto +55 -0
- package/protos/com/coralogix/rum/v2/template.proto +6 -0
- package/protoset.bin +0 -0
- package/services/dsym.service.ts +33 -0
- package/services/react-native.service.ts +34 -0
- package/services/source-maps.service.ts +12 -14
- package/utils/file-processor.utils.ts +176 -0
- package/utils/shared.utils.ts +52 -0
- package/cli/commands/index.ts +0 -7
- package/dist/api/rum-api.js +0 -104
- package/dist/cli/commands/delete-source-maps-command.d.ts +0 -2
- package/dist/cli/commands/delete-source-maps-command.js +0 -43
- package/dist/cli/commands/index.d.ts +0 -6
- package/dist/cli/commands/index.js +0 -8
- package/dist/cli/commands/update-source-maps-command.d.ts +0 -2
- package/dist/cli/commands/update-source-maps-command.js +0 -48
- package/dist/cli/commands/upload-source-maps-command.d.ts +0 -2
- package/dist/cli/commands/upload-source-maps-command.js +0 -47
- package/dist/models/commands.model.js +0 -3
- package/dist/utils/index.d.ts +0 -6
- package/dist/utils/index.js +0 -115
- package/utils/index.ts +0 -93
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.DsymService = void 0;
|
|
13
|
+
const consts_1 = require("../consts/consts");
|
|
14
|
+
const shared_utils_1 = require("../utils/shared.utils");
|
|
15
|
+
const blobset_service_1 = require("../proto-models/com/coralogix/blobset/v2/blobset_service");
|
|
16
|
+
const dsym_api_1 = require("../api/dsym.api");
|
|
17
|
+
const file_processor_utils_1 = require("../utils/file-processor.utils");
|
|
18
|
+
class DsymService {
|
|
19
|
+
static upload(application, version, repoName, commitHash, orgName, folderPath, env, privateKey) {
|
|
20
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
21
|
+
const request = blobset_service_1.UploadBlobRequest.create();
|
|
22
|
+
console.log(consts_1.GRAY_COLOR, '🚀 Uploading Dsym...');
|
|
23
|
+
try {
|
|
24
|
+
yield file_processor_utils_1.FileProcessor.traverseDsymFolder(folderPath, request);
|
|
25
|
+
yield dsym_api_1.DsymApi.uploadDsym(request, application, version, repoName, commitHash, orgName, env, privateKey);
|
|
26
|
+
console.log(consts_1.GREEN_COLOR, '✅ Dsym uploaded successfully!');
|
|
27
|
+
console.log(consts_1.GREEN_COLOR, '✅ Processing complete.');
|
|
28
|
+
}
|
|
29
|
+
catch (error) {
|
|
30
|
+
(0, shared_utils_1.consoleError)(error);
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
exports.DsymService = DsymService;
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHN5bS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc2VydmljZXMvZHN5bS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLDZDQUEyRDtBQUMzRCx3REFBcUQ7QUFDckQsOEZBQTZGO0FBQzdGLDhDQUEwQztBQUMxQyx3RUFBOEQ7QUFFOUQsTUFBYSxXQUFXO0lBQ3RCLE1BQU0sQ0FBTyxNQUFNLENBQ2pCLFdBQW1CLEVBQ25CLE9BQWUsRUFDZixRQUE0QixFQUM1QixVQUE4QixFQUM5QixPQUEyQixFQUMzQixVQUFrQixFQUNsQixHQUFXLEVBQ1gsVUFBa0I7O1lBRWxCLE1BQU0sT0FBTyxHQUFHLG1DQUFpQixDQUFDLE1BQU0sRUFBRSxDQUFDO1lBRTNDLE9BQU8sQ0FBQyxHQUFHLENBQUMsbUJBQVUsRUFBRSxzQkFBc0IsQ0FBQyxDQUFDO1lBRWhELElBQUk7Z0JBQ0YsTUFBTSxvQ0FBYSxDQUFDLGtCQUFrQixDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQztnQkFFNUQsTUFBTSxrQkFBTyxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBRXhHLE9BQU8sQ0FBQyxHQUFHLENBQUMsb0JBQVcsRUFBRSwrQkFBK0IsQ0FBQyxDQUFDO2dCQUMxRCxPQUFPLENBQUMsR0FBRyxDQUFDLG9CQUFXLEVBQUUsd0JBQXdCLENBQUMsQ0FBQzthQUNwRDtZQUFDLE9BQU8sS0FBSyxFQUFFO2dCQUNkLElBQUEsMkJBQVksRUFBQyxLQUFLLENBQUMsQ0FBQzthQUNyQjtRQUNILENBQUM7S0FBQTtDQUNGO0FBMUJELGtDQTBCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEdSQVlfQ09MT1IsIEdSRUVOX0NPTE9SIH0gZnJvbSAnLi4vY29uc3RzL2NvbnN0cyc7XG5pbXBvcnQgeyBjb25zb2xlRXJyb3IgfSBmcm9tICcuLi91dGlscy9zaGFyZWQudXRpbHMnO1xuaW1wb3J0IHsgVXBsb2FkQmxvYlJlcXVlc3QgfSBmcm9tICcuLi9wcm90by1tb2RlbHMvY29tL2NvcmFsb2dpeC9ibG9ic2V0L3YyL2Jsb2JzZXRfc2VydmljZSc7XG5pbXBvcnQgeyBEc3ltQXBpIH0gZnJvbSAnLi4vYXBpL2RzeW0uYXBpJztcbmltcG9ydCB7IEZpbGVQcm9jZXNzb3IgfSBmcm9tICcuLi91dGlscy9maWxlLXByb2Nlc3Nvci51dGlscyc7XG5cbmV4cG9ydCBjbGFzcyBEc3ltU2VydmljZSB7XG4gIHN0YXRpYyBhc3luYyB1cGxvYWQoXG4gICAgYXBwbGljYXRpb246IHN0cmluZyxcbiAgICB2ZXJzaW9uOiBzdHJpbmcsXG4gICAgcmVwb05hbWU6IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgICBjb21taXRIYXNoOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gICAgb3JnTmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICAgIGZvbGRlclBhdGg6IHN0cmluZyxcbiAgICBlbnY6IHN0cmluZyxcbiAgICBwcml2YXRlS2V5OiBzdHJpbmcsXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHJlcXVlc3QgPSBVcGxvYWRCbG9iUmVxdWVzdC5jcmVhdGUoKTtcblxuICAgIGNvbnNvbGUubG9nKEdSQVlfQ09MT1IsICfwn5qAIFVwbG9hZGluZyBEc3ltLi4uJyk7XG5cbiAgICB0cnkge1xuICAgICAgYXdhaXQgRmlsZVByb2Nlc3Nvci50cmF2ZXJzZURzeW1Gb2xkZXIoZm9sZGVyUGF0aCwgcmVxdWVzdCk7XG5cbiAgICAgIGF3YWl0IERzeW1BcGkudXBsb2FkRHN5bShyZXF1ZXN0LCBhcHBsaWNhdGlvbiwgdmVyc2lvbiwgcmVwb05hbWUsIGNvbW1pdEhhc2gsIG9yZ05hbWUsIGVudiwgcHJpdmF0ZUtleSk7XG5cbiAgICAgIGNvbnNvbGUubG9nKEdSRUVOX0NPTE9SLCAn4pyFIERzeW0gdXBsb2FkZWQgc3VjY2Vzc2Z1bGx5IScpO1xuICAgICAgY29uc29sZS5sb2coR1JFRU5fQ09MT1IsICfinIUgUHJvY2Vzc2luZyBjb21wbGV0ZS4nKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZUVycm9yKGVycm9yKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.ReactNativeService = void 0;
|
|
13
|
+
const consts_1 = require("../consts/consts");
|
|
14
|
+
const shared_utils_1 = require("../utils/shared.utils");
|
|
15
|
+
const react_native_api_1 = require("../api/react-native.api");
|
|
16
|
+
const blobset_service_1 = require("../proto-models/com/coralogix/blobset/v2/blobset_service");
|
|
17
|
+
const file_processor_utils_1 = require("../utils/file-processor.utils");
|
|
18
|
+
class ReactNativeService {
|
|
19
|
+
static upload(application, version, repoName, commitHash, orgName, folderPath, env, privateKey) {
|
|
20
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
21
|
+
const request = blobset_service_1.UploadBlobRequest.create();
|
|
22
|
+
console.log(consts_1.GRAY_COLOR, '🚀 Uploading react native source map...');
|
|
23
|
+
try {
|
|
24
|
+
const totalFiles = yield file_processor_utils_1.FileProcessor.traverseSourceMapsFolder(folderPath, '.map', request);
|
|
25
|
+
yield react_native_api_1.ReactNativeApi.uploadReactNativeSourceMaps(request, application, version, repoName, commitHash, orgName, env, privateKey);
|
|
26
|
+
console.log(consts_1.GREEN_COLOR, '✅ React native source map uploaded successfully!');
|
|
27
|
+
console.log(consts_1.GREEN_COLOR, `✅ Total files processed: ${totalFiles || 0}`);
|
|
28
|
+
console.log(consts_1.GREEN_COLOR, '✅ Processing complete.');
|
|
29
|
+
}
|
|
30
|
+
catch (error) {
|
|
31
|
+
(0, shared_utils_1.consoleError)(error);
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
exports.ReactNativeService = ReactNativeService;
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhY3QtbmF0aXZlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zZXJ2aWNlcy9yZWFjdC1uYXRpdmUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSw2Q0FBMkQ7QUFDM0Qsd0RBQXFEO0FBQ3JELDhEQUF5RDtBQUN6RCw4RkFBNkY7QUFDN0Ysd0VBQThEO0FBRTlELE1BQWEsa0JBQWtCO0lBQzdCLE1BQU0sQ0FBTyxNQUFNLENBQ2pCLFdBQW1CLEVBQ25CLE9BQWUsRUFDZixRQUE0QixFQUM1QixVQUE4QixFQUM5QixPQUEyQixFQUMzQixVQUFrQixFQUNsQixHQUFXLEVBQ1gsVUFBa0I7O1lBRWxCLE1BQU0sT0FBTyxHQUFHLG1DQUFpQixDQUFDLE1BQU0sRUFBRSxDQUFDO1lBRTNDLE9BQU8sQ0FBQyxHQUFHLENBQUMsbUJBQVUsRUFBRSx5Q0FBeUMsQ0FBQyxDQUFDO1lBRW5FLElBQUk7Z0JBQ0YsTUFBTSxVQUFVLEdBQXVCLE1BQU0sb0NBQWEsQ0FBQyx3QkFBd0IsQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO2dCQUVqSCxNQUFNLGlDQUFjLENBQUMsMkJBQTJCLENBQUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLFVBQVUsQ0FBQyxDQUFDO2dCQUVoSSxPQUFPLENBQUMsR0FBRyxDQUFDLG9CQUFXLEVBQUUsa0RBQWtELENBQUMsQ0FBQztnQkFDN0UsT0FBTyxDQUFDLEdBQUcsQ0FBQyxvQkFBVyxFQUFFLDRCQUE0QixVQUFVLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDeEUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxvQkFBVyxFQUFFLHdCQUF3QixDQUFDLENBQUM7YUFDcEQ7WUFBQyxPQUFPLEtBQUssRUFBRTtnQkFDZCxJQUFBLDJCQUFZLEVBQUMsS0FBSyxDQUFDLENBQUM7YUFDckI7UUFDSCxDQUFDO0tBQUE7Q0FDRjtBQTNCRCxnREEyQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBHUkFZX0NPTE9SLCBHUkVFTl9DT0xPUiB9IGZyb20gJy4uL2NvbnN0cy9jb25zdHMnO1xuaW1wb3J0IHsgY29uc29sZUVycm9yIH0gZnJvbSAnLi4vdXRpbHMvc2hhcmVkLnV0aWxzJztcbmltcG9ydCB7IFJlYWN0TmF0aXZlQXBpIH0gZnJvbSAnLi4vYXBpL3JlYWN0LW5hdGl2ZS5hcGknO1xuaW1wb3J0IHsgVXBsb2FkQmxvYlJlcXVlc3QgfSBmcm9tICcuLi9wcm90by1tb2RlbHMvY29tL2NvcmFsb2dpeC9ibG9ic2V0L3YyL2Jsb2JzZXRfc2VydmljZSc7XG5pbXBvcnQgeyBGaWxlUHJvY2Vzc29yIH0gZnJvbSAnLi4vdXRpbHMvZmlsZS1wcm9jZXNzb3IudXRpbHMnO1xuXG5leHBvcnQgY2xhc3MgUmVhY3ROYXRpdmVTZXJ2aWNlIHtcbiAgc3RhdGljIGFzeW5jIHVwbG9hZChcbiAgICBhcHBsaWNhdGlvbjogc3RyaW5nLFxuICAgIHZlcnNpb246IHN0cmluZyxcbiAgICByZXBvTmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICAgIGNvbW1pdEhhc2g6IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgICBvcmdOYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gICAgZm9sZGVyUGF0aDogc3RyaW5nLFxuICAgIGVudjogc3RyaW5nLFxuICAgIHByaXZhdGVLZXk6IHN0cmluZyxcbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgcmVxdWVzdCA9IFVwbG9hZEJsb2JSZXF1ZXN0LmNyZWF0ZSgpO1xuXG4gICAgY29uc29sZS5sb2coR1JBWV9DT0xPUiwgJ/CfmoAgVXBsb2FkaW5nIHJlYWN0IG5hdGl2ZSBzb3VyY2UgbWFwLi4uJyk7XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgdG90YWxGaWxlczogbnVtYmVyIHwgdW5kZWZpbmVkID0gYXdhaXQgRmlsZVByb2Nlc3Nvci50cmF2ZXJzZVNvdXJjZU1hcHNGb2xkZXIoZm9sZGVyUGF0aCwgJy5tYXAnLCByZXF1ZXN0KTtcblxuICAgICAgYXdhaXQgUmVhY3ROYXRpdmVBcGkudXBsb2FkUmVhY3ROYXRpdmVTb3VyY2VNYXBzKHJlcXVlc3QsIGFwcGxpY2F0aW9uLCB2ZXJzaW9uLCByZXBvTmFtZSwgY29tbWl0SGFzaCwgb3JnTmFtZSwgZW52LCBwcml2YXRlS2V5KTtcblxuICAgICAgY29uc29sZS5sb2coR1JFRU5fQ09MT1IsICfinIUgUmVhY3QgbmF0aXZlIHNvdXJjZSBtYXAgdXBsb2FkZWQgc3VjY2Vzc2Z1bGx5IScpO1xuICAgICAgY29uc29sZS5sb2coR1JFRU5fQ09MT1IsIGDinIUgVG90YWwgZmlsZXMgcHJvY2Vzc2VkOiAke3RvdGFsRmlsZXMgfHwgMH1gKTtcbiAgICAgIGNvbnNvbGUubG9nKEdSRUVOX0NPTE9SLCAn4pyFIFByb2Nlc3NpbmcgY29tcGxldGUuJyk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGVFcnJvcihlcnJvcik7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -11,9 +11,10 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.SourceMapsService = void 0;
|
|
13
13
|
const rum_source_map_service_1 = require("../proto-models/com/coralogix/rum/v2/rum_source_map_service");
|
|
14
|
-
const
|
|
14
|
+
const source_maps_api_1 = require("../api/source-maps.api");
|
|
15
15
|
const consts_1 = require("../consts/consts");
|
|
16
|
-
const
|
|
16
|
+
const shared_utils_1 = require("../utils/shared.utils");
|
|
17
|
+
const file_processor_utils_1 = require("../utils/file-processor.utils");
|
|
17
18
|
class SourceMapsService {
|
|
18
19
|
static upload(application, version, repoName, commitHash, orgName, folderPath, env, privateKey) {
|
|
19
20
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -25,15 +26,14 @@ class SourceMapsService {
|
|
|
25
26
|
request.user = orgName;
|
|
26
27
|
console.log(consts_1.GRAY_COLOR, '🚀 Uploading source maps...');
|
|
27
28
|
try {
|
|
28
|
-
yield
|
|
29
|
-
yield
|
|
29
|
+
yield file_processor_utils_1.FileProcessor.traverseSourceMapsFolderOld(folderPath, request);
|
|
30
|
+
yield source_maps_api_1.SourceMapsApi.uploadSourceMaps(request, env, privateKey);
|
|
30
31
|
console.log(consts_1.GREEN_COLOR, '✅ Source maps uploaded successfully!');
|
|
31
32
|
console.log(consts_1.GREEN_COLOR, `✅ Total chunk files processed: ${request.files.length}`);
|
|
32
33
|
console.log(consts_1.GREEN_COLOR, '✅ Processing complete.');
|
|
33
34
|
}
|
|
34
35
|
catch (error) {
|
|
35
|
-
|
|
36
|
-
console.error(consts_1.RED_COLOR, error);
|
|
36
|
+
(0, shared_utils_1.consoleError)(error);
|
|
37
37
|
}
|
|
38
38
|
});
|
|
39
39
|
}
|
|
@@ -48,15 +48,14 @@ class SourceMapsService {
|
|
|
48
48
|
request.generate = generate;
|
|
49
49
|
console.log(consts_1.GRAY_COLOR, '🔄 Updating source maps...');
|
|
50
50
|
try {
|
|
51
|
-
yield
|
|
52
|
-
yield
|
|
51
|
+
yield file_processor_utils_1.FileProcessor.traverseSourceMapsFolderOld(folderPath, request);
|
|
52
|
+
yield source_maps_api_1.SourceMapsApi.updateSourceMap(request, env, privateKey);
|
|
53
53
|
console.log(consts_1.GREEN_COLOR, '✅ Source maps updated successfully!');
|
|
54
54
|
console.log(consts_1.GREEN_COLOR, `✅ Total chunk files processed: ${request.files.length}`);
|
|
55
55
|
console.log(consts_1.GREEN_COLOR, '✅ Processing complete.');
|
|
56
56
|
}
|
|
57
57
|
catch (error) {
|
|
58
|
-
|
|
59
|
-
console.error(consts_1.RED_COLOR, error);
|
|
58
|
+
(0, shared_utils_1.consoleError)(error);
|
|
60
59
|
}
|
|
61
60
|
});
|
|
62
61
|
}
|
|
@@ -67,15 +66,14 @@ class SourceMapsService {
|
|
|
67
66
|
request.releaseId = version;
|
|
68
67
|
console.log(consts_1.GRAY_COLOR, '🗑️ Deleting source maps...');
|
|
69
68
|
try {
|
|
70
|
-
yield
|
|
69
|
+
yield source_maps_api_1.SourceMapsApi.deleteSourceMap(request, env, privateKey);
|
|
71
70
|
console.log(consts_1.GREEN_COLOR, '✅ Source maps deleted successfully!');
|
|
72
71
|
}
|
|
73
72
|
catch (error) {
|
|
74
|
-
|
|
75
|
-
console.error(consts_1.RED_COLOR, error);
|
|
73
|
+
(0, shared_utils_1.consoleError)(error);
|
|
76
74
|
}
|
|
77
75
|
});
|
|
78
76
|
}
|
|
79
77
|
}
|
|
80
78
|
exports.SourceMapsService = SourceMapsService;
|
|
81
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlLW1hcHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NlcnZpY2VzL3NvdXJjZS1tYXBzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsd0dBSXFFO0FBQ3JFLDREQUF1RDtBQUN2RCw2Q0FBMkQ7QUFDM0Qsd0RBQXFEO0FBQ3JELHdFQUE4RDtBQUU5RCxNQUFhLGlCQUFpQjtJQUM1QixNQUFNLENBQU8sTUFBTSxDQUNqQixXQUFtQixFQUNuQixPQUFlLEVBQ2YsUUFBNEIsRUFDNUIsVUFBOEIsRUFDOUIsT0FBMkIsRUFDM0IsVUFBa0IsRUFDbEIsR0FBVyxFQUNYLFVBQWtCOztZQUVsQixNQUFNLE9BQU8sR0FBRyxnREFBdUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUVqRCxPQUFPLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztZQUNsQyxPQUFPLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQztZQUM1QixPQUFPLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztZQUM1QixPQUFPLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztZQUNoQyxPQUFPLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQztZQUV2QixPQUFPLENBQUMsR0FBRyxDQUFDLG1CQUFVLEVBQUUsNkJBQTZCLENBQUMsQ0FBQztZQUV2RCxJQUFJO2dCQUNGLE1BQU0sb0NBQWEsQ0FBQywyQkFBMkIsQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUM7Z0JBRXJFLE1BQU0sK0JBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLFVBQVUsQ0FBQyxDQUFDO2dCQUUvRCxPQUFPLENBQUMsR0FBRyxDQUFDLG9CQUFXLEVBQUUsc0NBQXNDLENBQUMsQ0FBQztnQkFDakUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxvQkFBVyxFQUFFLGtDQUFrQyxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7Z0JBQ25GLE9BQU8sQ0FBQyxHQUFHLENBQUMsb0JBQVcsRUFBRSx3QkFBd0IsQ0FBQyxDQUFDO2FBQ3BEO1lBQUMsT0FBTyxLQUFLLEVBQUU7Z0JBQ2QsSUFBQSwyQkFBWSxFQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ3JCO1FBQ0gsQ0FBQztLQUFBO0lBRUQsTUFBTSxDQUFPLE1BQU0sQ0FDakIsV0FBbUIsRUFDbkIsT0FBZSxFQUNmLFFBQTRCLEVBQzVCLFVBQThCLEVBQzlCLE9BQTJCLEVBQzNCLFVBQWtCLEVBQ2xCLFFBQTRCLEVBQzVCLEdBQVcsRUFDWCxVQUFrQjs7WUFFbEIsTUFBTSxPQUFPLEdBQUcsK0NBQXNCLENBQUMsTUFBTSxFQUFFLENBQUM7WUFFaEQsT0FBTyxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7WUFDbEMsT0FBTyxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUM7WUFDNUIsT0FBTyxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7WUFDNUIsT0FBTyxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7WUFDaEMsT0FBTyxDQUFDLElBQUksR0FBRyxPQUFPLENBQUM7WUFDdkIsT0FBTyxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7WUFFNUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxtQkFBVSxFQUFFLDRCQUE0QixDQUFDLENBQUM7WUFFdEQsSUFBSTtnQkFDRixNQUFNLG9DQUFhLENBQUMsMkJBQTJCLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDO2dCQUVyRSxNQUFNLCtCQUFhLENBQUMsZUFBZSxDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBRTlELE9BQU8sQ0FBQyxHQUFHLENBQUMsb0JBQVcsRUFBRSxxQ0FBcUMsQ0FBQyxDQUFDO2dCQUNoRSxPQUFPLENBQUMsR0FBRyxDQUFDLG9CQUFXLEVBQUUsa0NBQWtDLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztnQkFDbkYsT0FBTyxDQUFDLEdBQUcsQ0FBQyxvQkFBVyxFQUFFLHdCQUF3QixDQUFDLENBQUM7YUFDcEQ7WUFBQyxPQUFPLEtBQUssRUFBRTtnQkFDZCxJQUFBLDJCQUFZLEVBQUMsS0FBSyxDQUFDLENBQUM7YUFDckI7UUFDSCxDQUFDO0tBQUE7SUFFRCxNQUFNLENBQU8sTUFBTSxDQUFDLFdBQW1CLEVBQUUsT0FBZSxFQUFFLEdBQVcsRUFBRSxVQUFrQjs7WUFDdkYsTUFBTSxPQUFPLEdBQUcsK0NBQXNCLENBQUMsTUFBTSxFQUFFLENBQUM7WUFFaEQsT0FBTyxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7WUFDbEMsT0FBTyxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUM7WUFFNUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxtQkFBVSxFQUFFLDZCQUE2QixDQUFDLENBQUM7WUFFdkQsSUFBSTtnQkFDRixNQUFNLCtCQUFhLENBQUMsZUFBZSxDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBRTlELE9BQU8sQ0FBQyxHQUFHLENBQUMsb0JBQVcsRUFBRSxxQ0FBcUMsQ0FBQyxDQUFDO2FBQ2pFO1lBQUMsT0FBTyxLQUFLLEVBQUU7Z0JBQ2QsSUFBQSwyQkFBWSxFQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ3JCO1FBQ0gsQ0FBQztLQUFBO0NBQ0Y7QUFyRkQsOENBcUZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGVsZXRlU291cmNlTWFwUmVxdWVzdCxcbiAgVXBkYXRlU291cmNlTWFwUmVxdWVzdCxcbiAgVXBsb2FkU291cmNlTWFwc1JlcXVlc3QsXG59IGZyb20gJy4uL3Byb3RvLW1vZGVscy9jb20vY29yYWxvZ2l4L3J1bS92Mi9ydW1fc291cmNlX21hcF9zZXJ2aWNlJztcbmltcG9ydCB7IFNvdXJjZU1hcHNBcGkgfSBmcm9tICcuLi9hcGkvc291cmNlLW1hcHMuYXBpJztcbmltcG9ydCB7IEdSQVlfQ09MT1IsIEdSRUVOX0NPTE9SIH0gZnJvbSAnLi4vY29uc3RzL2NvbnN0cyc7XG5pbXBvcnQgeyBjb25zb2xlRXJyb3IgfSBmcm9tICcuLi91dGlscy9zaGFyZWQudXRpbHMnO1xuaW1wb3J0IHsgRmlsZVByb2Nlc3NvciB9IGZyb20gJy4uL3V0aWxzL2ZpbGUtcHJvY2Vzc29yLnV0aWxzJztcblxuZXhwb3J0IGNsYXNzIFNvdXJjZU1hcHNTZXJ2aWNlIHtcbiAgc3RhdGljIGFzeW5jIHVwbG9hZChcbiAgICBhcHBsaWNhdGlvbjogc3RyaW5nLFxuICAgIHZlcnNpb246IHN0cmluZyxcbiAgICByZXBvTmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICAgIGNvbW1pdEhhc2g6IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgICBvcmdOYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gICAgZm9sZGVyUGF0aDogc3RyaW5nLFxuICAgIGVudjogc3RyaW5nLFxuICAgIHByaXZhdGVLZXk6IHN0cmluZyxcbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgcmVxdWVzdCA9IFVwbG9hZFNvdXJjZU1hcHNSZXF1ZXN0LmNyZWF0ZSgpO1xuXG4gICAgcmVxdWVzdC5hcHBsaWNhdGlvbiA9IGFwcGxpY2F0aW9uO1xuICAgIHJlcXVlc3QucmVsZWFzZUlkID0gdmVyc2lvbjtcbiAgICByZXF1ZXN0LnJlcG9OYW1lID0gcmVwb05hbWU7XG4gICAgcmVxdWVzdC5jb21taXRIYXNoID0gY29tbWl0SGFzaDtcbiAgICByZXF1ZXN0LnVzZXIgPSBvcmdOYW1lO1xuXG4gICAgY29uc29sZS5sb2coR1JBWV9DT0xPUiwgJ/CfmoAgVXBsb2FkaW5nIHNvdXJjZSBtYXBzLi4uJyk7XG5cbiAgICB0cnkge1xuICAgICAgYXdhaXQgRmlsZVByb2Nlc3Nvci50cmF2ZXJzZVNvdXJjZU1hcHNGb2xkZXJPbGQoZm9sZGVyUGF0aCwgcmVxdWVzdCk7XG5cbiAgICAgIGF3YWl0IFNvdXJjZU1hcHNBcGkudXBsb2FkU291cmNlTWFwcyhyZXF1ZXN0LCBlbnYsIHByaXZhdGVLZXkpO1xuXG4gICAgICBjb25zb2xlLmxvZyhHUkVFTl9DT0xPUiwgJ+KchSBTb3VyY2UgbWFwcyB1cGxvYWRlZCBzdWNjZXNzZnVsbHkhJyk7XG4gICAgICBjb25zb2xlLmxvZyhHUkVFTl9DT0xPUiwgYOKchSBUb3RhbCBjaHVuayBmaWxlcyBwcm9jZXNzZWQ6ICR7cmVxdWVzdC5maWxlcy5sZW5ndGh9YCk7XG4gICAgICBjb25zb2xlLmxvZyhHUkVFTl9DT0xPUiwgJ+KchSBQcm9jZXNzaW5nIGNvbXBsZXRlLicpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlRXJyb3IoZXJyb3IpO1xuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyBhc3luYyB1cGRhdGUoXG4gICAgYXBwbGljYXRpb246IHN0cmluZyxcbiAgICB2ZXJzaW9uOiBzdHJpbmcsXG4gICAgcmVwb05hbWU6IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgICBjb21taXRIYXNoOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gICAgb3JnTmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICAgIGZvbGRlclBhdGg6IHN0cmluZyxcbiAgICBnZW5lcmF0ZTogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICAgIGVudjogc3RyaW5nLFxuICAgIHByaXZhdGVLZXk6IHN0cmluZyxcbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgcmVxdWVzdCA9IFVwZGF0ZVNvdXJjZU1hcFJlcXVlc3QuY3JlYXRlKCk7XG5cbiAgICByZXF1ZXN0LmFwcGxpY2F0aW9uID0gYXBwbGljYXRpb247XG4gICAgcmVxdWVzdC5yZWxlYXNlSWQgPSB2ZXJzaW9uO1xuICAgIHJlcXVlc3QucmVwb05hbWUgPSByZXBvTmFtZTtcbiAgICByZXF1ZXN0LmNvbW1pdEhhc2ggPSBjb21taXRIYXNoO1xuICAgIHJlcXVlc3QudXNlciA9IG9yZ05hbWU7XG4gICAgcmVxdWVzdC5nZW5lcmF0ZSA9IGdlbmVyYXRlO1xuXG4gICAgY29uc29sZS5sb2coR1JBWV9DT0xPUiwgJ/CflIQgVXBkYXRpbmcgc291cmNlIG1hcHMuLi4nKTtcblxuICAgIHRyeSB7XG4gICAgICBhd2FpdCBGaWxlUHJvY2Vzc29yLnRyYXZlcnNlU291cmNlTWFwc0ZvbGRlck9sZChmb2xkZXJQYXRoLCByZXF1ZXN0KTtcblxuICAgICAgYXdhaXQgU291cmNlTWFwc0FwaS51cGRhdGVTb3VyY2VNYXAocmVxdWVzdCwgZW52LCBwcml2YXRlS2V5KTtcblxuICAgICAgY29uc29sZS5sb2coR1JFRU5fQ09MT1IsICfinIUgU291cmNlIG1hcHMgdXBkYXRlZCBzdWNjZXNzZnVsbHkhJyk7XG4gICAgICBjb25zb2xlLmxvZyhHUkVFTl9DT0xPUiwgYOKchSBUb3RhbCBjaHVuayBmaWxlcyBwcm9jZXNzZWQ6ICR7cmVxdWVzdC5maWxlcy5sZW5ndGh9YCk7XG4gICAgICBjb25zb2xlLmxvZyhHUkVFTl9DT0xPUiwgJ+KchSBQcm9jZXNzaW5nIGNvbXBsZXRlLicpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlRXJyb3IoZXJyb3IpO1xuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyBhc3luYyBkZWxldGUoYXBwbGljYXRpb246IHN0cmluZywgdmVyc2lvbjogc3RyaW5nLCBlbnY6IHN0cmluZywgcHJpdmF0ZUtleTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgcmVxdWVzdCA9IERlbGV0ZVNvdXJjZU1hcFJlcXVlc3QuY3JlYXRlKCk7XG5cbiAgICByZXF1ZXN0LmFwcGxpY2F0aW9uID0gYXBwbGljYXRpb247XG4gICAgcmVxdWVzdC5yZWxlYXNlSWQgPSB2ZXJzaW9uO1xuXG4gICAgY29uc29sZS5sb2coR1JBWV9DT0xPUiwgJ/Cfl5HvuI8gRGVsZXRpbmcgc291cmNlIG1hcHMuLi4nKTtcblxuICAgIHRyeSB7XG4gICAgICBhd2FpdCBTb3VyY2VNYXBzQXBpLmRlbGV0ZVNvdXJjZU1hcChyZXF1ZXN0LCBlbnYsIHByaXZhdGVLZXkpO1xuXG4gICAgICBjb25zb2xlLmxvZyhHUkVFTl9DT0xPUiwgJ+KchSBTb3VyY2UgbWFwcyBkZWxldGVkIHN1Y2Nlc3NmdWxseSEnKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZUVycm9yKGVycm9yKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { UploadBlobRequest } from '../proto-models/com/coralogix/blobset/v2/blobset_service';
|
|
2
|
+
import { UploadSourceMapsRequest } from '../proto-models/com/coralogix/rum/v2/rum_source_map_service';
|
|
3
|
+
export declare class FileProcessor {
|
|
4
|
+
static traverseDsymFolder(folderPath: string, request: UploadBlobRequest): Promise<void>;
|
|
5
|
+
static traverseSourceMapsFolder(folderPath: string, fileExtension: string, request: UploadBlobRequest): Promise<number | undefined>;
|
|
6
|
+
private static processSourceMapSingleFile;
|
|
7
|
+
private static processSourceMapDirectory;
|
|
8
|
+
private static getDwarfPath;
|
|
9
|
+
static traverseSourceMapsFolderOld(folderPath: string, request: UploadSourceMapsRequest): Promise<void>;
|
|
10
|
+
static compressFileContentChunks(fileContent: Uint8Array): Uint8Array;
|
|
11
|
+
private static getFileMetadata;
|
|
12
|
+
}
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
26
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
27
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
28
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
29
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
30
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
31
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
32
|
+
});
|
|
33
|
+
};
|
|
34
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
35
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
36
|
+
};
|
|
37
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
|
+
exports.FileProcessor = void 0;
|
|
39
|
+
const fs = __importStar(require("fs"));
|
|
40
|
+
const fs_1 = require("fs");
|
|
41
|
+
const path = __importStar(require("path"));
|
|
42
|
+
const zlib_1 = __importDefault(require("zlib"));
|
|
43
|
+
const shared_utils_1 = require("./shared.utils");
|
|
44
|
+
const config_1 = __importDefault(require("../config"));
|
|
45
|
+
const pako_1 = __importDefault(require("pako"));
|
|
46
|
+
const consts_1 = require("../consts/consts");
|
|
47
|
+
const { readdir, stat, readFile } = fs_1.promises;
|
|
48
|
+
class FileProcessor {
|
|
49
|
+
static traverseDsymFolder(folderPath, request) {
|
|
50
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
51
|
+
try {
|
|
52
|
+
const processDsymFolder = (dsymFolderPath) => __awaiter(this, void 0, void 0, function* () {
|
|
53
|
+
const dwarfPath = yield FileProcessor.getDwarfPath(dsymFolderPath);
|
|
54
|
+
const content = yield readFile(dwarfPath);
|
|
55
|
+
const compressedContent = zlib_1.default.gzipSync(content);
|
|
56
|
+
request.data = new Uint8Array(compressedContent);
|
|
57
|
+
});
|
|
58
|
+
// Check if the folder itself is a .dSYM folder
|
|
59
|
+
if (folderPath.endsWith('.dSYM')) {
|
|
60
|
+
yield processDsymFolder(folderPath);
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
const files = yield readdir(folderPath, { withFileTypes: true });
|
|
64
|
+
for (const file of files) {
|
|
65
|
+
// Skip .DS_Store and hidden files
|
|
66
|
+
if (file.name === '.DS_Store' || file.name.startsWith('.')) {
|
|
67
|
+
continue;
|
|
68
|
+
}
|
|
69
|
+
const filePath = path.join(folderPath, file.name);
|
|
70
|
+
if (file.isDirectory()) {
|
|
71
|
+
if (file.name.endsWith('.dSYM')) {
|
|
72
|
+
yield processDsymFolder(filePath);
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
yield FileProcessor.traverseDsymFolder(filePath, request);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
catch (error) {
|
|
82
|
+
(0, shared_utils_1.consoleError)(`Error traversing directory: ${JSON.stringify(error)}`);
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
static traverseSourceMapsFolder(folderPath, fileExtension, request) {
|
|
87
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
88
|
+
try {
|
|
89
|
+
const stats = yield stat(folderPath);
|
|
90
|
+
if (stats.isFile() && folderPath.endsWith(fileExtension)) {
|
|
91
|
+
return yield this.processSourceMapSingleFile(folderPath, fileExtension, request);
|
|
92
|
+
}
|
|
93
|
+
else if (stats.isDirectory()) {
|
|
94
|
+
return yield this.processSourceMapDirectory(folderPath, fileExtension, request);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
catch (error) {
|
|
98
|
+
(0, shared_utils_1.consoleError)(`Error traversing directory: ${error}`);
|
|
99
|
+
}
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
static processSourceMapSingleFile(filePath, fileExtension, request) {
|
|
103
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
104
|
+
try {
|
|
105
|
+
const content = yield readFile(filePath);
|
|
106
|
+
const { name } = path.parse(filePath);
|
|
107
|
+
const fileData = { name, content: content.toString('base64') };
|
|
108
|
+
const compressedContent = zlib_1.default.gzipSync(Buffer.from(JSON.stringify([fileData])));
|
|
109
|
+
request.data = new Uint8Array(compressedContent);
|
|
110
|
+
return 1;
|
|
111
|
+
}
|
|
112
|
+
catch (error) {
|
|
113
|
+
(0, shared_utils_1.consoleError)(`Error processing file: ${error}`);
|
|
114
|
+
throw error;
|
|
115
|
+
}
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
static processSourceMapDirectory(folderPath, fileExtension, request) {
|
|
119
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
120
|
+
const files = yield readdir(folderPath, { withFileTypes: true });
|
|
121
|
+
const fileDataList = [];
|
|
122
|
+
for (const dirent of files) {
|
|
123
|
+
const filePath = path.join(folderPath, dirent.name);
|
|
124
|
+
if (dirent.isFile() && dirent.name.endsWith(fileExtension)) {
|
|
125
|
+
const content = yield readFile(filePath);
|
|
126
|
+
const { name } = path.parse(filePath);
|
|
127
|
+
fileDataList.push({ name, content: content.toString('base64') });
|
|
128
|
+
}
|
|
129
|
+
else if (dirent.isDirectory()) {
|
|
130
|
+
yield this.traverseSourceMapsFolder(filePath, fileExtension, request);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
const compressedContent = zlib_1.default.gzipSync(Buffer.from(JSON.stringify(fileDataList)));
|
|
134
|
+
request.data = new Uint8Array(compressedContent);
|
|
135
|
+
return fileDataList.length;
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
static getDwarfPath(dsymPath) {
|
|
139
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
140
|
+
const dwarfPath = 'Contents/Resources/DWARF';
|
|
141
|
+
const targetPath = path.join(dsymPath, dwarfPath);
|
|
142
|
+
const files = fs.readdirSync(targetPath);
|
|
143
|
+
if (files.length === 1) {
|
|
144
|
+
return path.join(dsymPath, dwarfPath, files[0]);
|
|
145
|
+
}
|
|
146
|
+
else {
|
|
147
|
+
(0, shared_utils_1.consoleError)(`Expected exactly one file in the directory, but found: ${files.length}`);
|
|
148
|
+
return '';
|
|
149
|
+
}
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
static traverseSourceMapsFolderOld(folderPath, request) {
|
|
153
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
154
|
+
const stack = [folderPath];
|
|
155
|
+
while (stack.length) {
|
|
156
|
+
const currentPath = stack.pop();
|
|
157
|
+
const entries = yield readdir(currentPath, { withFileTypes: true });
|
|
158
|
+
yield Promise.all(entries.map((file) => __awaiter(this, void 0, void 0, function* () {
|
|
159
|
+
const { name } = file;
|
|
160
|
+
const entryPath = path.join(currentPath, name);
|
|
161
|
+
const isCorrectSuffix = file.isFile() && name.endsWith('.js.map');
|
|
162
|
+
if (file.isDirectory())
|
|
163
|
+
stack.push(entryPath);
|
|
164
|
+
else if (isCorrectSuffix)
|
|
165
|
+
request.files.push(yield FileProcessor.getFileMetadata(entryPath));
|
|
166
|
+
})));
|
|
167
|
+
}
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
static compressFileContentChunks(fileContent) {
|
|
171
|
+
const { chunkSize } = config_1.default.rumApi; // 512 KB chunk size
|
|
172
|
+
const deflate = new pako_1.default.Deflate();
|
|
173
|
+
const totalChunks = Math.ceil(fileContent.length / chunkSize);
|
|
174
|
+
for (let i = 0; i < totalChunks; i++) {
|
|
175
|
+
const start = i * chunkSize;
|
|
176
|
+
const end = start + chunkSize;
|
|
177
|
+
const chunk = fileContent.subarray(start, end);
|
|
178
|
+
const isLastChunk = i === totalChunks - 1;
|
|
179
|
+
deflate.push(chunk, isLastChunk);
|
|
180
|
+
}
|
|
181
|
+
const { err, msg, result } = deflate;
|
|
182
|
+
if (err)
|
|
183
|
+
console.error(consts_1.RED_COLOR, msg);
|
|
184
|
+
return result;
|
|
185
|
+
}
|
|
186
|
+
static getFileMetadata(filePath) {
|
|
187
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
188
|
+
const { size } = yield stat(filePath);
|
|
189
|
+
const { name } = path.parse(filePath);
|
|
190
|
+
const content = yield readFile(filePath);
|
|
191
|
+
return { chunkName: name, size, content };
|
|
192
|
+
});
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
exports.FileProcessor = FileProcessor;
|
|
196
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1wcm9jZXNzb3IudXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi91dGlscy9maWxlLXByb2Nlc3Nvci51dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHVDQUF5QjtBQUN6QiwyQkFBb0Q7QUFDcEQsMkNBQTZCO0FBQzdCLGdEQUF3QjtBQUN4QixpREFBOEM7QUFHOUMsdURBQStCO0FBQy9CLGdEQUF3QjtBQUV4Qiw2Q0FBNkM7QUFFN0MsTUFBTSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEdBQUcsYUFBVSxDQUFDO0FBRS9DLE1BQWEsYUFBYTtJQUN4QixNQUFNLENBQU8sa0JBQWtCLENBQUMsVUFBa0IsRUFBRSxPQUEwQjs7WUFDNUUsSUFBSTtnQkFDRixNQUFNLGlCQUFpQixHQUFHLENBQU8sY0FBc0IsRUFBRSxFQUFFO29CQUN6RCxNQUFNLFNBQVMsR0FBRyxNQUFNLGFBQWEsQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLENBQUM7b0JBQ25FLE1BQU0sT0FBTyxHQUFHLE1BQU0sUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO29CQUMxQyxNQUFNLGlCQUFpQixHQUFHLGNBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7b0JBQ2pELE9BQU8sQ0FBQyxJQUFJLEdBQUcsSUFBSSxVQUFVLENBQUMsaUJBQWlCLENBQUMsQ0FBQztnQkFDbkQsQ0FBQyxDQUFBLENBQUM7Z0JBRUYsK0NBQStDO2dCQUMvQyxJQUFJLFVBQVUsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUU7b0JBQ2hDLE1BQU0saUJBQWlCLENBQUMsVUFBVSxDQUFDLENBQUM7b0JBQ3BDLE9BQU87aUJBQ1I7Z0JBRUQsTUFBTSxLQUFLLEdBQWEsTUFBTSxPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7Z0JBRTNFLEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxFQUFFO29CQUN4QixrQ0FBa0M7b0JBQ2xDLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxXQUFXLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUU7d0JBQzFELFNBQVM7cUJBQ1Y7b0JBRUQsTUFBTSxRQUFRLEdBQVcsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUUxRCxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRTt3QkFDdEIsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRTs0QkFDL0IsTUFBTSxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsQ0FBQzs0QkFDbEMsT0FBTzt5QkFDUjs2QkFBTTs0QkFDTCxNQUFNLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7eUJBQzNEO3FCQUNGO2lCQUNGO2FBQ0Y7WUFBQyxPQUFPLEtBQUssRUFBRTtnQkFDZCxJQUFBLDJCQUFZLEVBQUMsK0JBQStCLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2FBQ3RFO1FBQ0gsQ0FBQztLQUFBO0lBRUQsTUFBTSxDQUFPLHdCQUF3QixDQUNuQyxVQUFrQixFQUNsQixhQUFxQixFQUNyQixPQUEwQjs7WUFFMUIsSUFBSTtnQkFDRixNQUFNLEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFFckMsSUFBSSxLQUFLLENBQUMsTUFBTSxFQUFFLElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsRUFBRTtvQkFDeEQsT0FBTyxNQUFNLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxVQUFVLEVBQUUsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFDO2lCQUNsRjtxQkFBTSxJQUFJLEtBQUssQ0FBQyxXQUFXLEVBQUUsRUFBRTtvQkFDOUIsT0FBTyxNQUFNLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxVQUFVLEVBQUUsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFDO2lCQUNqRjthQUNGO1lBQUMsT0FBTyxLQUFLLEVBQUU7Z0JBQ2QsSUFBQSwyQkFBWSxFQUFDLCtCQUErQixLQUFLLEVBQUUsQ0FBQyxDQUFDO2FBQ3REO1FBQ0gsQ0FBQztLQUFBO0lBRU8sTUFBTSxDQUFPLDBCQUEwQixDQUFDLFFBQWdCLEVBQUUsYUFBcUIsRUFBRSxPQUEwQjs7WUFDakgsSUFBSTtnQkFDRixNQUFNLE9BQU8sR0FBRyxNQUFNLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFFekMsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBRXRDLE1BQU0sUUFBUSxHQUFHLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7Z0JBRS9ELE1BQU0saUJBQWlCLEdBQUcsY0FBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFFakYsT0FBTyxDQUFDLElBQUksR0FBRyxJQUFJLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO2dCQUVqRCxPQUFPLENBQUMsQ0FBQzthQUNWO1lBQUMsT0FBTyxLQUFLLEVBQUU7Z0JBQ2QsSUFBQSwyQkFBWSxFQUFDLDBCQUEwQixLQUFLLEVBQUUsQ0FBQyxDQUFDO2dCQUNoRCxNQUFNLEtBQUssQ0FBQzthQUNiO1FBQ0gsQ0FBQztLQUFBO0lBRU8sTUFBTSxDQUFPLHlCQUF5QixDQUFDLFVBQWtCLEVBQUUsYUFBcUIsRUFBRSxPQUEwQjs7WUFDbEgsTUFBTSxLQUFLLEdBQUcsTUFBTSxPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7WUFDakUsTUFBTSxZQUFZLEdBQXdDLEVBQUUsQ0FBQztZQUU3RCxLQUFLLE1BQU0sTUFBTSxJQUFJLEtBQUssRUFBRTtnQkFDMUIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUVwRCxJQUFJLE1BQU0sQ0FBQyxNQUFNLEVBQUUsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsRUFBRTtvQkFDMUQsTUFBTSxPQUFPLEdBQUcsTUFBTSxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7b0JBQ3pDLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO29CQUN0QyxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztpQkFDbEU7cUJBQU0sSUFBSSxNQUFNLENBQUMsV0FBVyxFQUFFLEVBQUU7b0JBQy9CLE1BQU0sSUFBSSxDQUFDLHdCQUF3QixDQUFDLFFBQVEsRUFBRSxhQUFhLEVBQUUsT0FBTyxDQUFDLENBQUM7aUJBQ3ZFO2FBQ0Y7WUFFRCxNQUFNLGlCQUFpQixHQUFHLGNBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUVuRixPQUFPLENBQUMsSUFBSSxHQUFHLElBQUksVUFBVSxDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFFakQsT0FBTyxZQUFZLENBQUMsTUFBTSxDQUFDO1FBQzdCLENBQUM7S0FBQTtJQUVPLE1BQU0sQ0FBTyxZQUFZLENBQUMsUUFBZ0I7O1lBQ2hELE1BQU0sU0FBUyxHQUFXLDBCQUEwQixDQUFDO1lBQ3JELE1BQU0sVUFBVSxHQUFXLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQzFELE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDekMsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtnQkFDdEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDakQ7aUJBQU07Z0JBQ0wsSUFBQSwyQkFBWSxFQUFDLDBEQUEwRCxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztnQkFDdkYsT0FBTyxFQUFFLENBQUM7YUFDWDtRQUNILENBQUM7S0FBQTtJQUVELE1BQU0sQ0FBTywyQkFBMkIsQ0FBQyxVQUFrQixFQUFFLE9BQWdDOztZQUMzRixNQUFNLEtBQUssR0FBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBRXJDLE9BQU8sS0FBSyxDQUFDLE1BQU0sRUFBRTtnQkFDbkIsTUFBTSxXQUFXLEdBQUcsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUNoQyxNQUFNLE9BQU8sR0FBYSxNQUFNLE9BQU8sQ0FBQyxXQUFZLEVBQUUsRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztnQkFFL0UsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUNmLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBTyxJQUFZLEVBQUUsRUFBRTtvQkFDakMsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQztvQkFDdEIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFxQixFQUFFLElBQUksQ0FBQyxDQUFDO29CQUN6RCxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQztvQkFFbEUsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO3dCQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7eUJBQ3pDLElBQUksZUFBZTt3QkFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLGFBQWEsQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztnQkFDL0YsQ0FBQyxDQUFBLENBQUMsQ0FDSCxDQUFDO2FBQ0g7UUFDSCxDQUFDO0tBQUE7SUFFRCxNQUFNLENBQUMseUJBQXlCLENBQUMsV0FBdUI7UUFDdEQsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLGdCQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsb0JBQW9CO1FBQ3pELE1BQU0sT0FBTyxHQUFHLElBQUksY0FBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ25DLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUMsQ0FBQztRQUU5RCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsV0FBVyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3BDLE1BQU0sS0FBSyxHQUFHLENBQUMsR0FBRyxTQUFTLENBQUM7WUFDNUIsTUFBTSxHQUFHLEdBQUcsS0FBSyxHQUFHLFNBQVMsQ0FBQztZQUM5QixNQUFNLEtBQUssR0FBRyxXQUFXLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztZQUUvQyxNQUFNLFdBQVcsR0FBRyxDQUFDLEtBQUssV0FBVyxHQUFHLENBQUMsQ0FBQztZQUUxQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsQ0FBQztTQUNsQztRQUVELE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLE9BQU8sQ0FBQztRQUVyQyxJQUFJLEdBQUc7WUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLGtCQUFTLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFFdkMsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVPLE1BQU0sQ0FBTyxlQUFlLENBQUMsUUFBZ0I7O1lBQ25ELE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN0QyxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN0QyxNQUFNLE9BQU8sR0FBRyxNQUFNLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUV6QyxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLENBQUM7UUFDNUMsQ0FBQztLQUFBO0NBQ0Y7QUFqS0Qsc0NBaUtDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnO1xuaW1wb3J0IHsgRGlyZW50LCBwcm9taXNlcyBhcyBmc1Byb21pc2VzIH0gZnJvbSAnZnMnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB6bGliIGZyb20gJ3psaWInO1xuaW1wb3J0IHsgY29uc29sZUVycm9yIH0gZnJvbSAnLi9zaGFyZWQudXRpbHMnO1xuaW1wb3J0IHsgVXBsb2FkQmxvYlJlcXVlc3QgfSBmcm9tICcuLi9wcm90by1tb2RlbHMvY29tL2NvcmFsb2dpeC9ibG9ic2V0L3YyL2Jsb2JzZXRfc2VydmljZSc7XG5pbXBvcnQgeyBVcGxvYWRTb3VyY2VNYXBzUmVxdWVzdCB9IGZyb20gJy4uL3Byb3RvLW1vZGVscy9jb20vY29yYWxvZ2l4L3J1bS92Mi9ydW1fc291cmNlX21hcF9zZXJ2aWNlJztcbmltcG9ydCBjb25maWcgZnJvbSAnLi4vY29uZmlnJztcbmltcG9ydCBwYWtvIGZyb20gJ3Bha28nO1xuaW1wb3J0IHsgRmlsZU1ldGFkYXRhIH0gZnJvbSAnLi4vcHJvdG8tbW9kZWxzL2NvbS9jb3JhbG9naXgvcnVtL3YyL2ZpbGUnO1xuaW1wb3J0IHsgUkVEX0NPTE9SIH0gZnJvbSAnLi4vY29uc3RzL2NvbnN0cyc7XG5cbmNvbnN0IHsgcmVhZGRpciwgc3RhdCwgcmVhZEZpbGUgfSA9IGZzUHJvbWlzZXM7XG5cbmV4cG9ydCBjbGFzcyBGaWxlUHJvY2Vzc29yIHtcbiAgc3RhdGljIGFzeW5jIHRyYXZlcnNlRHN5bUZvbGRlcihmb2xkZXJQYXRoOiBzdHJpbmcsIHJlcXVlc3Q6IFVwbG9hZEJsb2JSZXF1ZXN0KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHByb2Nlc3NEc3ltRm9sZGVyID0gYXN5bmMgKGRzeW1Gb2xkZXJQYXRoOiBzdHJpbmcpID0+IHtcbiAgICAgICAgY29uc3QgZHdhcmZQYXRoID0gYXdhaXQgRmlsZVByb2Nlc3Nvci5nZXREd2FyZlBhdGgoZHN5bUZvbGRlclBhdGgpO1xuICAgICAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgcmVhZEZpbGUoZHdhcmZQYXRoKTtcbiAgICAgICAgY29uc3QgY29tcHJlc3NlZENvbnRlbnQgPSB6bGliLmd6aXBTeW5jKGNvbnRlbnQpO1xuICAgICAgICByZXF1ZXN0LmRhdGEgPSBuZXcgVWludDhBcnJheShjb21wcmVzc2VkQ29udGVudCk7XG4gICAgICB9O1xuXG4gICAgICAvLyBDaGVjayBpZiB0aGUgZm9sZGVyIGl0c2VsZiBpcyBhIC5kU1lNIGZvbGRlclxuICAgICAgaWYgKGZvbGRlclBhdGguZW5kc1dpdGgoJy5kU1lNJykpIHtcbiAgICAgICAgYXdhaXQgcHJvY2Vzc0RzeW1Gb2xkZXIoZm9sZGVyUGF0aCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZmlsZXM6IERpcmVudFtdID0gYXdhaXQgcmVhZGRpcihmb2xkZXJQYXRoLCB7IHdpdGhGaWxlVHlwZXM6IHRydWUgfSk7XG5cbiAgICAgIGZvciAoY29uc3QgZmlsZSBvZiBmaWxlcykge1xuICAgICAgICAvLyBTa2lwIC5EU19TdG9yZSBhbmQgaGlkZGVuIGZpbGVzXG4gICAgICAgIGlmIChmaWxlLm5hbWUgPT09ICcuRFNfU3RvcmUnIHx8IGZpbGUubmFtZS5zdGFydHNXaXRoKCcuJykpIHtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGZpbGVQYXRoOiBzdHJpbmcgPSBwYXRoLmpvaW4oZm9sZGVyUGF0aCwgZmlsZS5uYW1lKTtcblxuICAgICAgICBpZiAoZmlsZS5pc0RpcmVjdG9yeSgpKSB7XG4gICAgICAgICAgaWYgKGZpbGUubmFtZS5lbmRzV2l0aCgnLmRTWU0nKSkge1xuICAgICAgICAgICAgYXdhaXQgcHJvY2Vzc0RzeW1Gb2xkZXIoZmlsZVBhdGgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBhd2FpdCBGaWxlUHJvY2Vzc29yLnRyYXZlcnNlRHN5bUZvbGRlcihmaWxlUGF0aCwgcmVxdWVzdCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGVFcnJvcihgRXJyb3IgdHJhdmVyc2luZyBkaXJlY3Rvcnk6ICR7SlNPTi5zdHJpbmdpZnkoZXJyb3IpfWApO1xuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyBhc3luYyB0cmF2ZXJzZVNvdXJjZU1hcHNGb2xkZXIoXG4gICAgZm9sZGVyUGF0aDogc3RyaW5nLFxuICAgIGZpbGVFeHRlbnNpb246IHN0cmluZyxcbiAgICByZXF1ZXN0OiBVcGxvYWRCbG9iUmVxdWVzdCxcbiAgKTogUHJvbWlzZTxudW1iZXIgfCB1bmRlZmluZWQ+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3Qgc3RhdHMgPSBhd2FpdCBzdGF0KGZvbGRlclBhdGgpO1xuXG4gICAgICBpZiAoc3RhdHMuaXNGaWxlKCkgJiYgZm9sZGVyUGF0aC5lbmRzV2l0aChmaWxlRXh0ZW5zaW9uKSkge1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5wcm9jZXNzU291cmNlTWFwU2luZ2xlRmlsZShmb2xkZXJQYXRoLCBmaWxlRXh0ZW5zaW9uLCByZXF1ZXN0KTtcbiAgICAgIH0gZWxzZSBpZiAoc3RhdHMuaXNEaXJlY3RvcnkoKSkge1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5wcm9jZXNzU291cmNlTWFwRGlyZWN0b3J5KGZvbGRlclBhdGgsIGZpbGVFeHRlbnNpb24sIHJlcXVlc3QpO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlRXJyb3IoYEVycm9yIHRyYXZlcnNpbmcgZGlyZWN0b3J5OiAke2Vycm9yfWApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGFzeW5jIHByb2Nlc3NTb3VyY2VNYXBTaW5nbGVGaWxlKGZpbGVQYXRoOiBzdHJpbmcsIGZpbGVFeHRlbnNpb246IHN0cmluZywgcmVxdWVzdDogVXBsb2FkQmxvYlJlcXVlc3QpOiBQcm9taXNlPG51bWJlcj4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgcmVhZEZpbGUoZmlsZVBhdGgpO1xuXG4gICAgICBjb25zdCB7IG5hbWUgfSA9IHBhdGgucGFyc2UoZmlsZVBhdGgpO1xuXG4gICAgICBjb25zdCBmaWxlRGF0YSA9IHsgbmFtZSwgY29udGVudDogY29udGVudC50b1N0cmluZygnYmFzZTY0JykgfTtcblxuICAgICAgY29uc3QgY29tcHJlc3NlZENvbnRlbnQgPSB6bGliLmd6aXBTeW5jKEJ1ZmZlci5mcm9tKEpTT04uc3RyaW5naWZ5KFtmaWxlRGF0YV0pKSk7XG5cbiAgICAgIHJlcXVlc3QuZGF0YSA9IG5ldyBVaW50OEFycmF5KGNvbXByZXNzZWRDb250ZW50KTtcblxuICAgICAgcmV0dXJuIDE7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGVFcnJvcihgRXJyb3IgcHJvY2Vzc2luZyBmaWxlOiAke2Vycm9yfWApO1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgYXN5bmMgcHJvY2Vzc1NvdXJjZU1hcERpcmVjdG9yeShmb2xkZXJQYXRoOiBzdHJpbmcsIGZpbGVFeHRlbnNpb246IHN0cmluZywgcmVxdWVzdDogVXBsb2FkQmxvYlJlcXVlc3QpOiBQcm9taXNlPG51bWJlcj4ge1xuICAgIGNvbnN0IGZpbGVzID0gYXdhaXQgcmVhZGRpcihmb2xkZXJQYXRoLCB7IHdpdGhGaWxlVHlwZXM6IHRydWUgfSk7XG4gICAgY29uc3QgZmlsZURhdGFMaXN0OiB7IG5hbWU6IHN0cmluZzsgY29udGVudDogc3RyaW5nIH1bXSA9IFtdO1xuXG4gICAgZm9yIChjb25zdCBkaXJlbnQgb2YgZmlsZXMpIHtcbiAgICAgIGNvbnN0IGZpbGVQYXRoID0gcGF0aC5qb2luKGZvbGRlclBhdGgsIGRpcmVudC5uYW1lKTtcblxuICAgICAgaWYgKGRpcmVudC5pc0ZpbGUoKSAmJiBkaXJlbnQubmFtZS5lbmRzV2l0aChmaWxlRXh0ZW5zaW9uKSkge1xuICAgICAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgcmVhZEZpbGUoZmlsZVBhdGgpO1xuICAgICAgICBjb25zdCB7IG5hbWUgfSA9IHBhdGgucGFyc2UoZmlsZVBhdGgpO1xuICAgICAgICBmaWxlRGF0YUxpc3QucHVzaCh7IG5hbWUsIGNvbnRlbnQ6IGNvbnRlbnQudG9TdHJpbmcoJ2Jhc2U2NCcpIH0pO1xuICAgICAgfSBlbHNlIGlmIChkaXJlbnQuaXNEaXJlY3RvcnkoKSkge1xuICAgICAgICBhd2FpdCB0aGlzLnRyYXZlcnNlU291cmNlTWFwc0ZvbGRlcihmaWxlUGF0aCwgZmlsZUV4dGVuc2lvbiwgcmVxdWVzdCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgY29tcHJlc3NlZENvbnRlbnQgPSB6bGliLmd6aXBTeW5jKEJ1ZmZlci5mcm9tKEpTT04uc3RyaW5naWZ5KGZpbGVEYXRhTGlzdCkpKTtcblxuICAgIHJlcXVlc3QuZGF0YSA9IG5ldyBVaW50OEFycmF5KGNvbXByZXNzZWRDb250ZW50KTtcblxuICAgIHJldHVybiBmaWxlRGF0YUxpc3QubGVuZ3RoO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgYXN5bmMgZ2V0RHdhcmZQYXRoKGRzeW1QYXRoOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IGR3YXJmUGF0aDogc3RyaW5nID0gJ0NvbnRlbnRzL1Jlc291cmNlcy9EV0FSRic7XG4gICAgY29uc3QgdGFyZ2V0UGF0aDogc3RyaW5nID0gcGF0aC5qb2luKGRzeW1QYXRoLCBkd2FyZlBhdGgpO1xuICAgIGNvbnN0IGZpbGVzID0gZnMucmVhZGRpclN5bmModGFyZ2V0UGF0aCk7XG4gICAgaWYgKGZpbGVzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgcmV0dXJuIHBhdGguam9pbihkc3ltUGF0aCwgZHdhcmZQYXRoLCBmaWxlc1swXSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGVFcnJvcihgRXhwZWN0ZWQgZXhhY3RseSBvbmUgZmlsZSBpbiB0aGUgZGlyZWN0b3J5LCBidXQgZm91bmQ6ICR7ZmlsZXMubGVuZ3RofWApO1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyBhc3luYyB0cmF2ZXJzZVNvdXJjZU1hcHNGb2xkZXJPbGQoZm9sZGVyUGF0aDogc3RyaW5nLCByZXF1ZXN0OiBVcGxvYWRTb3VyY2VNYXBzUmVxdWVzdCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHN0YWNrOiBzdHJpbmdbXSA9IFtmb2xkZXJQYXRoXTtcblxuICAgIHdoaWxlIChzdGFjay5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IGN1cnJlbnRQYXRoID0gc3RhY2sucG9wKCk7XG4gICAgICBjb25zdCBlbnRyaWVzOiBEaXJlbnRbXSA9IGF3YWl0IHJlYWRkaXIoY3VycmVudFBhdGghLCB7IHdpdGhGaWxlVHlwZXM6IHRydWUgfSk7XG5cbiAgICAgIGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICBlbnRyaWVzLm1hcChhc3luYyAoZmlsZTogRGlyZW50KSA9PiB7XG4gICAgICAgICAgY29uc3QgeyBuYW1lIH0gPSBmaWxlO1xuICAgICAgICAgIGNvbnN0IGVudHJ5UGF0aCA9IHBhdGguam9pbihjdXJyZW50UGF0aCBhcyBzdHJpbmcsIG5hbWUpO1xuICAgICAgICAgIGNvbnN0IGlzQ29ycmVjdFN1ZmZpeCA9IGZpbGUuaXNGaWxlKCkgJiYgbmFtZS5lbmRzV2l0aCgnLmpzLm1hcCcpO1xuXG4gICAgICAgICAgaWYgKGZpbGUuaXNEaXJlY3RvcnkoKSkgc3RhY2sucHVzaChlbnRyeVBhdGgpO1xuICAgICAgICAgIGVsc2UgaWYgKGlzQ29ycmVjdFN1ZmZpeCkgcmVxdWVzdC5maWxlcy5wdXNoKGF3YWl0IEZpbGVQcm9jZXNzb3IuZ2V0RmlsZU1ldGFkYXRhKGVudHJ5UGF0aCkpO1xuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgc3RhdGljIGNvbXByZXNzRmlsZUNvbnRlbnRDaHVua3MoZmlsZUNvbnRlbnQ6IFVpbnQ4QXJyYXkpOiBVaW50OEFycmF5IHtcbiAgICBjb25zdCB7IGNodW5rU2l6ZSB9ID0gY29uZmlnLnJ1bUFwaTsgLy8gNTEyIEtCIGNodW5rIHNpemVcbiAgICBjb25zdCBkZWZsYXRlID0gbmV3IHBha28uRGVmbGF0ZSgpO1xuICAgIGNvbnN0IHRvdGFsQ2h1bmtzID0gTWF0aC5jZWlsKGZpbGVDb250ZW50Lmxlbmd0aCAvIGNodW5rU2l6ZSk7XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRvdGFsQ2h1bmtzOyBpKyspIHtcbiAgICAgIGNvbnN0IHN0YXJ0ID0gaSAqIGNodW5rU2l6ZTtcbiAgICAgIGNvbnN0IGVuZCA9IHN0YXJ0ICsgY2h1bmtTaXplO1xuICAgICAgY29uc3QgY2h1bmsgPSBmaWxlQ29udGVudC5zdWJhcnJheShzdGFydCwgZW5kKTtcblxuICAgICAgY29uc3QgaXNMYXN0Q2h1bmsgPSBpID09PSB0b3RhbENodW5rcyAtIDE7XG5cbiAgICAgIGRlZmxhdGUucHVzaChjaHVuaywgaXNMYXN0Q2h1bmspO1xuICAgIH1cblxuICAgIGNvbnN0IHsgZXJyLCBtc2csIHJlc3VsdCB9ID0gZGVmbGF0ZTtcblxuICAgIGlmIChlcnIpIGNvbnNvbGUuZXJyb3IoUkVEX0NPTE9SLCBtc2cpO1xuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGFzeW5jIGdldEZpbGVNZXRhZGF0YShmaWxlUGF0aDogc3RyaW5nKTogUHJvbWlzZTxGaWxlTWV0YWRhdGE+IHtcbiAgICBjb25zdCB7IHNpemUgfSA9IGF3YWl0IHN0YXQoZmlsZVBhdGgpO1xuICAgIGNvbnN0IHsgbmFtZSB9ID0gcGF0aC5wYXJzZShmaWxlUGF0aCk7XG4gICAgY29uc3QgY29udGVudCA9IGF3YWl0IHJlYWRGaWxlKGZpbGVQYXRoKTtcblxuICAgIHJldHVybiB7IGNodW5rTmFtZTogbmFtZSwgc2l6ZSwgY29udGVudCB9O1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { UploadBlobRequest } from '../proto-models/com/coralogix/blobset/v2/blobset_service';
|
|
2
|
+
export declare function createUploadBlobRequestChunks(request: UploadBlobRequest): AsyncGenerator<{
|
|
3
|
+
data: Uint8Array;
|
|
4
|
+
entityType: import("../proto-models/com/coralogix/blobset/v2/entity_type").EntityType;
|
|
5
|
+
entityMetadata: import("../proto-models/com/coralogix/blobset/v2/entity_metadata").EntityMetadata | undefined;
|
|
6
|
+
}, void, unknown>;
|
|
7
|
+
export declare const consoleError: (message: any) => void;
|
|
8
|
+
export declare const checkMissingArguments: <T>(options: T, requiredArgs: (keyof T)[]) => void;
|
|
9
|
+
export declare const validateCompressedFilesSize: (compressedFilesSize: number, maxCompressedFilesSize: number) => void;
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }
|
|
3
|
+
var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {
|
|
4
|
+
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
|
|
5
|
+
var g = generator.apply(thisArg, _arguments || []), i, q = [];
|
|
6
|
+
return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
|
|
7
|
+
function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
|
|
8
|
+
function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
|
|
9
|
+
function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
|
|
10
|
+
function fulfill(value) { resume("next", value); }
|
|
11
|
+
function reject(value) { resume("throw", value); }
|
|
12
|
+
function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.validateCompressedFilesSize = exports.checkMissingArguments = exports.consoleError = exports.createUploadBlobRequestChunks = void 0;
|
|
16
|
+
const consts_1 = require("../consts/consts");
|
|
17
|
+
function createUploadBlobRequestChunks(request) {
|
|
18
|
+
return __asyncGenerator(this, arguments, function* createUploadBlobRequestChunks_1() {
|
|
19
|
+
const { data } = request;
|
|
20
|
+
if (!data)
|
|
21
|
+
return yield __await(void 0);
|
|
22
|
+
for (let i = 0; i < data.length; i += consts_1.STREAM_CHUNK_SIZE) {
|
|
23
|
+
yield yield __await(Object.assign(Object.assign({}, request), { data: data.subarray(i, i + consts_1.STREAM_CHUNK_SIZE) }));
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
exports.createUploadBlobRequestChunks = createUploadBlobRequestChunks;
|
|
28
|
+
const consoleError = (message) => {
|
|
29
|
+
console.log(consts_1.RED_COLOR, '❌ An error occurred');
|
|
30
|
+
console.error(consts_1.RED_COLOR, message);
|
|
31
|
+
};
|
|
32
|
+
exports.consoleError = consoleError;
|
|
33
|
+
const checkMissingArguments = (options, requiredArgs) => {
|
|
34
|
+
const missingArgs = [];
|
|
35
|
+
requiredArgs.forEach((arg) => {
|
|
36
|
+
if (!options[arg])
|
|
37
|
+
missingArgs.push(arg);
|
|
38
|
+
});
|
|
39
|
+
if (missingArgs.length > 0) {
|
|
40
|
+
const missingArgsList = missingArgs.map(arg => `- ${arg}`).join('\n');
|
|
41
|
+
const errorMessage = `❌ Missing required arguments:\n${missingArgsList}\nPlease provide the necessary options`;
|
|
42
|
+
console.error(consts_1.RED_COLOR, errorMessage);
|
|
43
|
+
process.exit(1);
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
exports.checkMissingArguments = checkMissingArguments;
|
|
47
|
+
const validateCompressedFilesSize = (compressedFilesSize, maxCompressedFilesSize) => {
|
|
48
|
+
if (compressedFilesSize > maxCompressedFilesSize) {
|
|
49
|
+
// Convert sizes to megabytes (MB)
|
|
50
|
+
const compressedFilesSizeMB = (compressedFilesSize / consts_1.MB).toFixed(2);
|
|
51
|
+
const maxCompressedFilesSizeMB = (maxCompressedFilesSize / consts_1.MB).toFixed(2);
|
|
52
|
+
const errorMessage = `
|
|
53
|
+
❌ Error: The total size of compressed files exceeds the maximum allowed size.
|
|
54
|
+
Total Compressed Files Size: ${compressedFilesSizeMB} MB
|
|
55
|
+
Maximum Allowed Size: ${maxCompressedFilesSizeMB} MB
|
|
56
|
+
`;
|
|
57
|
+
console.error(consts_1.RED_COLOR, errorMessage);
|
|
58
|
+
process.exit(1);
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
exports.validateCompressedFilesSize = validateCompressedFilesSize;
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVkLnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdXRpbHMvc2hhcmVkLnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDZDQUFvRTtBQUdwRSxTQUF1Qiw2QkFBNkIsQ0FBQyxPQUEwQjs7UUFDN0UsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLE9BQU8sQ0FBQztRQUV6QixJQUFJLENBQUMsSUFBSTtZQUFFLDZCQUFPO1FBRWxCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBSSwwQkFBaUIsRUFBRTtZQUN2RCxvREFDSyxPQUFPLEtBQ1YsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRywwQkFBaUIsQ0FBQyxJQUM5QyxDQUFDO1NBQ0g7SUFDSCxDQUFDO0NBQUE7QUFYRCxzRUFXQztBQUVNLE1BQU0sWUFBWSxHQUFHLENBQUMsT0FBWSxFQUFRLEVBQUU7SUFDakQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQkFBUyxFQUFFLHFCQUFxQixDQUFDLENBQUM7SUFDOUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxrQkFBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3BDLENBQUMsQ0FBQztBQUhXLFFBQUEsWUFBWSxnQkFHdkI7QUFFSyxNQUFNLHFCQUFxQixHQUFHLENBQUksT0FBVSxFQUFFLFlBQXlCLEVBQVEsRUFBRTtJQUN0RixNQUFNLFdBQVcsR0FBYSxFQUFFLENBQUM7SUFFakMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQVksRUFBRSxFQUFFO1FBQ3BDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDO1lBQUUsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFhLENBQUMsQ0FBQztJQUNyRCxDQUFDLENBQUMsQ0FBQztJQUVILElBQUksV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7UUFDMUIsTUFBTSxlQUFlLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEUsTUFBTSxZQUFZLEdBQUcsa0NBQWtDLGVBQWUsd0NBQXdDLENBQUM7UUFDL0csT0FBTyxDQUFDLEtBQUssQ0FBQyxrQkFBUyxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQ3ZDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDakI7QUFDSCxDQUFDLENBQUM7QUFiVyxRQUFBLHFCQUFxQix5QkFhaEM7QUFFSyxNQUFNLDJCQUEyQixHQUFHLENBQUMsbUJBQTJCLEVBQUUsc0JBQThCLEVBQVEsRUFBRTtJQUMvRyxJQUFJLG1CQUFtQixHQUFHLHNCQUFzQixFQUFFO1FBQ2hELGtDQUFrQztRQUNsQyxNQUFNLHFCQUFxQixHQUFXLENBQUMsbUJBQW1CLEdBQUcsV0FBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzVFLE1BQU0sd0JBQXdCLEdBQVcsQ0FBQyxzQkFBc0IsR0FBRyxXQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFbEYsTUFBTSxZQUFZLEdBQUc7OzJDQUVrQixxQkFBcUI7b0NBQzVCLHdCQUF3QjthQUMvQyxDQUFDO1FBRVYsT0FBTyxDQUFDLEtBQUssQ0FBQyxrQkFBUyxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQ3ZDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDakI7QUFDSCxDQUFDLENBQUM7QUFmVyxRQUFBLDJCQUEyQiwrQkFldEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNQiwgUkVEX0NPTE9SLCBTVFJFQU1fQ0hVTktfU0laRSB9IGZyb20gJy4uL2NvbnN0cy9jb25zdHMnO1xuaW1wb3J0IHsgVXBsb2FkQmxvYlJlcXVlc3QgfSBmcm9tICcuLi9wcm90by1tb2RlbHMvY29tL2NvcmFsb2dpeC9ibG9ic2V0L3YyL2Jsb2JzZXRfc2VydmljZSc7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiogY3JlYXRlVXBsb2FkQmxvYlJlcXVlc3RDaHVua3MocmVxdWVzdDogVXBsb2FkQmxvYlJlcXVlc3QpIHtcbiAgY29uc3QgeyBkYXRhIH0gPSByZXF1ZXN0O1xuXG4gIGlmICghZGF0YSkgcmV0dXJuO1xuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgZGF0YS5sZW5ndGg7IGkgKz0gU1RSRUFNX0NIVU5LX1NJWkUpIHtcbiAgICB5aWVsZCB7XG4gICAgICAuLi5yZXF1ZXN0LFxuICAgICAgZGF0YTogZGF0YS5zdWJhcnJheShpLCBpICsgU1RSRUFNX0NIVU5LX1NJWkUpLFxuICAgIH07XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IGNvbnNvbGVFcnJvciA9IChtZXNzYWdlOiBhbnkpOiB2b2lkID0+IHtcbiAgY29uc29sZS5sb2coUkVEX0NPTE9SLCAn4p2MIEFuIGVycm9yIG9jY3VycmVkJyk7XG4gIGNvbnNvbGUuZXJyb3IoUkVEX0NPTE9SLCBtZXNzYWdlKTtcbn07XG5cbmV4cG9ydCBjb25zdCBjaGVja01pc3NpbmdBcmd1bWVudHMgPSA8VD4ob3B0aW9uczogVCwgcmVxdWlyZWRBcmdzOiAoa2V5b2YgVClbXSk6IHZvaWQgPT4ge1xuICBjb25zdCBtaXNzaW5nQXJnczogc3RyaW5nW10gPSBbXTtcblxuICByZXF1aXJlZEFyZ3MuZm9yRWFjaCgoYXJnOiBrZXlvZiBUKSA9PiB7XG4gICAgaWYgKCFvcHRpb25zW2FyZ10pIG1pc3NpbmdBcmdzLnB1c2goYXJnIGFzIHN0cmluZyk7XG4gIH0pO1xuXG4gIGlmIChtaXNzaW5nQXJncy5sZW5ndGggPiAwKSB7XG4gICAgY29uc3QgbWlzc2luZ0FyZ3NMaXN0ID0gbWlzc2luZ0FyZ3MubWFwKGFyZyA9PiBgLSAke2FyZ31gKS5qb2luKCdcXG4nKTtcbiAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSBg4p2MIE1pc3NpbmcgcmVxdWlyZWQgYXJndW1lbnRzOlxcbiR7bWlzc2luZ0FyZ3NMaXN0fVxcblBsZWFzZSBwcm92aWRlIHRoZSBuZWNlc3Nhcnkgb3B0aW9uc2A7XG4gICAgY29uc29sZS5lcnJvcihSRURfQ09MT1IsIGVycm9yTWVzc2FnZSk7XG4gICAgcHJvY2Vzcy5leGl0KDEpO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgdmFsaWRhdGVDb21wcmVzc2VkRmlsZXNTaXplID0gKGNvbXByZXNzZWRGaWxlc1NpemU6IG51bWJlciwgbWF4Q29tcHJlc3NlZEZpbGVzU2l6ZTogbnVtYmVyKTogdm9pZCA9PiB7XG4gIGlmIChjb21wcmVzc2VkRmlsZXNTaXplID4gbWF4Q29tcHJlc3NlZEZpbGVzU2l6ZSkge1xuICAgIC8vIENvbnZlcnQgc2l6ZXMgdG8gbWVnYWJ5dGVzIChNQilcbiAgICBjb25zdCBjb21wcmVzc2VkRmlsZXNTaXplTUI6IHN0cmluZyA9IChjb21wcmVzc2VkRmlsZXNTaXplIC8gTUIpLnRvRml4ZWQoMik7XG4gICAgY29uc3QgbWF4Q29tcHJlc3NlZEZpbGVzU2l6ZU1COiBzdHJpbmcgPSAobWF4Q29tcHJlc3NlZEZpbGVzU2l6ZSAvIE1CKS50b0ZpeGVkKDIpO1xuXG4gICAgY29uc3QgZXJyb3JNZXNzYWdlID0gYFxuICAgICAgICAgICAg4p2MIEVycm9yOiBUaGUgdG90YWwgc2l6ZSBvZiBjb21wcmVzc2VkIGZpbGVzIGV4Y2VlZHMgdGhlIG1heGltdW0gYWxsb3dlZCBzaXplLlxuICAgICAgICAgICAgVG90YWwgQ29tcHJlc3NlZCBGaWxlcyBTaXplOiAke2NvbXByZXNzZWRGaWxlc1NpemVNQn0gTUJcbiAgICAgICAgICAgIE1heGltdW0gQWxsb3dlZCBTaXplOiAke21heENvbXByZXNzZWRGaWxlc1NpemVNQn0gTUJcbiAgICAgICAgICAgIGA7XG5cbiAgICBjb25zb2xlLmVycm9yKFJFRF9DT0xPUiwgZXJyb3JNZXNzYWdlKTtcbiAgICBwcm9jZXNzLmV4aXQoMSk7XG4gIH1cbn07XG4iXX0=
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export interface
|
|
1
|
+
export interface DeleteSourceMapsCommandOptions {
|
|
2
2
|
privateKey: string;
|
|
3
3
|
application: string;
|
|
4
4
|
version: string;
|
|
@@ -6,7 +6,7 @@ export interface DeleteCommandOptions {
|
|
|
6
6
|
help?: string;
|
|
7
7
|
}
|
|
8
8
|
|
|
9
|
-
export interface
|
|
9
|
+
export interface UpdateSourceMapsCommandOptions {
|
|
10
10
|
privateKey: string;
|
|
11
11
|
application: string;
|
|
12
12
|
version: string;
|
|
@@ -19,7 +19,7 @@ export interface UpdateCommandOptions {
|
|
|
19
19
|
help?: string;
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
-
export interface
|
|
22
|
+
export interface UploadSourceMapsCommandOptions {
|
|
23
23
|
privateKey: string;
|
|
24
24
|
application: string;
|
|
25
25
|
version: string;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@coralogix/rum-cli",
|
|
3
|
-
"version": "1.1.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "1.1.24",
|
|
4
|
+
"description": "coralogix rum cli",
|
|
5
5
|
"bin": {
|
|
6
6
|
"coralogix-rum-cli": "dist/cli/rum-cli.js"
|
|
7
7
|
},
|
|
@@ -26,7 +26,8 @@
|
|
|
26
26
|
"pako": "^2.1.0",
|
|
27
27
|
"prom-client": "^14.0.1",
|
|
28
28
|
"protobufjs": "^7.2.4",
|
|
29
|
-
"@grpc/grpc-js": "1.8.0"
|
|
29
|
+
"@grpc/grpc-js": "1.8.0",
|
|
30
|
+
"zlib": "^1.0.5"
|
|
30
31
|
},
|
|
31
32
|
"devDependencies": {
|
|
32
33
|
"@types/bunyan": "^1.8.8",
|