@coralogix/rum-cli 1.1.37 → 1.1.41

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 (86) hide show
  1. package/README.md +1 -1
  2. package/api/base/base.api.ts +27 -30
  3. package/api/source-maps/source-maps.api.ts +78 -0
  4. package/cli/commands/source-maps/upload-source-maps-command.ts +3 -2
  5. package/consts/consts.ts +1 -0
  6. package/dist/api/base/base.api.d.ts +9 -7
  7. package/dist/api/base/base.api.js +14 -19
  8. package/dist/api/source-maps/source-maps.api.d.ts +5 -2
  9. package/dist/api/source-maps/source-maps.api.js +57 -3
  10. package/dist/cli/commands/source-maps/upload-source-maps-command.js +4 -3
  11. package/dist/consts/consts.js +3 -2
  12. package/dist/grpc-client/grpc-client-factory.d.ts +72 -0
  13. package/dist/models/source-maps-commands.model.d.ts +1 -0
  14. package/dist/models/source-maps-commands.model.js +1 -1
  15. package/dist/proto-models/com/coralogix/blobset/v2/blobset_query_service.d.ts +150 -0
  16. package/dist/proto-models/com/coralogix/blobset/v2/blobset_query_service.js +29 -1
  17. package/dist/proto-models/com/coralogix/blobset/v2/case_file.d.ts +36 -0
  18. package/dist/proto-models/com/coralogix/blobset/v2/case_file.js +161 -0
  19. package/dist/proto-models/com/coralogix/blobset/v2/dsym.d.ts +1 -0
  20. package/dist/proto-models/com/coralogix/blobset/v2/dsym.js +33 -3
  21. package/dist/proto-models/com/coralogix/blobset/v2/entity_metadata.d.ts +31 -0
  22. package/dist/proto-models/com/coralogix/blobset/v2/entity_metadata.js +215 -7
  23. package/dist/proto-models/com/coralogix/blobset/v2/entity_type.d.ts +3 -1
  24. package/dist/proto-models/com/coralogix/blobset/v2/entity_type.js +13 -1
  25. package/dist/proto-models/com/coralogix/blobset/v2/investigation_file.d.ts +36 -0
  26. package/dist/proto-models/com/coralogix/blobset/v2/investigation_file.js +161 -0
  27. package/dist/proto-models/com/coralogix/blobset/v2/proguard.d.ts +68 -0
  28. package/dist/proto-models/com/coralogix/blobset/v2/proguard.js +400 -0
  29. package/dist/proto-models/com/coralogix/rum/v2/application_releases.d.ts +38 -0
  30. package/dist/proto-models/com/coralogix/rum/v2/application_releases.js +180 -0
  31. package/dist/proto-models/com/coralogix/rum/v2/merge_error.d.ts +38 -0
  32. package/dist/proto-models/com/coralogix/rum/v2/merge_error.js +171 -0
  33. package/dist/proto-models/com/coralogix/rum/v2/release_entity_metadata.d.ts +4 -0
  34. package/dist/proto-models/com/coralogix/rum/v2/release_entity_metadata.js +93 -9
  35. package/dist/proto-models/com/coralogix/rum/v2/rum_merge_erros_service.d.ts +197 -0
  36. package/dist/proto-models/com/coralogix/rum/v2/rum_merge_erros_service.js +478 -0
  37. package/dist/proto-models/com/coralogix/rum/v2/rum_service.d.ts +107 -0
  38. package/dist/proto-models/com/coralogix/rum/v2/rum_service.js +385 -2
  39. package/dist/proto-models/com/coralogix/rum/v2/rum_source_map_service.d.ts +46 -0
  40. package/dist/proto-models/com/coralogix/rum/v2/rum_source_map_service.js +142 -2
  41. package/dist/proto-models/com/coralogix/rum/v2/saved_filter.d.ts +4 -1
  42. package/dist/proto-models/com/coralogix/rum/v2/saved_filter.js +19 -1
  43. package/dist/proto-models/com/coralogix/rum/v2/template.d.ts +2 -0
  44. package/dist/proto-models/com/coralogix/rum/v2/template.js +31 -3
  45. package/dist/services/base/base.service.js +2 -2
  46. package/dist/services/source-maps/source-maps.service.d.ts +1 -0
  47. package/dist/services/source-maps/source-maps.service.js +23 -1
  48. package/dist/utils/file-processor.utils.js +16 -12
  49. package/models/source-maps-commands.model.ts +1 -0
  50. package/package.json +3 -3
  51. package/proto-models/com/coralogix/blobset/v2/blobset_query_service.ts +28 -0
  52. package/proto-models/com/coralogix/blobset/v2/case_file.ts +188 -0
  53. package/proto-models/com/coralogix/blobset/v2/dsym.ts +35 -1
  54. package/proto-models/com/coralogix/blobset/v2/entity_metadata.ts +243 -1
  55. package/proto-models/com/coralogix/blobset/v2/entity_type.ts +12 -0
  56. package/proto-models/com/coralogix/blobset/v2/investigation_file.ts +188 -0
  57. package/proto-models/com/coralogix/blobset/v2/proguard.ts +466 -0
  58. package/proto-models/com/coralogix/rum/v2/application_releases.ts +213 -0
  59. package/proto-models/com/coralogix/rum/v2/merge_error.ts +201 -0
  60. package/proto-models/com/coralogix/rum/v2/release_entity_metadata.ts +96 -4
  61. package/proto-models/com/coralogix/rum/v2/rum_merge_erros_service.ts +566 -0
  62. package/proto-models/com/coralogix/rum/v2/rum_service.ts +462 -0
  63. package/proto-models/com/coralogix/rum/v2/rum_source_map_service.ts +164 -0
  64. package/proto-models/com/coralogix/rum/v2/saved_filter.ts +18 -0
  65. package/proto-models/com/coralogix/rum/v2/template.ts +33 -1
  66. package/protofetch.lock +4 -4
  67. package/protofetch.toml +2 -2
  68. package/protos/com/coralogix/blobset/v2/blobset_query_service.proto +7 -0
  69. package/protos/com/coralogix/blobset/v2/case_file.proto +12 -0
  70. package/protos/com/coralogix/blobset/v2/dsym.proto +1 -0
  71. package/protos/com/coralogix/blobset/v2/entity_metadata.proto +14 -1
  72. package/protos/com/coralogix/blobset/v2/entity_type.proto +3 -1
  73. package/protos/com/coralogix/blobset/v2/investigation_file.proto +12 -0
  74. package/protos/com/coralogix/blobset/v2/proguard.proto +30 -0
  75. package/protos/com/coralogix/rum/v2/application_releases.proto +14 -0
  76. package/protos/com/coralogix/rum/v2/merge_error.proto +13 -0
  77. package/protos/com/coralogix/rum/v2/release_entity_metadata.proto +7 -0
  78. package/protos/com/coralogix/rum/v2/rum_merge_erros_service.proto +42 -0
  79. package/protos/com/coralogix/rum/v2/rum_service.proto +23 -0
  80. package/protos/com/coralogix/rum/v2/rum_source_map_service.proto +11 -0
  81. package/protos/com/coralogix/rum/v2/saved_filter.proto +3 -0
  82. package/protos/com/coralogix/rum/v2/template.proto +2 -0
  83. package/protoset.bin +0 -0
  84. package/services/base/base.service.ts +1 -2
  85. package/services/source-maps/source-maps.service.ts +26 -0
  86. package/utils/file-processor.utils.ts +14 -12
