@coralogix/rum-cli 1.1.5 → 1.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -1
- package/package.json +4 -1
- package/.eslintignore +0 -1
- package/.eslintrc.js +0 -31
- package/.github/workflows/npm-publish.yml +0 -41
- package/api/rum-api.ts +0 -79
- package/cli/rum-cli.ts +0 -54
- package/cli/theme/index.ts +0 -5
- package/cli/validators/index.ts +0 -14
- package/config/config.ts +0 -31
- package/config/index.js +0 -7
- package/config/index.ts +0 -3
- package/dist/api/rum-api.d.ts +0 -5
- package/dist/api/rum-api.js +0 -98
- package/dist/cli/rum-cli.d.ts +0 -2
- package/dist/cli/theme/index.d.ts +0 -3
- package/dist/cli/theme/index.js +0 -7
- package/dist/cli/validators/index.d.ts +0 -1
- package/dist/cli/validators/index.js +0 -16
- package/dist/config/config.d.ts +0 -16
- package/dist/config/config.js +0 -16
- package/dist/config/index.d.ts +0 -2
- package/dist/config/index.js +0 -8
- package/dist/model/cli.model.d.ts +0 -1
- package/dist/model/cli.model.js +0 -11
- package/dist/proto-models/com/coralogix/rum/v2/audit_log.d.ts +0 -24
- package/dist/proto-models/com/coralogix/rum/v2/audit_log.js +0 -62
- package/dist/proto-models/com/coralogix/rum/v2/chunk.d.ts +0 -56
- package/dist/proto-models/com/coralogix/rum/v2/chunk.js +0 -330
- package/dist/proto-models/com/coralogix/rum/v2/file.d.ts +0 -26
- package/dist/proto-models/com/coralogix/rum/v2/file.js +0 -140
- package/dist/proto-models/com/coralogix/rum/v2/rum_service.d.ts +0 -72
- package/dist/proto-models/com/coralogix/rum/v2/rum_service.js +0 -233
- package/dist/proto-models/com/coralogix/rum/v2/rum_source_map_service.d.ts +0 -69
- package/dist/proto-models/com/coralogix/rum/v2/rum_source_map_service.js +0 -181
- package/dist/proto-models/com/coralogix/rum/v2/source_code_file_mapping.d.ts +0 -55
- package/dist/proto-models/com/coralogix/rum/v2/source_code_file_mapping.js +0 -277
- package/dist/proto-models/google/protobuf/descriptor.d.ts +0 -1140
- package/dist/proto-models/google/protobuf/descriptor.js +0 -3612
- package/dist/services/source-maps/source-maps.service.d.ts +0 -3
- package/dist/services/source-maps/source-maps.service.js +0 -42
- package/dist/services/source-maps/utils/traverse-folder.util.d.ts +0 -2
- package/dist/services/source-maps/utils/traverse-folder.util.js +0 -42
- package/generate-protos.sh +0 -14
- package/meta.yaml +0 -4
- package/model/cli.model.ts +0 -7
- package/prepublish.sh +0 -19
- package/proto-models/com/coralogix/rum/v2/audit_log.ts +0 -76
- package/proto-models/com/coralogix/rum/v2/chunk.ts +0 -391
- package/proto-models/com/coralogix/rum/v2/file.ts +0 -164
- package/proto-models/com/coralogix/rum/v2/rum_service.ts +0 -272
- package/proto-models/com/coralogix/rum/v2/rum_source_map_service.ts +0 -216
- package/proto-models/com/coralogix/rum/v2/source_code_file_mapping.ts +0 -331
- package/proto-models/google/protobuf/descriptor.ts +0 -4715
- package/protofetch.lock +0 -18
- package/protofetch.toml +0 -7
- package/protos/com/coralogix/rum/v2/audit_log.proto +0 -13
- package/protos/com/coralogix/rum/v2/chunk.proto +0 -24
- package/protos/com/coralogix/rum/v2/file.proto +0 -8
- package/protos/com/coralogix/rum/v2/rum_service.proto +0 -23
- package/protos/com/coralogix/rum/v2/rum_source_map_service.proto +0 -19
- package/protos/com/coralogix/rum/v2/source_code_file_mapping.proto +0 -16
- package/protoset.bin +0 -0
- package/services/source-maps/source-maps.service.ts +0 -31
- package/services/source-maps/utils/traverse-folder.util.ts +0 -33
- package/tsconfig.build.json +0 -6
- package/tsconfig.json +0 -25
package/README.md
CHANGED
|
@@ -79,6 +79,8 @@ coralogix-rum-cli upload-source-maps -k "$PRIVATE_KEY" -a "$APPLICATION" -r "$RE
|
|
|
79
79
|
| IMPORTANT: The $RELEASE_ID must align with the content of the version field in your CoralogixRum.init() configuration in [Coralogix SDK for Browsers](https://www.npmjs.com/package/@coralogix/browser) |
|
|
80
80
|
| --- |
|
|
81
81
|
|
|
82
|
+
<br>
|
|
83
|
+
|
|
82
84
|
## For Non-CI Integration:
|
|
83
85
|
1. Create a new file named upload-source-maps.sh and open it for editing.
|
|
84
86
|
|
|
@@ -95,7 +97,7 @@ By following these instructions, you can effortlessly upload source maps using t
|
|
|
95
97
|
# Illustration
|
|
96
98
|
Here's an overview of the process, showing the parsed stacktrace in the source map:
|
|
97
99
|
|
|
98
|
-
|
|
100
|
+
<img src="assets/docs-illustration.png" alt="Upload Source Maps"/>
|
|
99
101
|
|
|
100
102
|
# Available Environments
|
|
101
103
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@coralogix/rum-cli",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.6",
|
|
4
4
|
"description": "corlogix rum cli",
|
|
5
5
|
"bin": {
|
|
6
6
|
"coralogix-rum-cli": "dist/cli/rum-cli.js"
|
|
@@ -40,6 +40,9 @@
|
|
|
40
40
|
"eslint"
|
|
41
41
|
]
|
|
42
42
|
},
|
|
43
|
+
"files": [
|
|
44
|
+
"assets/*"
|
|
45
|
+
],
|
|
43
46
|
"keywords": [],
|
|
44
47
|
"author": "",
|
|
45
48
|
"license": "MIT"
|
package/.eslintignore
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
dist
|
package/.eslintrc.js
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
module.exports = {
|
|
2
|
-
"root": true,
|
|
3
|
-
"parser": "@typescript-eslint/parser",
|
|
4
|
-
"parserOptions": {
|
|
5
|
-
"project": `./tsconfig.json`
|
|
6
|
-
},
|
|
7
|
-
"plugins": [
|
|
8
|
-
"@typescript-eslint"
|
|
9
|
-
],
|
|
10
|
-
"extends": [
|
|
11
|
-
"eslint:recommended",
|
|
12
|
-
"plugin:@typescript-eslint/eslint-recommended"
|
|
13
|
-
],
|
|
14
|
-
"rules": {
|
|
15
|
-
"@typescript-eslint/naming-convention": "error",
|
|
16
|
-
"@typescript-eslint/explicit-module-boundary-types": "error",
|
|
17
|
-
"@typescript-eslint/no-require-imports": "error",
|
|
18
|
-
"@typescript-eslint/prefer-nullish-coalescing": "error",
|
|
19
|
-
"@typescript-eslint/prefer-optional-chain": "error",
|
|
20
|
-
"@typescript-eslint/prefer-string-starts-ends-with": "error",
|
|
21
|
-
"@typescript-eslint/promise-function-async": "error",
|
|
22
|
-
"@typescript-eslint/switch-exhaustiveness-check": "error",
|
|
23
|
-
"@typescript-eslint/type-annotation-spacing": "error",
|
|
24
|
-
"semi": [2, "always"],
|
|
25
|
-
"key-spacing": "error",
|
|
26
|
-
"comma-spacing":["error", {
|
|
27
|
-
"before": false,
|
|
28
|
-
"after": true,
|
|
29
|
-
}]
|
|
30
|
-
}
|
|
31
|
-
};
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
# This workflow will run tests using node and then publish a package to GitHub Packages when a release is created
|
|
2
|
-
# For more information see: https://docs.github.com/en/actions/publishing-packages/publishing-nodejs-packages
|
|
3
|
-
|
|
4
|
-
name: Node.js Package
|
|
5
|
-
|
|
6
|
-
on:
|
|
7
|
-
release:
|
|
8
|
-
types: [created]
|
|
9
|
-
|
|
10
|
-
jobs:
|
|
11
|
-
build:
|
|
12
|
-
runs-on: ubuntu-latest
|
|
13
|
-
steps:
|
|
14
|
-
- uses: actions/checkout@v3
|
|
15
|
-
- uses: actions/setup-node@v3
|
|
16
|
-
with:
|
|
17
|
-
node-version: 18
|
|
18
|
-
- uses: webfactory/ssh-agent@v0.8.0
|
|
19
|
-
with:
|
|
20
|
-
ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }}
|
|
21
|
-
- run: npm ci
|
|
22
|
-
- run: npm run proto
|
|
23
|
-
- run: npm run build
|
|
24
|
-
publish-npm:
|
|
25
|
-
needs: build
|
|
26
|
-
runs-on: ubuntu-latest
|
|
27
|
-
steps:
|
|
28
|
-
- uses: actions/checkout@v3
|
|
29
|
-
- uses: actions/setup-node@v3
|
|
30
|
-
with:
|
|
31
|
-
node-version: 18
|
|
32
|
-
registry-url: https://registry.npmjs.org/
|
|
33
|
-
- uses: webfactory/ssh-agent@v0.8.0
|
|
34
|
-
with:
|
|
35
|
-
ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }}
|
|
36
|
-
- run: npm ci
|
|
37
|
-
- run: npm run proto
|
|
38
|
-
- run: npm run build
|
|
39
|
-
- run: npm publish --access public
|
|
40
|
-
env:
|
|
41
|
-
NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}
|
package/api/rum-api.ts
DELETED
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
import {Client, createChannel, createClient, Metadata} from 'nice-grpc';
|
|
2
|
-
import {envToDomain} from "../model/cli.model";
|
|
3
|
-
import * as pako from 'pako';
|
|
4
|
-
import config from "../config/config";
|
|
5
|
-
import {RED_COLOR} from "../cli/theme";
|
|
6
|
-
import {FileMetadata} from "../proto-models/com/coralogix/rum/v2/file";
|
|
7
|
-
import {
|
|
8
|
-
RumSourceMapServiceDefinition,
|
|
9
|
-
UploadSourceMapsRequest
|
|
10
|
-
} from "../proto-models/com/coralogix/rum/v2/rum_source_map_service";
|
|
11
|
-
|
|
12
|
-
export class RumApi {
|
|
13
|
-
static async uploadSourceMaps(request: UploadSourceMapsRequest, env: string, privateKey: string) {
|
|
14
|
-
|
|
15
|
-
const {maxMessageSize, keepaliveTimeMs, keepaliveTimeoutMs} = config.rumApi;
|
|
16
|
-
|
|
17
|
-
try {
|
|
18
|
-
const channel = createChannel(envToDomain[env], undefined, {
|
|
19
|
-
"grpc.max_receive_message_length": maxMessageSize,
|
|
20
|
-
"grpc.max_send_message_length": maxMessageSize,
|
|
21
|
-
'grpc.keepalive_time_ms': keepaliveTimeMs,
|
|
22
|
-
'grpc.keepalive_timeout_ms': keepaliveTimeoutMs,
|
|
23
|
-
});
|
|
24
|
-
|
|
25
|
-
const client: Client<typeof RumSourceMapServiceDefinition> = createClient(RumSourceMapServiceDefinition, channel);
|
|
26
|
-
|
|
27
|
-
const {files, releaseId, application, repoName, commitHash, user} = request;
|
|
28
|
-
|
|
29
|
-
const compressedFiles: FileMetadata[] = await Promise.all(
|
|
30
|
-
files.map(async (file: FileMetadata) => {
|
|
31
|
-
const compressedChunks = this.compressFileContentChunks(file.content);
|
|
32
|
-
|
|
33
|
-
const size = compressedChunks.length;
|
|
34
|
-
|
|
35
|
-
return {chunkName: file.chunkName, size, content: compressedChunks};
|
|
36
|
-
})
|
|
37
|
-
);
|
|
38
|
-
|
|
39
|
-
const metadata = new Metadata();
|
|
40
|
-
|
|
41
|
-
metadata.set('Authorization', `Bearer ${privateKey}`);
|
|
42
|
-
|
|
43
|
-
await client.uploadSourceMaps({
|
|
44
|
-
files: compressedFiles,
|
|
45
|
-
releaseId,
|
|
46
|
-
application,
|
|
47
|
-
repoName,
|
|
48
|
-
commitHash,
|
|
49
|
-
user
|
|
50
|
-
}, {metadata});
|
|
51
|
-
|
|
52
|
-
} catch (error) {
|
|
53
|
-
throw error;
|
|
54
|
-
}
|
|
55
|
-
};
|
|
56
|
-
|
|
57
|
-
private static compressFileContentChunks = (fileContent: Uint8Array): Uint8Array => {
|
|
58
|
-
const {chunkSize} = config.rumApi; // 512 KB chunk size
|
|
59
|
-
const deflate = new pako.Deflate();
|
|
60
|
-
const totalChunks = Math.ceil(fileContent.length / chunkSize);
|
|
61
|
-
|
|
62
|
-
for (let i = 0; i < totalChunks; i++) {
|
|
63
|
-
const start = i * chunkSize;
|
|
64
|
-
const end = start + chunkSize;
|
|
65
|
-
const chunk = fileContent.subarray(start, end);
|
|
66
|
-
|
|
67
|
-
const isLastChunk = i === totalChunks - 1;
|
|
68
|
-
|
|
69
|
-
deflate.push(chunk, isLastChunk);
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
const {err, msg, result} = deflate;
|
|
73
|
-
|
|
74
|
-
if (err) console.error(RED_COLOR, msg);
|
|
75
|
-
|
|
76
|
-
return result;
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
|
package/cli/rum-cli.ts
DELETED
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import {Command} from 'commander';
|
|
3
|
-
import {SourceMapsService} from "../services/source-maps/source-maps.service";
|
|
4
|
-
import {validateEnvironment} from "./validators";
|
|
5
|
-
import {RED_COLOR} from "./theme";
|
|
6
|
-
|
|
7
|
-
const program = new Command();
|
|
8
|
-
|
|
9
|
-
program.name('coralogix-rum-cli').description('cli for upload source maps')
|
|
10
|
-
|
|
11
|
-
const uploadCommand = program.command('upload-source-maps');
|
|
12
|
-
|
|
13
|
-
uploadCommand
|
|
14
|
-
.option('-k, --private-key <privateKey>', 'Private key to authenticate with the API')
|
|
15
|
-
.option('-a, --application <application>', 'Name of the application')
|
|
16
|
-
.option('-r, --release-id <releaseId>', 'ID of the release')
|
|
17
|
-
.option('-f, --folder-path <folderPath>', 'Path to the folder containing the source maps')
|
|
18
|
-
.option('-e, --env <env>', 'Your environment', validateEnvironment)
|
|
19
|
-
.option('-c, --commit-hash <commitHash>', 'GitHub commit hash (optional)')
|
|
20
|
-
.option('-n, --repo-name <repoName>', 'GitHub Repository name (optional)')
|
|
21
|
-
.option('-o, --org-name <orgName>', 'GitHub user name (optional)')
|
|
22
|
-
.description('Upload source maps')
|
|
23
|
-
.action(async (options) => {
|
|
24
|
-
try {
|
|
25
|
-
if (options.help) {
|
|
26
|
-
program.outputHelp();
|
|
27
|
-
process.exit(0);
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
const {privateKey, application, releaseId, folderPath, commitHash, repoName, orgName, env} = options;
|
|
31
|
-
|
|
32
|
-
const missingArgs = [];
|
|
33
|
-
|
|
34
|
-
if (!privateKey) missingArgs.push('private-key');
|
|
35
|
-
if (!application) missingArgs.push('application');
|
|
36
|
-
if (!releaseId) missingArgs.push('release-id');
|
|
37
|
-
if (!folderPath) missingArgs.push('folder-path');
|
|
38
|
-
if (!env) missingArgs.push('env');
|
|
39
|
-
|
|
40
|
-
if (missingArgs.length > 0) {
|
|
41
|
-
const missingArgsList = missingArgs.map(arg => `- ${arg}`).join('\n');
|
|
42
|
-
const errorMessage = `❌ Missing required arguments:\n${missingArgsList}\nPlease provide the necessary options`;
|
|
43
|
-
console.error(RED_COLOR, errorMessage);
|
|
44
|
-
process.exit(1);
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
await SourceMapsService.upload(application, releaseId, repoName, commitHash, orgName, folderPath, env, privateKey)
|
|
48
|
-
} catch (error) {
|
|
49
|
-
console.error(RED_COLOR, '❌ An error occurred:');
|
|
50
|
-
console.error(RED_COLOR, error);
|
|
51
|
-
}
|
|
52
|
-
});
|
|
53
|
-
|
|
54
|
-
program.parse(process.argv);
|
package/cli/theme/index.ts
DELETED
package/cli/validators/index.ts
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import {envToDomain} from "../../model/cli.model";
|
|
2
|
-
import {RED_COLOR} from "../theme";
|
|
3
|
-
|
|
4
|
-
export const validateEnvironment = (env: string): string => {
|
|
5
|
-
const validEnvironments = Object.keys(envToDomain).join(', ');
|
|
6
|
-
|
|
7
|
-
if (!(env in envToDomain)) {
|
|
8
|
-
const errorMessage = `❌ Invalid environment: ${env}. Possible values are: ${validEnvironments}`;
|
|
9
|
-
console.error(RED_COLOR, errorMessage);
|
|
10
|
-
process.exit(1);
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
return env;
|
|
14
|
-
}
|
package/config/config.ts
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
export interface LoggerConfig {
|
|
2
|
-
maxLogSize: number;
|
|
3
|
-
logLevel: string;
|
|
4
|
-
}
|
|
5
|
-
|
|
6
|
-
export interface rumApiConfig {
|
|
7
|
-
maxMessageSize: number,
|
|
8
|
-
keepaliveTimeMs: number
|
|
9
|
-
keepaliveTimeoutMs: number
|
|
10
|
-
chunkSize: number,
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
export interface Config {
|
|
14
|
-
logger: LoggerConfig;
|
|
15
|
-
rumApi: rumApiConfig;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
const config: Config = {
|
|
19
|
-
logger: {
|
|
20
|
-
maxLogSize: 10000,
|
|
21
|
-
logLevel: 'debug',
|
|
22
|
-
},
|
|
23
|
-
rumApi: {
|
|
24
|
-
maxMessageSize: 400000 * 1024,
|
|
25
|
-
keepaliveTimeMs: 120000,
|
|
26
|
-
keepaliveTimeoutMs: 120000,
|
|
27
|
-
chunkSize: 512 * 1024 // 512 KB chunk size
|
|
28
|
-
}
|
|
29
|
-
};
|
|
30
|
-
|
|
31
|
-
export default config;
|
package/config/index.js
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
exports.__esModule = true;
|
|
6
|
-
var config_1 = __importDefault(require("./config"));
|
|
7
|
-
exports["default"] = config_1["default"];
|
package/config/index.ts
DELETED
package/dist/api/rum-api.d.ts
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import { UploadSourceMapsRequest } from "../proto-models/com/coralogix/rum/v2/rum_source_map_service";
|
|
2
|
-
export declare class RumApi {
|
|
3
|
-
static uploadSourceMaps(request: UploadSourceMapsRequest, env: string, privateKey: string): Promise<void>;
|
|
4
|
-
private static compressFileContentChunks;
|
|
5
|
-
}
|
package/dist/api/rum-api.js
DELETED
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
26
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
27
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
28
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
29
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
30
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
31
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
32
|
-
});
|
|
33
|
-
};
|
|
34
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
35
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
36
|
-
};
|
|
37
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
|
-
exports.RumApi = void 0;
|
|
39
|
-
const nice_grpc_1 = require("nice-grpc");
|
|
40
|
-
const cli_model_1 = require("../model/cli.model");
|
|
41
|
-
const pako = __importStar(require("pako"));
|
|
42
|
-
const config_1 = __importDefault(require("../config/config"));
|
|
43
|
-
const theme_1 = require("../cli/theme");
|
|
44
|
-
const rum_source_map_service_1 = require("../proto-models/com/coralogix/rum/v2/rum_source_map_service");
|
|
45
|
-
class RumApi {
|
|
46
|
-
static uploadSourceMaps(request, env, privateKey) {
|
|
47
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
48
|
-
const { maxMessageSize, keepaliveTimeMs, keepaliveTimeoutMs } = config_1.default.rumApi;
|
|
49
|
-
try {
|
|
50
|
-
const channel = (0, nice_grpc_1.createChannel)(cli_model_1.envToDomain[env], undefined, {
|
|
51
|
-
"grpc.max_receive_message_length": maxMessageSize,
|
|
52
|
-
"grpc.max_send_message_length": maxMessageSize,
|
|
53
|
-
'grpc.keepalive_time_ms': keepaliveTimeMs,
|
|
54
|
-
'grpc.keepalive_timeout_ms': keepaliveTimeoutMs,
|
|
55
|
-
});
|
|
56
|
-
const client = (0, nice_grpc_1.createClient)(rum_source_map_service_1.RumSourceMapServiceDefinition, channel);
|
|
57
|
-
const { files, releaseId, application, repoName, commitHash, user } = request;
|
|
58
|
-
const compressedFiles = yield Promise.all(files.map((file) => __awaiter(this, void 0, void 0, function* () {
|
|
59
|
-
const compressedChunks = this.compressFileContentChunks(file.content);
|
|
60
|
-
const size = compressedChunks.length;
|
|
61
|
-
return { chunkName: file.chunkName, size, content: compressedChunks };
|
|
62
|
-
})));
|
|
63
|
-
const metadata = new nice_grpc_1.Metadata();
|
|
64
|
-
metadata.set('Authorization', `Bearer ${privateKey}`);
|
|
65
|
-
yield client.uploadSourceMaps({
|
|
66
|
-
files: compressedFiles,
|
|
67
|
-
releaseId,
|
|
68
|
-
application,
|
|
69
|
-
repoName,
|
|
70
|
-
commitHash,
|
|
71
|
-
user
|
|
72
|
-
}, { metadata });
|
|
73
|
-
}
|
|
74
|
-
catch (error) {
|
|
75
|
-
throw error;
|
|
76
|
-
}
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
|
-
;
|
|
80
|
-
}
|
|
81
|
-
exports.RumApi = RumApi;
|
|
82
|
-
RumApi.compressFileContentChunks = (fileContent) => {
|
|
83
|
-
const { chunkSize } = config_1.default.rumApi; // 512 KB chunk size
|
|
84
|
-
const deflate = new pako.Deflate();
|
|
85
|
-
const totalChunks = Math.ceil(fileContent.length / chunkSize);
|
|
86
|
-
for (let i = 0; i < totalChunks; i++) {
|
|
87
|
-
const start = i * chunkSize;
|
|
88
|
-
const end = start + chunkSize;
|
|
89
|
-
const chunk = fileContent.subarray(start, end);
|
|
90
|
-
const isLastChunk = i === totalChunks - 1;
|
|
91
|
-
deflate.push(chunk, isLastChunk);
|
|
92
|
-
}
|
|
93
|
-
const { err, msg, result } = deflate;
|
|
94
|
-
if (err)
|
|
95
|
-
console.error(theme_1.RED_COLOR, msg);
|
|
96
|
-
return result;
|
|
97
|
-
};
|
|
98
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVtLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2FwaS9ydW0tYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEseUNBQXdFO0FBQ3hFLGtEQUErQztBQUMvQywyQ0FBNkI7QUFDN0IsOERBQXNDO0FBQ3RDLHdDQUF1QztBQUV2Qyx3R0FHcUU7QUFFckUsTUFBYSxNQUFNO0lBQ2YsTUFBTSxDQUFPLGdCQUFnQixDQUFDLE9BQWdDLEVBQUUsR0FBVyxFQUFFLFVBQWtCOztZQUUzRixNQUFNLEVBQUMsY0FBYyxFQUFFLGVBQWUsRUFBRSxrQkFBa0IsRUFBQyxHQUFHLGdCQUFNLENBQUMsTUFBTSxDQUFDO1lBRTVFLElBQUk7Z0JBQ0EsTUFBTSxPQUFPLEdBQUcsSUFBQSx5QkFBYSxFQUFDLHVCQUFXLENBQUMsR0FBRyxDQUFDLEVBQUUsU0FBUyxFQUFFO29CQUN2RCxpQ0FBaUMsRUFBRSxjQUFjO29CQUNqRCw4QkFBOEIsRUFBRSxjQUFjO29CQUM5Qyx3QkFBd0IsRUFBRSxlQUFlO29CQUN6QywyQkFBMkIsRUFBRSxrQkFBa0I7aUJBQ2xELENBQUMsQ0FBQztnQkFFSCxNQUFNLE1BQU0sR0FBaUQsSUFBQSx3QkFBWSxFQUFDLHNEQUE2QixFQUFFLE9BQU8sQ0FBQyxDQUFDO2dCQUVsSCxNQUFNLEVBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUMsR0FBRyxPQUFPLENBQUM7Z0JBRTVFLE1BQU0sZUFBZSxHQUFtQixNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQ3JELEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBTyxJQUFrQixFQUFFLEVBQUU7b0JBQ25DLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztvQkFFdEUsTUFBTSxJQUFJLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxDQUFDO29CQUVyQyxPQUFPLEVBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBQyxDQUFDO2dCQUN4RSxDQUFDLENBQUEsQ0FBQyxDQUNMLENBQUM7Z0JBRUYsTUFBTSxRQUFRLEdBQUcsSUFBSSxvQkFBUSxFQUFFLENBQUM7Z0JBRWhDLFFBQVEsQ0FBQyxHQUFHLENBQUMsZUFBZSxFQUFFLFVBQVUsVUFBVSxFQUFFLENBQUMsQ0FBQztnQkFFdEQsTUFBTSxNQUFNLENBQUMsZ0JBQWdCLENBQUM7b0JBQzFCLEtBQUssRUFBRSxlQUFlO29CQUN0QixTQUFTO29CQUNULFdBQVc7b0JBQ1gsUUFBUTtvQkFDUixVQUFVO29CQUNWLElBQUk7aUJBQ1AsRUFBRSxFQUFDLFFBQVEsRUFBQyxDQUFDLENBQUM7YUFFbEI7WUFBQyxPQUFPLEtBQUssRUFBRTtnQkFDWixNQUFNLEtBQUssQ0FBQzthQUNmO1FBQ0wsQ0FBQztLQUFBO0lBQUEsQ0FBQzs7QUEzQ04sd0JBa0VDO0FBckJrQixnQ0FBeUIsR0FBRyxDQUFDLFdBQXVCLEVBQWMsRUFBRTtJQUMvRSxNQUFNLEVBQUMsU0FBUyxFQUFDLEdBQUcsZ0JBQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxvQkFBb0I7SUFDdkQsTUFBTSxPQUFPLEdBQUcsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDbkMsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQyxDQUFDO0lBRTlELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxXQUFXLEVBQUUsQ0FBQyxFQUFFLEVBQUU7UUFDbEMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxHQUFHLFNBQVMsQ0FBQztRQUM1QixNQUFNLEdBQUcsR0FBRyxLQUFLLEdBQUcsU0FBUyxDQUFDO1FBQzlCLE1BQU0sS0FBSyxHQUFHLFdBQVcsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBRS9DLE1BQU0sV0FBVyxHQUFHLENBQUMsS0FBSyxXQUFXLEdBQUcsQ0FBQyxDQUFDO1FBRTFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0tBQ3BDO0lBRUQsTUFBTSxFQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFDLEdBQUcsT0FBTyxDQUFDO0lBRW5DLElBQUksR0FBRztRQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsaUJBQVMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUV2QyxPQUFPLE1BQU0sQ0FBQztBQUNsQixDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NsaWVudCwgY3JlYXRlQ2hhbm5lbCwgY3JlYXRlQ2xpZW50LCBNZXRhZGF0YX0gZnJvbSAnbmljZS1ncnBjJztcbmltcG9ydCB7ZW52VG9Eb21haW59IGZyb20gXCIuLi9tb2RlbC9jbGkubW9kZWxcIjtcbmltcG9ydCAqIGFzIHBha28gZnJvbSAncGFrbyc7XG5pbXBvcnQgY29uZmlnIGZyb20gXCIuLi9jb25maWcvY29uZmlnXCI7XG5pbXBvcnQge1JFRF9DT0xPUn0gZnJvbSBcIi4uL2NsaS90aGVtZVwiO1xuaW1wb3J0IHtGaWxlTWV0YWRhdGF9IGZyb20gXCIuLi9wcm90by1tb2RlbHMvY29tL2NvcmFsb2dpeC9ydW0vdjIvZmlsZVwiO1xuaW1wb3J0IHtcbiAgICBSdW1Tb3VyY2VNYXBTZXJ2aWNlRGVmaW5pdGlvbixcbiAgICBVcGxvYWRTb3VyY2VNYXBzUmVxdWVzdFxufSBmcm9tIFwiLi4vcHJvdG8tbW9kZWxzL2NvbS9jb3JhbG9naXgvcnVtL3YyL3J1bV9zb3VyY2VfbWFwX3NlcnZpY2VcIjtcblxuZXhwb3J0IGNsYXNzIFJ1bUFwaSB7XG4gICAgc3RhdGljIGFzeW5jIHVwbG9hZFNvdXJjZU1hcHMocmVxdWVzdDogVXBsb2FkU291cmNlTWFwc1JlcXVlc3QsIGVudjogc3RyaW5nLCBwcml2YXRlS2V5OiBzdHJpbmcpIHtcblxuICAgICAgICBjb25zdCB7bWF4TWVzc2FnZVNpemUsIGtlZXBhbGl2ZVRpbWVNcywga2VlcGFsaXZlVGltZW91dE1zfSA9IGNvbmZpZy5ydW1BcGk7XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGNoYW5uZWwgPSBjcmVhdGVDaGFubmVsKGVudlRvRG9tYWluW2Vudl0sIHVuZGVmaW5lZCwge1xuICAgICAgICAgICAgICAgIFwiZ3JwYy5tYXhfcmVjZWl2ZV9tZXNzYWdlX2xlbmd0aFwiOiBtYXhNZXNzYWdlU2l6ZSxcbiAgICAgICAgICAgICAgICBcImdycGMubWF4X3NlbmRfbWVzc2FnZV9sZW5ndGhcIjogbWF4TWVzc2FnZVNpemUsXG4gICAgICAgICAgICAgICAgJ2dycGMua2VlcGFsaXZlX3RpbWVfbXMnOiBrZWVwYWxpdmVUaW1lTXMsXG4gICAgICAgICAgICAgICAgJ2dycGMua2VlcGFsaXZlX3RpbWVvdXRfbXMnOiBrZWVwYWxpdmVUaW1lb3V0TXMsXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgY29uc3QgY2xpZW50OiBDbGllbnQ8dHlwZW9mIFJ1bVNvdXJjZU1hcFNlcnZpY2VEZWZpbml0aW9uPiA9IGNyZWF0ZUNsaWVudChSdW1Tb3VyY2VNYXBTZXJ2aWNlRGVmaW5pdGlvbiwgY2hhbm5lbCk7XG5cbiAgICAgICAgICAgIGNvbnN0IHtmaWxlcywgcmVsZWFzZUlkLCBhcHBsaWNhdGlvbiwgcmVwb05hbWUsIGNvbW1pdEhhc2gsIHVzZXJ9ID0gcmVxdWVzdDtcblxuICAgICAgICAgICAgY29uc3QgY29tcHJlc3NlZEZpbGVzOiBGaWxlTWV0YWRhdGFbXSA9IGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICAgICAgICAgIGZpbGVzLm1hcChhc3luYyAoZmlsZTogRmlsZU1ldGFkYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbXByZXNzZWRDaHVua3MgPSB0aGlzLmNvbXByZXNzRmlsZUNvbnRlbnRDaHVua3MoZmlsZS5jb250ZW50KTtcblxuICAgICAgICAgICAgICAgICAgICBjb25zdCBzaXplID0gY29tcHJlc3NlZENodW5rcy5sZW5ndGg7XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtjaHVua05hbWU6IGZpbGUuY2h1bmtOYW1lLCBzaXplLCBjb250ZW50OiBjb21wcmVzc2VkQ2h1bmtzfTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgY29uc3QgbWV0YWRhdGEgPSBuZXcgTWV0YWRhdGEoKTtcblxuICAgICAgICAgICAgbWV0YWRhdGEuc2V0KCdBdXRob3JpemF0aW9uJywgYEJlYXJlciAke3ByaXZhdGVLZXl9YCk7XG5cbiAgICAgICAgICAgIGF3YWl0IGNsaWVudC51cGxvYWRTb3VyY2VNYXBzKHtcbiAgICAgICAgICAgICAgICBmaWxlczogY29tcHJlc3NlZEZpbGVzLFxuICAgICAgICAgICAgICAgIHJlbGVhc2VJZCxcbiAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbixcbiAgICAgICAgICAgICAgICByZXBvTmFtZSxcbiAgICAgICAgICAgICAgICBjb21taXRIYXNoLFxuICAgICAgICAgICAgICAgIHVzZXJcbiAgICAgICAgICAgIH0sIHttZXRhZGF0YX0pO1xuXG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBwcml2YXRlIHN0YXRpYyBjb21wcmVzc0ZpbGVDb250ZW50Q2h1bmtzID0gKGZpbGVDb250ZW50OiBVaW50OEFycmF5KTogVWludDhBcnJheSA9PiB7XG4gICAgICAgIGNvbnN0IHtjaHVua1NpemV9ID0gY29uZmlnLnJ1bUFwaTsgLy8gNTEyIEtCIGNodW5rIHNpemVcbiAgICAgICAgY29uc3QgZGVmbGF0ZSA9IG5ldyBwYWtvLkRlZmxhdGUoKTtcbiAgICAgICAgY29uc3QgdG90YWxDaHVua3MgPSBNYXRoLmNlaWwoZmlsZUNvbnRlbnQubGVuZ3RoIC8gY2h1bmtTaXplKTtcblxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRvdGFsQ2h1bmtzOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IHN0YXJ0ID0gaSAqIGNodW5rU2l6ZTtcbiAgICAgICAgICAgIGNvbnN0IGVuZCA9IHN0YXJ0ICsgY2h1bmtTaXplO1xuICAgICAgICAgICAgY29uc3QgY2h1bmsgPSBmaWxlQ29udGVudC5zdWJhcnJheShzdGFydCwgZW5kKTtcblxuICAgICAgICAgICAgY29uc3QgaXNMYXN0Q2h1bmsgPSBpID09PSB0b3RhbENodW5rcyAtIDE7XG5cbiAgICAgICAgICAgIGRlZmxhdGUucHVzaChjaHVuaywgaXNMYXN0Q2h1bmspO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qge2VyciwgbXNnLCByZXN1bHR9ID0gZGVmbGF0ZTtcblxuICAgICAgICBpZiAoZXJyKSBjb25zb2xlLmVycm9yKFJFRF9DT0xPUiwgbXNnKTtcblxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbn1cblxuIl19
|
package/dist/cli/rum-cli.d.ts
DELETED
package/dist/cli/theme/index.js
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
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==
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const validateEnvironment: (env: string) => string;
|
|
@@ -1,16 +0,0 @@
|
|
|
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
|
package/dist/config/config.d.ts
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
export interface LoggerConfig {
|
|
2
|
-
maxLogSize: number;
|
|
3
|
-
logLevel: string;
|
|
4
|
-
}
|
|
5
|
-
export interface rumApiConfig {
|
|
6
|
-
maxMessageSize: number;
|
|
7
|
-
keepaliveTimeMs: number;
|
|
8
|
-
keepaliveTimeoutMs: number;
|
|
9
|
-
chunkSize: number;
|
|
10
|
-
}
|
|
11
|
-
export interface Config {
|
|
12
|
-
logger: LoggerConfig;
|
|
13
|
-
rumApi: rumApiConfig;
|
|
14
|
-
}
|
|
15
|
-
declare const config: Config;
|
|
16
|
-
export default config;
|
package/dist/config/config.js
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const config = {
|
|
4
|
-
logger: {
|
|
5
|
-
maxLogSize: 10000,
|
|
6
|
-
logLevel: 'debug',
|
|
7
|
-
},
|
|
8
|
-
rumApi: {
|
|
9
|
-
maxMessageSize: 400000 * 1024,
|
|
10
|
-
keepaliveTimeMs: 120000,
|
|
11
|
-
keepaliveTimeoutMs: 120000,
|
|
12
|
-
chunkSize: 512 * 1024 // 512 KB chunk size
|
|
13
|
-
}
|
|
14
|
-
};
|
|
15
|
-
exports.default = config;
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vY29uZmlnL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWlCQSxNQUFNLE1BQU0sR0FBVztJQUNuQixNQUFNLEVBQUU7UUFDSixVQUFVLEVBQUUsS0FBSztRQUNqQixRQUFRLEVBQUUsT0FBTztLQUNwQjtJQUNELE1BQU0sRUFBRTtRQUNKLGNBQWMsRUFBRSxNQUFNLEdBQUcsSUFBSTtRQUM3QixlQUFlLEVBQUUsTUFBTTtRQUN2QixrQkFBa0IsRUFBRSxNQUFNO1FBQzFCLFNBQVMsRUFBRSxHQUFHLEdBQUcsSUFBSSxDQUFDLG9CQUFvQjtLQUM3QztDQUNKLENBQUM7QUFFRixrQkFBZSxNQUFNLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIExvZ2dlckNvbmZpZyB7XG4gICAgbWF4TG9nU2l6ZTogbnVtYmVyO1xuICAgIGxvZ0xldmVsOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgcnVtQXBpQ29uZmlnIHtcbiAgICBtYXhNZXNzYWdlU2l6ZTogbnVtYmVyLFxuICAgIGtlZXBhbGl2ZVRpbWVNczogbnVtYmVyXG4gICAga2VlcGFsaXZlVGltZW91dE1zOiBudW1iZXJcbiAgICBjaHVua1NpemU6IG51bWJlcixcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb25maWcge1xuICAgIGxvZ2dlcjogTG9nZ2VyQ29uZmlnO1xuICAgIHJ1bUFwaTogcnVtQXBpQ29uZmlnO1xufVxuXG5jb25zdCBjb25maWc6IENvbmZpZyA9IHtcbiAgICBsb2dnZXI6IHtcbiAgICAgICAgbWF4TG9nU2l6ZTogMTAwMDAsXG4gICAgICAgIGxvZ0xldmVsOiAnZGVidWcnLFxuICAgIH0sXG4gICAgcnVtQXBpOiB7XG4gICAgICAgIG1heE1lc3NhZ2VTaXplOiA0MDAwMDAgKiAxMDI0LFxuICAgICAgICBrZWVwYWxpdmVUaW1lTXM6IDEyMDAwMCxcbiAgICAgICAga2VlcGFsaXZlVGltZW91dE1zOiAxMjAwMDAsXG4gICAgICAgIGNodW5rU2l6ZTogNTEyICogMTAyNCAvLyA1MTIgS0IgY2h1bmsgc2l6ZVxuICAgIH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IGNvbmZpZztcbiJdfQ==
|
package/dist/config/index.d.ts
DELETED
package/dist/config/index.js
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
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
|
-
const config_1 = __importDefault(require("./config"));
|
|
7
|
-
exports.default = config_1.default;
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9jb25maWcvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxzREFBOEI7QUFFOUIsa0JBQWUsZ0JBQU0sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjb25maWcgZnJvbSAnLi9jb25maWcnO1xuXG5leHBvcnQgZGVmYXVsdCBjb25maWc7XG4iXX0=
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const envToDomain: Record<string, string>;
|
package/dist/model/cli.model.js
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.envToDomain = void 0;
|
|
4
|
-
exports.envToDomain = {
|
|
5
|
-
US1: 'https://ng-api-grpc.coralogix.us:443',
|
|
6
|
-
EU1: 'https://ng-api-grpc.coralogix.com:443',
|
|
7
|
-
EU2: 'https://ng-api-grpc.eu2.coralogix.com:443',
|
|
8
|
-
AP1: 'https://ng-api-grpc.app.coralogix.in:443',
|
|
9
|
-
AP2: 'https://ng-api-grpc.coralogix.com:443',
|
|
10
|
-
};
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbW9kZWwvY2xpLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFhLFFBQUEsV0FBVyxHQUEyQjtJQUMvQyxHQUFHLEVBQUUsc0NBQXNDO0lBQzNDLEdBQUcsRUFBRSx1Q0FBdUM7SUFDNUMsR0FBRyxFQUFFLDJDQUEyQztJQUNoRCxHQUFHLEVBQUUsMENBQTBDO0lBQy9DLEdBQUcsRUFBRSx1Q0FBdUM7Q0FDL0MsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBlbnZUb0RvbWFpbjogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICBVUzE6ICdodHRwczovL25nLWFwaS1ncnBjLmNvcmFsb2dpeC51czo0NDMnLFxuICAgIEVVMTogJ2h0dHBzOi8vbmctYXBpLWdycGMuY29yYWxvZ2l4LmNvbTo0NDMnLFxuICAgIEVVMjogJ2h0dHBzOi8vbmctYXBpLWdycGMuZXUyLmNvcmFsb2dpeC5jb206NDQzJyxcbiAgICBBUDE6ICdodHRwczovL25nLWFwaS1ncnBjLmFwcC5jb3JhbG9naXguaW46NDQzJyxcbiAgICBBUDI6ICdodHRwczovL25nLWFwaS1ncnBjLmNvcmFsb2dpeC5jb206NDQzJyxcbn0iXX0=
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import _m0 from "protobufjs/minimal";
|
|
2
|
-
export declare const protobufPackage = "com.coralogix.rum.v2";
|
|
3
|
-
export interface AuditLogDescription {
|
|
4
|
-
description?: string | undefined;
|
|
5
|
-
}
|
|
6
|
-
export declare const AuditLogDescription: {
|
|
7
|
-
encode(message: AuditLogDescription, writer?: _m0.Writer): _m0.Writer;
|
|
8
|
-
decode(input: _m0.Reader | Uint8Array, length?: number): AuditLogDescription;
|
|
9
|
-
fromJSON(object: any): AuditLogDescription;
|
|
10
|
-
toJSON(message: AuditLogDescription): unknown;
|
|
11
|
-
create(base?: DeepPartial<AuditLogDescription>): AuditLogDescription;
|
|
12
|
-
fromPartial(object: DeepPartial<AuditLogDescription>): AuditLogDescription;
|
|
13
|
-
};
|
|
14
|
-
type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
|
|
15
|
-
export type DeepPartial<T> = T extends Builtin ? T : T extends Array<infer U> ? Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {
|
|
16
|
-
$case: string;
|
|
17
|
-
} ? {
|
|
18
|
-
[K in keyof Omit<T, "$case">]?: DeepPartial<T[K]>;
|
|
19
|
-
} & {
|
|
20
|
-
$case: T["$case"];
|
|
21
|
-
} : T extends {} ? {
|
|
22
|
-
[K in keyof T]?: DeepPartial<T[K]>;
|
|
23
|
-
} : Partial<T>;
|
|
24
|
-
export {};
|
|
@@ -1,62 +0,0 @@
|
|
|
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=
|