@coralogix/rum-cli 1.1.1 → 1.1.3

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 (53) hide show
  1. package/README.md +50 -17
  2. package/api/rum-api.ts +50 -51
  3. package/cli/rum-cli.ts +41 -72
  4. package/cli/theme/index.ts +5 -0
  5. package/cli/validators/index.ts +14 -0
  6. package/dist/api/rum-api.d.ts +5 -2
  7. package/dist/api/rum-api.js +41 -36
  8. package/dist/cli/rum-cli.d.ts +1 -2
  9. package/dist/cli/rum-cli.js +24 -45
  10. package/dist/cli/theme/index.d.ts +3 -0
  11. package/dist/cli/theme/index.js +7 -0
  12. package/dist/cli/validators/index.d.ts +1 -0
  13. package/dist/cli/validators/index.js +16 -0
  14. package/dist/model/cli.model.js +1 -3
  15. package/dist/proto-models/com/coralogix/rum/v2/audit_log.js +62 -0
  16. package/dist/proto-models/com/coralogix/rum/v2/chunk.js +330 -0
  17. package/dist/proto-models/com/coralogix/rum/v2/file.js +140 -0
  18. package/dist/proto-models/com/coralogix/rum/v2/rum_service.js +233 -0
  19. package/dist/proto-models/com/coralogix/rum/v2/rum_source_map_service.js +181 -0
  20. package/dist/proto-models/com/coralogix/rum/v2/source_code_file_mapping.js +277 -0
  21. package/dist/proto-models/google/protobuf/descriptor.js +3612 -0
  22. package/dist/services/source-maps/source-maps.service.d.ts +3 -0
  23. package/dist/services/source-maps/source-maps.service.js +42 -0
  24. package/dist/services/source-maps/utils/traverse-folder.util.d.ts +2 -0
  25. package/dist/services/source-maps/utils/traverse-folder.util.js +42 -0
  26. package/generate-protos.sh +3 -3
  27. package/model/cli.model.ts +0 -2
  28. package/package.json +4 -4
  29. package/services/source-maps/source-maps.service.ts +31 -0
  30. package/{cli → services/source-maps}/utils/traverse-folder.util.ts +2 -2
  31. package/dist/cli/utils/traverse-folder.util.d.ts +0 -2
  32. package/dist/cli/utils/traverse-folder.util.js +0 -42
  33. package/dist/src/app/proto-models/com/coralogix/rum/v2/audit_log.js +0 -62
  34. package/dist/src/app/proto-models/com/coralogix/rum/v2/chunk.js +0 -330
  35. package/dist/src/app/proto-models/com/coralogix/rum/v2/file.js +0 -140
  36. package/dist/src/app/proto-models/com/coralogix/rum/v2/rum_service.js +0 -233
  37. package/dist/src/app/proto-models/com/coralogix/rum/v2/rum_source_map_service.js +0 -181
  38. package/dist/src/app/proto-models/com/coralogix/rum/v2/source_code_file_mapping.js +0 -277
  39. package/dist/src/app/proto-models/google/protobuf/descriptor.js +0 -3612
  40. /package/dist/{src/app/proto-models → proto-models}/com/coralogix/rum/v2/audit_log.d.ts +0 -0
  41. /package/dist/{src/app/proto-models → proto-models}/com/coralogix/rum/v2/chunk.d.ts +0 -0
  42. /package/dist/{src/app/proto-models → proto-models}/com/coralogix/rum/v2/file.d.ts +0 -0
  43. /package/dist/{src/app/proto-models → proto-models}/com/coralogix/rum/v2/rum_service.d.ts +0 -0
  44. /package/dist/{src/app/proto-models → proto-models}/com/coralogix/rum/v2/rum_source_map_service.d.ts +0 -0
  45. /package/dist/{src/app/proto-models → proto-models}/com/coralogix/rum/v2/source_code_file_mapping.d.ts +0 -0
  46. /package/dist/{src/app/proto-models → proto-models}/google/protobuf/descriptor.d.ts +0 -0
  47. /package/{src/app/proto-models → proto-models}/com/coralogix/rum/v2/audit_log.ts +0 -0
  48. /package/{src/app/proto-models → proto-models}/com/coralogix/rum/v2/chunk.ts +0 -0
  49. /package/{src/app/proto-models → proto-models}/com/coralogix/rum/v2/file.ts +0 -0
  50. /package/{src/app/proto-models → proto-models}/com/coralogix/rum/v2/rum_service.ts +0 -0
  51. /package/{src/app/proto-models → proto-models}/com/coralogix/rum/v2/rum_source_map_service.ts +0 -0
  52. /package/{src/app/proto-models → proto-models}/com/coralogix/rum/v2/source_code_file_mapping.ts +0 -0
  53. /package/{src/app/proto-models → proto-models}/google/protobuf/descriptor.ts +0 -0
@@ -10,42 +10,30 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  });
11
11
  };
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
- exports.RED_COLOR = exports.GREEN_COLOR = void 0;
14
13
  const commander_1 = require("commander");
15
- const rum_api_1 = require("../api/rum-api");
16
- const traverse_folder_util_1 = require("./utils/traverse-folder.util");
17
- const cli_model_1 = require("../model/cli.model");
18
- const rum_source_map_service_1 = require("../src/app/proto-models/com/coralogix/rum/v2/rum_source_map_service");
19
- exports.GREEN_COLOR = '\x1b[32m%s\x1b[0m';
20
- exports.RED_COLOR = '\x1b[31m%s\x1b[0m';
21
- const validateEnvironment = (env) => {
22
- const validEnvironments = Object.keys(cli_model_1.envToDomain).join(', ');
23
- if (!(env in cli_model_1.envToDomain)) {
24
- const errorMessage = `❌ Invalid environment: ${env}. Possible values are: ${validEnvironments}`;
25
- console.error(exports.RED_COLOR, errorMessage);
26
- process.exit(1);
27
- }
28
- return env;
29
- };
14
+ const source_maps_service_1 = require("../services/source-maps/source-maps.service");
15
+ const validators_1 = require("./validators");
16
+ const theme_1 = require("./theme");
30
17
  const program = new commander_1.Command();
31
- program
18
+ program.name('coralogix-rum-cli').description('cli for upload source maps');
19
+ const uploadCommand = program.command('upload-source-maps');
20
+ uploadCommand
32
21
  .option('-k, --private-key <privateKey>', 'Private key to authenticate with the API')
33
22
  .option('-a, --application <application>', 'Name of the application')
34
23
  .option('-r, --release-id <releaseId>', 'ID of the release')
35
24
  .option('-f, --folder-path <folderPath>', 'Path to the folder containing the source maps')