@@ -14,6 +14,9 @@ export enum Page {
14
14
  PAGE_ERROR_TRACKING = 1,
15
15
  PAGE_USER_SESSION = 2,
16
16
  PAGE_WEB_VITALS = 3,
17
+ PAGE_NETWORK_PERFORMANCE = 4,
18
+ PAGE_MEASUREMENTS = 5,
19
+ PAGE_VERSIONS = 6,
17
20
  }
18
21
 
19
22
  export function pageFromJSON(object: any): Page {
@@ -30,6 +33,15 @@ export function pageFromJSON(object: any): Page {
30
33
  case 3:
31
34
  case "PAGE_WEB_VITALS":
32
35
  return Page.PAGE_WEB_VITALS;
36
+ case 4:
37
+ case "PAGE_NETWORK_PERFORMANCE":
38
+ return Page.PAGE_NETWORK_PERFORMANCE;
39
+ case 5:
40
+ case "PAGE_MEASUREMENTS":
41
+ return Page.PAGE_MEASUREMENTS;
42
+ case 6:
43
+ case "PAGE_VERSIONS":
44
+ return Page.PAGE_VERSIONS;
33
45
  default:
34
46
  throw new globalThis.Error("Unrecognized enum value " + object + " for enum Page");
35
47
  }
@@ -45,6 +57,12 @@ export function pageToJSON(object: Page): string {
45
57
  return "PAGE_USER_SESSION";
46
58
  case Page.PAGE_WEB_VITALS:
47
59
  return "PAGE_WEB_VITALS";
60
+ case Page.PAGE_NETWORK_PERFORMANCE:
61
+ return "PAGE_NETWORK_PERFORMANCE";
62
+ case Page.PAGE_MEASUREMENTS:
63
+ return "PAGE_MEASUREMENTS";
64
+ case Page.PAGE_VERSIONS:
65
+ return "PAGE_VERSIONS";
48
66
  default:
49
67
  throw new globalThis.Error("Unrecognized enum value " + object + " for enum Page");
50
68
  }
@@ -80,6 +80,8 @@ export interface TemplateDate {
80
80
  templateId: string;
81
81
  createdAt: number;
82
82
  updatedAt: number;
83
+ applicationName?: string | undefined;
84
+ applicationVersion?: string | undefined;
83
85
  }
84
86
 
85
87
  function createBaseFilter(): Filter {
@@ -471,7 +473,7 @@ export const TemplateResult = {
471
473
  };
472
474
 
473
475
  function createBaseTemplateDate(): TemplateDate {
474
- return { templateId: "", createdAt: 0, updatedAt: 0 };
476
+ return { templateId: "", createdAt: 0, updatedAt: 0, applicationName: undefined, applicationVersion: undefined };
475
477
  }
476
478
 
477
479
  export const TemplateDate = {
@@ -485,6 +487,12 @@ export const TemplateDate = {
485
487
  if (message.updatedAt !== 0) {
486
488
  writer.uint32(24).int64(message.updatedAt);
487
489
  }
490
+ if (message.applicationName !== undefined) {
491
+ writer.uint32(34).string(message.applicationName);
492
+ }
493
+ if (message.applicationVersion !== undefined) {
494
+ writer.uint32(42).string(message.applicationVersion);
495
+ }
488
496
  return writer;
489
497
  },
490
498
 
@@ -516,6 +524,20 @@ export const TemplateDate = {
516
524
 
517
525
  message.updatedAt = longToNumber(reader.int64() as Long);
518
526
  continue;
527
+ case 4:
528
+ if (tag !== 34) {
529
+ break;
530
+ }
531
+
532
+ message.applicationName = reader.string();
533
+ continue;
534
+ case 5:
535
+ if (tag !== 42) {
536
+ break;
537
+ }
538
+
539
+ message.applicationVersion = reader.string();
540
+ continue;
519
541
  }
520
542
  if ((tag & 7) === 4 || tag === 0) {
521
543
  break;
@@ -530,6 +552,8 @@ export const TemplateDate = {
530
552
  templateId: isSet(object.templateId) ? globalThis.String(object.templateId) : "",
531
553
  createdAt: isSet(object.createdAt) ? globalThis.Number(object.createdAt) : 0,
532
554
  updatedAt: isSet(object.updatedAt) ? globalThis.Number(object.updatedAt) : 0,
555
+ applicationName: isSet(object.applicationName) ? globalThis.String(object.applicationName) : undefined,
556
+ applicationVersion: isSet(object.applicationVersion) ? globalThis.String(object.applicationVersion) : undefined,
533
557
  };
534
558
  },
535
559
 
@@ -544,6 +568,12 @@ export const TemplateDate = {
544
568
  if (message.updatedAt !== 0) {
545
569
  obj.updatedAt = Math.round(message.updatedAt);
546
570
  }
571
+ if (message.applicationName !== undefined) {
572
+ obj.applicationName = message.applicationName;
573
+ }
574
+ if (message.applicationVersion !== undefined) {
575
+ obj.applicationVersion = message.applicationVersion;
576
+ }
547
577
  return obj;
548
578
  },
549
579
 
@@ -555,6 +585,8 @@ export const TemplateDate = {
555
585
  message.templateId = object.templateId ?? "";
556
586
  message.createdAt = object.createdAt ?? 0;
557
587
  message.updatedAt = object.updatedAt ?? 0;
588
+ message.applicationName = object.applicationName ?? undefined;
589
+ message.applicationVersion = object.applicationVersion ?? undefined;
558
590
  return message;
559
591
  },
560
592
  };
package/protofetch.lock CHANGED
@@ -4,12 +4,12 @@ version = 2
4
4
  name = "cx-api-blobset"
5
5
  url = "github.com/coralogix/cx-api-blobset"
6
6
  protocol = "ssh"
7
- revision = "v0.0.17"
8
- commit_hash = "ea2fe0a1e0ceb018f0f7117108c31968fad42d3f"
7
+ revision = "v0.0.23"
8
+ commit_hash = "5510f193140e6eb270d8bdfe817af5a7841252e7"
9
9
 
10
10
  [[dependencies]]
11
11
  name = "cx-api-rum"
12
12
  url = "github.com/coralogix/cx-api-rum"
13
13
  protocol = "ssh"
14
- revision = "v0.8.2"
15
- commit_hash = "0e99f94291e51b150953067d3f0b4a076c3d0bab"
14
+ revision = "v0.9.2"
15
+ commit_hash = "1750da54c66b6a7b46794472d8c6b23870c1a696"
package/protofetch.toml CHANGED
@@ -3,10 +3,10 @@ proto_out_dir = 'protos'
3
3
 
4
4
  [cx-api-rum]
5
5
  url = "github.com/coralogix/cx-api-rum"
6
- revision = "v0.8.2"
6
+ revision = "v0.9.2"
7
7
  protocol = "ssh"
8
8
 
9
9
  [cx-api-blobset]
10
10
  url = 'github.com/coralogix/cx-api-blobset'
11
- revision = 'v0.0.17'
11
+ revision = 'v0.0.23'
12
12
  protocol = 'ssh'
@@ -3,10 +3,17 @@ syntax = "proto3";
3
3
  package com.coralogix.blobset.v2;
4
4
 
5
5
  import "com/coralogix/blobset/v2/dsym.proto";
6
+ import "com/coralogix/blobset/v2/proguard.proto";
6
7
  import "com/coralogix/blobset/v2/source_map.proto";
8
+ import "com/coralogix/blobset/v2/investigation_file.proto";
9
+ import "com/coralogix/blobset/v2/case_file.proto";
7
10
 
8
11
  service BlobSetQueryService {
9
12
  // RUM
10
13
  rpc GetMappedIosStackTrace(GetMappedIosStackTraceRequest) returns (GetMappedIosStackTraceResponse) {}
14
+ rpc GetMappedAndroidStackTrace(GetMappedAndroidStackTraceRequest) returns (GetMappedAndroidStackTraceResponse) {}
11
15
  rpc GetSourceMapsChunks(GetSourceMapsChunksRequest) returns (GetSourceMapsChunksResponse) {}
16
+ // INVESTIGATION
17
+ rpc GetInvestigationFile(GetInvestigationFileRequest) returns (GetInvestigationFileResponse) {}
18
+ rpc GetCaseFile(GetCaseFileRequest) returns (GetCaseFileResponse) {}
12
19
  }
@@ -0,0 +1,12 @@
1
+ syntax = "proto3";
2
+
3
+ package com.coralogix.blobset.v2;
4
+
5
+ message GetCaseFileRequest {
6
+ string file_id = 1;
7
+ }
8
+
9
+ message GetCaseFileResponse {
10
+ bytes data = 1;
11
+ string file_name = 2;
12
+ }
@@ -7,6 +7,7 @@ message GetMappedIosStackTraceRequest {
7
7
  string release_id = 2;
8
8
  string base_address = 3;
9
9
  repeated string addresses = 4;
10
+ int64 number_of_surrounding_lines = 5;
10
11
  }
11
12
 
12
13
  message GetMappedIosStackTraceResponse {
@@ -24,6 +24,17 @@ message SourceMapMetadata {
24
24
  optional string commit_hash = 3;
25
25
  optional string repo_name = 4;
26
26
  optional string org_name = 5;
27
+ optional int32 internal_version = 6;
28
+ }
29
+
30
+ message InvestigationFileMetadata {
31
+ string file_id = 1;
32
+ string file_name = 2;
33
+ }
34
+
35
+ message CaseFileMetadata {
36
+ string file_id = 1;
37
+ string file_name = 2;
27
38
  }
28
39
 
29
40
  message EntityMetadata {
@@ -31,5 +42,7 @@ message EntityMetadata {
31
42
  DsymMetadata dsym_metadata = 1;
32
43
  SourceMapMetadata source_map_metadata = 2;
33
44
  ProguardMetadata proguard_metadata = 3;
45
+ InvestigationFileMetadata investigation_file_metadata = 4;
46
+ CaseFileMetadata case_file_metadata = 5;
34
47
  }
35
- }
48
+ }
@@ -8,4 +8,6 @@ enum EntityType {
8
8
  ENTITY_TYPE_SOURCE_MAP = 2;
9
9
  ENTITY_TYPE_REACT_NATIVE = 3;
10
10
  ENTITY_TYPE_PROGUARD = 4;
11
- }
11
+ ENTITY_TYPE_INVESTIGATION_FILE = 5;
12
+ ENTITY_TYPE_CASE_FILE = 6;
13
+ }
@@ -0,0 +1,12 @@
1
+ syntax = "proto3";
2
+
3
+ package com.coralogix.blobset.v2;
4
+
5
+ message GetInvestigationFileRequest {
6
+ string file_id = 1;
7
+ }
8
+
9
+ message GetInvestigationFileResponse {
10
+ bytes data = 1;
11
+ string file_name = 2;
12
+ }
@@ -0,0 +1,30 @@
1
+ syntax = "proto3";
2
+
3
+ package com.coralogix.blobset.v2;
4
+
5
+ message StackFrame {
6
+ string class_name = 1;
7
+ string function_name = 2;
8
+ int32 line_number = 3;
9
+ optional string file_name = 4;
10
+ }
11
+
12
+ message StackFrameMapping {
13
+ StackFrame original_frame = 1;
14
+ StackFrame mapped_frame = 2;
15
+ }
16
+
17
+ message GetMappedAndroidStackTraceRequest {
18
+ string application = 1;
19
+ string release_id = 2;
20
+ repeated StackFrame stack_frames = 3;
21
+ }
22
+
23
+ message GetMappedAndroidStackTraceResponse {
24
+ string application = 1;
25
+ string release_id = 2;
26
+ repeated StackFrameMapping mapped_stack_frames = 3;
27
+ optional string commit_hash = 4;
28
+ optional string repo_name = 5;
29
+ optional string user = 6;
30
+ }
@@ -0,0 +1,14 @@
1
+ syntax = "proto3";
2
+
3
+ package com.coralogix.rum.v2;
4
+
5
+ message ApplicationReleaseEntity {
6
+ string app_name = 1;
7
+ string app_version = 2;
8
+ int64 creation_date = 3;
9
+ }
10
+
11
+ message CurrentPreviousReleases {
12
+ string current = 1;
13
+ string previous = 2;
14
+ }
@@ -0,0 +1,13 @@
1
+ syntax = "proto3";
2
+ package com.coralogix.rum.v2;
3
+
4
+ message MergeErrors {
5
+ string id = 1;
6
+ MergeErrorInfo merge_error_info = 2;
7
+ }
8
+
9
+ message MergeErrorInfo {
10
+ repeated string template_ids = 1;
11
+ string description = 2;
12
+ string primary_template_id = 3;
13
+ }
@@ -8,6 +8,7 @@ message DsymMetadata {
8
8
  optional string commit_hash = 3;
9
9
  optional string repo_name = 4;
10
10
  optional string org_name = 5;
11
+ optional int32 internal_version = 6;
11
12
  }
12
13
 
13
14
  message SourceMapMetadata {
@@ -16,6 +17,8 @@ message SourceMapMetadata {
16
17
  optional string commit_hash = 3;
17
18
  optional string repo_name = 4;
18
19
  optional string org_name = 5;
20
+ optional int32 internal_version = 6;
21
+
19
22
  }
20
23
 
21
24
  message ReactNativeMetadata {
@@ -24,6 +27,8 @@ message ReactNativeMetadata {
24
27
  optional string commit_hash = 3;
25
28
  optional string repo_name = 4;
26
29
  optional string org_name = 5;
30
+ optional int32 internal_version = 6;
31
+
27
32
  }
28
33
 
29
34
  message ProguardMetadata {
@@ -32,6 +37,8 @@ message ProguardMetadata {
32
37
  optional string commit_hash = 3;
33
38
  optional string repo_name = 4;
34
39
  optional string org_name = 5;
40
+ optional int32 internal_version = 6;
41
+
35
42
  }
36
43
 
37
44
  message ReleaseEntityMetadata {
@@ -0,0 +1,42 @@
1
+ syntax = "proto3";
2
+ import "com/coralogix/rum/v2/merge_error.proto";
3
+ package com.coralogix.rum.v2;
4
+
5
+ message CreateMergeErrorsRequest {
6
+ MergeErrorInfo merge_error_info = 1;
7
+ }
8
+
9
+ message CreateMergeErrorsResponse {
10
+ MergeErrors merge_errors = 1;
11
+ }
12
+
13
+ message DeleteMergeErrorsRequest {
14
+ repeated string ids = 1;
15
+ }
16
+
17
+ message DeleteMergeErrorsResponse {
18
+ repeated string ids = 1;
19
+ }
20
+
21
+ message UpdateMergeErrorsRequest {
22
+ MergeErrors merge_errors = 1;
23
+
24
+ }
25
+ message UpdateMergeErrorsResponse {
26
+ MergeErrors merge_errors = 1;
27
+ }
28
+
29
+ message GetMergeErrorsRequest {
30
+ optional string id = 1;
31
+ }
32
+
33
+ message GetMergeErrorsResponse {
34
+ repeated MergeErrors merge_errors = 1;
35
+ }
36
+
37
+ service RumMergeErrorsService {
38
+ rpc CreateMergeErrors(CreateMergeErrorsRequest) returns (CreateMergeErrorsResponse) {}
39
+ rpc DeleteMergeErrors(DeleteMergeErrorsRequest) returns (DeleteMergeErrorsResponse) {}
40
+ rpc UpdateMergeErrors(UpdateMergeErrorsRequest) returns (UpdateMergeErrorsResponse) {}
41
+ rpc GetMergeErrors(GetMergeErrorsRequest) returns (GetMergeErrorsResponse) {}
42
+ }
@@ -6,6 +6,7 @@ import "com/coralogix/rum/v2/source_map_release.proto";
6
6
  import "com/coralogix/rum/v2/template.proto";
7
7
  import "com/coralogix/rum/v2/analytics.proto";
8
8
  import "com/coralogix/rum/v2/rum_sdk_versions.proto";
9
+ import "com/coralogix/rum/v2/application_releases.proto";
9
10
 
10
11
  message GetMappedStackTraceRequest {
11
12
  string application = 1;
@@ -22,6 +23,17 @@ message GetMappedStackTraceResponse {
22
23
  optional string user = 6;
23
24
  }
24
25
 
26
+ message GetSourcemapChunksRequest {
27
+ string application = 1;
28
+ string release_id = 2;
29
+ }
30
+
31
+ message GetSourcemapChunksResponse {
32
+ string application = 1;
33
+ string release_id = 2;
34
+ repeated string chunks = 3;
35
+ }
36
+
25
37
 
26
38
  message GetMappedStackTraceReactNativeRequest {
27
39
  string application = 1;
@@ -129,6 +141,15 @@ message GetSdkVersionsResponse {
129
141
  repeated ApplicationData applications = 1;
130
142
  }
131
143
 
144
+ message GetApplicationReleasesRequest {
145
+ repeated string applications = 1;
146
+ }
147
+
148
+ message GetApplicationReleasesResponse {
149
+ repeated ApplicationReleaseEntity releases = 1;
150
+ map<string, CurrentPreviousReleases> application_to_latest_releases = 2;
151
+ }
152
+
132
153
  service RumService {
133
154
  rpc GetMappedStackTrace(GetMappedStackTraceRequest) returns (GetMappedStackTraceResponse) {}
134
155
  rpc GetRumTemplates(GetRumTemplatesRequest) returns (GetRumTemplatesResponse) {}
@@ -141,4 +162,6 @@ service RumService {
141
162
  rpc IdentifyStacktraceIssue(IdentifyStacktraceIssueRequest) returns ( IdentifyStacktraceIssueResponse) {}
142
163
  rpc CreateUnitTestsBasedOnStacktrace(CreateUnitTestsBasedOnStacktraceRequest) returns ( CreateUnitTestsBasedOnStacktraceResponse) {}
143
164
  rpc GetSdkVersions(GetSdkVersionsRequest) returns (GetSdkVersionsResponse) {}
165
+ rpc GetApplicationReleases(GetApplicationReleasesRequest) returns (GetApplicationReleasesResponse) {}
166
+ rpc GetSourcemapChunks(GetSourcemapChunksRequest) returns (GetSourcemapChunksResponse) {}
144
167
  }
@@ -49,10 +49,21 @@ message IsEntityReleaseExistsResponse {
49
49
  bool exists = 1;
50
50
  }
51
51
 
52
+ message GetLatestInternalVersionRequest {
53
+ string application = 1;
54
+ string release_id = 2;
55
+ ReleaseEntityType release_entity_type = 3;
56
+ }
57
+
58
+ message GetLatestInternalVersionResponse {
59
+ optional int32 latest_version = 1;
60
+ }
61
+
52
62
  service RumSourceMapService {
53
63
  rpc UploadSourceMaps(UploadSourceMapsRequest) returns (UploadSourceMapsResponse) {}
54
64
  rpc UpdateSourceMap(UpdateSourceMapRequest) returns (UpdateSourceMapResponse) {}
55
65
  rpc DeleteSourceMap(DeleteSourceMapRequest) returns (DeleteSourceMapResponse) {}
56
66
  rpc CreateEntityRelease(CreateEntityReleaseRequest) returns (CreateEntityReleaseResponse) {}
57
67
  rpc IsEntityReleaseExists(IsEntityReleaseExistsRequest) returns (IsEntityReleaseExistsResponse) {}
68
+ rpc GetLatestInternalVersion(GetLatestInternalVersionRequest) returns (GetLatestInternalVersionResponse) {}
58
69
  }
@@ -19,6 +19,9 @@ enum Page {
19
19
  PAGE_ERROR_TRACKING = 1;
20
20
  PAGE_USER_SESSION = 2;
21
21
  PAGE_WEB_VITALS = 3;
22
+ PAGE_NETWORK_PERFORMANCE = 4;
23
+ PAGE_MEASUREMENTS = 5;
24
+ PAGE_VERSIONS = 6;
22
25
  }
23
26
 
24
27
  enum SavedFilterPermission {
@@ -37,4 +37,6 @@ message TemplateDate {
37
37
  string template_id = 1;
38
38
  int64 created_at = 2;
39
39
  int64 updated_at = 3;
40
+ optional string application_name = 4;
41
+ optional string application_version = 5;
40
42
  }
package/protoset.bin CHANGED
Binary file
@@ -1,6 +1,5 @@
1
1
  import { UploadBlobRequest } from '../../proto-models/com/coralogix/blobset/v2/blobset_service';
2
2
  import { GRAY_COLOR, GREEN_COLOR } from '../../consts/consts';
3
- import { consoleError } from '../../utils/shared.utils';
4
3
  import { BaseApi } from '../../api/base/base.api';
5
4
 
6
5
  export abstract class BaseService {
@@ -22,7 +21,7 @@ export abstract class BaseService {
22
21
  const request: UploadBlobRequest = UploadBlobRequest.create();
23
22
  const api: BaseApi = this.getApi();
24
23
 
25
- console.log(GRAY_COLOR, `🚀 Uploading ${this.getLogPrefix()}...`);
24
+ console.log(GRAY_COLOR, `🚀 Uploading ${this.getLogPrefix()}... (${new Date().toUTCString()})`);
26
25
 
27
26
  try {
28
27
  await this.getFileProcessorMethod()(folderPath, request, this.getFileExtension());
@@ -1,6 +1,8 @@
1
1
  import { SourceMapsApi } from '../../api/source-maps/source-maps.api';
2
2
  import { FileProcessor } from '../../utils/file-processor.utils';
3
3
  import { BaseService } from '../base/base.service';
4
+ import { UploadBlobRequest } from '../../proto-models/com/coralogix/blobset/v2/blobset_service';
5
+ import { GRAY_COLOR, GREEN_COLOR } from '../../consts/consts';
4
6
 
5
7
  export class SourceMapsService extends BaseService {
6
8
  protected getApi() {
@@ -18,4 +20,28 @@ export class SourceMapsService extends BaseService {
18
20
  protected getFileExtension() {
19
21
  return '.js.map';
20
22
  }
23
+
24
+ async upload(
25
+ application: string,
26
+ version: string,
27
+ repoName: string | undefined,
28
+ commitHash: string | undefined,
29
+ orgName: string | undefined,
30
+ folderPath: string,
31
+ env: string,
32
+ privateKey: string,
33
+ override = false,
34
+ ): Promise<void> {
35
+ const request: UploadBlobRequest = UploadBlobRequest.create();
36
+ const api: SourceMapsApi = this.getApi();
37
+
38
+ console.log(GRAY_COLOR, `🚀 ${override ? 'Replacing' : 'Uploading'} ${this.getLogPrefix()}... (${new Date().toUTCString()})`);
39
+
40
+ await this.getFileProcessorMethod()(folderPath, request, this.getFileExtension());
41
+
42
+ await api.upload(request, application, version, repoName, commitHash, orgName, env, privateKey, override);
43
+
44
+ console.log(GREEN_COLOR, `✅ ${this.getLogPrefix()} ${override ? 'replaced' : 'uploaded'} successfully!`);
45
+ console.log(GREEN_COLOR, '✅ Processing complete.');
46
+ }
21
47
  }
@@ -4,6 +4,8 @@ import * as path from 'path';
4
4
  import { consoleError } from './shared.utils';
5
5
  import { UploadBlobRequest } from '../proto-models/com/coralogix/blobset/v2/blobset_service';
6
6
  import * as zlib from 'node:zlib';
7
+ import assert from 'node:assert';
8
+
7
9
 
8
10
  const { readdir, stat, readFile } = fsPromises;
9
11
 
@@ -79,16 +81,12 @@ export class FileProcessor {
79
81
  }
80
82
 
81
83
  static async traverse(folderPath: string, request: UploadBlobRequest, fileExtension: string): Promise<void> {
82
- try {
83
- const stats = await stat(folderPath);
84
+ const stats = await stat(folderPath);
84
85
 
85
- if (stats.isFile() && folderPath.endsWith(fileExtension)) {
86
- return await this.processSingleFile(folderPath, request, fileExtension);
87
- } else if (stats.isDirectory()) {
88
- return await this.processDirectory(folderPath, request, fileExtension);
89
- }
90
- } catch (error) {
91
- consoleError(`Error traversing directory: ${error}`);
86
+ if (stats.isFile() && folderPath.endsWith(fileExtension)) {
87
+ return await this.processSingleFile(folderPath, request, fileExtension);
88
+ } else if (stats.isDirectory()) {
89
+ return await this.processDirectory(folderPath, request, fileExtension);
92
90
  }
93
91
  }
94
92
 
@@ -114,7 +112,7 @@ export class FileProcessor {
114
112
  }
115
113
 
116
114
  private static async processDirectory(folderPath: string, request: UploadBlobRequest, fileExtension: string): Promise<void> {
117
- const fileDataList: { name: string; content: string }[] = [];
115
+ const fileDataList: { name: string; size: number; content: string }[] = [];
118
116
 
119
117
  const traverseDirectory = async (currentPath: string): Promise<void> => {
120
118
  const files = await readdir(currentPath, { withFileTypes: true });
@@ -125,7 +123,8 @@ export class FileProcessor {
125
123
  if (dirent.isFile() && dirent.name.endsWith(fileExtension)) {
126
124
  const content = await readFile(filePath);
127
125
  const { name } = path.parse(filePath);
128
- fileDataList.push({ name, content: content.toString('base64') });
126
+ const {size} = await stat(filePath);
127
+ fileDataList.push({ name, size, content: content.toString('base64') });
129
128
  } else if (dirent.isDirectory()) {
130
129
  await traverseDirectory(filePath);
131
130
  }
@@ -133,7 +132,10 @@ export class FileProcessor {
133
132
  };
134
133
 
135
134
  await traverseDirectory(folderPath);
136
-
135
+ // Assert that at least one file was found
136
+ assert(fileDataList.length > 0, `No files with extension ${fileExtension} found in the directory: 📁 ${folderPath}`);
137
+ console.log(`Found ${fileDataList.length} ${fileExtension} files in ${folderPath} directory.`);
138
+ fileDataList.forEach(file => console.log(`⛶ ${file.name}, Size: ${file.size} bytes`));
137
139
  const compressedContent = zlib.gzipSync(Buffer.from(JSON.stringify(fileDataList)));
138
140
  request.data = new Uint8Array(compressedContent);
139
141
  }