@coralogix/rum-cli 1.1.17 → 1.1.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/.prettierrc +15 -0
  2. package/README.md +26 -19
  3. package/api/rum-api.ts +104 -91
  4. package/cli/commands/delete-source-maps-command.ts +34 -0
  5. package/cli/commands/index.ts +7 -0
  6. package/cli/commands/update-source-maps-command.ts +38 -0
  7. package/cli/commands/upload-source-maps-command.ts +38 -0
  8. package/cli/rum-cli.ts +13 -47
  9. package/cli/validators/index.ts +9 -10
  10. package/config/config.ts +21 -21
  11. package/consts/consts.ts +16 -0
  12. package/dist/api/rum-api.d.ts +4 -3
  13. package/dist/api/rum-api.js +60 -72
  14. package/dist/cli/commands/delete-source-maps-command.d.ts +2 -0
  15. package/dist/cli/commands/delete-source-maps-command.js +43 -0
  16. package/dist/cli/commands/index.d.ts +6 -0
  17. package/dist/cli/commands/index.js +8 -0
  18. package/dist/cli/commands/update-source-maps-command.d.ts +2 -0
  19. package/dist/cli/commands/update-source-maps-command.js +47 -0
  20. package/dist/cli/commands/upload-source-maps-command.d.ts +2 -0
  21. package/dist/cli/commands/upload-source-maps-command.js +47 -0
  22. package/dist/cli/rum-cli.js +14 -55
  23. package/dist/cli/validators/index.js +5 -6
  24. package/dist/config/config.js +6 -5
  25. package/dist/{cli/theme/index.d.ts → consts/consts.d.ts} +2 -0
  26. package/dist/consts/consts.js +16 -0
  27. package/dist/models/commands.model.d.ts +29 -0
  28. package/dist/models/commands.model.js +3 -0
  29. package/dist/proto-models/com/coralogix/rum/v2/rum_service.d.ts +88 -1
  30. package/dist/proto-models/com/coralogix/rum/v2/rum_service.js +228 -4
  31. package/dist/proto-models/com/coralogix/rum/v2/rum_session_recording_service.d.ts +65 -0
  32. package/dist/proto-models/com/coralogix/rum/v2/rum_session_recording_service.js +182 -0
  33. package/dist/proto-models/com/coralogix/rum/v2/rum_source_map_service.d.ts +92 -0
  34. package/dist/proto-models/com/coralogix/rum/v2/rum_source_map_service.js +271 -2
  35. package/dist/proto-models/com/coralogix/rum/v2/source_map_release.d.ts +13 -0
  36. package/dist/proto-models/com/coralogix/rum/v2/source_map_release.js +77 -2
  37. package/dist/services/source-maps.service.d.ts +5 -0
  38. package/dist/services/source-maps.service.js +80 -0
  39. package/dist/utils/index.d.ts +6 -0
  40. package/dist/utils/index.js +115 -0
  41. package/models/commands.model.ts +31 -0
  42. package/package.json +5 -3
  43. package/proto-models/com/coralogix/rum/v2/rum_service.ts +268 -2
  44. package/proto-models/com/coralogix/rum/v2/rum_session_recording_service.ts +217 -0
  45. package/proto-models/com/coralogix/rum/v2/rum_source_map_service.ts +322 -0
  46. package/proto-models/com/coralogix/rum/v2/source_map_release.ts +90 -0
  47. package/protofetch.lock +2 -2
  48. package/protofetch.toml +1 -1
  49. package/protos/com/coralogix/rum/v2/rum_service.proto +16 -1
  50. package/protos/com/coralogix/rum/v2/rum_session_recording_service.proto +15 -0
  51. package/protos/com/coralogix/rum/v2/rum_source_map_service.proto +18 -0
  52. package/protos/com/coralogix/rum/v2/source_map_release.proto +6 -0
  53. package/protoset.bin +0 -0
  54. package/services/source-maps.service.ts +96 -0
  55. package/utils/index.ts +93 -0
  56. package/cli/consts/consts.ts +0 -2
  57. package/cli/theme/index.ts +0 -5
  58. package/dist/cli/consts/consts.d.ts +0 -2
  59. package/dist/cli/consts/consts.js +0 -6
  60. package/dist/cli/theme/index.js +0 -7
  61. package/dist/model/cli.model.d.ts +0 -1
  62. package/dist/model/cli.model.js +0 -12
  63. package/dist/services/source-maps/source-maps.service.d.ts +0 -3
  64. package/dist/services/source-maps/source-maps.service.js +0 -42
  65. package/dist/services/source-maps/utils/traverse-folder.util.d.ts +0 -2
  66. package/dist/services/source-maps/utils/traverse-folder.util.js +0 -42
  67. package/model/cli.model.ts +0 -8
  68. package/services/source-maps/source-maps.service.ts +0 -31
  69. package/services/source-maps/utils/traverse-folder.util.ts +0 -33
