@coralogix/rum-cli 1.1.21 → 1.1.22

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 (89) hide show
  1. package/README.md +8 -4
  2. package/api/rum-api.ts +1 -1
  3. package/cli/commands/delete-source-maps-command.ts +1 -1
  4. package/cli/commands/index.ts +5 -4
  5. package/cli/commands/update-source-maps-command.ts +1 -1
  6. package/cli/commands/upload-react-native-source-maps-command.ts +39 -0
  7. package/cli/commands/upload-source-maps-command.ts +1 -1
  8. package/cli/rum-cli.ts +8 -7
  9. package/dist/api/rum-api.js +2 -2
  10. package/dist/cli/commands/delete-source-maps-command.d.ts +1 -1
  11. package/dist/cli/commands/delete-source-maps-command.js +4 -4
  12. package/dist/cli/commands/index.d.ts +4 -3
  13. package/dist/cli/commands/index.js +3 -2
  14. package/dist/cli/commands/update-source-maps-command.d.ts +1 -1
  15. package/dist/cli/commands/update-source-maps-command.js +4 -4
  16. package/dist/cli/commands/upload-react-native-source-maps-command.d.ts +2 -0
  17. package/dist/cli/commands/upload-react-native-source-maps-command.js +47 -0
  18. package/dist/cli/commands/upload-source-maps-command.d.ts +1 -1
  19. package/dist/cli/commands/upload-source-maps-command.js +4 -4
  20. package/dist/cli/rum-cli.js +9 -7
  21. package/dist/proto-models/com/coralogix/rum/v2/analytics.d.ts +1 -1
  22. package/dist/proto-models/com/coralogix/rum/v2/analytics.js +115 -102
  23. package/dist/proto-models/com/coralogix/rum/v2/audit_log.d.ts +1 -1
  24. package/dist/proto-models/com/coralogix/rum/v2/audit_log.js +5 -3
  25. package/dist/proto-models/com/coralogix/rum/v2/chunk.d.ts +1 -1
  26. package/dist/proto-models/com/coralogix/rum/v2/chunk.js +54 -49
  27. package/dist/proto-models/com/coralogix/rum/v2/file.d.ts +1 -1
  28. package/dist/proto-models/com/coralogix/rum/v2/file.js +24 -34
  29. package/dist/proto-models/com/coralogix/rum/v2/rum_react_native_source_map_service.d.ts +69 -0
  30. package/dist/proto-models/com/coralogix/rum/v2/rum_react_native_source_map_service.js +189 -0
  31. package/dist/proto-models/com/coralogix/rum/v2/rum_saved_filters_service.d.ts +526 -0
  32. package/dist/proto-models/com/coralogix/rum/v2/rum_saved_filters_service.js +1560 -0
  33. package/dist/proto-models/com/coralogix/rum/v2/rum_service.d.ts +98 -3
  34. package/dist/proto-models/com/coralogix/rum/v2/rum_service.js +475 -127
  35. package/dist/proto-models/com/coralogix/rum/v2/rum_session_recording_service.d.ts +1 -59
  36. package/dist/proto-models/com/coralogix/rum/v2/rum_session_recording_service.js +4 -175
  37. package/dist/proto-models/com/coralogix/rum/v2/rum_snooze_errors_service.d.ts +261 -0
  38. package/dist/proto-models/com/coralogix/rum/v2/rum_snooze_errors_service.js +698 -0
  39. package/dist/proto-models/com/coralogix/rum/v2/rum_source_map_service.d.ts +1 -1
  40. package/dist/proto-models/com/coralogix/rum/v2/rum_source_map_service.js +65 -41
  41. package/dist/proto-models/com/coralogix/rum/v2/saved_filter.d.ts +55 -0
  42. package/dist/proto-models/com/coralogix/rum/v2/saved_filter.js +267 -0
  43. package/dist/proto-models/com/coralogix/rum/v2/snooze_errors.d.ts +109 -0
  44. package/dist/proto-models/com/coralogix/rum/v2/snooze_errors.js +580 -0
  45. package/dist/proto-models/com/coralogix/rum/v2/source_code_file_mapping.d.ts +1 -1
  46. package/dist/proto-models/com/coralogix/rum/v2/source_code_file_mapping.js +47 -24
  47. package/dist/proto-models/com/coralogix/rum/v2/source_map_release.d.ts +1 -1
  48. package/dist/proto-models/com/coralogix/rum/v2/source_map_release.js +43 -38
  49. package/dist/proto-models/com/coralogix/rum/v2/template.d.ts +14 -1
  50. package/dist/proto-models/com/coralogix/rum/v2/template.js +148 -54
  51. package/dist/proto-models/google/protobuf/descriptor.d.ts +1 -1
  52. package/dist/proto-models/google/protobuf/descriptor.js +537 -427
  53. package/dist/services/react-native-source-maps.service.d.ts +3 -0
  54. package/dist/services/react-native-source-maps.service.js +42 -0
  55. package/dist/services/source-maps.service.js +3 -3
  56. package/dist/utils/index.d.ts +1 -1
  57. package/dist/utils/index.js +4 -4
  58. package/package.json +1 -1
  59. package/proto-models/com/coralogix/rum/v2/analytics.ts +113 -108
  60. package/proto-models/com/coralogix/rum/v2/audit_log.ts +6 -4
  61. package/proto-models/com/coralogix/rum/v2/chunk.ts +55 -56
  62. package/proto-models/com/coralogix/rum/v2/file.ts +25 -39
  63. package/proto-models/com/coralogix/rum/v2/rum_react_native_source_map_service.ts +223 -0
  64. package/proto-models/com/coralogix/rum/v2/rum_saved_filters_service.ts +1837 -0
  65. package/proto-models/com/coralogix/rum/v2/rum_service.ts +533 -146
  66. package/proto-models/com/coralogix/rum/v2/rum_session_recording_service.ts +1 -208
  67. package/proto-models/com/coralogix/rum/v2/rum_snooze_errors_service.ts +818 -0
  68. package/proto-models/com/coralogix/rum/v2/rum_source_map_service.ts +65 -46
  69. package/proto-models/com/coralogix/rum/v2/saved_filter.ts +301 -0
  70. package/proto-models/com/coralogix/rum/v2/snooze_errors.ts +656 -0
  71. package/proto-models/com/coralogix/rum/v2/source_code_file_mapping.ts +48 -27
  72. package/proto-models/com/coralogix/rum/v2/source_map_release.ts +44 -44
  73. package/proto-models/com/coralogix/rum/v2/template.ts +161 -59
  74. package/proto-models/google/protobuf/descriptor.ts +551 -464
  75. package/protofetch.lock +2 -2
  76. package/protofetch.toml +1 -1
  77. package/protos/com/coralogix/rum/v2/rum_react_native_source_map_service.proto +19 -0
  78. package/protos/com/coralogix/rum/v2/rum_saved_filters_service.proto +128 -0
  79. package/protos/com/coralogix/rum/v2/rum_service.proto +26 -0
  80. package/protos/com/coralogix/rum/v2/rum_session_recording_service.proto +1 -12
  81. package/protos/com/coralogix/rum/v2/rum_snooze_errors_service.proto +64 -0
  82. package/protos/com/coralogix/rum/v2/rum_source_map_service.proto +1 -1
  83. package/protos/com/coralogix/rum/v2/saved_filter.proto +28 -0
  84. package/protos/com/coralogix/rum/v2/snooze_errors.proto +55 -0
  85. package/protos/com/coralogix/rum/v2/template.proto +6 -0
  86. package/protoset.bin +0 -0
  87. package/services/react-native-source-maps.service.ts +40 -0
  88. package/services/source-maps.service.ts +2 -2
  89. package/utils/index.ts +3 -3