36
- .option('-e, --env <env>', 'Your environment', validateEnvironment)
37
- .option('-c, --commit-hash <commitHash>', 'Github commit hash (optional)', undefined)
38
- .option('-n, --repo-name <repoName>', 'Github Repository name (optional)', undefined)
39
- .option('-u, --user <user>', 'Github user name (optional)', undefined)
40
- .option('-h, --help', 'Display help');
41
- program.parse(process.argv);
42
- const { privateKey, application, releaseId, folderPath, commitHash, repoName, user, env } = program.opts();
43
- if (process.argv.includes('--help')) {
44
- program.outputHelp();
45
- process.exit(0);
46
- }
47
- (() => __awaiter(void 0, void 0, void 0, function* () {
25
+ .option('-e, --env <env>', 'Your environment', validators_1.validateEnvironment)
26
+ .option('-c, --commit-hash <commitHash>', 'GitHub commit hash (optional)')
27
+ .option('-n, --repo-name <repoName>', 'GitHub Repository name (optional)')
28
+ .option('-o, --org-name <orgName>', 'GitHub user name (optional)')
29
+ .description('Upload source maps')
30
+ .action((options) => __awaiter(void 0, void 0, void 0, function* () {
48
31
  try {
32
+ if (options.help) {
33
+ program.outputHelp();
34
+ process.exit(0);
35
+ }
36
+ const { privateKey, application, releaseId, folderPath, commitHash, repoName, orgName, env } = options;
49
37
  const missingArgs = [];
50
38
  if (!privateKey)
51
39
  missingArgs.push('private-key');
@@ -60,24 +48,15 @@ if (process.argv.includes('--help')) {
60
48
  if (missingArgs.length > 0) {
61
49
  const missingArgsList = missingArgs.map(arg => `- ${arg}`).join('\n');
62
50
  const errorMessage = `❌ Missing required arguments:\n${missingArgsList}\nPlease provide the necessary options`;
63
- console.error(exports.RED_COLOR, errorMessage);
51
+ console.error(theme_1.RED_COLOR, errorMessage);
64
52
  process.exit(1);
65
53
  }
66
- const request = rum_source_map_service_1.UploadSourceMapsRequest.create();
67
- request.application = application;
68
- request.releaseId = releaseId;
69
- request.repoName = repoName;
70
- request.commitHash = commitHash;
71
- request.user = user;
72
- yield (0, traverse_folder_util_1.traverseFolder)(folderPath, request);
73
- yield (0, rum_api_1.uploadSourceMaps)(request, env, privateKey);
74
- console.log(exports.GREEN_COLOR, '✅ Source maps uploaded successfully!');
75
- console.log(exports.GREEN_COLOR, `✅ Total chunk files processed: ${request.files.length}`);
76
- console.log(exports.GREEN_COLOR, '✅ Processing complete.');
54
+ yield source_maps_service_1.SourceMapsService.upload(application, releaseId, repoName, commitHash, orgName, folderPath, env, privateKey);
77
55
  }
78
56
  catch (error) {
79
- console.error(exports.RED_COLOR, '❌ An error occurred:');
80
- console.error(exports.RED_COLOR, error);
57
+ console.error(theme_1.RED_COLOR, '❌ An error occurred:');
58
+ console.error(theme_1.RED_COLOR, error);
81
59
  }
82
- }))();
83
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVtLWNsaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2NsaS9ydW0tY2xpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFDQSx5Q0FBa0M7QUFDbEMsNENBQWdEO0FBQ2hELHVFQUE0RDtBQUM1RCxrREFBK0M7QUFDL0MsZ0hBQTRHO0FBRS9GLFFBQUEsV0FBVyxHQUFHLG1CQUFtQixDQUFDO0FBQ2xDLFFBQUEsU0FBUyxHQUFHLG1CQUFtQixDQUFDO0FBRTdDLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxHQUFXLEVBQVUsRUFBRTtJQUNoRCxNQUFNLGlCQUFpQixHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsdUJBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUU5RCxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksdUJBQVcsQ0FBQyxFQUFFO1FBQ3ZCLE1BQU0sWUFBWSxHQUFHLDBCQUEwQixHQUFHLDBCQUEwQixpQkFBaUIsRUFBRSxDQUFDO1FBQ2hHLE9BQU8sQ0FBQyxLQUFLLENBQUMsaUJBQVMsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUN2QyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ25CO0lBRUQsT0FBTyxHQUFHLENBQUM7QUFDZixDQUFDLENBQUE7QUFFRCxNQUFNLE9BQU8sR0FBRyxJQUFJLG1CQUFPLEVBQUUsQ0FBQztBQUU5QixPQUFPO0tBQ0YsTUFBTSxDQUFDLGdDQUFnQyxFQUFFLDBDQUEwQyxDQUFDO0tBQ3BGLE1BQU0sQ0FBQyxpQ0FBaUMsRUFBRSx5QkFBeUIsQ0FBQztLQUNwRSxNQUFNLENBQUMsOEJBQThCLEVBQUUsbUJBQW1CLENBQUM7S0FDM0QsTUFBTSxDQUFDLGdDQUFnQyxFQUFFLCtDQUErQyxDQUFDO0tBQ3pGLE1BQU0sQ0FBQyxpQkFBaUIsRUFBRSxrQkFBa0IsRUFBRSxtQkFBbUIsQ0FBQztLQUNsRSxNQUFNLENBQUMsZ0NBQWdD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LENBQUM7S0FDbkM7QUFDTCxDQUFDLENBQUEsQ0FBQyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIjIS91c3IvYmluL2VudiBub2RlXG5pbXBvcnQge0NvbW1hbmR9IGZyb20gJ2NvbW1hbmRlcic7XG5pbXBvcnQge3VwbG9hZFNvdXJjZU1hcHN9IGZyb20gXCIuLi9hcGkvcnVtLWFwaVwiO1xuaW1wb3J0IHt0cmF2ZXJzZUZvbGRlcn0gZnJvbSBcIi4vdXRpbHMvdHJhdmVyc2UtZm9sZGVyLnV0aWxcIjtcbmltcG9ydCB7ZW52VG9Eb21haW59IGZyb20gXCIuLi9tb2RlbC9jbGkubW9kZWxcIjtcbmltcG9ydCB7VXBsb2FkU291cmNlTWFwc1JlcXVlc3R9IGZyb20gXCIuLi9zcmMvYXBwL3Byb3RvLW1vZGVscy9jb20vY29yYWxvZ2l4L3J1bS92Mi9ydW1fc291cmNlX21hcF9zZXJ2aWNlXCI7XG5cbmV4cG9ydCBjb25zdCBHUkVFTl9DT0xPUiA9ICdcXHgxYlszMm0lc1xceDFiWzBtJztcbmV4cG9ydCBjb25zdCBSRURfQ09MT1IgPSAnXFx4MWJbMzFtJXNcXHgxYlswbSc7XG5cbmNvbnN0IHZhbGlkYXRlRW52aXJvbm1lbnQgPSAoZW52OiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICAgIGNvbnN0IHZhbGlkRW52aXJvbm1lbnRzID0gT2JqZWN0LmtleXMoZW52VG9Eb21haW4pLmpvaW4oJywgJyk7XG5cbiAgICBpZiAoIShlbnYgaW4gZW52VG9Eb21haW4pKSB7XG4gICAgICAgIGNvbnN0IGVycm9yTWVzc2FnZSA9IGDinYwgSW52YWxpZCBlbnZpcm9ubWVudDogJHtlbnZ9LiBQb3NzaWJsZSB2YWx1ZXMgYXJlOiAke3ZhbGlkRW52aXJvbm1lbnRzfWA7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoUkVEX0NPTE9SLCBlcnJvck1lc3NhZ2UpO1xuICAgICAgICBwcm9jZXNzLmV4aXQoMSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGVudjtcbn1cblxuY29uc3QgcHJvZ3JhbSA9IG5ldyBDb21tYW5kKCk7XG5cbnByb2dyYW1cbiAgICAub3B0aW9uKCctaywgLS1wcml2YXRlLWtleSA8cHJpdmF0ZUtleT4nLCAnUHJpdmF0ZSBrZXkgdG8gYXV0aGVudGljYXRlIHdpdGggdGhlIEFQSScpXG4gICAgLm9wdGlvbignLWEsIC0tYXBwbGljYXRpb24gPGFwcGxpY2F0aW9uPicsICdOYW1lIG9mIHRoZSBhcHBsaWNhdGlvbicpXG4gICAgLm9wdGlvbignLXIsIC0tcmVsZWFzZS1pZCA8cmVsZWFzZUlkPicsICdJRCBvZiB0aGUgcmVsZWFzZScpXG4gICAgLm9wdGlvbignLWYsIC0tZm9sZGVyLXBhdGggPGZvbGRlclBhdGg+JywgJ1BhdGggdG8gdGhlIGZvbGRlciBjb250YWluaW5nIHRoZSBzb3VyY2UgbWFwcycpXG4gICAgLm9wdGlvbignLWUsIC0tZW52IDxlbnY+JywgJ1lvdXIgZW52aXJvbm1lbnQnLCB2YWxpZGF0ZUVudmlyb25tZW50KVxuICAgIC5vcHRpb24oJy1jLCAtLWNvbW1pdC1oYXNoIDxjb21taXRIYXNoPicsICdHaXRodWIgY29tbWl0IGhhc2ggKG9wdGlvbmFsKScsIHVuZGVmaW5lZClcbiAgICAub3B0aW9uKCctbiwgLS1yZXBvLW5hbWUgPHJlcG9OYW1lPicsICdHaXRodWIgUmVwb3NpdG9yeSBuYW1lIChvcHRpb25hbCknLCB1bmRlZmluZWQpXG4gICAgLm9wdGlvbignLXUsIC0tdXNlciA8dXNlcj4nLCAnR2l0aHViIHVzZXIgbmFtZSAob3B0aW9uYWwpJywgdW5kZWZpbmVkKVxuICAgIC5vcHRpb24oJy1oLCAtLWhlbHAnLCAnRGlzcGxheSBoZWxwJylcblxucHJvZ3JhbS5wYXJzZShwcm9jZXNzLmFyZ3YpO1xuXG5jb25zdCB7cHJpdmF0ZUtleSwgYXBwbGljYXRpb24sIHJlbGVhc2VJZCwgZm9sZGVyUGF0aCwgY29tbWl0SGFzaCwgcmVwb05hbWUsIHVzZXIsIGVudn0gPSBwcm9ncmFtLm9wdHMoKTtcblxuaWYgKHByb2Nlc3MuYXJndi5pbmNsdWRlcygnLS1oZWxwJykpIHtcbiAgICBwcm9ncmFtLm91dHB1dEhlbHAoKTtcbiAgICBwcm9jZXNzLmV4aXQoMCk7XG59XG5cbihhc3luYyAoKSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgICAgY29uc3QgbWlzc2luZ0FyZ3MgPSBbXTtcblxuICAgICAgICBpZiAoIXByaXZhdGVLZXkpIG1pc3NpbmdBcmdzLnB1c2goJ3ByaXZhdGUta2V5Jyk7XG5cbiAgICAgICAgaWYgKCFhcHBsaWNhdGlvbikgbWlzc2luZ0FyZ3MucHVzaCgnYXBwbGljYXRpb24nKTtcblxuICAgICAgICBpZiAoIXJlbGVhc2VJZCkgbWlzc2luZ0FyZ3MucHVzaCgncmVsZWFzZS1pZCcpO1xuXG4gICAgICAgIGlmICghZm9sZGVyUGF0aCkgbWlzc2luZ0FyZ3MucHVzaCgnZm9sZGVyLXBhdGgnKTtcblxuICAgICAgICBpZiAoIWVudikgbWlzc2luZ0FyZ3MucHVzaCgnZW52Jyk7XG5cbiAgICAgICAgaWYgKG1pc3NpbmdBcmdzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IG1pc3NpbmdBcmdzTGlzdCA9IG1pc3NpbmdBcmdzLm1hcChhcmcgPT4gYC0gJHthcmd9YCkuam9pbignXFxuJyk7XG4gICAgICAgICAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSBg4p2MIE1pc3NpbmcgcmVxdWlyZWQgYXJndW1lbnRzOlxcbiR7bWlzc2luZ0FyZ3NMaXN0fVxcblBsZWFzZSBwcm92aWRlIHRoZSBuZWNlc3Nhcnkgb3B0aW9uc2A7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFJFRF9DT0xPUiwgZXJyb3JNZXNzYWdlKTtcbiAgICAgICAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSBVcGxvYWRTb3VyY2VNYXBzUmVxdWVzdC5jcmVhdGUoKTtcblxuICAgICAgICByZXF1ZXN0LmFwcGxpY2F0aW9uID0gYXBwbGljYXRpb247XG4gICAgICAgIHJlcXVlc3QucmVsZWFzZUlkID0gcmVsZWFzZUlkO1xuICAgICAgICByZXF1ZXN0LnJlcG9OYW1lID0gcmVwb05hbWU7XG4gICAgICAgIHJlcXVlc3QuY29tbWl0SGFzaCA9IGNvbW1pdEhhc2g7XG4gICAgICAgIHJlcXVlc3QudXNlciA9IHVzZXI7XG5cbiAgICAgICAgYXdhaXQgdHJhdmVyc2VGb2xkZXIoZm9sZGVyUGF0aCwgcmVxdWVzdCk7XG5cbiAgICAgICAgYXdhaXQgdXBsb2FkU291cmNlTWFwcyhyZXF1ZXN0LCBlbnYsIHByaXZhdGVLZXkpO1xuXG4gICAgICAgIGNvbnNvbGUubG9nKEdSRUVOX0NPTE9SLCAn4pyFIFNvdXJjZSBtYXBzIHVwbG9hZGVkIHN1Y2Nlc3NmdWxseSEnKTtcbiAgICAgICAgY29uc29sZS5sb2coR1JFRU5fQ09MT1IsIGDinIUgVG90YWwgY2h1bmsgZmlsZXMgcHJvY2Vzc2VkOiAke3JlcXVlc3QuZmlsZXMubGVuZ3RofWApO1xuICAgICAgICBjb25zb2xlLmxvZyhHUkVFTl9DT0xPUiwgJ+KchSBQcm9jZXNzaW5nIGNvbXBsZXRlLicpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoUkVEX0NPTE9SLCAn4p2MIEFuIGVycm9yIG9jY3VycmVkOicpO1xuICAgICAgICBjb25zb2xlLmVycm9yKFJFRF9DT0xPUiwgZXJyb3IpO1xuICAgIH1cbn0pKCk7XG4iXX0=
60
+ }));
61
+ program.parse(process.argv);
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVtLWNsaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2NsaS9ydW0tY2xpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUNBLHlDQUFrQztBQUNsQyxxRkFBOEU7QUFDOUUsNkNBQWlEO0FBQ2pELG1DQUFrQztBQUVsQyxNQUFNLE9BQU8sR0FBRyxJQUFJLG1CQUFPLEVBQUUsQ0FBQztBQUU5QixPQUFPLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUMsV0FBVyxDQUFDLDRCQUE0QixDQUFDLENBQUE7QUFFM0UsTUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0FBRTVELGFBQWE7S0FDUixNQUFNLENBQUMsZ0NBQWdDLEVBQUUsMENBQTBDLENBQUM7S0FDcEYsTUFBTSxDQUFDLGlDQUFpQyxFQUFFLHlCQUF5QixDQUFDO0tBQ3BFLE1BQU0sQ0FBQyw4QkFBOEIsRUFBRSxtQkFBbUIsQ0FBQztLQUMzRCxNQUFNLENBQUMsZ0NBQWdDLEVBQUUsK0NBQStDLENBQUM7S0FDekYsTUFBTSxDQUFDLGlCQUFpQixFQUFFLGtCQUFrQixFQUFFLGdDQUFtQixDQUFDO0tBQ2xFLE1BQU0sQ0FBQyxnQ0FBZ0MsRUFBRSwrQkFBK0IsQ0FBQztLQUN6RSxNQUFNLENBQUMsNEJBQTRCLEVBQUUsbUNBQW1DLENBQUM7S0FDekUsTUFBTSxDQUFDLDBCQUEwQixFQUFFLDZCQUE2QixDQUFDO0tBQ2pFLFdBQVcsQ0FBQyxvQkFBb0IsQ0FBQztLQUNqQyxNQUFNLENBQUMsQ0FBTyxPQUFPLEVBQUUsRUFBRTtJQUN0QixJQUFJO1FBQ0EsSUFBSSxPQUFPLENBQUMsSUFBSSxFQUFFO1lBQ2QsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3JCLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDbkI7UUFFRCxNQUFNLEVBQUMsVUFBVSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBQyxHQUFHLE9BQU8sQ0FBQztRQUVyRyxNQUFNLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFFdkIsSUFBSSxDQUFDLFVBQVU7WUFBRSxXQUFXLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ2pELElBQUksQ0FBQyxXQUFXO1lBQUUsV0FBVyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNsRCxJQUFJLENBQUMsU0FBUztZQUFFLFdBQVcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLFVBQVU7WUFBRSxXQUFXLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ2pELElBQUksQ0FBQyxHQUFHO1lBQUUsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVsQyxJQUFJLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3hCLE1BQU0sZUFBZSxHQUFHLFdBQVcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3RFLE1BQU0sWUFBWSxHQUFHLGtDQUFrQyxlQUFlLHdDQUF3QyxDQUFDO1lBQy9HLE9BQU8sQ0FBQyxLQUFLLENBQUMsaUJBQVMsRUFBRSxZQUFZLENBQUMsQ0FBQztZQUN2QyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ25CO1FBRUQsTUFBTSx1Q0FBaUIsQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLFVBQVUsQ0FBQyxDQUFBO0tBQ3JIO0lBQUMsT0FBTyxLQUFLLEVBQUU7UUFDWixPQUFPLENBQUMsS0FBSyxDQUFDLGlCQUFTLEVBQUUsc0JBQXNCLENBQUMsQ0FBQztRQUNqRCxPQUFPLENBQUMsS0FBSyxDQUFDLGlCQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7S0FDbkM7QUFDTCxDQUFDLENBQUEsQ0FBQyxDQUFDO0FBRVAsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIjIS91c3IvYmluL2VudiBub2RlXG5pbXBvcnQge0NvbW1hbmR9IGZyb20gJ2NvbW1hbmRlcic7XG5pbXBvcnQge1NvdXJjZU1hcHNTZXJ2aWNlfSBmcm9tIFwiLi4vc2VydmljZXMvc291cmNlLW1hcHMvc291cmNlLW1hcHMuc2VydmljZVwiO1xuaW1wb3J0IHt2YWxpZGF0ZUVudmlyb25tZW50fSBmcm9tIFwiLi92YWxpZGF0b3JzXCI7XG5pbXBvcnQge1JFRF9DT0xPUn0gZnJvbSBcIi4vdGhlbWVcIjtcblxuY29uc3QgcHJvZ3JhbSA9IG5ldyBDb21tYW5kKCk7XG5cbnByb2dyYW0ubmFtZSgnY29yYWxvZ2l4LXJ1bS1jbGknKS5kZXNjcmlwdGlvbignY2xpIGZvciB1cGxvYWQgc291cmNlIG1hcHMnKVxuXG5jb25zdCB1cGxvYWRDb21tYW5kID0gcHJvZ3JhbS5jb21tYW5kKCd1cGxvYWQtc291cmNlLW1hcHMnKTtcblxudXBsb2FkQ29tbWFuZFxuICAgIC5vcHRpb24oJy1rLCAtLXByaXZhdGUta2V5IDxwcml2YXRlS2V5PicsICdQcml2YXRlIGtleSB0byBhdXRoZW50aWNhdGUgd2l0aCB0aGUgQVBJJylcbiAgICAub3B0aW9uKCctYSwgLS1hcHBsaWNhdGlvbiA8YXBwbGljYXRpb24+JywgJ05hbWUgb2YgdGhlIGFwcGxpY2F0aW9uJylcbiAgICAub3B0aW9uKCctciwgLS1yZWxlYXNlLWlkIDxyZWxlYXNlSWQ+JywgJ0lEIG9mIHRoZSByZWxlYXNlJylcbiAgICAub3B0aW9uKCctZiwgLS1mb2xkZXItcGF0aCA8Zm9sZGVyUGF0aD4nLCAnUGF0aCB0byB0aGUgZm9sZGVyIGNvbnRhaW5pbmcgdGhlIHNvdXJjZSBtYXBzJylcbiAgICAub3B0aW9uKCctZSwgLS1lbnYgPGVudj4nLCAnWW91ciBlbnZpcm9ubWVudCcsIHZhbGlkYXRlRW52aXJvbm1lbnQpXG4gICAgLm9wdGlvbignLWMsIC0tY29tbWl0LWhhc2ggPGNvbW1pdEhhc2g+JywgJ0dpdEh1YiBjb21taXQgaGFzaCAob3B0aW9uYWwpJylcbiAgICAub3B0aW9uKCctbiwgLS1yZXBvLW5hbWUgPHJlcG9OYW1lPicsICdHaXRIdWIgUmVwb3NpdG9yeSBuYW1lIChvcHRpb25hbCknKVxuICAgIC5vcHRpb24oJy1vLCAtLW9yZy1uYW1lIDxvcmdOYW1lPicsICdHaXRIdWIgdXNlciBuYW1lIChvcHRpb25hbCknKVxuICAgIC5kZXNjcmlwdGlvbignVXBsb2FkIHNvdXJjZSBtYXBzJylcbiAgICAuYWN0aW9uKGFzeW5jIChvcHRpb25zKSA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBpZiAob3B0aW9ucy5oZWxwKSB7XG4gICAgICAgICAgICAgICAgcHJvZ3JhbS5vdXRwdXRIZWxwKCk7XG4gICAgICAgICAgICAgICAgcHJvY2Vzcy5leGl0KDApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCB7cHJpdmF0ZUtleSwgYXBwbGljYXRpb24sIHJlbGVhc2VJZCwgZm9sZGVyUGF0aCwgY29tbWl0SGFzaCwgcmVwb05hbWUsIG9yZ05hbWUsIGVudn0gPSBvcHRpb25zO1xuXG4gICAgICAgICAgICBjb25zdCBtaXNzaW5nQXJncyA9IFtdO1xuXG4gICAgICAgICAgICBpZiAoIXByaXZhdGVLZXkpIG1pc3NpbmdBcmdzLnB1c2goJ3ByaXZhdGUta2V5Jyk7XG4gICAgICAgICAgICBpZiAoIWFwcGxpY2F0aW9uKSBtaXNzaW5nQXJncy5wdXNoKCdhcHBsaWNhdGlvbicpO1xuICAgICAgICAgICAgaWYgKCFyZWxlYXNlSWQpIG1pc3NpbmdBcmdzLnB1c2goJ3JlbGVhc2UtaWQnKTtcbiAgICAgICAgICAgIGlmICghZm9sZGVyUGF0aCkgbWlzc2luZ0FyZ3MucHVzaCgnZm9sZGVyLXBhdGgnKTtcbiAgICAgICAgICAgIGlmICghZW52KSBtaXNzaW5nQXJncy5wdXNoKCdlbnYnKTtcblxuICAgICAgICAgICAgaWYgKG1pc3NpbmdBcmdzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICBjb25zdCBtaXNzaW5nQXJnc0xpc3QgPSBtaXNzaW5nQXJncy5tYXAoYXJnID0+IGAtICR7YXJnfWApLmpvaW4oJ1xcbicpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGVycm9yTWVzc2FnZSA9IGDinYwgTWlzc2luZyByZXF1aXJlZCBhcmd1bWVudHM6XFxuJHttaXNzaW5nQXJnc0xpc3R9XFxuUGxlYXNlIHByb3ZpZGUgdGhlIG5lY2Vzc2FyeSBvcHRpb25zYDtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFJFRF9DT0xPUiwgZXJyb3JNZXNzYWdlKTtcbiAgICAgICAgICAgICAgICBwcm9jZXNzLmV4aXQoMSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGF3YWl0IFNvdXJjZU1hcHNTZXJ2aWNlLnVwbG9hZChhcHBsaWNhdGlvbiwgcmVsZWFzZUlkLCByZXBvTmFtZSwgY29tbWl0SGFzaCwgb3JnTmFtZSwgZm9sZGVyUGF0aCwgZW52LCBwcml2YXRlS2V5KVxuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihSRURfQ09MT1IsICfinYwgQW4gZXJyb3Igb2NjdXJyZWQ6Jyk7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFJFRF9DT0xPUiwgZXJyb3IpO1xuICAgICAgICB9XG4gICAgfSk7XG5cbnByb2dyYW0ucGFyc2UocHJvY2Vzcy5hcmd2KTtcbiJdfQ==
@@ -0,0 +1,3 @@
1
+ export declare const GREEN_COLOR = "\u001B[32m%s\u001B[0m";
2
+ export declare const RED_COLOR = "\u001B[31m%s\u001B[0m";
3
+ export declare const GRAY_COLOR = "\u001B[37m%s\u001B[0m";
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GRAY_COLOR = exports.RED_COLOR = exports.GREEN_COLOR = void 0;
4
+ exports.GREEN_COLOR = '\x1b[32m%s\x1b[0m';
5
+ exports.RED_COLOR = '\x1b[31m%s\x1b[0m';
6
+ exports.GRAY_COLOR = '\x1b[37m%s\x1b[0m';
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9jbGkvdGhlbWUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQWEsUUFBQSxXQUFXLEdBQUcsbUJBQW1CLENBQUM7QUFFbEMsUUFBQSxTQUFTLEdBQUcsbUJBQW1CLENBQUM7QUFFaEMsUUFBQSxVQUFVLEdBQUcsbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgR1JFRU5fQ09MT1IgPSAnXFx4MWJbMzJtJXNcXHgxYlswbSc7XG5cbmV4cG9ydCBjb25zdCBSRURfQ09MT1IgPSAnXFx4MWJbMzFtJXNcXHgxYlswbSc7XG5cbmV4cG9ydCBjb25zdCBHUkFZX0NPTE9SID0gJ1xceDFiWzM3bSVzXFx4MWJbMG0nOyJdfQ==
@@ -0,0 +1 @@
1
+ export declare const validateEnvironment: (env: string) => string;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validateEnvironment = void 0;
4
+ const cli_model_1 = require("../../model/cli.model");
5
+ const theme_1 = require("../theme");
6
+ const validateEnvironment = (env) => {
7
+ const validEnvironments = Object.keys(cli_model_1.envToDomain).join(', ');
8
+ if (!(env in cli_model_1.envToDomain)) {
9
+ const errorMessage = `❌ Invalid environment: ${env}. Possible values are: ${validEnvironments}`;
10
+ console.error(theme_1.RED_COLOR, errorMessage);
11
+ process.exit(1);
12
+ }
13
+ return env;
14
+ };
15
+ exports.validateEnvironment = validateEnvironment;
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9jbGkvdmFsaWRhdG9ycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxREFBa0Q7QUFDbEQsb0NBQW1DO0FBRTVCLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxHQUFXLEVBQVUsRUFBRTtJQUN2RCxNQUFNLGlCQUFpQixHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsdUJBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUU5RCxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksdUJBQVcsQ0FBQyxFQUFFO1FBQ3ZCLE1BQU0sWUFBWSxHQUFHLDBCQUEwQixHQUFHLDBCQUEwQixpQkFBaUIsRUFBRSxDQUFDO1FBQ2hHLE9BQU8sQ0FBQyxLQUFLLENBQUMsaUJBQVMsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUN2QyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ25CO0lBRUQsT0FBTyxHQUFHLENBQUM7QUFDZixDQUFDLENBQUE7QUFWWSxRQUFBLG1CQUFtQix1QkFVL0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2VudlRvRG9tYWlufSBmcm9tIFwiLi4vLi4vbW9kZWwvY2xpLm1vZGVsXCI7XG5pbXBvcnQge1JFRF9DT0xPUn0gZnJvbSBcIi4uL3RoZW1lXCI7XG5cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZUVudmlyb25tZW50ID0gKGVudjogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgICBjb25zdCB2YWxpZEVudmlyb25tZW50cyA9IE9iamVjdC5rZXlzKGVudlRvRG9tYWluKS5qb2luKCcsICcpO1xuXG4gICAgaWYgKCEoZW52IGluIGVudlRvRG9tYWluKSkge1xuICAgICAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSBg4p2MIEludmFsaWQgZW52aXJvbm1lbnQ6ICR7ZW52fS4gUG9zc2libGUgdmFsdWVzIGFyZTogJHt2YWxpZEVudmlyb25tZW50c31gO1xuICAgICAgICBjb25zb2xlLmVycm9yKFJFRF9DT0xPUiwgZXJyb3JNZXNzYWdlKTtcbiAgICAgICAgcHJvY2Vzcy5leGl0KDEpO1xuICAgIH1cblxuICAgIHJldHVybiBlbnY7XG59Il19
@@ -7,7 +7,5 @@ exports.envToDomain = {
7
7
  EU2: 'https://ng-api-grpc.eu2.coralogix.com:443',
8
8
  AP1: 'https://ng-api-grpc.app.coralogix.in:443',
9
9
  AP2: 'https://ng-api-grpc.coralogix.com:443',
10
- STAGING: 'https://ng-api-grpc.app.staging.coralogix.net:443',
11
- PRODUCTION: 'https://ng-api-grpc.coralogix.com:443',
12
10
  };
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbW9kZWwvY2xpLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFhLFFBQUEsV0FBVyxHQUEyQjtJQUMvQyxHQUFHLEVBQUUsc0NBQXNDO0lBQzNDLEdBQUcsRUFBRSx1Q0FBdUM7SUFDNUMsR0FBRyxFQUFFLDJDQUEyQztJQUNoRCxHQUFHLEVBQUUsMENBQTBDO0lBQy9DLEdBQUcsRUFBRSx1Q0FBdUM7SUFDNUMsT0FBTyxFQUFFLG1EQUFtRDtJQUM1RCxVQUFVLEVBQUUsdUNBQXVDO0NBQ3RELENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgZW52VG9Eb21haW46IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICAgVVMxOiAnaHR0cHM6Ly9uZy1hcGktZ3JwYy5jb3JhbG9naXgudXM6NDQzJyxcbiAgICBFVTE6ICdodHRwczovL25nLWFwaS1ncnBjLmNvcmFsb2dpeC5jb206NDQzJyxcbiAgICBFVTI6ICdodHRwczovL25nLWFwaS1ncnBjLmV1Mi5jb3JhbG9naXguY29tOjQ0MycsXG4gICAgQVAxOiAnaHR0cHM6Ly9uZy1hcGktZ3JwYy5hcHAuY29yYWxvZ2l4LmluOjQ0MycsXG4gICAgQVAyOiAnaHR0cHM6Ly9uZy1hcGktZ3JwYy5jb3JhbG9naXguY29tOjQ0MycsXG4gICAgU1RBR0lORzogJ2h0dHBzOi8vbmctYXBpLWdycGMuYXBwLnN0YWdpbmcuY29yYWxvZ2l4Lm5ldDo0NDMnLFxuICAgIFBST0RVQ1RJT046ICdodHRwczovL25nLWFwaS1ncnBjLmNvcmFsb2dpeC5jb206NDQzJyxcbn0iXX0=
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbW9kZWwvY2xpLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFhLFFBQUEsV0FBVyxHQUEyQjtJQUMvQyxHQUFHLEVBQUUsc0NBQXNDO0lBQzNDLEdBQUcsRUFBRSx1Q0FBdUM7SUFDNUMsR0FBRyxFQUFFLDJDQUEyQztJQUNoRCxHQUFHLEVBQUUsMENBQTBDO0lBQy9DLEdBQUcsRUFBRSx1Q0FBdUM7Q0FDL0MsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBlbnZUb0RvbWFpbjogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICBVUzE6ICdodHRwczovL25nLWFwaS1ncnBjLmNvcmFsb2dpeC51czo0NDMnLFxuICAgIEVVMTogJ2h0dHBzOi8vbmctYXBpLWdycGMuY29yYWxvZ2l4LmNvbTo0NDMnLFxuICAgIEVVMjogJ2h0dHBzOi8vbmctYXBpLWdycGMuZXUyLmNvcmFsb2dpeC5jb206NDQzJyxcbiAgICBBUDE6ICdodHRwczovL25nLWFwaS1ncnBjLmFwcC5jb3JhbG9naXguaW46NDQzJyxcbiAgICBBUDI6ICdodHRwczovL25nLWFwaS1ncnBjLmNvcmFsb2dpeC5jb206NDQzJyxcbn0iXX0=
@@ -0,0 +1,62 @@
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.AuditLogDescription = exports.protobufPackage = void 0;
7
+ /* eslint-disable */
8
+ const minimal_1 = __importDefault(require("protobufjs/minimal"));
9
+ exports.protobufPackage = "com.coralogix.rum.v2";
10
+ function createBaseAuditLogDescription() {
11
+ return { description: undefined };
12
+ }
13
+ exports.AuditLogDescription = {
14
+ encode(message, writer = minimal_1.default.Writer.create()) {
15
+ if (message.description !== undefined) {
16
+ writer.uint32(10).string(message.description);
17
+ }
18
+ return writer;
19
+ },
20
+ decode(input, length) {
21
+ const reader = input instanceof minimal_1.default.Reader ? input : minimal_1.default.Reader.create(input);
22
+ let end = length === undefined ? reader.len : reader.pos + length;
23
+ const message = createBaseAuditLogDescription();
24
+ while (reader.pos < end) {
25
+ const tag = reader.uint32();
26
+ switch (tag >>> 3) {
27
+ case 1:
28
+ if (tag !== 10) {
29
+ break;
30
+ }
31
+ message.description = reader.string();
32
+ continue;
33
+ }
34
+ if ((tag & 7) === 4 || tag === 0) {
35
+ break;
36
+ }
37
+ reader.skipType(tag & 7);
38
+ }
39
+ return message;
40
+ },
41
+ fromJSON(object) {
42
+ return { description: isSet(object.description) ? String(object.description) : undefined };
43
+ },
44
+ toJSON(message) {
45
+ const obj = {};
46
+ message.description !== undefined && (obj.description = message.description);
47
+ return obj;
48
+ },
49
+ create(base) {
50
+ return exports.AuditLogDescription.fromPartial(base !== null && base !== void 0 ? base : {});
51
+ },
52
+ fromPartial(object) {
53
+ var _a;
54
+ const message = createBaseAuditLogDescription();
55
+ message.description = (_a = object.description) !== null && _a !== void 0 ? _a : undefined;
56
+ return message;
57
+ },
58
+ };
59
+ function isSet(value) {
60
+ return value !== null && value !== undefined;
61
+ }
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaXRfbG9nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvdG8tbW9kZWxzL2NvbS9jb3JhbG9naXgvcnVtL3YyL2F1ZGl0X2xvZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxvQkFBb0I7QUFDcEIsaUVBQXFDO0FBRXhCLFFBQUEsZUFBZSxHQUFHLHNCQUFzQixDQUFDO0FBTXRELFNBQVMsNkJBQTZCO0lBQ3BDLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLENBQUM7QUFDcEMsQ0FBQztBQUVZLFFBQUEsbUJBQW1CLEdBQUc7SUFDakMsTUFBTSxDQUFDLE9BQTRCLEVBQUUsU0FBcUIsaUJBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1FBQzNFLElBQUksT0FBTyxDQUFDLFdBQVcsS0FBSyxTQUFTLEVBQUU7WUFDckMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQy9DO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUE4QixFQUFFLE1BQWU7UUFDcEQsTUFBTSxNQUFNLEdBQUcsS0FBSyxZQUFZLGlCQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLGlCQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5RSxJQUFJLEdBQUcsR0FBRyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQztRQUNsRSxNQUFNLE9BQU8sR0FBRyw2QkFBNkIsRUFBRSxDQUFDO1FBQ2hELE9BQU8sTUFBTSxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUU7WUFDdkIsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzVCLFFBQVEsR0FBRyxLQUFLLENBQUMsRUFBRTtnQkFDakIsS0FBSyxDQUFDO29CQUNKLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRTt3QkFDZCxNQUFNO3FCQUNQO29CQUVELE9BQU8sQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUN0QyxTQUFTO2FBQ1o7WUFDRCxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxFQUFFO2dCQUNoQyxNQUFNO2FBQ1A7WUFDRCxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztTQUMxQjtRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxRQUFRLENBQUMsTUFBVztRQUNsQixPQUFPLEVBQUUsV0FBVyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQzdGLENBQUM7SUFFRCxNQUFNLENBQUMsT0FBNEI7UUFDakMsTUFBTSxHQUFHLEdBQVEsRUFBRSxDQUFDO1FBQ3BCLE9BQU8sQ0FBQyxXQUFXLEtBQUssU0FBUyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDN0UsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQsTUFBTSxDQUFDLElBQXVDO1FBQzVDLE9BQU8sMkJBQW1CLENBQUMsV0FBVyxDQUFDLElBQUksYUFBSixJQUFJLGNBQUosSUFBSSxHQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCxXQUFXLENBQUMsTUFBd0M7O1FBQ2xELE1BQU0sT0FBTyxHQUFHLDZCQUE2QixFQUFFLENBQUM7UUFDaEQsT0FBTyxDQUFDLFdBQVcsR0FBRyxNQUFBLE1BQU0sQ0FBQyxXQUFXLG1DQUFJLFNBQVMsQ0FBQztRQUN0RCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0NBQ0YsQ0FBQztBQVVGLFNBQVMsS0FBSyxDQUFDLEtBQVU7SUFDdkIsT0FBTyxLQUFLLEtBQUssSUFBSSxJQUFJLEtBQUssS0FBSyxTQUFTLENBQUM7QUFDL0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlICovXG5pbXBvcnQgX20wIGZyb20gXCJwcm90b2J1ZmpzL21pbmltYWxcIjtcblxuZXhwb3J0IGNvbnN0IHByb3RvYnVmUGFja2FnZSA9IFwiY29tLmNvcmFsb2dpeC5ydW0udjJcIjtcblxuZXhwb3J0IGludGVyZmFjZSBBdWRpdExvZ0Rlc2NyaXB0aW9uIHtcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUJhc2VBdWRpdExvZ0Rlc2NyaXB0aW9uKCk6IEF1ZGl0TG9nRGVzY3JpcHRpb24ge1xuICByZXR1cm4geyBkZXNjcmlwdGlvbjogdW5kZWZpbmVkIH07XG59XG5cbmV4cG9ydCBjb25zdCBBdWRpdExvZ0Rlc2NyaXB0aW9uID0ge1xuICBlbmNvZGUobWVzc2FnZTogQXVkaXRMb2dEZXNjcmlwdGlvbiwgd3JpdGVyOiBfbTAuV3JpdGVyID0gX20wLldyaXRlci5jcmVhdGUoKSk6IF9tMC5Xcml0ZXIge1xuICAgIGlmIChtZXNzYWdlLmRlc2NyaXB0aW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHdyaXRlci51aW50MzIoMTApLnN0cmluZyhtZXNzYWdlLmRlc2NyaXB0aW9uKTtcbiAgICB9XG4gICAgcmV0dXJuIHdyaXRlcjtcbiAgfSxcblxuICBkZWNvZGUoaW5wdXQ6IF9tMC5SZWFkZXIgfCBVaW50OEFycmF5LCBsZW5ndGg/OiBudW1iZXIpOiBBdWRpdExvZ0Rlc2NyaXB0aW9uIHtcbiAgICBjb25zdCByZWFkZXIgPSBpbnB1dCBpbnN0YW5jZW9mIF9tMC5SZWFkZXIgPyBpbnB1dCA6IF9tMC5SZWFkZXIuY3JlYXRlKGlucHV0KTtcbiAgICBsZXQgZW5kID0gbGVuZ3RoID09PSB1bmRlZmluZWQgPyByZWFkZXIubGVuIDogcmVhZGVyLnBvcyArIGxlbmd0aDtcbiAgICBjb25zdCBtZXNzYWdlID0gY3JlYXRlQmFzZUF1ZGl0TG9nRGVzY3JpcHRpb24oKTtcbiAgICB3aGlsZSAocmVhZGVyLnBvcyA8IGVuZCkge1xuICAgICAgY29uc3QgdGFnID0gcmVhZGVyLnVpbnQzMigpO1xuICAgICAgc3dpdGNoICh0YWcgPj4+IDMpIHtcbiAgICAgICAgY2FzZSAxOlxuICAgICAgICAgIGlmICh0YWcgIT09IDEwKSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBtZXNzYWdlLmRlc2NyaXB0aW9uID0gcmVhZGVyLnN0cmluZygpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgaWYgKCh0YWcgJiA3KSA9PT0gNCB8fCB0YWcgPT09IDApIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICByZWFkZXIuc2tpcFR5cGUodGFnICYgNyk7XG4gICAgfVxuICAgIHJldHVybiBtZXNzYWdlO1xuICB9LFxuXG4gIGZyb21KU09OKG9iamVjdDogYW55KTogQXVkaXRMb2dEZXNjcmlwdGlvbiB7XG4gICAgcmV0dXJuIHsgZGVzY3JpcHRpb246IGlzU2V0KG9iamVjdC5kZXNjcmlwdGlvbikgPyBTdHJpbmcob2JqZWN0LmRlc2NyaXB0aW9uKSA6IHVuZGVmaW5lZCB9O1xuICB9LFxuXG4gIHRvSlNPTihtZXNzYWdlOiBBdWRpdExvZ0Rlc2NyaXB0aW9uKTogdW5rbm93biB7XG4gICAgY29uc3Qgb2JqOiBhbnkgPSB7fTtcbiAgICBtZXNzYWdlLmRlc2NyaXB0aW9uICE9PSB1bmRlZmluZWQgJiYgKG9iai5kZXNjcmlwdGlvbiA9IG1lc3NhZ2UuZGVzY3JpcHRpb24pO1xuICAgIHJldHVybiBvYmo7XG4gIH0sXG5cbiAgY3JlYXRlKGJhc2U/OiBEZWVwUGFydGlhbDxBdWRpdExvZ0Rlc2NyaXB0aW9uPik6IEF1ZGl0TG9nRGVzY3JpcHRpb24ge1xuICAgIHJldHVybiBBdWRpdExvZ0Rlc2NyaXB0aW9uLmZyb21QYXJ0aWFsKGJhc2UgPz8ge30pO1xuICB9LFxuXG4gIGZyb21QYXJ0aWFsKG9iamVjdDogRGVlcFBhcnRpYWw8QXVkaXRMb2dEZXNjcmlwdGlvbj4pOiBBdWRpdExvZ0Rlc2NyaXB0aW9uIHtcbiAgICBjb25zdCBtZXNzYWdlID0gY3JlYXRlQmFzZUF1ZGl0TG9nRGVzY3JpcHRpb24oKTtcbiAgICBtZXNzYWdlLmRlc2NyaXB0aW9uID0gb2JqZWN0LmRlc2NyaXB0aW9uID8/IHVuZGVmaW5lZDtcbiAgICByZXR1cm4gbWVzc2FnZTtcbiAgfSxcbn07XG5cbnR5cGUgQnVpbHRpbiA9IERhdGUgfCBGdW5jdGlvbiB8IFVpbnQ4QXJyYXkgfCBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgdW5kZWZpbmVkO1xuXG5leHBvcnQgdHlwZSBEZWVwUGFydGlhbDxUPiA9IFQgZXh0ZW5kcyBCdWlsdGluID8gVFxuICA6IFQgZXh0ZW5kcyBBcnJheTxpbmZlciBVPiA/IEFycmF5PERlZXBQYXJ0aWFsPFU+PiA6IFQgZXh0ZW5kcyBSZWFkb25seUFycmF5PGluZmVyIFU+ID8gUmVhZG9ubHlBcnJheTxEZWVwUGFydGlhbDxVPj5cbiAgOiBUIGV4dGVuZHMgeyAkY2FzZTogc3RyaW5nIH0gPyB7IFtLIGluIGtleW9mIE9taXQ8VCwgXCIkY2FzZVwiPl0/OiBEZWVwUGFydGlhbDxUW0tdPiB9ICYgeyAkY2FzZTogVFtcIiRjYXNlXCJdIH1cbiAgOiBUIGV4dGVuZHMge30gPyB7IFtLIGluIGtleW9mIFRdPzogRGVlcFBhcnRpYWw8VFtLXT4gfVxuICA6IFBhcnRpYWw8VD47XG5cbmZ1bmN0aW9uIGlzU2V0KHZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgcmV0dXJuIHZhbHVlICE9PSBudWxsICYmIHZhbHVlICE9PSB1bmRlZmluZWQ7XG59XG4iXX0=
@@ -0,0 +1,330 @@
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.MappedChunk = exports.CodeLine = exports.Chunk = exports.protobufPackage = void 0;
7
+ /* eslint-disable */
8
+ const long_1 = __importDefault(require("long"));
9
+ const minimal_1 = __importDefault(require("protobufjs/minimal"));
10
+ exports.protobufPackage = "com.coralogix.rum.v2";
11
+ function createBaseChunk() {
12
+ return { chunkName: "", generatedLineNumber: 0, generatedColumnNumber: 0 };
13
+ }
14
+ exports.Chunk = {
15
+ encode(message, writer = minimal_1.default.Writer.create()) {
16
+ if (message.chunkName !== "") {
17
+ writer.uint32(10).string(message.chunkName);
18
+ }
19
+ if (message.generatedLineNumber !== 0) {
20
+ writer.uint32(16).int64(message.generatedLineNumber);
21
+ }
22
+ if (message.generatedColumnNumber !== 0) {
23
+ writer.uint32(24).int64(message.generatedColumnNumber);
24
+ }
25
+ return writer;
26
+ },
27
+ decode(input, length) {
28
+ const reader = input instanceof minimal_1.default.Reader ? input : minimal_1.default.Reader.create(input);
29
+ let end = length === undefined ? reader.len : reader.pos + length;
30
+ const message = createBaseChunk();
31
+ while (reader.pos < end) {
32
+ const tag = reader.uint32();
33
+ switch (tag >>> 3) {
34
+ case 1:
35
+ if (tag !== 10) {
36
+ break;
37
+ }
38
+ message.chunkName = reader.string();
39
+ continue;
40
+ case 2:
41
+ if (tag !== 16) {
42
+ break;
43
+ }
44
+ message.generatedLineNumber = longToNumber(reader.int64());
45
+ continue;
46
+ case 3:
47
+ if (tag !== 24) {
48
+ break;
49
+ }
50
+ message.generatedColumnNumber = longToNumber(reader.int64());
51
+ continue;
52
+ }
53
+ if ((tag & 7) === 4 || tag === 0) {
54
+ break;
55
+ }
56
+ reader.skipType(tag & 7);
57
+ }
58
+ return message;
59
+ },
60
+ fromJSON(object) {
61
+ return {
62
+ chunkName: isSet(object.chunkName) ? String(object.chunkName) : "",
63
+ generatedLineNumber: isSet(object.generatedLineNumber) ? Number(object.generatedLineNumber) : 0,
64
+ generatedColumnNumber: isSet(object.generatedColumnNumber) ? Number(object.generatedColumnNumber) : 0,
65
+ };
66
+ },
67
+ toJSON(message) {
68
+ const obj = {};
69
+ message.chunkName !== undefined && (obj.chunkName = message.chunkName);
70
+ message.generatedLineNumber !== undefined && (obj.generatedLineNumber = Math.round(message.generatedLineNumber));
71
+ message.generatedColumnNumber !== undefined &&
72
+ (obj.generatedColumnNumber = Math.round(message.generatedColumnNumber));
73
+ return obj;
74
+ },
75
+ create(base) {
76
+ return exports.Chunk.fromPartial(base !== null && base !== void 0 ? base : {});
77
+ },
78
+ fromPartial(object) {
79
+ var _a, _b, _c;
80
+ const message = createBaseChunk();
81
+ message.chunkName = (_a = object.chunkName) !== null && _a !== void 0 ? _a : "";
82
+ message.generatedLineNumber = (_b = object.generatedLineNumber) !== null && _b !== void 0 ? _b : 0;
83
+ message.generatedColumnNumber = (_c = object.generatedColumnNumber) !== null && _c !== void 0 ? _c : 0;
84
+ return message;
85
+ },
86
+ };
87
+ function createBaseCodeLine() {
88
+ return { lineIndex: 0, lineCode: "" };
89
+ }
90
+ exports.CodeLine = {
91
+ encode(message, writer = minimal_1.default.Writer.create()) {
92
+ if (message.lineIndex !== 0) {
93
+ writer.uint32(16).int64(message.lineIndex);
94
+ }
95
+ if (message.lineCode !== "") {
96
+ writer.uint32(10).string(message.lineCode);
97
+ }
98
+ return writer;
99
+ },
100
+ decode(input, length) {
101
+ const reader = input instanceof minimal_1.default.Reader ? input : minimal_1.default.Reader.create(input);
102
+ let end = length === undefined ? reader.len : reader.pos + length;
103
+ const message = createBaseCodeLine();
104
+ while (reader.pos < end) {
105
+ const tag = reader.uint32();
106
+ switch (tag >>> 3) {
107
+ case 2:
108
+ if (tag !== 16) {
109
+ break;
110
+ }
111
+ message.lineIndex = longToNumber(reader.int64());
112
+ continue;
113
+ case 1:
114
+ if (tag !== 10) {
115
+ break;
116
+ }
117
+ message.lineCode = reader.string();
118
+ continue;
119
+ }
120
+ if ((tag & 7) === 4 || tag === 0) {
121
+ break;
122
+ }
123
+ reader.skipType(tag & 7);
124
+ }
125
+ return message;
126
+ },
127
+ fromJSON(object) {
128
+ return {
129
+ lineIndex: isSet(object.lineIndex) ? Number(object.lineIndex) : 0,
130
+ lineCode: isSet(object.lineCode) ? String(object.lineCode) : "",
131
+ };
132
+ },
133
+ toJSON(message) {
134
+ const obj = {};
135
+ message.lineIndex !== undefined && (obj.lineIndex = Math.round(message.lineIndex));
136
+ message.lineCode !== undefined && (obj.lineCode = message.lineCode);
137
+ return obj;
138
+ },
139
+ create(base) {
140
+ return exports.CodeLine.fromPartial(base !== null && base !== void 0 ? base : {});
141
+ },
142
+ fromPartial(object) {
143
+ var _a, _b;
144
+ const message = createBaseCodeLine();
145
+ message.lineIndex = (_a = object.lineIndex) !== null && _a !== void 0 ? _a : 0;
146
+ message.lineCode = (_b = object.lineCode) !== null && _b !== void 0 ? _b : "";
147
+ return message;
148
+ },
149
+ };
150
+ function createBaseMappedChunk() {
151
+ return {
152
+ chunkName: "",
153
+ originalLineNumber: 0,
154
+ originalColumnNumber: 0,
155
+ sourceFileName: "",
156
+ sourceCodeLines: [],
157
+ generatedLineNumber: 0,
158
+ generatedColumnNumber: 0,
159
+ sourceFunctionName: "",
160
+ };
161
+ }
162
+ exports.MappedChunk = {
163
+ encode(message, writer = minimal_1.default.Writer.create()) {
164
+ if (message.chunkName !== "") {
165
+ writer.uint32(10).string(message.chunkName);
166
+ }
167
+ if (message.originalLineNumber !== 0) {
168
+ writer.uint32(16).int64(message.originalLineNumber);
169
+ }
170
+ if (message.originalColumnNumber !== 0) {
171
+ writer.uint32(24).int64(message.originalColumnNumber);
172
+ }
173
+ if (message.sourceFileName !== "") {
174
+ writer.uint32(34).string(message.sourceFileName);
175
+ }
176
+ for (const v of message.sourceCodeLines) {
177
+ exports.CodeLine.encode(v, writer.uint32(42).fork()).ldelim();
178
+ }
179
+ if (message.generatedLineNumber !== 0) {
180
+ writer.uint32(48).int64(message.generatedLineNumber);
181
+ }
182
+ if (message.generatedColumnNumber !== 0) {
183
+ writer.uint32(56).int64(message.generatedColumnNumber);
184
+ }
185
+ if (message.sourceFunctionName !== "") {
186
+ writer.uint32(66).string(message.sourceFunctionName);
187
+ }
188
+ return writer;
189
+ },
190
+ decode(input, length) {
191
+ const reader = input instanceof minimal_1.default.Reader ? input : minimal_1.default.Reader.create(input);
192
+ let end = length === undefined ? reader.len : reader.pos + length;
193
+ const message = createBaseMappedChunk();
194
+ while (reader.pos < end) {
195
+ const tag = reader.uint32();
196
+ switch (tag >>> 3) {
197
+ case 1:
198
+ if (tag !== 10) {
199
+ break;
200
+ }
201
+ message.chunkName = reader.string();
202
+ continue;
203
+ case 2:
204
+ if (tag !== 16) {
205
+ break;
206
+ }
207
+ message.originalLineNumber = longToNumber(reader.int64());
208
+ continue;
209
+ case 3:
210
+ if (tag !== 24) {
211
+ break;
212
+ }
213
+ message.originalColumnNumber = longToNumber(reader.int64());
214
+ continue;
215
+ case 4:
216
+ if (tag !== 34) {
217
+ break;
218
+ }
219
+ message.sourceFileName = reader.string();
220
+ continue;
221
+ case 5:
222
+ if (tag !== 42) {
223
+ break;
224
+ }
225
+ message.sourceCodeLines.push(exports.CodeLine.decode(reader, reader.uint32()));
226
+ continue;
227
+ case 6:
228
+ if (tag !== 48) {
229
+ break;
230
+ }
231
+ message.generatedLineNumber = longToNumber(reader.int64());
232
+ continue;
233
+ case 7:
234
+ if (tag !== 56) {
235
+ break;
236
+ }
237
+ message.generatedColumnNumber = longToNumber(reader.int64());
238
+ continue;
239
+ case 8:
240
+ if (tag !== 66) {
241
+ break;
242
+ }
243
+ message.sourceFunctionName = reader.string();
244
+ continue;
245
+ }
246
+ if ((tag & 7) === 4 || tag === 0) {
247
+ break;
248
+ }
249
+ reader.skipType(tag & 7);
250
+ }
251
+ return message;
252
+ },
253
+ fromJSON(object) {
254
+ return {
255
+ chunkName: isSet(object.chunkName) ? String(object.chunkName) : "",
256
+ originalLineNumber: isSet(object.originalLineNumber) ? Number(object.originalLineNumber) : 0,
257
+ originalColumnNumber: isSet(object.originalColumnNumber) ? Number(object.originalColumnNumber) : 0,
258
+ sourceFileName: isSet(object.sourceFileName) ? String(object.sourceFileName) : "",
259
+ sourceCodeLines: Array.isArray(object === null || object === void 0 ? void 0 : object.sourceCodeLines)
260
+ ? object.sourceCodeLines.map((e) => exports.CodeLine.fromJSON(e))
261
+ : [],
262
+ generatedLineNumber: isSet(object.generatedLineNumber) ? Number(object.generatedLineNumber) : 0,
263
+ generatedColumnNumber: isSet(object.generatedColumnNumber) ? Number(object.generatedColumnNumber) : 0,
264
+ sourceFunctionName: isSet(object.sourceFunctionName) ? String(object.sourceFunctionName) : "",
265
+ };
266
+ },
267
+ toJSON(message) {
268
+ const obj = {};
269
+ message.chunkName !== undefined && (obj.chunkName = message.chunkName);
270
+ message.originalLineNumber !== undefined && (obj.originalLineNumber = Math.round(message.originalLineNumber));
271
+ message.originalColumnNumber !== undefined && (obj.originalColumnNumber = Math.round(message.originalColumnNumber));
272
+ message.sourceFileName !== undefined && (obj.sourceFileName = message.sourceFileName);
273
+ if (message.sourceCodeLines) {
274
+ obj.sourceCodeLines = message.sourceCodeLines.map((e) => e ? exports.CodeLine.toJSON(e) : undefined);
275
+ }
276
+ else {
277
+ obj.sourceCodeLines = [];
278
+ }
279
+ message.generatedLineNumber !== undefined && (obj.generatedLineNumber = Math.round(message.generatedLineNumber));
280
+ message.generatedColumnNumber !== undefined &&
281
+ (obj.generatedColumnNumber = Math.round(message.generatedColumnNumber));
282
+ message.sourceFunctionName !== undefined && (obj.sourceFunctionName = message.sourceFunctionName);
283
+ return obj;
284
+ },
285
+ create(base) {
286
+ return exports.MappedChunk.fromPartial(base !== null && base !== void 0 ? base : {});
287
+ },
288
+ fromPartial(object) {
289
+ var _a, _b, _c, _d, _e, _f, _g, _h;
290
+ const message = createBaseMappedChunk();
291
+ message.chunkName = (_a = object.chunkName) !== null && _a !== void 0 ? _a : "";
292
+ message.originalLineNumber = (_b = object.originalLineNumber) !== null && _b !== void 0 ? _b : 0;
293
+ message.originalColumnNumber = (_c = object.originalColumnNumber) !== null && _c !== void 0 ? _c : 0;
294
+ message.sourceFileName = (_d = object.sourceFileName) !== null && _d !== void 0 ? _d : "";
295
+ message.sourceCodeLines = ((_e = object.sourceCodeLines) === null || _e === void 0 ? void 0 : _e.map((e) => exports.CodeLine.fromPartial(e))) || [];
296
+ message.generatedLineNumber = (_f = object.generatedLineNumber) !== null && _f !== void 0 ? _f : 0;
297
+ message.generatedColumnNumber = (_g = object.generatedColumnNumber) !== null && _g !== void 0 ? _g : 0;
298
+ message.sourceFunctionName = (_h = object.sourceFunctionName) !== null && _h !== void 0 ? _h : "";
299
+ return message;
300
+ },
301
+ };
302
+ var tsProtoGlobalThis = (() => {
303
+ if (typeof globalThis !== "undefined") {
304
+ return globalThis;
305
+ }
306
+ if (typeof self !== "undefined") {
307
+ return self;
308
+ }
309
+ if (typeof window !== "undefined") {
310
+ return window;
311
+ }
312
+ if (typeof global !== "undefined") {
313
+ return global;
314
+ }
315
+ throw "Unable to locate global object";
316
+ })();
317
+ function longToNumber(long) {
318
+ if (long.gt(Number.MAX_SAFE_INTEGER)) {
319
+ throw new tsProtoGlobalThis.Error("Value is larger than Number.MAX_SAFE_INTEGER");
320
+ }
321
+ return long.toNumber();
322
+ }
323
+ if (minimal_1.default.util.Long !== long_1.default) {
324
+ minimal_1.default.util.Long = long_1.default;
325
+ minimal_1.default.configure();
326
+ }
327
+ function isSet(value) {
328
+ return value !== null && value !== undefined;
329
+ }
330
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2h1bmsuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm90by1tb2RlbHMvY29tL2NvcmFsb2dpeC9ydW0vdjIvY2h1bmsudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsb0JBQW9CO0FBQ3BCLGdEQUF3QjtBQUN4QixpRUFBcUM7QUFFeEIsUUFBQSxlQUFlLEdBQUcsc0JBQXNCLENBQUM7QUF3QnRELFNBQVMsZUFBZTtJQUN0QixPQUFPLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxtQkFBbUIsRUFBRSxDQUFDLEVBQUUscUJBQXFCLEVBQUUsQ0FBQyxFQUFFLENBQUM7QUFDN0UsQ0FBQztBQUVZLFFBQUEsS0FBSyxHQUFHO0lBQ25CLE1BQU0sQ0FBQyxPQUFjLEVBQUUsU0FBcUIsaUJBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1FBQzdELElBQUksT0FBTyxDQUFDLFNBQVMsS0FBSyxFQUFFLEVBQUU7WUFDNUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQzdDO1FBQ0QsSUFBSSxPQUFPLENBQUMsbUJBQW1CLEtBQUssQ0FBQyxFQUFFO1lBQ3JDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1NBQ3REO1FBQ0QsSUFBSSxPQUFPLENBQUMscUJBQXFCLEtBQUssQ0FBQyxFQUFFO1lBQ3ZDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1NBQ3hEO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUE4QixFQUFFLE1BQWU7UUFDcEQsTUFBTSxNQUFNLEdBQUcsS0FBSyxZQUFZLGlCQUFHLENBQUMsTUFB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LGdCQUFnQixDQUFDLEVBQUU7UUFDcEMsTUFBTSxJQUFJLGlCQUFpQixDQUFDLEtBQUssQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFDO0tBQ25GO0lBQ0QsT0FBTyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7QUFDekIsQ0FBQztBQUVELElBQUksaUJBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLGNBQUksRUFBRTtJQUMxQixpQkFBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsY0FBVyxDQUFDO0lBQzVCLGlCQUFHLENBQUMsU0FBUyxFQUFFLENBQUM7Q0FDakI7QUFFRCxTQUFTLEtBQUssQ0FBQyxLQUFVO0lBQ3ZCLE9BQU8sS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssU0FBUyxDQUFDO0FBQy9DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSAqL1xuaW1wb3J0IExvbmcgZnJvbSBcImxvbmdcIjtcbmltcG9ydCBfbTAgZnJvbSBcInByb3RvYnVmanMvbWluaW1hbFwiO1xuXG5leHBvcnQgY29uc3QgcHJvdG9idWZQYWNrYWdlID0gXCJjb20uY29yYWxvZ2l4LnJ1bS52MlwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIENodW5rIHtcbiAgY2h1bmtOYW1lOiBzdHJpbmc7XG4gIGdlbmVyYXRlZExpbmVOdW1iZXI6IG51bWJlcjtcbiAgZ2VuZXJhdGVkQ29sdW1uTnVtYmVyOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29kZUxpbmUge1xuICBsaW5lSW5kZXg6IG51bWJlcjtcbiAgbGluZUNvZGU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNYXBwZWRDaHVuayB7XG4gIGNodW5rTmFtZTogc3RyaW5nO1xuICBvcmlnaW5hbExpbmVOdW1iZXI6IG51bWJlcjtcbiAgb3JpZ2luYWxDb2x1bW5OdW1iZXI6IG51bWJlcjtcbiAgc291cmNlRmlsZU5hbWU6IHN0cmluZztcbiAgc291cmNlQ29kZUxpbmVzOiBDb2RlTGluZVtdO1xuICBnZW5lcmF0ZWRMaW5lTnVtYmVyOiBudW1iZXI7XG4gIGdlbmVyYXRlZENvbHVtbk51bWJlcjogbnVtYmVyO1xuICBzb3VyY2VGdW5jdGlvbk5hbWU6IHN0cmluZztcbn1cblxuZnVuY3Rpb24gY3JlYXRlQmFzZUNodW5rKCk6IENodW5rIHtcbiAgcmV0dXJuIHsgY2h1bmtOYW1lOiBcIlwiLCBnZW5lcmF0ZWRMaW5lTnVtYmVyOiAwLCBnZW5lcmF0ZWRDb2x1bW5OdW1iZXI6IDAgfTtcbn1cblxuZXhwb3J0IGNvbnN0IENodW5rID0ge1xuICBlbmNvZGUobWVzc2FnZTogQ2h1bmssIHdyaXRlcjogX20wLldyaXRlciA9IF9tMC5Xcml0ZXIuY3JlYXRlKCkpOiBfbTAuV3JpdGVyIHtcbiAgICBpZiAobWVzc2FnZS5jaHVua05hbWUgIT09IFwiXCIpIHtcbiAgICAgIHdyaXRlci51aW50MzIoMTApLnN0cmluZyhtZXNzYWdlLmNodW5rTmFtZSk7XG4gICAgfVxuICAgIGlmIChtZXNzYWdlLmdlbmVyYXRlZExpbmVOdW1iZXIgIT09IDApIHtcbiAgICAgIHdyaXRlci51aW50MzIoMTYpLmludDY0KG1lc3NhZ2UuZ2VuZXJhdGVkTGluZU51bWJlcik7XG4gICAgfVxuICAgIGlmIChtZXNzYWdlLmdlbmVyYXRlZENvbHVtbk51bWJlciAhPT0gMCkge1xuICAgICAgd3JpdGVyLnVpbnQzMigyNCkuaW50NjQobWVzc2FnZS5nZW5lcmF0ZWRDb2x1bW5OdW1iZXIpO1xuICAgIH1cbiAgICByZXR1cm4gd3JpdGVyO1xuICB9LFxuXG4gIGRlY29kZShpbnB1dDogX20wLlJlYWRlciB8IFVpbnQ4QXJyYXksIGxlbmd0aD86IG51bWJlcik6IENodW5rIHtcbiAgICBjb25zdCByZWFkZXIgPSBpbnB1dCBpbnN0YW5jZW9mIF9tMC5SZWFkZXIgPyBpbnB1dCA6IF9tMC5SZWFkZXIuY3JlYXRlKGlucHV0KTtcbiAgICBsZXQgZW5kID0gbGVuZ3RoID09PSB1bmRlZmluZWQgPyByZWFkZXIubGVuIDogcmVhZGVyLnBvcyArIGxlbmd0aDtcbiAgICBjb25zdCBtZXNzYWdlID0gY3JlYXRlQmFzZUNodW5rKCk7XG4gICAgd2hpbGUgKHJlYWRlci5wb3MgPCBlbmQpIHtcbiAgICAgIGNvbnN0IHRhZyA9IHJlYWRlci51aW50MzIoKTtcbiAgICAgIHN3aXRjaCAodGFnID4+PiAzKSB7XG4gICAgICAgIGNhc2UgMTpcbiAgICAgICAgICBpZiAodGFnICE9PSAxMCkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbWVzc2FnZS5jaHVua05hbWUgPSByZWFkZXIuc3RyaW5nKCk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIGNhc2UgMjpcbiAgICAgICAgICBpZiAodGFnICE9PSAxNikge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbWVzc2FnZS5nZW5lcmF0ZWRMaW5lTnVtYmVyID0gbG9uZ1RvTnVtYmVyKHJlYWRlci5pbnQ2NCgpIGFzIExvbmcpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgaWYgKHRhZyAhPT0gMjQpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG1lc3NhZ2UuZ2VuZXJhdGVkQ29sdW1uTnVtYmVyID0gbG9uZ1RvTnVtYmVyKHJlYWRlci5pbnQ2NCgpIGFzIExvbmcpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgaWYgKCh0YWcgJiA3KSA9PT0gNCB8fCB0YWcgPT09IDApIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICByZWFkZXIuc2tpcFR5cGUodGFnICYgNyk7XG4gICAgfVxuICAgIHJldHVybiBtZXNzYWdlO1xuICB9LFxuXG4gIGZyb21KU09OKG9iamVjdDogYW55KTogQ2h1bmsge1xuICAgIHJldHVybiB7XG4gICAgICBjaHVua05hbWU6IGlzU2V0KG9iamVjdC5jaHVua05hbWUpID8gU3RyaW5nKG9iamVjdC5jaHVua05hbWUpIDogXCJcIixcbiAgICAgIGdlbmVyYXRlZExpbmVOdW1iZXI6IGlzU2V0KG9iamVjdC5nZW5lcmF0ZWRMaW5lTnVtYmVyKSA/IE51bWJlcihvYmplY3QuZ2VuZXJhdGVkTGluZU51bWJlcikgOiAwLFxuICAgICAgZ2VuZXJhdGVkQ29sdW1uTnVtYmVyOiBpc1NldChvYmplY3QuZ2VuZXJhdGVkQ29sdW1uTnVtYmVyKSA/IE51bWJlcihvYmplY3QuZ2VuZXJhdGVkQ29sdW1uTnVtYmVyKSA6IDAsXG4gICAgfTtcbiAgfSxcblxuICB0b0pTT04obWVzc2FnZTogQ2h1bmspOiB1bmtub3duIHtcbiAgICBjb25zdCBvYmo6IGFueSA9IHt9O1xuICAgIG1lc3NhZ2UuY2h1bmtOYW1lICE9PSB1bmRlZmluZWQgJiYgKG9iai5jaHVua05hbWUgPSBtZXNzYWdlLmNodW5rTmFtZSk7XG4gICAgbWVzc2FnZS5nZW5lcmF0ZWRMaW5lTnVtYmVyICE9PSB1bmRlZmluZWQgJiYgKG9iai5nZW5lcmF0ZWRMaW5lTnVtYmVyID0gTWF0aC5yb3VuZChtZXNzYWdlLmdlbmVyYXRlZExpbmVOdW1iZXIpKTtcbiAgICBtZXNzYWdlLmdlbmVyYXRlZENvbHVtbk51bWJlciAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAob2JqLmdlbmVyYXRlZENvbHVtbk51bWJlciA9IE1hdGgucm91bmQobWVzc2FnZS5nZW5lcmF0ZWRDb2x1bW5OdW1iZXIpKTtcbiAgICByZXR1cm4gb2JqO1xuICB9LFxuXG4gIGNyZWF0ZShiYXNlPzogRGVlcFBhcnRpYWw8Q2h1bms+KTogQ2h1bmsge1xuICAgIHJldHVybiBDaHVuay5mcm9tUGFydGlhbChiYXNlID8/IHt9KTtcbiAgfSxcblxuICBmcm9tUGFydGlhbChvYmplY3Q6IERlZXBQYXJ0aWFsPENodW5rPik6IENodW5rIHtcbiAgICBjb25zdCBtZXNzYWdlID0gY3JlYXRlQmFzZUNodW5rKCk7XG4gICAgbWVzc2FnZS5jaHVua05hbWUgPSBvYmplY3QuY2h1bmtOYW1lID8/IFwiXCI7XG4gICAgbWVzc2FnZS5nZW5lcmF0ZWRMaW5lTnVtYmVyID0gb2JqZWN0LmdlbmVyYXRlZExpbmVOdW1iZXIgPz8gMDtcbiAgICBtZXNzYWdlLmdlbmVyYXRlZENvbHVtbk51bWJlciA9IG9iamVjdC5nZW5lcmF0ZWRDb2x1bW5OdW1iZXIgPz8gMDtcbiAgICByZXR1cm4gbWVzc2FnZTtcbiAgfSxcbn07XG5cbmZ1bmN0aW9uIGNyZWF0ZUJhc2VDb2RlTGluZSgpOiBDb2RlTGluZSB7XG4gIHJldHVybiB7IGxpbmVJbmRleDogMCwgbGluZUNvZGU6IFwiXCIgfTtcbn1cblxuZXhwb3J0IGNvbnN0IENvZGVMaW5lID0ge1xuICBlbmNvZGUobWVzc2FnZTogQ29kZUxpbmUsIHdyaXRlcjogX20wLldyaXRlciA9IF9tMC5Xcml0ZXIuY3JlYXRlKCkpOiBfbTAuV3JpdGVyIHtcbiAgICBpZiAobWVzc2FnZS5saW5lSW5kZXggIT09IDApIHtcbiAgICAgIHdyaXRlci51aW50MzIoMTYpLmludDY0KG1lc3NhZ2UubGluZUluZGV4KTtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2UubGluZUNvZGUgIT09IFwiXCIpIHtcbiAgICAgIHdyaXRlci51aW50MzIoMTApLnN0cmluZyhtZXNzYWdlLmxpbmVDb2RlKTtcbiAgICB9XG4gICAgcmV0dXJuIHdyaXRlcjtcbiAgfSxcblxuICBkZWNvZGUoaW5wdXQ6IF9tMC5SZWFkZXIgfCBVaW50OEFycmF5LCBsZW5ndGg/OiBudW1iZXIpOiBDb2RlTGluZSB7XG4gICAgY29uc3QgcmVhZGVyID0gaW5wdXQgaW5zdGFuY2VvZiBfbTAuUmVhZGVyID8gaW5wdXQgOiBfbTAuUmVhZGVyLmNyZWF0ZShpbnB1dCk7XG4gICAgbGV0IGVuZCA9IGxlbmd0aCA9PT0gdW5kZWZpbmVkID8gcmVhZGVyLmxlbiA6IHJlYWRlci5wb3MgKyBsZW5ndGg7XG4gICAgY29uc3QgbWVzc2FnZSA9IGNyZWF0ZUJhc2VDb2RlTGluZSgpO1xuICAgIHdoaWxlIChyZWFkZXIucG9zIDwgZW5kKSB7XG4gICAgICBjb25zdCB0YWcgPSByZWFkZXIudWludDMyKCk7XG4gICAgICBzd2l0Y2ggKHRhZyA+Pj4gMykge1xuICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgaWYgKHRhZyAhPT0gMTYpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG1lc3NhZ2UubGluZUluZGV4ID0gbG9uZ1RvTnVtYmVyKHJlYWRlci5pbnQ2NCgpIGFzIExvbmcpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgaWYgKHRhZyAhPT0gMTApIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG1lc3NhZ2UubGluZUNvZGUgPSByZWFkZXIuc3RyaW5nKCk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBpZiAoKHRhZyAmIDcpID09PSA0IHx8IHRhZyA9PT0gMCkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIHJlYWRlci5za2lwVHlwZSh0YWcgJiA3KTtcbiAgICB9XG4gICAgcmV0dXJuIG1lc3NhZ2U7XG4gIH0sXG5cbiAgZnJvbUpTT04ob2JqZWN0OiBhbnkpOiBDb2RlTGluZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGxpbmVJbmRleDogaXNTZXQob2JqZWN0LmxpbmVJbmRleCkgPyBOdW1iZXIob2JqZWN0LmxpbmVJbmRleCkgOiAwLFxuICAgICAgbGluZUNvZGU6IGlzU2V0KG9iamVjdC5saW5lQ29kZSkgPyBTdHJpbmcob2JqZWN0LmxpbmVDb2RlKSA6IFwiXCIsXG4gICAgfTtcbiAgfSxcblxuICB0b0pTT04obWVzc2FnZTogQ29kZUxpbmUpOiB1bmtub3duIHtcbiAgICBjb25zdCBvYmo6IGFueSA9IHt9O1xuICAgIG1lc3NhZ2UubGluZUluZGV4ICE9PSB1bmRlZmluZWQgJiYgKG9iai5saW5lSW5kZXggPSBNYXRoLnJvdW5kKG1lc3NhZ2UubGluZUluZGV4KSk7XG4gICAgbWVzc2FnZS5saW5lQ29kZSAhPT0gdW5kZWZpbmVkICYmIChvYmoubGluZUNvZGUgPSBtZXNzYWdlLmxpbmVDb2RlKTtcbiAgICByZXR1cm4gb2JqO1xuICB9LFxuXG4gIGNyZWF0ZShiYXNlPzogRGVlcFBhcnRpYWw8Q29kZUxpbmU+KTogQ29kZUxpbmUge1xuICAgIHJldHVybiBDb2RlTGluZS5mcm9tUGFydGlhbChiYXNlID8/IHt9KTtcbiAgfSxcblxuICBmcm9tUGFydGlhbChvYmplY3Q6IERlZXBQYXJ0aWFsPENvZGVMaW5lPik6IENvZGVMaW5lIHtcbiAgICBjb25zdCBtZXNzYWdlID0gY3JlYXRlQmFzZUNvZGVMaW5lKCk7XG4gICAgbWVzc2FnZS5saW5lSW5kZXggPSBvYmplY3QubGluZUluZGV4ID8/IDA7XG4gICAgbWVzc2FnZS5saW5lQ29kZSA9IG9iamVjdC5saW5lQ29kZSA/PyBcIlwiO1xuICAgIHJldHVybiBtZXNzYWdlO1xuICB9LFxufTtcblxuZnVuY3Rpb24gY3JlYXRlQmFzZU1hcHBlZENodW5rKCk6IE1hcHBlZENodW5rIHtcbiAgcmV0dXJuIHtcbiAgICBjaHVua05hbWU6IFwiXCIsXG4gICAgb3JpZ2luYWxMaW5lTnVtYmVyOiAwLFxuICAgIG9yaWdpbmFsQ29sdW1uTnVtYmVyOiAwLFxuICAgIHNvdXJjZUZpbGVOYW1lOiBcIlwiLFxuICAgIHNvdXJjZUNvZGVMaW5lczogW10sXG4gICAgZ2VuZXJhdGVkTGluZU51bWJlcjogMCxcbiAgICBnZW5lcmF0ZWRDb2x1bW5OdW1iZXI6IDAsXG4gICAgc291cmNlRnVuY3Rpb25OYW1lOiBcIlwiLFxuICB9O1xufVxuXG5leHBvcnQgY29uc3QgTWFwcGVkQ2h1bmsgPSB7XG4gIGVuY29kZShtZXNzYWdlOiBNYXBwZWRDaHVuaywgd3JpdGVyOiBfbTAuV3JpdGVyID0gX20wLldyaXRlci5jcmVhdGUoKSk6IF9tMC5Xcml0ZXIge1xuICAgIGlmIChtZXNzYWdlLmNodW5rTmFtZSAhPT0gXCJcIikge1xuICAgICAgd3JpdGVyLnVpbnQzMigxMCkuc3RyaW5nKG1lc3NhZ2UuY2h1bmtOYW1lKTtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2Uub3JpZ2luYWxMaW5lTnVtYmVyICE9PSAwKSB7XG4gICAgICB3cml0ZXIudWludDMyKDE2KS5pbnQ2NChtZXNzYWdlLm9yaWdpbmFsTGluZU51bWJlcik7XG4gICAgfVxuICAgIGlmIChtZXNzYWdlLm9yaWdpbmFsQ29sdW1uTnVtYmVyICE9PSAwKSB7XG4gICAgICB3cml0ZXIudWludDMyKDI0KS5pbnQ2NChtZXNzYWdlLm9yaWdpbmFsQ29sdW1uTnVtYmVyKTtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2Uuc291cmNlRmlsZU5hbWUgIT09IFwiXCIpIHtcbiAgICAgIHdyaXRlci51aW50MzIoMzQpLnN0cmluZyhtZXNzYWdlLnNvdXJjZUZpbGVOYW1lKTtcbiAgICB9XG4gICAgZm9yIChjb25zdCB2IG9mIG1lc3NhZ2Uuc291cmNlQ29kZUxpbmVzKSB7XG4gICAgICBDb2RlTGluZS5lbmNvZGUodiEsIHdyaXRlci51aW50MzIoNDIpLmZvcmsoKSkubGRlbGltKCk7XG4gICAgfVxuICAgIGlmIChtZXNzYWdlLmdlbmVyYXRlZExpbmVOdW1iZXIgIT09IDApIHtcbiAgICAgIHdyaXRlci51aW50MzIoNDgpLmludDY0KG1lc3NhZ2UuZ2VuZXJhdGVkTGluZU51bWJlcik7XG4gICAgfVxuICAgIGlmIChtZXNzYWdlLmdlbmVyYXRlZENvbHVtbk51bWJlciAhPT0gMCkge1xuICAgICAgd3JpdGVyLnVpbnQzMig1NikuaW50NjQobWVzc2FnZS5nZW5lcmF0ZWRDb2x1bW5OdW1iZXIpO1xuICAgIH1cbiAgICBpZiAobWVzc2FnZS5zb3VyY2VGdW5jdGlvbk5hbWUgIT09IFwiXCIpIHtcbiAgICAgIHdyaXRlci51aW50MzIoNjYpLnN0cmluZyhtZXNzYWdlLnNvdXJjZUZ1bmN0aW9uTmFtZSk7XG4gICAgfVxuICAgIHJldHVybiB3cml0ZXI7XG4gIH0sXG5cbiAgZGVjb2RlKGlucHV0OiBfbTAuUmVhZGVyIHwgVWludDhBcnJheSwgbGVuZ3RoPzogbnVtYmVyKTogTWFwcGVkQ2h1bmsge1xuICAgIGNvbnN0IHJlYWRlciA9IGlucHV0IGluc3RhbmNlb2YgX20wLlJlYWRlciA/IGlucHV0IDogX20wLlJlYWRlci5jcmVhdGUoaW5wdXQpO1xuICAgIGxldCBlbmQgPSBsZW5ndGggPT09IHVuZGVmaW5lZCA/IHJlYWRlci5sZW4gOiByZWFkZXIucG9zICsgbGVuZ3RoO1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBjcmVhdGVCYXNlTWFwcGVkQ2h1bmsoKTtcbiAgICB3aGlsZSAocmVhZGVyLnBvcyA8IGVuZCkge1xuICAgICAgY29uc3QgdGFnID0gcmVhZGVyLnVpbnQzMigpO1xuICAgICAgc3dpdGNoICh0YWcgPj4+IDMpIHtcbiAgICAgICAgY2FzZSAxOlxuICAgICAgICAgIGlmICh0YWcgIT09IDEwKSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBtZXNzYWdlLmNodW5rTmFtZSA9IHJlYWRlci5zdHJpbmcoKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgY2FzZSAyOlxuICAgICAgICAgIGlmICh0YWcgIT09IDE2KSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBtZXNzYWdlLm9yaWdpbmFsTGluZU51bWJlciA9IGxvbmdUb051bWJlcihyZWFkZXIuaW50NjQoKSBhcyBMb25nKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgY2FzZSAzOlxuICAgICAgICAgIGlmICh0YWcgIT09IDI0KSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBtZXNzYWdlLm9yaWdpbmFsQ29sdW1uTnVtYmVyID0gbG9uZ1RvTnVtYmVyKHJlYWRlci5pbnQ2NCgpIGFzIExvbmcpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgaWYgKHRhZyAhPT0gMzQpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG1lc3NhZ2Uuc291cmNlRmlsZU5hbWUgPSByZWFkZXIuc3RyaW5nKCk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIGNhc2UgNTpcbiAgICAgICAgICBpZiAodGFnICE9PSA0Mikge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbWVzc2FnZS5zb3VyY2VDb2RlTGluZXMucHVzaChDb2RlTGluZS5kZWNvZGUocmVhZGVyLCByZWFkZXIudWludDMyKCkpKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgY2FzZSA2OlxuICAgICAgICAgIGlmICh0YWcgIT09IDQ4KSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBtZXNzYWdlLmdlbmVyYXRlZExpbmVOdW1iZXIgPSBsb25nVG9OdW1iZXIocmVhZGVyLmludDY0KCkgYXMgTG9uZyk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIGNhc2UgNzpcbiAgICAgICAgICBpZiAodGFnICE9PSA1Nikge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbWVzc2FnZS5nZW5lcmF0ZWRDb2x1bW5OdW1iZXIgPSBsb25nVG9OdW1iZXIocmVhZGVyLmludDY0KCkgYXMgTG9uZyk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIGNhc2UgODpcbiAgICAgICAgICBpZiAodGFnICE9PSA2Nikge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbWVzc2FnZS5zb3VyY2VGdW5jdGlvbk5hbWUgPSByZWFkZXIuc3RyaW5nKCk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBpZiAoKHRhZyAmIDcpID09PSA0IHx8IHRhZyA9PT0gMCkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIHJlYWRlci5za2lwVHlwZSh0YWcgJiA3KTtcbiAgICB9XG4gICAgcmV0dXJuIG1lc3NhZ2U7XG4gIH0sXG5cbiAgZnJvbUpTT04ob2JqZWN0OiBhbnkpOiBNYXBwZWRDaHVuayB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNodW5rTmFtZTogaXNTZXQob2JqZWN0LmNodW5rTmFtZSkgPyBTdHJpbmcob2JqZWN0LmNodW5rTmFtZSkgOiBcIlwiLFxuICAgICAgb3JpZ2luYWxMaW5lTnVtYmVyOiBpc1NldChvYmplY3Qub3JpZ2luYWxMaW5lTnVtYmVyKSA/IE51bWJlcihvYmplY3Qub3JpZ2luYWxMaW5lTnVtYmVyKSA6IDAsXG4gICAgICBvcmlnaW5hbENvbHVtbk51bWJlcjogaXNTZXQob2JqZWN0Lm9yaWdpbmFsQ29sdW1uTnVtYmVyKSA/IE51bWJlcihvYmplY3Qub3JpZ2luYWxDb2x1bW5OdW1iZXIpIDogMCxcbiAgICAgIHNvdXJjZUZpbGVOYW1lOiBpc1NldChvYmplY3Quc291cmNlRmlsZU5hbWUpID8gU3RyaW5nKG9iamVjdC5zb3VyY2VGaWxlTmFtZSkgOiBcIlwiLFxuICAgICAgc291cmNlQ29kZUxpbmVzOiBBcnJheS5pc0FycmF5KG9iamVjdD8uc291cmNlQ29kZUxpbmVzKVxuICAgICAgICA/IG9iamVjdC5zb3VyY2VDb2RlTGluZXMubWFwKChlOiBhbnkpID0+IENvZGVMaW5lLmZyb21KU09OKGUpKVxuICAgICAgICA6IFtdLFxuICAgICAgZ2VuZXJhdGVkTGluZU51bWJlcjogaXNTZXQob2JqZWN0LmdlbmVyYXRlZExpbmVOdW1iZXIpID8gTnVtYmVyKG9iamVjdC5nZW5lcmF0ZWRMaW5lTnVtYmVyKSA6IDAsXG4gICAgICBnZW5lcmF0ZWRDb2x1bW5OdW1iZXI6IGlzU2V0KG9iamVjdC5nZW5lcmF0ZWRDb2x1bW5OdW1iZXIpID8gTnVtYmVyKG9iamVjdC5nZW5lcmF0ZWRDb2x1bW5OdW1iZXIpIDogMCxcbiAgICAgIHNvdXJjZUZ1bmN0aW9uTmFtZTogaXNTZXQob2JqZWN0LnNvdXJjZUZ1bmN0aW9uTmFtZSkgPyBTdHJpbmcob2JqZWN0LnNvdXJjZUZ1bmN0aW9uTmFtZSkgOiBcIlwiLFxuICAgIH07XG4gIH0sXG5cbiAgdG9KU09OKG1lc3NhZ2U6IE1hcHBlZENodW5rKTogdW5rbm93biB7XG4gICAgY29uc3Qgb2JqOiBhbnkgPSB7fTtcbiAgICBtZXNzYWdlLmNodW5rTmFtZSAhPT0gdW5kZWZpbmVkICYmIChvYmouY2h1bmtOYW1lID0gbWVzc2FnZS5jaHVua05hbWUpO1xuICAgIG1lc3NhZ2Uub3JpZ2luYWxMaW5lTnVtYmVyICE9PSB1bmRlZmluZWQgJiYgKG9iai5vcmlnaW5hbExpbmVOdW1iZXIgPSBNYXRoLnJvdW5kKG1lc3NhZ2Uub3JpZ2luYWxMaW5lTnVtYmVyKSk7XG4gICAgbWVzc2FnZS5vcmlnaW5hbENvbHVtbk51bWJlciAhPT0gdW5kZWZpbmVkICYmIChvYmoub3JpZ2luYWxDb2x1bW5OdW1iZXIgPSBNYXRoLnJvdW5kKG1lc3NhZ2Uub3JpZ2luYWxDb2x1bW5OdW1iZXIpKTtcbiAgICBtZXNzYWdlLnNvdXJjZUZpbGVOYW1lICE9PSB1bmRlZmluZWQgJiYgKG9iai5zb3VyY2VGaWxlTmFtZSA9IG1lc3NhZ2Uuc291cmNlRmlsZU5hbWUpO1xuICAgIGlmIChtZXNzYWdlLnNvdXJjZUNvZGVMaW5lcykge1xuICAgICAgb2JqLnNvdXJjZUNvZGVMaW5lcyA9IG1lc3NhZ2Uuc291cmNlQ29kZUxpbmVzLm1hcCgoZSkgPT4gZSA/IENvZGVMaW5lLnRvSlNPTihlKSA6IHVuZGVmaW5lZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG9iai5zb3VyY2VDb2RlTGluZXMgPSBbXTtcbiAgICB9XG4gICAgbWVzc2FnZS5nZW5lcmF0ZWRMaW5lTnVtYmVyICE9PSB1bmRlZmluZWQgJiYgKG9iai5nZW5lcmF0ZWRMaW5lTnVtYmVyID0gTWF0aC5yb3VuZChtZXNzYWdlLmdlbmVyYXRlZExpbmVOdW1iZXIpKTtcbiAgICBtZXNzYWdlLmdlbmVyYXRlZENvbHVtbk51bWJlciAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAob2JqLmdlbmVyYXRlZENvbHVtbk51bWJlciA9IE1hdGgucm91bmQobWVzc2FnZS5nZW5lcmF0ZWRDb2x1bW5OdW1iZXIpKTtcbiAgICBtZXNzYWdlLnNvdXJjZUZ1bmN0aW9uTmFtZSAhPT0gdW5kZWZpbmVkICYmIChvYmouc291cmNlRnVuY3Rpb25OYW1lID0gbWVzc2FnZS5zb3VyY2VGdW5jdGlvbk5hbWUpO1xuICAgIHJldHVybiBvYmo7XG4gIH0sXG5cbiAgY3JlYXRlKGJhc2U/OiBEZWVwUGFydGlhbDxNYXBwZWRDaHVuaz4pOiBNYXBwZWRDaHVuayB7XG4gICAgcmV0dXJuIE1hcHBlZENodW5rLmZyb21QYXJ0aWFsKGJhc2UgPz8ge30pO1xuICB9LFxuXG4gIGZyb21QYXJ0aWFsKG9iamVjdDogRGVlcFBhcnRpYWw8TWFwcGVkQ2h1bms+KTogTWFwcGVkQ2h1bmsge1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBjcmVhdGVCYXNlTWFwcGVkQ2h1bmsoKTtcbiAgICBtZXNzYWdlLmNodW5rTmFtZSA9IG9iamVjdC5jaHVua05hbWUgPz8gXCJcIjtcbiAgICBtZXNzYWdlLm9yaWdpbmFsTGluZU51bWJlciA9IG9iamVjdC5vcmlnaW5hbExpbmVOdW1iZXIgPz8gMDtcbiAgICBtZXNzYWdlLm9yaWdpbmFsQ29sdW1uTnVtYmVyID0gb2JqZWN0Lm9yaWdpbmFsQ29sdW1uTnVtYmVyID8/IDA7XG4gICAgbWVzc2FnZS5zb3VyY2VGaWxlTmFtZSA9IG9iamVjdC5zb3VyY2VGaWxlTmFtZSA/PyBcIlwiO1xuICAgIG1lc3NhZ2Uuc291cmNlQ29kZUxpbmVzID0gb2JqZWN0LnNvdXJjZUNvZGVMaW5lcz8ubWFwKChlKSA9PiBDb2RlTGluZS5mcm9tUGFydGlhbChlKSkgfHwgW107XG4gICAgbWVzc2FnZS5nZW5lcmF0ZWRMaW5lTnVtYmVyID0gb2JqZWN0LmdlbmVyYXRlZExpbmVOdW1iZXIgPz8gMDtcbiAgICBtZXNzYWdlLmdlbmVyYXRlZENvbHVtbk51bWJlciA9IG9iamVjdC5nZW5lcmF0ZWRDb2x1bW5OdW1iZXIgPz8gMDtcbiAgICBtZXNzYWdlLnNvdXJjZUZ1bmN0aW9uTmFtZSA9IG9iamVjdC5zb3VyY2VGdW5jdGlvbk5hbWUgPz8gXCJcIjtcbiAgICByZXR1cm4gbWVzc2FnZTtcbiAgfSxcbn07XG5cbmRlY2xhcmUgdmFyIHNlbGY6IGFueSB8IHVuZGVmaW5lZDtcbmRlY2xhcmUgdmFyIHdpbmRvdzogYW55IHwgdW5kZWZpbmVkO1xuZGVjbGFyZSB2YXIgZ2xvYmFsOiBhbnkgfCB1bmRlZmluZWQ7XG52YXIgdHNQcm90b0dsb2JhbFRoaXM6IGFueSA9ICgoKSA9PiB7XG4gIGlmICh0eXBlb2YgZ2xvYmFsVGhpcyAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgIHJldHVybiBnbG9iYWxUaGlzO1xuICB9XG4gIGlmICh0eXBlb2Ygc2VsZiAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgIHJldHVybiBzZWxmO1xuICB9XG4gIGlmICh0eXBlb2Ygd2luZG93ICE9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgcmV0dXJuIHdpbmRvdztcbiAgfVxuICBpZiAodHlwZW9mIGdsb2JhbCAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgIHJldHVybiBnbG9iYWw7XG4gIH1cbiAgdGhyb3cgXCJVbmFibGUgdG8gbG9jYXRlIGdsb2JhbCBvYmplY3RcIjtcbn0pKCk7XG5cbnR5cGUgQnVpbHRpbiA9IERhdGUgfCBGdW5jdGlvbiB8IFVpbnQ4QXJyYXkgfCBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgdW5kZWZpbmVkO1xuXG5leHBvcnQgdHlwZSBEZWVwUGFydGlhbDxUPiA9IFQgZXh0ZW5kcyBCdWlsdGluID8gVFxuICA6IFQgZXh0ZW5kcyBBcnJheTxpbmZlciBVPiA/IEFycmF5PERlZXBQYXJ0aWFsPFU+PiA6IFQgZXh0ZW5kcyBSZWFkb25seUFycmF5PGluZmVyIFU+ID8gUmVhZG9ubHlBcnJheTxEZWVwUGFydGlhbDxVPj5cbiAgOiBUIGV4dGVuZHMgeyAkY2FzZTogc3RyaW5nIH0gPyB7IFtLIGluIGtleW9mIE9taXQ8VCwgXCIkY2FzZVwiPl0/OiBEZWVwUGFydGlhbDxUW0tdPiB9ICYgeyAkY2FzZTogVFtcIiRjYXNlXCJdIH1cbiAgOiBUIGV4dGVuZHMge30gPyB7IFtLIGluIGtleW9mIFRdPzogRGVlcFBhcnRpYWw8VFtLXT4gfVxuICA6IFBhcnRpYWw8VD47XG5cbmZ1bmN0aW9uIGxvbmdUb051bWJlcihsb25nOiBMb25nKTogbnVtYmVyIHtcbiAgaWYgKGxvbmcuZ3QoTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpKSB7XG4gICAgdGhyb3cgbmV3IHRzUHJvdG9HbG9iYWxUaGlzLkVycm9yKFwiVmFsdWUgaXMgbGFyZ2VyIHRoYW4gTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVJcIik7XG4gIH1cbiAgcmV0dXJuIGxvbmcudG9OdW1iZXIoKTtcbn1cblxuaWYgKF9tMC51dGlsLkxvbmcgIT09IExvbmcpIHtcbiAgX20wLnV0aWwuTG9uZyA9IExvbmcgYXMgYW55O1xuICBfbTAuY29uZmlndXJlKCk7XG59XG5cbmZ1bmN0aW9uIGlzU2V0KHZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgcmV0dXJuIHZhbHVlICE9PSBudWxsICYmIHZhbHVlICE9PSB1bmRlZmluZWQ7XG59XG4iXX0=