@@ -0,0 +1,5 @@
1
+ export declare class SourceMapsService {
2
+ static upload(application: string, version: string, repoName: string | undefined, commitHash: string | undefined, orgName: string | undefined, folderPath: string, env: string, privateKey: string): Promise<void>;
3
+ static update(application: string, version: string, repoName: string | undefined, commitHash: string | undefined, orgName: string | undefined, folderPath: string, env: string, privateKey: string): Promise<void>;
4
+ static delete(application: string, version: string, env: string, privateKey: string): Promise<void>;
5
+ }
@@ -0,0 +1,80 @@
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.SourceMapsService = void 0;
13
+ const rum_source_map_service_1 = require("../proto-models/com/coralogix/rum/v2/rum_source_map_service");
14
+ const rum_api_1 = require("../api/rum-api");
15
+ const consts_1 = require("../consts/consts");
16
+ const utils_1 = require("../utils");
17
+ class SourceMapsService {
18
+ static upload(application, version, repoName, commitHash, orgName, folderPath, env, privateKey) {
19
+ return __awaiter(this, void 0, void 0, function* () {
20
+ const request = rum_source_map_service_1.UploadSourceMapsRequest.create();
21
+ request.application = application;
22
+ request.releaseId = version;
23
+ request.repoName = repoName;
24
+ request.commitHash = commitHash;
25
+ request.user = orgName;
26
+ console.log(consts_1.GRAY_COLOR, '🚀 Uploading source maps...');
27
+ try {
28
+ yield (0, utils_1.traverseFolder)(folderPath, request);
29
+ yield rum_api_1.RumApi.uploadSourceMaps(request, env, privateKey);
30
+ console.log(consts_1.GREEN_COLOR, '✅ Source maps uploaded successfully!');
31
+ console.log(consts_1.GREEN_COLOR, `✅ Total chunk files processed: ${request.files.length}`);
32
+ console.log(consts_1.GREEN_COLOR, '✅ Processing complete.');
33
+ }
34
+ catch (error) {
35
+ console.log(consts_1.RED_COLOR, '❌ An error occurred');
36
+ console.error(consts_1.RED_COLOR, error);
37
+ }
38
+ });
39
+ }
40
+ static update(application, version, repoName, commitHash, orgName, folderPath, env, privateKey) {
41
+ return __awaiter(this, void 0, void 0, function* () {
42
+ const request = rum_source_map_service_1.UpdateSourceMapRequest.create();
43
+ request.application = application;
44
+ request.releaseId = version;
45
+ request.repoName = repoName;
46
+ request.commitHash = commitHash;
47
+ request.user = orgName;
48
+ console.log(consts_1.GRAY_COLOR, '🔄 Updating source maps...');
49
+ try {
50
+ yield (0, utils_1.traverseFolder)(folderPath, request);
51
+ yield rum_api_1.RumApi.updateSourceMap(request, env, privateKey);
52
+ console.log(consts_1.GREEN_COLOR, '✅ Source maps updated successfully!');
53
+ console.log(consts_1.GREEN_COLOR, `✅ Total chunk files processed: ${request.files.length}`);
54
+ console.log(consts_1.GREEN_COLOR, '✅ Processing complete.');
55
+ }
56
+ catch (error) {
57
+ console.log(consts_1.RED_COLOR, '❌ An error occurred');
58
+ console.error(consts_1.RED_COLOR, error);
59
+ }
60
+ });
61
+ }
62
+ static delete(application, version, env, privateKey) {
63
+ return __awaiter(this, void 0, void 0, function* () {
64
+ const request = rum_source_map_service_1.DeleteSourceMapRequest.create();
65
+ request.application = application;
66
+ request.releaseId = version;
67
+ console.log(consts_1.GRAY_COLOR, '🗑️ Deleting source maps...');
68
+ try {
69
+ yield rum_api_1.RumApi.deleteSourceMap(request, env, privateKey);
70
+ console.log(consts_1.GREEN_COLOR, '✅ Source maps deleted successfully!');
71
+ }
72
+ catch (error) {
73
+ console.log(consts_1.RED_COLOR, '❌ An error occurred');
74
+ console.error(consts_1.RED_COLOR, error);
75
+ }
76
+ });
77
+ }
78
+ }
79
+ exports.SourceMapsService = SourceMapsService;
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlLW1hcHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NlcnZpY2VzL3NvdXJjZS1tYXBzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsd0dBSXFFO0FBQ3JFLDRDQUF3QztBQUN4Qyw2Q0FBc0U7QUFDdEUsb0NBQTBDO0FBRTFDLE1BQWEsaUJBQWlCO0lBQzVCLE1BQU0sQ0FBTyxNQUFNLENBQ2pCLFdBQW1CLEVBQ25CLE9BQWUsRUFDZixRQUE0QixFQUM1QixVQUE4QixFQUM5QixPQUEyQixFQUMzQixVQUFrQixFQUNsQixHQUFXLEVBQ1gsVUFBa0I7O1lBRWxCLE1BQU0sT0FBTyxHQUFHLGdEQUF1QixDQUFDLE1BQU0sRUFBRSxDQUFDO1lBRWpELE9BQU8sQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO1lBQ2xDLE9BQU8sQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDO1lBQzVCLE9BQU8sQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1lBQzVCLE9BQU8sQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1lBQ2hDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDO1lBRXZCLE9BQU8sQ0FBQyxHQUFHLENBQUMsbUJBQVUsRUFBRSw2QkFBNkIsQ0FBQyxDQUFDO1lBRXZELElBQUk7Z0JBQ0YsTUFBTSxJQUFBLHNCQUFjLEVBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDO2dCQUUxQyxNQUFNLGdCQUFNLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxVQUFVLENBQUMsQ0FBQztnQkFFeEQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxvQkFBVyxFQUFFLHNDQUFzQyxDQUFDLENBQUM7Z0JBQ2pFLE9BQU8sQ0FBQyxHQUFHLENBQUMsb0JBQVcsRUFBRSxrQ0FBa0MsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO2dCQUNuRixPQUFPLENBQUMsR0FBRyxDQUFDLG9CQUFXLEVBQUUsd0JBQXdCLENBQUMsQ0FBQzthQUNwRDtZQUFDLE9BQU8sS0FBSyxFQUFFO2dCQUNkLE9BQU8sQ0FBQyxHQUFHLENBQUMsa0JBQVMsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO2dCQUM5QyxPQUFPLENBQUMsS0FBSyxDQUFDLGtCQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7YUFDakM7UUFDSCxDQUFDO0tBQUE7SUFFRCxNQUFNLENBQU8sTUFBTSxDQUNqQixXQUFtQixFQUNuQixPQUFlLEVBQ2YsUUFBNEIsRUFDNUIsVUFBOEIsRUFDOUIsT0FBMkIsRUFDM0IsVUFBa0IsRUFDbEIsR0FBVyxFQUNYLFVBQWtCOztZQUVsQixNQUFNLE9BQU8sR0FBRywrQ0FBc0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUVoRCxPQUFPLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztZQUNsQyxPQUFPLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQztZQUM1QixPQUFPLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztZQUM1QixPQUFPLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztZQUNoQyxPQUFPLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQztZQUV2QixPQUFPLENBQUMsR0FBRyxDQUFDLG1CQUFVLEVBQUUsNEJBQTRCLENBQUMsQ0FBQztZQUV0RCxJQUFJO2dCQUNGLE1BQU0sSUFBQSxzQkFBYyxFQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQztnQkFFMUMsTUFBTSxnQkFBTSxDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLFVBQVUsQ0FBQyxDQUFDO2dCQUV2RCxPQUFPLENBQUMsR0FBRyxDQUFDLG9CQUFXLEVBQUUscUNBQXFDLENBQUMsQ0FBQztnQkFDaEUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxvQkFBVyxFQUFFLGtDQUFrQyxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7Z0JBQ25GLE9BQU8sQ0FBQyxHQUFHLENBQUMsb0JBQVcsRUFBRSx3QkFBd0IsQ0FBQyxDQUFDO2FBQ3BEO1lBQUMsT0FBTyxLQUFLLEVBQUU7Z0JBQ2QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQkFBUyxFQUFFLHFCQUFxQixDQUFDLENBQUM7Z0JBQzlDLE9BQU8sQ0FBQyxLQUFLLENBQUMsa0JBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQzthQUNqQztRQUNILENBQUM7S0FBQTtJQUVELE1BQU0sQ0FBTyxNQUFNLENBQUMsV0FBbUIsRUFBRSxPQUFlLEVBQUUsR0FBVyxFQUFFLFVBQWtCOztZQUN2RixNQUFNLE9BQU8sR0FBRywrQ0FBc0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUVoRCxPQUFPLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztZQUNsQyxPQUFPLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQztZQUU1QixPQUFPLENBQUMsR0FBRyxDQUFDLG1CQUFVLEVBQUUsNkJBQTZCLENBQUMsQ0FBQztZQUV2RCxJQUFJO2dCQUNGLE1BQU0sZ0JBQU0sQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxVQUFVLENBQUMsQ0FBQztnQkFFdkQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxvQkFBVyxFQUFFLHFDQUFxQyxDQUFDLENBQUM7YUFDakU7WUFBQyxPQUFPLEtBQUssRUFBRTtnQkFDZCxPQUFPLENBQUMsR0FBRyxDQUFDLGtCQUFTLEVBQUUscUJBQXFCLENBQUMsQ0FBQztnQkFDOUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxrQkFBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO2FBQ2pDO1FBQ0gsQ0FBQztLQUFBO0NBQ0Y7QUF0RkQsOENBc0ZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGVsZXRlU291cmNlTWFwUmVxdWVzdCxcbiAgVXBkYXRlU291cmNlTWFwUmVxdWVzdCxcbiAgVXBsb2FkU291cmNlTWFwc1JlcXVlc3QsXG59IGZyb20gJy4uL3Byb3RvLW1vZGVscy9jb20vY29yYWxvZ2l4L3J1bS92Mi9ydW1fc291cmNlX21hcF9zZXJ2aWNlJztcbmltcG9ydCB7IFJ1bUFwaSB9IGZyb20gJy4uL2FwaS9ydW0tYXBpJztcbmltcG9ydCB7IEdSQVlfQ09MT1IsIEdSRUVOX0NPTE9SLCBSRURfQ09MT1IgfSBmcm9tICcuLi9jb25zdHMvY29uc3RzJztcbmltcG9ydCB7IHRyYXZlcnNlRm9sZGVyIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5leHBvcnQgY2xhc3MgU291cmNlTWFwc1NlcnZpY2Uge1xuICBzdGF0aWMgYXN5bmMgdXBsb2FkKFxuICAgIGFwcGxpY2F0aW9uOiBzdHJpbmcsXG4gICAgdmVyc2lvbjogc3RyaW5nLFxuICAgIHJlcG9OYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gICAgY29tbWl0SGFzaDogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICAgIG9yZ05hbWU6IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgICBmb2xkZXJQYXRoOiBzdHJpbmcsXG4gICAgZW52OiBzdHJpbmcsXG4gICAgcHJpdmF0ZUtleTogc3RyaW5nLFxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCByZXF1ZXN0ID0gVXBsb2FkU291cmNlTWFwc1JlcXVlc3QuY3JlYXRlKCk7XG5cbiAgICByZXF1ZXN0LmFwcGxpY2F0aW9uID0gYXBwbGljYXRpb247XG4gICAgcmVxdWVzdC5yZWxlYXNlSWQgPSB2ZXJzaW9uO1xuICAgIHJlcXVlc3QucmVwb05hbWUgPSByZXBvTmFtZTtcbiAgICByZXF1ZXN0LmNvbW1pdEhhc2ggPSBjb21taXRIYXNoO1xuICAgIHJlcXVlc3QudXNlciA9IG9yZ05hbWU7XG5cbiAgICBjb25zb2xlLmxvZyhHUkFZX0NPTE9SLCAn8J+agCBVcGxvYWRpbmcgc291cmNlIG1hcHMuLi4nKTtcblxuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0cmF2ZXJzZUZvbGRlcihmb2xkZXJQYXRoLCByZXF1ZXN0KTtcblxuICAgICAgYXdhaXQgUnVtQXBpLnVwbG9hZFNvdXJjZU1hcHMocmVxdWVzdCwgZW52LCBwcml2YXRlS2V5KTtcblxuICAgICAgY29uc29sZS5sb2coR1JFRU5fQ09MT1IsICfinIUgU291cmNlIG1hcHMgdXBsb2FkZWQgc3VjY2Vzc2Z1bGx5IScpO1xuICAgICAgY29uc29sZS5sb2coR1JFRU5fQ09MT1IsIGDinIUgVG90YWwgY2h1bmsgZmlsZXMgcHJvY2Vzc2VkOiAke3JlcXVlc3QuZmlsZXMubGVuZ3RofWApO1xuICAgICAgY29uc29sZS5sb2coR1JFRU5fQ09MT1IsICfinIUgUHJvY2Vzc2luZyBjb21wbGV0ZS4nKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5sb2coUkVEX0NPTE9SLCAn4p2MIEFuIGVycm9yIG9jY3VycmVkJyk7XG4gICAgICBjb25zb2xlLmVycm9yKFJFRF9DT0xPUiwgZXJyb3IpO1xuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyBhc3luYyB1cGRhdGUoXG4gICAgYXBwbGljYXRpb246IHN0cmluZyxcbiAgICB2ZXJzaW9uOiBzdHJpbmcsXG4gICAgcmVwb05hbWU6IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgICBjb21taXRIYXNoOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gICAgb3JnTmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICAgIGZvbGRlclBhdGg6IHN0cmluZyxcbiAgICBlbnY6IHN0cmluZyxcbiAgICBwcml2YXRlS2V5OiBzdHJpbmcsXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHJlcXVlc3QgPSBVcGRhdGVTb3VyY2VNYXBSZXF1ZXN0LmNyZWF0ZSgpO1xuXG4gICAgcmVxdWVzdC5hcHBsaWNhdGlvbiA9IGFwcGxpY2F0aW9uO1xuICAgIHJlcXVlc3QucmVsZWFzZUlkID0gdmVyc2lvbjtcbiAgICByZXF1ZXN0LnJlcG9OYW1lID0gcmVwb05hbWU7XG4gICAgcmVxdWVzdC5jb21taXRIYXNoID0gY29tbWl0SGFzaDtcbiAgICByZXF1ZXN0LnVzZXIgPSBvcmdOYW1lO1xuXG4gICAgY29uc29sZS5sb2coR1JBWV9DT0xPUiwgJ/CflIQgVXBkYXRpbmcgc291cmNlIG1hcHMuLi4nKTtcblxuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0cmF2ZXJzZUZvbGRlcihmb2xkZXJQYXRoLCByZXF1ZXN0KTtcblxuICAgICAgYXdhaXQgUnVtQXBpLnVwZGF0ZVNvdXJjZU1hcChyZXF1ZXN0LCBlbnYsIHByaXZhdGVLZXkpO1xuXG4gICAgICBjb25zb2xlLmxvZyhHUkVFTl9DT0xPUiwgJ+KchSBTb3VyY2UgbWFwcyB1cGRhdGVkIHN1Y2Nlc3NmdWxseSEnKTtcbiAgICAgIGNvbnNvbGUubG9nKEdSRUVOX0NPTE9SLCBg4pyFIFRvdGFsIGNodW5rIGZpbGVzIHByb2Nlc3NlZDogJHtyZXF1ZXN0LmZpbGVzLmxlbmd0aH1gKTtcbiAgICAgIGNvbnNvbGUubG9nKEdSRUVOX0NPTE9SLCAn4pyFIFByb2Nlc3NpbmcgY29tcGxldGUuJyk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUubG9nKFJFRF9DT0xPUiwgJ+KdjCBBbiBlcnJvciBvY2N1cnJlZCcpO1xuICAgICAgY29uc29sZS5lcnJvcihSRURfQ09MT1IsIGVycm9yKTtcbiAgICB9XG4gIH1cblxuICBzdGF0aWMgYXN5bmMgZGVsZXRlKGFwcGxpY2F0aW9uOiBzdHJpbmcsIHZlcnNpb246IHN0cmluZywgZW52OiBzdHJpbmcsIHByaXZhdGVLZXk6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHJlcXVlc3QgPSBEZWxldGVTb3VyY2VNYXBSZXF1ZXN0LmNyZWF0ZSgpO1xuXG4gICAgcmVxdWVzdC5hcHBsaWNhdGlvbiA9IGFwcGxpY2F0aW9uO1xuICAgIHJlcXVlc3QucmVsZWFzZUlkID0gdmVyc2lvbjtcblxuICAgIGNvbnNvbGUubG9nKEdSQVlfQ09MT1IsICfwn5eR77iPIERlbGV0aW5nIHNvdXJjZSBtYXBzLi4uJyk7XG5cbiAgICB0cnkge1xuICAgICAgYXdhaXQgUnVtQXBpLmRlbGV0ZVNvdXJjZU1hcChyZXF1ZXN0LCBlbnYsIHByaXZhdGVLZXkpO1xuXG4gICAgICBjb25zb2xlLmxvZyhHUkVFTl9DT0xPUiwgJ+KchSBTb3VyY2UgbWFwcyBkZWxldGVkIHN1Y2Nlc3NmdWxseSEnKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5sb2coUkVEX0NPTE9SLCAn4p2MIEFuIGVycm9yIG9jY3VycmVkJyk7XG4gICAgICBjb25zb2xlLmVycm9yKFJFRF9DT0xPUiwgZXJyb3IpO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -0,0 +1,6 @@
1
+ import { UploadSourceMapsRequest } from '../proto-models/com/coralogix/rum/v2/rum_source_map_service';
2
+ import { FileMetadata } from '../proto-models/com/coralogix/rum/v2/file';
3
+ export declare const traverseFolder: (folderPath: string, request: UploadSourceMapsRequest) => Promise<void>;
4
+ export declare const compressFileContentChunks: (fileContent: Uint8Array) => Uint8Array;
5
+ export declare const validateCompressedFilesSize: (compressedFiles: FileMetadata[], maxCompressedFilesSize: number) => void;
6
+ export declare const checkMissingArguments: <T>(options: T, requiredArgs: (keyof T)[]) => void;
@@ -0,0 +1,115 @@
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.checkMissingArguments = exports.validateCompressedFilesSize = exports.compressFileContentChunks = exports.traverseFolder = void 0;
39
+ const pako = __importStar(require("pako"));
40
+ const fs_1 = require("fs");
41
+ const config_1 = __importDefault(require("../config"));
42
+ const path = __importStar(require("path"));
43
+ const consts_1 = require("../consts/consts");
44
+ const { readdir, stat, readFile } = fs_1.promises;
45
+ const traverseFolder = (folderPath, request) => __awaiter(void 0, void 0, void 0, function* () {
46
+ const stack = [folderPath];
47
+ while (stack.length) {
48
+ const currentPath = stack.pop();
49
+ const entries = yield readdir(currentPath, { withFileTypes: true });
50
+ yield Promise.all(entries.map((file) => __awaiter(void 0, void 0, void 0, function* () {
51
+ const { name } = file;
52
+ const entryPath = path.join(currentPath, name);
53
+ const isDotMapFile = file.isFile() && name.endsWith('.js.map');
54
+ if (file.isDirectory())
55
+ stack.push(entryPath);
56
+ else if (isDotMapFile)
57
+ request.files.push(yield getFileMetadata(entryPath));
58
+ })));
59
+ }
60
+ });
61
+ exports.traverseFolder = traverseFolder;
62
+ const getFileMetadata = (filePath) => __awaiter(void 0, void 0, void 0, function* () {
63
+ const { size } = yield stat(filePath);
64
+ const { name } = path.parse(filePath);
65
+ const content = yield readFile(filePath);
66
+ return { chunkName: name, size, content };
67
+ });
68
+ const compressFileContentChunks = (fileContent) => {
69
+ const { chunkSize } = config_1.default.rumApi; // 512 KB chunk size
70
+ const deflate = new pako.Deflate();
71
+ const totalChunks = Math.ceil(fileContent.length / chunkSize);
72
+ for (let i = 0; i < totalChunks; i++) {
73
+ const start = i * chunkSize;
74
+ const end = start + chunkSize;
75
+ const chunk = fileContent.subarray(start, end);
76
+ const isLastChunk = i === totalChunks - 1;
77
+ deflate.push(chunk, isLastChunk);
78
+ }
79
+ const { err, msg, result } = deflate;
80
+ if (err)
81
+ console.error(consts_1.RED_COLOR, msg);
82
+ return result;
83
+ };
84
+ exports.compressFileContentChunks = compressFileContentChunks;
85
+ const validateCompressedFilesSize = (compressedFiles, maxCompressedFilesSize) => {
86
+ const compressedFilesSize = compressedFiles.reduce((sum, file) => sum + file.content.length, 0);
87
+ if (compressedFilesSize > maxCompressedFilesSize) {
88
+ // Convert sizes to megabytes (MB)
89
+ const compressedFilesSizeMB = (compressedFilesSize / consts_1.MB).toFixed(2);
90
+ const maxCompressedFilesSizeMB = (maxCompressedFilesSize / consts_1.MB).toFixed(2);
91
+ const errorMessage = `
92
+ ❌ Error: The total size of compressed files exceeds the maximum allowed size.
93
+ Total Compressed Files Size: ${compressedFilesSizeMB} MB
94
+ Maximum Allowed Size: ${maxCompressedFilesSizeMB} MB
95
+ `;
96
+ console.error(consts_1.RED_COLOR, errorMessage);
97
+ process.exit(1);
98
+ }
99
+ };
100
+ exports.validateCompressedFilesSize = validateCompressedFilesSize;
101
+ const checkMissingArguments = (options, requiredArgs) => {
102
+ const missingArgs = [];
103
+ requiredArgs.forEach((arg) => {
104
+ if (!options[arg])
105
+ missingArgs.push(arg);
106
+ });
107
+ if (missingArgs.length > 0) {
108
+ const missingArgsList = missingArgs.map(arg => `- ${arg}`).join('\n');
109
+ const errorMessage = `❌ Missing required arguments:\n${missingArgsList}\nPlease provide the necessary options`;
110
+ console.error(consts_1.RED_COLOR, errorMessage);
111
+ process.exit(1);
112
+ }
113
+ };
114
+ exports.checkMissingArguments = checkMissingArguments;
115
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi91dGlscy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDJDQUE2QjtBQUM3QiwyQkFBb0Q7QUFFcEQsdURBQStCO0FBQy9CLDJDQUE2QjtBQUM3Qiw2Q0FBaUQ7QUFHakQsTUFBTSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEdBQUcsYUFBVSxDQUFDO0FBRXhDLE1BQU0sY0FBYyxHQUFHLENBQU8sVUFBa0IsRUFBRSxPQUFnQyxFQUFpQixFQUFFO0lBQzFHLE1BQU0sS0FBSyxHQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFckMsT0FBTyxLQUFLLENBQUMsTUFBTSxFQUFFO1FBQ25CLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNoQyxNQUFNLE9BQU8sR0FBYSxNQUFNLE9BQU8sQ0FBQyxXQUFZLEVBQUUsRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUUvRSxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQ2YsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFPLElBQVksRUFBRSxFQUFFO1lBQ2pDLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUM7WUFDdEIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFxQixFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ3pELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBRS9ELElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtnQkFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2lCQUN6QyxJQUFJLFlBQVk7Z0JBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUM5RSxDQUFDLENBQUEsQ0FBQyxDQUNILENBQUM7S0FDSDtBQUNILENBQUMsQ0FBQSxDQUFDO0FBbEJXLFFBQUEsY0FBYyxrQkFrQnpCO0FBRUYsTUFBTSxlQUFlLEdBQUcsQ0FBTyxRQUFnQixFQUF5QixFQUFFO0lBQ3hFLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN0QyxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN0QyxNQUFNLE9BQU8sR0FBRyxNQUFNLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUV6QyxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLENBQUM7QUFDNUMsQ0FBQyxDQUFBLENBQUM7QUFFSyxNQUFNLHlCQUF5QixHQUFHLENBQUMsV0FBdUIsRUFBYyxFQUFFO0lBQy9FLE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxnQkFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLG9CQUFvQjtJQUN6RCxNQUFNLE9BQU8sR0FBRyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNuQyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDLENBQUM7SUFFOUQsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFdBQVcsRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUNwQyxNQUFNLEtBQUssR0FBRyxDQUFDLEdBQUcsU0FBUyxDQUFDO1FBQzVCLE1BQU0sR0FBRyxHQUFHLEtBQUssR0FBRyxTQUFTLENBQUM7UUFDOUIsTUFBTSxLQUFLLEdBQUcsV0FBVyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFFL0MsTUFBTSxXQUFXLEdBQUcsQ0FBQyxLQUFLLFdBQVcsR0FBRyxDQUFDLENBQUM7UUFFMUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLENBQUM7S0FDbEM7SUFFRCxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUM7SUFFckMsSUFBSSxHQUFHO1FBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxrQkFBUyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBRXZDLE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMsQ0FBQztBQXBCVyxRQUFBLHlCQUF5Qiw2QkFvQnBDO0FBRUssTUFBTSwyQkFBMkIsR0FBRyxDQUFDLGVBQStCLEVBQUUsc0JBQThCLEVBQVEsRUFBRTtJQUNuSCxNQUFNLG1CQUFtQixHQUFHLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFFaEcsSUFBSSxtQkFBbUIsR0FBRyxzQkFBc0IsRUFBRTtRQUNoRCxrQ0FBa0M7UUFDbEMsTUFBTSxxQkFBcUIsR0FBVyxDQUFDLG1CQUFtQixHQUFHLFdBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM1RSxNQUFNLHdCQUF3QixHQUFXLENBQUMsc0JBQXNCLEdBQUcsV0FBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRWxGLE1BQU0sWUFBWSxHQUFHOzsyQ0FFa0IscUJBQXFCO29DQUM1Qix3QkFBd0I7YUFDL0MsQ0FBQztRQUVWLE9BQU8sQ0FBQyxLQUFLLENBQUMsa0JBQVMsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUN2QyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ2pCO0FBQ0gsQ0FBQyxDQUFDO0FBakJXLFFBQUEsMkJBQTJCLCtCQWlCdEM7QUFFSyxNQUFNLHFCQUFxQixHQUFHLENBQUksT0FBVSxFQUFFLFlBQXlCLEVBQVEsRUFBRTtJQUN0RixNQUFNLFdBQVcsR0FBYSxFQUFFLENBQUM7SUFFakMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQVksRUFBRSxFQUFFO1FBQ3BDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDO1lBQUUsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFhLENBQUMsQ0FBQztJQUNyRCxDQUFDLENBQUMsQ0FBQztJQUVILElBQUksV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7UUFDMUIsTUFBTSxlQUFlLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEUsTUFBTSxZQUFZLEdBQUcsa0NBQWtDLGVBQWUsd0NBQXdDLENBQUM7UUFDL0csT0FBTyxDQUFDLEtBQUssQ0FBQyxrQkFBUyxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQ3ZDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDakI7QUFDSCxDQUFDLENBQUM7QUFiVyxRQUFBLHFCQUFxQix5QkFhaEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwYWtvIGZyb20gJ3Bha28nO1xuaW1wb3J0IHsgRGlyZW50LCBwcm9taXNlcyBhcyBmc1Byb21pc2VzIH0gZnJvbSAnZnMnO1xuaW1wb3J0IHsgVXBsb2FkU291cmNlTWFwc1JlcXVlc3QgfSBmcm9tICcuLi9wcm90by1tb2RlbHMvY29tL2NvcmFsb2dpeC9ydW0vdjIvcnVtX3NvdXJjZV9tYXBfc2VydmljZSc7XG5pbXBvcnQgY29uZmlnIGZyb20gJy4uL2NvbmZpZyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgTUIsIFJFRF9DT0xPUiB9IGZyb20gJy4uL2NvbnN0cy9jb25zdHMnO1xuaW1wb3J0IHsgRmlsZU1ldGFkYXRhIH0gZnJvbSAnLi4vcHJvdG8tbW9kZWxzL2NvbS9jb3JhbG9naXgvcnVtL3YyL2ZpbGUnO1xuXG5jb25zdCB7IHJlYWRkaXIsIHN0YXQsIHJlYWRGaWxlIH0gPSBmc1Byb21pc2VzO1xuXG5leHBvcnQgY29uc3QgdHJhdmVyc2VGb2xkZXIgPSBhc3luYyAoZm9sZGVyUGF0aDogc3RyaW5nLCByZXF1ZXN0OiBVcGxvYWRTb3VyY2VNYXBzUmVxdWVzdCk6IFByb21pc2U8dm9pZD4gPT4ge1xuICBjb25zdCBzdGFjazogc3RyaW5nW10gPSBbZm9sZGVyUGF0aF07XG5cbiAgd2hpbGUgKHN0YWNrLmxlbmd0aCkge1xuICAgIGNvbnN0IGN1cnJlbnRQYXRoID0gc3RhY2sucG9wKCk7XG4gICAgY29uc3QgZW50cmllczogRGlyZW50W10gPSBhd2FpdCByZWFkZGlyKGN1cnJlbnRQYXRoISwgeyB3aXRoRmlsZVR5cGVzOiB0cnVlIH0pO1xuXG4gICAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICBlbnRyaWVzLm1hcChhc3luYyAoZmlsZTogRGlyZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IHsgbmFtZSB9ID0gZmlsZTtcbiAgICAgICAgY29uc3QgZW50cnlQYXRoID0gcGF0aC5qb2luKGN1cnJlbnRQYXRoIGFzIHN0cmluZywgbmFtZSk7XG4gICAgICAgIGNvbnN0IGlzRG90TWFwRmlsZSA9IGZpbGUuaXNGaWxlKCkgJiYgbmFtZS5lbmRzV2l0aCgnLmpzLm1hcCcpO1xuXG4gICAgICAgIGlmIChmaWxlLmlzRGlyZWN0b3J5KCkpIHN0YWNrLnB1c2goZW50cnlQYXRoKTtcbiAgICAgICAgZWxzZSBpZiAoaXNEb3RNYXBGaWxlKSByZXF1ZXN0LmZpbGVzLnB1c2goYXdhaXQgZ2V0RmlsZU1ldGFkYXRhKGVudHJ5UGF0aCkpO1xuICAgICAgfSksXG4gICAgKTtcbiAgfVxufTtcblxuY29uc3QgZ2V0RmlsZU1ldGFkYXRhID0gYXN5bmMgKGZpbGVQYXRoOiBzdHJpbmcpOiBQcm9taXNlPEZpbGVNZXRhZGF0YT4gPT4ge1xuICBjb25zdCB7IHNpemUgfSA9IGF3YWl0IHN0YXQoZmlsZVBhdGgpO1xuICBjb25zdCB7IG5hbWUgfSA9IHBhdGgucGFyc2UoZmlsZVBhdGgpO1xuICBjb25zdCBjb250ZW50ID0gYXdhaXQgcmVhZEZpbGUoZmlsZVBhdGgpO1xuXG4gIHJldHVybiB7IGNodW5rTmFtZTogbmFtZSwgc2l6ZSwgY29udGVudCB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGNvbXByZXNzRmlsZUNvbnRlbnRDaHVua3MgPSAoZmlsZUNvbnRlbnQ6IFVpbnQ4QXJyYXkpOiBVaW50OEFycmF5ID0+IHtcbiAgY29uc3QgeyBjaHVua1NpemUgfSA9IGNvbmZpZy5ydW1BcGk7IC8vIDUxMiBLQiBjaHVuayBzaXplXG4gIGNvbnN0IGRlZmxhdGUgPSBuZXcgcGFrby5EZWZsYXRlKCk7XG4gIGNvbnN0IHRvdGFsQ2h1bmtzID0gTWF0aC5jZWlsKGZpbGVDb250ZW50Lmxlbmd0aCAvIGNodW5rU2l6ZSk7XG5cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCB0b3RhbENodW5rczsgaSsrKSB7XG4gICAgY29uc3Qgc3RhcnQgPSBpICogY2h1bmtTaXplO1xuICAgIGNvbnN0IGVuZCA9IHN0YXJ0ICsgY2h1bmtTaXplO1xuICAgIGNvbnN0IGNodW5rID0gZmlsZUNvbnRlbnQuc3ViYXJyYXkoc3RhcnQsIGVuZCk7XG5cbiAgICBjb25zdCBpc0xhc3RDaHVuayA9IGkgPT09IHRvdGFsQ2h1bmtzIC0gMTtcblxuICAgIGRlZmxhdGUucHVzaChjaHVuaywgaXNMYXN0Q2h1bmspO1xuICB9XG5cbiAgY29uc3QgeyBlcnIsIG1zZywgcmVzdWx0IH0gPSBkZWZsYXRlO1xuXG4gIGlmIChlcnIpIGNvbnNvbGUuZXJyb3IoUkVEX0NPTE9SLCBtc2cpO1xuXG4gIHJldHVybiByZXN1bHQ7XG59O1xuXG5leHBvcnQgY29uc3QgdmFsaWRhdGVDb21wcmVzc2VkRmlsZXNTaXplID0gKGNvbXByZXNzZWRGaWxlczogRmlsZU1ldGFkYXRhW10sIG1heENvbXByZXNzZWRGaWxlc1NpemU6IG51bWJlcik6IHZvaWQgPT4ge1xuICBjb25zdCBjb21wcmVzc2VkRmlsZXNTaXplID0gY29tcHJlc3NlZEZpbGVzLnJlZHVjZSgoc3VtLCBmaWxlKSA9PiBzdW0gKyBmaWxlLmNvbnRlbnQubGVuZ3RoLCAwKTtcblxuICBpZiAoY29tcHJlc3NlZEZpbGVzU2l6ZSA+IG1heENvbXByZXNzZWRGaWxlc1NpemUpIHtcbiAgICAvLyBDb252ZXJ0IHNpemVzIHRvIG1lZ2FieXRlcyAoTUIpXG4gICAgY29uc3QgY29tcHJlc3NlZEZpbGVzU2l6ZU1COiBzdHJpbmcgPSAoY29tcHJlc3NlZEZpbGVzU2l6ZSAvIE1CKS50b0ZpeGVkKDIpO1xuICAgIGNvbnN0IG1heENvbXByZXNzZWRGaWxlc1NpemVNQjogc3RyaW5nID0gKG1heENvbXByZXNzZWRGaWxlc1NpemUgLyBNQikudG9GaXhlZCgyKTtcblxuICAgIGNvbnN0IGVycm9yTWVzc2FnZSA9IGBcbiAgICAgICAgICAgIOKdjCBFcnJvcjogVGhlIHRvdGFsIHNpemUgb2YgY29tcHJlc3NlZCBmaWxlcyBleGNlZWRzIHRoZSBtYXhpbXVtIGFsbG93ZWQgc2l6ZS5cbiAgICAgICAgICAgIFRvdGFsIENvbXByZXNzZWQgRmlsZXMgU2l6ZTogJHtjb21wcmVzc2VkRmlsZXNTaXplTUJ9IE1CXG4gICAgICAgICAgICBNYXhpbXVtIEFsbG93ZWQgU2l6ZTogJHttYXhDb21wcmVzc2VkRmlsZXNTaXplTUJ9IE1CXG4gICAgICAgICAgICBgO1xuXG4gICAgY29uc29sZS5lcnJvcihSRURfQ09MT1IsIGVycm9yTWVzc2FnZSk7XG4gICAgcHJvY2Vzcy5leGl0KDEpO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgY2hlY2tNaXNzaW5nQXJndW1lbnRzID0gPFQ+KG9wdGlvbnM6IFQsIHJlcXVpcmVkQXJnczogKGtleW9mIFQpW10pOiB2b2lkID0+IHtcbiAgY29uc3QgbWlzc2luZ0FyZ3M6IHN0cmluZ1tdID0gW107XG5cbiAgcmVxdWlyZWRBcmdzLmZvckVhY2goKGFyZzoga2V5b2YgVCkgPT4ge1xuICAgIGlmICghb3B0aW9uc1thcmddKSBtaXNzaW5nQXJncy5wdXNoKGFyZyBhcyBzdHJpbmcpO1xuICB9KTtcblxuICBpZiAobWlzc2luZ0FyZ3MubGVuZ3RoID4gMCkge1xuICAgIGNvbnN0IG1pc3NpbmdBcmdzTGlzdCA9IG1pc3NpbmdBcmdzLm1hcChhcmcgPT4gYC0gJHthcmd9YCkuam9pbignXFxuJyk7XG4gICAgY29uc3QgZXJyb3JNZXNzYWdlID0gYOKdjCBNaXNzaW5nIHJlcXVpcmVkIGFyZ3VtZW50czpcXG4ke21pc3NpbmdBcmdzTGlzdH1cXG5QbGVhc2UgcHJvdmlkZSB0aGUgbmVjZXNzYXJ5IG9wdGlvbnNgO1xuICAgIGNvbnNvbGUuZXJyb3IoUkVEX0NPTE9SLCBlcnJvck1lc3NhZ2UpO1xuICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgfVxufTtcbiJdfQ==
@@ -0,0 +1,31 @@
1
+ export interface DeleteCommandOptions {
2
+ privateKey: string;
3
+ application: string;
4
+ version: string;
5
+ env: string;
6
+ help?: string;
7
+ }
8
+
9
+ export interface UpdateCommandOptions {
10
+ privateKey: string;
11
+ application: string;
12
+ version: string;
13
+ folderPath: string;
14
+ commitHash?: string;
15
+ repoName?: string;
16
+ orgName?: string;
17
+ env: string;
18
+ help?: string;
19
+ }
20
+
21
+ export interface UploadCommandOptions {
22
+ privateKey: string;
23
+ application: string;
24
+ version: string;
25
+ folderPath: string;
26
+ commitHash?: string;
27
+ repoName?: string;
28
+ orgName?: string;
29
+ env: string;
30
+ help?: string;
31
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@coralogix/rum-cli",
3
- "version": "1.1.17",
3
+ "version": "1.1.18",
4
4
  "description": "corlogix rum cli",
5
5
  "bin": {
6
6
  "coralogix-rum-cli": "dist/cli/rum-cli.js"
@@ -12,7 +12,8 @@
12
12
  "build": "rm -rf ./dist/* && tsc -p tsconfig.build.json",
13
13
  "start": "ts-node cli/rum-cli.ts",
14
14
  "proto": "npm run proto:generate",
15
- "proto:generate": "./generate-protos.sh"
15
+ "proto:generate": "./generate-protos.sh",
16
+ "format:ts": "prettier --write \"**/*.ts\""
16
17
  },
17
18
  "dependencies": {
18
19
  "bunyan": "^1.8.15",
@@ -34,7 +35,8 @@
34
35
  "grpc-tools": "^1.11.2",
35
36
  "ts-node": "10.6.0",
36
37
  "ts-proto": "^1.104.0",
37
- "typescript": "^4.9.5"
38
+ "typescript": "^4.9.5",
39
+ "prettier": "^2.8.7"
38
40
  },
39
41
  "lint-staged": {
40
42
  "*.ts": [
@@ -2,7 +2,7 @@
2
2
  import Long from "long";
3
3
  import _m0 from "protobufjs/minimal";
4
4
  import { Chunk, MappedChunk } from "./chunk";
5
- import { SourceMapRelease } from "./source_map_release";
5
+ import { ReleasePoint, SourceMapRelease } from "./source_map_release";
6
6
  import { Filter, TemplateResult } from "./template";
7
7
 
8
8
  export const protobufPackage = "com.coralogix.rum.v2";
@@ -29,6 +29,7 @@ export interface GetRumTemplatesRequest {
29
29
  metadataFilters: Filter[];
30
30
  isArchive: boolean;
31
31
  freeText?: string | undefined;
32
+ luceneQuery?: string | undefined;
32
33
  }
33
34
 
34
35
  export interface GetRumTemplatesResponse {
@@ -44,6 +45,20 @@ export interface GetSourceMapReleasesResponse {
44
45
  sourceMapReleases: SourceMapRelease[];
45
46
  }
46
47
 
48
+ export interface GetSourceMapReleasesInternalRequest {
49
+ }
50
+
51
+ export interface GetSourceMapReleasesInternalResponse {
52
+ releases: SourceMapRelease[];
53
+ }
54
+
55
+ export interface GetReleasesSeriesPointsRequest {
56
+ }
57
+
58
+ export interface GetReleasesSeriesPointsResponse {
59
+ releasesPoints: ReleasePoint[];
60
+ }
61
+
47
62
  function createBaseGetMappedStackTraceRequest(): GetMappedStackTraceRequest {
48
63
  return { application: "", releaseId: "", chunks: [] };
49
64
  }
@@ -269,7 +284,15 @@ export const GetMappedStackTraceResponse = {
269
284
  };
270
285
 
271
286
  function createBaseGetRumTemplatesRequest(): GetRumTemplatesRequest {
272
- return { startTime: 0, endTime: 0, dataFilters: [], metadataFilters: [], isArchive: false, freeText: undefined };
287
+ return {
288
+ startTime: 0,
289
+ endTime: 0,
290
+ dataFilters: [],
291
+ metadataFilters: [],
292
+ isArchive: false,
293
+ freeText: undefined,
294
+ luceneQuery: undefined,
295
+ };
273
296
  }
274
297
 
275
298
  export const GetRumTemplatesRequest = {
@@ -292,6 +315,9 @@ export const GetRumTemplatesRequest = {
292
315
  if (message.freeText !== undefined) {
293
316
  writer.uint32(50).string(message.freeText);
294
317
  }
318
+ if (message.luceneQuery !== undefined) {
319
+ writer.uint32(58).string(message.luceneQuery);
320
+ }
295
321
  return writer;
296
322
  },
297
323
 
@@ -344,6 +370,13 @@ export const GetRumTemplatesRequest = {
344
370
 
345
371
  message.freeText = reader.string();
346
372
  continue;
373
+ case 7:
374
+ if (tag !== 58) {
375
+ break;
376
+ }
377
+
378
+ message.luceneQuery = reader.string();
379
+ continue;
347
380
  }
348
381
  if ((tag & 7) === 4 || tag === 0) {
349
382
  break;
@@ -363,6 +396,7 @@ export const GetRumTemplatesRequest = {
363
396
  : [],
364
397
  isArchive: isSet(object.isArchive) ? Boolean(object.isArchive) : false,
365
398
  freeText: isSet(object.freeText) ? String(object.freeText) : undefined,
399
+ luceneQuery: isSet(object.luceneQuery) ? String(object.luceneQuery) : undefined,
366
400
  };
367
401
  },
368
402
 
@@ -382,6 +416,7 @@ export const GetRumTemplatesRequest = {
382
416
  }
383
417
  message.isArchive !== undefined && (obj.isArchive = message.isArchive);
384
418
  message.freeText !== undefined && (obj.freeText = message.freeText);
419
+ message.luceneQuery !== undefined && (obj.luceneQuery = message.luceneQuery);
385
420
  return obj;
386
421
  },
387
422
 
@@ -397,6 +432,7 @@ export const GetRumTemplatesRequest = {
397
432
  message.metadataFilters = object.metadataFilters?.map((e) => Filter.fromPartial(e)) || [];
398
433
  message.isArchive = object.isArchive ?? false;
399
434
  message.freeText = object.freeText ?? undefined;
435
+ message.luceneQuery = object.luceneQuery ?? undefined;
400
436
  return message;
401
437
  },
402
438
  };
@@ -596,6 +632,220 @@ export const GetSourceMapReleasesResponse = {
596
632
  },
597
633
  };
598
634
 
635
+ function createBaseGetSourceMapReleasesInternalRequest(): GetSourceMapReleasesInternalRequest {
636
+ return {};
637
+ }
638
+
639
+ export const GetSourceMapReleasesInternalRequest = {
640
+ encode(_: GetSourceMapReleasesInternalRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
641
+ return writer;
642
+ },
643
+
644
+ decode(input: _m0.Reader | Uint8Array, length?: number): GetSourceMapReleasesInternalRequest {
645
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
646
+ let end = length === undefined ? reader.len : reader.pos + length;
647
+ const message = createBaseGetSourceMapReleasesInternalRequest();
648
+ while (reader.pos < end) {
649
+ const tag = reader.uint32();
650
+ switch (tag >>> 3) {
651
+ }
652
+ if ((tag & 7) === 4 || tag === 0) {
653
+ break;
654
+ }
655
+ reader.skipType(tag & 7);
656
+ }
657
+ return message;
658
+ },
659
+
660
+ fromJSON(_: any): GetSourceMapReleasesInternalRequest {
661
+ return {};
662
+ },
663
+
664
+ toJSON(_: GetSourceMapReleasesInternalRequest): unknown {
665
+ const obj: any = {};
666
+ return obj;
667
+ },
668
+
669
+ create(base?: DeepPartial<GetSourceMapReleasesInternalRequest>): GetSourceMapReleasesInternalRequest {
670
+ return GetSourceMapReleasesInternalRequest.fromPartial(base ?? {});
671
+ },
672
+
673
+ fromPartial(_: DeepPartial<GetSourceMapReleasesInternalRequest>): GetSourceMapReleasesInternalRequest {
674
+ const message = createBaseGetSourceMapReleasesInternalRequest();
675
+ return message;
676
+ },
677
+ };
678
+
679
+ function createBaseGetSourceMapReleasesInternalResponse(): GetSourceMapReleasesInternalResponse {
680
+ return { releases: [] };
681
+ }
682
+
683
+ export const GetSourceMapReleasesInternalResponse = {
684
+ encode(message: GetSourceMapReleasesInternalResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
685
+ for (const v of message.releases) {
686
+ SourceMapRelease.encode(v!, writer.uint32(10).fork()).ldelim();
687
+ }
688
+ return writer;
689
+ },
690
+
691
+ decode(input: _m0.Reader | Uint8Array, length?: number): GetSourceMapReleasesInternalResponse {
692
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
693
+ let end = length === undefined ? reader.len : reader.pos + length;
694
+ const message = createBaseGetSourceMapReleasesInternalResponse();
695
+ while (reader.pos < end) {
696
+ const tag = reader.uint32();
697
+ switch (tag >>> 3) {
698
+ case 1:
699
+ if (tag !== 10) {
700
+ break;
701
+ }
702
+
703
+ message.releases.push(SourceMapRelease.decode(reader, reader.uint32()));
704
+ continue;
705
+ }
706
+ if ((tag & 7) === 4 || tag === 0) {
707
+ break;
708
+ }
709
+ reader.skipType(tag & 7);
710
+ }
711
+ return message;
712
+ },
713
+
714
+ fromJSON(object: any): GetSourceMapReleasesInternalResponse {
715
+ return {
716
+ releases: Array.isArray(object?.releases) ? object.releases.map((e: any) => SourceMapRelease.fromJSON(e)) : [],
717
+ };
718
+ },
719
+
720
+ toJSON(message: GetSourceMapReleasesInternalResponse): unknown {
721
+ const obj: any = {};
722
+ if (message.releases) {
723
+ obj.releases = message.releases.map((e) => e ? SourceMapRelease.toJSON(e) : undefined);
724
+ } else {
725
+ obj.releases = [];
726
+ }
727
+ return obj;
728
+ },
729
+
730
+ create(base?: DeepPartial<GetSourceMapReleasesInternalResponse>): GetSourceMapReleasesInternalResponse {
731
+ return GetSourceMapReleasesInternalResponse.fromPartial(base ?? {});
732
+ },
733
+
734
+ fromPartial(object: DeepPartial<GetSourceMapReleasesInternalResponse>): GetSourceMapReleasesInternalResponse {
735
+ const message = createBaseGetSourceMapReleasesInternalResponse();
736
+ message.releases = object.releases?.map((e) => SourceMapRelease.fromPartial(e)) || [];
737
+ return message;
738
+ },
739
+ };
740
+
741
+ function createBaseGetReleasesSeriesPointsRequest(): GetReleasesSeriesPointsRequest {
742
+ return {};
743
+ }
744
+
745
+ export const GetReleasesSeriesPointsRequest = {
746
+ encode(_: GetReleasesSeriesPointsRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
747
+ return writer;
748
+ },
749
+
750
+ decode(input: _m0.Reader | Uint8Array, length?: number): GetReleasesSeriesPointsRequest {
751
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
752
+ let end = length === undefined ? reader.len : reader.pos + length;
753
+ const message = createBaseGetReleasesSeriesPointsRequest();
754
+ while (reader.pos < end) {
755
+ const tag = reader.uint32();
756
+ switch (tag >>> 3) {
757
+ }
758
+ if ((tag & 7) === 4 || tag === 0) {
759
+ break;
760
+ }
761
+ reader.skipType(tag & 7);
762
+ }
763
+ return message;
764
+ },
765
+
766
+ fromJSON(_: any): GetReleasesSeriesPointsRequest {
767
+ return {};
768
+ },
769
+
770
+ toJSON(_: GetReleasesSeriesPointsRequest): unknown {
771
+ const obj: any = {};
772
+ return obj;
773
+ },
774
+
775
+ create(base?: DeepPartial<GetReleasesSeriesPointsRequest>): GetReleasesSeriesPointsRequest {
776
+ return GetReleasesSeriesPointsRequest.fromPartial(base ?? {});
777
+ },
778
+
779
+ fromPartial(_: DeepPartial<GetReleasesSeriesPointsRequest>): GetReleasesSeriesPointsRequest {
780
+ const message = createBaseGetReleasesSeriesPointsRequest();
781
+ return message;
782
+ },
783
+ };
784
+
785
+ function createBaseGetReleasesSeriesPointsResponse(): GetReleasesSeriesPointsResponse {
786
+ return { releasesPoints: [] };
787
+ }
788
+
789
+ export const GetReleasesSeriesPointsResponse = {
790
+ encode(message: GetReleasesSeriesPointsResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
791
+ for (const v of message.releasesPoints) {
792
+ ReleasePoint.encode(v!, writer.uint32(10).fork()).ldelim();
793
+ }
794
+ return writer;
795
+ },
796
+
797
+ decode(input: _m0.Reader | Uint8Array, length?: number): GetReleasesSeriesPointsResponse {
798
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
799
+ let end = length === undefined ? reader.len : reader.pos + length;
800
+ const message = createBaseGetReleasesSeriesPointsResponse();
801
+ while (reader.pos < end) {
802
+ const tag = reader.uint32();
803
+ switch (tag >>> 3) {
804
+ case 1:
805
+ if (tag !== 10) {
806
+ break;
807
+ }
808
+
809
+ message.releasesPoints.push(ReleasePoint.decode(reader, reader.uint32()));
810
+ continue;
811
+ }
812
+ if ((tag & 7) === 4 || tag === 0) {
813
+ break;
814
+ }
815
+ reader.skipType(tag & 7);
816
+ }
817
+ return message;
818
+ },
819
+
820
+ fromJSON(object: any): GetReleasesSeriesPointsResponse {
821
+ return {
822
+ releasesPoints: Array.isArray(object?.releasesPoints)
823
+ ? object.releasesPoints.map((e: any) => ReleasePoint.fromJSON(e))
824
+ : [],
825
+ };
826
+ },
827
+
828
+ toJSON(message: GetReleasesSeriesPointsResponse): unknown {
829
+ const obj: any = {};
830
+ if (message.releasesPoints) {
831
+ obj.releasesPoints = message.releasesPoints.map((e) => e ? ReleasePoint.toJSON(e) : undefined);
832
+ } else {
833
+ obj.releasesPoints = [];
834
+ }
835
+ return obj;
836
+ },
837
+
838
+ create(base?: DeepPartial<GetReleasesSeriesPointsResponse>): GetReleasesSeriesPointsResponse {
839
+ return GetReleasesSeriesPointsResponse.fromPartial(base ?? {});
840
+ },
841
+
842
+ fromPartial(object: DeepPartial<GetReleasesSeriesPointsResponse>): GetReleasesSeriesPointsResponse {
843
+ const message = createBaseGetReleasesSeriesPointsResponse();
844
+ message.releasesPoints = object.releasesPoints?.map((e) => ReleasePoint.fromPartial(e)) || [];
845
+ return message;
846
+ },
847
+ };
848
+
599
849
  export type RumServiceDefinition = typeof RumServiceDefinition;
600
850
  export const RumServiceDefinition = {
601
851
  name: "RumService",
@@ -625,6 +875,22 @@ export const RumServiceDefinition = {
625
875
  responseStream: false,
626
876
  options: {},
627
877
  },
878
+ getSourceMapReleasesInternal: {
879
+ name: "GetSourceMapReleasesInternal",
880
+ requestType: GetSourceMapReleasesInternalRequest,
881
+ requestStream: false,
882
+ responseType: GetSourceMapReleasesInternalResponse,
883
+ responseStream: false,
884
+ options: {},
885
+ },
886
+ getReleasesSeriesPoints: {
887
+ name: "GetReleasesSeriesPoints",
888
+ requestType: GetReleasesSeriesPointsRequest,
889
+ requestStream: false,
890
+ responseType: GetReleasesSeriesPointsResponse,
891
+ responseStream: false,
892
+ options: {},
893
+ },
628
894
  },
629
895
  } as const;
630
896