@@ -0,0 +1,267 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.SavedFilter = exports.SavedFilterBasicProperties = exports.savedFilterPermissionToJSON = exports.savedFilterPermissionFromJSON = exports.SavedFilterPermission = exports.pageToJSON = exports.pageFromJSON = exports.Page = exports.protobufPackage = void 0;
7
+ /* eslint-disable */
8
+ const minimal_1 = __importDefault(require("protobufjs/minimal"));
9
+ exports.protobufPackage = "com.coralogix.rum.v2";
10
+ var Page;
11
+ (function (Page) {
12
+ Page[Page["PAGE_UNSPECIFIED"] = 0] = "PAGE_UNSPECIFIED";
13
+ Page[Page["PAGE_ERROR_TRACKING"] = 1] = "PAGE_ERROR_TRACKING";
14
+ Page[Page["PAGE_USER_SESSION"] = 2] = "PAGE_USER_SESSION";
15
+ Page[Page["PAGE_WEB_VITALS"] = 3] = "PAGE_WEB_VITALS";
16
+ })(Page = exports.Page || (exports.Page = {}));
17
+ function pageFromJSON(object) {
18
+ switch (object) {
19
+ case 0:
20
+ case "PAGE_UNSPECIFIED":
21
+ return Page.PAGE_UNSPECIFIED;
22
+ case 1:
23
+ case "PAGE_ERROR_TRACKING":
24
+ return Page.PAGE_ERROR_TRACKING;
25
+ case 2:
26
+ case "PAGE_USER_SESSION":
27
+ return Page.PAGE_USER_SESSION;
28
+ case 3:
29
+ case "PAGE_WEB_VITALS":
30
+ return Page.PAGE_WEB_VITALS;
31
+ default:
32
+ throw new globalThis.Error("Unrecognized enum value " + object + " for enum Page");
33
+ }
34
+ }
35
+ exports.pageFromJSON = pageFromJSON;
36
+ function pageToJSON(object) {
37
+ switch (object) {
38
+ case Page.PAGE_UNSPECIFIED:
39
+ return "PAGE_UNSPECIFIED";
40
+ case Page.PAGE_ERROR_TRACKING:
41
+ return "PAGE_ERROR_TRACKING";
42
+ case Page.PAGE_USER_SESSION:
43
+ return "PAGE_USER_SESSION";
44
+ case Page.PAGE_WEB_VITALS:
45
+ return "PAGE_WEB_VITALS";
46
+ default:
47
+ throw new globalThis.Error("Unrecognized enum value " + object + " for enum Page");
48
+ }
49
+ }
50
+ exports.pageToJSON = pageToJSON;
51
+ var SavedFilterPermission;
52
+ (function (SavedFilterPermission) {
53
+ SavedFilterPermission[SavedFilterPermission["SAVED_FILTER_PERMISSION_UNSPECIFIED"] = 0] = "SAVED_FILTER_PERMISSION_UNSPECIFIED";
54
+ SavedFilterPermission[SavedFilterPermission["SAVED_FILTER_PERMISSION_PRIVATE"] = 1] = "SAVED_FILTER_PERMISSION_PRIVATE";
55
+ SavedFilterPermission[SavedFilterPermission["SAVED_FILTER_PERMISSION_PUBLIC"] = 2] = "SAVED_FILTER_PERMISSION_PUBLIC";
56
+ })(SavedFilterPermission = exports.SavedFilterPermission || (exports.SavedFilterPermission = {}));
57
+ function savedFilterPermissionFromJSON(object) {
58
+ switch (object) {
59
+ case 0:
60
+ case "SAVED_FILTER_PERMISSION_UNSPECIFIED":
61
+ return SavedFilterPermission.SAVED_FILTER_PERMISSION_UNSPECIFIED;
62
+ case 1:
63
+ case "SAVED_FILTER_PERMISSION_PRIVATE":
64
+ return SavedFilterPermission.SAVED_FILTER_PERMISSION_PRIVATE;
65
+ case 2:
66
+ case "SAVED_FILTER_PERMISSION_PUBLIC":
67
+ return SavedFilterPermission.SAVED_FILTER_PERMISSION_PUBLIC;
68
+ default:
69
+ throw new globalThis.Error("Unrecognized enum value " + object + " for enum SavedFilterPermission");
70
+ }
71
+ }
72
+ exports.savedFilterPermissionFromJSON = savedFilterPermissionFromJSON;
73
+ function savedFilterPermissionToJSON(object) {
74
+ switch (object) {
75
+ case SavedFilterPermission.SAVED_FILTER_PERMISSION_UNSPECIFIED:
76
+ return "SAVED_FILTER_PERMISSION_UNSPECIFIED";
77
+ case SavedFilterPermission.SAVED_FILTER_PERMISSION_PRIVATE:
78
+ return "SAVED_FILTER_PERMISSION_PRIVATE";
79
+ case SavedFilterPermission.SAVED_FILTER_PERMISSION_PUBLIC:
80
+ return "SAVED_FILTER_PERMISSION_PUBLIC";
81
+ default:
82
+ throw new globalThis.Error("Unrecognized enum value " + object + " for enum SavedFilterPermission");
83
+ }
84
+ }
85
+ exports.savedFilterPermissionToJSON = savedFilterPermissionToJSON;
86
+ function createBaseSavedFilterBasicProperties() {
87
+ return { name: "", id: "", page: 0 };
88
+ }
89
+ exports.SavedFilterBasicProperties = {
90
+ encode(message, writer = minimal_1.default.Writer.create()) {
91
+ if (message.name !== "") {
92
+ writer.uint32(10).string(message.name);
93
+ }
94
+ if (message.id !== "") {
95
+ writer.uint32(18).string(message.id);
96
+ }
97
+ if (message.page !== 0) {
98
+ writer.uint32(24).int32(message.page);
99
+ }
100
+ return writer;
101
+ },
102
+ decode(input, length) {
103
+ const reader = input instanceof minimal_1.default.Reader ? input : minimal_1.default.Reader.create(input);
104
+ let end = length === undefined ? reader.len : reader.pos + length;
105
+ const message = createBaseSavedFilterBasicProperties();
106
+ while (reader.pos < end) {
107
+ const tag = reader.uint32();
108
+ switch (tag >>> 3) {
109
+ case 1:
110
+ if (tag !== 10) {
111
+ break;
112
+ }
113
+ message.name = reader.string();
114
+ continue;
115
+ case 2:
116
+ if (tag !== 18) {
117
+ break;
118
+ }
119
+ message.id = reader.string();
120
+ continue;
121
+ case 3:
122
+ if (tag !== 24) {
123
+ break;
124
+ }
125
+ message.page = reader.int32();
126
+ continue;
127
+ }
128
+ if ((tag & 7) === 4 || tag === 0) {
129
+ break;
130
+ }
131
+ reader.skipType(tag & 7);
132
+ }
133
+ return message;
134
+ },
135
+ fromJSON(object) {
136
+ return {
137
+ name: isSet(object.name) ? globalThis.String(object.name) : "",
138
+ id: isSet(object.id) ? globalThis.String(object.id) : "",
139
+ page: isSet(object.page) ? pageFromJSON(object.page) : 0,
140
+ };
141
+ },
142
+ toJSON(message) {
143
+ const obj = {};
144
+ if (message.name !== "") {
145
+ obj.name = message.name;
146
+ }
147
+ if (message.id !== "") {
148
+ obj.id = message.id;
149
+ }
150
+ if (message.page !== 0) {
151
+ obj.page = pageToJSON(message.page);
152
+ }
153
+ return obj;
154
+ },
155
+ create(base) {
156
+ return exports.SavedFilterBasicProperties.fromPartial(base !== null && base !== void 0 ? base : {});
157
+ },
158
+ fromPartial(object) {
159
+ var _a, _b, _c;
160
+ const message = createBaseSavedFilterBasicProperties();
161
+ message.name = (_a = object.name) !== null && _a !== void 0 ? _a : "";
162
+ message.id = (_b = object.id) !== null && _b !== void 0 ? _b : "";
163
+ message.page = (_c = object.page) !== null && _c !== void 0 ? _c : 0;
164
+ return message;
165
+ },
166
+ };
167
+ function createBaseSavedFilter() {
168
+ return { savedFilter: undefined, isFavorite: false, favoriteId: undefined, permission: 0 };
169
+ }
170
+ exports.SavedFilter = {
171
+ encode(message, writer = minimal_1.default.Writer.create()) {
172
+ if (message.savedFilter !== undefined) {
173
+ exports.SavedFilterBasicProperties.encode(message.savedFilter, writer.uint32(10).fork()).ldelim();
174
+ }
175
+ if (message.isFavorite === true) {
176
+ writer.uint32(16).bool(message.isFavorite);
177
+ }
178
+ if (message.favoriteId !== undefined) {
179
+ writer.uint32(26).string(message.favoriteId);
180
+ }
181
+ if (message.permission !== 0) {
182
+ writer.uint32(32).int32(message.permission);
183
+ }
184
+ return writer;
185
+ },
186
+ decode(input, length) {
187
+ const reader = input instanceof minimal_1.default.Reader ? input : minimal_1.default.Reader.create(input);
188
+ let end = length === undefined ? reader.len : reader.pos + length;
189
+ const message = createBaseSavedFilter();
190
+ while (reader.pos < end) {
191
+ const tag = reader.uint32();
192
+ switch (tag >>> 3) {
193
+ case 1:
194
+ if (tag !== 10) {
195
+ break;
196
+ }
197
+ message.savedFilter = exports.SavedFilterBasicProperties.decode(reader, reader.uint32());
198
+ continue;
199
+ case 2:
200
+ if (tag !== 16) {
201
+ break;
202
+ }
203
+ message.isFavorite = reader.bool();
204
+ continue;
205
+ case 3:
206
+ if (tag !== 26) {
207
+ break;
208
+ }
209
+ message.favoriteId = reader.string();
210
+ continue;
211
+ case 4:
212
+ if (tag !== 32) {
213
+ break;
214
+ }
215
+ message.permission = reader.int32();
216
+ continue;
217
+ }
218
+ if ((tag & 7) === 4 || tag === 0) {
219
+ break;
220
+ }
221
+ reader.skipType(tag & 7);
222
+ }
223
+ return message;
224
+ },
225
+ fromJSON(object) {
226
+ return {
227
+ savedFilter: isSet(object.savedFilter) ? exports.SavedFilterBasicProperties.fromJSON(object.savedFilter) : undefined,
228
+ isFavorite: isSet(object.isFavorite) ? globalThis.Boolean(object.isFavorite) : false,
229
+ favoriteId: isSet(object.favoriteId) ? globalThis.String(object.favoriteId) : undefined,
230
+ permission: isSet(object.permission) ? savedFilterPermissionFromJSON(object.permission) : 0,
231
+ };
232
+ },
233
+ toJSON(message) {
234
+ const obj = {};
235
+ if (message.savedFilter !== undefined) {
236
+ obj.savedFilter = exports.SavedFilterBasicProperties.toJSON(message.savedFilter);
237
+ }
238
+ if (message.isFavorite === true) {
239
+ obj.isFavorite = message.isFavorite;
240
+ }
241
+ if (message.favoriteId !== undefined) {
242
+ obj.favoriteId = message.favoriteId;
243
+ }
244
+ if (message.permission !== 0) {
245
+ obj.permission = savedFilterPermissionToJSON(message.permission);
246
+ }
247
+ return obj;
248
+ },
249
+ create(base) {
250
+ return exports.SavedFilter.fromPartial(base !== null && base !== void 0 ? base : {});
251
+ },
252
+ fromPartial(object) {
253
+ var _a, _b, _c;
254
+ const message = createBaseSavedFilter();
255
+ message.savedFilter = (object.savedFilter !== undefined && object.savedFilter !== null)
256
+ ? exports.SavedFilterBasicProperties.fromPartial(object.savedFilter)
257
+ : undefined;
258
+ message.isFavorite = (_a = object.isFavorite) !== null && _a !== void 0 ? _a : false;
259
+ message.favoriteId = (_b = object.favoriteId) !== null && _b !== void 0 ? _b : undefined;
260
+ message.permission = (_c = object.permission) !== null && _c !== void 0 ? _c : 0;
261
+ return message;
262
+ },
263
+ };
264
+ function isSet(value) {
265
+ return value !== null && value !== undefined;
266
+ }
267
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2F2ZWRfZmlsdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvdG8tbW9kZWxzL2NvbS9jb3JhbG9naXgvcnVtL3YyL3NhdmVkX2ZpbHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxvQkFBb0I7QUFDcEIsaUVBQXFDO0FBRXhCLFFBQUEsZUFBZSxHQUFHLHNCQUFzQixDQUFDO0FBRXRELElBQVksSUFLWDtBQUxELFdBQVksSUFBSTtJQUNkLHVEQUFvQixDQUFBO0lBQ3BCLDZEQUF1QixDQUFBO0lBQ3ZCLHlEQUFxQixDQUFBO0lBQ3JCLHFEQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFMVyxJQUFJLEdBQUosWUFBSSxLQUFKLFlBQUksUUFLZjtBQUVELFNBQWdCLFlBQVksQ0FBQyxNQUFXO0lBQ3RDLFFBQVEsTUFBTSxFQUFFO1FBQ2QsS0FBSyxDQUFDLENBQUM7UUFDUCxLQUFLLGtCQUFrQjtZQUNyQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztRQUMvQixLQUFLLENBQUMsQ0FBQztRQUNQLEtBQUsscUJBQXFCO1lBQ3hCLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDO1FBQ2xDLEtBQUssQ0FBQyxDQUFDO1FBQ1AsS0FBSyxtQkFBbUI7WUFDdEIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUM7UUFDaEMsS0FBSyxDQUFDLENBQUM7UUFDUCxLQUFLLGlCQUFpQjtZQUNwQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7UUFDOUI7WUFDRSxNQUFNLElBQUksVUFBVSxDQUFDLEtBQUssQ0FBQywwQkFBMEIsR0FBRyxNQUFNLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQztLQUN0RjtBQUNILENBQUM7QUFqQkQsb0NBaUJDO0FBRUQsU0FBZ0IsVUFBVSxDQUFDLE1BQVk7SUFDckMsUUFBUSxNQUFNLEVBQUU7UUFDZCxLQUFLLElBQUksQ0FBQyxnQkFBZ0I7WUFDeEIsT0FBTyxrQkFBa0Is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Q0FBQztRQUNoRCxPQUFPLENBQUMsVUFBVSxHQUFHLE1BQUEsTUFBTSxDQUFDLFVBQVUsbUNBQUksU0FBUyxDQUFDO1FBQ3BELE9BQU8sQ0FBQyxVQUFVLEdBQUcsTUFBQSxNQUFNLENBQUMsVUFBVSxtQ0FBSSxDQUFDLENBQUM7UUFDNUMsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGLENBQUM7QUFXRixTQUFTLEtBQUssQ0FBQyxLQUFVO0lBQ3ZCLE9BQU8sS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssU0FBUyxDQUFDO0FBQy9DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSAqL1xuaW1wb3J0IF9tMCBmcm9tIFwicHJvdG9idWZqcy9taW5pbWFsXCI7XG5cbmV4cG9ydCBjb25zdCBwcm90b2J1ZlBhY2thZ2UgPSBcImNvbS5jb3JhbG9naXgucnVtLnYyXCI7XG5cbmV4cG9ydCBlbnVtIFBhZ2Uge1xuICBQQUdFX1VOU1BFQ0lGSUVEID0gMCxcbiAgUEFHRV9FUlJPUl9UUkFDS0lORyA9IDEsXG4gIFBBR0VfVVNFUl9TRVNTSU9OID0gMixcbiAgUEFHRV9XRUJfVklUQUxTID0gMyxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhZ2VGcm9tSlNPTihvYmplY3Q6IGFueSk6IFBhZ2Uge1xuICBzd2l0Y2ggKG9iamVjdCkge1xuICAgIGNhc2UgMDpcbiAgICBjYXNlIFwiUEFHRV9VTlNQRUNJRklFRFwiOlxuICAgICAgcmV0dXJuIFBhZ2UuUEFHRV9VTlNQRUNJRklFRDtcbiAgICBjYXNlIDE6XG4gICAgY2FzZSBcIlBBR0VfRVJST1JfVFJBQ0tJTkdcIjpcbiAgICAgIHJldHVybiBQYWdlLlBBR0VfRVJST1JfVFJBQ0tJTkc7XG4gICAgY2FzZSAyOlxuICAgIGNhc2UgXCJQQUdFX1VTRVJfU0VTU0lPTlwiOlxuICAgICAgcmV0dXJuIFBhZ2UuUEFHRV9VU0VSX1NFU1NJT047XG4gICAgY2FzZSAzOlxuICAgIGNhc2UgXCJQQUdFX1dFQl9WSVRBTFNcIjpcbiAgICAgIHJldHVybiBQYWdlLlBBR0VfV0VCX1ZJVEFMUztcbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgbmV3IGdsb2JhbFRoaXMuRXJyb3IoXCJVbnJlY29nbml6ZWQgZW51bSB2YWx1ZSBcIiArIG9iamVjdCArIFwiIGZvciBlbnVtIFBhZ2VcIik7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhZ2VUb0pTT04ob2JqZWN0OiBQYWdlKTogc3RyaW5nIHtcbiAgc3dpdGNoIChvYmplY3QpIHtcbiAgICBjYXNlIFBhZ2UuUEFHRV9VTlNQRUNJRklFRDpcbiAgICAgIHJldHVybiBcIlBBR0VfVU5TUEVDSUZJRURcIjtcbiAgICBjYXNlIFBhZ2UuUEFHRV9FUlJPUl9UUkFDS0lORzpcbiAgICAgIHJldHVybiBcIlBBR0VfRVJST1JfVFJBQ0tJTkdcIjtcbiAgICBjYXNlIFBhZ2UuUEFHRV9VU0VSX1NFU1NJT046XG4gICAgICByZXR1cm4gXCJQQUdFX1VTRVJfU0VTU0lPTlwiO1xuICAgIGNhc2UgUGFnZS5QQUdFX1dFQl9WSVRBTFM6XG4gICAgICByZXR1cm4gXCJQQUdFX1dFQl9WSVRBTFNcIjtcbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgbmV3IGdsb2JhbFRoaXMuRXJyb3IoXCJVbnJlY29nbml6ZWQgZW51bSB2YWx1ZSBcIiArIG9iamVjdCArIFwiIGZvciBlbnVtIFBhZ2VcIik7XG4gIH1cbn1cblxuZXhwb3J0IGVudW0gU2F2ZWRGaWx0ZXJQZXJtaXNzaW9uIHtcbiAgU0FWRURfRklMVEVSX1BFUk1JU1NJT05fVU5TUEVDSUZJRUQgPSAwLFxuICBTQVZFRF9GSUxURVJfUEVSTUlTU0lPTl9QUklWQVRFID0gMSxcbiAgU0FWRURfRklMVEVSX1BFUk1JU1NJT05fUFVCTElDID0gMixcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNhdmVkRmlsdGVyUGVybWlzc2lvbkZyb21KU09OKG9iamVjdDogYW55KTogU2F2ZWRGaWx0ZXJQZXJtaXNzaW9uIHtcbiAgc3dpdGNoIChvYmplY3QpIHtcbiAgICBjYXNlIDA6XG4gICAgY2FzZSBcIlNBVkVEX0ZJTFRFUl9QRVJNSVNTSU9OX1VOU1BFQ0lGSUVEXCI6XG4gICAgICByZXR1cm4gU2F2ZWRGaWx0ZXJQZXJtaXNzaW9uLlNBVkVEX0ZJTFRFUl9QRVJNSVNTSU9OX1VOU1BFQ0lGSUVEO1xuICAgIGNhc2UgMTpcbiAgICBjYXNlIFwiU0FWRURfRklMVEVSX1BFUk1JU1NJT05fUFJJVkFURVwiOlxuICAgICAgcmV0dXJuIFNhdmVkRmlsdGVyUGVybWlzc2lvbi5TQVZFRF9GSUxURVJfUEVSTUlTU0lPTl9QUklWQVRFO1xuICAgIGNhc2UgMjpcbiAgICBjYXNlIFwiU0FWRURfRklMVEVSX1BFUk1JU1NJT05fUFVCTElDXCI6XG4gICAgICByZXR1cm4gU2F2ZWRGaWx0ZXJQZXJtaXNzaW9uLlNBVkVEX0ZJTFRFUl9QRVJNSVNTSU9OX1BVQkxJQztcbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgbmV3IGdsb2JhbFRoaXMuRXJyb3IoXCJVbnJlY29nbml6ZWQgZW51bSB2YWx1ZSBcIiArIG9iamVjdCArIFwiIGZvciBlbnVtIFNhdmVkRmlsdGVyUGVybWlzc2lvblwiKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gc2F2ZWRGaWx0ZXJQZXJtaXNzaW9uVG9KU09OKG9iamVjdDogU2F2ZWRGaWx0ZXJQZXJtaXNzaW9uKTogc3RyaW5nIHtcbiAgc3dpdGNoIChvYmplY3QpIHtcbiAgICBjYXNlIFNhdmVkRmlsdGVyUGVybWlzc2lvbi5TQVZFRF9GSUxURVJfUEVSTUlTU0lPTl9VTlNQRUNJRklFRDpcbiAgICAgIHJldHVybiBcIlNBVkVEX0ZJTFRFUl9QRVJNSVNTSU9OX1VOU1BFQ0lGSUVEXCI7XG4gICAgY2FzZSBTYXZlZEZpbHRlclBlcm1pc3Npb24uU0FWRURfRklMVEVSX1BFUk1JU1NJT05fUFJJVkFURTpcbiAgICAgIHJldHVybiBcIlNBVkVEX0ZJTFRFUl9QRVJNSVNTSU9OX1BSSVZBVEVcIjtcbiAgICBjYXNlIFNhdmVkRmlsdGVyUGVybWlzc2lvbi5TQVZFRF9GSUxURVJfUEVSTUlTU0lPTl9QVUJMSUM6XG4gICAgICByZXR1cm4gXCJTQVZFRF9GSUxURVJfUEVSTUlTU0lPTl9QVUJMSUNcIjtcbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgbmV3IGdsb2JhbFRoaXMuRXJyb3IoXCJVbnJlY29nbml6ZWQgZW51bSB2YWx1ZSBcIiArIG9iamVjdCArIFwiIGZvciBlbnVtIFNhdmVkRmlsdGVyUGVybWlzc2lvblwiKTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNhdmVkRmlsdGVyQmFzaWNQcm9wZXJ0aWVzIHtcbiAgbmFtZTogc3RyaW5nO1xuICBpZDogc3RyaW5nO1xuICBwYWdlOiBQYWdlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNhdmVkRmlsdGVyIHtcbiAgc2F2ZWRGaWx0ZXI6IFNhdmVkRmlsdGVyQmFzaWNQcm9wZXJ0aWVzIHwgdW5kZWZpbmVkO1xuICBpc0Zhdm9yaXRlOiBib29sZWFuO1xuICBmYXZvcml0ZUlkPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBwZXJtaXNzaW9uOiBTYXZlZEZpbHRlclBlcm1pc3Npb247XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUJhc2VTYXZlZEZpbHRlckJhc2ljUHJvcGVydGllcygpOiBTYXZlZEZpbHRlckJhc2ljUHJvcGVydGllcyB7XG4gIHJldHVybiB7IG5hbWU6IFwiXCIsIGlkOiBcIlwiLCBwYWdlOiAwIH07XG59XG5cbmV4cG9ydCBjb25zdCBTYXZlZEZpbHRlckJhc2ljUHJvcGVydGllcyA9IHtcbiAgZW5jb2RlKG1lc3NhZ2U6IFNhdmVkRmlsdGVyQmFzaWNQcm9wZXJ0aWVzLCB3cml0ZXI6IF9tMC5Xcml0ZXIgPSBfbTAuV3JpdGVyLmNyZWF0ZSgpKTogX20wLldyaXRlciB7XG4gICAgaWYgKG1lc3NhZ2UubmFtZSAhPT0gXCJcIikge1xuICAgICAgd3JpdGVyLnVpbnQzMigxMCkuc3RyaW5nKG1lc3NhZ2UubmFtZSk7XG4gICAgfVxuICAgIGlmIChtZXNzYWdlLmlkICE9PSBcIlwiKSB7XG4gICAgICB3cml0ZXIudWludDMyKDE4KS5zdHJpbmcobWVzc2FnZS5pZCk7XG4gICAgfVxuICAgIGlmIChtZXNzYWdlLnBhZ2UgIT09IDApIHtcbiAgICAgIHdyaXRlci51aW50MzIoMjQpLmludDMyKG1lc3NhZ2UucGFnZSk7XG4gICAgfVxuICAgIHJldHVybiB3cml0ZXI7XG4gIH0sXG5cbiAgZGVjb2RlKGlucHV0OiBfbTAuUmVhZGVyIHwgVWludDhBcnJheSwgbGVuZ3RoPzogbnVtYmVyKTogU2F2ZWRGaWx0ZXJCYXNpY1Byb3BlcnRpZXMge1xuICAgIGNvbnN0IHJlYWRlciA9IGlucHV0IGluc3RhbmNlb2YgX20wLlJlYWRlciA/IGlucHV0IDogX20wLlJlYWRlci5jcmVhdGUoaW5wdXQpO1xuICAgIGxldCBlbmQgPSBsZW5ndGggPT09IHVuZGVmaW5lZCA/IHJlYWRlci5sZW4gOiByZWFkZXIucG9zICsgbGVuZ3RoO1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBjcmVhdGVCYXNlU2F2ZWRGaWx0ZXJCYXNpY1Byb3BlcnRpZXMoKTtcbiAgICB3aGlsZSAocmVhZGVyLnBvcyA8IGVuZCkge1xuICAgICAgY29uc3QgdGFnID0gcmVhZGVyLnVpbnQzMigpO1xuICAgICAgc3dpdGNoICh0YWcgPj4+IDMpIHtcbiAgICAgICAgY2FzZSAxOlxuICAgICAgICAgIGlmICh0YWcgIT09IDEwKSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBtZXNzYWdlLm5hbWUgPSByZWFkZXIuc3RyaW5nKCk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIGNhc2UgMjpcbiAgICAgICAgICBpZiAodGFnICE9PSAxOCkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbWVzc2FnZS5pZCA9IHJlYWRlci5zdHJpbmcoKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgY2FzZSAzOlxuICAgICAgICAgIGlmICh0YWcgIT09IDI0KSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBtZXNzYWdlLnBhZ2UgPSByZWFkZXIuaW50MzIoKSBhcyBhbnk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBpZiAoKHRhZyAmIDcpID09PSA0IHx8IHRhZyA9PT0gMCkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIHJlYWRlci5za2lwVHlwZSh0YWcgJiA3KTtcbiAgICB9XG4gICAgcmV0dXJuIG1lc3NhZ2U7XG4gIH0sXG5cbiAgZnJvbUpTT04ob2JqZWN0OiBhbnkpOiBTYXZlZEZpbHRlckJhc2ljUHJvcGVydGllcyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWU6IGlzU2V0KG9iamVjdC5uYW1lKSA/IGdsb2JhbFRoaXMuU3RyaW5nKG9iamVjdC5uYW1lKSA6IFwiXCIsXG4gICAgICBpZDogaXNTZXQob2JqZWN0LmlkKSA/IGdsb2JhbFRoaXMuU3RyaW5nKG9iamVjdC5pZCkgOiBcIlwiLFxuICAgICAgcGFnZTogaXNTZXQob2JqZWN0LnBhZ2UpID8gcGFnZUZyb21KU09OKG9iamVjdC5wYWdlKSA6IDAsXG4gICAgfTtcbiAgfSxcblxuICB0b0pTT04obWVzc2FnZTogU2F2ZWRGaWx0ZXJCYXNpY1Byb3BlcnRpZXMpOiB1bmtub3duIHtcbiAgICBjb25zdCBvYmo6IGFueSA9IHt9O1xuICAgIGlmIChtZXNzYWdlLm5hbWUgIT09IFwiXCIpIHtcbiAgICAgIG9iai5uYW1lID0gbWVzc2FnZS5uYW1lO1xuICAgIH1cbiAgICBpZiAobWVzc2FnZS5pZCAhPT0gXCJcIikge1xuICAgICAgb2JqLmlkID0gbWVzc2FnZS5pZDtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2UucGFnZSAhPT0gMCkge1xuICAgICAgb2JqLnBhZ2UgPSBwYWdlVG9KU09OKG1lc3NhZ2UucGFnZSk7XG4gICAgfVxuICAgIHJldHVybiBvYmo7XG4gIH0sXG5cbiAgY3JlYXRlKGJhc2U/OiBEZWVwUGFydGlhbDxTYXZlZEZpbHRlckJhc2ljUHJvcGVydGllcz4pOiBTYXZlZEZpbHRlckJhc2ljUHJvcGVydGllcyB7XG4gICAgcmV0dXJuIFNhdmVkRmlsdGVyQmFzaWNQcm9wZXJ0aWVzLmZyb21QYXJ0aWFsKGJhc2UgPz8ge30pO1xuICB9LFxuICBmcm9tUGFydGlhbChvYmplY3Q6IERlZXBQYXJ0aWFsPFNhdmVkRmlsdGVyQmFzaWNQcm9wZXJ0aWVzPik6IFNhdmVkRmlsdGVyQmFzaWNQcm9wZXJ0aWVzIHtcbiAgICBjb25zdCBtZXNzYWdlID0gY3JlYXRlQmFzZVNhdmVkRmlsdGVyQmFzaWNQcm9wZXJ0aWVzKCk7XG4gICAgbWVzc2FnZS5uYW1lID0gb2JqZWN0Lm5hbWUgPz8gXCJcIjtcbiAgICBtZXNzYWdlLmlkID0gb2JqZWN0LmlkID8/IFwiXCI7XG4gICAgbWVzc2FnZS5wYWdlID0gb2JqZWN0LnBhZ2UgPz8gMDtcbiAgICByZXR1cm4gbWVzc2FnZTtcbiAgfSxcbn07XG5cbmZ1bmN0aW9uIGNyZWF0ZUJhc2VTYXZlZEZpbHRlcigpOiBTYXZlZEZpbHRlciB7XG4gIHJldHVybiB7IHNhdmVkRmlsdGVyOiB1bmRlZmluZWQsIGlzRmF2b3JpdGU6IGZhbHNlLCBmYXZvcml0ZUlkOiB1bmRlZmluZWQsIHBlcm1pc3Npb246IDAgfTtcbn1cblxuZXhwb3J0IGNvbnN0IFNhdmVkRmlsdGVyID0ge1xuICBlbmNvZGUobWVzc2FnZTogU2F2ZWRGaWx0ZXIsIHdyaXRlcjogX20wLldyaXRlciA9IF9tMC5Xcml0ZXIuY3JlYXRlKCkpOiBfbTAuV3JpdGVyIHtcbiAgICBpZiAobWVzc2FnZS5zYXZlZEZpbHRlciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBTYXZlZEZpbHRlckJhc2ljUHJvcGVydGllcy5lbmNvZGUobWVzc2FnZS5zYXZlZEZpbHRlciwgd3JpdGVyLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKTtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2UuaXNGYXZvcml0ZSA9PT0gdHJ1ZSkge1xuICAgICAgd3JpdGVyLnVpbnQzMigxNikuYm9vbChtZXNzYWdlLmlzRmF2b3JpdGUpO1xuICAgIH1cbiAgICBpZiAobWVzc2FnZS5mYXZvcml0ZUlkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHdyaXRlci51aW50MzIoMjYpLnN0cmluZyhtZXNzYWdlLmZhdm9yaXRlSWQpO1xuICAgIH1cbiAgICBpZiAobWVzc2FnZS5wZXJtaXNzaW9uICE9PSAwKSB7XG4gICAgICB3cml0ZXIudWludDMyKDMyKS5pbnQzMihtZXNzYWdlLnBlcm1pc3Npb24pO1xuICAgIH1cbiAgICByZXR1cm4gd3JpdGVyO1xuICB9LFxuXG4gIGRlY29kZShpbnB1dDogX20wLlJlYWRlciB8IFVpbnQ4QXJyYXksIGxlbmd0aD86IG51bWJlcik6IFNhdmVkRmlsdGVyIHtcbiAgICBjb25zdCByZWFkZXIgPSBpbnB1dCBpbnN0YW5jZW9mIF9tMC5SZWFkZXIgPyBpbnB1dCA6IF9tMC5SZWFkZXIuY3JlYXRlKGlucHV0KTtcbiAgICBsZXQgZW5kID0gbGVuZ3RoID09PSB1bmRlZmluZWQgPyByZWFkZXIubGVuIDogcmVhZGVyLnBvcyArIGxlbmd0aDtcbiAgICBjb25zdCBtZXNzYWdlID0gY3JlYXRlQmFzZVNhdmVkRmlsdGVyKCk7XG4gICAgd2hpbGUgKHJlYWRlci5wb3MgPCBlbmQpIHtcbiAgICAgIGNvbnN0IHRhZyA9IHJlYWRlci51aW50MzIoKTtcbiAgICAgIHN3aXRjaCAodGFnID4+PiAzKSB7XG4gICAgICAgIGNhc2UgMTpcbiAgICAgICAgICBpZiAodGFnICE9PSAxMCkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbWVzc2FnZS5zYXZlZEZpbHRlciA9IFNhdmVkRmlsdGVyQmFzaWNQcm9wZXJ0aWVzLmRlY29kZShyZWFkZXIsIHJlYWRlci51aW50MzIoKSk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIGNhc2UgMjpcbiAgICAgICAgICBpZiAodGFnICE9PSAxNikge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbWVzc2FnZS5pc0Zhdm9yaXRlID0gcmVhZGVyLmJvb2woKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgY2FzZSAzOlxuICAgICAgICAgIGlmICh0YWcgIT09IDI2KSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBtZXNzYWdlLmZhdm9yaXRlSWQgPSByZWFkZXIuc3RyaW5nKCk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIGNhc2UgNDpcbiAgICAgICAgICBpZiAodGFnICE9PSAzMikge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbWVzc2FnZS5wZXJtaXNzaW9uID0gcmVhZGVyLmludDMyKCkgYXMgYW55O1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgaWYgKCh0YWcgJiA3KSA9PT0gNCB8fCB0YWcgPT09IDApIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICByZWFkZXIuc2tpcFR5cGUodGFnICYgNyk7XG4gICAgfVxuICAgIHJldHVybiBtZXNzYWdlO1xuICB9LFxuXG4gIGZyb21KU09OKG9iamVjdDogYW55KTogU2F2ZWRGaWx0ZXIge1xuICAgIHJldHVybiB7XG4gICAgICBzYXZlZEZpbHRlcjogaXNTZXQob2JqZWN0LnNhdmVkRmlsdGVyKSA/IFNhdmVkRmlsdGVyQmFzaWNQcm9wZXJ0aWVzLmZyb21KU09OKG9iamVjdC5zYXZlZEZpbHRlcikgOiB1bmRlZmluZWQsXG4gICAgICBpc0Zhdm9yaXRlOiBpc1NldChvYmplY3QuaXNGYXZvcml0ZSkgPyBnbG9iYWxUaGlzLkJvb2xlYW4ob2JqZWN0LmlzRmF2b3JpdGUpIDogZmFsc2UsXG4gICAgICBmYXZvcml0ZUlkOiBpc1NldChvYmplY3QuZmF2b3JpdGVJZCkgPyBnbG9iYWxUaGlzLlN0cmluZyhvYmplY3QuZmF2b3JpdGVJZCkgOiB1bmRlZmluZWQsXG4gICAgICBwZXJtaXNzaW9uOiBpc1NldChvYmplY3QucGVybWlzc2lvbikgPyBzYXZlZEZpbHRlclBlcm1pc3Npb25Gcm9tSlNPTihvYmplY3QucGVybWlzc2lvbikgOiAwLFxuICAgIH07XG4gIH0sXG5cbiAgdG9KU09OKG1lc3NhZ2U6IFNhdmVkRmlsdGVyKTogdW5rbm93biB7XG4gICAgY29uc3Qgb2JqOiBhbnkgPSB7fTtcbiAgICBpZiAobWVzc2FnZS5zYXZlZEZpbHRlciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBvYmouc2F2ZWRGaWx0ZXIgPSBTYXZlZEZpbHRlckJhc2ljUHJvcGVydGllcy50b0pTT04obWVzc2FnZS5zYXZlZEZpbHRlcik7XG4gICAgfVxuICAgIGlmIChtZXNzYWdlLmlzRmF2b3JpdGUgPT09IHRydWUpIHtcbiAgICAgIG9iai5pc0Zhdm9yaXRlID0gbWVzc2FnZS5pc0Zhdm9yaXRlO1xuICAgIH1cbiAgICBpZiAobWVzc2FnZS5mYXZvcml0ZUlkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIG9iai5mYXZvcml0ZUlkID0gbWVzc2FnZS5mYXZvcml0ZUlkO1xuICAgIH1cbiAgICBpZiAobWVzc2FnZS5wZXJtaXNzaW9uICE9PSAwKSB7XG4gICAgICBvYmoucGVybWlzc2lvbiA9IHNhdmVkRmlsdGVyUGVybWlzc2lvblRvSlNPTihtZXNzYWdlLnBlcm1pc3Npb24pO1xuICAgIH1cbiAgICByZXR1cm4gb2JqO1xuICB9LFxuXG4gIGNyZWF0ZShiYXNlPzogRGVlcFBhcnRpYWw8U2F2ZWRGaWx0ZXI+KTogU2F2ZWRGaWx0ZXIge1xuICAgIHJldHVybiBTYXZlZEZpbHRlci5mcm9tUGFydGlhbChiYXNlID8/IHt9KTtcbiAgfSxcbiAgZnJvbVBhcnRpYWwob2JqZWN0OiBEZWVwUGFydGlhbDxTYXZlZEZpbHRlcj4pOiBTYXZlZEZpbHRlciB7XG4gICAgY29uc3QgbWVzc2FnZSA9IGNyZWF0ZUJhc2VTYXZlZEZpbHRlcigpO1xuICAgIG1lc3NhZ2Uuc2F2ZWRGaWx0ZXIgPSAob2JqZWN0LnNhdmVkRmlsdGVyICE9PSB1bmRlZmluZWQgJiYgb2JqZWN0LnNhdmVkRmlsdGVyICE9PSBudWxsKVxuICAgICAgPyBTYXZlZEZpbHRlckJhc2ljUHJvcGVydGllcy5mcm9tUGFydGlhbChvYmplY3Quc2F2ZWRGaWx0ZXIpXG4gICAgICA6IHVuZGVmaW5lZDtcbiAgICBtZXNzYWdlLmlzRmF2b3JpdGUgPSBvYmplY3QuaXNGYXZvcml0ZSA/PyBmYWxzZTtcbiAgICBtZXNzYWdlLmZhdm9yaXRlSWQgPSBvYmplY3QuZmF2b3JpdGVJZCA/PyB1bmRlZmluZWQ7XG4gICAgbWVzc2FnZS5wZXJtaXNzaW9uID0gb2JqZWN0LnBlcm1pc3Npb24gPz8gMDtcbiAgICByZXR1cm4gbWVzc2FnZTtcbiAgfSxcbn07XG5cbnR5cGUgQnVpbHRpbiA9IERhdGUgfCBGdW5jdGlvbiB8IFVpbnQ4QXJyYXkgfCBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgdW5kZWZpbmVkO1xuXG5leHBvcnQgdHlwZSBEZWVwUGFydGlhbDxUPiA9IFQgZXh0ZW5kcyBCdWlsdGluID8gVFxuICA6IFQgZXh0ZW5kcyBnbG9iYWxUaGlzLkFycmF5PGluZmVyIFU+ID8gZ2xvYmFsVGhpcy5BcnJheTxEZWVwUGFydGlhbDxVPj5cbiAgOiBUIGV4dGVuZHMgUmVhZG9ubHlBcnJheTxpbmZlciBVPiA/IFJlYWRvbmx5QXJyYXk8RGVlcFBhcnRpYWw8VT4+XG4gIDogVCBleHRlbmRzIHsgJGNhc2U6IHN0cmluZyB9ID8geyBbSyBpbiBrZXlvZiBPbWl0PFQsIFwiJGNhc2VcIj5dPzogRGVlcFBhcnRpYWw8VFtLXT4gfSAmIHsgJGNhc2U6IFRbXCIkY2FzZVwiXSB9XG4gIDogVCBleHRlbmRzIHt9ID8geyBbSyBpbiBrZXlvZiBUXT86IERlZXBQYXJ0aWFsPFRbS10+IH1cbiAgOiBQYXJ0aWFsPFQ+O1xuXG5mdW5jdGlvbiBpc1NldCh2YWx1ZTogYW55KTogYm9vbGVhbiB7XG4gIHJldHVybiB2YWx1ZSAhPT0gbnVsbCAmJiB2YWx1ZSAhPT0gdW5kZWZpbmVkO1xufVxuIl19
@@ -0,0 +1,109 @@
1
+ import _m0 from "protobufjs/minimal";
2
+ export declare const protobufPackage = "com.coralogix.rum.v2";
3
+ export declare enum SnoozeType {
4
+ SNOOZE_TYPE_UNSPECIFIED = 0,
5
+ SNOOZE_TYPE_TEMPLATE_ID = 1,
6
+ SNOOZE_TYPE_CATEGORY = 2
7
+ }
8
+ export declare function snoozeTypeFromJSON(object: any): SnoozeType;
9
+ export declare function snoozeTypeToJSON(object: SnoozeType): string;
10
+ export declare enum SnoozeCondition {
11
+ SNOOZE_CONDITION_UNSPECIFIED = 0,
12
+ SNOOZE_CONDITION_TIME = 1
13
+ }
14
+ export declare function snoozeConditionFromJSON(object: any): SnoozeCondition;
15
+ export declare function snoozeConditionToJSON(object: SnoozeCondition): string;
16
+ export declare enum SnoozeStatus {
17
+ SNOOZE_STATUS_UNSPECIFIED = 0,
18
+ SNOOZE_STATUS_ACTIVE = 1,
19
+ SNOOZE_STATUS_EXPIRING_SOON = 2,
20
+ SNOOZE_STATUS_UPDATED = 3
21
+ }
22
+ export declare function snoozeStatusFromJSON(object: any): SnoozeStatus;
23
+ export declare function snoozeStatusToJSON(object: SnoozeStatus): string;
24
+ export interface Category {
25
+ key: string;
26
+ values: string[];
27
+ }
28
+ export interface Categories {
29
+ categories: Category[];
30
+ }
31
+ export interface TimeCondition {
32
+ endTime: number;
33
+ }
34
+ export interface TimeBasedSnooze {
35
+ snoozeDetails?: {
36
+ $case: "categories";
37
+ categories: Categories;
38
+ } | {
39
+ $case: "template";
40
+ template: string;
41
+ } | undefined;
42
+ endTime: number;
43
+ }
44
+ export interface Management {
45
+ snoozeType: SnoozeType;
46
+ snoozeCondition: SnoozeCondition;
47
+ snoozeStatus: SnoozeStatus;
48
+ initialTime: number;
49
+ expiresTime: number;
50
+ snoozeDetails?: {
51
+ $case: "template";
52
+ template: string;
53
+ } | {
54
+ $case: "categories";
55
+ categories: Categories;
56
+ } | undefined;
57
+ id: string;
58
+ }
59
+ export declare const Category: {
60
+ encode(message: Category, writer?: _m0.Writer): _m0.Writer;
61
+ decode(input: _m0.Reader | Uint8Array, length?: number): Category;
62
+ fromJSON(object: any): Category;
63
+ toJSON(message: Category): unknown;
64
+ create(base?: DeepPartial<Category>): Category;
65
+ fromPartial(object: DeepPartial<Category>): Category;
66
+ };
67
+ export declare const Categories: {
68
+ encode(message: Categories, writer?: _m0.Writer): _m0.Writer;
69
+ decode(input: _m0.Reader | Uint8Array, length?: number): Categories;
70
+ fromJSON(object: any): Categories;
71
+ toJSON(message: Categories): unknown;
72
+ create(base?: DeepPartial<Categories>): Categories;
73
+ fromPartial(object: DeepPartial<Categories>): Categories;
74
+ };
75
+ export declare const TimeCondition: {
76
+ encode(message: TimeCondition, writer?: _m0.Writer): _m0.Writer;
77
+ decode(input: _m0.Reader | Uint8Array, length?: number): TimeCondition;
78
+ fromJSON(object: any): TimeCondition;
79
+ toJSON(message: TimeCondition): unknown;
80
+ create(base?: DeepPartial<TimeCondition>): TimeCondition;
81
+ fromPartial(object: DeepPartial<TimeCondition>): TimeCondition;
82
+ };
83
+ export declare const TimeBasedSnooze: {
84
+ encode(message: TimeBasedSnooze, writer?: _m0.Writer): _m0.Writer;
85
+ decode(input: _m0.Reader | Uint8Array, length?: number): TimeBasedSnooze;
86
+ fromJSON(object: any): TimeBasedSnooze;
87
+ toJSON(message: TimeBasedSnooze): unknown;
88
+ create(base?: DeepPartial<TimeBasedSnooze>): TimeBasedSnooze;
89
+ fromPartial(object: DeepPartial<TimeBasedSnooze>): TimeBasedSnooze;
90
+ };
91
+ export declare const Management: {
92
+ encode(message: Management, writer?: _m0.Writer): _m0.Writer;
93
+ decode(input: _m0.Reader | Uint8Array, length?: number): Management;
94
+ fromJSON(object: any): Management;
95
+ toJSON(message: Management): unknown;
96
+ create(base?: DeepPartial<Management>): Management;
97
+ fromPartial(object: DeepPartial<Management>): Management;
98
+ };
99
+ type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
100
+ export type DeepPartial<T> = T extends Builtin ? T : T extends globalThis.Array<infer U> ? globalThis.Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {
101
+ $case: string;
102
+ } ? {
103
+ [K in keyof Omit<T, "$case">]?: DeepPartial<T[K]>;
104
+ } & {
105
+ $case: T["$case"];
106
+ } : T extends {} ? {
107
+ [K in keyof T]?: DeepPartial<T[K]>;
108
+ } : Partial<T>;
109
+ export {};