| import { Span } from './Span'; | ||
| import { TraceMetadata } from './TraceMetadata'; | ||
| export type TraceData = { | ||
| metadata: TraceMetadata; | ||
| spans: Span[]; | ||
| }; |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHJhY2VEYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RvbWFpbi9UcmFjZURhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNwYW4gfSBmcm9tICcuL1NwYW4nO1xuaW1wb3J0IHsgVHJhY2VNZXRhZGF0YSB9IGZyb20gJy4vVHJhY2VNZXRhZGF0YSc7XG5cbmV4cG9ydCB0eXBlIFRyYWNlRGF0YSA9IHtcbiAgICBtZXRhZGF0YTogVHJhY2VNZXRhZGF0YTtcbiAgICBzcGFuczogU3BhbltdO1xufTtcbiJdfQ== |
| export type TraceMetadata = { | ||
| serviceName: string; | ||
| }; |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHJhY2VNZXRhZGF0YS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kb21haW4vVHJhY2VNZXRhZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgVHJhY2VNZXRhZGF0YSA9IHtcbiAgICBzZXJ2aWNlTmFtZTogc3RyaW5nO1xufTtcbiJdfQ== |
| import { TraceExporter } from '../TraceExporter'; | ||
| import { Span, TraceMetadata } from '../../domain'; | ||
| export declare class GrpcTraceExporter implements TraceExporter { | ||
| private readonly url; | ||
| private readonly exporter; | ||
| constructor(exporterOTLPEndpoint: string, exporterOTLPHeaders: Map<string, string>); | ||
| private _headersToMetadata; | ||
| private _nanosecondsToHrTime; | ||
| private _nanosecondsDiffToHrTime; | ||
| private _toAttributes; | ||
| private _createReadableSpans; | ||
| export(metadata: TraceMetadata, spans: Span[]): Promise<void>; | ||
| } |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.GrpcTraceExporter = void 0; | ||
| const constants_1 = require("../../constants"); | ||
| const core_1 = require("@opentelemetry/core"); | ||
| const api_1 = require("@opentelemetry/api"); | ||
| const exporter_trace_otlp_grpc_1 = require("@opentelemetry/exporter-trace-otlp-grpc"); | ||
| const grpc_js_1 = require("@grpc/grpc-js"); | ||
| class GrpcTraceExporter { | ||
| constructor(exporterOTLPEndpoint, exporterOTLPHeaders) { | ||
| this.url = exporterOTLPEndpoint; | ||
| this.exporter = new exporter_trace_otlp_grpc_1.OTLPTraceExporter({ | ||
| url: this.url, | ||
| metadata: this._headersToMetadata(exporterOTLPHeaders), | ||
| }); | ||
| } | ||
| _headersToMetadata(exporterOTLPHeaders) { | ||
| const metadata = new grpc_js_1.Metadata(); | ||
| if (exporterOTLPHeaders) { | ||
| for (const entry of exporterOTLPHeaders.entries()) { | ||
| const headerName = entry[0]; | ||
| const headerValue = entry[1]; | ||
| metadata.set(headerName, headerValue); | ||
| } | ||
| } | ||
| return metadata; | ||
| } | ||
| _nanosecondsToHrTime(nanos) { | ||
| // Since we lost precision at nanoseconds level, | ||
| // we convert nanoseconds to milliseconds first. | ||
| const micros = Math.floor(nanos / 1000); | ||
| const secondsDecimal = micros / 1000000; | ||
| const seconds = Math.floor(micros / 1000000); | ||
| return [ | ||
| seconds, | ||
| Math.floor(Number((secondsDecimal - seconds).toFixed(6)) * 1e9), | ||
| ]; | ||
| } | ||
| _nanosecondsDiffToHrTime(nanos1, nanos2) { | ||
| // Since we lost precision at nanoseconds level, | ||
| // we convert nanoseconds to milliseconds first. | ||
| const micros1 = Math.floor(nanos1 / 1000); | ||
| const micros2 = Math.floor(nanos2 / 1000); | ||
| const diffMicros = micros1 - micros2; | ||
| const diffNanos = diffMicros * 1000; | ||
| return this._nanosecondsToHrTime(diffNanos); | ||
| } | ||
| _toAttributes(attributeList) { | ||
| const attributes = {}; | ||
| for (const attribute of attributeList) { | ||
| let attributeVal; | ||
| if (attribute.value.stringValue != null) { | ||
| attributeVal = attribute.value.stringValue; | ||
| } | ||
| else if (attribute.value.intValue != null) { | ||
| attributeVal = attribute.value.intValue; | ||
| } | ||
| else if (attribute.value.doubleValue != null) { | ||
| attributeVal = attribute.value.doubleValue; | ||
| } | ||
| else if (attribute.value.boolValue != null) { | ||
| attributeVal = attribute.value.boolValue; | ||
| } | ||
| attributes[attribute.key] = attributeVal; | ||
| } | ||
| return attributes; | ||
| } | ||
| _createReadableSpans(metadata, spans) { | ||
| const readableSpans = []; | ||
| for (const span of spans) { | ||
| readableSpans.push({ | ||
| name: span.name, | ||
| kind: api_1.SpanKind[api_1.SpanKind[span.kind.valueOf() - 1]], | ||
| parentSpanId: span.parentSpanId, | ||
| spanContext: () => { | ||
| return { | ||
| traceId: span.traceId, | ||
| spanId: span.spanId, | ||
| traceFlags: constants_1.SAMPLED_TRACE_FLAG, | ||
| }; | ||
| }, | ||
| startTime: this._nanosecondsToHrTime(span.startTimeUnixNano), | ||
| endTime: this._nanosecondsToHrTime(span.endTimeUnixNano), | ||
| duration: this._nanosecondsDiffToHrTime(span.endTimeUnixNano, span.startTimeUnixNano), | ||
| ended: true, | ||
| status: span.status, | ||
| attributes: this._toAttributes(span.attributes), | ||
| resource: { | ||
| attributes: { | ||
| [constants_1.RESOURCE_ATTRIBUTES.SERVICE_NAME]: metadata.serviceName, | ||
| }, | ||
| }, | ||
| instrumentationLibrary: { | ||
| name: constants_1.OTEL_CLI_NAME, | ||
| version: constants_1.OTEL_CLI_VERSION, | ||
| }, | ||
| events: [], | ||
| links: [], | ||
| droppedAttributesCount: 0, | ||
| droppedEventsCount: 0, | ||
| droppedLinksCount: 0, | ||
| }); | ||
| } | ||
| return readableSpans; | ||
| } | ||
| async export(metadata, spans) { | ||
| const readableSpans = this._createReadableSpans(metadata, spans); | ||
| return new Promise((res, rej) => { | ||
| this.exporter.export(readableSpans, (result) => { | ||
| if (result.error) { | ||
| rej(new Error(`Failed response (error=${result.error}, status code=${result.code}) from exporter OTLP GRPC endpoint ${this.url}`)); | ||
| } | ||
| else { | ||
| if (result.code === core_1.ExportResultCode.FAILED) { | ||
| rej(new Error(`Failed response (status code=${result.code}) from exporter OTLP GRPC endpoint ${this.url}`)); | ||
| } | ||
| else { | ||
| res(); | ||
| } | ||
| } | ||
| }); | ||
| }); | ||
| } | ||
| } | ||
| exports.GrpcTraceExporter = GrpcTraceExporter; | ||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR3JwY1RyYWNlRXhwb3J0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZXhwb3J0L2dycGMvR3JwY1RyYWNlRXhwb3J0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsK0NBS3lCO0FBRXpCLDhDQUFxRTtBQUNyRSw0Q0FNNEI7QUFFNUIsc0ZBQTRFO0FBQzVFLDJDQUF5QztBQUV6QyxNQUFhLGlCQUFpQjtJQUkxQixZQUNJLG9CQUE0QixFQUM1QixtQkFBd0M7UUFFeEMsSUFBSSxDQUFDLEdBQUcsR0FBRyxvQkFBb0IsQ0FBQztRQUNoQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksNENBQWlCLENBQUM7WUFDbEMsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHO1lBQ2IsUUFBUSxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxtQkFBbUIsQ0FBQztTQUN6RCxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU8sa0JBQWtCLENBQ3RCLG1CQUF3QztRQUV4QyxNQUFNLFFBQVEsR0FBYSxJQUFJLGtCQUFRLEVBQUUsQ0FBQztRQUMxQyxJQUFJLG1CQUFtQixFQUFFO1lBQ3JCLEtBQUssTUFBTSxLQUFLLElBQUksbUJBQW1CLENBQUMsT0FBTyxFQUFFLEVBQUU7Z0JBQy9DLE1BQU0sVUFBVSxHQUFXLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDcEMsTUFBTSxXQUFXLEdBQVcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNyQyxRQUFRLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxXQUFXLENBQUMsQ0FBQzthQUN6QztTQUNKO1FBQ0QsT0FBTyxRQUFRLENBQUM7SUFDcEIsQ0FBQztJQUVPLG9CQUFvQixDQUFDLEtBQWE7UUFDdEMsZ0RBQWdEO1FBQ2hELGdEQUFnRDtRQUNoRCxNQUFNLE1BQU0sR0FBVyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxJQUFLLENBQUMsQ0FBQztRQUNqRCxNQUFN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LENBQUMsTUFBTSxFQUFFO3dCQUN6QyxHQUFHLENBQ0MsSUFBSSxLQUFLLENBQ0wsZ0NBQWdDLE1BQU0sQ0FBQyxJQUFJLHNDQUFzQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQzlGLENBQ0osQ0FBQztxQkFDTDt5QkFBTTt3QkFDSCxHQUFHLEVBQUUsQ0FBQztxQkFDVDtpQkFDSjtZQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUNKLENBQUM7SUFDTixDQUFDO0NBQ0o7QUFsSkQsOENBa0pDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHJhY2VFeHBvcnRlciB9IGZyb20gJy4uL1RyYWNlRXhwb3J0ZXInO1xuaW1wb3J0IHsgQXR0cmlidXRlLCBTcGFuLCBUcmFjZU1ldGFkYXRhIH0gZnJvbSAnLi4vLi4vZG9tYWluJztcbmltcG9ydCB7XG4gICAgT1RFTF9DTElfTkFNRSxcbiAgICBPVEVMX0NMSV9WRVJTSU9OLFxuICAgIFJFU09VUkNFX0FUVFJJQlVURVMsXG4gICAgU0FNUExFRF9UUkFDRV9GTEFHLFxufSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuXG5pbXBvcnQgeyBFeHBvcnRSZXN1bHQsIEV4cG9ydFJlc3VsdENvZGUgfSBmcm9tICdAb3BlbnRlbGVtZXRyeS9jb3JlJztcbmltcG9ydCB7XG4gICAgQXR0cmlidXRlcyxcbiAgICBBdHRyaWJ1dGVWYWx1ZSxcbiAgICBMaW5rLFxuICAgIEhyVGltZSxcbiAgICBTcGFuS2luZCxcbn0gZnJvbSAnQG9wZW50ZWxlbWV0cnkvYXBpJztcbmltcG9ydCB7IFJlYWRhYmxlU3BhbiwgVGltZWRFdmVudCB9IGZyb20gJ0BvcGVudGVsZW1ldHJ5L3Nkay10cmFjZS1iYXNlJztcbmltcG9ydCB7IE9UTFBUcmFjZUV4cG9ydGVyIH0gZnJvbSAnQG9wZW50ZWxlbWV0cnkvZXhwb3J0ZXItdHJhY2Utb3RscC1ncnBjJztcbmltcG9ydCB7IE1ldGFkYXRhIH0gZnJvbSAnQGdycGMvZ3JwYy1qcyc7XG5cbmV4cG9ydCBjbGFzcyBHcnBjVHJhY2VFeHBvcnRlciBpbXBsZW1lbnRzIFRyYWNlRXhwb3J0ZXIge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdXJsOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSByZWFkb25seSBleHBvcnRlcjogT1RMUFRyYWNlRXhwb3J0ZXI7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgZXhwb3J0ZXJPVExQRW5kcG9pbnQ6IHN0cmluZyxcbiAgICAgICAgZXhwb3J0ZXJPVExQSGVhZGVyczogTWFwPHN0cmluZywgc3RyaW5nPlxuICAgICkge1xuICAgICAgICB0aGlzLnVybCA9IGV4cG9ydGVyT1RMUEVuZHBvaW50O1xuICAgICAgICB0aGlzLmV4cG9ydGVyID0gbmV3IE9UTFBUcmFjZUV4cG9ydGVyKHtcbiAgICAgICAgICAgIHVybDogdGhpcy51cmwsXG4gICAgICAgICAgICBtZXRhZGF0YTogdGhpcy5faGVhZGVyc1RvTWV0YWRhdGEoZXhwb3J0ZXJPVExQSGVhZGVycyksXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2hlYWRlcnNUb01ldGFkYXRhKFxuICAgICAgICBleHBvcnRlck9UTFBIZWFkZXJzOiBNYXA8c3RyaW5nLCBzdHJpbmc+XG4gICAgKTogTWV0YWRhdGEge1xuICAgICAgICBjb25zdCBtZXRhZGF0YTogTWV0YWRhdGEgPSBuZXcgTWV0YWRhdGEoKTtcbiAgICAgICAgaWYgKGV4cG9ydGVyT1RMUEhlYWRlcnMpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgZW50cnkgb2YgZXhwb3J0ZXJPVExQSGVhZGVycy5lbnRyaWVzKCkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBoZWFkZXJOYW1lOiBzdHJpbmcgPSBlbnRyeVswXTtcbiAgICAgICAgICAgICAgICBjb25zdCBoZWFkZXJWYWx1ZTogc3RyaW5nID0gZW50cnlbMV07XG4gICAgICAgICAgICAgICAgbWV0YWRhdGEuc2V0KGhlYWRlck5hbWUsIGhlYWRlclZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbWV0YWRhdGE7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfbmFub3NlY29uZHNUb0hyVGltZShuYW5vczogbnVtYmVyKTogSHJUaW1lIHtcbiAgICAgICAgLy8gU2luY2Ugd2UgbG9zdCBwcmVjaXNpb24gYXQgbmFub3NlY29uZHMgbGV2ZWwsXG4gICAgICAgIC8vIHdlIGNvbnZlcnQgbmFub3NlY29uZHMgdG8gbWlsbGlzZWNvbmRzIGZpcnN0LlxuICAgICAgICBjb25zdCBtaWNyb3M6IG51bWJlciA9IE1hdGguZmxvb3IobmFub3MgLyAxXzAwMCk7XG4gICAgICAgIGNvbnN0IHNlY29uZHNEZWNpbWFsOiBudW1iZXIgPSBtaWNyb3MgLyAxXzAwMF8wMDA7XG4gICAgICAgIGNvbnN0IHNlY29uZHM6IG51bWJlciA9IE1hdGguZmxvb3IobWljcm9zIC8gMV8wMDBfMDAwKTtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHNlY29uZHMsXG4gICAgICAgICAgICBNYXRoLmZsb29yKE51bWJlcigoc2Vjb25kc0RlY2ltYWwgLSBzZWNvbmRzKS50b0ZpeGVkKDYpKSAqIDFlOSksXG4gICAgICAgIF07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfbmFub3NlY29uZHNEaWZmVG9IclRpbWUobmFub3MxOiBudW1iZXIsIG5hbm9zMjogbnVtYmVyKTogSHJUaW1lIHtcbiAgICAgICAgLy8gU2luY2Ugd2UgbG9zdCBwcmVjaXNpb24gYXQgbmFub3NlY29uZHMgbGV2ZWwsXG4gICAgICAgIC8vIHdlIGNvbnZlcnQgbmFub3NlY29uZHMgdG8gbWlsbGlzZWNvbmRzIGZpcnN0LlxuICAgICAgICBjb25zdCBtaWNyb3MxOiBudW1iZXIgPSBNYXRoLmZsb29yKG5hbm9zMSAvIDFfMDAwKTtcbiAgICAgICAgY29uc3QgbWljcm9zMjogbnVtYmVyID0gTWF0aC5mbG9vcihuYW5vczIgLyAxXzAwMCk7XG4gICAgICAgIGNvbnN0IGRpZmZNaWNyb3M6IG51bWJlciA9IG1pY3JvczEgLSBtaWNyb3MyO1xuICAgICAgICBjb25zdCBkaWZmTmFub3M6IG51bWJlciA9IGRpZmZNaWNyb3MgKiAxXzAwMDtcbiAgICAgICAgcmV0dXJuIHRoaXMuX25hbm9zZWNvbmRzVG9IclRpbWUoZGlmZk5hbm9zKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF90b0F0dHJpYnV0ZXMoYXR0cmlidXRlTGlzdDogQXR0cmlidXRlW10pOiBBdHRyaWJ1dGVzIHtcbiAgICAgICAgY29uc3QgYXR0cmlidXRlczogQXR0cmlidXRlcyA9IHt9O1xuICAgICAgICBmb3IgKGNvbnN0IGF0dHJpYnV0ZSBvZiBhdHRyaWJ1dGVMaXN0KSB7XG4gICAgICAgICAgICBsZXQgYXR0cmlidXRlVmFsOiBBdHRyaWJ1dGVWYWx1ZSB8IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIGlmIChhdHRyaWJ1dGUudmFsdWUuc3RyaW5nVmFsdWUgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGF0dHJpYnV0ZVZhbCA9IGF0dHJpYnV0ZS52YWx1ZS5zdHJpbmdWYWx1ZTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoYXR0cmlidXRlLnZhbHVlLmludFZhbHVlICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICBhdHRyaWJ1dGVWYWwgPSBhdHRyaWJ1dGUudmFsdWUuaW50VmFsdWU7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGF0dHJpYnV0ZS52YWx1ZS5kb3VibGVWYWx1ZSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgYXR0cmlidXRlVmFsID0gYXR0cmlidXRlLnZhbHVlLmRvdWJsZVZhbHVlO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChhdHRyaWJ1dGUudmFsdWUuYm9vbFZhbHVlICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICBhdHRyaWJ1dGVWYWwgPSBhdHRyaWJ1dGUudmFsdWUuYm9vbFZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYXR0cmlidXRlc1thdHRyaWJ1dGUua2V5XSA9IGF0dHJpYnV0ZVZhbDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYXR0cmlidXRlcztcbiAgICB9XG5cbiAgICBwcml2YXRlIF9jcmVhdGVSZWFkYWJsZVNwYW5zKFxuICAgICAgICBtZXRhZGF0YTogVHJhY2VNZXRhZGF0YSxcbiAgICAgICAgc3BhbnM6IFNwYW5bXVxuICAgICk6IFJlYWRhYmxlU3BhbltdIHtcbiAgICAgICAgY29uc3QgcmVhZGFibGVTcGFuczogUmVhZGFibGVTcGFuW10gPSBbXTtcbiAgICAgICAgZm9yIChjb25zdCBzcGFuIG9mIHNwYW5zKSB7XG4gICAgICAgICAgICByZWFkYWJsZVNwYW5zLnB1c2goe1xuICAgICAgICAgICAgICAgIG5hbWU6IHNwYW4ubmFtZSxcbiAgICAgICAgICAgICAgICBraW5kOiBTcGFuS2luZFtcbiAgICAgICAgICAgICAgICAgICAgU3BhbktpbmRbc3Bhbi5raW5kLnZhbHVlT2YoKSAtIDFdIGFzIGtleW9mIHR5cGVvZiBTcGFuS2luZFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgcGFyZW50U3BhbklkOiBzcGFuLnBhcmVudFNwYW5JZCxcbiAgICAgICAgICAgICAgICBzcGFuQ29udGV4dDogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhY2VJZDogc3Bhbi50cmFjZUlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3BhbklkOiBzcGFuLnNwYW5JZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYWNlRmxhZ3M6IFNBTVBMRURfVFJBQ0VfRkxBRyxcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHN0YXJ0VGltZTogdGhpcy5fbmFub3NlY29uZHNUb0hyVGltZShzcGFuLnN0YXJ0VGltZVVuaXhOYW5vKSxcbiAgICAgICAgICAgICAgICBlbmRUaW1lOiB0aGlzLl9uYW5vc2Vjb25kc1RvSHJUaW1lKHNwYW4uZW5kVGltZVVuaXhOYW5vKSxcbiAgICAgICAgICAgICAgICBkdXJhdGlvbjogdGhpcy5fbmFub3NlY29uZHNEaWZmVG9IclRpbWUoXG4gICAgICAgICAgICAgICAgICAgIHNwYW4uZW5kVGltZVVuaXhOYW5vLFxuICAgICAgICAgICAgICAgICAgICBzcGFuLnN0YXJ0VGltZVVuaXhOYW5vXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICBlbmRlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBzdGF0dXM6IHNwYW4uc3RhdHVzLFxuICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXM6IHRoaXMuX3RvQXR0cmlidXRlcyhzcGFuLmF0dHJpYnV0ZXMpLFxuICAgICAgICAgICAgICAgIHJlc291cmNlOiB7XG4gICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFtSRVNPVVJDRV9BVFRSSUJVVEVTLlNFUlZJQ0VfTkFNRV06XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0YWRhdGEuc2VydmljZU5hbWUsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBpbnN0cnVtZW50YXRpb25MaWJyYXJ5OiB7XG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IE9URUxfQ0xJX05BTUUsXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb246IE9URUxfQ0xJX1ZFUlNJT04sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBldmVudHM6IFtdIGFzIFRpbWVkRXZlbnRbXSxcbiAgICAgICAgICAgICAgICBsaW5rczogW10gYXMgTGlua1tdLFxuICAgICAgICAgICAgICAgIGRyb3BwZWRBdHRyaWJ1dGVzQ291bnQ6IDAsXG4gICAgICAgICAgICAgICAgZHJvcHBlZEV2ZW50c0NvdW50OiAwLFxuICAgICAgICAgICAgICAgIGRyb3BwZWRMaW5rc0NvdW50OiAwLFxuICAgICAgICAgICAgfSBhcyBSZWFkYWJsZVNwYW4pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZWFkYWJsZVNwYW5zO1xuICAgIH1cblxuICAgIGFzeW5jIGV4cG9ydChtZXRhZGF0YTogVHJhY2VNZXRhZGF0YSwgc3BhbnM6IFNwYW5bXSk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCByZWFkYWJsZVNwYW5zOiBSZWFkYWJsZVNwYW5bXSA9IHRoaXMuX2NyZWF0ZVJlYWRhYmxlU3BhbnMoXG4gICAgICAgICAgICBtZXRhZGF0YSxcbiAgICAgICAgICAgIHNwYW5zXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShcbiAgICAgICAgICAgIChyZXM6IChyZXN1bHQ6IHZvaWQpID0+IHZvaWQsIHJlajogKHJlYXNvbjogYW55KSA9PiB2b2lkKTogdm9pZCA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5leHBvcnRlci5leHBvcnQocmVhZGFibGVTcGFucywgKHJlc3VsdDogRXhwb3J0UmVzdWx0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQuZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlaihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBGYWlsZWQgcmVzcG9uc2UgKGVycm9yPSR7cmVzdWx0LmVycm9yfSwgc3RhdHVzIGNvZGU9JHtyZXN1bHQuY29kZX0pIGZyb20gZXhwb3J0ZXIgT1RMUCBHUlBDIGVuZHBvaW50ICR7dGhpcy51cmx9YFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0LmNvZGUgPT09IEV4cG9ydFJlc3VsdENvZGUuRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVqKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgRmFpbGVkIHJlc3BvbnNlIChzdGF0dXMgY29kZT0ke3Jlc3VsdC5jb2RlfSkgZnJvbSBleHBvcnRlciBPVExQIEdSUEMgZW5kcG9pbnQgJHt0aGlzLnVybH1gXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXMoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH1cbn1cbiJdfQ== |
| export * from './GrpcTraceExporter'; |
| "use strict"; | ||
| var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { | ||
| if (k2 === undefined) k2 = k; | ||
| var desc = Object.getOwnPropertyDescriptor(m, k); | ||
| if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { | ||
| desc = { enumerable: true, get: function() { return m[k]; } }; | ||
| } | ||
| Object.defineProperty(o, k2, desc); | ||
| }) : (function(o, m, k, k2) { | ||
| if (k2 === undefined) k2 = k; | ||
| o[k2] = m[k]; | ||
| })); | ||
| var __exportStar = (this && this.__exportStar) || function(m, exports) { | ||
| for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); | ||
| }; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| __exportStar(require("./GrpcTraceExporter"), exports); | ||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZXhwb3J0L2dycGMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHNEQUFvQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vR3JwY1RyYWNlRXhwb3J0ZXInO1xuIl19 |
+7
-0
@@ -6,2 +6,9 @@ # Change Log | ||
| <a name="1.1.2"></a> | ||
| # 1.1.2 (2023-07-16) | ||
| ### Fixes | ||
| * Fix client blocking by server on trace request export | ||
| <a name="1.1.1"></a> | ||
@@ -8,0 +15,0 @@ # 1.1.1 (2023-07-15) |
@@ -6,3 +6,2 @@ import { CommandExecutor } from '../CommandExecutor'; | ||
| private exporterOTLPEndpoint; | ||
| private exporterOTLPTracesEndpoint; | ||
| private exporterOTLPProtocol; | ||
@@ -34,3 +33,2 @@ private exporterOTLPHeaders; | ||
| private _checkOptions; | ||
| private _resolveExporterOTLPEndpoint; | ||
| private _resolveSpanStartTimeNanos; | ||
@@ -40,7 +38,4 @@ private _resolveSpanEndTimeNanos; | ||
| private _createSpan; | ||
| private _createScopeSpans; | ||
| private _createResourceSpans; | ||
| private _createTraceExporter; | ||
| private _createTraceRequest; | ||
| private _exportTraceRequest; | ||
| private _exportSpans; | ||
| private _generateTraceParent; | ||
@@ -47,0 +42,0 @@ commandName(): string; |
@@ -28,5 +28,4 @@ "use strict"; | ||
| const exit_1 = require("../../exit"); | ||
| const Span_1 = require("../../domain/Span"); | ||
| const domain_1 = require("../../domain"); | ||
| const utils_1 = require("../../utils"); | ||
| const constants_1 = require("../../constants"); | ||
| const export_1 = require("../../export"); | ||
@@ -53,12 +52,15 @@ const logger = __importStar(require("../../logger")); | ||
| this.exporterOTLPEndpoint = options.endpoint; | ||
| this.exporterOTLPTracesEndpoint = options.tracesEndpoint; | ||
| this.exporterOTLPProtocol = options.protocol; | ||
| this.exporterOTLPHeaders = (0, utils_1.parseKeyValue)(options.headers); | ||
| this.traceParent = !options.traceparentDisable | ||
| ? (options.traceparent || process.env.TRACEPARENT) | ||
| ? options.traceparent || process.env.TRACEPARENT | ||
| : undefined; | ||
| this.traceParentPrint = options.traceparentPrint; | ||
| this.traceId = options.traceId || this._tryToGetTraceIdFromTraceParent(this.traceParent); | ||
| this.traceId = | ||
| options.traceId || | ||
| this._tryToGetTraceIdFromTraceParent(this.traceParent); | ||
| this.spanId = options.spanId; | ||
| this.parentSpanId = options.parentSpanId || this._tryToGetParentSpanIdFromTraceParent(this.traceParent); | ||
| this.parentSpanId = | ||
| options.parentSpanId || | ||
| this._tryToGetParentSpanIdFromTraceParent(this.traceParent); | ||
| this.spanName = options.name; | ||
@@ -81,7 +83,2 @@ this.serviceName = options.serviceName; | ||
| _checkOptions() { | ||
| if (!this.exporterOTLPEndpoint && !this.exporterOTLPTracesEndpoint) { | ||
| logger.error('One of the OTEL Exporter OTLP endpoint ' + | ||
| 'or OTEL Exporter OTLP traces endpoint configurations must be specified!'); | ||
| (0, exit_1.exit)(1); | ||
| } | ||
| if (this.traceParent && !(0, utils_1.validateTraceParent)(this.traceParent)) { | ||
@@ -124,6 +121,2 @@ logger.error(`Invalid trace parent: ${this.traceParent}!`); | ||
| } | ||
| _resolveExporterOTLPEndpoint() { | ||
| return (this.exporterOTLPTracesEndpoint || | ||
| this.exporterOTLPEndpoint + '/v1/traces'); | ||
| } | ||
| _resolveSpanStartTimeNanos() { | ||
@@ -175,9 +168,9 @@ if (this.spanStartTimeNanos) { | ||
| const name = this.spanName; | ||
| const kind = Span_1.SpanKind[this.spanKind]; | ||
| const kind = domain_1.SpanKind[this.spanKind]; | ||
| const startTimeUnixNano = this._resolveSpanStartTimeNanos(); | ||
| const endTimeUnixNano = this._resolveSpanEndTimeNanos(); | ||
| const statusCode = Span_1.SpanStatusCode[this.spanStatusCode]; | ||
| const statusCode = domain_1.SpanStatusCode[this.spanStatusCode]; | ||
| const statusMessage = this.spanStatusMessage; | ||
| const status = { | ||
| code: statusCode || Span_1.SpanStatusCode.UNSET, | ||
| code: statusCode || domain_1.SpanStatusCode.UNSET, | ||
| message: statusMessage, | ||
@@ -200,32 +193,2 @@ }; | ||
| } | ||
| _createScopeSpans() { | ||
| return [ | ||
| { | ||
| scope: { | ||
| name: constants_1.OTEL_CLI_NAME, | ||
| version: constants_1.OTEL_CLI_VERSION, | ||
| attributes: [], | ||
| }, | ||
| spans: [this._createSpan()], | ||
| }, | ||
| ]; | ||
| } | ||
| _createResourceSpans() { | ||
| return [ | ||
| { | ||
| resource: { | ||
| attributes: [ | ||
| { | ||
| key: constants_1.RESOURCE_ATTRIBUTES.SERVICE_NAME, | ||
| value: { | ||
| stringValue: this.serviceName, | ||
| }, | ||
| }, | ||
| ], | ||
| droppedAttributesCount: 0, | ||
| }, | ||
| scopeSpans: this._createScopeSpans(), | ||
| }, | ||
| ]; | ||
| } | ||
| _createTraceExporter() { | ||
@@ -236,21 +199,16 @@ if (this.serverPort) { | ||
| else { | ||
| return (0, export_1.createTraceExporter)(this.exporterOTLPProtocol, this._resolveExporterOTLPEndpoint(), this.exporterOTLPHeaders); | ||
| return (0, export_1.createTraceExporter)(this.exporterOTLPProtocol, this.exporterOTLPEndpoint, this.exporterOTLPHeaders); | ||
| } | ||
| } | ||
| _createTraceRequest() { | ||
| return { | ||
| resourceSpans: this._createResourceSpans(), | ||
| }; | ||
| } | ||
| async _exportTraceRequest(traceRequest) { | ||
| async _exportSpans(metadata, spans) { | ||
| const traceExporter = this._createTraceExporter(); | ||
| try { | ||
| if (logger.isDebugEnabled()) { | ||
| logger.debug(`Exporting trace request:`, traceRequest); | ||
| logger.debug(`Exporting spans:`, spans); | ||
| } | ||
| await traceExporter.export(traceRequest); | ||
| logger.debug('Exported trace request'); | ||
| await traceExporter.export(metadata, spans); | ||
| logger.debug('Exported spans'); | ||
| } | ||
| catch (err) { | ||
| logger.error('Unable to export trace request', err); | ||
| logger.error('Unable to export spans', err); | ||
| } | ||
@@ -269,9 +227,7 @@ } | ||
| .default(process.env.OTEL_CLI_VERBOSE && | ||
| process.env.OTEL_CLI_VERBOSE.toLowerCase() === 'true')) | ||
| process.env.OTEL_CLI_VERBOSE.toLowerCase() === | ||
| 'true')) | ||
| .addOption(new commander_1.Option('-e, --endpoint <url>', 'OTEL Exporter OTLP endpoint') | ||
| .makeOptionMandatory(false) | ||
| .makeOptionMandatory(true) | ||
| .default(process.env.OTEL_EXPORTER_OTLP_ENDPOINT)) | ||
| .addOption(new commander_1.Option('-te, --traces-endpoint <url>', 'OTEL Exporter OTLP traces endpoint') | ||
| .makeOptionMandatory(false) | ||
| .default(process.env.OTEL_EXPORTER_OTLP_TRACES_ENDPOINT)) | ||
| .addOption(new commander_1.Option('-p, --protocol <protocol>', 'OTEL Exporter OTLP protocol') | ||
@@ -292,7 +248,9 @@ .makeOptionMandatory(false) | ||
| .default(process.env.OTEL_CLI_TRACEPARENT_DISABLE && | ||
| process.env.OTEL_CLI_TRACEPARENT_DISABLE.toLowerCase() === 'true')) | ||
| process.env.OTEL_CLI_TRACEPARENT_DISABLE.toLowerCase() === | ||
| 'true')) | ||
| .addOption(new commander_1.Option('-tpp, --traceparent-print', 'Print traceparent header in W3C trace context format for the exported span') | ||
| .makeOptionMandatory(false) | ||
| .default(process.env.OTEL_CLI_TRACEPARENT_PRINT && | ||
| process.env.OTEL_CLI_TRACEPARENT_PRINT.toLowerCase() === 'true')) | ||
| process.env.OTEL_CLI_TRACEPARENT_PRINT.toLowerCase() === | ||
| 'true')) | ||
| .addOption(new commander_1.Option('-t, --trace-id <id>', 'Trace id') | ||
@@ -304,6 +262,4 @@ .makeOptionMandatory(false) | ||
| .default((0, utils_1.generateSpanId)())) | ||
| .addOption(new commander_1.Option('-p, --parent-span-id <id>', 'Parent span id') | ||
| .makeOptionMandatory(false)) | ||
| .addOption(new commander_1.Option('-n, --name <name>', 'Span name') | ||
| .makeOptionMandatory(true)) | ||
| .addOption(new commander_1.Option('-p, --parent-span-id <id>', 'Parent span id').makeOptionMandatory(false)) | ||
| .addOption(new commander_1.Option('-n, --name <name>', 'Span name').makeOptionMandatory(true)) | ||
| .addOption(new commander_1.Option('-sn, --service-name <name>', 'Service name') | ||
@@ -315,28 +271,18 @@ .makeOptionMandatory(true) | ||
| .makeOptionMandatory(false) | ||
| .default(Span_1.SpanKind[Span_1.SpanKind.INTERNAL]) | ||
| .choices(Object.keys(Span_1.SpanKind).filter((o) => isNaN(Number(o))))) | ||
| .addOption(new commander_1.Option('--start-time-nanos <nanos>', 'Start time in nanoseconds') | ||
| .makeOptionMandatory(false)) | ||
| .addOption(new commander_1.Option('--start-time-micros <micros>', 'Start time in microseconds') | ||
| .makeOptionMandatory(false)) | ||
| .addOption(new commander_1.Option('--start-time-millis <millis>', 'Start time in milliseconds') | ||
| .makeOptionMandatory(false)) | ||
| .addOption(new commander_1.Option('--start-time-secs <secs>', 'Start time in seconds') | ||
| .makeOptionMandatory(false)) | ||
| .addOption(new commander_1.Option('--end-time-nanos <nanos>', 'End time in nanoseconds') | ||
| .makeOptionMandatory(false)) | ||
| .addOption(new commander_1.Option('--end-time-micros <micros>', 'End time in microseconds') | ||
| .makeOptionMandatory(false)) | ||
| .addOption(new commander_1.Option('--end-time-millis <millis>', 'End time in milliseconds') | ||
| .makeOptionMandatory(false)) | ||
| .addOption(new commander_1.Option('--end-time-secs <secs>', 'End time in seconds') | ||
| .makeOptionMandatory(false)) | ||
| .default(domain_1.SpanKind[domain_1.SpanKind.INTERNAL]) | ||
| .choices(Object.keys(domain_1.SpanKind).filter((o) => isNaN(Number(o))))) | ||
| .addOption(new commander_1.Option('--start-time-nanos <nanos>', 'Start time in nanoseconds').makeOptionMandatory(false)) | ||
| .addOption(new commander_1.Option('--start-time-micros <micros>', 'Start time in microseconds').makeOptionMandatory(false)) | ||
| .addOption(new commander_1.Option('--start-time-millis <millis>', 'Start time in milliseconds').makeOptionMandatory(false)) | ||
| .addOption(new commander_1.Option('--start-time-secs <secs>', 'Start time in seconds').makeOptionMandatory(false)) | ||
| .addOption(new commander_1.Option('--end-time-nanos <nanos>', 'End time in nanoseconds').makeOptionMandatory(false)) | ||
| .addOption(new commander_1.Option('--end-time-micros <micros>', 'End time in microseconds').makeOptionMandatory(false)) | ||
| .addOption(new commander_1.Option('--end-time-millis <millis>', 'End time in milliseconds').makeOptionMandatory(false)) | ||
| .addOption(new commander_1.Option('--end-time-secs <secs>', 'End time in seconds').makeOptionMandatory(false)) | ||
| .addOption(new commander_1.Option('-sc --status-code <code>', 'Status code') | ||
| .makeOptionMandatory(false) | ||
| .default(Span_1.SpanStatusCode[Span_1.SpanStatusCode.UNSET]) | ||
| .choices(Object.keys(Span_1.SpanStatusCode).filter((o) => isNaN(Number(o))))) | ||
| .addOption(new commander_1.Option('-sm --status-message <message>', 'Status message') | ||
| .makeOptionMandatory(false)) | ||
| .addOption(new commander_1.Option('-a --attributes <key-value-pairs...>', 'Span attributes as space seperated key-value pairs (key1=value1 key2=value2 key3=value3)') | ||
| .makeOptionMandatory(false)) | ||
| .default(domain_1.SpanStatusCode[domain_1.SpanStatusCode.UNSET]) | ||
| .choices(Object.keys(domain_1.SpanStatusCode).filter((o) => isNaN(Number(o))))) | ||
| .addOption(new commander_1.Option('-sm --status-message <message>', 'Status message').makeOptionMandatory(false)) | ||
| .addOption(new commander_1.Option('-a --attributes <key-value-pairs...>', 'Span attributes as space seperated key-value pairs (key1=value1 key2=value2 key3=value3)').makeOptionMandatory(false)) | ||
| .addOption(new commander_1.Option('-sp, --server-port <port>', 'OTEL CLI server port for communicating over to export traces asynchronously in background') | ||
@@ -349,4 +295,7 @@ .makeOptionMandatory(false) | ||
| this._checkOptions(); | ||
| const traceRequest = this._createTraceRequest(); | ||
| await this._exportTraceRequest(traceRequest); | ||
| const metadata = { | ||
| serviceName: this.serviceName, | ||
| }; | ||
| const spans = [this._createSpan()]; | ||
| await this._exportSpans(metadata, spans); | ||
| if (this.traceParentPrint) { | ||
@@ -358,2 +307,2 @@ console.log(this._generateTraceParent()); | ||
| exports.ExportCommandExecutor = ExportCommandExecutor; | ||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXhwb3J0Q29tbWFuZEV4ZWN1dG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmQvZXhwb3J0L0V4cG9ydENvbW1hbmRFeGVjdXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLHFDQUFrQztBQUNsQyw0Q0FBK0U7QUFDL0UsdUNBU3FCO0FBSXJCLCtDQUl5QjtBQUV6Qix5Q0FBb0g7QUFDcEgscURBQXVDO0FBQ3ZDLG9DQUFvQztBQUVwQyx5Q0FBMEQ7QUFFMUQsTUFBYSxxQkFBcUI7SUEyQnRCLCtCQUErQixDQUFDLFdBQW1CO1FBQ3ZELElBQUksV0FBVyxFQUFFO1lBQ2IsT0FBTyxJQUFBLHFDQUE2QixFQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQ3JEO1FBQ0QsT0FBTyxTQUFTLENBQUM7SUFDckIsQ0FBQztJQUVPLG9DQUFvQyxDQUFDLFdBQW1CO1FBQzVELElBQUksV0FBVyxFQUFFO1lBQ2IsT0FBTyxJQUFBLG9DQUE0QixFQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQ3BEO1FBQ0QsT0FBTyxTQUFTLENBQUM7SUFDckIsQ0FBQztJQUVPLGFBQWEsQ0FBQyxPQUFxQjtRQUN2QyxJQUFJLENBQUMsY0FBYyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUM7UUFDdEMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFNUMsSUFBSSxDQUFDLG9CQUFvQixHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUM7UUFDN0MsSUFBSSxDQUFDLDBCQUEwQixHQUFHLE9BQU8sQ0FBQyxjQUFjLENBQUM7UUFDekQsSUFBSSxDQUFDLG9CQUFvQixHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUM7UUFDN0MsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUEscUJBQWEsRUFBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFMUQsSUFBSSxDQUFDLFdBQVcs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dG9yJztcbmltcG9ydCB7IGV4aXQgfSBmcm9tICcuLi8uLi9leGl0JztcbmltcG9ydCB7IFNwYW4sIFNwYW5LaW5kLCBTcGFuU3RhdHVzLCBTcGFuU3RhdHVzQ29kZSB9IGZyb20gJy4uLy4uL2RvbWFpbi9TcGFuJztcbmltcG9ydCB7XG4gICAgZXh0cmFjdFNwYW5JZEZyb21UcmFjZVBhcmVudCxcbiAgICBleHRyYWN0VHJhY2VJZEZyb21UcmFjZVBhcmVudCxcbiAgICBmbGF0dGVuQXR0cmlidXRlcyxcbiAgICBnZW5lcmF0ZVNwYW5JZCxcbiAgICBwYXJzZUtleVZhbHVlLFxuICAgIHZhbGlkYXRlU3BhbklkLFxuICAgIHZhbGlkYXRlVHJhY2VJZCxcbiAgICB2YWxpZGF0ZVRyYWNlUGFyZW50LFxufSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgeyBBdHRyaWJ1dGUgfSBmcm9tICcuLi8uLi9kb21haW4vQXR0cmlidXRlJztcbmltcG9ydCB7IFNjb3BlU3BhbnMgfSBmcm9tICcuLi8uLi9kb21haW4vU2NvcGVTcGFucyc7XG5pbXBvcnQgeyBSZXNvdXJjZVNwYW5zIH0gZnJvbSAnLi4vLi4vZG9tYWluL1Jlc291cmNlU3BhbnMnO1xuaW1wb3J0IHtcbiAgICBPVEVMX0NMSV9OQU1FLFxuICAgIE9URUxfQ0xJX1ZFUlNJT04sXG4gICAgUkVTT1VSQ0VfQVRUUklCVVRFUyxcbn0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IFRyYWNlUmVxdWVzdCB9IGZyb20gJy4uLy4uL2RvbWFpbi9UcmFjZVJlcXVlc3QnO1xuaW1wb3J0IHsgY3JlYXRlU2VydmVyVHJhY2VFeHBvcnRlciwgY3JlYXRlVHJhY2VFeHBvcnRlciwgRXhwb3J0ZXJPVExQUHJvdG9jb2xzLCBUcmFjZUV4cG9ydGVyIH0gZnJvbSAnLi4vLi4vZXhwb3J0JztcbmltcG9ydCAqIGFzIGxvZ2dlciBmcm9tICcuLi8uLi9sb2dnZXInO1xuaW1wb3J0IHsgQ29tbWFuZHMgfSBmcm9tICcuLi9pbmRleCc7XG5cbmltcG9ydCB7IENvbW1hbmQsIE9wdGlvbiwgT3B0aW9uVmFsdWVzIH0gZnJvbSAnY29tbWFuZGVyJztcblxuZXhwb3J0IGNsYXNzIEV4cG9ydENvbW1hbmRFeGVjdXRvciBpbXBsZW1lbnRzIENvbW1hbmRFeGVjdXRvciB7XG4gICAgcHJpdmF0ZSB2ZXJib3NlRW5hYmxlZDogYm9vbGVhbjtcbiAgICBwcml2YXRlIGV4cG9ydGVyT1RMUEVuZHBvaW50OiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBleHBvcnRlck9UTFBUcmFjZXNFbmRwb2ludDogc3RyaW5nO1xuICAgIHByaXZhdGUgZXhwb3J0ZXJPVExQUHJvdG9jb2w6IHN0cmluZztcbiAgICBwcml2YXRlIGV4cG9ydGVyT1RMUEhlYWRlcnM6IE1hcDxzdHJpbmcsIHN0cmluZz47XG4gICAgcHJpdmF0ZSB0cmFjZVBhcmVudDogc3RyaW5nO1xuICAgIHByaXZhdGUgdHJhY2VQYXJlbnRQcmludDogYm9vbGVhbjtcbiAgICBwcml2YXRlIHRyYWNlSWQ6IHN0cmluZztcbiAgICBwcml2YXRlIHNwYW5JZDogc3RyaW5nO1xuICAgIHByaXZhdGUgcGFyZW50U3BhbklkOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBzcGFuTmFtZTogc3RyaW5nO1xuICAgIHByaXZhdGUgc2VydmljZU5hbWU6IHN0cmluZztcbiAgICBwcml2YXRlIHNwYW5LaW5kOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBzcGFuU3RhcnRUaW1lTmFub3M6IG51bWJlcjtcbiAgICBwcml2YXRlIHNwYW5TdGFydFRpbWVNaWNyb3M6IG51bWJlcjtcbiAgICBwcml2YXRlIHNwYW5TdGFydFRpbWVNaWxsaXM6IG51bWJlcjtcbiAgICBwcml2YXRlIHNwYW5TdGFydFRpbWVTZWNzOiBudW1iZXI7XG4gICAgcHJpdmF0ZSBzcGFuRW5kVGltZU5hbm9zOiBudW1iZXI7XG4gICAgcHJpdmF0ZSBzcGFuRW5kVGltZU1pY3JvczogbnVtYmVyO1xuICAgIHByaXZhdGUgc3BhbkVuZFRpbWVNaWxsaXM6IG51bWJlcjtcbiAgICBwcml2YXRlIHNwYW5FbmRUaW1lU2VjczogbnVtYmVyO1xuICAgIHByaXZhdGUgc3BhblN0YXR1c0NvZGU6IHN0cmluZztcbiAgICBwcml2YXRlIHNwYW5TdGF0dXNNZXNzYWdlOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBzcGFuQXR0cmlidXRlczogTWFwPHN0cmluZywgc3RyaW5nPjtcbiAgICBwcml2YXRlIHNlcnZlclBvcnQ6IG51bWJlcjtcblxuICAgIHByaXZhdGUgX3RyeVRvR2V0VHJhY2VJZEZyb21UcmFjZVBhcmVudCh0cmFjZVBhcmVudDogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgaWYgKHRyYWNlUGFyZW50KSB7XG4gICAgICAgICAgICByZXR1cm4gZXh0cmFjdFRyYWNlSWRGcm9tVHJhY2VQYXJlbnQodHJhY2VQYXJlbnQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfdHJ5VG9HZXRQYXJlbnRTcGFuSWRGcm9tVHJhY2VQYXJlbnQodHJhY2VQYXJlbnQ6IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGlmICh0cmFjZVBhcmVudCkge1xuICAgICAgICAgICAgcmV0dXJuIGV4dHJhY3RTcGFuSWRGcm9tVHJhY2VQYXJlbnQodHJhY2VQYXJlbnQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfcGFyc2VPcHRpb25zKG9wdGlvbnM6IE9wdGlvblZhbHVlcyk6IHZvaWQge1xuICAgICAgICB0aGlzLnZlcmJvc2VFbmFibGVkID0gb3B0aW9ucy52ZXJib3NlO1xuICAgICAgICBsb2dnZXIuc2V0RGVidWdFbmFibGVkKHRoaXMudmVyYm9zZUVuYWJsZWQpO1xuXG4gICAgICAgIHRoaXMuZXhwb3J0ZXJPVExQRW5kcG9pbnQgPSBvcHRpb25zLmVuZHBvaW50O1xuICAgICAgICB0aGlzLmV4cG9ydGVyT1RMUFRyYWNlc0VuZHBvaW50ID0gb3B0aW9ucy50cmFjZXNFbmRwb2ludDtcbiAgICAgICAgdGhpcy5leHBvcnRlck9UTFBQcm90b2NvbCA9IG9wdGlvbnMucHJvdG9jb2w7XG4gICAgICAgIHRoaXMuZXhwb3J0ZXJPVExQSGVhZGVycyA9IHBhcnNlS2V5VmFsdWUob3B0aW9ucy5oZWFkZXJzKTtcblxuICAgICAgICB0aGlzLnRyYWNlUGFyZW50ID0gIW9wdGlvbnMudHJhY2VwYXJlbnREaXNhYmxlXG4gICAgICAgICAgICA/IChvcHRpb25zLnRyYWNlcGFyZW50IHx8IHByb2Nlc3MuZW52LlRSQUNFUEFSRU5UKVxuICAgICAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMudHJhY2VQYXJlbnRQcmludCA9IG9wdGlvbnMudHJhY2VwYXJlbnRQcmludDtcbiAgICAgICAgdGhpcy50cmFjZUlkID0gb3B0aW9ucy50cmFjZUlkIHx8IHRoaXMuX3RyeVRvR2V0VHJhY2VJZEZyb21UcmFjZVBhcmVudCh0aGlzLnRyYWNlUGFyZW50KTtcbiAgICAgICAgdGhpcy5zcGFuSWQgPSBvcHRpb25zLnNwYW5JZDtcbiAgICAgICAgdGhpcy5wYXJlbnRTcGFuSWQgPSBvcHRpb25zLnBhcmVudFNwYW5JZCB8fCB0aGlzLl90cnlUb0dldFBhcmVudFNwYW5JZEZyb21UcmFjZVBhcmVudCh0aGlzLnRyYWNlUGFyZW50KTtcbiAgICAgICAgdGhpcy5zcGFuTmFtZSA9IG9wdGlvbnMubmFtZTtcbiAgICAgICAgdGhpcy5zZXJ2aWNlTmFtZSA9IG9wdGlvbnMuc2VydmljZU5hbWU7XG4gICAgICAgIHRoaXMuc3BhbktpbmQgPSBvcHRpb25zLmtpbmQ7XG4gICAgICAgIHRoaXMuc3BhblN0YXJ0VGltZU5hbm9zID0gcGFyc2VJbnQob3B0aW9ucy5zdGFydFRpbWVOYW5vcyk7XG4gICAgICAgIHRoaXMuc3BhblN0YXJ0VGltZU1pY3JvcyA9IHBhcnNlSW50KG9wdGlvbnMuc3RhcnRUaW1lTWljcm9zKTtcbiAgICAgICAgdGhpcy5zcGFuU3RhcnRUaW1lTWlsbGlzID0gcGFyc2VJbnQob3B0aW9ucy5zdGFydFRpbWVNaWxsaXMpO1xuICAgICAgICB0aGlzLnNwYW5TdGFydFRpbWVTZWNzID0gcGFyc2VJbnQob3B0aW9ucy5zdGFydFRpbWVTZWNzKTtcbiAgICAgICAgdGhpcy5zcGFuRW5kVGltZU5hbm9zID0gcGFyc2VJbnQob3B0aW9ucy5lbmRUaW1lTmFub3MpO1xuICAgICAgICB0aGlzLnNwYW5FbmRUaW1lTWljcm9zID0gcGFyc2VJbnQob3B0aW9ucy5lbmRUaW1lTWljcm9zKTtcbiAgICAgICAgdGhpcy5zcGFuRW5kVGltZU1pbGxpcyA9IHBhcnNlSW50KG9wdGlvbnMuZW5kVGltZU1pbGxpcyk7XG4gICAgICAgIHRoaXMuc3BhbkVuZFRpbWVTZWNzID0gcGFyc2VJbnQob3B0aW9ucy5lbmRUaW1lU2Vjcyk7XG4gICAgICAgIHRoaXMuc3BhblN0YXR1c0NvZGUgPSBvcHRpb25zLnN0YXR1c0NvZGU7XG4gICAgICAgIHRoaXMuc3BhblN0YXR1c01lc3NhZ2UgPSBvcHRpb25zLnN0YXR1c01lc3NhZ2U7XG4gICAgICAgIHRoaXMuc3BhbkF0dHJpYnV0ZXMgPSBwYXJzZUtleVZhbHVlKG9wdGlvbnMuYXR0cmlidXRlcyk7XG4gICAgICAgIHRoaXMuc2VydmVyUG9ydCA9IHBhcnNlSW50KG9wdGlvbnMuc2VydmVyUG9ydCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY2hlY2tPcHRpb25zKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuZXhwb3J0ZXJPVExQRW5kcG9pbnQgJiYgIXRoaXMuZXhwb3J0ZXJPVExQVHJhY2VzRW5kcG9pbnQpIHtcbiAgICAgICAgICAgIGxvZ2dlci5lcnJvcihcbiAgICAgICAgICAgICAgICAnT25lIG9mIHRoZSBPVEVMIEV4cG9ydGVyIE9UTFAgZW5kcG9pbnQgJyArXG4gICAgICAgICAgICAgICAgICAgICdvciBPVEVMIEV4cG9ydGVyIE9UTFAgdHJhY2VzIGVuZHBvaW50IGNvbmZpZ3VyYXRpb25zIG11c3QgYmUgc3BlY2lmaWVkISdcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBleGl0KDEpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnRyYWNlUGFyZW50ICYmICF2YWxpZGF0ZVRyYWNlUGFyZW50KHRoaXMudHJhY2VQYXJlbnQpKSB7XG4gICAgICAgICAgICBsb2dnZXIuZXJyb3IoYEludmFsaWQgdHJhY2UgcGFyZW50OiAke3RoaXMudHJhY2VQYXJlbnR9IWApO1xuICAgICAgICAgICAgZXhpdCgxKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMudHJhY2VJZCkge1xuICAgICAgICAgICAgbG9nZ2VyLmVycm9yKGBUcmFjZSBpZCBpcyBub3Qgc3BlY2lmaWVkOiAke3RoaXMudHJhY2VJZH0hYCk7XG4gICAgICAgICAgICBleGl0KDEpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdmFsaWRhdGVUcmFjZUlkKHRoaXMudHJhY2VJZCkpIHtcbiAgICAgICAgICAgIGxvZ2dlci5lcnJvcihgSW52YWxpZCB0cmFjZSBpZDogJHt0aGlzLnRyYWNlSWR9IWApO1xuICAgICAgICAgICAgZXhpdCgxKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXZhbGlkYXRlU3BhbklkKHRoaXMuc3BhbklkKSkge1xuICAgICAgICAgICAgbG9nZ2VyLmVycm9yKGBJbnZhbGlkIHNwYW4gaWQ6ICR7dGhpcy5zcGFuSWR9IWApO1xuICAgICAgICAgICAgZXhpdCgxKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5wYXJlbnRTcGFuSWQgJiYgIXZhbGlkYXRlU3BhbklkKHRoaXMucGFyZW50U3BhbklkKSkge1xuICAgICAgICAgICAgbG9nZ2VyLmVycm9yKGBJbnZhbGlkIHBhcmVudCBzcGFuIGlkOiAke3RoaXMucGFyZW50U3BhbklkfSFgKTtcbiAgICAgICAgICAgIGV4aXQoMSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgIXRoaXMuc3BhblN0YXJ0VGltZU5hbm9zICYmXG4gICAgICAgICAgICAhdGhpcy5zcGFuRW5kVGltZU1pY3JvcyAmJlxuICAgICAgICAgICAgIXRoaXMuc3BhblN0YXJ0VGltZU1pbGxpcyAmJlxuICAgICAgICAgICAgIXRoaXMuc3BhblN0YXJ0VGltZVNlY3NcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBsb2dnZXIuZXJyb3IoXG4gICAgICAgICAgICAgICAgJ1NwYW4gc3RhcnQgdGltZSBtdXN0IGJlIHNwZWNpZmllZCBpbiBvbmUgb2YgdGhlIHN1cHBvcnRlZCBmb3JtYXRzICcgK1xuICAgICAgICAgICAgICAgICAgICAnKG5hbm9zZWNvbmRzLCBtaWNyb3NlY29uZHMsIG1pbGxpc2Vjb25kcywgb3Igc2Vjb25kcykhJ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGV4aXQoMSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgIXRoaXMuc3BhbkVuZFRpbWVOYW5vcyAmJlxuICAgICAgICAgICAgIXRoaXMuc3BhbkVuZFRpbWVNaWNyb3MgJiZcbiAgICAgICAgICAgICF0aGlzLnNwYW5FbmRUaW1lTWlsbGlzICYmXG4gICAgICAgICAgICAhdGhpcy5zcGFuRW5kVGltZVNlY3NcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBsb2dnZXIuZXJyb3IoXG4gICAgICAgICAgICAgICAgJ1NwYW4gZW5kIHRpbWUgbXVzdCBiZSBzcGVjaWZpZWQgaW4gb25lIG9mIHRoZSBzdXBwb3J0ZWQgZm9ybWF0cyAnICtcbiAgICAgICAgICAgICAgICAgICAgJyhuYW5vc2Vjb25kcywgbWljcm9zZWNvbmRzLCBtaWxsaXNlY29uZHMsIG9yIHNlY29uZHMpISdcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBleGl0KDEpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfcmVzb2x2ZUV4cG9ydGVyT1RMUEVuZHBvaW50KCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzLmV4cG9ydGVyT1RMUFRyYWNlc0VuZHBvaW50IHx8XG4gICAgICAgICAgICB0aGlzLmV4cG9ydGVyT1RMUEVuZHBvaW50ICsgJy92MS90cmFjZXMnXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfcmVzb2x2ZVNwYW5TdGFydFRpbWVOYW5vcygpOiBudW1iZXIge1xuICAgICAgICBpZiAodGhpcy5zcGFuU3RhcnRUaW1lTmFub3MpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnNwYW5TdGFydFRpbWVOYW5vcztcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnNwYW5TdGFydFRpbWVNaWNyb3MpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnNwYW5TdGFydFRpbWVNaWNyb3MgKiAxMDAwO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuc3BhblN0YXJ0VGltZU1pbGxpcykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc3BhblN0YXJ0VGltZU1pbGxpcyAqIDEwMDAwMDA7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5zcGFuU3RhcnRUaW1lU2Vjcykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc3BhblN0YXJ0VGltZVNlY3MgKiAxMDAwMDAwMDAwO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyBzcGFuIHN0YXJ0IHRpbWUgaXMgc3BlY2lmaWVkJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF9yZXNvbHZlU3BhbkVuZFRpbWVOYW5vcygpOiBudW1iZXIge1xuICAgICAgICBpZiAodGhpcy5zcGFuRW5kVGltZU5hbm9zKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zcGFuRW5kVGltZU5hbm9zO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuc3BhbkVuZFRpbWVNaWNyb3MpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnNwYW5FbmRUaW1lTWljcm9zICogMTAwMDtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnNwYW5FbmRUaW1lTWlsbGlzKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zcGFuRW5kVGltZU1pbGxpcyAqIDEwMDAwMDA7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5zcGFuRW5kVGltZVNlY3MpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnNwYW5FbmRUaW1lU2VjcyAqIDEwMDAwMDAwMDA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIHNwYW4gZW5kIHRpbWUgaXMgc3BlY2lmaWVkJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF9ub3JtYWxpemVJZChpZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKGlkICYmIGlkLnN0YXJ0c1dpdGgoJzB4JykpIHtcbiAgICAgICAgICAgIGlkID0gaWQuc3Vic3RyaW5nKCcweCcubGVuZ3RoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaWQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY3JlYXRlU3BhbigpOiBTcGFuIHtcbiAgICAgICAgY29uc3QgdHJhY2VJZDogc3RyaW5nID0gdGhpcy5fbm9ybWFsaXplSWQodGhpcy50cmFjZUlkKTtcbiAgICAgICAgY29uc3Qgc3BhbklkOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB0aGlzLl9ub3JtYWxpemVJZCh0aGlzLnNwYW5JZCk7XG4gICAgICAgIGNvbnN0IHRyYWNlU3RhdGU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICAgICAgICBjb25zdCBwYXJlbnRTcGFuSWQ6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHRoaXMuX25vcm1hbGl6ZUlkKHRoaXMucGFyZW50U3BhbklkKTtcbiAgICAgICAgY29uc3QgbmFtZTogc3RyaW5nID0gdGhpcy5zcGFuTmFtZTtcbiAgICAgICAgY29uc3Qga2luZDogU3BhbktpbmQgPSBTcGFuS2luZFt0aGlzLnNwYW5LaW5kIGFzIGtleW9mIHR5cGVvZiBTcGFuS2luZF07XG4gICAgICAgIGNvbnN0IHN0YXJ0VGltZVVuaXhOYW5vOiBudW1iZXIgPSB0aGlzLl9yZXNvbHZlU3BhblN0YXJ0VGltZU5hbm9zKCk7XG4gICAgICAgIGNvbnN0IGVuZFRpbWVVbml4TmFubzogbnVtYmVyID0gdGhpcy5fcmVzb2x2ZVNwYW5FbmRUaW1lTmFub3MoKTtcbiAgICAgICAgY29uc3Qgc3RhdHVzQ29kZTogU3BhblN0YXR1c0NvZGUgPVxuICAgICAgICAgICAgU3BhblN0YXR1c0NvZGVbdGhpcy5zcGFuU3RhdHVzQ29kZSBhcyBrZXlvZiB0eXBlb2YgU3BhblN0YXR1c0NvZGVdO1xuICAgICAgICBjb25zdCBzdGF0dXNNZXNzYWdlOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB0aGlzLnNwYW5TdGF0dXNNZXNzYWdlO1xuICAgICAgICBjb25zdCBzdGF0dXM6IFNwYW5TdGF0dXMgPSB7XG4gICAgICAgICAgICBjb2RlOiBzdGF0dXNDb2RlIHx8IFNwYW5TdGF0dXNDb2RlLlVOU0VULFxuICAgICAgICAgICAgbWVzc2FnZTogc3RhdHVzTWVzc2FnZSxcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgYXR0cmlidXRlczogQXR0cmlidXRlW10gPSBmbGF0dGVuQXR0cmlidXRlcyh0aGlzLnNwYW5BdHRyaWJ1dGVzKTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdHJhY2VJZCxcbiAgICAgICAgICAgIHNwYW5JZCxcbiAgICAgICAgICAgIHRyYWNlU3RhdGUsXG4gICAgICAgICAgICBwYXJlbnRTcGFuSWQsXG4gICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAga2luZCxcbiAgICAgICAgICAgIHN0YXJ0VGltZVVuaXhOYW5vLFxuICAgICAgICAgICAgZW5kVGltZVVuaXhOYW5vLFxuICAgICAgICAgICAgc3RhdHVzLFxuICAgICAgICAgICAgYXR0cmlidXRlcyxcbiAgICAgICAgICAgIGRyb3BwZWRBdHRyaWJ1dGVzQ291bnQ6IDAsXG4gICAgICAgIH0gYXMgU3BhbjtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9jcmVhdGVTY29wZVNwYW5zKCk6IFNjb3BlU3BhbnNbXSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgc2NvcGU6IHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogT1RFTF9DTElfTkFNRSxcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbjogT1RFTF9DTElfVkVSU0lPTixcbiAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlczogW10sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBzcGFuczogW3RoaXMuX2NyZWF0ZVNwYW4oKV0sXG4gICAgICAgICAgICB9LFxuICAgICAgICBdO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2NyZWF0ZVJlc291cmNlU3BhbnMoKTogUmVzb3VyY2VTcGFuc1tdIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICByZXNvdXJjZToge1xuICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5OiBSRVNPVVJDRV9BVFRSSUJVVEVTLlNFUlZJQ0VfTkFNRSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJpbmdWYWx1ZTogdGhpcy5zZXJ2aWNlTmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgZHJvcHBlZEF0dHJpYnV0ZXNDb3VudDogMCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHNjb3BlU3BhbnM6IHRoaXMuX2NyZWF0ZVNjb3BlU3BhbnMoKSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIF07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY3JlYXRlVHJhY2VFeHBvcnRlcigpOiBUcmFjZUV4cG9ydGVyIHtcbiAgICAgICAgaWYgKHRoaXMuc2VydmVyUG9ydCkge1xuICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVNlcnZlclRyYWNlRXhwb3J0ZXIodGhpcy5zZXJ2ZXJQb3J0KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBjcmVhdGVUcmFjZUV4cG9ydGVyKFxuICAgICAgICAgICAgICAgIHRoaXMuZXhwb3J0ZXJPVExQUHJvdG9jb2wsXG4gICAgICAgICAgICAgICAgdGhpcy5fcmVzb2x2ZUV4cG9ydGVyT1RMUEVuZHBvaW50KCksXG4gICAgICAgICAgICAgICAgdGhpcy5leHBvcnRlck9UTFBIZWFkZXJzXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY3JlYXRlVHJhY2VSZXF1ZXN0KCk6IFRyYWNlUmVxdWVzdCB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICByZXNvdXJjZVNwYW5zOiB0aGlzLl9jcmVhdGVSZXNvdXJjZVNwYW5zKCksXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBfZXhwb3J0VHJhY2VSZXF1ZXN0KFxuICAgICAgICB0cmFjZVJlcXVlc3Q6IFRyYWNlUmVxdWVzdFxuICAgICk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCB0cmFjZUV4cG9ydGVyOiBUcmFjZUV4cG9ydGVyID0gdGhpcy5fY3JlYXRlVHJhY2VFeHBvcnRlcigpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgaWYgKGxvZ2dlci5pc0RlYnVnRW5hYmxlZCgpKSB7XG4gICAgICAgICAgICAgICAgbG9nZ2VyLmRlYnVnKGBFeHBvcnRpbmcgdHJhY2UgcmVxdWVzdDpgLCB0cmFjZVJlcXVlc3QpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYXdhaXQgdHJhY2VFeHBvcnRlci5leHBvcnQodHJhY2VSZXF1ZXN0KTtcbiAgICAgICAgICAgIGxvZ2dlci5kZWJ1ZygnRXhwb3J0ZWQgdHJhY2UgcmVxdWVzdCcpO1xuICAgICAgICB9IGNhdGNoIChlcnI6IGFueSkge1xuICAgICAgICAgICAgbG9nZ2VyLmVycm9yKCdVbmFibGUgdG8gZXhwb3J0IHRyYWNlIHJlcXVlc3QnLCBlcnIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZ2VuZXJhdGVUcmFjZVBhcmVudCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYDAwLSR7dGhpcy50cmFjZUlkfS0ke3RoaXMuc3BhbklkfS0wMWA7XG4gICAgfVxuXG4gICAgY29tbWFuZE5hbWUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIENvbW1hbmRzLkVYUE9SVDtcbiAgICB9XG5cbiAgICBkZWZpbmVPcHRpb25zKGNvbW1hbmQ6IENvbW1hbmQpIHtcbiAgICAgICAgY29tbWFuZFxuICAgICAgICAgICAgLmFkZE9wdGlvbihuZXcgT3B0aW9uKCctdiwgLS12ZXJib3NlJywgJ0VuYWJsZSB2ZXJib3NlIG1vZGUnKVxuICAgICAgICAgICAgICAgIC5tYWtlT3B0aW9uTWFuZGF0b3J5KGZhbHNlKVxuICAgICAgICAgICAgICAgIC5kZWZhdWx0KHByb2Nlc3MuZW52Lk9URUxfQ0xJX1ZFUkJPU0UgJiZcbiAgICAgICAgICAgICAgICAgICAgcHJvY2Vzcy5lbnYuT1RFTF9DTElfVkVSQk9TRS50b0xvd2VyQ2FzZSgpID09PSAndHJ1ZScpKVxuICAgICAgICAgICAgLmFkZE9wdGlvbihcbiAgICAgICAgICAgICAgICBuZXcgT3B0aW9uKCctZSwgLS1lbmRwb2ludCA8dXJsPicsICdPVEVMIEV4cG9ydGVyIE9UTFAgZW5kcG9pbnQnKVxuICAgICAgICAgICAgICAgICAgICAubWFrZU9wdGlvbk1hbmRhdG9yeShmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgLmRlZmF1bHQocHJvY2Vzcy5lbnYuT1RFTF9FWFBPUlRFUl9PVExQX0VORFBPSU5UKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLmFkZE9wdGlvbihcbiAgICAgICAgICAgICAgICBuZXcgT3B0aW9uKCctdGUsIC0tdHJhY2VzLWVuZHBvaW50IDx1cmw+JywgJ09URUwgRXhwb3J0ZXIgT1RMUCB0cmFjZXMgZW5kcG9pbnQnKVxuICAgICAgICAgICAgICAgICAgICAubWFrZU9wdGlvbk1hbmRhdG9yeShmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgLmRlZmF1bHQocHJvY2Vzcy5lbnYuT1RFTF9FWFBPUlRFUl9PVExQX1RSQUNFU19FTkRQT0lOVClcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5hZGRPcHRpb24oXG4gICAgICAgICAgICAgICAgbmV3IE9wdGlvbignLXAsIC0tcHJvdG9jb2wgPHByb3RvY29sPicsICdPVEVMIEV4cG9ydGVyIE9UTFAgcHJvdG9jb2wnKVxuICAgICAgICAgICAgICAgICAgICAubWFrZU9wdGlvbk1hbmRhdG9yeShmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgLmRlZmF1bHQoXG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzLmVudi5PVEVMX0VYUE9SVEVSX09UTFBfUFJPVE9DT0wgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgIEV4cG9ydGVyT1RMUFByb3RvY29scy5IVFRQX0pTT05cbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAuY2hvaWNlcyhPYmplY3QudmFsdWVzKEV4cG9ydGVyT1RMUFByb3RvY29scykpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuYWRkT3B0aW9uKFxuICAgICAgICAgICAgICAgIG5ldyBPcHRpb24oJy1oLCAtLWhlYWRlcnMgPGtleS12YWx1ZS1wYWlycy4uLj4nLCAnT1RFTCBFeHBvcnRlciBPVExQIGhlYWRlcnMnKVxuICAgICAgICAgICAgICAgICAgICAubWFrZU9wdGlvbk1hbmRhdG9yeShmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgLmRlZmF1bHQocHJvY2Vzcy5lbnYuT1RFTF9FWFBPUlRFUl9PVExQX0hFQURFUlMgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3MuZW52Lk9URUxfRVhQT1JURVJfT1RMUF9IRUFERVJTLnNwbGl0KCcsJykpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuYWRkT3B0aW9uKFxuICAgICAgICAgICAgICAgIG5ldyBPcHRpb24oJy10cCwgLS10cmFjZXBhcmVudCA8aGVhZGVyPicsICdUcmFjZXBhcmVudCBoZWFkZXIgaW4gVzNDIHRyYWNlIGNvbnRleHQgZm9ybWF0JylcbiAgICAgICAgICAgICAgICAgICAgLm1ha2VPcHRpb25NYW5kYXRvcnkoZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgIC5kZWZhdWx0KHByb2Nlc3MuZW52LlRSQUNFUEFSRU5UKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLmFkZE9wdGlvbihcbiAgICAgICAgICAgICAgICBuZXcgT3B0aW9uKCctdHBkLCAtLXRyYWNlcGFyZW50LWRpc2FibGUnLCAnRGlzYWJsZSB0cmFjZXBhcmVudCBoZWFkZXIgYmFzZWQgVzNDIHRyYWNlIGNvbnRleHQgcHJvcGFnYXRpb24gZm9yIHRoZSBleHBvcnRlZCBzcGFuJylcbiAgICAgICAgICAgICAgICAgICAgLm1ha2VPcHRpb25NYW5kYXRvcnkoZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgIC5kZWZhdWx0KHByb2Nlc3MuZW52Lk9URUxfQ0xJX1RSQUNFUEFSRU5UX0RJU0FCTEUgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3MuZW52Lk9URUxfQ0xJX1RSQUNFUEFSRU5UX0RJU0FCTEUudG9Mb3dlckNhc2UoKSA9PT0gJ3RydWUnKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLmFkZE9wdGlvbihcbiAgICAgICAgICAgICAgICBuZXcgT3B0aW9uKCctdHBwLCAtLXRyYWNlcGFyZW50LXByaW50JywgJ1ByaW50IHRyYWNlcGFyZW50IGhlYWRlciBpbiBXM0MgdHJhY2UgY29udGV4dCBmb3JtYXQgZm9yIHRoZSBleHBvcnRlZCBzcGFuJylcbiAgICAgICAgICAgICAgICAgICAgLm1ha2VPcHRpb25NYW5kYXRvcnkoZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgIC5kZWZhdWx0KHByb2Nlc3MuZW52Lk9URUxfQ0xJX1RSQUNFUEFSRU5UX1BSSU5UICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzLmVudi5PVEVMX0NMSV9UUkFDRVBBUkVOVF9QUklOVC50b0xvd2VyQ2FzZSgpID09PSAndHJ1ZScpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuYWRkT3B0aW9uKFxuICAgICAgICAgICAgICAgIG5ldyBPcHRpb24oJy10LCAtLXRyYWNlLWlkIDxpZD4nLCAnVHJhY2UgaWQnKVxuICAgICAgICAgICAgICAgICAgICAubWFrZU9wdGlvbk1hbmRhdG9yeShmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgLmRlZmF1bHQocHJvY2Vzcy5lbnYuT1RFTF9DTElfVFJBQ0VfSUQpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuYWRkT3B0aW9uKFxuICAgICAgICAgICAgICAgIG5ldyBPcHRpb24oJy1zLCAtLXNwYW4taWQgPGlkPicsICdTcGFuIGlkJylcbiAgICAgICAgICAgICAgICAgICAgLm1ha2VPcHRpb25NYW5kYXRvcnkoZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgIC5kZWZhdWx0KGdlbmVyYXRlU3BhbklkKCkpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuYWRkT3B0aW9uKFxuICAgICAgICAgICAgICAgIG5ldyBPcHRpb24oJy1wLCAtLXBhcmVudC1zcGFuLWlkIDxpZD4nLCAnUGFyZW50IHNwYW4gaWQnKVxuICAgICAgICAgICAgICAgICAgICAubWFrZU9wdGlvbk1hbmRhdG9yeShmYWxzZSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5hZGRPcHRpb24oXG4gICAgICAgICAgICAgICAgbmV3IE9wdGlvbignLW4sIC0tbmFtZSA8bmFtZT4nLCAnU3BhbiBuYW1lJylcbiAgICAgICAgICAgICAgICAgICAgLm1ha2VPcHRpb25NYW5kYXRvcnkodHJ1ZSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5hZGRPcHRpb24oXG4gICAgICAgICAgICAgICAgbmV3IE9wdGlvbignLXNuLCAtLXNlcnZpY2UtbmFtZSA8bmFtZT4nLCAnU2VydmljZSBuYW1lJylcbiAgICAgICAgICAgICAgICAgICAgLm1ha2VPcHRpb25NYW5kYXRvcnkodHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgLmRlZmF1bHQocHJvY2Vzcy5lbnYuT1RFTF9DTElfU0VSVklDRV9OQU1FIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzLmVudi5PVEVMX1NFUlZJQ0VfTkFNRSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5hZGRPcHRpb24oXG4gICAgICAgICAgICAgICAgbmV3IE9wdGlvbignLWssIC0ta2luZCA8a2luZD4nLCAnU3BhbiBraW5kJylcbiAgICAgICAgICAgICAgICAgICAgLm1ha2VPcHRpb25NYW5kYXRvcnkoZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgIC5kZWZhdWx0KFNwYW5LaW5kW1NwYW5LaW5kLklOVEVSTkFMXSlcbiAgICAgICAgICAgICAgICAgICAgLmNob2ljZXMoT2JqZWN0LmtleXMoU3BhbktpbmQpLmZpbHRlcigobykgPT4gaXNOYU4oTnVtYmVyKG8pKSkpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuYWRkT3B0aW9uKFxuICAgICAgICAgICAgICAgIG5ldyBPcHRpb24oJy0tc3RhcnQtdGltZS1uYW5vcyA8bmFub3M+JywgJ1N0YXJ0IHRpbWUgaW4gbmFub3NlY29uZHMnKVxuICAgICAgICAgICAgICAgICAgICAubWFrZU9wdGlvbk1hbmRhdG9yeShmYWxzZSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5hZGRPcHRpb24oXG4gICAgICAgICAgICAgICAgbmV3IE9wdGlvbignLS1zdGFydC10aW1lLW1pY3JvcyA8bWljcm9zPicsICdTdGFydCB0aW1lIGluIG1pY3Jvc2Vjb25kcycpXG4gICAgICAgICAgICAgICAgICAgIC5tYWtlT3B0aW9uTWFuZGF0b3J5KGZhbHNlKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLmFkZE9wdGlvbihcbiAgICAgICAgICAgICAgICBuZXcgT3B0aW9uKCctLXN0YXJ0LXRpbWUtbWlsbGlzIDxtaWxsaXM+JywgJ1N0YXJ0IHRpbWUgaW4gbWlsbGlzZWNvbmRzJylcbiAgICAgICAgICAgICAgICAgICAgLm1ha2VPcHRpb25NYW5kYXRvcnkoZmFsc2UpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuYWRkT3B0aW9uKFxuICAgICAgICAgICAgICAgIG5ldyBPcHRpb24oJy0tc3RhcnQtdGltZS1zZWNzIDxzZWNzPicsICdTdGFydCB0aW1lIGluIHNlY29uZHMnKVxuICAgICAgICAgICAgICAgICAgICAubWFrZU9wdGlvbk1hbmRhdG9yeShmYWxzZSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5hZGRPcHRpb24oXG4gICAgICAgICAgICAgICAgbmV3IE9wdGlvbignLS1lbmQtdGltZS1uYW5vcyA8bmFub3M+JywgJ0VuZCB0aW1lIGluIG5hbm9zZWNvbmRzJylcbiAgICAgICAgICAgICAgICAgICAgLm1ha2VPcHRpb25NYW5kYXRvcnkoZmFsc2UpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuYWRkT3B0aW9uKFxuICAgICAgICAgICAgICAgIG5ldyBPcHRpb24oJy0tZW5kLXRpbWUtbWljcm9zIDxtaWNyb3M+JywgJ0VuZCB0aW1lIGluIG1pY3Jvc2Vjb25kcycpXG4gICAgICAgICAgICAgICAgICAgIC5tYWtlT3B0aW9uTWFuZGF0b3J5KGZhbHNlKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLmFkZE9wdGlvbihcbiAgICAgICAgICAgICAgICBuZXcgT3B0aW9uKCctLWVuZC10aW1lLW1pbGxpcyA8bWlsbGlzPicsICdFbmQgdGltZSBpbiBtaWxsaXNlY29uZHMnKVxuICAgICAgICAgICAgICAgICAgICAubWFrZU9wdGlvbk1hbmRhdG9yeShmYWxzZSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5hZGRPcHRpb24oXG4gICAgICAgICAgICAgICAgbmV3IE9wdGlvbignLS1lbmQtdGltZS1zZWNzIDxzZWNzPicsICdFbmQgdGltZSBpbiBzZWNvbmRzJylcbiAgICAgICAgICAgICAgICAgICAgLm1ha2VPcHRpb25NYW5kYXRvcnkoZmFsc2UpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuYWRkT3B0aW9uKFxuICAgICAgICAgICAgICAgIG5ldyBPcHRpb24oJy1zYyAtLXN0YXR1cy1jb2RlIDxjb2RlPicsICdTdGF0dXMgY29kZScpXG4gICAgICAgICAgICAgICAgICAgIC5tYWtlT3B0aW9uTWFuZGF0b3J5KGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAuZGVmYXVsdChTcGFuU3RhdHVzQ29kZVtTcGFuU3RhdHVzQ29kZS5VTlNFVF0pXG4gICAgICAgICAgICAgICAgICAgIC5jaG9pY2VzKFxuICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmtleXMoU3BhblN0YXR1c0NvZGUpLmZpbHRlcigobykgPT4gaXNOYU4oTnVtYmVyKG8pKSlcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLmFkZE9wdGlvbihcbiAgICAgICAgICAgICAgICBuZXcgT3B0aW9uKCctc20gLS1zdGF0dXMtbWVzc2FnZSA8bWVzc2FnZT4nLCAnU3RhdHVzIG1lc3NhZ2UnKVxuICAgICAgICAgICAgICAgICAgICAubWFrZU9wdGlvbk1hbmRhdG9yeShmYWxzZSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5hZGRPcHRpb24oXG4gICAgICAgICAgICAgICAgbmV3IE9wdGlvbihcbiAgICAgICAgICAgICAgICAgICAgJy1hIC0tYXR0cmlidXRlcyA8a2V5LXZhbHVlLXBhaXJzLi4uPicsXG4gICAgICAgICAgICAgICAgICAgICdTcGFuIGF0dHJpYnV0ZXMgYXMgc3BhY2Ugc2VwZXJhdGVkIGtleS12YWx1ZSBwYWlycyAoa2V5MT12YWx1ZTEga2V5Mj12YWx1ZTIga2V5Mz12YWx1ZTMpJylcbiAgICAgICAgICAgICAgICAgICAgLm1ha2VPcHRpb25NYW5kYXRvcnkoZmFsc2UpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuYWRkT3B0aW9uKFxuICAgICAgICAgICAgICAgIG5ldyBPcHRpb24oJy1zcCwgLS1zZXJ2ZXItcG9ydCA8cG9ydD4nLFxuICAgICAgICAgICAgICAgICAgICAnT1RFTCBDTEkgc2VydmVyIHBvcnQgZm9yIGNvbW11bmljYXRpbmcgb3ZlciB0byBleHBvcnQgdHJhY2VzIGFzeW5jaHJvbm91c2x5IGluIGJhY2tncm91bmQnKVxuICAgICAgICAgICAgICAgICAgICAubWFrZU9wdGlvbk1hbmRhdG9yeShmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgLmRlZmF1bHQocHJvY2Vzcy5lbnYuT1RFTF9DTElfU0VSVkVSX1BPUlQpXG4gICAgICAgICAgICApO1xuICAgIH1cblxuICAgIGFzeW5jIGV4ZWN1dGUob3B0aW9uczogT3B0aW9uVmFsdWVzKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRoaXMuX3BhcnNlT3B0aW9ucyhvcHRpb25zKTtcblxuICAgICAgICB0aGlzLl9jaGVja09wdGlvbnMoKTtcblxuICAgICAgICBjb25zdCB0cmFjZVJlcXVlc3Q6IFRyYWNlUmVxdWVzdCA9IHRoaXMuX2NyZWF0ZVRyYWNlUmVxdWVzdCgpO1xuICAgICAgICBhd2FpdCB0aGlzLl9leHBvcnRUcmFjZVJlcXVlc3QodHJhY2VSZXF1ZXN0KTtcbiAgICAgICAgaWYgKHRoaXMudHJhY2VQYXJlbnRQcmludCkge1xuICAgICAgICAgICAgY29uc29sZS5sb2codGhpcy5fZ2VuZXJhdGVUcmFjZVBhcmVudCgpKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ== | ||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXhwb3J0Q29tbWFuZEV4ZWN1dG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmQvZXhwb3J0L0V4cG9ydENvbW1hbmRFeGVjdXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLHFDQUFrQztBQUNsQyx5Q0FPc0I7QUFDdEIsdUNBU3FCO0FBQ3JCLHlDQUtzQjtBQUN0QixxREFBdUM7QUFDdkMsb0NBQW9DO0FBRXBDLHlDQUEwRDtBQUUxRCxNQUFhLHFCQUFxQjtJQTBCdEIsK0JBQStCLENBQ25DLFdBQW1CO1FBRW5CLElBQUksV0FBVyxFQUFFO1lBQ2IsT0FBTyxJQUFBLHFDQUE2QixFQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQ3JEO1FBQ0QsT0FBTyxTQUFTLENBQUM7SUFDckIsQ0FBQztJQUVPLG9DQUFvQyxDQUN4QyxXQUFtQjtRQUVuQixJQUFJLFdBQVcsRUFBRTtZQUNiLE9BQU8sSUFBQSxvQ0FBNEIsRUFBQyxXQUFXLENBQUMsQ0FBQztTQUNwRDtRQUNELE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7SUFFTyxhQUFhLENBQUMsT0FBcUI7UUFDdkMsSUFBSSxDQUFDLGNBQWMsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDO1FBQ3RDLE1BQU0sQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRTVDLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDO1FBQzdDLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDO1FBQzdDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFBLHFCQUFhLEVBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTFELElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxPQUFPLENBQUMsa0JBQWtCO1lBQzFDLENBQUMsQ0FBQyxPQUFPLENBQUMsV0FBVyxJ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fSBmcm9tICcuLi9Db21tYW5kRXhlY3V0b3InO1xuaW1wb3J0IHsgZXhpdCB9IGZyb20gJy4uLy4uL2V4aXQnO1xuaW1wb3J0IHtcbiAgICBBdHRyaWJ1dGUsXG4gICAgU3BhbixcbiAgICBTcGFuS2luZCxcbiAgICBTcGFuU3RhdHVzLFxuICAgIFNwYW5TdGF0dXNDb2RlLFxuICAgIFRyYWNlTWV0YWRhdGEsXG59IGZyb20gJy4uLy4uL2RvbWFpbic7XG5pbXBvcnQge1xuICAgIGV4dHJhY3RTcGFuSWRGcm9tVHJhY2VQYXJlbnQsXG4gICAgZXh0cmFjdFRyYWNlSWRGcm9tVHJhY2VQYXJlbnQsXG4gICAgZmxhdHRlbkF0dHJpYnV0ZXMsXG4gICAgZ2VuZXJhdGVTcGFuSWQsXG4gICAgcGFyc2VLZXlWYWx1ZSxcbiAgICB2YWxpZGF0ZVNwYW5JZCxcbiAgICB2YWxpZGF0ZVRyYWNlSWQsXG4gICAgdmFsaWRhdGVUcmFjZVBhcmVudCxcbn0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHtcbiAgICBjcmVhdGVTZXJ2ZXJUcmFjZUV4cG9ydGVyLFxuICAgIGNyZWF0ZVRyYWNlRXhwb3J0ZXIsXG4gICAgRXhwb3J0ZXJPVExQUHJvdG9jb2xzLFxuICAgIFRyYWNlRXhwb3J0ZXIsXG59IGZyb20gJy4uLy4uL2V4cG9ydCc7XG5pbXBvcnQgKiBhcyBsb2dnZXIgZnJvbSAnLi4vLi4vbG9nZ2VyJztcbmltcG9ydCB7IENvbW1hbmRzIH0gZnJvbSAnLi4vaW5kZXgnO1xuXG5pbXBvcnQgeyBDb21tYW5kLCBPcHRpb24sIE9wdGlvblZhbHVlcyB9IGZyb20gJ2NvbW1hbmRlcic7XG5cbmV4cG9ydCBjbGFzcyBFeHBvcnRDb21tYW5kRXhlY3V0b3IgaW1wbGVtZW50cyBDb21tYW5kRXhlY3V0b3Ige1xuICAgIHByaXZhdGUgdmVyYm9zZUVuYWJsZWQ6IGJvb2xlYW47XG4gICAgcHJpdmF0ZSBleHBvcnRlck9UTFBFbmRwb2ludDogc3RyaW5nO1xuICAgIHByaXZhdGUgZXhwb3J0ZXJPVExQUHJvdG9jb2w6IHN0cmluZztcbiAgICBwcml2YXRlIGV4cG9ydGVyT1RMUEhlYWRlcnM6IE1hcDxzdHJpbmcsIHN0cmluZz47XG4gICAgcHJpdmF0ZSB0cmFjZVBhcmVudDogc3RyaW5nO1xuICAgIHByaXZhdGUgdHJhY2VQYXJlbnRQcmludDogYm9vbGVhbjtcbiAgICBwcml2YXRlIHRyYWNlSWQ6IHN0cmluZztcbiAgICBwcml2YXRlIHNwYW5JZDogc3RyaW5nO1xuICAgIHByaXZhdGUgcGFyZW50U3BhbklkOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBzcGFuTmFtZTogc3RyaW5nO1xuICAgIHByaXZhdGUgc2VydmljZU5hbWU6IHN0cmluZztcbiAgICBwcml2YXRlIHNwYW5LaW5kOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBzcGFuU3RhcnRUaW1lTmFub3M6IG51bWJlcjtcbiAgICBwcml2YXRlIHNwYW5TdGFydFRpbWVNaWNyb3M6IG51bWJlcjtcbiAgICBwcml2YXRlIHNwYW5TdGFydFRpbWVNaWxsaXM6IG51bWJlcjtcbiAgICBwcml2YXRlIHNwYW5TdGFydFRpbWVTZWNzOiBudW1iZXI7XG4gICAgcHJpdmF0ZSBzcGFuRW5kVGltZU5hbm9zOiBudW1iZXI7XG4gICAgcHJpdmF0ZSBzcGFuRW5kVGltZU1pY3JvczogbnVtYmVyO1xuICAgIHByaXZhdGUgc3BhbkVuZFRpbWVNaWxsaXM6IG51bWJlcjtcbiAgICBwcml2YXRlIHNwYW5FbmRUaW1lU2VjczogbnVtYmVyO1xuICAgIHByaXZhdGUgc3BhblN0YXR1c0NvZGU6IHN0cmluZztcbiAgICBwcml2YXRlIHNwYW5TdGF0dXNNZXNzYWdlOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBzcGFuQXR0cmlidXRlczogTWFwPHN0cmluZywgc3RyaW5nPjtcbiAgICBwcml2YXRlIHNlcnZlclBvcnQ6IG51bWJlcjtcblxuICAgIHByaXZhdGUgX3RyeVRvR2V0VHJhY2VJZEZyb21UcmFjZVBhcmVudChcbiAgICAgICAgdHJhY2VQYXJlbnQ6IHN0cmluZ1xuICAgICk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGlmICh0cmFjZVBhcmVudCkge1xuICAgICAgICAgICAgcmV0dXJuIGV4dHJhY3RUcmFjZUlkRnJvbVRyYWNlUGFyZW50KHRyYWNlUGFyZW50KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3RyeVRvR2V0UGFyZW50U3BhbklkRnJvbVRyYWNlUGFyZW50KFxuICAgICAgICB0cmFjZVBhcmVudDogc3RyaW5nXG4gICAgKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgaWYgKHRyYWNlUGFyZW50KSB7XG4gICAgICAgICAgICByZXR1cm4gZXh0cmFjdFNwYW5JZEZyb21UcmFjZVBhcmVudCh0cmFjZVBhcmVudCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9wYXJzZU9wdGlvbnMob3B0aW9uczogT3B0aW9uVmFsdWVzKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmVyYm9zZUVuYWJsZWQgPSBvcHRpb25zLnZlcmJvc2U7XG4gICAgICAgIGxvZ2dlci5zZXREZWJ1Z0VuYWJsZWQodGhpcy52ZXJib3NlRW5hYmxlZCk7XG5cbiAgICAgICAgdGhpcy5leHBvcnRlck9UTFBFbmRwb2ludCA9IG9wdGlvbnMuZW5kcG9pbnQ7XG4gICAgICAgIHRoaXMuZXhwb3J0ZXJPVExQUHJvdG9jb2wgPSBvcHRpb25zLnByb3RvY29sO1xuICAgICAgICB0aGlzLmV4cG9ydGVyT1RMUEhlYWRlcnMgPSBwYXJzZUtleVZhbHVlKG9wdGlvbnMuaGVhZGVycyk7XG5cbiAgICAgICAgdGhpcy50cmFjZVBhcmVudCA9ICFvcHRpb25zLnRyYWNlcGFyZW50RGlzYWJsZVxuICAgICAgICAgICAgPyBvcHRpb25zLnRyYWNlcGFyZW50IHx8IHByb2Nlc3MuZW52LlRSQUNFUEFSRU5UXG4gICAgICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy50cmFjZVBhcmVudFByaW50ID0gb3B0aW9ucy50cmFjZXBhcmVudFByaW50O1xuICAgICAgICB0aGlzLnRyYWNlSWQgPVxuICAgICAgICAgICAgb3B0aW9ucy50cmFjZUlkIHx8XG4gICAgICAgICAgICB0aGlzLl90cnlUb0dldFRyYWNlSWRGcm9tVHJhY2VQYXJlbnQodGhpcy50cmFjZVBhcmVudCk7XG4gICAgICAgIHRoaXMuc3BhbklkID0gb3B0aW9ucy5zcGFuSWQ7XG4gICAgICAgIHRoaXMucGFyZW50U3BhbklkID1cbiAgICAgICAgICAgIG9wdGlvbnMucGFyZW50U3BhbklkIHx8XG4gICAgICAgICAgICB0aGlzLl90cnlUb0dldFBhcmVudFNwYW5JZEZyb21UcmFjZVBhcmVudCh0aGlzLnRyYWNlUGFyZW50KTtcbiAgICAgICAgdGhpcy5zcGFuTmFtZSA9IG9wdGlvbnMubmFtZTtcbiAgICAgICAgdGhpcy5zZXJ2aWNlTmFtZSA9IG9wdGlvbnMuc2VydmljZU5hbWU7XG4gICAgICAgIHRoaXMuc3BhbktpbmQgPSBvcHRpb25zLmtpbmQ7XG4gICAgICAgIHRoaXMuc3BhblN0YXJ0VGltZU5hbm9zID0gcGFyc2VJbnQob3B0aW9ucy5zdGFydFRpbWVOYW5vcyk7XG4gICAgICAgIHRoaXMuc3BhblN0YXJ0VGltZU1pY3JvcyA9IHBhcnNlSW50KG9wdGlvbnMuc3RhcnRUaW1lTWljcm9zKTtcbiAgICAgICAgdGhpcy5zcGFuU3RhcnRUaW1lTWlsbGlzID0gcGFyc2VJbnQob3B0aW9ucy5zdGFydFRpbWVNaWxsaXMpO1xuICAgICAgICB0aGlzLnNwYW5TdGFydFRpbWVTZWNzID0gcGFyc2VJbnQob3B0aW9ucy5zdGFydFRpbWVTZWNzKTtcbiAgICAgICAgdGhpcy5zcGFuRW5kVGltZU5hbm9zID0gcGFyc2VJbnQob3B0aW9ucy5lbmRUaW1lTmFub3MpO1xuICAgICAgICB0aGlzLnNwYW5FbmRUaW1lTWljcm9zID0gcGFyc2VJbnQob3B0aW9ucy5lbmRUaW1lTWljcm9zKTtcbiAgICAgICAgdGhpcy5zcGFuRW5kVGltZU1pbGxpcyA9IHBhcnNlSW50KG9wdGlvbnMuZW5kVGltZU1pbGxpcyk7XG4gICAgICAgIHRoaXMuc3BhbkVuZFRpbWVTZWNzID0gcGFyc2VJbnQob3B0aW9ucy5lbmRUaW1lU2Vjcyk7XG4gICAgICAgIHRoaXMuc3BhblN0YXR1c0NvZGUgPSBvcHRpb25zLnN0YXR1c0NvZGU7XG4gICAgICAgIHRoaXMuc3BhblN0YXR1c01lc3NhZ2UgPSBvcHRpb25zLnN0YXR1c01lc3NhZ2U7XG4gICAgICAgIHRoaXMuc3BhbkF0dHJpYnV0ZXMgPSBwYXJzZUtleVZhbHVlKG9wdGlvbnMuYXR0cmlidXRlcyk7XG4gICAgICAgIHRoaXMuc2VydmVyUG9ydCA9IHBhcnNlSW50KG9wdGlvbnMuc2VydmVyUG9ydCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY2hlY2tPcHRpb25zKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy50cmFjZVBhcmVudCAmJiAhdmFsaWRhdGVUcmFjZVBhcmVudCh0aGlzLnRyYWNlUGFyZW50KSkge1xuICAgICAgICAgICAgbG9nZ2VyLmVycm9yKGBJbnZhbGlkIHRyYWNlIHBhcmVudDogJHt0aGlzLnRyYWNlUGFyZW50fSFgKTtcbiAgICAgICAgICAgIGV4aXQoMSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLnRyYWNlSWQpIHtcbiAgICAgICAgICAgIGxvZ2dlci5lcnJvcihgVHJhY2UgaWQgaXMgbm90IHNwZWNpZmllZDogJHt0aGlzLnRyYWNlSWR9IWApO1xuICAgICAgICAgICAgZXhpdCgxKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXZhbGlkYXRlVHJhY2VJZCh0aGlzLnRyYWNlSWQpKSB7XG4gICAgICAgICAgICBsb2dnZXIuZXJyb3IoYEludmFsaWQgdHJhY2UgaWQ6ICR7dGhpcy50cmFjZUlkfSFgKTtcbiAgICAgICAgICAgIGV4aXQoMSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF2YWxpZGF0ZVNwYW5JZCh0aGlzLnNwYW5JZCkpIHtcbiAgICAgICAgICAgIGxvZ2dlci5lcnJvcihgSW52YWxpZCBzcGFuIGlkOiAke3RoaXMuc3BhbklkfSFgKTtcbiAgICAgICAgICAgIGV4aXQoMSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMucGFyZW50U3BhbklkICYmICF2YWxpZGF0ZVNwYW5JZCh0aGlzLnBhcmVudFNwYW5JZCkpIHtcbiAgICAgICAgICAgIGxvZ2dlci5lcnJvcihgSW52YWxpZCBwYXJlbnQgc3BhbiBpZDogJHt0aGlzLnBhcmVudFNwYW5JZH0hYCk7XG4gICAgICAgICAgICBleGl0KDEpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgICF0aGlzLnNwYW5TdGFydFRpbWVOYW5vcyAmJlxuICAgICAgICAgICAgIXRoaXMuc3BhbkVuZFRpbWVNaWNyb3MgJiZcbiAgICAgICAgICAgICF0aGlzLnNwYW5TdGFydFRpbWVNaWxsaXMgJiZcbiAgICAgICAgICAgICF0aGlzLnNwYW5TdGFydFRpbWVTZWNzXG4gICAgICAgICkge1xuICAgICAgICAgICAgbG9nZ2VyLmVycm9yKFxuICAgICAgICAgICAgICAgICdTcGFuIHN0YXJ0IHRpbWUgbXVzdCBiZSBzcGVjaWZpZWQgaW4gb25lIG9mIHRoZSBzdXBwb3J0ZWQgZm9ybWF0cyAnICtcbiAgICAgICAgICAgICAgICAgICAgJyhuYW5vc2Vjb25kcywgbWljcm9zZWNvbmRzLCBtaWxsaXNlY29uZHMsIG9yIHNlY29uZHMpISdcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBleGl0KDEpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgICF0aGlzLnNwYW5FbmRUaW1lTmFub3MgJiZcbiAgICAgICAgICAgICF0aGlzLnNwYW5FbmRUaW1lTWljcm9zICYmXG4gICAgICAgICAgICAhdGhpcy5zcGFuRW5kVGltZU1pbGxpcyAmJlxuICAgICAgICAgICAgIXRoaXMuc3BhbkVuZFRpbWVTZWNzXG4gICAgICAgICkge1xuICAgICAgICAgICAgbG9nZ2VyLmVycm9yKFxuICAgICAgICAgICAgICAgICdTcGFuIGVuZCB0aW1lIG11c3QgYmUgc3BlY2lmaWVkIGluIG9uZSBvZiB0aGUgc3VwcG9ydGVkIGZvcm1hdHMgJyArXG4gICAgICAgICAgICAgICAgICAgICcobmFub3NlY29uZHMsIG1pY3Jvc2Vjb25kcywgbWlsbGlzZWNvbmRzLCBvciBzZWNvbmRzKSEnXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgZXhpdCgxKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX3Jlc29sdmVTcGFuU3RhcnRUaW1lTmFub3MoKTogbnVtYmVyIHtcbiAgICAgICAgaWYgKHRoaXMuc3BhblN0YXJ0VGltZU5hbm9zKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zcGFuU3RhcnRUaW1lTmFub3M7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5zcGFuU3RhcnRUaW1lTWljcm9zKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zcGFuU3RhcnRUaW1lTWljcm9zICogMTAwMDtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnNwYW5TdGFydFRpbWVNaWxsaXMpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnNwYW5TdGFydFRpbWVNaWxsaXMgKiAxMDAwMDAwO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuc3BhblN0YXJ0VGltZVNlY3MpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnNwYW5TdGFydFRpbWVTZWNzICogMTAwMDAwMDAwMDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignTm8gc3BhbiBzdGFydCB0aW1lIGlzIHNwZWNpZmllZCcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfcmVzb2x2ZVNwYW5FbmRUaW1lTmFub3MoKTogbnVtYmVyIHtcbiAgICAgICAgaWYgKHRoaXMuc3BhbkVuZFRpbWVOYW5vcykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc3BhbkVuZFRpbWVOYW5vcztcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnNwYW5FbmRUaW1lTWljcm9zKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zcGFuRW5kVGltZU1pY3JvcyAqIDEwMDA7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5zcGFuRW5kVGltZU1pbGxpcykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc3BhbkVuZFRpbWVNaWxsaXMgKiAxMDAwMDAwO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuc3BhbkVuZFRpbWVTZWNzKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zcGFuRW5kVGltZVNlY3MgKiAxMDAwMDAwMDAwO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyBzcGFuIGVuZCB0aW1lIGlzIHNwZWNpZmllZCcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfbm9ybWFsaXplSWQoaWQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGlmIChpZCAmJiBpZC5zdGFydHNXaXRoKCcweCcpKSB7XG4gICAgICAgICAgICBpZCA9IGlkLnN1YnN0cmluZygnMHgnLmxlbmd0aCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGlkO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2NyZWF0ZVNwYW4oKTogU3BhbiB7XG4gICAgICAgIGNvbnN0IHRyYWNlSWQ6IHN0cmluZyA9IHRoaXMuX25vcm1hbGl6ZUlkKHRoaXMudHJhY2VJZCk7XG4gICAgICAgIGNvbnN0IHNwYW5JZDogc3RyaW5nIHwgdW5kZWZpbmVkID0gdGhpcy5fbm9ybWFsaXplSWQodGhpcy5zcGFuSWQpO1xuICAgICAgICBjb25zdCB0cmFjZVN0YXRlOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgICAgICAgY29uc3QgcGFyZW50U3BhbklkOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB0aGlzLl9ub3JtYWxpemVJZChcbiAgICAgICAgICAgIHRoaXMucGFyZW50U3BhbklkXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IG5hbWU6IHN0cmluZyA9IHRoaXMuc3Bhbk5hbWU7XG4gICAgICAgIGNvbnN0IGtpbmQ6IFNwYW5LaW5kID0gU3BhbktpbmRbdGhpcy5zcGFuS2luZCBhcyBrZXlvZiB0eXBlb2YgU3BhbktpbmRdO1xuICAgICAgICBjb25zdCBzdGFydFRpbWVVbml4TmFubzogbnVtYmVyID0gdGhpcy5fcmVzb2x2ZVNwYW5TdGFydFRpbWVOYW5vcygpO1xuICAgICAgICBjb25zdCBlbmRUaW1lVW5peE5hbm86IG51bWJlciA9IHRoaXMuX3Jlc29sdmVTcGFuRW5kVGltZU5hbm9zKCk7XG4gICAgICAgIGNvbnN0IHN0YXR1c0NvZGU6IFNwYW5TdGF0dXNDb2RlID1cbiAgICAgICAgICAgIFNwYW5TdGF0dXNDb2RlW3RoaXMuc3BhblN0YXR1c0NvZGUgYXMga2V5b2YgdHlwZW9mIFNwYW5TdGF0dXNDb2RlXTtcbiAgICAgICAgY29uc3Qgc3RhdHVzTWVzc2FnZTogc3RyaW5nIHwgdW5kZWZpbmVkID0gdGhpcy5zcGFuU3RhdHVzTWVzc2FnZTtcbiAgICAgICAgY29uc3Qgc3RhdHVzOiBTcGFuU3RhdHVzID0ge1xuICAgICAgICAgICAgY29kZTogc3RhdHVzQ29kZSB8fCBTcGFuU3RhdHVzQ29kZS5VTlNFVCxcbiAgICAgICAgICAgIG1lc3NhZ2U6IHN0YXR1c01lc3NhZ2UsXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGF0dHJpYnV0ZXM6IEF0dHJpYnV0ZVtdID0gZmxhdHRlbkF0dHJpYnV0ZXModGhpcy5zcGFuQXR0cmlidXRlcyk7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHRyYWNlSWQsXG4gICAgICAgICAgICBzcGFuSWQsXG4gICAgICAgICAgICB0cmFjZVN0YXRlLFxuICAgICAgICAgICAgcGFyZW50U3BhbklkLFxuICAgICAgICAgICAgbmFtZSxcbiAgICAgICAgICAgIGtpbmQsXG4gICAgICAgICAgICBzdGFydFRpbWVVbml4TmFubyxcbiAgICAgICAgICAgIGVuZFRpbWVVbml4TmFubyxcbiAgICAgICAgICAgIHN0YXR1cyxcbiAgICAgICAgICAgIGF0dHJpYnV0ZXMsXG4gICAgICAgICAgICBkcm9wcGVkQXR0cmlidXRlc0NvdW50OiAwLFxuICAgICAgICB9IGFzIFNwYW47XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY3JlYXRlVHJhY2VFeHBvcnRlcigpOiBUcmFjZUV4cG9ydGVyIHtcbiAgICAgICAgaWYgKHRoaXMuc2VydmVyUG9ydCkge1xuICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVNlcnZlclRyYWNlRXhwb3J0ZXIodGhpcy5zZXJ2ZXJQb3J0KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBjcmVhdGVUcmFjZUV4cG9ydGVyKFxuICAgICAgICAgICAgICAgIHRoaXMuZXhwb3J0ZXJPVExQUHJvdG9jb2wsXG4gICAgICAgICAgICAgICAgdGhpcy5leHBvcnRlck9UTFBFbmRwb2ludCxcbiAgICAgICAgICAgICAgICB0aGlzLmV4cG9ydGVyT1RMUEhlYWRlcnNcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIF9leHBvcnRTcGFucyhcbiAgICAgICAgbWV0YWRhdGE6IFRyYWNlTWV0YWRhdGEsXG4gICAgICAgIHNwYW5zOiBTcGFuW11cbiAgICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3QgdHJhY2VFeHBvcnRlcjogVHJhY2VFeHBvcnRlciA9IHRoaXMuX2NyZWF0ZVRyYWNlRXhwb3J0ZXIoKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGlmIChsb2dnZXIuaXNEZWJ1Z0VuYWJsZWQoKSkge1xuICAgICAgICAgICAgICAgIGxvZ2dlci5kZWJ1ZyhgRXhwb3J0aW5nIHNwYW5zOmAsIHNwYW5zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGF3YWl0IHRyYWNlRXhwb3J0ZXIuZXhwb3J0KG1ldGFkYXRhLCBzcGFucyk7XG4gICAgICAgICAgICBsb2dnZXIuZGVidWcoJ0V4cG9ydGVkIHNwYW5zJyk7XG4gICAgICAgIH0gY2F0Y2ggKGVycjogYW55KSB7XG4gICAgICAgICAgICBsb2dnZXIuZXJyb3IoJ1VuYWJsZSB0byBleHBvcnQgc3BhbnMnLCBlcnIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZ2VuZXJhdGVUcmFjZVBhcmVudCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYDAwLSR7dGhpcy50cmFjZUlkfS0ke3RoaXMuc3BhbklkfS0wMWA7XG4gICAgfVxuXG4gICAgY29tbWFuZE5hbWUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIENvbW1hbmRzLkVYUE9SVDtcbiAgICB9XG5cbiAgICBkZWZpbmVPcHRpb25zKGNvbW1hbmQ6IENvbW1hbmQpIHtcbiAgICAgICAgY29tbWFuZFxuICAgICAgICAgICAgLmFkZE9wdGlvbihcbiAgICAgICAgICAgICAgICBuZXcgT3B0aW9uKCctdiwgLS12ZXJib3NlJywgJ0VuYWJsZSB2ZXJib3NlIG1vZGUnKVxuICAgICAgICAgICAgICAgICAgICAubWFrZU9wdGlvbk1hbmRhdG9yeShmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgLmRlZmF1bHQoXG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzLmVudi5PVEVMX0NMSV9WRVJCT1NFICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzcy5lbnYuT1RFTF9DTElfVkVSQk9TRS50b0xvd2VyQ2FzZSgpID09PVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndHJ1ZSdcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLmFkZE9wdGlvbihcbiAgICAgICAgICAgICAgICBuZXcgT3B0aW9uKFxuICAgICAgICAgICAgICAgICAgICAnLWUsIC0tZW5kcG9pbnQgPHVybD4nLFxuICAgICAgICAgICAgICAgICAgICAnT1RFTCBFeHBvcnRlciBPVExQIGVuZHBvaW50J1xuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgLm1ha2VPcHRpb25NYW5kYXRvcnkodHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgLmRlZmF1bHQocHJvY2Vzcy5lbnYuT1RFTF9FWFBPUlRFUl9PVExQX0VORFBPSU5UKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLmFkZE9wdGlvbihcbiAgICAgICAgICAgICAgICBuZXcgT3B0aW9uKFxuICAgICAgICAgICAgICAgICAgICAnLXAsIC0tcHJvdG9jb2wgPHByb3RvY29sPicsXG4gICAgICAgICAgICAgICAgICAgICdPVEVMIEV4cG9ydGVyIE9UTFAgcHJvdG9jb2wnXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAubWFrZU9wdGlvbk1hbmRhdG9yeShmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgLmRlZmF1bHQoXG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzLmVudi5PVEVMX0VYUE9SVEVSX09UTFBfUFJPVE9DT0wgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFeHBvcnRlck9UTFBQcm90b2NvbHMuSFRUUF9KU09OXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgLmNob2ljZXMoT2JqZWN0LnZhbHVlcyhFeHBvcnRlck9UTFBQcm90b2NvbHMpKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLmFkZE9wdGlvbihcbiAgICAgICAgICAgICAgICBuZXcgT3B0aW9uKFxuICAgICAgICAgICAgICAgICAgICAnLWgsIC0taGVhZGVycyA8a2V5LXZhbHVlLXBhaXJzLi4uPicsXG4gICAgICAgICAgICAgICAgICAgICdPVEVMIEV4cG9ydGVyIE9UTFAgaGVhZGVycydcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIC5tYWtlT3B0aW9uTWFuZGF0b3J5KGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAuZGVmYXVsdChcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3MuZW52Lk9URUxfRVhQT1JURVJfT1RMUF9IRUFERVJTICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzcy5lbnYuT1RFTF9FWFBPUlRFUl9PVExQX0hFQURFUlMuc3BsaXQoJywnKVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuYWRkT3B0aW9uKFxuICAgICAgICAgICAgICAgIG5ldyBPcHRpb24oXG4gICAgICAgICAgICAgICAgICAgICctdHAsIC0tdHJhY2VwYXJlbnQgPGhlYWRlcj4nLFxuICAgICAgICAgICAgICAgICAgICAnVHJhY2VwYXJlbnQgaGVhZGVyIGluIFczQyB0cmFjZSBjb250ZXh0IGZvcm1hdCdcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIC5tYWtlT3B0aW9uTWFuZGF0b3J5KGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAuZGVmYXVsdChwcm9jZXNzLmVudi5UUkFDRVBBUkVOVClcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5hZGRPcHRpb24oXG4gICAgICAgICAgICAgICAgbmV3IE9wdGlvbihcbiAgICAgICAgICAgICAgICAgICAgJy10cGQsIC0tdHJhY2VwYXJlbnQtZGlzYWJsZScsXG4gICAgICAgICAgICAgICAgICAgICdEaXNhYmxlIHRyYWNlcGFyZW50IGhlYWRlciBiYXNlZCBXM0MgdHJhY2UgY29udGV4dCBwcm9wYWdhdGlvbiBmb3IgdGhlIGV4cG9ydGVkIHNwYW4nXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAubWFrZU9wdGlvbk1hbmRhdG9yeShmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgLmRlZmF1bHQoXG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzLmVudi5PVEVMX0NMSV9UUkFDRVBBUkVOVF9ESVNBQkxFICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzcy5lbnYuT1RFTF9DTElfVFJBQ0VQQVJFTlRfRElTQUJMRS50b0xvd2VyQ2FzZSgpID09PVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndHJ1ZSdcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLmFkZE9wdGlvbihcbiAgICAgICAgICAgICAgICBuZXcgT3B0aW9uKFxuICAgICAgICAgICAgICAgICAgICAnLXRwcCwgLS10cmFjZXBhcmVudC1wcmludCcsXG4gICAgICAgICAgICAgICAgICAgICdQcmludCB0cmFjZXBhcmVudCBoZWFkZXIgaW4gVzNDIHRyYWNlIGNvbnRleHQgZm9ybWF0IGZvciB0aGUgZXhwb3J0ZWQgc3BhbidcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIC5tYWtlT3B0aW9uTWFuZGF0b3J5KGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAuZGVmYXVsdChcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3MuZW52Lk9URUxfQ0xJX1RSQUNFUEFSRU5UX1BSSU5UICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzcy5lbnYuT1RFTF9DTElfVFJBQ0VQQVJFTlRfUFJJTlQudG9Mb3dlckNhc2UoKSA9PT1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3RydWUnXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5hZGRPcHRpb24oXG4gICAgICAgICAgICAgICAgbmV3IE9wdGlvbignLXQsIC0tdHJhY2UtaWQgPGlkPicsICdUcmFjZSBpZCcpXG4gICAgICAgICAgICAgICAgICAgIC5tYWtlT3B0aW9uTWFuZGF0b3J5KGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAuZGVmYXVsdChwcm9jZXNzLmVudi5PVEVMX0NMSV9UUkFDRV9JRClcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5hZGRPcHRpb24oXG4gICAgICAgICAgICAgICAgbmV3IE9wdGlvbignLXMsIC0tc3Bhbi1pZCA8aWQ+JywgJ1NwYW4gaWQnKVxuICAgICAgICAgICAgICAgICAgICAubWFrZU9wdGlvbk1hbmRhdG9yeShmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgLmRlZmF1bHQoZ2VuZXJhdGVTcGFuSWQoKSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5hZGRPcHRpb24oXG4gICAgICAgICAgICAgICAgbmV3IE9wdGlvbihcbiAgICAgICAgICAgICAgICAgICAgJy1wLCAtLXBhcmVudC1zcGFuLWlkIDxpZD4nLFxuICAgICAgICAgICAgICAgICAgICAnUGFyZW50IHNwYW4gaWQnXG4gICAgICAgICAgICAgICAgKS5tYWtlT3B0aW9uTWFuZGF0b3J5KGZhbHNlKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLmFkZE9wdGlvbihcbiAgICAgICAgICAgICAgICBuZXcgT3B0aW9uKFxuICAgICAgICAgICAgICAgICAgICAnLW4sIC0tbmFtZSA8bmFtZT4nLFxuICAgICAgICAgICAgICAgICAgICAnU3BhbiBuYW1lJ1xuICAgICAgICAgICAgICAgICkubWFrZU9wdGlvbk1hbmRhdG9yeSh0cnVlKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLmFkZE9wdGlvbihcbiAgICAgICAgICAgICAgICBuZXcgT3B0aW9uKCctc24sIC0tc2VydmljZS1uYW1lIDxuYW1lPicsICdTZXJ2aWNlIG5hbWUnKVxuICAgICAgICAgICAgICAgICAgICAubWFrZU9wdGlvbk1hbmRhdG9yeSh0cnVlKVxuICAgICAgICAgICAgICAgICAgICAuZGVmYXVsdChcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3MuZW52Lk9URUxfQ0xJX1NFUlZJQ0VfTkFNRSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3MuZW52Lk9URUxfU0VSVklDRV9OQU1FXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5hZGRPcHRpb24oXG4gICAgICAgICAgICAgICAgbmV3IE9wdGlvbignLWssIC0ta2luZCA8a2luZD4nLCAnU3BhbiBraW5kJylcbiAgICAgICAgICAgICAgICAgICAgLm1ha2VPcHRpb25NYW5kYXRvcnkoZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgIC5kZWZhdWx0KFNwYW5LaW5kW1NwYW5LaW5kLklOVEVSTkFMXSlcbiAgICAgICAgICAgICAgICAgICAgLmNob2ljZXMoXG4gICAgICAgICAgICAgICAgICAgICAgICBPYmplY3Qua2V5cyhTcGFuS2luZCkuZmlsdGVyKChvKSA9PiBpc05hTihOdW1iZXIobykpKVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuYWRkT3B0aW9uKFxuICAgICAgICAgICAgICAgIG5ldyBPcHRpb24oXG4gICAgICAgICAgICAgICAgICAgICctLXN0YXJ0LXRpbWUtbmFub3MgPG5hbm9zPicsXG4gICAgICAgICAgICAgICAgICAgICdTdGFydCB0aW1lIGluIG5hbm9zZWNvbmRzJ1xuICAgICAgICAgICAgICAgICkubWFrZU9wdGlvbk1hbmRhdG9yeShmYWxzZSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5hZGRPcHRpb24oXG4gICAgICAgICAgICAgICAgbmV3IE9wdGlvbihcbiAgICAgICAgICAgICAgICAgICAgJy0tc3RhcnQtdGltZS1taWNyb3MgPG1pY3Jvcz4nLFxuICAgICAgICAgICAgICAgICAgICAnU3RhcnQgdGltZSBpbiBtaWNyb3NlY29uZHMnXG4gICAgICAgICAgICAgICAgKS5tYWtlT3B0aW9uTWFuZGF0b3J5KGZhbHNlKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLmFkZE9wdGlvbihcbiAgICAgICAgICAgICAgICBuZXcgT3B0aW9uKFxuICAgICAgICAgICAgICAgICAgICAnLS1zdGFydC10aW1lLW1pbGxpcyA8bWlsbGlzPicsXG4gICAgICAgICAgICAgICAgICAgICdTdGFydCB0aW1lIGluIG1pbGxpc2Vjb25kcydcbiAgICAgICAgICAgICAgICApLm1ha2VPcHRpb25NYW5kYXRvcnkoZmFsc2UpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuYWRkT3B0aW9uKFxuICAgICAgICAgICAgICAgIG5ldyBPcHRpb24oXG4gICAgICAgICAgICAgICAgICAgICctLXN0YXJ0LXRpbWUtc2VjcyA8c2Vjcz4nLFxuICAgICAgICAgICAgICAgICAgICAnU3RhcnQgdGltZSBpbiBzZWNvbmRzJ1xuICAgICAgICAgICAgICAgICkubWFrZU9wdGlvbk1hbmRhdG9yeShmYWxzZSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5hZGRPcHRpb24oXG4gICAgICAgICAgICAgICAgbmV3IE9wdGlvbihcbiAgICAgICAgICAgICAgICAgICAgJy0tZW5kLXRpbWUtbmFub3MgPG5hbm9zPicsXG4gICAgICAgICAgICAgICAgICAgICdFbmQgdGltZSBpbiBuYW5vc2Vjb25kcydcbiAgICAgICAgICAgICAgICApLm1ha2VPcHRpb25NYW5kYXRvcnkoZmFsc2UpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuYWRkT3B0aW9uKFxuICAgICAgICAgICAgICAgIG5ldyBPcHRpb24oXG4gICAgICAgICAgICAgICAgICAgICctLWVuZC10aW1lLW1pY3JvcyA8bWljcm9zPicsXG4gICAgICAgICAgICAgICAgICAgICdFbmQgdGltZSBpbiBtaWNyb3NlY29uZHMnXG4gICAgICAgICAgICAgICAgKS5tYWtlT3B0aW9uTWFuZGF0b3J5KGZhbHNlKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLmFkZE9wdGlvbihcbiAgICAgICAgICAgICAgICBuZXcgT3B0aW9uKFxuICAgICAgICAgICAgICAgICAgICAnLS1lbmQtdGltZS1taWxsaXMgPG1pbGxpcz4nLFxuICAgICAgICAgICAgICAgICAgICAnRW5kIHRpbWUgaW4gbWlsbGlzZWNvbmRzJ1xuICAgICAgICAgICAgICAgICkubWFrZU9wdGlvbk1hbmRhdG9yeShmYWxzZSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5hZGRPcHRpb24oXG4gICAgICAgICAgICAgICAgbmV3IE9wdGlvbihcbiAgICAgICAgICAgICAgICAgICAgJy0tZW5kLXRpbWUtc2VjcyA8c2Vjcz4nLFxuICAgICAgICAgICAgICAgICAgICAnRW5kIHRpbWUgaW4gc2Vjb25kcydcbiAgICAgICAgICAgICAgICApLm1ha2VPcHRpb25NYW5kYXRvcnkoZmFsc2UpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuYWRkT3B0aW9uKFxuICAgICAgICAgICAgICAgIG5ldyBPcHRpb24oJy1zYyAtLXN0YXR1cy1jb2RlIDxjb2RlPicsICdTdGF0dXMgY29kZScpXG4gICAgICAgICAgICAgICAgICAgIC5tYWtlT3B0aW9uTWFuZGF0b3J5KGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAuZGVmYXVsdChTcGFuU3RhdHVzQ29kZVtTcGFuU3RhdHVzQ29kZS5VTlNFVF0pXG4gICAgICAgICAgICAgICAgICAgIC5jaG9pY2VzKFxuICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmtleXMoU3BhblN0YXR1c0NvZGUpLmZpbHRlcigobykgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc05hTihOdW1iZXIobykpXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5hZGRPcHRpb24oXG4gICAgICAgICAgICAgICAgbmV3IE9wdGlvbihcbiAgICAgICAgICAgICAgICAgICAgJy1zbSAtLXN0YXR1cy1tZXNzYWdlIDxtZXNzYWdlPicsXG4gICAgICAgICAgICAgICAgICAgICdTdGF0dXMgbWVzc2FnZSdcbiAgICAgICAgICAgICAgICApLm1ha2VPcHRpb25NYW5kYXRvcnkoZmFsc2UpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuYWRkT3B0aW9uKFxuICAgICAgICAgICAgICAgIG5ldyBPcHRpb24oXG4gICAgICAgICAgICAgICAgICAgICctYSAtLWF0dHJpYnV0ZXMgPGtleS12YWx1ZS1wYWlycy4uLj4nLFxuICAgICAgICAgICAgICAgICAgICAnU3BhbiBhdHRyaWJ1dGVzIGFzIHNwYWNlIHNlcGVyYXRlZCBrZXktdmFsdWUgcGFpcnMgKGtleTE9dmFsdWUxIGtleTI9dmFsdWUyIGtleTM9dmFsdWUzKSdcbiAgICAgICAgICAgICAgICApLm1ha2VPcHRpb25NYW5kYXRvcnkoZmFsc2UpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuYWRkT3B0aW9uKFxuICAgICAgICAgICAgICAgIG5ldyBPcHRpb24oXG4gICAgICAgICAgICAgICAgICAgICctc3AsIC0tc2VydmVyLXBvcnQgPHBvcnQ+JyxcbiAgICAgICAgICAgICAgICAgICAgJ09URUwgQ0xJIHNlcnZlciBwb3J0IGZvciBjb21tdW5pY2F0aW5nIG92ZXIgdG8gZXhwb3J0IHRyYWNlcyBhc3luY2hyb25vdXNseSBpbiBiYWNrZ3JvdW5kJ1xuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgLm1ha2VPcHRpb25NYW5kYXRvcnkoZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgIC5kZWZhdWx0KHByb2Nlc3MuZW52Lk9URUxfQ0xJX1NFUlZFUl9QT1JUKVxuICAgICAgICAgICAgKTtcbiAgICB9XG5cbiAgICBhc3luYyBleGVjdXRlKG9wdGlvbnM6IE9wdGlvblZhbHVlcyk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0aGlzLl9wYXJzZU9wdGlvbnMob3B0aW9ucyk7XG5cbiAgICAgICAgdGhpcy5fY2hlY2tPcHRpb25zKCk7XG5cbiAgICAgICAgY29uc3QgbWV0YWRhdGE6IFRyYWNlTWV0YWRhdGEgPSB7XG4gICAgICAgICAgICBzZXJ2aWNlTmFtZTogdGhpcy5zZXJ2aWNlTmFtZSxcbiAgICAgICAgfSBhcyBUcmFjZU1ldGFkYXRhO1xuICAgICAgICBjb25zdCBzcGFuczogU3BhbltdID0gW3RoaXMuX2NyZWF0ZVNwYW4oKV07XG4gICAgICAgIGF3YWl0IHRoaXMuX2V4cG9ydFNwYW5zKG1ldGFkYXRhLCBzcGFucyk7XG4gICAgICAgIGlmICh0aGlzLnRyYWNlUGFyZW50UHJpbnQpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKHRoaXMuX2dlbmVyYXRlVHJhY2VQYXJlbnQoKSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0= |
@@ -41,3 +41,4 @@ "use strict"; | ||
| .default(process.env.OTEL_CLI_VERBOSE && | ||
| process.env.OTEL_CLI_VERBOSE.toLowerCase() === 'true')) | ||
| process.env.OTEL_CLI_VERBOSE.toLowerCase() === | ||
| 'true')) | ||
| .addOption(new commander_1.Option('-t, --type <id-type>', 'Type of the id to be generated') | ||
@@ -63,2 +64,2 @@ .makeOptionMandatory(true) | ||
| exports.GenerateIdCommandExecutor = GenerateIdCommandExecutor; | ||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR2VuZXJhdGVJZENvbW1hbmRFeGVjdXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kL2dlbmVyYXRlLWlkL0dlbmVyYXRlSWRDb21tYW5kRXhlY3V0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSx3Q0FBeUM7QUFDekMsdUNBQThEO0FBQzlELHFEQUF1QztBQUN2QyxvQ0FBb0M7QUFFcEMseUNBQTBEO0FBRTFELE1BQWEseUJBQXlCO0lBR2xDLFdBQVc7UUFDUCxPQUFPLGdCQUFRLENBQUMsV0FBVyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxhQUFhLENBQUMsT0FBZ0I7UUFDMUIsT0FBTzthQUNGLFNBQVMsQ0FDTixJQUFJLGtCQUFNLENBQUMsZUFBZSxFQUFFLHFCQUFxQixDQUFDO2FBQzdDLG1CQUFtQixDQUFDLEtBQUssQ0FBQzthQUMxQixPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0I7WUFDakMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUUsS0FBSyxNQUFNLENBQUMsQ0FDakU7YUFDQSxTQUFTLENBQ04sSUFBSSxrQkFBTSxDQUFDLHNCQUFzQixFQUFFLGdDQUFnQyxDQUFDO2FBQy9ELG1CQUFtQixDQUFDLElBQUksQ0FBQzthQUN6QixPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxXQUFNLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQ3RFLENBQUM7SUFDVixDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFxQjtRQUMvQixJQUFJLENBQUMsY0FBYyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUM7UUFDdEMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFNUMsUUFBUSxPQUFPLENBQUMsSUFBSSxFQUFFO1lBQ2xCLEtBQUssV0FBTSxDQUFDLEtBQUs7Z0JBQ2IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFBLHVCQUFlLEdBQUUsQ0FBQyxDQUFDO2dCQUMvQixNQUFNO1lBQ1YsS0FBSyxXQUFNLENBQUMsSUFBSTtnQkFDWixPQUFPLENBQUMsR0FBRyxDQUFDLElBQUEsc0JBQWMsR0FBRSxDQUFDLENBQUM7Z0JBQzlCLE1BQU07WUFDVjtnQkFDSSxNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixPQUFPLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztTQUNoRTtJQUNMLENBQUM7Q0FFSjtBQXRDRCw4REFzQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tYW5kRXhlY3V0b3IgfSBmcm9tICcuLi9Db21tYW5kRXhlY3V0b3InO1xuaW1wb3J0IHsgSWRUeXBlIH0gZnJvbSAnLi4vLi4vZG9tYWluL0lkJztcbmltcG9ydCB7IGdlbmVyYXRlU3BhbklkLCBnZW5lcmF0ZVRyYWNlSWQgfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgKiBhcyBsb2dnZXIgZnJvbSAnLi4vLi4vbG9nZ2VyJztcbmltcG9ydCB7IENvbW1hbmRzIH0gZnJvbSAnLi4vaW5kZXgnO1xuXG5pbXBvcnQgeyBDb21tYW5kLCBPcHRpb24sIE9wdGlvblZhbHVlcyB9IGZyb20gJ2NvbW1hbmRlcic7XG5cbmV4cG9ydCBjbGFzcyBHZW5lcmF0ZUlkQ29tbWFuZEV4ZWN1dG9yIGltcGxlbWVudHMgQ29tbWFuZEV4ZWN1dG9yIHtcbiAgICBwcml2YXRlIHZlcmJvc2VFbmFibGVkOiBib29sZWFuO1xuXG4gICAgY29tbWFuZE5hbWUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIENvbW1hbmRzLkdFTkVSQVRFX0lEO1xuICAgIH1cblxuICAgIGRlZmluZU9wdGlvbnMoY29tbWFuZDogQ29tbWFuZCkge1xuICAgICAgICBjb21tYW5kXG4gICAgICAgICAgICAuYWRkT3B0aW9uKFxuICAgICAgICAgICAgICAgIG5ldyBPcHRpb24oJy12LCAtLXZlcmJvc2UnLCAnRW5hYmxlIHZlcmJvc2UgbW9kZScpXG4gICAgICAgICAgICAgICAgICAgIC5tYWtlT3B0aW9uTWFuZGF0b3J5KGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAuZGVmYXVsdChwcm9jZXNzLmVudi5PVEVMX0NMSV9WRVJCT1NFICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzLmVudi5PVEVMX0NMSV9WRVJCT1NFLnRvTG93ZXJDYXNlKCkgPT09ICd0cnVlJylcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5hZGRPcHRpb24oXG4gICAgICAgICAgICAgICAgbmV3IE9wdGlvbignLXQsIC0tdHlwZSA8aWQtdHlwZT4nLCAnVHlwZSBvZiB0aGUgaWQgdG8gYmUgZ2VuZXJhdGVkJylcbiAgICAgICAgICAgICAgICAgICAgLm1ha2VPcHRpb25NYW5kYXRvcnkodHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgLmNob2ljZXMoT2JqZWN0LnZhbHVlcyhJZFR5cGUpLmZpbHRlcigobykgPT4gaXNOYU4oTnVtYmVyKG8pKSkpXG4gICAgICAgICAgICApO1xuICAgIH1cblxuICAgIGFzeW5jIGV4ZWN1dGUob3B0aW9uczogT3B0aW9uVmFsdWVzKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRoaXMudmVyYm9zZUVuYWJsZWQgPSBvcHRpb25zLnZlcmJvc2U7XG4gICAgICAgIGxvZ2dlci5zZXREZWJ1Z0VuYWJsZWQodGhpcy52ZXJib3NlRW5hYmxlZCk7XG5cbiAgICAgICAgc3dpdGNoIChvcHRpb25zLnR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgSWRUeXBlLlRSQUNFOlxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGdlbmVyYXRlVHJhY2VJZCgpKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgSWRUeXBlLlNQQU46XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coZ2VuZXJhdGVTcGFuSWQoKSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5yZWNvZ25pemVkIGlkIHR5cGU6ICR7b3B0aW9ucy50eXBlfWApO1xuICAgICAgICB9XG4gICAgfVxuXG59XG4iXX0= | ||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR2VuZXJhdGVJZENvbW1hbmRFeGVjdXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kL2dlbmVyYXRlLWlkL0dlbmVyYXRlSWRDb21tYW5kRXhlY3V0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSx3Q0FBeUM7QUFDekMsdUNBQThEO0FBQzlELHFEQUF1QztBQUN2QyxvQ0FBb0M7QUFFcEMseUNBQTBEO0FBRTFELE1BQWEseUJBQXlCO0lBR2xDLFdBQVc7UUFDUCxPQUFPLGdCQUFRLENBQUMsV0FBVyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxhQUFhLENBQUMsT0FBZ0I7UUFDMUIsT0FBTzthQUNGLFNBQVMsQ0FDTixJQUFJLGtCQUFNLENBQUMsZUFBZSxFQUFFLHFCQUFxQixDQUFDO2FBQzdDLG1CQUFtQixDQUFDLEtBQUssQ0FBQzthQUMxQixPQUFPLENBQ0osT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0I7WUFDeEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUU7Z0JBQ3RDLE1BQU0sQ0FDakIsQ0FDUjthQUNBLFNBQVMsQ0FDTixJQUFJLGtCQUFNLENBQ04sc0JBQXNCLEVBQ3RCLGdDQUFnQyxDQUNuQzthQUNJLG1CQUFtQixDQUFDLElBQUksQ0FBQzthQUN6QixPQUFPLENBQ0osTUFBTSxDQUFDLE1BQU0sQ0FBQyxXQUFNLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUN4RCxDQUNSLENBQUM7SUFDVixDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFxQjtRQUMvQixJQUFJLENBQUMsY0FBYyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUM7UUFDdEMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFNUMsUUFBUSxPQUFPLENBQUMsSUFBSSxFQUFFO1lBQ2xCLEtBQUssV0FBTSxDQUFDLEtBQUs7Z0JBQ2IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFBLHVCQUFlLEdBQUUsQ0FBQyxDQUFDO2dCQUMvQixNQUFNO1lBQ1YsS0FBSyxXQUFNLENBQUMsSUFBSTtnQkFDWixPQUFPLENBQUMsR0FBRyxDQUFDLElBQUEsc0JBQWMsR0FBRSxDQUFDLENBQUM7Z0JBQzlCLE1BQU07WUFDVjtnQkFDSSxNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixPQUFPLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztTQUNoRTtJQUNMLENBQUM7Q0FDSjtBQTdDRCw4REE2Q0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tYW5kRXhlY3V0b3IgfSBmcm9tICcuLi9Db21tYW5kRXhlY3V0b3InO1xuaW1wb3J0IHsgSWRUeXBlIH0gZnJvbSAnLi4vLi4vZG9tYWluL0lkJztcbmltcG9ydCB7IGdlbmVyYXRlU3BhbklkLCBnZW5lcmF0ZVRyYWNlSWQgfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgKiBhcyBsb2dnZXIgZnJvbSAnLi4vLi4vbG9nZ2VyJztcbmltcG9ydCB7IENvbW1hbmRzIH0gZnJvbSAnLi4vaW5kZXgnO1xuXG5pbXBvcnQgeyBDb21tYW5kLCBPcHRpb24sIE9wdGlvblZhbHVlcyB9IGZyb20gJ2NvbW1hbmRlcic7XG5cbmV4cG9ydCBjbGFzcyBHZW5lcmF0ZUlkQ29tbWFuZEV4ZWN1dG9yIGltcGxlbWVudHMgQ29tbWFuZEV4ZWN1dG9yIHtcbiAgICBwcml2YXRlIHZlcmJvc2VFbmFibGVkOiBib29sZWFuO1xuXG4gICAgY29tbWFuZE5hbWUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIENvbW1hbmRzLkdFTkVSQVRFX0lEO1xuICAgIH1cblxuICAgIGRlZmluZU9wdGlvbnMoY29tbWFuZDogQ29tbWFuZCkge1xuICAgICAgICBjb21tYW5kXG4gICAgICAgICAgICAuYWRkT3B0aW9uKFxuICAgICAgICAgICAgICAgIG5ldyBPcHRpb24oJy12LCAtLXZlcmJvc2UnLCAnRW5hYmxlIHZlcmJvc2UgbW9kZScpXG4gICAgICAgICAgICAgICAgICAgIC5tYWtlT3B0aW9uTWFuZGF0b3J5KGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAuZGVmYXVsdChcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3MuZW52Lk9URUxfQ0xJX1ZFUkJPU0UgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzLmVudi5PVEVMX0NMSV9WRVJCT1NFLnRvTG93ZXJDYXNlKCkgPT09XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0cnVlJ1xuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuYWRkT3B0aW9uKFxuICAgICAgICAgICAgICAgIG5ldyBPcHRpb24oXG4gICAgICAgICAgICAgICAgICAgICctdCwgLS10eXBlIDxpZC10eXBlPicsXG4gICAgICAgICAgICAgICAgICAgICdUeXBlIG9mIHRoZSBpZCB0byBiZSBnZW5lcmF0ZWQnXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAubWFrZU9wdGlvbk1hbmRhdG9yeSh0cnVlKVxuICAgICAgICAgICAgICAgICAgICAuY2hvaWNlcyhcbiAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdC52YWx1ZXMoSWRUeXBlKS5maWx0ZXIoKG8pID0+IGlzTmFOKE51bWJlcihvKSkpXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICk7XG4gICAgfVxuXG4gICAgYXN5bmMgZXhlY3V0ZShvcHRpb25zOiBPcHRpb25WYWx1ZXMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdGhpcy52ZXJib3NlRW5hYmxlZCA9IG9wdGlvbnMudmVyYm9zZTtcbiAgICAgICAgbG9nZ2VyLnNldERlYnVnRW5hYmxlZCh0aGlzLnZlcmJvc2VFbmFibGVkKTtcblxuICAgICAgICBzd2l0Y2ggKG9wdGlvbnMudHlwZSkge1xuICAgICAgICAgICAgY2FzZSBJZFR5cGUuVFJBQ0U6XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coZ2VuZXJhdGVUcmFjZUlkKCkpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBJZFR5cGUuU1BBTjpcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhnZW5lcmF0ZVNwYW5JZCgpKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbnJlY29nbml6ZWQgaWQgdHlwZTogJHtvcHRpb25zLnR5cGV9YCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0= |
@@ -46,3 +46,4 @@ "use strict"; | ||
| .default(process.env.OTEL_CLI_VERBOSE && | ||
| process.env.OTEL_CLI_VERBOSE.toLowerCase() === 'true')) | ||
| process.env.OTEL_CLI_VERBOSE.toLowerCase() === | ||
| 'true')) | ||
| .addOption(new commander_1.Option('-sp, --server-port <port>', 'OTEL CLI server port for communicating over to shutdown gracefully') | ||
@@ -69,3 +70,5 @@ .makeOptionMandatory(false) | ||
| try { | ||
| const res = await axios_1.default.delete(serverURL, { timeout: SHUTDOWN_REQUEST_TIMEOUT }); | ||
| const res = await axios_1.default.delete(serverURL, { | ||
| timeout: SHUTDOWN_REQUEST_TIMEOUT, | ||
| }); | ||
| if (res.status / 100 != 2) { | ||
@@ -86,2 +89,2 @@ throw new Error(`Invalid response (status code=${res.status}) from server endpoint ${serverURL}`); | ||
| exports.ShutdownServerCommandExecutor = ShutdownServerCommandExecutor; | ||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2h1dGRvd25TZXJ2ZXJDb21tYW5kRXhlY3V0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbWFuZC9zZXJ2ZXIvU2h1dGRvd25TZXJ2ZXJDb21tYW5kRXhlY3V0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvQ0FBb0M7QUFFcEMscURBQXVDO0FBQ3ZDLHFDQUFrQztBQUNsQywrQ0FBMkU7QUFFM0UseUNBQTBEO0FBQzFELGtEQUF5RDtBQUV6RCxNQUFNLHdCQUF3QixHQUFXLEtBQUssQ0FBQztBQUUvQyxNQUFhLDZCQUE2QjtJQUl0QyxXQUFXO1FBQ1AsT0FBTyxnQkFBUSxDQUFDLGVBQWUsQ0FBQztJQUNwQyxDQUFDO0lBRUQsYUFBYSxDQUFDLE9BQWdCO1FBQzFCLE9BQU87YUFDRixTQUFTLENBQ04sSUFBSSxrQkFBTSxDQUFDLGVBQWUsRUFBRSxxQkFBcUIsQ0FBQzthQUM3QyxtQkFBbUIsQ0FBQyxLQUFLLENBQUM7YUFDMUIsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCO1lBQ2pDLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxFQUFFLEtBQUssTUFBTSxDQUFDLENBQ2pFO2FBQ0EsU0FBUyxDQUNOLElBQUksa0JBQU0sQ0FBQywyQkFBMkIsRUFDbEMsb0VBQW9FLENBQUM7YUFDcEUsbUJBQW1CLENBQUMsS0FBSyxDQUFDO2FBQzFCLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLG9CQUFvQixJQUFJLCtCQUFtQixDQUFDLENBQ3hFLENBQUM7SUFDVixDQUFDO0lBRU8sYUFBYSxDQUFDLE9BQXFCO1FBQ3ZDLElBQUksQ0FBQyxjQUFjLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQztRQUN0QyxNQUFNLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUU1QyxJQUFJLENBQUMsVUFBVSxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVPLGFBQWE7UUFDakIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDbEIsTUFBTSxDQUFDLEtBQUssQ0FBQyx5Q0FBeUMsQ0FBQyxDQUFDO1lBQ3hELElBQUEsV0FBSSxFQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ1g7SUFDTCxDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFxQjs7UUFDL0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUU1QixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFFckIsTUFBTSxTQUFTLEdBQVcsVUFBVSwrQkFBbUIsSUFBSSxJQUFJLENBQUMsVUFBVSxXQUFXLENBQUM7UUFDdEYsSUFBSTtZQUNBLE1BQU0sR0FBRyxHQUFrQixNQUFNLGVBQUssQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLEVBQUUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLENBQUMsQ0FBQztZQUNoRyxJQUFJLEdBQUcsQ0FBQyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsRUFBRTtnQkFDdkIsTUFBTSxJQUFJLEtBQUssQ0FDWCxpQ0FBaUMsR0FBRyxDQUFDLE1BQU0sMEJBQTBCLFNBQVMsRUFBRSxDQUNuRixDQUFDO2FBQ0w7U0FDSjtRQUFDLE9BQU8sR0FBcUIsRUFBRTtZQUM1QixJQUFJLE1BQUEsR0FBRyxhQUFILEdBQUcsdUJBQUgsR0FBRyxDQUFFLFFBQVEsMENBQUUsTUFBTSxFQUFFO2dCQUN2QixNQUFNLElBQUksS0FBSyxDQUNYLGlDQUFpQyxNQUFBLEdBQUcsYUFBSCxHQUFHLHVCQUFILEdBQUcsQ0FBRSxRQUFRLDBDQUFFLE1BQU0sMEJBQTBCLFNBQVMsRUFBRSxDQUM5RixDQUFDO2FBQ0w7aUJBQU07Z0JBQ0gsTUFBTSxJQUFJLEtBQUssQ0FDWCw4Q0FBOEMsU0FBUyxLQUFLLEdBQUcsQ0FBQyxJQUFJLEtBQUssR0FBRyxDQUFDLE9BQU8sR0FBRyxDQUMxRixDQUFDO2FBQ0w7U0FDSjtJQUNMLENBQUM7Q0FFSjtBQWhFRCxzRUFnRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tYW5kcyB9IGZyb20gJy4uL2luZGV4JztcbmltcG9ydCB7IENvbW1hbmRFeGVjdXRvciB9IGZyb20gJy4uL0NvbW1hbmRFeGVjdXRvcic7XG5pbXBvcnQgKiBhcyBsb2dnZXIgZnJvbSAnLi4vLi4vbG9nZ2VyJztcbmltcG9ydCB7IGV4aXQgfSBmcm9tICcuLi8uLi9leGl0JztcbmltcG9ydCB7IERFRkFVTFRfU0VSVkVSX0hPU1QsIERFRkFVTFRfU0VSVkVSX1BPUlQgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuXG5pbXBvcnQgeyBDb21tYW5kLCBPcHRpb24sIE9wdGlvblZhbHVlcyB9IGZyb20gJ2NvbW1hbmRlcic7XG5pbXBvcnQgYXhpb3MsIHsgQXhpb3NFcnJvciwgQXhpb3NSZXNwb25zZSB9IGZyb20gJ2F4aW9zJztcblxuY29uc3QgU0hVVERPV05fUkVRVUVTVF9USU1FT1VUOiBudW1iZXIgPSAzMDAwMDtcblxuZXhwb3J0IGNsYXNzIFNodXRkb3duU2VydmVyQ29tbWFuZEV4ZWN1dG9yIGltcGxlbWVudHMgQ29tbWFuZEV4ZWN1dG9yIHtcbiAgICBwcml2YXRlIHZlcmJvc2VFbmFibGVkOiBib29sZWFuO1xuICAgIHByaXZhdGUgc2VydmVyUG9ydDogbnVtYmVyO1xuXG4gICAgY29tbWFuZE5hbWUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIENvbW1hbmRzLlNIVVRET1dOX1NFUlZFUjtcbiAgICB9XG5cbiAgICBkZWZpbmVPcHRpb25zKGNvbW1hbmQ6IENvbW1hbmQpIHtcbiAgICAgICAgY29tbWFuZFxuICAgICAgICAgICAgLmFkZE9wdGlvbihcbiAgICAgICAgICAgICAgICBuZXcgT3B0aW9uKCctdiwgLS12ZXJib3NlJywgJ0VuYWJsZSB2ZXJib3NlIG1vZGUnKVxuICAgICAgICAgICAgICAgICAgICAubWFrZU9wdGlvbk1hbmRhdG9yeShmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgLmRlZmF1bHQocHJvY2Vzcy5lbnYuT1RFTF9DTElfVkVSQk9TRSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzcy5lbnYuT1RFTF9DTElfVkVSQk9TRS50b0xvd2VyQ2FzZSgpID09PSAndHJ1ZScpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuYWRkT3B0aW9uKFxuICAgICAgICAgICAgICAgIG5ldyBPcHRpb24oJy1zcCwgLS1zZXJ2ZXItcG9ydCA8cG9ydD4nLFxuICAgICAgICAgICAgICAgICAgICAnT1RFTCBDTEkgc2VydmVyIHBvcnQgZm9yIGNvbW11bmljYXRpbmcgb3ZlciB0byBzaHV0ZG93biBncmFjZWZ1bGx5JylcbiAgICAgICAgICAgICAgICAgICAgLm1ha2VPcHRpb25NYW5kYXRvcnkoZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgIC5kZWZhdWx0KHByb2Nlc3MuZW52Lk9URUxfQ0xJX1NFUlZFUl9QT1JUIHx8IERFRkFVTFRfU0VSVkVSX1BPUlQpXG4gICAgICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3BhcnNlT3B0aW9ucyhvcHRpb25zOiBPcHRpb25WYWx1ZXMpOiB2b2lkIHtcbiAgICAgICAgdGhpcy52ZXJib3NlRW5hYmxlZCA9IG9wdGlvbnMudmVyYm9zZTtcbiAgICAgICAgbG9nZ2VyLnNldERlYnVnRW5hYmxlZCh0aGlzLnZlcmJvc2VFbmFibGVkKTtcblxuICAgICAgICB0aGlzLnNlcnZlclBvcnQgPSBwYXJzZUludChvcHRpb25zLnNlcnZlclBvcnQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2NoZWNrT3B0aW9ucygpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLnNlcnZlclBvcnQpIHtcbiAgICAgICAgICAgIGxvZ2dlci5lcnJvcignT1RFTCBDTEkgc2VydmVyIHBvcnQgbXVzdCBiZSBzcGVjaWZpZWQhJyk7XG4gICAgICAgICAgICBleGl0KDEpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYXN5bmMgZXhlY3V0ZShvcHRpb25zOiBPcHRpb25WYWx1ZXMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdGhpcy5fcGFyc2VPcHRpb25zKG9wdGlvbnMpO1xuXG4gICAgICAgIHRoaXMuX2NoZWNrT3B0aW9ucygpO1xuXG4gICAgICAgIGNvbnN0IHNlcnZlclVSTDogc3RyaW5nID0gYGh0dHA6Ly8ke0RFRkFVTFRfU0VSVkVSX0hPU1R9OiR7dGhpcy5zZXJ2ZXJQb3J0fS9zaHV0ZG93bmA7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCByZXM6IEF4aW9zUmVzcG9uc2UgPSBhd2FpdCBheGlvcy5kZWxldGUoc2VydmVyVVJMLCB7IHRpbWVvdXQ6IFNIVVRET1dOX1JFUVVFU1RfVElNRU9VVCB9KTtcbiAgICAgICAgICAgIGlmIChyZXMuc3RhdHVzIC8gMTAwICE9IDIpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgICAgICAgIGBJbnZhbGlkIHJlc3BvbnNlIChzdGF0dXMgY29kZT0ke3Jlcy5zdGF0dXN9KSBmcm9tIHNlcnZlciBlbmRwb2ludCAke3NlcnZlclVSTH1gXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZXJyOiBBeGlvc0Vycm9yIHwgYW55KSB7XG4gICAgICAgICAgICBpZiAoZXJyPy5yZXNwb25zZT8uc3RhdHVzKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICAgICAgICBgSW52YWxpZCByZXNwb25zZSAoc3RhdHVzIGNvZGU9JHtlcnI/LnJlc3BvbnNlPy5zdGF0dXN9KSBmcm9tIHNlcnZlciBlbmRwb2ludCAke3NlcnZlclVSTH1gXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICAgICAgICBgVW5hYmxlIHRvIHNodXRkb3duIHNlcnZlciB0aHJvdWdoIGVuZHBvaW50ICR7c2VydmVyVVJMfTogJHtlcnIubmFtZX0gKCR7ZXJyLm1lc3NhZ2V9KWBcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG59XG4iXX0= | ||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2h1dGRvd25TZXJ2ZXJDb21tYW5kRXhlY3V0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbWFuZC9zZXJ2ZXIvU2h1dGRvd25TZXJ2ZXJDb21tYW5kRXhlY3V0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvQ0FBb0M7QUFFcEMscURBQXVDO0FBQ3ZDLHFDQUFrQztBQUNsQywrQ0FBMkU7QUFFM0UseUNBQTBEO0FBQzFELGtEQUF5RDtBQUV6RCxNQUFNLHdCQUF3QixHQUFXLEtBQUssQ0FBQztBQUUvQyxNQUFhLDZCQUE2QjtJQUl0QyxXQUFXO1FBQ1AsT0FBTyxnQkFBUSxDQUFDLGVBQWUsQ0FBQztJQUNwQyxDQUFDO0lBRUQsYUFBYSxDQUFDLE9BQWdCO1FBQzFCLE9BQU87YUFDRixTQUFTLENBQ04sSUFBSSxrQkFBTSxDQUFDLGVBQWUsRUFBRSxxQkFBcUIsQ0FBQzthQUM3QyxtQkFBbUIsQ0FBQyxLQUFLLENBQUM7YUFDMUIsT0FBTyxDQUNKLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCO1lBQ3hCLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxFQUFFO2dCQUN0QyxNQUFNLENBQ2pCLENBQ1I7YUFDQSxTQUFTLENBQ04sSUFBSSxrQkFBTSxDQUNOLDJCQUEyQixFQUMzQixvRUFBb0UsQ0FDdkU7YUFDSSxtQkFBbUIsQ0FBQyxLQUFLLENBQUM7YUFDMUIsT0FBTyxDQUNKLE9BQU8sQ0FBQyxHQUFHLENBQUMsb0JBQW9CLElBQUksK0JBQW1CLENBQzFELENBQ1IsQ0FBQztJQUNWLENBQUM7SUFFTyxhQUFhLENBQUMsT0FBcUI7UUFDdkMsSUFBSSxDQUFDLGNBQWMsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDO1FBQ3RDLE1BQU0sQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRTVDLElBQUksQ0FBQyxVQUFVLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRU8sYUFBYTtRQUNqQixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNsQixNQUFNLENBQUMsS0FBSyxDQUFDLHlDQUF5QyxDQUFDLENBQUM7WUFDeEQsSUFBQSxXQUFJLEVBQUMsQ0FBQyxDQUFDLENBQUM7U0FDWDtJQUNMLENBQUM7SUFFRCxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQXFCOztRQUMvQixJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTVCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUVyQixNQUFNLFNBQVMsR0FBVyxVQUFVLCtCQUFtQixJQUFJLElBQUksQ0FBQyxVQUFVLFdBQVcsQ0FBQztRQUN0RixJQUFJO1lBQ0EsTUFBTSxHQUFHLEdBQWtCLE1BQU0sZUFBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUU7Z0JBQ3JELE9BQU8sRUFBRSx3QkFBd0I7YUFDcEMsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxHQUFHLENBQUMsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEVBQUU7Z0JBQ3ZCLE1BQU0sSUFBSSxLQUFLLENBQ1gsaUNBQWlDLEdBQUcsQ0FBQyxNQUFNLDBCQUEwQixTQUFTLEVBQUUsQ0FDbkYsQ0FBQzthQUNMO1NBQ0o7UUFBQyxPQUFPLEdBQXFCLEVBQUU7WUFDNUIsSUFBSSxNQUFBLEdBQUcsYUFBSCxHQUFHLHVCQUFILEdBQUcsQ0FBRSxRQUFRLDBDQUFFLE1BQU0sRUFBRTtnQkFDdkIsTUFBTSxJQUFJLEtBQUssQ0FDWCxpQ0FBaUMsTUFBQSxHQUFHLGFBQUgsR0FBRyx1QkFBSCxHQUFHLENBQUUsUUFBUSwwQ0FBRSxNQUFNLDBCQUEwQixTQUFTLEVBQUUsQ0FDOUYsQ0FBQzthQUNMO2lCQUFNO2dCQUNILE1BQU0sSUFBSSxLQUFLLENBQ1gsOENBQThDLFNBQVMsS0FBSyxHQUFHLENBQUMsSUFBSSxLQUFLLEdBQUcsQ0FBQyxPQUFPLEdBQUcsQ0FDMUYsQ0FBQzthQUNMO1NBQ0o7SUFDTCxDQUFDO0NBQ0o7QUF4RUQsc0VBd0VDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbWFuZHMgfSBmcm9tICcuLi9pbmRleCc7XG5pbXBvcnQgeyBDb21tYW5kRXhlY3V0b3IgfSBmcm9tICcuLi9Db21tYW5kRXhlY3V0b3InO1xuaW1wb3J0ICogYXMgbG9nZ2VyIGZyb20gJy4uLy4uL2xvZ2dlcic7XG5pbXBvcnQgeyBleGl0IH0gZnJvbSAnLi4vLi4vZXhpdCc7XG5pbXBvcnQgeyBERUZBVUxUX1NFUlZFUl9IT1NULCBERUZBVUxUX1NFUlZFUl9QT1JUIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcblxuaW1wb3J0IHsgQ29tbWFuZCwgT3B0aW9uLCBPcHRpb25WYWx1ZXMgfSBmcm9tICdjb21tYW5kZXInO1xuaW1wb3J0IGF4aW9zLCB7IEF4aW9zRXJyb3IsIEF4aW9zUmVzcG9uc2UgfSBmcm9tICdheGlvcyc7XG5cbmNvbnN0IFNIVVRET1dOX1JFUVVFU1RfVElNRU9VVDogbnVtYmVyID0gMzAwMDA7XG5cbmV4cG9ydCBjbGFzcyBTaHV0ZG93blNlcnZlckNvbW1hbmRFeGVjdXRvciBpbXBsZW1lbnRzIENvbW1hbmRFeGVjdXRvciB7XG4gICAgcHJpdmF0ZSB2ZXJib3NlRW5hYmxlZDogYm9vbGVhbjtcbiAgICBwcml2YXRlIHNlcnZlclBvcnQ6IG51bWJlcjtcblxuICAgIGNvbW1hbmROYW1lKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBDb21tYW5kcy5TSFVURE9XTl9TRVJWRVI7XG4gICAgfVxuXG4gICAgZGVmaW5lT3B0aW9ucyhjb21tYW5kOiBDb21tYW5kKSB7XG4gICAgICAgIGNvbW1hbmRcbiAgICAgICAgICAgIC5hZGRPcHRpb24oXG4gICAgICAgICAgICAgICAgbmV3IE9wdGlvbignLXYsIC0tdmVyYm9zZScsICdFbmFibGUgdmVyYm9zZSBtb2RlJylcbiAgICAgICAgICAgICAgICAgICAgLm1ha2VPcHRpb25NYW5kYXRvcnkoZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgIC5kZWZhdWx0KFxuICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzcy5lbnYuT1RFTF9DTElfVkVSQk9TRSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3MuZW52Lk9URUxfQ0xJX1ZFUkJPU0UudG9Mb3dlckNhc2UoKSA9PT1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3RydWUnXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5hZGRPcHRpb24oXG4gICAgICAgICAgICAgICAgbmV3IE9wdGlvbihcbiAgICAgICAgICAgICAgICAgICAgJy1zcCwgLS1zZXJ2ZXItcG9ydCA8cG9ydD4nLFxuICAgICAgICAgICAgICAgICAgICAnT1RFTCBDTEkgc2VydmVyIHBvcnQgZm9yIGNvbW11bmljYXRpbmcgb3ZlciB0byBzaHV0ZG93biBncmFjZWZ1bGx5J1xuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgLm1ha2VPcHRpb25NYW5kYXRvcnkoZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgIC5kZWZhdWx0KFxuICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzcy5lbnYuT1RFTF9DTElfU0VSVkVSX1BPUlQgfHwgREVGQVVMVF9TRVJWRVJfUE9SVFxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3BhcnNlT3B0aW9ucyhvcHRpb25zOiBPcHRpb25WYWx1ZXMpOiB2b2lkIHtcbiAgICAgICAgdGhpcy52ZXJib3NlRW5hYmxlZCA9IG9wdGlvbnMudmVyYm9zZTtcbiAgICAgICAgbG9nZ2VyLnNldERlYnVnRW5hYmxlZCh0aGlzLnZlcmJvc2VFbmFibGVkKTtcblxuICAgICAgICB0aGlzLnNlcnZlclBvcnQgPSBwYXJzZUludChvcHRpb25zLnNlcnZlclBvcnQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2NoZWNrT3B0aW9ucygpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLnNlcnZlclBvcnQpIHtcbiAgICAgICAgICAgIGxvZ2dlci5lcnJvcignT1RFTCBDTEkgc2VydmVyIHBvcnQgbXVzdCBiZSBzcGVjaWZpZWQhJyk7XG4gICAgICAgICAgICBleGl0KDEpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYXN5bmMgZXhlY3V0ZShvcHRpb25zOiBPcHRpb25WYWx1ZXMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdGhpcy5fcGFyc2VPcHRpb25zKG9wdGlvbnMpO1xuXG4gICAgICAgIHRoaXMuX2NoZWNrT3B0aW9ucygpO1xuXG4gICAgICAgIGNvbnN0IHNlcnZlclVSTDogc3RyaW5nID0gYGh0dHA6Ly8ke0RFRkFVTFRfU0VSVkVSX0hPU1R9OiR7dGhpcy5zZXJ2ZXJQb3J0fS9zaHV0ZG93bmA7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCByZXM6IEF4aW9zUmVzcG9uc2UgPSBhd2FpdCBheGlvcy5kZWxldGUoc2VydmVyVVJMLCB7XG4gICAgICAgICAgICAgICAgdGltZW91dDogU0hVVERPV05fUkVRVUVTVF9USU1FT1VULFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpZiAocmVzLnN0YXR1cyAvIDEwMCAhPSAyKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICAgICAgICBgSW52YWxpZCByZXNwb25zZSAoc3RhdHVzIGNvZGU9JHtyZXMuc3RhdHVzfSkgZnJvbSBzZXJ2ZXIgZW5kcG9pbnQgJHtzZXJ2ZXJVUkx9YFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGVycjogQXhpb3NFcnJvciB8IGFueSkge1xuICAgICAgICAgICAgaWYgKGVycj8ucmVzcG9uc2U/LnN0YXR1cykge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgICAgICAgYEludmFsaWQgcmVzcG9uc2UgKHN0YXR1cyBjb2RlPSR7ZXJyPy5yZXNwb25zZT8uc3RhdHVzfSkgZnJvbSBzZXJ2ZXIgZW5kcG9pbnQgJHtzZXJ2ZXJVUkx9YFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgICAgICAgYFVuYWJsZSB0byBzaHV0ZG93biBzZXJ2ZXIgdGhyb3VnaCBlbmRwb2ludCAke3NlcnZlclVSTH06ICR7ZXJyLm5hbWV9ICgke2Vyci5tZXNzYWdlfSlgXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ== |
@@ -6,3 +6,2 @@ import { CommandExecutor } from '../CommandExecutor'; | ||
| private exporterOTLPEndpoint; | ||
| private exporterOTLPTracesEndpoint; | ||
| private exporterOTLPProtocol; | ||
@@ -15,5 +14,4 @@ private exporterOTLPHeaders; | ||
| private _checkOptions; | ||
| private _resolveExporterOTLPTracesEndpoint; | ||
| private _resolveExporterOTLPHeaders; | ||
| execute(options: OptionValues): Promise<void>; | ||
| } |
@@ -33,4 +33,4 @@ "use strict"; | ||
| const server_1 = require("../../server"); | ||
| const constants_1 = require("../../constants"); | ||
| const commander_1 = require("commander"); | ||
| const constants_1 = require("../../constants"); | ||
| class StartServerCommandExecutor { | ||
@@ -45,9 +45,7 @@ commandName() { | ||
| .default(process.env.OTEL_CLI_VERBOSE && | ||
| process.env.OTEL_CLI_VERBOSE.toLowerCase() === 'true')) | ||
| process.env.OTEL_CLI_VERBOSE.toLowerCase() === | ||
| 'true')) | ||
| .addOption(new commander_1.Option('-e, --endpoint <url>', 'OTEL Exporter OTLP endpoint') | ||
| .makeOptionMandatory(false) | ||
| .makeOptionMandatory(true) | ||
| .default(process.env.OTEL_EXPORTER_OTLP_ENDPOINT)) | ||
| .addOption(new commander_1.Option('-te, --traces-endpoint <url>', 'OTEL Exporter OTLP traces endpoint') | ||
| .makeOptionMandatory(false) | ||
| .default(process.env.OTEL_EXPORTER_OTLP_TRACES_ENDPOINT)) | ||
| .addOption(new commander_1.Option('-p, --protocol <protocol>', 'OTEL Exporter OTLP protocol') | ||
@@ -70,3 +68,2 @@ .makeOptionMandatory(false) | ||
| this.exporterOTLPEndpoint = options.endpoint; | ||
| this.exporterOTLPTracesEndpoint = options.tracesEndpoint; | ||
| this.exporterOTLPProtocol = options.protocol; | ||
@@ -76,13 +73,3 @@ this.exporterOTLPHeaders = (0, utils_1.parseKeyValue)(options.headers); | ||
| } | ||
| _checkOptions() { | ||
| if (!this.exporterOTLPEndpoint && !this.exporterOTLPTracesEndpoint) { | ||
| logger.error('One of the OTEL Exporter OTLP endpoint ' + | ||
| 'or OTEL Exporter OTLP traces endpoint configurations must be specified!'); | ||
| (0, exit_1.exit)(1); | ||
| } | ||
| } | ||
| _resolveExporterOTLPTracesEndpoint() { | ||
| return (this.exporterOTLPTracesEndpoint || | ||
| this.exporterOTLPEndpoint + '/v1/traces'); | ||
| } | ||
| _checkOptions() { } | ||
| _resolveExporterOTLPHeaders() { | ||
@@ -108,3 +95,3 @@ if (!this.exporterOTLPHeaders || !this.exporterOTLPHeaders.size) { | ||
| this._checkOptions(); | ||
| const serverController = (0, server_1.createServerController)(this.exporterOTLPProtocol, this._resolveExporterOTLPTracesEndpoint(), this.exporterOTLPHeaders); | ||
| const serverController = (0, server_1.createServerController)(this.exporterOTLPProtocol, this.exporterOTLPEndpoint, this.exporterOTLPHeaders); | ||
| if (!serverController) { | ||
@@ -132,3 +119,3 @@ throw new Error('Unable to create server controller'); | ||
| env: { | ||
| OTEL_EXPORTER_OTLP_TRACES_ENDPOINT: this._resolveExporterOTLPTracesEndpoint(), | ||
| OTEL_EXPORTER_OTLP_ENDPOINT: this.exporterOTLPEndpoint, | ||
| OTEL_EXPORTER_OTLP_PROTOCOL: this.exporterOTLPProtocol, | ||
@@ -146,2 +133,2 @@ OTEL_EXPORTER_OTLP_HEADERS: this._resolveExporterOTLPHeaders(), | ||
| exports.StartServerCommandExecutor = StartServerCommandExecutor; | ||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3RhcnRTZXJ2ZXJDb21tYW5kRXhlY3V0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbWFuZC9zZXJ2ZXIvU3RhcnRTZXJ2ZXJDb21tYW5kRXhlY3V0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvQ0FBb0M7QUFFcEMscURBQXVDO0FBQ3ZDLHFDQUFrQztBQUNsQyx5Q0FBcUQ7QUFDckQsdUNBQTRDO0FBQzVDLHlDQUtzQjtBQUV0Qix5Q0FBMEQ7QUFDMUQsK0NBQTJFO0FBRTNFLE1BQWEsMEJBQTBCO0lBUW5DLFdBQVc7UUFDUCxPQUFPLGdCQUFRLENBQUMsWUFBWSxDQUFDO0lBQ2pDLENBQUM7SUFFRCxhQUFhLENBQUMsT0FBZ0I7UUFDMUIsT0FBTzthQUNGLFNBQVMsQ0FDTixJQUFJLGtCQUFNLENBQUMsZUFBZSxFQUFFLHFCQUFxQixDQUFDO2FBQzdDLG1CQUFtQixDQUFDLEtBQUssQ0FBQzthQUMxQixPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0I7WUFDakMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUUsS0FBSyxNQUFNLENBQUMsQ0FDakU7YUFDQSxTQUFTLENBQ04sSUFBSSxrQkFBTSxDQUFDLHNCQUFzQixFQUFFLDZCQUE2QixDQUFDO2FBQzVELG1CQUFtQixDQUFDLEtBQUssQ0FBQzthQUMxQixPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQywyQkFBMkIsQ0FBQyxDQUN4RDthQUNBLFNBQVMsQ0FDTixJQUFJLGtCQUFNLENBQUMsOEJBQThCLEVBQUUsb0NBQW9DLENBQUM7YUFDM0UsbUJBQW1CLENBQUMsS0FBSyxDQUFDO2FBQzFCLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGtDQUFrQyxDQUFDLENBQy9EO2FBQ0EsU0FBUyxDQUNOLElBQUksa0JBQU0sQ0FBQywyQkFBMkIs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QUM7UUFFNUIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBRXJCLE1BQU0sZ0JBQWdCLEdBQ2xCLElBQUEsK0JBQXNCLEVBQ2xCLElBQUksQ0FBQyxvQkFBb0IsRUFDekIsSUFBSSxDQUFDLGtDQUFrQyxFQUFFLEVBQ3pDLElBQUksQ0FBQyxtQkFBbUIsQ0FDM0IsQ0FBQztRQUNOLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUNuQixNQUFNLElBQUksS0FBSyxDQUFDLG9DQUFvQyxDQUFDLENBQUM7WUFDdEQsSUFBQSxXQUFJLEVBQUMsQ0FBQyxDQUFDLENBQUM7U0FDWDthQUFNO1lBQ0gsSUFBQSxvQkFBVyxFQUFDLCtCQUFtQixFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztZQUNwRSxNQUFNLElBQUEsMkJBQWtCLEVBQUMsZ0JBQWdCLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzVEO1FBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O1VBdUJFO0lBQ04sQ0FBQztDQUVKO0FBaEpELGdFQWdKQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1hbmRzIH0gZnJvbSAnLi4vaW5kZXgnO1xuaW1wb3J0IHsgQ29tbWFuZEV4ZWN1dG9yIH0gZnJvbSAnLi4vQ29tbWFuZEV4ZWN1dG9yJztcbmltcG9ydCAqIGFzIGxvZ2dlciBmcm9tICcuLi8uLi9sb2dnZXInO1xuaW1wb3J0IHsgZXhpdCB9IGZyb20gJy4uLy4uL2V4aXQnO1xuaW1wb3J0IHsgRXhwb3J0ZXJPVExQUHJvdG9jb2xzIH0gZnJvbSAnLi4vLi4vZXhwb3J0JztcbmltcG9ydCB7IHBhcnNlS2V5VmFsdWUgfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQge1xuICAgIGNyZWF0ZVNlcnZlckNvbnRyb2xsZXIsXG4gICAgU2VydmVyQ29udHJvbGxlcixcbiAgICBzdGFydFNlcnZlcixcbiAgICBzdGFydFNlcnZlckNsZWFuZXJcbn0gZnJvbSAnLi4vLi4vc2VydmVyJztcblxuaW1wb3J0IHsgQ29tbWFuZCwgT3B0aW9uLCBPcHRpb25WYWx1ZXMgfSBmcm9tICdjb21tYW5kZXInO1xuaW1wb3J0IHsgREVGQVVMVF9TRVJWRVJfSE9TVCwgREVGQVVMVF9TRVJWRVJfUE9SVCB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5cbmV4cG9ydCBjbGFzcyBTdGFydFNlcnZlckNvbW1hbmRFeGVjdXRvciBpbXBsZW1lbnRzIENvbW1hbmRFeGVjdXRvciB7XG4gICAgcHJpdmF0ZSB2ZXJib3NlRW5hYmxlZDogYm9vbGVhbjtcbiAgICBwcml2YXRlIGV4cG9ydGVyT1RMUEVuZHBvaW50OiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBleHBvcnRlck9UTFBUcmFjZXNFbmRwb2ludDogc3RyaW5nO1xuICAgIHByaXZhdGUgZXhwb3J0ZXJPVExQUHJvdG9jb2w6IHN0cmluZztcbiAgICBwcml2YXRlIGV4cG9ydGVyT1RMUEhlYWRlcnM6IE1hcDxzdHJpbmcsIHN0cmluZz47XG4gICAgcHJpdmF0ZSBzZXJ2ZXJQb3J0OiBudW1iZXI7XG5cbiAgICBjb21tYW5kTmFtZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gQ29tbWFuZHMuU1RBUlRfU0VSVkVSO1xuICAgIH1cblxuICAgIGRlZmluZU9wdGlvbnMoY29tbWFuZDogQ29tbWFuZCkge1xuICAgICAgICBjb21tYW5kXG4gICAgICAgICAgICAuYWRkT3B0aW9uKFxuICAgICAgICAgICAgICAgIG5ldyBPcHRpb24oJy12LCAtLXZlcmJvc2UnLCAnRW5hYmxlIHZlcmJvc2UgbW9kZScpXG4gICAgICAgICAgICAgICAgICAgIC5tYWtlT3B0aW9uTWFuZGF0b3J5KGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAuZGVmYXVsdChwcm9jZXNzLmVudi5PVEVMX0NMSV9WRVJCT1NFICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzLmVudi5PVEVMX0NMSV9WRVJCT1NFLnRvTG93ZXJDYXNlKCkgPT09ICd0cnVlJylcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5hZGRPcHRpb24oXG4gICAgICAgICAgICAgICAgbmV3IE9wdGlvbignLWUsIC0tZW5kcG9pbnQgPHVybD4nLCAnT1RFTCBFeHBvcnRlciBPVExQIGVuZHBvaW50JylcbiAgICAgICAgICAgICAgICAgICAgLm1ha2VPcHRpb25NYW5kYXRvcnkoZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgIC5kZWZhdWx0KHByb2Nlc3MuZW52Lk9URUxfRVhQT1JURVJfT1RMUF9FTkRQT0lOVClcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5hZGRPcHRpb24oXG4gICAgICAgICAgICAgICAgbmV3IE9wdGlvbignLXRlLCAtLXRyYWNlcy1lbmRwb2ludCA8dXJsPicsICdPVEVMIEV4cG9ydGVyIE9UTFAgdHJhY2VzIGVuZHBvaW50JylcbiAgICAgICAgICAgICAgICAgICAgLm1ha2VPcHRpb25NYW5kYXRvcnkoZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgIC5kZWZhdWx0KHByb2Nlc3MuZW52Lk9URUxfRVhQT1JURVJfT1RMUF9UUkFDRVNfRU5EUE9JTlQpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuYWRkT3B0aW9uKFxuICAgICAgICAgICAgICAgIG5ldyBPcHRpb24oJy1wLCAtLXByb3RvY29sIDxwcm90b2NvbD4nLCAnT1RFTCBFeHBvcnRlciBPVExQIHByb3RvY29sJylcbiAgICAgICAgICAgICAgICAgICAgLm1ha2VPcHRpb25NYW5kYXRvcnkoZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgIC5kZWZhdWx0KFxuICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzcy5lbnYuT1RFTF9FWFBPUlRFUl9PVExQX1BST1RPQ09MIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICBFeHBvcnRlck9UTFBQcm90b2NvbHMuSFRUUF9KU09OXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgLmNob2ljZXMoT2JqZWN0LnZhbHVlcyhFeHBvcnRlck9UTFBQcm90b2NvbHMpKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLmFkZE9wdGlvbihcbiAgICAgICAgICAgICAgICBuZXcgT3B0aW9uKCctaCwgLS1oZWFkZXJzIDxrZXktdmFsdWUtcGFpcnMuLi4+JywgJ09URUwgRXhwb3J0ZXIgT1RMUCBoZWFkZXJzJylcbiAgICAgICAgICAgICAgICAgICAgLm1ha2VPcHRpb25NYW5kYXRvcnkoZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgIC5kZWZhdWx0KHByb2Nlc3MuZW52Lk9URUxfRVhQT1JURVJfT1RMUF9IRUFERVJTICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzLmVudi5PVEVMX0VYUE9SVEVSX09UTFBfSEVBREVSUy5zcGxpdCgnLCcpKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLmFkZE9wdGlvbihcbiAgICAgICAgICAgICAgICBuZXcgT3B0aW9uKCctc3AsIC0tc2VydmVyLXBvcnQgPHBvcnQ+JyxcbiAgICAgICAgICAgICAgICAgICAgJ09URUwgQ0xJIHNlcnZlciBwb3J0IHRvIHN0YXJ0IG9uJylcbiAgICAgICAgICAgICAgICAgICAgLm1ha2VPcHRpb25NYW5kYXRvcnkodHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgLmRlZmF1bHQocHJvY2Vzcy5lbnYuT1RFTF9DTElfU0VSVkVSX1BPUlQgfHwgREVGQVVMVF9TRVJWRVJfUE9SVClcbiAgICAgICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfcGFyc2VPcHRpb25zKG9wdGlvbnM6IE9wdGlvblZhbHVlcyk6IHZvaWQge1xuICAgICAgICB0aGlzLnZlcmJvc2VFbmFibGVkID0gb3B0aW9ucy52ZXJib3NlO1xuICAgICAgICBsb2dnZXIuc2V0RGVidWdFbmFibGVkKHRoaXMudmVyYm9zZUVuYWJsZWQpO1xuXG4gICAgICAgIHRoaXMuZXhwb3J0ZXJPVExQRW5kcG9pbnQgPSBvcHRpb25zLmVuZHBvaW50O1xuICAgICAgICB0aGlzLmV4cG9ydGVyT1RMUFRyYWNlc0VuZHBvaW50ID0gb3B0aW9ucy50cmFjZXNFbmRwb2ludDtcbiAgICAgICAgdGhpcy5leHBvcnRlck9UTFBQcm90b2NvbCA9IG9wdGlvbnMucHJvdG9jb2w7XG4gICAgICAgIHRoaXMuZXhwb3J0ZXJPVExQSGVhZGVycyA9IHBhcnNlS2V5VmFsdWUob3B0aW9ucy5oZWFkZXJzKTtcbiAgICAgICAgdGhpcy5zZXJ2ZXJQb3J0ID0gcGFyc2VJbnQob3B0aW9ucy5zZXJ2ZXJQb3J0KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9jaGVja09wdGlvbnMoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5leHBvcnRlck9UTFBFbmRwb2ludCAmJiAhdGhpcy5leHBvcnRlck9UTFBUcmFjZXNFbmRwb2ludCkge1xuICAgICAgICAgICAgbG9nZ2VyLmVycm9yKFxuICAgICAgICAgICAgICAgICdPbmUgb2YgdGhlIE9URUwgRXhwb3J0ZXIgT1RMUCBlbmRwb2ludCAnICtcbiAgICAgICAgICAgICAgICAnb3IgT1RFTCBFeHBvcnRlciBPVExQIHRyYWNlcyBlbmRwb2ludCBjb25maWd1cmF0aW9ucyBtdXN0IGJlIHNwZWNpZmllZCEnXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgZXhpdCgxKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX3Jlc29sdmVFeHBvcnRlck9UTFBUcmFjZXNFbmRwb2ludCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdGhpcy5leHBvcnRlck9UTFBUcmFjZXNFbmRwb2ludCB8fFxuICAgICAgICAgICAgdGhpcy5leHBvcnRlck9UTFBFbmRwb2ludCArICcvdjEvdHJhY2VzJ1xuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3Jlc29sdmVFeHBvcnRlck9UTFBIZWFkZXJzKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGlmICghdGhpcy5leHBvcnRlck9UTFBIZWFkZXJzIHx8ICF0aGlzLmV4cG9ydGVyT1RMUEhlYWRlcnMuc2l6ZSkge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBsZXQgYWRkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICAgICAgbGV0IHJlc29sdmVkSGVhZGVyczogc3RyaW5nID0gJyc7XG4gICAgICAgIGZvciAoY29uc3QgZW50cnkgb2YgdGhpcy5leHBvcnRlck9UTFBIZWFkZXJzLmVudHJpZXMoKSkge1xuICAgICAgICAgICAgY29uc3QgaGVhZGVyTmFtZTogc3RyaW5nID0gZW50cnlbMF07XG4gICAgICAgICAgICBjb25zdCBoZWFkZXJWYWx1ZTogc3RyaW5nID0gZW50cnlbMV07XG4gICAgICAgICAgICBpZiAoYWRkZWQpIHtcbiAgICAgICAgICAgICAgICByZXNvbHZlZEhlYWRlcnMgPSAnLCcgKyByZXNvbHZlZEhlYWRlcnM7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXNvbHZlZEhlYWRlcnMgPSByZXNvbHZlZEhlYWRlcnMgKyBgLCR7aGVhZGVyTmFtZX09JHtoZWFkZXJWYWx1ZX1gO1xuICAgICAgICAgICAgYWRkZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXNvbHZlZEhlYWRlcnM7XG4gICAgfVxuXG4gICAgYXN5bmMgZXhlY3V0ZShvcHRpb25zOiBPcHRpb25WYWx1ZXMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdGhpcy5fcGFyc2VPcHRpb25zKG9wdGlvbnMpO1xuXG4gICAgICAgIHRoaXMuX2NoZWNrT3B0aW9ucygpO1xuXG4gICAgICAgIGNvbnN0IHNlcnZlckNvbnRyb2xsZXI6IFNlcnZlckNvbnRyb2xsZXIgfCB1bmRlZmluZWQgPVxuICAgICAgICAgICAgY3JlYXRlU2VydmVyQ29udHJvbGxlcihcbiAgICAgICAgICAgICAgICB0aGlzLmV4cG9ydGVyT1RMUFByb3RvY29sLFxuICAgICAgICAgICAgICAgIHRoaXMuX3Jlc29sdmVFeHBvcnRlck9UTFBUcmFjZXNFbmRwb2ludCgpLFxuICAgICAgICAgICAgICAgIHRoaXMuZXhwb3J0ZXJPVExQSGVhZGVyc1xuICAgICAgICAgICAgKTtcbiAgICAgICAgaWYgKCFzZXJ2ZXJDb250cm9sbGVyKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1VuYWJsZSB0byBjcmVhdGUgc2VydmVyIGNvbnRyb2xsZXInKTtcbiAgICAgICAgICAgIGV4aXQoMSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzdGFydFNlcnZlcihERUZBVUxUX1NFUlZFUl9IT1NULCB0aGlzLnNlcnZlclBvcnQsIHNlcnZlckNvbnRyb2xsZXIpO1xuICAgICAgICAgICAgYXdhaXQgc3RhcnRTZXJ2ZXJDbGVhbmVyKHNlcnZlckNvbnRyb2xsZXIsIHByb2Nlc3MucHBpZCk7XG4gICAgICAgIH1cblxuICAgICAgICAvKlxuICAgICAgICAvLyBUT0RPXG4gICAgICAgIC8vIEN1cnJlbnRseSBzZXJ2ZXIgc3RhcnQgaXMgYmxvY2tpbmcgZm9yIHRoZSBjYWxsZXJcbiAgICAgICAgLy8gKHJlcXVpcmVzIFwib3RlbC1jbGkgc3RhcnQtc2VydmVyIC4uLiAmXCIgdG8gcnVuIGluIGJhY2tncm91bmQpXG4gICAgICAgIC8vIFNob3VsZCB3ZSBzdXBwb3J0IHN0YXJ0aW5nIHNlcnZlciBpbiBiYWNrZ3JvdW5kIGF1dG9tYXRpY2FsbHlcbiAgICAgICAgLy8gYnkgc3RhcnRpbmcgaXQgaW5zaWRlIGRldGFjaGVkIHByb2Nlc3NcblxuICAgICAgICBjb25zdCBjaGlsZDogQ2hpbGRQcm9jZXNzID0gc3Bhd24oXG4gICAgICAgICAgcHJvY2Vzcy5hcmd2WzBdLFxuICAgICAgICAgIFtwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi4vLi4vc2VydmVyL2Jvb3RzdHJhcC5qcycpXSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBkZXRhY2hlZDogdHJ1ZSxcbiAgICAgICAgICAgIHN0ZGlvOiAnaWdub3JlJyxcbiAgICAgICAgICAgIGVudjoge1xuICAgICAgICAgICAgICAgIE9URUxfRVhQT1JURVJfT1RMUF9UUkFDRVNfRU5EUE9JTlQ6IHRoaXMuX3Jlc29sdmVFeHBvcnRlck9UTFBUcmFjZXNFbmRwb2ludCgpLFxuICAgICAgICAgICAgICAgIE9URUxfRVhQT1JURVJfT1RMUF9QUk9UT0NPTDogdGhpcy5leHBvcnRlck9UTFBQcm90b2NvbCxcbiAgICAgICAgICAgICAgICBPVEVMX0VYUE9SVEVSX09UTFBfSEVBREVSUzogdGhpcy5fcmVzb2x2ZUV4cG9ydGVyT1RMUEhlYWRlcnMoKSxcbiAgICAgICAgICAgICAgICBPVEVMX0NMSV9TRVJWRVJfUE9SVDogdGhpcy5zZXJ2ZXJQb3J0LnRvU3RyaW5nKCksXG4gICAgICAgICAgICAgICAgT1RFTF9DTElfU0VSVkVSX1BQSUQ6IHByb2Nlc3MucHBpZC50b1N0cmluZygpLFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgICAgY2hpbGQudW5yZWYoKTtcbiAgICAgICAgKi9cbiAgICB9XG5cbn1cbiJdfQ== | ||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3RhcnRTZXJ2ZXJDb21tYW5kRXhlY3V0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbWFuZC9zZXJ2ZXIvU3RhcnRTZXJ2ZXJDb21tYW5kRXhlY3V0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvQ0FBb0M7QUFFcEMscURBQXVDO0FBQ3ZDLHFDQUFrQztBQUNsQyx5Q0FBcUQ7QUFDckQsdUNBQTRDO0FBQzVDLHlDQUtzQjtBQUN0QiwrQ0FBMkU7QUFFM0UseUNBQTBEO0FBRTFELE1BQWEsMEJBQTBCO0lBT25DLFdBQVc7UUFDUCxPQUFPLGdCQUFRLENBQUMsWUFBWSxDQUFDO0lBQ2pDLENBQUM7SUFFRCxhQUFhLENBQUMsT0FBZ0I7UUFDMUIsT0FBTzthQUNGLFNBQVMsQ0FDTixJQUFJLGtCQUFNLENBQUMsZUFBZSxFQUFFLHFCQUFxQixDQUFDO2FBQzdDLG1CQUFtQixDQUFDLEtBQUssQ0FBQzthQUMxQixPQUFPLENBQ0osT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0I7WUFDeEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUU7Z0JBQ3RDLE1BQU0sQ0FDakIsQ0FDUjthQUNBLFNBQVMsQ0FDTixJQUFJLGtCQUFNLENBQ04sc0JBQXNCLEVBQ3RCLDZCQUE2QixDQUNoQzthQUNJLG1CQUFtQixDQUFDLElBQUksQ0FBQzthQUN6QixPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQywyQkFBMkIsQ0FBQyxDQUN4RDthQUNBLFNBQVMsQ0FDTixJQUFJLGtCQUFNLENBQ04sMkJBQTJCLEVBQzNCLDZCQUE2QixDQUNoQzthQUNJLG1CQUFtQixDQUFDLEtBQUssQ0FBQzthQUMxQixPQUFPLENBQ0osT0FBTyxDQUFDLEdBQUcsQ0FBQywyQkFBMkI7WUFDbkMsOEJBQXFCLENBQUMsU0FBUyxDQUN0QzthQUNBLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLDhCQUFxQixDQUFDLENBQUMsQ0FDckQ7YUFDQSxTQUFTLENBQ04sSUFBSSxrQkFBTSxDQUNOLG9DQUFvQyxFQUNwQyw0QkFBNEIsQ0FDL0I7YUFDSSxtQkFBbUIsQ0FBQyxLQUFLLENBQUM7YUFDMUIsT0FBTyxDQUNKLE9BQU8sQ0FBQyxHQUFHLENBQUMsMEJBQTBCO1lBQ2xDLE9BQU8sQ0FBQyxHQUFHLENBQUMsMEJBQTBCLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUN4RCxDQUNSO2FBQ0EsU0FBUyxDQUNOLElBQUksa0JBQU0sQ0FDTiwyQkFBMkIsRUFDM0Isa0NBQWtDLENBQ3JDO2FBQ0ksbUJBQW1CLENBQUMsSUFBSSxDQUFDO2FBQ3pCLE9BQU8sQ0FDSixPQUFPLENBQUMsR0FBRyxDQUFDLG9CQUFvQixJQUFJLCtCQUFtQixDQUMxRCxDQUNSLENBQUM7SUFDVixDQUFDO0lBRU8sYUFBYSxDQUFDLE9BQXFCO1FBQ3ZDLElBQUksQ0FBQyxjQUFjLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQztRQUN0QyxNQUFNLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUU1QyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQztRQUM3QyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQztRQUM3QyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBQSxxQkFBYSxFQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMxRCxJQUFJLENBQUMsVUFBVSxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVPLGFBQWEsS0FBVSxDQUFDO0lBRXhCLDJCQUEyQjtRQUMvQixJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQixJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksRUFBRTtZQUM3RCxPQUFPLFNBQVMsQ0FBQztTQUNwQjtRQUNELElBQUksS0FBSyxHQUFZLEtBQUssQ0FBQztRQUMzQixJQUFJLGVBQWUsR0FBVyxFQUFFLENBQUM7UUFDakMsS0FBSyxNQUFNLEtBQUssSUFBSSxJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDcEQsTUFBTSxVQUFVLEdBQVcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3BDLE1BQU0sV0FBVyxHQUFXLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNyQyxJQUFJLEtBQUssRUFBRTtnQkFDUCxlQUFlLEdBQUcsR0FBRyxHQUFHLGVBQWUsQ0FBQzthQUMzQztZQUNELGVBQWUsR0FBRyxlQUFlLEdBQUcsSUFBSSxVQUFVLElBQUksV0FBVyxFQUFFLENBQUM7WUFDcEUsS0FBSyxHQUFHLElBQUksQ0FBQztTQUNoQjtRQUNELE9BQU8sZUFBZSxDQUFDO0lBQzNCLENBQUM7SUFFRCxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQXFCO1FBQy9CLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFNUIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBRXJCLE1BQU0sZ0JBQWdCLEdBQ2xCLElBQUEsK0JBQXNCLEVBQ2xCLElBQUksQ0FBQyxvQkFBb0IsRUFDekIsSUFBSSxDQUFDLG9CQUFvQixFQUN6QixJQUFJLENBQUMsbUJBQW1CLENBQzNCLENBQUM7UUFDTixJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDbkIsTUFBTSxJQUFJLEtBQUssQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO1lBQ3RELElBQUEsV0FBSSxFQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ1g7YUFBTTtZQUNILElBQUEsb0JBQVcsRUFBQywrQkFBbUIsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLGdCQUFnQixDQUFDLENBQUM7WUFDcEUsTUFBTSxJQUFBLDJCQUFrQixFQUFDLGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUM1RDtRQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztVQXVCRTtJQUNOLENBQUM7Q0FDSjtBQTNJRCxnRUEySUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tYW5kcyB9IGZyb20gJy4uL2luZGV4JztcbmltcG9ydCB7IENvbW1hbmRFeGVjdXRvciB9IGZyb20gJy4uL0NvbW1hbmRFeGVjdXRvcic7XG5pbXBvcnQgKiBhcyBsb2dnZXIgZnJvbSAnLi4vLi4vbG9nZ2VyJztcbmltcG9ydCB7IGV4aXQgfSBmcm9tICcuLi8uLi9leGl0JztcbmltcG9ydCB7IEV4cG9ydGVyT1RMUFByb3RvY29scyB9IGZyb20gJy4uLy4uL2V4cG9ydCc7XG5pbXBvcnQgeyBwYXJzZUtleVZhbHVlIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHtcbiAgICBjcmVhdGVTZXJ2ZXJDb250cm9sbGVyLFxuICAgIFNlcnZlckNvbnRyb2xsZXIsXG4gICAgc3RhcnRTZXJ2ZXIsXG4gICAgc3RhcnRTZXJ2ZXJDbGVhbmVyLFxufSBmcm9tICcuLi8uLi9zZXJ2ZXInO1xuaW1wb3J0IHsgREVGQVVMVF9TRVJWRVJfSE9TVCwgREVGQVVMVF9TRVJWRVJfUE9SVCB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5cbmltcG9ydCB7IENvbW1hbmQsIE9wdGlvbiwgT3B0aW9uVmFsdWVzIH0gZnJvbSAnY29tbWFuZGVyJztcblxuZXhwb3J0IGNsYXNzIFN0YXJ0U2VydmVyQ29tbWFuZEV4ZWN1dG9yIGltcGxlbWVudHMgQ29tbWFuZEV4ZWN1dG9yIHtcbiAgICBwcml2YXRlIHZlcmJvc2VFbmFibGVkOiBib29sZWFuO1xuICAgIHByaXZhdGUgZXhwb3J0ZXJPVExQRW5kcG9pbnQ6IHN0cmluZztcbiAgICBwcml2YXRlIGV4cG9ydGVyT1RMUFByb3RvY29sOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBleHBvcnRlck9UTFBIZWFkZXJzOiBNYXA8c3RyaW5nLCBzdHJpbmc+O1xuICAgIHByaXZhdGUgc2VydmVyUG9ydDogbnVtYmVyO1xuXG4gICAgY29tbWFuZE5hbWUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIENvbW1hbmRzLlNUQVJUX1NFUlZFUjtcbiAgICB9XG5cbiAgICBkZWZpbmVPcHRpb25zKGNvbW1hbmQ6IENvbW1hbmQpIHtcbiAgICAgICAgY29tbWFuZFxuICAgICAgICAgICAgLmFkZE9wdGlvbihcbiAgICAgICAgICAgICAgICBuZXcgT3B0aW9uKCctdiwgLS12ZXJib3NlJywgJ0VuYWJsZSB2ZXJib3NlIG1vZGUnKVxuICAgICAgICAgICAgICAgICAgICAubWFrZU9wdGlvbk1hbmRhdG9yeShmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgLmRlZmF1bHQoXG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzLmVudi5PVEVMX0NMSV9WRVJCT1NFICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzcy5lbnYuT1RFTF9DTElfVkVSQk9TRS50b0xvd2VyQ2FzZSgpID09PVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndHJ1ZSdcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLmFkZE9wdGlvbihcbiAgICAgICAgICAgICAgICBuZXcgT3B0aW9uKFxuICAgICAgICAgICAgICAgICAgICAnLWUsIC0tZW5kcG9pbnQgPHVybD4nLFxuICAgICAgICAgICAgICAgICAgICAnT1RFTCBFeHBvcnRlciBPVExQIGVuZHBvaW50J1xuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgLm1ha2VPcHRpb25NYW5kYXRvcnkodHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgLmRlZmF1bHQocHJvY2Vzcy5lbnYuT1RFTF9FWFBPUlRFUl9PVExQX0VORFBPSU5UKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLmFkZE9wdGlvbihcbiAgICAgICAgICAgICAgICBuZXcgT3B0aW9uKFxuICAgICAgICAgICAgICAgICAgICAnLXAsIC0tcHJvdG9jb2wgPHByb3RvY29sPicsXG4gICAgICAgICAgICAgICAgICAgICdPVEVMIEV4cG9ydGVyIE9UTFAgcHJvdG9jb2wnXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAubWFrZU9wdGlvbk1hbmRhdG9yeShmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgLmRlZmF1bHQoXG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzLmVudi5PVEVMX0VYUE9SVEVSX09UTFBfUFJPVE9DT0wgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFeHBvcnRlck9UTFBQcm90b2NvbHMuSFRUUF9KU09OXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgLmNob2ljZXMoT2JqZWN0LnZhbHVlcyhFeHBvcnRlck9UTFBQcm90b2NvbHMpKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLmFkZE9wdGlvbihcbiAgICAgICAgICAgICAgICBuZXcgT3B0aW9uKFxuICAgICAgICAgICAgICAgICAgICAnLWgsIC0taGVhZGVycyA8a2V5LXZhbHVlLXBhaXJzLi4uPicsXG4gICAgICAgICAgICAgICAgICAgICdPVEVMIEV4cG9ydGVyIE9UTFAgaGVhZGVycydcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIC5tYWtlT3B0aW9uTWFuZGF0b3J5KGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAuZGVmYXVsdChcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3MuZW52Lk9URUxfRVhQT1JURVJfT1RMUF9IRUFERVJTICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzcy5lbnYuT1RFTF9FWFBPUlRFUl9PVExQX0hFQURFUlMuc3BsaXQoJywnKVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuYWRkT3B0aW9uKFxuICAgICAgICAgICAgICAgIG5ldyBPcHRpb24oXG4gICAgICAgICAgICAgICAgICAgICctc3AsIC0tc2VydmVyLXBvcnQgPHBvcnQ+JyxcbiAgICAgICAgICAgICAgICAgICAgJ09URUwgQ0xJIHNlcnZlciBwb3J0IHRvIHN0YXJ0IG9uJ1xuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgLm1ha2VPcHRpb25NYW5kYXRvcnkodHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgLmRlZmF1bHQoXG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzLmVudi5PVEVMX0NMSV9TRVJWRVJfUE9SVCB8fCBERUZBVUxUX1NFUlZFUl9QT1JUXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfcGFyc2VPcHRpb25zKG9wdGlvbnM6IE9wdGlvblZhbHVlcyk6IHZvaWQge1xuICAgICAgICB0aGlzLnZlcmJvc2VFbmFibGVkID0gb3B0aW9ucy52ZXJib3NlO1xuICAgICAgICBsb2dnZXIuc2V0RGVidWdFbmFibGVkKHRoaXMudmVyYm9zZUVuYWJsZWQpO1xuXG4gICAgICAgIHRoaXMuZXhwb3J0ZXJPVExQRW5kcG9pbnQgPSBvcHRpb25zLmVuZHBvaW50O1xuICAgICAgICB0aGlzLmV4cG9ydGVyT1RMUFByb3RvY29sID0gb3B0aW9ucy5wcm90b2NvbDtcbiAgICAgICAgdGhpcy5leHBvcnRlck9UTFBIZWFkZXJzID0gcGFyc2VLZXlWYWx1ZShvcHRpb25zLmhlYWRlcnMpO1xuICAgICAgICB0aGlzLnNlcnZlclBvcnQgPSBwYXJzZUludChvcHRpb25zLnNlcnZlclBvcnQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2NoZWNrT3B0aW9ucygpOiB2b2lkIHt9XG5cbiAgICBwcml2YXRlIF9yZXNvbHZlRXhwb3J0ZXJPVExQSGVhZGVycygpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgICAgICBpZiAoIXRoaXMuZXhwb3J0ZXJPVExQSGVhZGVycyB8fCAhdGhpcy5leHBvcnRlck9UTFBIZWFkZXJzLnNpemUpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IGFkZGVkOiBib29sZWFuID0gZmFsc2U7XG4gICAgICAgIGxldCByZXNvbHZlZEhlYWRlcnM6IHN0cmluZyA9ICcnO1xuICAgICAgICBmb3IgKGNvbnN0IGVudHJ5IG9mIHRoaXMuZXhwb3J0ZXJPVExQSGVhZGVycy5lbnRyaWVzKCkpIHtcbiAgICAgICAgICAgIGNvbnN0IGhlYWRlck5hbWU6IHN0cmluZyA9IGVudHJ5WzBdO1xuICAgICAgICAgICAgY29uc3QgaGVhZGVyVmFsdWU6IHN0cmluZyA9IGVudHJ5WzFdO1xuICAgICAgICAgICAgaWYgKGFkZGVkKSB7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZWRIZWFkZXJzID0gJywnICsgcmVzb2x2ZWRIZWFkZXJzO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmVzb2x2ZWRIZWFkZXJzID0gcmVzb2x2ZWRIZWFkZXJzICsgYCwke2hlYWRlck5hbWV9PSR7aGVhZGVyVmFsdWV9YDtcbiAgICAgICAgICAgIGFkZGVkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzb2x2ZWRIZWFkZXJzO1xuICAgIH1cblxuICAgIGFzeW5jIGV4ZWN1dGUob3B0aW9uczogT3B0aW9uVmFsdWVzKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRoaXMuX3BhcnNlT3B0aW9ucyhvcHRpb25zKTtcblxuICAgICAgICB0aGlzLl9jaGVja09wdGlvbnMoKTtcblxuICAgICAgICBjb25zdCBzZXJ2ZXJDb250cm9sbGVyOiBTZXJ2ZXJDb250cm9sbGVyIHwgdW5kZWZpbmVkID1cbiAgICAgICAgICAgIGNyZWF0ZVNlcnZlckNvbnRyb2xsZXIoXG4gICAgICAgICAgICAgICAgdGhpcy5leHBvcnRlck9UTFBQcm90b2NvbCxcbiAgICAgICAgICAgICAgICB0aGlzLmV4cG9ydGVyT1RMUEVuZHBvaW50LFxuICAgICAgICAgICAgICAgIHRoaXMuZXhwb3J0ZXJPVExQSGVhZGVyc1xuICAgICAgICAgICAgKTtcbiAgICAgICAgaWYgKCFzZXJ2ZXJDb250cm9sbGVyKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1VuYWJsZSB0byBjcmVhdGUgc2VydmVyIGNvbnRyb2xsZXInKTtcbiAgICAgICAgICAgIGV4aXQoMSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzdGFydFNlcnZlcihERUZBVUxUX1NFUlZFUl9IT1NULCB0aGlzLnNlcnZlclBvcnQsIHNlcnZlckNvbnRyb2xsZXIpO1xuICAgICAgICAgICAgYXdhaXQgc3RhcnRTZXJ2ZXJDbGVhbmVyKHNlcnZlckNvbnRyb2xsZXIsIHByb2Nlc3MucHBpZCk7XG4gICAgICAgIH1cblxuICAgICAgICAvKlxuICAgICAgICAvLyBUT0RPXG4gICAgICAgIC8vIEN1cnJlbnRseSBzZXJ2ZXIgc3RhcnQgaXMgYmxvY2tpbmcgZm9yIHRoZSBjYWxsZXJcbiAgICAgICAgLy8gKHJlcXVpcmVzIFwib3RlbC1jbGkgc3RhcnQtc2VydmVyIC4uLiAmXCIgdG8gcnVuIGluIGJhY2tncm91bmQpXG4gICAgICAgIC8vIFNob3VsZCB3ZSBzdXBwb3J0IHN0YXJ0aW5nIHNlcnZlciBpbiBiYWNrZ3JvdW5kIGF1dG9tYXRpY2FsbHlcbiAgICAgICAgLy8gYnkgc3RhcnRpbmcgaXQgaW5zaWRlIGRldGFjaGVkIHByb2Nlc3NcblxuICAgICAgICBjb25zdCBjaGlsZDogQ2hpbGRQcm9jZXNzID0gc3Bhd24oXG4gICAgICAgICAgcHJvY2Vzcy5hcmd2WzBdLFxuICAgICAgICAgIFtwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi4vLi4vc2VydmVyL2Jvb3RzdHJhcC5qcycpXSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBkZXRhY2hlZDogdHJ1ZSxcbiAgICAgICAgICAgIHN0ZGlvOiAnaWdub3JlJyxcbiAgICAgICAgICAgIGVudjoge1xuICAgICAgICAgICAgICAgIE9URUxfRVhQT1JURVJfT1RMUF9FTkRQT0lOVDogdGhpcy5leHBvcnRlck9UTFBFbmRwb2ludCxcbiAgICAgICAgICAgICAgICBPVEVMX0VYUE9SVEVSX09UTFBfUFJPVE9DT0w6IHRoaXMuZXhwb3J0ZXJPVExQUHJvdG9jb2wsXG4gICAgICAgICAgICAgICAgT1RFTF9FWFBPUlRFUl9PVExQX0hFQURFUlM6IHRoaXMuX3Jlc29sdmVFeHBvcnRlck9UTFBIZWFkZXJzKCksXG4gICAgICAgICAgICAgICAgT1RFTF9DTElfU0VSVkVSX1BPUlQ6IHRoaXMuc2VydmVyUG9ydC50b1N0cmluZygpLFxuICAgICAgICAgICAgICAgIE9URUxfQ0xJX1NFUlZFUl9QUElEOiBwcm9jZXNzLnBwaWQudG9TdHJpbmcoKSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgICAgIGNoaWxkLnVucmVmKCk7XG4gICAgICAgICovXG4gICAgfVxufVxuIl19 |
@@ -14,1 +14,2 @@ export declare const OTEL_CLI_NAME = "otel-cli"; | ||
| }; | ||
| export declare const SAMPLED_TRACE_FLAG = 1; |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.RESOURCE_ATTRIBUTES = exports.DEFAULT_SERVER_PORT = exports.DEFAULT_SERVER_HOST = exports.OTEL_CLI_VERSION = exports.OTEL_CLI_NAME = void 0; | ||
| exports.SAMPLED_TRACE_FLAG = exports.RESOURCE_ATTRIBUTES = exports.DEFAULT_SERVER_PORT = exports.DEFAULT_SERVER_HOST = exports.OTEL_CLI_VERSION = exports.OTEL_CLI_NAME = void 0; | ||
| exports.OTEL_CLI_NAME = 'otel-cli'; | ||
@@ -25,2 +25,3 @@ exports.OTEL_CLI_VERSION = require('../package.json').version; | ||
| }; | ||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBYSxRQUFBLGFBQWEsR0FBRyxVQUFVLENBQUM7QUFDaEIsd0JBQWdCLEdBQUssT0FBTyxDQUFDLGlCQUFpQixDQUFDLFNBQUM7QUFFM0QsUUFBQSxtQkFBbUIsR0FBVyxXQUFXLENBQUM7QUFDMUMsUUFBQSxtQkFBbUIsR0FBVyxJQUFJLENBQUM7QUFFbkMsUUFBQSxtQkFBbUIsR0FBRztJQUMvQiwrQkFBK0I7SUFDL0IsWUFBWSxFQUFFLGNBQWM7SUFDNUIsdUZBQXVGO0lBQ3ZGLDBFQUEwRTtJQUMxRSxTQUFTLEVBQUUsV0FBVztJQUN0QiwwREFBMEQ7SUFDMUQsU0FBUyxFQUFFLFdBQVc7SUFDdEIsc0RBQXNEO0lBQ3RELFNBQVMsRUFBRSxXQUFXO0lBQ3RCLDZCQUE2QjtJQUM3QixPQUFPLEVBQUUsU0FBUztJQUNsQix3Q0FBd0M7SUFDeEMsT0FBTyxFQUFFLFNBQVM7SUFDbEIsNkNBQTZDO0lBQzdDLFVBQVUsRUFBRSxZQUFZO0NBQzNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgT1RFTF9DTElfTkFNRSA9ICdvdGVsLWNsaSc7XG5leHBvcnQgY29uc3QgeyB2ZXJzaW9uOiBPVEVMX0NMSV9WRVJTSU9OIH0gPSByZXF1aXJlKCcuLi9wYWNrYWdlLmpzb24nKTtcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfU0VSVkVSX0hPU1Q6IHN0cmluZyA9ICdsb2NhbGhvc3QnO1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfU0VSVkVSX1BPUlQ6IG51bWJlciA9IDc3Nzc7XG5cbmV4cG9ydCBjb25zdCBSRVNPVVJDRV9BVFRSSUJVVEVTID0ge1xuICAgIC8vIExvZ2ljYWwgbmFtZSBvZiB0aGUgc2VydmljZS5cbiAgICBTRVJWSUNFX05BTUU6ICdzZXJ2aWNlLm5hbWUnLFxuICAgIC8vIE5hbWUgb2YgdGhlIGhvc3QuIE9uIFVuaXggc3lzdGVtcywgaXQgbWF5IGNvbnRhaW4gd2hhdCB0aGUgaG9zdG5hbWUgY29tbWFuZCByZXR1cm5zLFxuICAgIC8vIG9yIHRoZSBmdWxseSBxdWFsaWZpZWQgaG9zdG5hbWUsIG9yIGFub3RoZXIgbmFtZSBzcGVjaWZpZWQgYnkgdGhlIHVzZXIuXG4gICAgSE9TVF9OQU1FOiAnaG9zdC5uYW1lJyxcbiAgICAvLyBUeXBlIG9mIGhvc3QuIEZvciBDbG91ZCwgdGhpcyBtdXN0IGJlIHRoZSBtYWNoaW5lIHR5cGUuXG4gICAgSE9TVF9UWVBFOiAnaG9zdC50eXBlJyxcbiAgICAvLyBUaGUgQ1BVIGFyY2hpdGVjdHVyZSB0aGUgaG9zdCBzeXN0ZW0gaXMgcnVubmluZyBvbi5cbiAgICBIT1NUX0FSQ0g6ICdob3N0LmFyY2gnLFxuICAgIC8vIFRoZSBvcGVyYXRpbmcgc3lzdGVtIHR5cGUuXG4gICAgT1NfVFlQRTogJ29zLnR5cGUnLFxuICAgIC8vIEh1bWFuIHJlYWRhYmxlIG9wZXJhdGluZyBzeXN0ZW0gbmFtZS5cbiAgICBPU19OQU1FOiAnb3MubmFtZScsXG4gICAgLy8gVGhlIHZlcnNpb24gc3RyaW5nIG9mIHRoZSBvcGVyYXRpbmcgc3lzdGVtXG4gICAgT1NfVkVSU0lPTjogJ29zLnZlcnNpb24nLFxufTtcbiJdfQ== | ||
| exports.SAMPLED_TRACE_FLAG = 0x01; | ||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBYSxRQUFBLGFBQWEsR0FBRyxVQUFVLENBQUM7QUFDaEIsd0JBQWdCLEdBQUssT0FBTyxDQUFDLGlCQUFpQixDQUFDLFNBQUM7QUFFM0QsUUFBQSxtQkFBbUIsR0FBVyxXQUFXLENBQUM7QUFDMUMsUUFBQSxtQkFBbUIsR0FBVyxJQUFJLENBQUM7QUFFbkMsUUFBQSxtQkFBbUIsR0FBRztJQUMvQiwrQkFBK0I7SUFDL0IsWUFBWSxFQUFFLGNBQWM7SUFDNUIsdUZBQXVGO0lBQ3ZGLDBFQUEwRTtJQUMxRSxTQUFTLEVBQUUsV0FBVztJQUN0QiwwREFBMEQ7SUFDMUQsU0FBUyxFQUFFLFdBQVc7SUFDdEIsc0RBQXNEO0lBQ3RELFNBQVMsRUFBRSxXQUFXO0lBQ3RCLDZCQUE2QjtJQUM3QixPQUFPLEVBQUUsU0FBUztJQUNsQix3Q0FBd0M7SUFDeEMsT0FBTyxFQUFFLFNBQVM7SUFDbEIsNkNBQTZDO0lBQzdDLFVBQVUsRUFBRSxZQUFZO0NBQzNCLENBQUM7QUFFVyxRQUFBLGtCQUFrQixHQUFHLElBQUksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBPVEVMX0NMSV9OQU1FID0gJ290ZWwtY2xpJztcbmV4cG9ydCBjb25zdCB7IHZlcnNpb246IE9URUxfQ0xJX1ZFUlNJT04gfSA9IHJlcXVpcmUoJy4uL3BhY2thZ2UuanNvbicpO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9TRVJWRVJfSE9TVDogc3RyaW5nID0gJ2xvY2FsaG9zdCc7XG5leHBvcnQgY29uc3QgREVGQVVMVF9TRVJWRVJfUE9SVDogbnVtYmVyID0gNzc3NztcblxuZXhwb3J0IGNvbnN0IFJFU09VUkNFX0FUVFJJQlVURVMgPSB7XG4gICAgLy8gTG9naWNhbCBuYW1lIG9mIHRoZSBzZXJ2aWNlLlxuICAgIFNFUlZJQ0VfTkFNRTogJ3NlcnZpY2UubmFtZScsXG4gICAgLy8gTmFtZSBvZiB0aGUgaG9zdC4gT24gVW5peCBzeXN0ZW1zLCBpdCBtYXkgY29udGFpbiB3aGF0IHRoZSBob3N0bmFtZSBjb21tYW5kIHJldHVybnMsXG4gICAgLy8gb3IgdGhlIGZ1bGx5IHF1YWxpZmllZCBob3N0bmFtZSwgb3IgYW5vdGhlciBuYW1lIHNwZWNpZmllZCBieSB0aGUgdXNlci5cbiAgICBIT1NUX05BTUU6ICdob3N0Lm5hbWUnLFxuICAgIC8vIFR5cGUgb2YgaG9zdC4gRm9yIENsb3VkLCB0aGlzIG11c3QgYmUgdGhlIG1hY2hpbmUgdHlwZS5cbiAgICBIT1NUX1RZUEU6ICdob3N0LnR5cGUnLFxuICAgIC8vIFRoZSBDUFUgYXJjaGl0ZWN0dXJlIHRoZSBob3N0IHN5c3RlbSBpcyBydW5uaW5nIG9uLlxuICAgIEhPU1RfQVJDSDogJ2hvc3QuYXJjaCcsXG4gICAgLy8gVGhlIG9wZXJhdGluZyBzeXN0ZW0gdHlwZS5cbiAgICBPU19UWVBFOiAnb3MudHlwZScsXG4gICAgLy8gSHVtYW4gcmVhZGFibGUgb3BlcmF0aW5nIHN5c3RlbSBuYW1lLlxuICAgIE9TX05BTUU6ICdvcy5uYW1lJyxcbiAgICAvLyBUaGUgdmVyc2lvbiBzdHJpbmcgb2YgdGhlIG9wZXJhdGluZyBzeXN0ZW1cbiAgICBPU19WRVJTSU9OOiAnb3MudmVyc2lvbicsXG59O1xuXG5leHBvcnQgY29uc3QgU0FNUExFRF9UUkFDRV9GTEFHID0gMHgwMTtcbiJdfQ== |
@@ -7,2 +7,4 @@ export * from './Attribute'; | ||
| export * from './Span'; | ||
| export * from './TraceMetadata'; | ||
| export * from './TraceData'; | ||
| export * from './TraceRequest'; |
@@ -23,3 +23,5 @@ "use strict"; | ||
| __exportStar(require("./Span"), exports); | ||
| __exportStar(require("./TraceMetadata"), exports); | ||
| __exportStar(require("./TraceData"), exports); | ||
| __exportStar(require("./TraceRequest"), exports); | ||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZG9tYWluL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw4Q0FBNEI7QUFDNUIseURBQXVDO0FBQ3ZDLDZDQUEyQjtBQUMzQixrREFBZ0M7QUFDaEMsK0NBQTZCO0FBQzdCLHlDQUF1QjtBQUN2QixpREFBK0IiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL0F0dHJpYnV0ZSc7XG5leHBvcnQgKiBmcm9tICcuL0luc3RydW1lbnRhdGlvblNjb3BlJztcbmV4cG9ydCAqIGZyb20gJy4vUmVzb3VyY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9SZXNvdXJjZVNwYW5zJztcbmV4cG9ydCAqIGZyb20gJy4vU2NvcGVTcGFucyc7XG5leHBvcnQgKiBmcm9tICcuL1NwYW4nO1xuZXhwb3J0ICogZnJvbSAnLi9UcmFjZVJlcXVlc3QnO1xuIl19 | ||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZG9tYWluL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw4Q0FBNEI7QUFDNUIseURBQXVDO0FBQ3ZDLDZDQUEyQjtBQUMzQixrREFBZ0M7QUFDaEMsK0NBQTZCO0FBQzdCLHlDQUF1QjtBQUN2QixrREFBZ0M7QUFDaEMsOENBQTRCO0FBQzVCLGlEQUErQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vQXR0cmlidXRlJztcbmV4cG9ydCAqIGZyb20gJy4vSW5zdHJ1bWVudGF0aW9uU2NvcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9SZXNvdXJjZSc7XG5leHBvcnQgKiBmcm9tICcuL1Jlc291cmNlU3BhbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9TY29wZVNwYW5zJztcbmV4cG9ydCAqIGZyb20gJy4vU3Bhbic7XG5leHBvcnQgKiBmcm9tICcuL1RyYWNlTWV0YWRhdGEnO1xuZXhwb3J0ICogZnJvbSAnLi9UcmFjZURhdGEnO1xuZXhwb3J0ICogZnJvbSAnLi9UcmFjZVJlcXVlc3QnO1xuIl19 |
| import { TraceExporter } from '../TraceExporter'; | ||
| import { TraceRequest } from '../../domain/TraceRequest'; | ||
| import { Span, TraceMetadata } from '../../domain'; | ||
| export declare class HttpJsonTraceExporter implements TraceExporter { | ||
| private readonly url; | ||
| private readonly headers; | ||
| constructor(exporterOTLPEndpoint: string, exporterOTLPHeaders: Map<string, string>); | ||
| export(traceRequest: TraceRequest): Promise<void>; | ||
| constructor(exporterOTLPEndpoint: string, exporterOTLPHeaders?: Map<string, string>); | ||
| protected normalizeURL(exporterOTLPEndpoint: string): string; | ||
| protected initHeaders(exporterOTLPHeaders?: Map<string, string>): void; | ||
| private _createScopeSpans; | ||
| private _createResourceSpans; | ||
| private _createTraceRequest; | ||
| protected createRequestData(metadata: TraceMetadata, spans: Span[]): any; | ||
| export(metadata: TraceMetadata, spans: Span[]): Promise<void>; | ||
| } |
@@ -7,19 +7,69 @@ "use strict"; | ||
| exports.HttpJsonTraceExporter = void 0; | ||
| const constants_1 = require("../../constants"); | ||
| const axios_1 = __importDefault(require("axios")); | ||
| class HttpJsonTraceExporter { | ||
| constructor(exporterOTLPEndpoint, exporterOTLPHeaders) { | ||
| this.url = exporterOTLPEndpoint; | ||
| this.url = this.normalizeURL(exporterOTLPEndpoint); | ||
| this.headers = {}; | ||
| for (const entry of exporterOTLPHeaders.entries()) { | ||
| const headerName = entry[0]; | ||
| const headerValue = entry[1]; | ||
| this.headers[headerName] = headerValue; | ||
| this.initHeaders(exporterOTLPHeaders); | ||
| } | ||
| normalizeURL(exporterOTLPEndpoint) { | ||
| return `${exporterOTLPEndpoint}/v1/traces`; | ||
| } | ||
| initHeaders(exporterOTLPHeaders) { | ||
| if (exporterOTLPHeaders) { | ||
| for (const entry of exporterOTLPHeaders.entries()) { | ||
| const headerName = entry[0]; | ||
| const headerValue = entry[1]; | ||
| this.headers[headerName] = headerValue; | ||
| } | ||
| } | ||
| } | ||
| async export(traceRequest) { | ||
| _createScopeSpans(spans) { | ||
| return [ | ||
| { | ||
| scope: { | ||
| name: constants_1.OTEL_CLI_NAME, | ||
| version: constants_1.OTEL_CLI_VERSION, | ||
| attributes: [], | ||
| }, | ||
| spans: spans, | ||
| }, | ||
| ]; | ||
| } | ||
| _createResourceSpans(metadata, spans) { | ||
| return [ | ||
| { | ||
| resource: { | ||
| attributes: [ | ||
| { | ||
| key: constants_1.RESOURCE_ATTRIBUTES.SERVICE_NAME, | ||
| value: { | ||
| stringValue: metadata.serviceName, | ||
| }, | ||
| }, | ||
| ], | ||
| droppedAttributesCount: 0, | ||
| }, | ||
| scopeSpans: this._createScopeSpans(spans), | ||
| }, | ||
| ]; | ||
| } | ||
| _createTraceRequest(metadata, spans) { | ||
| return { | ||
| resourceSpans: this._createResourceSpans(metadata, spans), | ||
| }; | ||
| } | ||
| createRequestData(metadata, spans) { | ||
| return this._createTraceRequest(metadata, spans); | ||
| } | ||
| async export(metadata, spans) { | ||
| var _a, _b; | ||
| try { | ||
| const res = await axios_1.default.post(this.url, traceRequest, { headers: this.headers }); | ||
| const requestData = this.createRequestData(metadata, spans); | ||
| const res = await axios_1.default.post(this.url, requestData, { | ||
| headers: this.headers, | ||
| }); | ||
| if (res.status / 100 != 2) { | ||
| throw new Error(`Invalid response (status code=${res.status}) from exporter OTLP endpoint ${this.url}`); | ||
| throw new Error(`Failed response (status code=${res.status}) from exporter OTLP HTTP endpoint ${this.url}`); | ||
| } | ||
@@ -29,6 +79,6 @@ } | ||
| if ((_a = err === null || err === void 0 ? void 0 : err.response) === null || _a === void 0 ? void 0 : _a.status) { | ||
| throw new Error(`Invalid response (status code=${(_b = err === null || err === void 0 ? void 0 : err.response) === null || _b === void 0 ? void 0 : _b.status}) from exporter OTLP endpoint ${this.url}`); | ||
| throw new Error(`Failed response (status code=${(_b = err === null || err === void 0 ? void 0 : err.response) === null || _b === void 0 ? void 0 : _b.status}) from exporter OTLP HTTP endpoint ${this.url}`); | ||
| } | ||
| else { | ||
| throw new Error(`Unable to export trace request to exporter OTLP endpoint ${this.url}: ${err.name} (${err.message})`); | ||
| throw new Error(`Unable to export trace request to exporter OTLP HTTP endpoint ${this.url}: ${err.name} (${err.message})`); | ||
| } | ||
@@ -39,2 +89,2 @@ } | ||
| exports.HttpJsonTraceExporter = HttpJsonTraceExporter; | ||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSHR0cEpzb25UcmFjZUV4cG9ydGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2V4cG9ydC9odHRwL0h0dHBKc29uVHJhY2VFeHBvcnRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFHQSxrREFBOEU7QUFFOUUsTUFBYSxxQkFBcUI7SUFLOUIsWUFBWSxvQkFBNEIsRUFDNUIsbUJBQXdDO1FBQ2hELElBQUksQ0FBQyxHQUFHLEdBQUcsb0JBQW9CLENBQUM7UUFDaEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDbEIsS0FBSyxNQUFNLEtBQUssSUFBSSxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUMvQyxNQUFNLFVBQVUsR0FBVyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDcEMsTUFBTSxXQUFXLEdBQVcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3JDLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEdBQUcsV0FBVyxDQUFDO1NBQzFDO0lBQ0wsQ0FBQztJQUVELEtBQUssQ0FBQyxNQUFNLENBQUMsWUFBMEI7O1FBQ25DLElBQUk7WUFDQSxNQUFNLEdBQUcsR0FBa0IsTUFBTSxlQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsWUFBWSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1lBQy9GLElBQUksR0FBRyxDQUFDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxFQUFFO2dCQUN2QixNQUFNLElBQUksS0FBSyxDQUNYLGlDQUFpQyxHQUFHLENBQUMsTUFBTSxpQ0FBaUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUN6RixDQUFDO2FBQ0w7U0FDSjtRQUFDLE9BQU8sR0FBcUIsRUFBRTtZQUM1QixJQUFJLE1BQUEsR0FBRyxhQUFILEdBQUcsdUJBQUgsR0FBRyxDQUFFLFFBQVEsMENBQUUsTUFBTSxFQUFFO2dCQUN2QixNQUFNLElBQUksS0FBSyxDQUNYLGlDQUFpQyxNQUFBLEdBQUcsYUFBSCxHQUFHLHVCQUFILEdBQUcsQ0FBRSxRQUFRLDBDQUFFLE1BQU0saUNBQWlDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FDcEcsQ0FBQzthQUNMO2lCQUFNO2dCQUNILE1BQU0sSUFBSSxLQUFLLENBQ1gsNERBQTRELElBQUksQ0FBQyxHQUFHLEtBQUssR0FBRyxDQUFDLElBQUksS0FBSyxHQUFHLENBQUMsT0FBTyxHQUFHLENBQ3ZHLENBQUM7YUFDTDtTQUNKO0lBQ0wsQ0FBQztDQUVKO0FBckNELHNEQXFDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRyYWNlRXhwb3J0ZXIgfSBmcm9tICcuLi9UcmFjZUV4cG9ydGVyJztcbmltcG9ydCB7IFRyYWNlUmVxdWVzdCB9IGZyb20gJy4uLy4uL2RvbWFpbi9UcmFjZVJlcXVlc3QnO1xuXG5pbXBvcnQgYXhpb3MsIHsgQXhpb3NFcnJvciwgQXhpb3NSZXF1ZXN0SGVhZGVycywgQXhpb3NSZXNwb25zZSB9IGZyb20gJ2F4aW9zJztcblxuZXhwb3J0IGNsYXNzIEh0dHBKc29uVHJhY2VFeHBvcnRlciBpbXBsZW1lbnRzIFRyYWNlRXhwb3J0ZXIge1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSB1cmw6IHN0cmluZztcbiAgICBwcml2YXRlIHJlYWRvbmx5IGhlYWRlcnM6IEF4aW9zUmVxdWVzdEhlYWRlcnM7XG5cbiAgICBjb25zdHJ1Y3RvcihleHBvcnRlck9UTFBFbmRwb2ludDogc3RyaW5nLFxuICAgICAgICAgICAgICAgIGV4cG9ydGVyT1RMUEhlYWRlcnM6IE1hcDxzdHJpbmcsIHN0cmluZz4pIHtcbiAgICAgICAgdGhpcy51cmwgPSBleHBvcnRlck9UTFBFbmRwb2ludDtcbiAgICAgICAgdGhpcy5oZWFkZXJzID0ge307XG4gICAgICAgIGZvciAoY29uc3QgZW50cnkgb2YgZXhwb3J0ZXJPVExQSGVhZGVycy5lbnRyaWVzKCkpIHtcbiAgICAgICAgICAgIGNvbnN0IGhlYWRlck5hbWU6IHN0cmluZyA9IGVudHJ5WzBdO1xuICAgICAgICAgICAgY29uc3QgaGVhZGVyVmFsdWU6IHN0cmluZyA9IGVudHJ5WzFdO1xuICAgICAgICAgICAgdGhpcy5oZWFkZXJzW2hlYWRlck5hbWVdID0gaGVhZGVyVmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhc3luYyBleHBvcnQodHJhY2VSZXF1ZXN0OiBUcmFjZVJlcXVlc3QpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHJlczogQXhpb3NSZXNwb25zZSA9IGF3YWl0IGF4aW9zLnBvc3QodGhpcy51cmwsIHRyYWNlUmVxdWVzdCwgeyBoZWFkZXJzOiB0aGlzLmhlYWRlcnMgfSk7XG4gICAgICAgICAgICBpZiAocmVzLnN0YXR1cyAvIDEwMCAhPSAyKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICAgICAgICBgSW52YWxpZCByZXNwb25zZSAoc3RhdHVzIGNvZGU9JHtyZXMuc3RhdHVzfSkgZnJvbSBleHBvcnRlciBPVExQIGVuZHBvaW50ICR7dGhpcy51cmx9YFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGVycjogQXhpb3NFcnJvciB8IGFueSkge1xuICAgICAgICAgICAgaWYgKGVycj8ucmVzcG9uc2U/LnN0YXR1cykge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgICAgICAgYEludmFsaWQgcmVzcG9uc2UgKHN0YXR1cyBjb2RlPSR7ZXJyPy5yZXNwb25zZT8uc3RhdHVzfSkgZnJvbSBleHBvcnRlciBPVExQIGVuZHBvaW50ICR7dGhpcy51cmx9YFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgICAgICAgYFVuYWJsZSB0byBleHBvcnQgdHJhY2UgcmVxdWVzdCB0byBleHBvcnRlciBPVExQIGVuZHBvaW50ICR7dGhpcy51cmx9OiAke2Vyci5uYW1lfSAoJHtlcnIubWVzc2FnZX0pYFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbn1cbiJdfQ== | ||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSHR0cEpzb25UcmFjZUV4cG9ydGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2V4cG9ydC9odHRwL0h0dHBKc29uVHJhY2VFeHBvcnRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFRQSwrQ0FJeUI7QUFFekIsa0RBQThFO0FBRTlFLE1BQWEscUJBQXFCO0lBSTlCLFlBQ0ksb0JBQTRCLEVBQzVCLG1CQUF5QztRQUV6QyxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNsQixJQUFJLENBQUMsV0FBVyxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVTLFlBQVksQ0FBQyxvQkFBNEI7UUFDL0MsT0FBTyxHQUFHLG9CQUFvQixZQUFZLENBQUM7SUFDL0MsQ0FBQztJQUVTLFdBQVcsQ0FBQyxtQkFBeUM7UUFDM0QsSUFBSSxtQkFBbUIsRUFBRTtZQUNyQixLQUFLLE1BQU0sS0FBSyxJQUFJLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxFQUFFO2dCQUMvQyxNQUFNLFVBQVUsR0FBVyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3BDLE1BQU0sV0FBVyxHQUFXLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDckMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsR0FBRyxXQUFXLENBQUM7YUFDMUM7U0FDSjtJQUNMLENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxLQUFhO1FBQ25DLE9BQU87WUFDSDtnQkFDSSxLQUFLLEVBQUU7b0JBQ0gsSUFBSSxFQUFFLHlCQUFhO29CQUNuQixPQUFPLEVBQUUsNEJBQWdCO29CQUN6QixVQUFVLEVBQUUsRUFBRTtpQkFDakI7Z0JBQ0QsS0FBSyxFQUFFLEtBQUs7YUFDZjtTQUNKLENBQUM7SUFDTixDQUFDO0lBRU8sb0JBQW9CLENBQ3hCLFFBQXVCLEVBQ3ZCLEtBQWE7UUFFYixPQUFPO1lBQ0g7Z0JBQ0ksUUFBUSxFQUFFO29CQUNOLFVBQVUsRUFBRTt3QkFDUjs0QkFDSSxHQUFHLEVBQUUsK0JBQW1CLENBQUMsWUFBWTs0QkFDckMsS0FBSyxFQUFFO2dDQUNILFdBQVcsRUFBRSxRQUFRLENBQUMsV0FBVzs2QkFDcEM7eUJBQ0o7cUJBQ0o7b0JBQ0Qsc0JBQXNCLEVBQUUsQ0FBQztpQkFDNUI7Z0JBQ0QsVUFBVSxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUM7YUFDNUM7U0FDSixDQUFDO0lBQ04sQ0FBQztJQUVPLG1CQUFtQixDQUN2QixRQUF1QixFQUN2QixLQUFhO1FBRWIsT0FBTztZQUNILGFBQWEsRUFBRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQztTQUM1RCxDQUFDO0lBQ04sQ0FBQztJQUVTLGlCQUFpQixDQUFDLFFBQXVCLEVBQUUsS0FBYTtRQUM5RCxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBdUIsRUFBRSxLQUFhOztRQUMvQyxJQUFJO1lBQ0EsTUFBTSxXQUFXLEdBQVEsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUNqRSxNQUFNLEdBQUcsR0FBa0IsTUFBTSxlQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsV0FBVyxFQUFFO2dCQUMvRCxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87YUFDeEIsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxHQUFHLENBQUMsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEVBQUU7Z0JBQ3ZCLE1BQU0sSUFBSSxLQUFLLENBQ1gsZ0NBQWdDLEdBQUcsQ0FBQyxNQUFNLHNDQUFzQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQzdGLENBQUM7YUFDTDtTQUNKO1FBQUMsT0FBTyxHQUFxQixFQUFFO1lBQzVCLElBQUksTUFBQSxHQUFHLGFBQUgsR0FBRyx1QkFBSCxHQUFHLENBQUUsUUFBUSwwQ0FBRSxNQUFNLEVBQUU7Z0JBQ3ZCLE1BQU0sSUFBSSxLQUFLLENBQ1gsZ0NBQWdDLE1BQUEsR0FBRyxhQUFILEdBQUcsdUJBQUgsR0FBRyxDQUFFLFFBQVEsMENBQUUsTUFBTSxzQ0FBc0MsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUN4RyxDQUFDO2FBQ0w7aUJBQU07Z0JBQ0gsTUFBTSxJQUFJLEtBQUssQ0FDWCxpRUFBaUUsSUFBSSxDQUFDLEdBQUcsS0FBSyxHQUFHLENBQUMsSUFBSSxLQUFLLEdBQUcsQ0FBQyxPQUFPLEdBQUcsQ0FDNUcsQ0FBQzthQUNMO1NBQ0o7SUFDTCxDQUFDO0NBQ0o7QUFsR0Qsc0RBa0dDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHJhY2VFeHBvcnRlciB9IGZyb20gJy4uL1RyYWNlRXhwb3J0ZXInO1xuaW1wb3J0IHtcbiAgICBSZXNvdXJjZVNwYW5zLFxuICAgIFNjb3BlU3BhbnMsXG4gICAgU3BhbixcbiAgICBUcmFjZU1ldGFkYXRhLFxuICAgIFRyYWNlUmVxdWVzdCxcbn0gZnJvbSAnLi4vLi4vZG9tYWluJztcbmltcG9ydCB7XG4gICAgT1RFTF9DTElfTkFNRSxcbiAgICBPVEVMX0NMSV9WRVJTSU9OLFxuICAgIFJFU09VUkNFX0FUVFJJQlVURVMsXG59IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5cbmltcG9ydCBheGlvcywgeyBBeGlvc0Vycm9yLCBBeGlvc1JlcXVlc3RIZWFkZXJzLCBBeGlvc1Jlc3BvbnNlIH0gZnJvbSAnYXhpb3MnO1xuXG5leHBvcnQgY2xhc3MgSHR0cEpzb25UcmFjZUV4cG9ydGVyIGltcGxlbWVudHMgVHJhY2VFeHBvcnRlciB7XG4gICAgcHJpdmF0ZSByZWFkb25seSB1cmw6IHN0cmluZztcbiAgICBwcml2YXRlIHJlYWRvbmx5IGhlYWRlcnM6IEF4aW9zUmVxdWVzdEhlYWRlcnM7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgZXhwb3J0ZXJPVExQRW5kcG9pbnQ6IHN0cmluZyxcbiAgICAgICAgZXhwb3J0ZXJPVExQSGVhZGVycz86IE1hcDxzdHJpbmcsIHN0cmluZz5cbiAgICApIHtcbiAgICAgICAgdGhpcy51cmwgPSB0aGlzLm5vcm1hbGl6ZVVSTChleHBvcnRlck9UTFBFbmRwb2ludCk7XG4gICAgICAgIHRoaXMuaGVhZGVycyA9IHt9O1xuICAgICAgICB0aGlzLmluaXRIZWFkZXJzKGV4cG9ydGVyT1RMUEhlYWRlcnMpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBub3JtYWxpemVVUkwoZXhwb3J0ZXJPVExQRW5kcG9pbnQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBgJHtleHBvcnRlck9UTFBFbmRwb2ludH0vdjEvdHJhY2VzYDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgaW5pdEhlYWRlcnMoZXhwb3J0ZXJPVExQSGVhZGVycz86IE1hcDxzdHJpbmcsIHN0cmluZz4pOiB2b2lkIHtcbiAgICAgICAgaWYgKGV4cG9ydGVyT1RMUEhlYWRlcnMpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgZW50cnkgb2YgZXhwb3J0ZXJPVExQSGVhZGVycy5lbnRyaWVzKCkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBoZWFkZXJOYW1lOiBzdHJpbmcgPSBlbnRyeVswXTtcbiAgICAgICAgICAgICAgICBjb25zdCBoZWFkZXJWYWx1ZTogc3RyaW5nID0gZW50cnlbMV07XG4gICAgICAgICAgICAgICAgdGhpcy5oZWFkZXJzW2hlYWRlck5hbWVdID0gaGVhZGVyVmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF9jcmVhdGVTY29wZVNwYW5zKHNwYW5zOiBTcGFuW10pOiBTY29wZVNwYW5zW10ge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHNjb3BlOiB7XG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IE9URUxfQ0xJX05BTUUsXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb246IE9URUxfQ0xJX1ZFUlNJT04sXG4gICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXM6IFtdLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgc3BhbnM6IHNwYW5zLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgXTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9jcmVhdGVSZXNvdXJjZVNwYW5zKFxuICAgICAgICBtZXRhZGF0YTogVHJhY2VNZXRhZGF0YSxcbiAgICAgICAgc3BhbnM6IFNwYW5bXVxuICAgICk6IFJlc291cmNlU3BhbnNbXSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcmVzb3VyY2U6IHtcbiAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlczogW1xuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleTogUkVTT1VSQ0VfQVRUUklCVVRFUy5TRVJWSUNFX05BTUUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyaW5nVmFsdWU6IG1ldGFkYXRhLnNlcnZpY2VOYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICBkcm9wcGVkQXR0cmlidXRlc0NvdW50OiAwLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgc2NvcGVTcGFuczogdGhpcy5fY3JlYXRlU2NvcGVTcGFucyhzcGFucyksXG4gICAgICAgICAgICB9LFxuICAgICAgICBdO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2NyZWF0ZVRyYWNlUmVxdWVzdChcbiAgICAgICAgbWV0YWRhdGE6IFRyYWNlTWV0YWRhdGEsXG4gICAgICAgIHNwYW5zOiBTcGFuW11cbiAgICApOiBUcmFjZVJlcXVlc3Qge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgcmVzb3VyY2VTcGFuczogdGhpcy5fY3JlYXRlUmVzb3VyY2VTcGFucyhtZXRhZGF0YSwgc3BhbnMpLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBjcmVhdGVSZXF1ZXN0RGF0YShtZXRhZGF0YTogVHJhY2VNZXRhZGF0YSwgc3BhbnM6IFNwYW5bXSk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jcmVhdGVUcmFjZVJlcXVlc3QobWV0YWRhdGEsIHNwYW5zKTtcbiAgICB9XG5cbiAgICBhc3luYyBleHBvcnQobWV0YWRhdGE6IFRyYWNlTWV0YWRhdGEsIHNwYW5zOiBTcGFuW10pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHJlcXVlc3REYXRhOiBhbnkgPSB0aGlzLmNyZWF0ZVJlcXVlc3REYXRhKG1ldGFkYXRhLCBzcGFucyk7XG4gICAgICAgICAgICBjb25zdCByZXM6IEF4aW9zUmVzcG9uc2UgPSBhd2FpdCBheGlvcy5wb3N0KHRoaXMudXJsLCByZXF1ZXN0RGF0YSwge1xuICAgICAgICAgICAgICAgIGhlYWRlcnM6IHRoaXMuaGVhZGVycyxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgaWYgKHJlcy5zdGF0dXMgLyAxMDAgIT0gMikge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgICAgICAgYEZhaWxlZCByZXNwb25zZSAoc3RhdHVzIGNvZGU9JHtyZXMuc3RhdHVzfSkgZnJvbSBleHBvcnRlciBPVExQIEhUVFAgZW5kcG9pbnQgJHt0aGlzLnVybH1gXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZXJyOiBBeGlvc0Vycm9yIHwgYW55KSB7XG4gICAgICAgICAgICBpZiAoZXJyPy5yZXNwb25zZT8uc3RhdHVzKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICAgICAgICBgRmFpbGVkIHJlc3BvbnNlIChzdGF0dXMgY29kZT0ke2Vycj8ucmVzcG9uc2U/LnN0YXR1c30pIGZyb20gZXhwb3J0ZXIgT1RMUCBIVFRQIGVuZHBvaW50ICR7dGhpcy51cmx9YFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgICAgICAgYFVuYWJsZSB0byBleHBvcnQgdHJhY2UgcmVxdWVzdCB0byBleHBvcnRlciBPVExQIEhUVFAgZW5kcG9pbnQgJHt0aGlzLnVybH06ICR7ZXJyLm5hbWV9ICgke2Vyci5tZXNzYWdlfSlgXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ== |
| import { TraceExporter } from './TraceExporter'; | ||
| export * from './TraceExporter'; | ||
| export declare enum ExporterOTLPProtocols { | ||
| HTTP_JSON = "http/json" | ||
| HTTP_JSON = "http/json", | ||
| GRPC = "grpc" | ||
| } | ||
| export declare function createTraceExporter(exporterOTLPProtocol: string, exporterOTLPEndpoint: string, exporterOTLPHeaders: Map<string, string>): TraceExporter; | ||
| export declare function createServerTraceExporter(serverPort: number): TraceExporter; |
@@ -20,2 +20,3 @@ "use strict"; | ||
| const server_1 = require("./server"); | ||
| const grpc_1 = require("./grpc"); | ||
| const constants_1 = require("../constants"); | ||
@@ -26,5 +27,7 @@ __exportStar(require("./TraceExporter"), exports); | ||
| ExporterOTLPProtocols["HTTP_JSON"] = "http/json"; | ||
| ExporterOTLPProtocols["GRPC"] = "grpc"; | ||
| })(ExporterOTLPProtocols = exports.ExporterOTLPProtocols || (exports.ExporterOTLPProtocols = {})); | ||
| const TRACE_EXPORTER_FACTORY_MAP = { | ||
| [ExporterOTLPProtocols.HTTP_JSON]: (exporterOTLPEndpoint, exporterOTLPHeaders) => new http_1.HttpJsonTraceExporter(exporterOTLPEndpoint, exporterOTLPHeaders), | ||
| [ExporterOTLPProtocols.GRPC]: (exporterOTLPEndpoint, exporterOTLPHeaders) => new grpc_1.GrpcTraceExporter(exporterOTLPEndpoint, exporterOTLPHeaders), | ||
| }; | ||
@@ -43,2 +46,2 @@ function createTraceExporter(exporterOTLPProtocol, exporterOTLPEndpoint, exporterOTLPHeaders) { | ||
| exports.createServerTraceExporter = createServerTraceExporter; | ||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZXhwb3J0L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsaUNBQStDO0FBRS9DLHFDQUErQztBQUMvQyw0Q0FBbUQ7QUFFbkQsa0RBQWdDO0FBRWhDLElBQVkscUJBRVg7QUFGRCxXQUFZLHFCQUFxQjtJQUM3QixnREFBdUIsQ0FBQTtBQUMzQixDQUFDLEVBRlcscUJBQXFCLEdBQXJCLDZCQUFxQixLQUFyQiw2QkFBcUIsUUFFaEM7QUFjRCxNQUFNLDBCQUEwQixHQUE0QjtJQUN4RCxDQUFDLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQy9CLG9CQUE0QixFQUM1QixtQkFBd0MsRUFDMUMsRUFBRSxDQUFDLElBQUksNEJBQXFCLENBQUMsb0JBQW9CLEVBQUUsbUJBQW1CLENBQUM7Q0FDNUUsQ0FBQztBQUVGLFNBQWdCLG1CQUFtQixDQUMvQixvQkFBNEIsRUFDNUIsb0JBQTRCLEVBQzVCLG1CQUF3QztJQUV4QyxNQUFNLG9CQUFvQixHQUN0QiwwQkFBMEIsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBQ3JELElBQUksQ0FBQyxvQkFBb0IsRUFBRTtRQUN2QixNQUFNLElBQUksS0FBSyxDQUNYLHdDQUF3QyxvQkFBb0IsRUFBRSxDQUNqRSxDQUFDO0tBQ0w7SUFDRCxPQUFPLG9CQUFvQixDQUFDLG9CQUFvQixFQUFFLG1CQUFtQixDQUFDLENBQUM7QUFDM0UsQ0FBQztBQWJELGtEQWFDO0FBRUQsU0FBZ0IseUJBQXlCLENBQUMsVUFBa0I7SUFDeEQsT0FBTyxJQUFJLDRCQUFtQixDQUFDLCtCQUFtQixFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBQ3BFLENBQUM7QUFGRCw4REFFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBKc29uVHJhY2VFeHBvcnRlciB9IGZyb20gJy4vaHR0cCc7XG5pbXBvcnQgeyBUcmFjZUV4cG9ydGVyIH0gZnJvbSAnLi9UcmFjZUV4cG9ydGVyJztcbmltcG9ydCB7IFNlcnZlclRyYWNlRXhwb3J0ZXIgfSBmcm9tICcuL3NlcnZlcic7XG5pbXBvcnQgeyBERUZBVUxUX1NFUlZFUl9IT1NUIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcblxuZXhwb3J0ICogZnJvbSAnLi9UcmFjZUV4cG9ydGVyJztcblxuZXhwb3J0IGVudW0gRXhwb3J0ZXJPVExQUHJvdG9jb2xzIHtcbiAgICBIVFRQX0pTT04gPSAnaHR0cC9qc29uJyxcbn1cblxudHlwZSBUcmFjZUV4cG9ydGVyRmFjdG9yeSA9IChcbiAgICBleHBvcnRlck9UTFBFbmRwb2ludDogc3RyaW5nLFxuICAgIGV4cG9ydGVyT1RMUEhlYWRlcnM6IE1hcDxzdHJpbmcsIHN0cmluZz5cbikgPT4gVHJhY2VFeHBvcnRlcjtcblxuaW50ZXJmYWNlIFRyYWNlRXhwb3J0ZXJGYWN0b3J5TWFwIHtcbiAgICBbZXhwb3J0ZXJPVExQUHJvdG9jb2w6IHN0cmluZ106IChcbiAgICAgICAgZXhwb3J0ZXJPVExQRW5kcG9pbnQ6IHN0cmluZyxcbiAgICAgICAgZXhwb3J0ZXJPVExQSGVhZGVyczogTWFwPHN0cmluZywgc3RyaW5nPlxuICAgICkgPT4gVHJhY2VFeHBvcnRlcjtcbn1cblxuY29uc3QgVFJBQ0VfRVhQT1JURVJfRkFDVE9SWV9NQVA6IFRyYWNlRXhwb3J0ZXJGYWN0b3J5TWFwID0ge1xuICAgIFtFeHBvcnRlck9UTFBQcm90b2NvbHMuSFRUUF9KU09OXTogKFxuICAgICAgICBleHBvcnRlck9UTFBFbmRwb2ludDogc3RyaW5nLFxuICAgICAgICBleHBvcnRlck9UTFBIZWFkZXJzOiBNYXA8c3RyaW5nLCBzdHJpbmc+XG4gICAgKSA9PiBuZXcgSHR0cEpzb25UcmFjZUV4cG9ydGVyKGV4cG9ydGVyT1RMUEVuZHBvaW50LCBleHBvcnRlck9UTFBIZWFkZXJzKSxcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVUcmFjZUV4cG9ydGVyKFxuICAgIGV4cG9ydGVyT1RMUFByb3RvY29sOiBzdHJpbmcsXG4gICAgZXhwb3J0ZXJPVExQRW5kcG9pbnQ6IHN0cmluZyxcbiAgICBleHBvcnRlck9UTFBIZWFkZXJzOiBNYXA8c3RyaW5nLCBzdHJpbmc+XG4pOiBUcmFjZUV4cG9ydGVyIHtcbiAgICBjb25zdCB0cmFjZUV4cG9ydGVyRmFjdG9yeTogVHJhY2VFeHBvcnRlckZhY3RvcnkgPVxuICAgICAgICBUUkFDRV9FWFBPUlRFUl9GQUNUT1JZX01BUFtleHBvcnRlck9UTFBQcm90b2NvbF07XG4gICAgaWYgKCF0cmFjZUV4cG9ydGVyRmFjdG9yeSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICBgVW5yZWNvZ25pemVkIGV4cG9ydGVyIE9UTFAgcHJvdG9jb2w6ICR7ZXhwb3J0ZXJPVExQUHJvdG9jb2x9YFxuICAgICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gdHJhY2VFeHBvcnRlckZhY3RvcnkoZXhwb3J0ZXJPVExQRW5kcG9pbnQsIGV4cG9ydGVyT1RMUEhlYWRlcnMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU2VydmVyVHJhY2VFeHBvcnRlcihzZXJ2ZXJQb3J0OiBudW1iZXIpOiBUcmFjZUV4cG9ydGVyIHtcbiAgICByZXR1cm4gbmV3IFNlcnZlclRyYWNlRXhwb3J0ZXIoREVGQVVMVF9TRVJWRVJfSE9TVCwgc2VydmVyUG9ydCk7XG59XG4iXX0= | ||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZXhwb3J0L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsaUNBQStDO0FBQy9DLHFDQUErQztBQUMvQyxpQ0FBMkM7QUFDM0MsNENBQW1EO0FBRW5ELGtEQUFnQztBQUVoQyxJQUFZLHFCQUdYO0FBSEQsV0FBWSxxQkFBcUI7SUFDN0IsZ0RBQXVCLENBQUE7SUFDdkIsc0NBQWEsQ0FBQTtBQUNqQixDQUFDLEVBSFcscUJBQXFCLEdBQXJCLDZCQUFxQixLQUFyQiw2QkFBcUIsUUFHaEM7QUFjRCxNQUFNLDBCQUEwQixHQUE0QjtJQUN4RCxDQUFDLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQy9CLG9CQUE0QixFQUM1QixtQkFBd0MsRUFDMUMsRUFBRSxDQUFDLElBQUksNEJBQXFCLENBQUMsb0JBQW9CLEVBQUUsbUJBQW1CLENBQUM7SUFDekUsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUMxQixvQkFBNEIsRUFDNUIsbUJBQXdDLEVBQzFDLEVBQUUsQ0FBQyxJQUFJLHdCQUFpQixDQUFDLG9CQUFvQixFQUFFLG1CQUFtQixDQUFDO0NBQ3hFLENBQUM7QUFFRixTQUFnQixtQkFBbUIsQ0FDL0Isb0JBQTRCLEVBQzVCLG9CQUE0QixFQUM1QixtQkFBd0M7SUFFeEMsTUFBTSxvQkFBb0IsR0FDdEIsMEJBQTBCLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUNyRCxJQUFJLENBQUMsb0JBQW9CLEVBQUU7UUFDdkIsTUFBTSxJQUFJLEtBQUssQ0FDWCx3Q0FBd0Msb0JBQW9CLEVBQUUsQ0FDakUsQ0FBQztLQUNMO0lBQ0QsT0FBTyxvQkFBb0IsQ0FBQyxvQkFBb0IsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO0FBQzNFLENBQUM7QUFiRCxrREFhQztBQUVELFNBQWdCLHlCQUF5QixDQUFDLFVBQWtCO0lBQ3hELE9BQU8sSUFBSSw0QkFBbUIsQ0FBQywrQkFBbUIsRUFBRSxVQUFVLENBQUMsQ0FBQztBQUNwRSxDQUFDO0FBRkQsOERBRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUcmFjZUV4cG9ydGVyIH0gZnJvbSAnLi9UcmFjZUV4cG9ydGVyJztcbmltcG9ydCB7IEh0dHBKc29uVHJhY2VFeHBvcnRlciB9IGZyb20gJy4vaHR0cCc7XG5pbXBvcnQgeyBTZXJ2ZXJUcmFjZUV4cG9ydGVyIH0gZnJvbSAnLi9zZXJ2ZXInO1xuaW1wb3J0IHsgR3JwY1RyYWNlRXhwb3J0ZXIgfSBmcm9tICcuL2dycGMnO1xuaW1wb3J0IHsgREVGQVVMVF9TRVJWRVJfSE9TVCB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vVHJhY2VFeHBvcnRlcic7XG5cbmV4cG9ydCBlbnVtIEV4cG9ydGVyT1RMUFByb3RvY29scyB7XG4gICAgSFRUUF9KU09OID0gJ2h0dHAvanNvbicsXG4gICAgR1JQQyA9ICdncnBjJyxcbn1cblxudHlwZSBUcmFjZUV4cG9ydGVyRmFjdG9yeSA9IChcbiAgICBleHBvcnRlck9UTFBFbmRwb2ludDogc3RyaW5nLFxuICAgIGV4cG9ydGVyT1RMUEhlYWRlcnM6IE1hcDxzdHJpbmcsIHN0cmluZz5cbikgPT4gVHJhY2VFeHBvcnRlcjtcblxuaW50ZXJmYWNlIFRyYWNlRXhwb3J0ZXJGYWN0b3J5TWFwIHtcbiAgICBbZXhwb3J0ZXJPVExQUHJvdG9jb2w6IHN0cmluZ106IChcbiAgICAgICAgZXhwb3J0ZXJPVExQRW5kcG9pbnQ6IHN0cmluZyxcbiAgICAgICAgZXhwb3J0ZXJPVExQSGVhZGVyczogTWFwPHN0cmluZywgc3RyaW5nPlxuICAgICkgPT4gVHJhY2VFeHBvcnRlcjtcbn1cblxuY29uc3QgVFJBQ0VfRVhQT1JURVJfRkFDVE9SWV9NQVA6IFRyYWNlRXhwb3J0ZXJGYWN0b3J5TWFwID0ge1xuICAgIFtFeHBvcnRlck9UTFBQcm90b2NvbHMuSFRUUF9KU09OXTogKFxuICAgICAgICBleHBvcnRlck9UTFBFbmRwb2ludDogc3RyaW5nLFxuICAgICAgICBleHBvcnRlck9UTFBIZWFkZXJzOiBNYXA8c3RyaW5nLCBzdHJpbmc+XG4gICAgKSA9PiBuZXcgSHR0cEpzb25UcmFjZUV4cG9ydGVyKGV4cG9ydGVyT1RMUEVuZHBvaW50LCBleHBvcnRlck9UTFBIZWFkZXJzKSxcbiAgICBbRXhwb3J0ZXJPVExQUHJvdG9jb2xzLkdSUENdOiAoXG4gICAgICAgIGV4cG9ydGVyT1RMUEVuZHBvaW50OiBzdHJpbmcsXG4gICAgICAgIGV4cG9ydGVyT1RMUEhlYWRlcnM6IE1hcDxzdHJpbmcsIHN0cmluZz5cbiAgICApID0+IG5ldyBHcnBjVHJhY2VFeHBvcnRlcihleHBvcnRlck9UTFBFbmRwb2ludCwgZXhwb3J0ZXJPVExQSGVhZGVycyksXG59O1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVHJhY2VFeHBvcnRlcihcbiAgICBleHBvcnRlck9UTFBQcm90b2NvbDogc3RyaW5nLFxuICAgIGV4cG9ydGVyT1RMUEVuZHBvaW50OiBzdHJpbmcsXG4gICAgZXhwb3J0ZXJPVExQSGVhZGVyczogTWFwPHN0cmluZywgc3RyaW5nPlxuKTogVHJhY2VFeHBvcnRlciB7XG4gICAgY29uc3QgdHJhY2VFeHBvcnRlckZhY3Rvcnk6IFRyYWNlRXhwb3J0ZXJGYWN0b3J5ID1cbiAgICAgICAgVFJBQ0VfRVhQT1JURVJfRkFDVE9SWV9NQVBbZXhwb3J0ZXJPVExQUHJvdG9jb2xdO1xuICAgIGlmICghdHJhY2VFeHBvcnRlckZhY3RvcnkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgYFVucmVjb2duaXplZCBleHBvcnRlciBPVExQIHByb3RvY29sOiAke2V4cG9ydGVyT1RMUFByb3RvY29sfWBcbiAgICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIHRyYWNlRXhwb3J0ZXJGYWN0b3J5KGV4cG9ydGVyT1RMUEVuZHBvaW50LCBleHBvcnRlck9UTFBIZWFkZXJzKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVNlcnZlclRyYWNlRXhwb3J0ZXIoc2VydmVyUG9ydDogbnVtYmVyKTogVHJhY2VFeHBvcnRlciB7XG4gICAgcmV0dXJuIG5ldyBTZXJ2ZXJUcmFjZUV4cG9ydGVyKERFRkFVTFRfU0VSVkVSX0hPU1QsIHNlcnZlclBvcnQpO1xufVxuIl19 |
| import { TraceExporter } from '../TraceExporter'; | ||
| import { TraceRequest } from '../../domain/TraceRequest'; | ||
| export declare class ServerTraceExporter implements TraceExporter { | ||
| private readonly url; | ||
| import { HttpJsonTraceExporter } from '../http'; | ||
| import { Span, TraceMetadata, TraceData } from '../../domain'; | ||
| export declare class ServerTraceExporter extends HttpJsonTraceExporter implements TraceExporter { | ||
| constructor(serverHost: string, serverPort: number); | ||
| protected normalizeURL(exporterOTLPEndpoint: string): string; | ||
| private static _generateURL; | ||
| export(traceRequest: TraceRequest): Promise<void>; | ||
| protected createRequestData(metadata: TraceMetadata, spans: Span[]): TraceData; | ||
| } |
| "use strict"; | ||
| var __importDefault = (this && this.__importDefault) || function (mod) { | ||
| return (mod && mod.__esModule) ? mod : { "default": mod }; | ||
| }; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.ServerTraceExporter = void 0; | ||
| const axios_1 = __importDefault(require("axios")); | ||
| class ServerTraceExporter { | ||
| const http_1 = require("../http"); | ||
| class ServerTraceExporter extends http_1.HttpJsonTraceExporter { | ||
| constructor(serverHost, serverPort) { | ||
| this.url = ServerTraceExporter._generateURL(serverHost, serverPort); | ||
| super(ServerTraceExporter._generateURL(serverHost, serverPort)); | ||
| } | ||
| normalizeURL(exporterOTLPEndpoint) { | ||
| return exporterOTLPEndpoint; | ||
| } | ||
| static _generateURL(serverHost, serverPort) { | ||
@@ -19,21 +19,10 @@ let serverExportURL = `${serverHost}:${serverPort}/export`; | ||
| } | ||
| async export(traceRequest) { | ||
| var _a, _b; | ||
| try { | ||
| const res = await axios_1.default.post(this.url, traceRequest); | ||
| if (res.status / 100 != 2) { | ||
| throw new Error(`Invalid response (status code=${res.status}) from server endpoint ${this.url}`); | ||
| } | ||
| } | ||
| catch (err) { | ||
| if ((_a = err === null || err === void 0 ? void 0 : err.response) === null || _a === void 0 ? void 0 : _a.status) { | ||
| throw new Error(`Invalid response (status code=${(_b = err === null || err === void 0 ? void 0 : err.response) === null || _b === void 0 ? void 0 : _b.status}) from server endpoint ${this.url}`); | ||
| } | ||
| else { | ||
| throw new Error(`Unable to export trace request to server endpoint ${this.url}: ${err.name} (${err.message})`); | ||
| } | ||
| } | ||
| createRequestData(metadata, spans) { | ||
| return { | ||
| metadata, | ||
| spans, | ||
| }; | ||
| } | ||
| } | ||
| exports.ServerTraceExporter = ServerTraceExporter; | ||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VydmVyVHJhY2VFeHBvcnRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9leHBvcnQvc2VydmVyL1NlcnZlclRyYWNlRXhwb3J0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBR0Esa0RBQXlEO0FBRXpELE1BQWEsbUJBQW1CO0lBSTVCLFlBQVksVUFBa0IsRUFBRSxVQUFrQjtRQUM5QyxJQUFJLENBQUMsR0FBRyxHQUFHLG1CQUFtQixDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVPLE1BQU0sQ0FBQyxZQUFZLENBQUMsVUFBa0IsRUFBRSxVQUFrQjtRQUM5RCxJQUFJLGVBQWUsR0FBVyxHQUFHLFVBQVUsSUFBSSxVQUFVLFNBQVMsQ0FBQztRQUNuRSxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUN4QyxlQUFlLEdBQUcsVUFBVSxlQUFlLEVBQUUsQ0FBQztTQUNqRDtRQUNELE9BQU8sZUFBZSxDQUFDO0lBQzNCLENBQUM7SUFFRCxLQUFLLENBQUMsTUFBTSxDQUFDLFlBQTBCOztRQUNuQyxJQUFJO1lBQ0EsTUFBTSxHQUFHLEdBQWtCLE1BQU0sZUFBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBQyxDQUFDO1lBQ3BFLElBQUksR0FBRyxDQUFDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxFQUFFO2dCQUN2QixNQUFNLElBQUksS0FBSyxDQUNYLGlDQUFpQyxHQUFHLENBQUMsTUFBTSwwQkFBMEIsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUNsRixDQUFDO2FBQ0w7U0FDSjtRQUFDLE9BQU8sR0FBcUIsRUFBRTtZQUM1QixJQUFJLE1BQUEsR0FBRyxhQUFILEdBQUcsdUJBQUgsR0FBRyxDQUFFLFFBQVEsMENBQUUsTUFBTSxFQUFFO2dCQUN2QixNQUFNLElBQUksS0FBSyxDQUNYLGlDQUFpQyxNQUFBLEdBQUcsYUFBSCxHQUFHLHVCQUFILEdBQUcsQ0FBRSxRQUFRLDBDQUFFLE1BQU0sMEJBQTBCLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FDN0YsQ0FBQzthQUNMO2lCQUFNO2dCQUNILE1BQU0sSUFBSSxLQUFLLENBQ1gscURBQXFELElBQUksQ0FBQyxHQUFHLEtBQUssR0FBRyxDQUFDLElBQUksS0FBSyxHQUFHLENBQUMsT0FBTyxHQUFHLENBQ2hHLENBQUM7YUFDTDtTQUNKO0lBQ0wsQ0FBQztDQUVKO0FBckNELGtEQXFDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRyYWNlRXhwb3J0ZXIgfSBmcm9tICcuLi9UcmFjZUV4cG9ydGVyJztcbmltcG9ydCB7IFRyYWNlUmVxdWVzdCB9IGZyb20gJy4uLy4uL2RvbWFpbi9UcmFjZVJlcXVlc3QnO1xuXG5pbXBvcnQgYXhpb3MsIHsgQXhpb3NFcnJvciwgQXhpb3NSZXNwb25zZSB9IGZyb20gJ2F4aW9zJztcblxuZXhwb3J0IGNsYXNzIFNlcnZlclRyYWNlRXhwb3J0ZXIgaW1wbGVtZW50cyBUcmFjZUV4cG9ydGVyIHtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgdXJsOiBzdHJpbmc7XG5cbiAgICBjb25zdHJ1Y3RvcihzZXJ2ZXJIb3N0OiBzdHJpbmcsIHNlcnZlclBvcnQ6IG51bWJlcikge1xuICAgICAgICB0aGlzLnVybCA9IFNlcnZlclRyYWNlRXhwb3J0ZXIuX2dlbmVyYXRlVVJMKHNlcnZlckhvc3QsIHNlcnZlclBvcnQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIF9nZW5lcmF0ZVVSTChzZXJ2ZXJIb3N0OiBzdHJpbmcsIHNlcnZlclBvcnQ6IG51bWJlcik6IHN0cmluZyB7XG4gICAgICAgIGxldCBzZXJ2ZXJFeHBvcnRVUkw6IHN0cmluZyA9IGAke3NlcnZlckhvc3R9OiR7c2VydmVyUG9ydH0vZXhwb3J0YDtcbiAgICAgICAgaWYgKCFzZXJ2ZXJFeHBvcnRVUkwuc3RhcnRzV2l0aCgnaHR0cDovLycpKSB7XG4gICAgICAgICAgICBzZXJ2ZXJFeHBvcnRVUkwgPSBgaHR0cDovLyR7c2VydmVyRXhwb3J0VVJMfWA7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHNlcnZlckV4cG9ydFVSTDtcbiAgICB9XG5cbiAgICBhc3luYyBleHBvcnQodHJhY2VSZXF1ZXN0OiBUcmFjZVJlcXVlc3QpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHJlczogQXhpb3NSZXNwb25zZSA9IGF3YWl0IGF4aW9zLnBvc3QodGhpcy51cmwsIHRyYWNlUmVxdWVzdCk7XG4gICAgICAgICAgICBpZiAocmVzLnN0YXR1cyAvIDEwMCAhPSAyKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICAgICAgICBgSW52YWxpZCByZXNwb25zZSAoc3RhdHVzIGNvZGU9JHtyZXMuc3RhdHVzfSkgZnJvbSBzZXJ2ZXIgZW5kcG9pbnQgJHt0aGlzLnVybH1gXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZXJyOiBBeGlvc0Vycm9yIHwgYW55KSB7XG4gICAgICAgICAgICBpZiAoZXJyPy5yZXNwb25zZT8uc3RhdHVzKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICAgICAgICBgSW52YWxpZCByZXNwb25zZSAoc3RhdHVzIGNvZGU9JHtlcnI/LnJlc3BvbnNlPy5zdGF0dXN9KSBmcm9tIHNlcnZlciBlbmRwb2ludCAke3RoaXMudXJsfWBcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgICAgICAgIGBVbmFibGUgdG8gZXhwb3J0IHRyYWNlIHJlcXVlc3QgdG8gc2VydmVyIGVuZHBvaW50ICR7dGhpcy51cmx9OiAke2Vyci5uYW1lfSAoJHtlcnIubWVzc2FnZX0pYFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbn1cbiJdfQ== | ||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VydmVyVHJhY2VFeHBvcnRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9leHBvcnQvc2VydmVyL1NlcnZlclRyYWNlRXhwb3J0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0Esa0NBQWdEO0FBR2hELE1BQWEsbUJBQ1QsU0FBUSw0QkFBcUI7SUFHN0IsWUFBWSxVQUFrQixFQUFFLFVBQWtCO1FBQzlDLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUVTLFlBQVksQ0FBQyxvQkFBNEI7UUFDL0MsT0FBTyxvQkFBb0IsQ0FBQztJQUNoQyxDQUFDO0lBRU8sTUFBTSxDQUFDLFlBQVksQ0FDdkIsVUFBa0IsRUFDbEIsVUFBa0I7UUFFbEIsSUFBSSxlQUFlLEdBQVcsR0FBRyxVQUFVLElBQUksVUFBVSxTQUFTLENBQUM7UUFDbkUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDeEMsZUFBZSxHQUFHLFVBQVUsZUFBZSxFQUFFLENBQUM7U0FDakQ7UUFDRCxPQUFPLGVBQWUsQ0FBQztJQUMzQixDQUFDO0lBRVMsaUJBQWlCLENBQ3ZCLFFBQXVCLEVBQ3ZCLEtBQWE7UUFFYixPQUFPO1lBQ0gsUUFBUTtZQUNSLEtBQUs7U0FDSyxDQUFDO0lBQ25CLENBQUM7Q0FDSjtBQWhDRCxrREFnQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUcmFjZUV4cG9ydGVyIH0gZnJvbSAnLi4vVHJhY2VFeHBvcnRlcic7XG5pbXBvcnQgeyBIdHRwSnNvblRyYWNlRXhwb3J0ZXIgfSBmcm9tICcuLi9odHRwJztcbmltcG9ydCB7IFNwYW4sIFRyYWNlTWV0YWRhdGEsIFRyYWNlRGF0YSB9IGZyb20gJy4uLy4uL2RvbWFpbic7XG5cbmV4cG9ydCBjbGFzcyBTZXJ2ZXJUcmFjZUV4cG9ydGVyXG4gICAgZXh0ZW5kcyBIdHRwSnNvblRyYWNlRXhwb3J0ZXJcbiAgICBpbXBsZW1lbnRzIFRyYWNlRXhwb3J0ZXJcbntcbiAgICBjb25zdHJ1Y3RvcihzZXJ2ZXJIb3N0OiBzdHJpbmcsIHNlcnZlclBvcnQ6IG51bWJlcikge1xuICAgICAgICBzdXBlcihTZXJ2ZXJUcmFjZUV4cG9ydGVyLl9nZW5lcmF0ZVVSTChzZXJ2ZXJIb3N0LCBzZXJ2ZXJQb3J0KSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG5vcm1hbGl6ZVVSTChleHBvcnRlck9UTFBFbmRwb2ludDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGV4cG9ydGVyT1RMUEVuZHBvaW50O1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIF9nZW5lcmF0ZVVSTChcbiAgICAgICAgc2VydmVySG9zdDogc3RyaW5nLFxuICAgICAgICBzZXJ2ZXJQb3J0OiBudW1iZXJcbiAgICApOiBzdHJpbmcge1xuICAgICAgICBsZXQgc2VydmVyRXhwb3J0VVJMOiBzdHJpbmcgPSBgJHtzZXJ2ZXJIb3N0fToke3NlcnZlclBvcnR9L2V4cG9ydGA7XG4gICAgICAgIGlmICghc2VydmVyRXhwb3J0VVJMLnN0YXJ0c1dpdGgoJ2h0dHA6Ly8nKSkge1xuICAgICAgICAgICAgc2VydmVyRXhwb3J0VVJMID0gYGh0dHA6Ly8ke3NlcnZlckV4cG9ydFVSTH1gO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzZXJ2ZXJFeHBvcnRVUkw7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNyZWF0ZVJlcXVlc3REYXRhKFxuICAgICAgICBtZXRhZGF0YTogVHJhY2VNZXRhZGF0YSxcbiAgICAgICAgc3BhbnM6IFNwYW5bXVxuICAgICk6IFRyYWNlRGF0YSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBtZXRhZGF0YSxcbiAgICAgICAgICAgIHNwYW5zLFxuICAgICAgICB9IGFzIFRyYWNlRGF0YTtcbiAgICB9XG59XG4iXX0= |
@@ -1,4 +0,4 @@ | ||
| import { TraceRequest } from '../domain/TraceRequest'; | ||
| import { Span, TraceMetadata } from '../domain'; | ||
| export interface TraceExporter { | ||
| export(traceRequest: TraceRequest): Promise<void>; | ||
| export(metadata: TraceMetadata, spans: Span[]): Promise<void>; | ||
| } |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHJhY2VFeHBvcnRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9leHBvcnQvVHJhY2VFeHBvcnRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHJhY2VSZXF1ZXN0IH0gZnJvbSAnLi4vZG9tYWluL1RyYWNlUmVxdWVzdCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHJhY2VFeHBvcnRlciB7XG4gICAgZXhwb3J0KHRyYWNlUmVxdWVzdDogVHJhY2VSZXF1ZXN0KTogUHJvbWlzZTx2b2lkPjtcbn1cbiJdfQ== | ||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHJhY2VFeHBvcnRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9leHBvcnQvVHJhY2VFeHBvcnRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3BhbiwgVHJhY2VNZXRhZGF0YSB9IGZyb20gJy4uL2RvbWFpbic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHJhY2VFeHBvcnRlciB7XG4gICAgZXhwb3J0KG1ldGFkYXRhOiBUcmFjZU1ldGFkYXRhLCBzcGFuczogU3BhbltdKTogUHJvbWlzZTx2b2lkPjtcbn1cbiJdfQ== |
@@ -37,3 +37,3 @@ "use strict"; | ||
| const exporterOTLPProtocol = process.env.OTEL_EXPORTER_OTLP_PROTOCOL; | ||
| const exporterOTLPTracesEndpoint = process.env.OTEL_EXPORTER_OTLP_TRACES_ENDPOINT; | ||
| const exporterOTLPEndpoint = process.env.OTEL_EXPORTER_OTLP_ENDPOINT; | ||
| const exporterOTLPHeaderValues = process.env | ||
@@ -49,8 +49,8 @@ .OTEL_EXPORTER_OTLP_HEADERS | ||
| } | ||
| if (!exporterOTLPTracesEndpoint) { | ||
| logger.error('OTEL Exporter OTLP traces endpoint was not specified'); | ||
| if (!exporterOTLPEndpoint) { | ||
| logger.error('OTEL Exporter OTLP endpoint was not specified'); | ||
| (0, exit_1.exit)(1); | ||
| return; | ||
| } | ||
| return (0, server_1.createServerController)(exporterOTLPProtocol, exporterOTLPTracesEndpoint, exporterOTLPHeaders); | ||
| return (0, server_1.createServerController)(exporterOTLPProtocol, exporterOTLPEndpoint, exporterOTLPHeaders); | ||
| } | ||
@@ -69,2 +69,2 @@ async function _start() { | ||
| _start(); | ||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vdHN0cmFwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcnZlci9ib290c3RyYXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHFDQUlrQjtBQUNsQixrREFBb0M7QUFDcEMsa0NBQStCO0FBQy9CLG9DQUF5QztBQUN6Qyx1Q0FBK0M7QUFDL0MsNENBQW1EO0FBRW5ELE1BQU0sV0FBVyxHQUFXLFdBQVcsQ0FBQztBQUN4QyxNQUFNLFdBQVcsR0FDYixRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsSUFBSSxFQUFFLENBQUMsSUFBSSwrQkFBbUIsQ0FBQztBQUM1RSxNQUFNLGNBQWMsR0FBVyxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsSUFBSSxFQUFFLENBQUMsQ0FBQztBQUVoRixTQUFTLHVCQUF1QjtJQUM1QixNQUFNLG9CQUFvQixHQUN0QixPQUFPLENBQUMsR0FBRyxDQUFDLDJCQUEyQixDQUFDO0lBQzVDLE1BQU0sMEJBQTBCLEdBQzVCLE9BQU8sQ0FBQyxHQUFHLENBQUMsa0NBQWtDLENBQUM7SUFDbkQsTUFBTSx3QkFBd0IsR0FBYSxPQUFPLENBQUMsR0FBRztTQUNqRCwwQkFBMEI7UUFDM0IsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsMEJBQTBCLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQztRQUNuRCxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ1QsTUFBTSxtQkFBbUIsR0FBd0IsSUFBQSxxQkFBYSxFQUMxRCx3QkFBd0IsQ0FDM0IsQ0FBQztJQUVGLElBQUksQ0FBQyxvQkFBb0IsRUFBRTtRQUN2QixNQUFNLENBQUMsS0FBSyxDQUFDLCtDQUErQyxDQUFDLENBQUM7UUFDOUQsSUFBQSxXQUFJLEVBQUMsQ0FBQyxDQUFDLENBQUM7UUFDUixPQUFPO0tBQ1Y7SUFFRCxJQUFJLENBQUMsMEJBQTBCLEVBQUU7UUFDN0IsTUFBTSxDQUFDLEtBQUssQ0FBQyxzREFBc0QsQ0FBQyxDQUFDO1FBQ3JFLElBQUEsV0FBSSxFQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ1IsT0FBTztLQUNWO0lBRUQsT0FBTyxJQUFBLCtCQUFzQixFQUN6QixvQkFBb0IsRUFDcEIsMEJBQTBCLEVBQzFCLG1CQUFtQixDQUN0QixDQUFDO0FBQ04sQ0FBQztBQUVELEtBQUssVUFBVSxNQUFNO0lBQ2pCLE1BQU0sZ0JBQWdCLEdBQ2xCLHVCQUF1QixFQUFFLENBQUM7SUFDOUIsSUFBSSxDQUFDLGdCQUFnQixFQUFFO1FBQ25CLE1BQU0sQ0FBQyxLQUFLLENBQUMsb0NBQW9DLENBQUMsQ0FBQztRQUNuRCxJQUFBLFdBQUksRUFBQyxDQUFDLENBQUMsQ0FBQztLQUNYO1NBQU07UUFDSCxJQUFBLG9CQUFXLEVBQUMsV0FBVyxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3hELE1BQU0sSUFBQSw0QkFBa0IsRUFBQyxnQkFBZ0IsRUFBRSxjQUFjLENBQUMsQ0FBQztLQUM5RDtBQUNMLENBQUM7QUFFRCxNQUFNLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgc3RhcnRTZXJ2ZXIsXG4gICAgY3JlYXRlU2VydmVyQ29udHJvbGxlcixcbiAgICBTZXJ2ZXJDb250cm9sbGVyLFxufSBmcm9tICcuL3NlcnZlcic7XG5pbXBvcnQgKiBhcyBsb2dnZXIgZnJvbSAnLi4vbG9nZ2VyJztcbmltcG9ydCB7IGV4aXQgfSBmcm9tICcuLi9leGl0JztcbmltcG9ydCB7IHBhcnNlS2V5VmFsdWUgfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgeyBzdGFydFNlcnZlckNsZWFuZXIgfSBmcm9tICcuL2NsZWFuZXInO1xuaW1wb3J0IHsgREVGQVVMVF9TRVJWRVJfUE9SVCB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5cbmNvbnN0IFNFUlZFUl9IT1NUOiBzdHJpbmcgPSAnbG9jYWxob3N0JztcbmNvbnN0IFNFUlZFUl9QT1JUOiBudW1iZXIgPVxuICAgIHBhcnNlSW50KHByb2Nlc3MuZW52Lk9URUxfQ0xJX1NFUlZFUl9QT1JUIHx8ICcnKSB8fCBERUZBVUxUX1NFUlZFUl9QT1JUO1xuY29uc3QgUEFSRU5UX1BST0NfSUQ6IG51bWJlciA9IHBhcnNlSW50KHByb2Nlc3MuZW52Lk9URUxfQ0xJX1NFUlZFUl9QUElEIHx8ICcnKTtcblxuZnVuY3Rpb24gX2NyZWF0ZVNlcnZlckNvbnRyb2xsZXIoKTogU2VydmVyQ29udHJvbGxlciB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgZXhwb3J0ZXJPVExQUHJvdG9jb2w6IHN0cmluZyB8IHVuZGVmaW5lZCA9XG4gICAgICAgIHByb2Nlc3MuZW52Lk9URUxfRVhQT1JURVJfT1RMUF9QUk9UT0NPTDtcbiAgICBjb25zdCBleHBvcnRlck9UTFBUcmFjZXNFbmRwb2ludDogc3RyaW5nIHwgdW5kZWZpbmVkID1cbiAgICAgICAgcHJvY2Vzcy5lbnYuT1RFTF9FWFBPUlRFUl9PVExQX1RSQUNFU19FTkRQT0lOVDtcbiAgICBjb25zdCBleHBvcnRlck9UTFBIZWFkZXJWYWx1ZXM6IHN0cmluZ1tdID0gcHJvY2Vzcy5lbnZcbiAgICAgICAgLk9URUxfRVhQT1JURVJfT1RMUF9IRUFERVJTXG4gICAgICAgID8gcHJvY2Vzcy5lbnYuT1RFTF9FWFBPUlRFUl9PVExQX0hFQURFUlMuc3BsaXQoJywnKVxuICAgICAgICA6IFtdO1xuICAgIGNvbnN0IGV4cG9ydGVyT1RMUEhlYWRlcnM6IE1hcDxzdHJpbmcsIHN0cmluZz4gPSBwYXJzZUtleVZhbHVlKFxuICAgICAgICBleHBvcnRlck9UTFBIZWFkZXJWYWx1ZXNcbiAgICApO1xuXG4gICAgaWYgKCFleHBvcnRlck9UTFBQcm90b2NvbCkge1xuICAgICAgICBsb2dnZXIuZXJyb3IoJ09URUwgRXhwb3J0ZXIgT1RMUCBwcm90b2NvbCB3YXMgbm90IHNwZWNpZmllZCcpO1xuICAgICAgICBleGl0KDEpO1xuICAgICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCFleHBvcnRlck9UTFBUcmFjZXNFbmRwb2ludCkge1xuICAgICAgICBsb2dnZXIuZXJyb3IoJ09URUwgRXhwb3J0ZXIgT1RMUCB0cmFjZXMgZW5kcG9pbnQgd2FzIG5vdCBzcGVjaWZpZWQnKTtcbiAgICAgICAgZXhpdCgxKTtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHJldHVybiBjcmVhdGVTZXJ2ZXJDb250cm9sbGVyKFxuICAgICAgICBleHBvcnRlck9UTFBQcm90b2NvbCxcbiAgICAgICAgZXhwb3J0ZXJPVExQVHJhY2VzRW5kcG9pbnQsXG4gICAgICAgIGV4cG9ydGVyT1RMUEhlYWRlcnNcbiAgICApO1xufVxuXG5hc3luYyBmdW5jdGlvbiBfc3RhcnQoKSB7XG4gICAgY29uc3Qgc2VydmVyQ29udHJvbGxlcjogU2VydmVyQ29udHJvbGxlciB8IHVuZGVmaW5lZCA9XG4gICAgICAgIF9jcmVhdGVTZXJ2ZXJDb250cm9sbGVyKCk7XG4gICAgaWYgKCFzZXJ2ZXJDb250cm9sbGVyKSB7XG4gICAgICAgIGxvZ2dlci5lcnJvcignVW5hYmxlIHRvIGNyZWF0ZSBzZXJ2ZXIgY29udHJvbGxlcicpO1xuICAgICAgICBleGl0KDEpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHN0YXJ0U2VydmVyKFNFUlZFUl9IT1NULCBTRVJWRVJfUE9SVCwgc2VydmVyQ29udHJvbGxlcik7XG4gICAgICAgIGF3YWl0IHN0YXJ0U2VydmVyQ2xlYW5lcihzZXJ2ZXJDb250cm9sbGVyLCBQQVJFTlRfUFJPQ19JRCk7XG4gICAgfVxufVxuXG5fc3RhcnQoKTtcbiJdfQ== | ||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vdHN0cmFwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcnZlci9ib290c3RyYXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHFDQUlrQjtBQUNsQixrREFBb0M7QUFDcEMsa0NBQStCO0FBQy9CLG9DQUF5QztBQUN6Qyx1Q0FBK0M7QUFDL0MsNENBQW1EO0FBRW5ELE1BQU0sV0FBVyxHQUFXLFdBQVcsQ0FBQztBQUN4QyxNQUFNLFdBQVcsR0FDYixRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsSUFBSSxFQUFFLENBQUMsSUFBSSwrQkFBbUIsQ0FBQztBQUM1RSxNQUFNLGNBQWMsR0FBVyxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsSUFBSSxFQUFFLENBQUMsQ0FBQztBQUVoRixTQUFTLHVCQUF1QjtJQUM1QixNQUFNLG9CQUFvQixHQUN0QixPQUFPLENBQUMsR0FBRyxDQUFDLDJCQUEyQixDQUFDO0lBQzVDLE1BQU0sb0JBQW9CLEdBQ3RCLE9BQU8sQ0FBQyxHQUFHLENBQUMsMkJBQTJCLENBQUM7SUFDNUMsTUFBTSx3QkFBd0IsR0FBYSxPQUFPLENBQUMsR0FBRztTQUNqRCwwQkFBMEI7UUFDM0IsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsMEJBQTBCLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQztRQUNuRCxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ1QsTUFBTSxtQkFBbUIsR0FBd0IsSUFBQSxxQkFBYSxFQUMxRCx3QkFBd0IsQ0FDM0IsQ0FBQztJQUVGLElBQUksQ0FBQyxvQkFBb0IsRUFBRTtRQUN2QixNQUFNLENBQUMsS0FBSyxDQUFDLCtDQUErQyxDQUFDLENBQUM7UUFDOUQsSUFBQSxXQUFJLEVBQUMsQ0FBQyxDQUFDLENBQUM7UUFDUixPQUFPO0tBQ1Y7SUFFRCxJQUFJLENBQUMsb0JBQW9CLEVBQUU7UUFDdkIsTUFBTSxDQUFDLEtBQUssQ0FBQywrQ0FBK0MsQ0FBQyxDQUFDO1FBQzlELElBQUEsV0FBSSxFQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ1IsT0FBTztLQUNWO0lBRUQsT0FBTyxJQUFBLCtCQUFzQixFQUN6QixvQkFBb0IsRUFDcEIsb0JBQW9CLEVBQ3BCLG1CQUFtQixDQUN0QixDQUFDO0FBQ04sQ0FBQztBQUVELEtBQUssVUFBVSxNQUFNO0lBQ2pCLE1BQU0sZ0JBQWdCLEdBQ2xCLHVCQUF1QixFQUFFLENBQUM7SUFDOUIsSUFBSSxDQUFDLGdCQUFnQixFQUFFO1FBQ25CLE1BQU0sQ0FBQyxLQUFLLENBQUMsb0NBQW9DLENBQUMsQ0FBQztRQUNuRCxJQUFBLFdBQUksRUFBQyxDQUFDLENBQUMsQ0FBQztLQUNYO1NBQU07UUFDSCxJQUFBLG9CQUFXLEVBQUMsV0FBVyxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3hELE1BQU0sSUFBQSw0QkFBa0IsRUFBQyxnQkFBZ0IsRUFBRSxjQUFjLENBQUMsQ0FBQztLQUM5RDtBQUNMLENBQUM7QUFFRCxNQUFNLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgc3RhcnRTZXJ2ZXIsXG4gICAgY3JlYXRlU2VydmVyQ29udHJvbGxlcixcbiAgICBTZXJ2ZXJDb250cm9sbGVyLFxufSBmcm9tICcuL3NlcnZlcic7XG5pbXBvcnQgKiBhcyBsb2dnZXIgZnJvbSAnLi4vbG9nZ2VyJztcbmltcG9ydCB7IGV4aXQgfSBmcm9tICcuLi9leGl0JztcbmltcG9ydCB7IHBhcnNlS2V5VmFsdWUgfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgeyBzdGFydFNlcnZlckNsZWFuZXIgfSBmcm9tICcuL2NsZWFuZXInO1xuaW1wb3J0IHsgREVGQVVMVF9TRVJWRVJfUE9SVCB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5cbmNvbnN0IFNFUlZFUl9IT1NUOiBzdHJpbmcgPSAnbG9jYWxob3N0JztcbmNvbnN0IFNFUlZFUl9QT1JUOiBudW1iZXIgPVxuICAgIHBhcnNlSW50KHByb2Nlc3MuZW52Lk9URUxfQ0xJX1NFUlZFUl9QT1JUIHx8ICcnKSB8fCBERUZBVUxUX1NFUlZFUl9QT1JUO1xuY29uc3QgUEFSRU5UX1BST0NfSUQ6IG51bWJlciA9IHBhcnNlSW50KHByb2Nlc3MuZW52Lk9URUxfQ0xJX1NFUlZFUl9QUElEIHx8ICcnKTtcblxuZnVuY3Rpb24gX2NyZWF0ZVNlcnZlckNvbnRyb2xsZXIoKTogU2VydmVyQ29udHJvbGxlciB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgZXhwb3J0ZXJPVExQUHJvdG9jb2w6IHN0cmluZyB8IHVuZGVmaW5lZCA9XG4gICAgICAgIHByb2Nlc3MuZW52Lk9URUxfRVhQT1JURVJfT1RMUF9QUk9UT0NPTDtcbiAgICBjb25zdCBleHBvcnRlck9UTFBFbmRwb2ludDogc3RyaW5nIHwgdW5kZWZpbmVkID1cbiAgICAgICAgcHJvY2Vzcy5lbnYuT1RFTF9FWFBPUlRFUl9PVExQX0VORFBPSU5UO1xuICAgIGNvbnN0IGV4cG9ydGVyT1RMUEhlYWRlclZhbHVlczogc3RyaW5nW10gPSBwcm9jZXNzLmVudlxuICAgICAgICAuT1RFTF9FWFBPUlRFUl9PVExQX0hFQURFUlNcbiAgICAgICAgPyBwcm9jZXNzLmVudi5PVEVMX0VYUE9SVEVSX09UTFBfSEVBREVSUy5zcGxpdCgnLCcpXG4gICAgICAgIDogW107XG4gICAgY29uc3QgZXhwb3J0ZXJPVExQSGVhZGVyczogTWFwPHN0cmluZywgc3RyaW5nPiA9IHBhcnNlS2V5VmFsdWUoXG4gICAgICAgIGV4cG9ydGVyT1RMUEhlYWRlclZhbHVlc1xuICAgICk7XG5cbiAgICBpZiAoIWV4cG9ydGVyT1RMUFByb3RvY29sKSB7XG4gICAgICAgIGxvZ2dlci5lcnJvcignT1RFTCBFeHBvcnRlciBPVExQIHByb3RvY29sIHdhcyBub3Qgc3BlY2lmaWVkJyk7XG4gICAgICAgIGV4aXQoMSk7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIWV4cG9ydGVyT1RMUEVuZHBvaW50KSB7XG4gICAgICAgIGxvZ2dlci5lcnJvcignT1RFTCBFeHBvcnRlciBPVExQIGVuZHBvaW50IHdhcyBub3Qgc3BlY2lmaWVkJyk7XG4gICAgICAgIGV4aXQoMSk7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICByZXR1cm4gY3JlYXRlU2VydmVyQ29udHJvbGxlcihcbiAgICAgICAgZXhwb3J0ZXJPVExQUHJvdG9jb2wsXG4gICAgICAgIGV4cG9ydGVyT1RMUEVuZHBvaW50LFxuICAgICAgICBleHBvcnRlck9UTFBIZWFkZXJzXG4gICAgKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gX3N0YXJ0KCkge1xuICAgIGNvbnN0IHNlcnZlckNvbnRyb2xsZXI6IFNlcnZlckNvbnRyb2xsZXIgfCB1bmRlZmluZWQgPVxuICAgICAgICBfY3JlYXRlU2VydmVyQ29udHJvbGxlcigpO1xuICAgIGlmICghc2VydmVyQ29udHJvbGxlcikge1xuICAgICAgICBsb2dnZXIuZXJyb3IoJ1VuYWJsZSB0byBjcmVhdGUgc2VydmVyIGNvbnRyb2xsZXInKTtcbiAgICAgICAgZXhpdCgxKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBzdGFydFNlcnZlcihTRVJWRVJfSE9TVCwgU0VSVkVSX1BPUlQsIHNlcnZlckNvbnRyb2xsZXIpO1xuICAgICAgICBhd2FpdCBzdGFydFNlcnZlckNsZWFuZXIoc2VydmVyQ29udHJvbGxlciwgUEFSRU5UX1BST0NfSUQpO1xuICAgIH1cbn1cblxuX3N0YXJ0KCk7XG4iXX0= |
| /// <reference types="node" /> | ||
| import { Server } from 'http'; | ||
| import { TraceRequest } from '../domain/TraceRequest'; | ||
| import { TaskExecutor } from '../executor'; | ||
| import { TraceExporter } from '../export'; | ||
| import { TraceData } from '../domain'; | ||
| export declare function startServer(host: string, port: number, serverController: ServerController): Server; | ||
@@ -12,5 +12,5 @@ export declare class ServerController { | ||
| constructor(taskExecutor: TaskExecutor, traceExporter: TraceExporter); | ||
| export(traceRequest: TraceRequest): Promise<void>; | ||
| export(traceData: TraceData): Promise<void>; | ||
| shutdown(): Promise<void>; | ||
| } | ||
| export declare function createServerController(exporterOTLPProtocol: string, exporterOTLPTracesEndpoint: string, exporterOTLPHeaders: Map<string, string>): ServerController | undefined; | ||
| export declare function createServerController(exporterOTLPProtocol: string, exporterOTLPEndpoint: string, exporterOTLPHeaders: Map<string, string>): ServerController | undefined; |
@@ -54,6 +54,6 @@ "use strict"; | ||
| const requestBody = await _getRequestBody(request); | ||
| const traceRequest = JSON.parse(requestBody); | ||
| const traceData = JSON.parse(requestBody); | ||
| // Don't wait promise as it blocks the client | ||
| // until the request is actually exported to its final destination (OTLP endpoint) | ||
| serverController.export(traceRequest); | ||
| serverController.export(traceData); | ||
| response.end(); | ||
@@ -105,9 +105,9 @@ } | ||
| } | ||
| export(traceRequest) { | ||
| export(traceData) { | ||
| return this.taskExecutor.execute(async () => { | ||
| try { | ||
| await this.traceExporter.export(traceRequest); | ||
| await this.traceExporter.export(traceData.metadata, traceData.spans); | ||
| } | ||
| catch (err) { | ||
| logger.error(`Unable to export trace request: ${traceRequest}`, err); | ||
| logger.error(`Unable to export spans: ${JSON.stringify(traceData.spans)}`, err); | ||
| } | ||
@@ -135,8 +135,8 @@ }); | ||
| exports.ServerController = ServerController; | ||
| function createServerController(exporterOTLPProtocol, exporterOTLPTracesEndpoint, exporterOTLPHeaders) { | ||
| function createServerController(exporterOTLPProtocol, exporterOTLPEndpoint, exporterOTLPHeaders) { | ||
| const taskExecutor = new executor_1.TaskExecutor(TASK_CONCURRENCY_LEVEL); | ||
| const traceExporter = (0, export_1.createTraceExporter)(exporterOTLPProtocol, exporterOTLPTracesEndpoint, exporterOTLPHeaders); | ||
| const traceExporter = (0, export_1.createTraceExporter)(exporterOTLPProtocol, exporterOTLPEndpoint, exporterOTLPHeaders); | ||
| return new ServerController(taskExecutor, traceExporter); | ||
| } | ||
| exports.createServerController = createServerController; | ||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcnZlci9zZXJ2ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwrQkFBNkU7QUFDN0Usa0RBQW9DO0FBRXBDLDBDQUEyQztBQUMzQyxzQ0FBK0Q7QUFDL0Qsa0NBQStCO0FBRS9CLE1BQU0sc0JBQXNCLEdBQVcsRUFBRSxDQUFDO0FBQzFDLE1BQU0sNEJBQTRCLEdBQUcsSUFBSSxDQUFDO0FBRTFDLFNBQVMsZUFBZSxDQUFDLE9BQXdCO0lBQzdDLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtRQUMzQixNQUFNLFNBQVMsR0FBaUIsRUFBRSxDQUFDO1FBQ25DLE9BQU87YUFDRixFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsS0FBaUIsRUFBRSxFQUFFO1lBQzlCLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUIsQ0FBQyxDQUFDO2FBQ0QsRUFBRSxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUU7WUFDWixNQUFNLE9BQU8sR0FBVyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzVELE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNyQixDQUFDLENBQUMsQ0FBQztJQUNYLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQztBQUVELFNBQWdCLFdBQVcsQ0FDdkIsSUFBWSxFQUNaLElBQVksRUFDWixnQkFBa0M7SUFFbEMsTUFBTSxNQUFNLEdBQVcsSUFBQSxtQkFBWSxFQUMvQixLQUFLLEVBQUUsT0FBd0IsRUFBRSxRQUF3QixFQUFFLEVBQUU7UUFDekQsSUFBSTtZQUNBLFFBQVEsT0FBTyxDQUFDLEdBQUcsRUFBRTtnQkFDakIsS0FBSyxTQUFTLENBQUMsQ0FBQztvQkFDWixJQUFJLE9BQU8sQ0FBQyxNQUFNLEtBQUssTUFB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LENBQUMsQ0FBQztZQUNaLENBQUMsRUFBRSw0QkFBNEIsQ0FBQyxDQUFDO1NBQ3BDO1FBQUMsT0FBTyxHQUFRLEVBQUU7WUFDZixNQUFNLENBQUMsS0FBSyxDQUFDLDRDQUE0QyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQ2hFLElBQUEsV0FBSSxFQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ1g7SUFDTCxDQUFDO0NBQ0o7QUF4Q0QsNENBd0NDO0FBRUQsU0FBZ0Isc0JBQXNCLENBQ2xDLG9CQUE0QixFQUM1QiwwQkFBa0MsRUFDbEMsbUJBQXdDO0lBRXhDLE1BQU0sWUFBWSxHQUFpQixJQUFJLHVCQUFZLENBQUMsc0JBQXNCLENBQUMsQ0FBQztJQUM1RSxNQUFNLGFBQWEsR0FBa0IsSUFBQSw0QkFBbUIsRUFDcEQsb0JBQW9CLEVBQ3BCLDBCQUEwQixFQUMxQixtQkFBbUIsQ0FDdEIsQ0FBQztJQUNGLE9BQU8sSUFBSSxnQkFBZ0IsQ0FBQyxZQUFZLEVBQUUsYUFBYSxDQUFDLENBQUM7QUFDN0QsQ0FBQztBQVpELHdEQVlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlU2VydmVyLCBJbmNvbWluZ01lc3NhZ2UsIFNlcnZlciwgU2VydmVyUmVzcG9uc2UgfSBmcm9tICdodHRwJztcbmltcG9ydCAqIGFzIGxvZ2dlciBmcm9tICcuLi9sb2dnZXInO1xuaW1wb3J0IHsgVHJhY2VSZXF1ZXN0IH0gZnJvbSAnLi4vZG9tYWluL1RyYWNlUmVxdWVzdCc7XG5pbXBvcnQgeyBUYXNrRXhlY3V0b3IgfSBmcm9tICcuLi9leGVjdXRvcic7XG5pbXBvcnQgeyBjcmVhdGVUcmFjZUV4cG9ydGVyLCBUcmFjZUV4cG9ydGVyIH0gZnJvbSAnLi4vZXhwb3J0JztcbmltcG9ydCB7IGV4aXQgfSBmcm9tICcuLi9leGl0JztcblxuY29uc3QgVEFTS19DT05DVVJSRU5DWV9MRVZFTDogbnVtYmVyID0gMTA7XG5jb25zdCBTRVJWRVJfU0hVVERPV05fR1JBQ0VfUEVSSU9EID0gMTAwMDtcblxuZnVuY3Rpb24gX2dldFJlcXVlc3RCb2R5KHJlcXVlc3Q6IEluY29taW5nTWVzc2FnZSk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgICAgIGNvbnN0IGJvZHlQYXJ0czogVWludDhBcnJheVtdID0gW107XG4gICAgICAgIHJlcXVlc3RcbiAgICAgICAgICAgIC5vbignZGF0YScsIChjaHVuazogVWludDhBcnJheSkgPT4ge1xuICAgICAgICAgICAgICAgIGJvZHlQYXJ0cy5wdXNoKGNodW5rKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAub24oJ2VuZCcsICgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBib2R5U3RyOiBzdHJpbmcgPSBCdWZmZXIuY29uY2F0KGJvZHlQYXJ0cykudG9TdHJpbmcoKTtcbiAgICAgICAgICAgICAgICByZXNvbHZlKGJvZHlTdHIpO1xuICAgICAgICAgICAgfSk7XG4gICAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzdGFydFNlcnZlcihcbiAgICBob3N0OiBzdHJpbmcsXG4gICAgcG9ydDogbnVtYmVyLFxuICAgIHNlcnZlckNvbnRyb2xsZXI6IFNlcnZlckNvbnRyb2xsZXJcbik6IFNlcnZlciB7XG4gICAgY29uc3Qgc2VydmVyOiBTZXJ2ZXIgPSBjcmVhdGVTZXJ2ZXIoXG4gICAgICAgIGFzeW5jIChyZXF1ZXN0OiBJbmNvbWluZ01lc3NhZ2UsIHJlc3BvbnNlOiBTZXJ2ZXJSZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHJlcXVlc3QudXJsKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJy9leHBvcnQnOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVxdWVzdC5tZXRob2QgPT09ICdQT1NUJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3RCb2R5OiBzdHJpbmcgPSBhd2FpdCBfZ2V0UmVxdWVzdEJvZHkoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHRyYWNlUmVxdWVzdDogVHJhY2VSZXF1ZXN0ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSlNPTi5wYXJzZShyZXF1ZXN0Qm9keSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRG9uJ3Qgd2FpdCBwcm9taXNlIGFzIGl0IGJsb2NrcyB0aGUgY2xpZW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdW50aWwgdGhlIHJlcXVlc3QgaXMgYWN0dWFsbHkgZXhwb3J0ZWQgdG8gaXRzIGZpbmFsIGRlc3RpbmF0aW9uIChPVExQIGVuZHBvaW50KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlckNvbnRyb2xsZXIuZXhwb3J0KHRyYWNlUmVxdWVzdCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UuZW5kKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLnN0YXR1c0NvZGUgPSA0MDU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UuZW5kKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjYXNlICcvc2h1dGRvd24nOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVxdWVzdC5tZXRob2QgPT09ICdERUxFVEUnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgc2VydmVyQ29udHJvbGxlci5zaHV0ZG93bigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLmVuZCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zZS5zdGF0dXNDb2RlID0gNDA1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLmVuZCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2Uuc3RhdHVzQ29kZSA9IDQwNDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLmVuZCgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgICAgICAgICAgICAgIGxvZ2dlci5lcnJvcihlcnJvcik7XG4gICAgICAgICAgICAgICAgcmVzcG9uc2Uuc3RhdHVzQ29kZSA9IDUwMDtcbiAgICAgICAgICAgICAgICByZXNwb25zZS5lbmQoXG4gICAgICAgICAgICAgICAgICAgIEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IGVycm9yLnR5cGUsXG4gICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiBlcnJvci5tZXNzYWdlLFxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICApO1xuXG4gICAgc2VydmVyLmxpc3Rlbihwb3J0LCBob3N0LCAoKSA9PiB7XG4gICAgICAgIGxvZ2dlci5pbmZvKGBPVEVMIENMSSBzZXJ2ZXIgbGlzdGVuaW5nIG9uIHBvcnQgJHtwb3J0fWApO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHNlcnZlcjtcbn1cblxuZXhwb3J0IGNsYXNzIFNlcnZlckNvbnRyb2xsZXIge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdGFza0V4ZWN1dG9yOiBUYXNrRXhlY3V0b3I7XG4gICAgcHJpdmF0ZSByZWFkb25seSB0cmFjZUV4cG9ydGVyOiBUcmFjZUV4cG9ydGVyO1xuICAgIHByaXZhdGUgc2VydmVyU2h1dGRvd246IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKHRhc2tFeGVjdXRvcjogVGFza0V4ZWN1dG9yLCB0cmFjZUV4cG9ydGVyOiBUcmFjZUV4cG9ydGVyKSB7XG4gICAgICAgIHRoaXMudGFza0V4ZWN1dG9yID0gdGFza0V4ZWN1dG9yO1xuICAgICAgICB0aGlzLnRyYWNlRXhwb3J0ZXIgPSB0cmFjZUV4cG9ydGVyO1xuICAgIH1cblxuICAgIGV4cG9ydCh0cmFjZVJlcXVlc3Q6IFRyYWNlUmVxdWVzdCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy50YXNrRXhlY3V0b3IuZXhlY3V0ZShhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMudHJhY2VFeHBvcnRlci5leHBvcnQodHJhY2VSZXF1ZXN0KTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycjogYW55KSB7XG4gICAgICAgICAgICAgICAgbG9nZ2VyLmVycm9yKFxuICAgICAgICAgICAgICAgICAgICBgVW5hYmxlIHRvIGV4cG9ydCB0cmFjZSByZXF1ZXN0OiAke3RyYWNlUmVxdWVzdH1gLFxuICAgICAgICAgICAgICAgICAgICBlcnJcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBhc3luYyBzaHV0ZG93bigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgaWYgKHRoaXMuc2VydmVyU2h1dGRvd24pIHtcbiAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxvZ2dlci5pbmZvKCdTaHV0dGluZyBkb3duIE9URUwgQ0xJIHNlcnZlciAuLi4nKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMudGFza0V4ZWN1dG9yLmNsb3NlKCk7XG4gICAgICAgICAgICB0aGlzLnNlcnZlclNodXRkb3duID0gdHJ1ZTtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGV4aXQoMCk7XG4gICAgICAgICAgICB9LCBTRVJWRVJfU0hVVERPV05fR1JBQ0VfUEVSSU9EKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyOiBhbnkpIHtcbiAgICAgICAgICAgIGxvZ2dlci5lcnJvcihgRXJyb3Igb2NjdXJyZWQgd2hpbGUgY2xvc2luZyB0YXNrIGV4ZWN1dG9yYCwgZXJyKTtcbiAgICAgICAgICAgIGV4aXQoMSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVTZXJ2ZXJDb250cm9sbGVyKFxuICAgIGV4cG9ydGVyT1RMUFByb3RvY29sOiBzdHJpbmcsXG4gICAgZXhwb3J0ZXJPVExQVHJhY2VzRW5kcG9pbnQ6IHN0cmluZyxcbiAgICBleHBvcnRlck9UTFBIZWFkZXJzOiBNYXA8c3RyaW5nLCBzdHJpbmc+XG4pOiBTZXJ2ZXJDb250cm9sbGVyIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCB0YXNrRXhlY3V0b3I6IFRhc2tFeGVjdXRvciA9IG5ldyBUYXNrRXhlY3V0b3IoVEFTS19DT05DVVJSRU5DWV9MRVZFTCk7XG4gICAgY29uc3QgdHJhY2VFeHBvcnRlcjogVHJhY2VFeHBvcnRlciA9IGNyZWF0ZVRyYWNlRXhwb3J0ZXIoXG4gICAgICAgIGV4cG9ydGVyT1RMUFByb3RvY29sLFxuICAgICAgICBleHBvcnRlck9UTFBUcmFjZXNFbmRwb2ludCxcbiAgICAgICAgZXhwb3J0ZXJPVExQSGVhZGVyc1xuICAgICk7XG4gICAgcmV0dXJuIG5ldyBTZXJ2ZXJDb250cm9sbGVyKHRhc2tFeGVjdXRvciwgdHJhY2VFeHBvcnRlcik7XG59XG4iXX0= | ||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcnZlci9zZXJ2ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwrQkFBNkU7QUFFN0Usa0RBQW9DO0FBQ3BDLDBDQUEyQztBQUMzQyxzQ0FBK0Q7QUFDL0Qsa0NBQStCO0FBRy9CLE1BQU0sc0JBQXNCLEdBQVcsRUFBRSxDQUFDO0FBQzFDLE1BQU0sNEJBQTRCLEdBQUcsSUFBSSxDQUFDO0FBRTFDLFNBQVMsZUFBZSxDQUFDLE9BQXdCO0lBQzdDLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtRQUMzQixNQUFNLFNBQVMsR0FBaUIsRUFBRSxDQUFDO1FBQ25DLE9BQU87YUFDRixFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsS0FBaUIsRUFBRSxFQUFFO1lBQzlCLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUIsQ0FBQyxDQUFDO2FBQ0QsRUFBRSxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUU7WUFDWixNQUFNLE9BQU8sR0FBVyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzVELE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNyQixDQUFDLENBQUMsQ0FBQztJQUNYLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQztBQUVELFNBQWdCLFdBQVcsQ0FDdkIsSUFBWSxFQUNaLElBQVksRUFDWixnQkFBa0M7SUFFbEMsTUFBTSxNQUFNLEdBQVcsSUFBQSxtQkFBWSxFQUMvQixLQUFLLEVBQUUsT0FBd0IsRUFBRSxRQUF3QixFQUFFLEVBQUU7UUFDekQsSUFBSTtZQUNBLFFBQVEsT0FBTyxDQUFDLEdBQUcsRUFBRTtnQkFDakIsS0FBSyxTQUFTLENBQUMsQ0FBQztvQkFDWixJQUFJLE9BQU8sQ0FBQyxNQUFNLEtBQUssTUFB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YyxHQUFHLElBQUksQ0FBQztZQUMzQixVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNaLElBQUEsV0FBSSxFQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ1osQ0FBQyxFQUFFLDRCQUE0QixDQUFDLENBQUM7U0FDcEM7UUFBQyxPQUFPLEdBQVEsRUFBRTtZQUNmLE1BQU0sQ0FBQyxLQUFLLENBQUMsNENBQTRDLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDaEUsSUFBQSxXQUFJLEVBQUMsQ0FBQyxDQUFDLENBQUM7U0FDWDtJQUNMLENBQUM7Q0FDSjtBQTdDRCw0Q0E2Q0M7QUFFRCxTQUFnQixzQkFBc0IsQ0FDbEMsb0JBQTRCLEVBQzVCLG9CQUE0QixFQUM1QixtQkFBd0M7SUFFeEMsTUFBTSxZQUFZLEdBQWlCLElBQUksdUJBQVksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0lBQzVFLE1BQU0sYUFBYSxHQUFrQixJQUFBLDRCQUFtQixFQUNwRCxvQkFBb0IsRUFDcEIsb0JBQW9CLEVBQ3BCLG1CQUFtQixDQUN0QixDQUFDO0lBQ0YsT0FBTyxJQUFJLGdCQUFnQixDQUFDLFlBQVksRUFBRSxhQUFhLENBQUMsQ0FBQztBQUM3RCxDQUFDO0FBWkQsd0RBWUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVTZXJ2ZXIsIEluY29taW5nTWVzc2FnZSwgU2VydmVyLCBTZXJ2ZXJSZXNwb25zZSB9IGZyb20gJ2h0dHAnO1xuXG5pbXBvcnQgKiBhcyBsb2dnZXIgZnJvbSAnLi4vbG9nZ2VyJztcbmltcG9ydCB7IFRhc2tFeGVjdXRvciB9IGZyb20gJy4uL2V4ZWN1dG9yJztcbmltcG9ydCB7IGNyZWF0ZVRyYWNlRXhwb3J0ZXIsIFRyYWNlRXhwb3J0ZXIgfSBmcm9tICcuLi9leHBvcnQnO1xuaW1wb3J0IHsgZXhpdCB9IGZyb20gJy4uL2V4aXQnO1xuaW1wb3J0IHsgVHJhY2VEYXRhIH0gZnJvbSAnLi4vZG9tYWluJztcblxuY29uc3QgVEFTS19DT05DVVJSRU5DWV9MRVZFTDogbnVtYmVyID0gMTA7XG5jb25zdCBTRVJWRVJfU0hVVERPV05fR1JBQ0VfUEVSSU9EID0gMTAwMDtcblxuZnVuY3Rpb24gX2dldFJlcXVlc3RCb2R5KHJlcXVlc3Q6IEluY29taW5nTWVzc2FnZSk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgICAgIGNvbnN0IGJvZHlQYXJ0czogVWludDhBcnJheVtdID0gW107XG4gICAgICAgIHJlcXVlc3RcbiAgICAgICAgICAgIC5vbignZGF0YScsIChjaHVuazogVWludDhBcnJheSkgPT4ge1xuICAgICAgICAgICAgICAgIGJvZHlQYXJ0cy5wdXNoKGNodW5rKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAub24oJ2VuZCcsICgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBib2R5U3RyOiBzdHJpbmcgPSBCdWZmZXIuY29uY2F0KGJvZHlQYXJ0cykudG9TdHJpbmcoKTtcbiAgICAgICAgICAgICAgICByZXNvbHZlKGJvZHlTdHIpO1xuICAgICAgICAgICAgfSk7XG4gICAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzdGFydFNlcnZlcihcbiAgICBob3N0OiBzdHJpbmcsXG4gICAgcG9ydDogbnVtYmVyLFxuICAgIHNlcnZlckNvbnRyb2xsZXI6IFNlcnZlckNvbnRyb2xsZXJcbik6IFNlcnZlciB7XG4gICAgY29uc3Qgc2VydmVyOiBTZXJ2ZXIgPSBjcmVhdGVTZXJ2ZXIoXG4gICAgICAgIGFzeW5jIChyZXF1ZXN0OiBJbmNvbWluZ01lc3NhZ2UsIHJlc3BvbnNlOiBTZXJ2ZXJSZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHJlcXVlc3QudXJsKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJy9leHBvcnQnOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVxdWVzdC5tZXRob2QgPT09ICdQT1NUJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3RCb2R5OiBzdHJpbmcgPSBhd2FpdCBfZ2V0UmVxdWVzdEJvZHkoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHRyYWNlRGF0YTogVHJhY2VEYXRhID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSlNPTi5wYXJzZShyZXF1ZXN0Qm9keSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRG9uJ3Qgd2FpdCBwcm9taXNlIGFzIGl0IGJsb2NrcyB0aGUgY2xpZW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdW50aWwgdGhlIHJlcXVlc3QgaXMgYWN0dWFsbHkgZXhwb3J0ZWQgdG8gaXRzIGZpbmFsIGRlc3RpbmF0aW9uIChPVExQIGVuZHBvaW50KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlckNvbnRyb2xsZXIuZXhwb3J0KHRyYWNlRGF0YSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UuZW5kKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLnN0YXR1c0NvZGUgPSA0MDU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UuZW5kKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjYXNlICcvc2h1dGRvd24nOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVxdWVzdC5tZXRob2QgPT09ICdERUxFVEUnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgc2VydmVyQ29udHJvbGxlci5zaHV0ZG93bigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLmVuZCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zZS5zdGF0dXNDb2RlID0gNDA1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLmVuZCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2Uuc3RhdHVzQ29kZSA9IDQwNDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLmVuZCgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgICAgICAgICAgICAgIGxvZ2dlci5lcnJvcihlcnJvcik7XG4gICAgICAgICAgICAgICAgcmVzcG9uc2Uuc3RhdHVzQ29kZSA9IDUwMDtcbiAgICAgICAgICAgICAgICByZXNwb25zZS5lbmQoXG4gICAgICAgICAgICAgICAgICAgIEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IGVycm9yLnR5cGUsXG4gICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiBlcnJvci5tZXNzYWdlLFxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICApO1xuXG4gICAgc2VydmVyLmxpc3Rlbihwb3J0LCBob3N0LCAoKSA9PiB7XG4gICAgICAgIGxvZ2dlci5pbmZvKGBPVEVMIENMSSBzZXJ2ZXIgbGlzdGVuaW5nIG9uIHBvcnQgJHtwb3J0fWApO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHNlcnZlcjtcbn1cblxuZXhwb3J0IGNsYXNzIFNlcnZlckNvbnRyb2xsZXIge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdGFza0V4ZWN1dG9yOiBUYXNrRXhlY3V0b3I7XG4gICAgcHJpdmF0ZSByZWFkb25seSB0cmFjZUV4cG9ydGVyOiBUcmFjZUV4cG9ydGVyO1xuICAgIHByaXZhdGUgc2VydmVyU2h1dGRvd246IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKHRhc2tFeGVjdXRvcjogVGFza0V4ZWN1dG9yLCB0cmFjZUV4cG9ydGVyOiBUcmFjZUV4cG9ydGVyKSB7XG4gICAgICAgIHRoaXMudGFza0V4ZWN1dG9yID0gdGFza0V4ZWN1dG9yO1xuICAgICAgICB0aGlzLnRyYWNlRXhwb3J0ZXIgPSB0cmFjZUV4cG9ydGVyO1xuICAgIH1cblxuICAgIGV4cG9ydCh0cmFjZURhdGE6IFRyYWNlRGF0YSk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy50YXNrRXhlY3V0b3IuZXhlY3V0ZShhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMudHJhY2VFeHBvcnRlci5leHBvcnQoXG4gICAgICAgICAgICAgICAgICAgIHRyYWNlRGF0YS5tZXRhZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgdHJhY2VEYXRhLnNwYW5zXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycjogYW55KSB7XG4gICAgICAgICAgICAgICAgbG9nZ2VyLmVycm9yKFxuICAgICAgICAgICAgICAgICAgICBgVW5hYmxlIHRvIGV4cG9ydCBzcGFuczogJHtKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYWNlRGF0YS5zcGFuc1xuICAgICAgICAgICAgICAgICAgICApfWAsXG4gICAgICAgICAgICAgICAgICAgIGVyclxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGFzeW5jIHNodXRkb3duKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBpZiAodGhpcy5zZXJ2ZXJTaHV0ZG93bikge1xuICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgbG9nZ2VyLmluZm8oJ1NodXR0aW5nIGRvd24gT1RFTCBDTEkgc2VydmVyIC4uLicpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy50YXNrRXhlY3V0b3IuY2xvc2UoKTtcbiAgICAgICAgICAgIHRoaXMuc2VydmVyU2h1dGRvd24gPSB0cnVlO1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgZXhpdCgwKTtcbiAgICAgICAgICAgIH0sIFNFUlZFUl9TSFVURE9XTl9HUkFDRV9QRVJJT0QpO1xuICAgICAgICB9IGNhdGNoIChlcnI6IGFueSkge1xuICAgICAgICAgICAgbG9nZ2VyLmVycm9yKGBFcnJvciBvY2N1cnJlZCB3aGlsZSBjbG9zaW5nIHRhc2sgZXhlY3V0b3JgLCBlcnIpO1xuICAgICAgICAgICAgZXhpdCgxKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVNlcnZlckNvbnRyb2xsZXIoXG4gICAgZXhwb3J0ZXJPVExQUHJvdG9jb2w6IHN0cmluZyxcbiAgICBleHBvcnRlck9UTFBFbmRwb2ludDogc3RyaW5nLFxuICAgIGV4cG9ydGVyT1RMUEhlYWRlcnM6IE1hcDxzdHJpbmcsIHN0cmluZz5cbik6IFNlcnZlckNvbnRyb2xsZXIgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IHRhc2tFeGVjdXRvcjogVGFza0V4ZWN1dG9yID0gbmV3IFRhc2tFeGVjdXRvcihUQVNLX0NPTkNVUlJFTkNZX0xFVkVMKTtcbiAgICBjb25zdCB0cmFjZUV4cG9ydGVyOiBUcmFjZUV4cG9ydGVyID0gY3JlYXRlVHJhY2VFeHBvcnRlcihcbiAgICAgICAgZXhwb3J0ZXJPVExQUHJvdG9jb2wsXG4gICAgICAgIGV4cG9ydGVyT1RMUEVuZHBvaW50LFxuICAgICAgICBleHBvcnRlck9UTFBIZWFkZXJzXG4gICAgKTtcbiAgICByZXR1cm4gbmV3IFNlcnZlckNvbnRyb2xsZXIodGFza0V4ZWN1dG9yLCB0cmFjZUV4cG9ydGVyKTtcbn1cbiJdfQ== |
+1
-1
@@ -1,2 +0,2 @@ | ||
| import { Attribute } from './domain/Attribute'; | ||
| import { Attribute } from './domain'; | ||
| export declare function isInteger(value: string): boolean; | ||
@@ -3,0 +3,0 @@ export declare function isDouble(value: string): boolean; |
+1
-1
@@ -144,2 +144,2 @@ "use strict"; | ||
| exports.parseKeyValue = parseKeyValue; | ||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSxpREFBbUM7QUFDbkMsaUNBQThCO0FBRTlCLE1BQU0sYUFBYSxHQUFHLENBQUMsQ0FBQztBQUN4QixNQUFNLGNBQWMsR0FBRyxFQUFFLENBQUM7QUFDMUIsTUFBTSxhQUFhLEdBQVcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsQ0FBQztBQUVqRSxTQUFnQixTQUFTLENBQUMsS0FBYTtJQUNuQyxPQUFPLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDakMsQ0FBQztBQUZELDhCQUVDO0FBRUQsU0FBZ0IsUUFBUSxDQUFDLEtBQWE7SUFDbEMsT0FBTyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3BDLENBQUM7QUFGRCw0QkFFQztBQUVELFNBQWdCLFVBQVUsQ0FBQyxLQUFhO0lBQ3BDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQ2hDLHdEQUF3RDtRQUN4RCwrRUFBK0U7UUFDL0UsbURBQW1EO1FBQ25ELGFBQWEsQ0FBQyxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7S0FDdkU7SUFFRCxzRkFBc0Y7SUFDdEYsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUM1QixJQUFJLGFBQWEsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDdEIsTUFBTTtTQUNUO2FBQU0sSUFBSSxDQUFDLEtBQUssS0FBSyxHQUFH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S0FBSyxFQUFFLEdBQUcsRUFBZSxDQUFDO0lBQzVDLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQztBQS9CRCw4Q0ErQkM7QUFFRCxTQUFnQixhQUFhLENBQUMsYUFBdUI7SUFDakQsT0FBTyxJQUFJLEdBQUcsQ0FDVixDQUFDLGFBQWEsSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFZLEVBQUUsRUFBRTtRQUN2QyxNQUFNLFlBQVksR0FBVyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQy9DLElBQUksWUFBWSxHQUFHLENBQUMsRUFBRTtZQUNsQixNQUFNLENBQUMsS0FBSyxDQUNSLGlEQUFpRCxJQUFJLEVBQUUsQ0FDMUQsQ0FBQztZQUNGLElBQUEsV0FBSSxFQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ1g7UUFDRCxPQUFPO1lBQ0gsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsWUFBWSxDQUFDO1lBQy9CLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQztTQUNuQyxDQUFDO0lBQ04sQ0FBQyxDQUFDLENBQ0wsQ0FBQztBQUNOLENBQUM7QUFoQkQsc0NBZ0JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXR0cmlidXRlLCBWYWx1ZSB9IGZyb20gJy4vZG9tYWluL0F0dHJpYnV0ZSc7XG5pbXBvcnQgKiBhcyBsb2dnZXIgZnJvbSAnLi9sb2dnZXInO1xuaW1wb3J0IHsgZXhpdCB9IGZyb20gJy4vZXhpdCc7XG5cbmNvbnN0IFNQQU5fSURfQllURVMgPSA4O1xuY29uc3QgVFJBQ0VfSURfQllURVMgPSAxNjtcbmNvbnN0IFNIQVJFRF9CVUZGRVI6IEJ1ZmZlciA9IEJ1ZmZlci5hbGxvY1Vuc2FmZShUUkFDRV9JRF9CWVRFUyk7XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0ludGVnZXIodmFsdWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAvXi0/XFxkKyQvLnRlc3QodmFsdWUpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNEb3VibGUodmFsdWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAvXlxcZCtcXC5cXGQrJC8udGVzdCh2YWx1ZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZUlkKGJ5dGVzOiBudW1iZXIpOiBzdHJpbmcge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYnl0ZXMgLyA0OyBpKyspIHtcbiAgICAgICAgLy8gdW5zaWduZWQgcmlnaHQgc2hpZnQgZHJvcHMgZGVjaW1hbCBwYXJ0IG9mIHRoZSBudW1iZXJcbiAgICAgICAgLy8gaXQgaXMgcmVxdWlyZWQgYmVjYXVzZSBpZiBhIG51bWJlciBiZXR3ZWVuIDIqKjMyIGFuZCAyKiozMiAtIDEgaXMgZ2VuZXJhdGVkLFxuICAgICAgICAvLyBhbiBvdXQgb2YgcmFuZ2UgZXJyb3IgaXMgdGhyb3duIGJ5IHdyaXRlVUludDMyQkVcbiAgICAgICAgU0hBUkVEX0JVRkZFUi53cml0ZVVJbnQzMkJFKChNYXRoLnJhbmRvbSgpICogMiAqKiAzMikgPj4+IDAsIGkgKiA0KTtcbiAgICB9XG5cbiAgICAvLyBJZiBidWZmZXIgaXMgYWxsIDAsIHNldCB0aGUgbGFzdCBieXRlIHRvIDEgdG8gZ3VhcmFudGVlIGEgdmFsaWQgdzNjIGlkIGlzIGdlbmVyYXRlZFxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYnl0ZXM7IGkrKykge1xuICAgICAgICBpZiAoU0hBUkVEX0JVRkZFUltpXSA+IDApIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9IGVsc2UgaWYgKGkgPT09IGJ5dGVzIC0gMSkge1xuICAgICAgICAgICAgU0hBUkVEX0JVRkZFUltieXRlcyAtIDFdID0gMTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBTSEFSRURfQlVGRkVSLnRvU3RyaW5nKCdoZXgnLCAwLCBieXRlcyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZVNwYW5JZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBnZW5lcmF0ZUlkKFNQQU5fSURfQllURVMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVUcmFjZUlkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGdlbmVyYXRlSWQoVFJBQ0VfSURfQllURVMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVTcGFuSWQoc3BhbklkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gL15bYS1mXFxkXXsxNn0kLy50ZXN0KHNwYW5JZCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZVRyYWNlSWQoc3BhbklkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gL15bYS1mXFxkXXszMn0kLy50ZXN0KHNwYW5JZCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZVRyYWNlUGFyZW50KHRyYWNlUGFyZW50OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gL14wMC1bYS1mXFxkXXszMn0tW2EtZlxcZF17MTZ9LVthLWZcXGRdezJ9JC8udGVzdCh0cmFjZVBhcmVudCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0VHJhY2VJZEZyb21UcmFjZVBhcmVudCh0cmFjZVBhcmVudDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAodmFsaWRhdGVUcmFjZVBhcmVudCh0cmFjZVBhcmVudCkpIHtcbiAgICAgICAgcmV0dXJuIHRyYWNlUGFyZW50LnNwbGl0KCctJylbMV07XG4gICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHRyYWNlIHBhcmVudDogJHt0cmFjZVBhcmVudH1gKTtcbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0U3BhbklkRnJvbVRyYWNlUGFyZW50KHRyYWNlUGFyZW50OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICh2YWxpZGF0ZVRyYWNlUGFyZW50KHRyYWNlUGFyZW50KSkge1xuICAgICAgICByZXR1cm4gdHJhY2VQYXJlbnQuc3BsaXQoJy0nKVsyXTtcbiAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgdHJhY2UgcGFyZW50OiAke3RyYWNlUGFyZW50fWApO1xuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZsYXR0ZW5BdHRyaWJ1dGVzKFxuICAgIGF0dHJpYnV0ZU1hcDogTWFwPHN0cmluZywgc3RyaW5nPlxuKTogQXR0cmlidXRlW10ge1xuICAgIHJldHVybiBBcnJheS5mcm9tKGF0dHJpYnV0ZU1hcCwgKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgICBsZXQgdmFsOiBWYWx1ZTtcbiAgICAgICAgaWYgKHZhbHVlLnN0YXJ0c1dpdGgoJ1wiJykgJiYgdmFsdWUuZW5kc1dpdGgoJ1wiJykpIHtcbiAgICAgICAgICAgIHZhbCA9IHtcbiAgICAgICAgICAgICAgICBzdHJpbmdWYWx1ZTogdmFsdWUuc3Vic3RyaW5nKDEsIHZhbHVlLmxlbmd0aCAtIDEpLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgIHZhbHVlLnRvTG93ZXJDYXNlKCkgPT09ICd0cnVlJyB8fFxuICAgICAgICAgICAgdmFsdWUudG9Mb3dlckNhc2UoKSA9PT0gJ2ZhbHNlJ1xuICAgICAgICApIHtcbiAgICAgICAgICAgIHZhbCA9IHtcbiAgICAgICAgICAgICAgICBib29sVmFsdWU6IHZhbHVlLnRvTG93ZXJDYXNlKCkgPT09ICd0cnVlJyxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0gZWxzZSBpZiAoaXNJbnRlZ2VyKHZhbHVlKSkge1xuICAgICAgICAgICAgdmFsID0ge1xuICAgICAgICAgICAgICAgIGludFZhbHVlOiBwYXJzZUludCh2YWx1ZSksXG4gICAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2UgaWYgKGlzRG91YmxlKHZhbHVlKSkge1xuICAgICAgICAgICAgdmFsID0ge1xuICAgICAgICAgICAgICAgIGRvdWJsZVZhbHVlOiBwYXJzZUZsb2F0KHZhbHVlKSxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB2YWwgPSB7XG4gICAgICAgICAgICAgICAgc3RyaW5nVmFsdWU6IHZhbHVlLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBrZXksIHZhbHVlOiB2YWwgfSBhcyBBdHRyaWJ1dGU7XG4gICAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUtleVZhbHVlKGtleVZhbHVlUGFpcnM6IHN0cmluZ1tdKTogTWFwPHN0cmluZywgc3RyaW5nPiB7XG4gICAgcmV0dXJuIG5ldyBNYXAoXG4gICAgICAgIChrZXlWYWx1ZVBhaXJzIHx8IFtdKS5tYXAoKHBhaXI6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc2VwYXJhdG9ySWR4OiBudW1iZXIgPSBwYWlyLmluZGV4T2YoJz0nKTtcbiAgICAgICAgICAgIGlmIChzZXBhcmF0b3JJZHggPCAwKSB7XG4gICAgICAgICAgICAgICAgbG9nZ2VyLmVycm9yKFxuICAgICAgICAgICAgICAgICAgICBgS2V5LXZhbHVlIHBhaXIgbXVzdCBiZSBpbiBcImtleT12YWx1ZVwiIGZvcm1hdDogJHtwYWlyfWBcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGV4aXQoMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgICAgIHBhaXIuc3Vic3RyaW5nKDAsIHNlcGFyYXRvcklkeCksXG4gICAgICAgICAgICAgICAgcGFpci5zdWJzdHJpbmcoc2VwYXJhdG9ySWR4ICsgMSksXG4gICAgICAgICAgICBdO1xuICAgICAgICB9KVxuICAgICk7XG59XG4iXX0= | ||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSxpREFBbUM7QUFDbkMsaUNBQThCO0FBRTlCLE1BQU0sYUFBYSxHQUFHLENBQUMsQ0FBQztBQUN4QixNQUFNLGNBQWMsR0FBRyxFQUFFLENBQUM7QUFDMUIsTUFBTSxhQUFhLEdBQVcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsQ0FBQztBQUVqRSxTQUFnQixTQUFTLENBQUMsS0FBYTtJQUNuQyxPQUFPLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDakMsQ0FBQztBQUZELDhCQUVDO0FBRUQsU0FBZ0IsUUFBUSxDQUFDLEtBQWE7SUFDbEMsT0FBTyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3BDLENBQUM7QUFGRCw0QkFFQztBQUVELFNBQWdCLFVBQVUsQ0FBQyxLQUFhO0lBQ3BDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQ2hDLHdEQUF3RDtRQUN4RCwrRUFBK0U7UUFDL0UsbURBQW1EO1FBQ25ELGFBQWEsQ0FBQyxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7S0FDdkU7SUFFRCxzRkFBc0Y7SUFDdEYsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUM1QixJQUFJLGFBQWEsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDdEIsTUFBTTtTQUNUO2FBQU0sSUFBSSxDQUFDLEtBQUssS0FBSyxHQUFH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S0FBSyxFQUFFLEdBQUcsRUFBZSxDQUFDO0lBQzVDLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQztBQS9CRCw4Q0ErQkM7QUFFRCxTQUFnQixhQUFhLENBQUMsYUFBdUI7SUFDakQsT0FBTyxJQUFJLEdBQUcsQ0FDVixDQUFDLGFBQWEsSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFZLEVBQUUsRUFBRTtRQUN2QyxNQUFNLFlBQVksR0FBVyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQy9DLElBQUksWUFBWSxHQUFHLENBQUMsRUFBRTtZQUNsQixNQUFNLENBQUMsS0FBSyxDQUNSLGlEQUFpRCxJQUFJLEVBQUUsQ0FDMUQsQ0FBQztZQUNGLElBQUEsV0FBSSxFQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ1g7UUFDRCxPQUFPO1lBQ0gsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsWUFBWSxDQUFDO1lBQy9CLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQztTQUNuQyxDQUFDO0lBQ04sQ0FBQyxDQUFDLENBQ0wsQ0FBQztBQUNOLENBQUM7QUFoQkQsc0NBZ0JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXR0cmlidXRlLCBWYWx1ZSB9IGZyb20gJy4vZG9tYWluJztcbmltcG9ydCAqIGFzIGxvZ2dlciBmcm9tICcuL2xvZ2dlcic7XG5pbXBvcnQgeyBleGl0IH0gZnJvbSAnLi9leGl0JztcblxuY29uc3QgU1BBTl9JRF9CWVRFUyA9IDg7XG5jb25zdCBUUkFDRV9JRF9CWVRFUyA9IDE2O1xuY29uc3QgU0hBUkVEX0JVRkZFUjogQnVmZmVyID0gQnVmZmVyLmFsbG9jVW5zYWZlKFRSQUNFX0lEX0JZVEVTKTtcblxuZXhwb3J0IGZ1bmN0aW9uIGlzSW50ZWdlcih2YWx1ZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIC9eLT9cXGQrJC8udGVzdCh2YWx1ZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0RvdWJsZSh2YWx1ZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIC9eXFxkK1xcLlxcZCskLy50ZXN0KHZhbHVlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlSWQoYnl0ZXM6IG51bWJlcik6IHN0cmluZyB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBieXRlcyAvIDQ7IGkrKykge1xuICAgICAgICAvLyB1bnNpZ25lZCByaWdodCBzaGlmdCBkcm9wcyBkZWNpbWFsIHBhcnQgb2YgdGhlIG51bWJlclxuICAgICAgICAvLyBpdCBpcyByZXF1aXJlZCBiZWNhdXNlIGlmIGEgbnVtYmVyIGJldHdlZW4gMioqMzIgYW5kIDIqKjMyIC0gMSBpcyBnZW5lcmF0ZWQsXG4gICAgICAgIC8vIGFuIG91dCBvZiByYW5nZSBlcnJvciBpcyB0aHJvd24gYnkgd3JpdGVVSW50MzJCRVxuICAgICAgICBTSEFSRURfQlVGRkVSLndyaXRlVUludDMyQkUoKE1hdGgucmFuZG9tKCkgKiAyICoqIDMyKSA+Pj4gMCwgaSAqIDQpO1xuICAgIH1cblxuICAgIC8vIElmIGJ1ZmZlciBpcyBhbGwgMCwgc2V0IHRoZSBsYXN0IGJ5dGUgdG8gMSB0byBndWFyYW50ZWUgYSB2YWxpZCB3M2MgaWQgaXMgZ2VuZXJhdGVkXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBieXRlczsgaSsrKSB7XG4gICAgICAgIGlmIChTSEFSRURfQlVGRkVSW2ldID4gMCkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH0gZWxzZSBpZiAoaSA9PT0gYnl0ZXMgLSAxKSB7XG4gICAgICAgICAgICBTSEFSRURfQlVGRkVSW2J5dGVzIC0gMV0gPSAxO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIFNIQVJFRF9CVUZGRVIudG9TdHJpbmcoJ2hleCcsIDAsIGJ5dGVzKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlU3BhbklkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGdlbmVyYXRlSWQoU1BBTl9JRF9CWVRFUyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZVRyYWNlSWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gZ2VuZXJhdGVJZChUUkFDRV9JRF9CWVRFUyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZVNwYW5JZChzcGFuSWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAvXlthLWZcXGRdezE2fSQvLnRlc3Qoc3BhbklkKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlVHJhY2VJZChzcGFuSWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAvXlthLWZcXGRdezMyfSQvLnRlc3Qoc3BhbklkKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlVHJhY2VQYXJlbnQodHJhY2VQYXJlbnQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAvXjAwLVthLWZcXGRdezMyfS1bYS1mXFxkXXsxNn0tW2EtZlxcZF17Mn0kLy50ZXN0KHRyYWNlUGFyZW50KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RUcmFjZUlkRnJvbVRyYWNlUGFyZW50KHRyYWNlUGFyZW50OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICh2YWxpZGF0ZVRyYWNlUGFyZW50KHRyYWNlUGFyZW50KSkge1xuICAgICAgICByZXR1cm4gdHJhY2VQYXJlbnQuc3BsaXQoJy0nKVsxXTtcbiAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgdHJhY2UgcGFyZW50OiAke3RyYWNlUGFyZW50fWApO1xuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RTcGFuSWRGcm9tVHJhY2VQYXJlbnQodHJhY2VQYXJlbnQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKHZhbGlkYXRlVHJhY2VQYXJlbnQodHJhY2VQYXJlbnQpKSB7XG4gICAgICAgIHJldHVybiB0cmFjZVBhcmVudC5zcGxpdCgnLScpWzJdO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCB0cmFjZSBwYXJlbnQ6ICR7dHJhY2VQYXJlbnR9YCk7XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZmxhdHRlbkF0dHJpYnV0ZXMoXG4gICAgYXR0cmlidXRlTWFwOiBNYXA8c3RyaW5nLCBzdHJpbmc+XG4pOiBBdHRyaWJ1dGVbXSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20oYXR0cmlidXRlTWFwLCAoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICAgIGxldCB2YWw6IFZhbHVlO1xuICAgICAgICBpZiAodmFsdWUuc3RhcnRzV2l0aCgnXCInKSAmJiB2YWx1ZS5lbmRzV2l0aCgnXCInKSkge1xuICAgICAgICAgICAgdmFsID0ge1xuICAgICAgICAgICAgICAgIHN0cmluZ1ZhbHVlOiB2YWx1ZS5zdWJzdHJpbmcoMSwgdmFsdWUubGVuZ3RoIC0gMSksXG4gICAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgICAgdmFsdWUudG9Mb3dlckNhc2UoKSA9PT0gJ3RydWUnIHx8XG4gICAgICAgICAgICB2YWx1ZS50b0xvd2VyQ2FzZSgpID09PSAnZmFsc2UnXG4gICAgICAgICkge1xuICAgICAgICAgICAgdmFsID0ge1xuICAgICAgICAgICAgICAgIGJvb2xWYWx1ZTogdmFsdWUudG9Mb3dlckNhc2UoKSA9PT0gJ3RydWUnLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSBlbHNlIGlmIChpc0ludGVnZXIodmFsdWUpKSB7XG4gICAgICAgICAgICB2YWwgPSB7XG4gICAgICAgICAgICAgICAgaW50VmFsdWU6IHBhcnNlSW50KHZhbHVlKSxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0gZWxzZSBpZiAoaXNEb3VibGUodmFsdWUpKSB7XG4gICAgICAgICAgICB2YWwgPSB7XG4gICAgICAgICAgICAgICAgZG91YmxlVmFsdWU6IHBhcnNlRmxvYXQodmFsdWUpLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHZhbCA9IHtcbiAgICAgICAgICAgICAgICBzdHJpbmdWYWx1ZTogdmFsdWUsXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IGtleSwgdmFsdWU6IHZhbCB9IGFzIEF0dHJpYnV0ZTtcbiAgICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlS2V5VmFsdWUoa2V5VmFsdWVQYWlyczogc3RyaW5nW10pOiBNYXA8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICByZXR1cm4gbmV3IE1hcChcbiAgICAgICAgKGtleVZhbHVlUGFpcnMgfHwgW10pLm1hcCgocGFpcjogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzZXBhcmF0b3JJZHg6IG51bWJlciA9IHBhaXIuaW5kZXhPZignPScpO1xuICAgICAgICAgICAgaWYgKHNlcGFyYXRvcklkeCA8IDApIHtcbiAgICAgICAgICAgICAgICBsb2dnZXIuZXJyb3IoXG4gICAgICAgICAgICAgICAgICAgIGBLZXktdmFsdWUgcGFpciBtdXN0IGJlIGluIFwia2V5PXZhbHVlXCIgZm9ybWF0OiAke3BhaXJ9YFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgZXhpdCgxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAgICAgcGFpci5zdWJzdHJpbmcoMCwgc2VwYXJhdG9ySWR4KSxcbiAgICAgICAgICAgICAgICBwYWlyLnN1YnN0cmluZyhzZXBhcmF0b3JJZHggKyAxKSxcbiAgICAgICAgICAgIF07XG4gICAgICAgIH0pXG4gICAgKTtcbn1cbiJdfQ== |
+4
-3
| { | ||
| "name": "otel-cli", | ||
| "version": "1.1.2", | ||
| "version": "1.2.0", | ||
| "description": "OTEL CLI is a command-line tool for sending OpenTelemetry traces.", | ||
@@ -26,4 +26,4 @@ "author": "Serkan Ozal <serkanozal86@gmail.com> (https://github.com/serkan-ozal)", | ||
| "test": "echo \"Error: no test specified\" && exit 1", | ||
| "lint-check": "prettier --config .prettierrc.json --check ./src/*.ts ./src/**/*.ts", | ||
| "lint-format": "prettier --config .prettierrc.json --write ./src/*.ts ./src/**/*.ts", | ||
| "lint-check": "prettier --config .prettierrc.json --check ./src/*.ts ./src/**/*.ts ./src/**/**/*.ts ./src/**/**/**/*.ts", | ||
| "lint-format": "prettier --config .prettierrc.json --write ./src/*.ts ./src/**/*.ts ./src/**/**/*.ts ./src/**/**/**/*.ts", | ||
| "release-patch": "release-it --ci --git.commit --git.push --git.tag --git.tagName='v${version}' --github.release --no-git.requireCleanWorkingDir --no-git.requireUpstream --npm.publish --npm.skipChecks", | ||
@@ -57,2 +57,3 @@ "release-minor": "release-it minor --ci --git.commit --git.push --git.tag --git.tagName='v${version}' --github.release --no-git.requireCleanWorkingDir --no-git.requireUpstream --npm.publish --npm.skipChecks", | ||
| "dependencies": { | ||
| "@opentelemetry/exporter-trace-otlp-grpc": "^0.43.0", | ||
| "axios": "^0.27.2", | ||
@@ -59,0 +60,0 @@ "chalk": "^4.1.2", |
+39
-45
@@ -46,41 +46,36 @@ # OTEL (OpenTelemetry) CLI | ||
| | CLI Option | Environment Variable | Mandatory | Choices | Default Value | Description | Example | | ||
| |--------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------|-----------|--------------------------------------------------------------------------------------------|---------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------| | ||
| | - `--verbose` <br/> - `-v` | `OTEL_CLI_VERBOSE=true` | NO | | `false` | Enable verbose mode | `--verbose` | | ||
| | - `--endpoint <url>` <br/> - `-e <url>` | `OTEL_EXPORTER_OTLP_ENDPOINT=<url>` | NO | | | OTEL Exporter OTLP endpoint | `--endpoint https://collector.otel.io` | | ||
| | - `--traces-endpoint <url>` <br/> - `-te <url>` | `OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=<url>` | NO | | | OTEL Exporter OTLP traces endpoint | `--traces-endpoint https://collector.otel.io/v1/traces` | | ||
| | - `--protocol <url>` <br/> - `-p <url>` | `OTEL_EXPORTER_OTLP_PROTOCOL=<protocol>` | NO | - `http/json` <br/> | `http/json` | OTEL Exporter OTLP protocol | `--protocol http/json` | | ||
| | - `--headers <key1=value1> <key2=value2> ...` <br/> - `-h <key1=value1> <key2=value2> ...` | `OTEL_EXPORTER_OTLP_HEADERS=key1=value1>,<key2=value2>` | NO | | | OTEL Exporter OTLP headers <br/> - In CLI options, headers are specified as space (` `) seperated key-value pairs (`key1=value1 key2=value2 key3=value3`) <br/> - In environment variable, headers are specified as comma (`,`) seperated key-value pairs (`key1=value1,key2=value2,key3=value3`) <br/> | `--headers x-api-key=abcd-1234 x-project-id=efgh-5678` | | ||
| | - `--traceparent <header>` <br/> - `-tp <header>` | `TRACEPARENT=<header>` | NO | | | Traceparent header in W3C trace context format | `--traceparent 00-84b54e9330faae5350f0dd8673c98146-279fa73bc935cc05-01` | | ||
| | - `--traceparent-disable` <br/> - `-tpd` | `OTEL_CLI_TRACEPARENT_DISABLE=true` | NO | | `false` | Disable traceparent header based W3C trace context propagation for the exported span | `--traceparent-disable` | | ||
| | - `--traceparent-print` <br/> - `-tpp` | `OTEL_CLI_TRACEPARENT_PRINT=true` | NO | | `false` | Print traceparent header in W3C trace context format for the exported span (the exported span id will be injected as parent span id in the header) | `--traceparent-print` | | ||
| | - `--trace-id <id>` <br/> - `-t <id>` | `OTEL_CLI_TRACE_ID=<id>` | NO | | | Trace id | `--trace-id 84b54e9330faae5350f0dd8673c98146` | | ||
| | - `--span-id <id>` <br/> - `-s <id>` | | NO | | | Span id | `--span-id b2746bb26cd13726` | | ||
| | - `--parent-span-id <id>` <br/> - `-p <id>` | | NO | | | Parent span id | `--parent-span-id 279fa73bc935cc05` | | ||
| | - `--name <name>` <br/> - `-s <name>` | | YES | | | Span name | `--name doPayment` | | ||
| | - `--service-name <name>` <br/> - `-sn <name>` | - `OTEL_CLI_SERVICE_NAME=<service-name>` <br/> - `OTEL_SERVICE_NAME=<service-name>` | YES | | | Service name | `--service-name payment-service` | | ||
| | - `--kind <kind>` <br/> - `-k <kind>` | | NO | - `INTERNAL` <br/> - `SERVER` <br/> - `CLIENT` <br/> - `PRODUCER` <br/> - `CONSUMER` <br/> | `INTERNAL` | Span kind | - `--kind CLIENT` <br/> - `--kind PRODUCER` <br/> - ... <br/> | | ||
| | - `--start-time-nanos <nanos>` | | NO | | | Start time in nanoseconds | `--start-time-nanos 1688811191123456789` | | ||
| | - `--start-time-micros <micros>` | | NO | | | Start time in microseconds | `--start-time-micros 1688811191123456` | | ||
| | - `--start-time-millis <millis>` | | NO | | | Start time in milliseconds | `--start-time-millis 1688811191123` | | ||
| | - `--start-time-secs <secs>` | | NO | | | Start time in seconds | `--start-time-secs 1688811191` | | ||
| | - `--end-time-nanos <nanos>` | | NO | | | End time in nanoseconds | `--end-time-nanos 1688811192123456789` | | ||
| | - `--end-time-micros <micros>` | | NO | | | End time in microseconds | `--end-time-micros 1688811192123456` | | ||
| | - `--end-time-millis <millis>` | | NO | | | End time in milliseconds | `--end-time-millis 1688811192123` | | ||
| | - `--end-time-secs <secs>` | | NO | | | End time in seconds | `--start-time-secs 1688811192` | | ||
| | - `--status-code <code>` <br/> - `-sc <code>` | | NO | - `UNSET` <br/> - `OK` <br/> - `ERROR` <br/> | `UNSET` | Status code | - `--status-code OK` <br/> - `--status-code ERROR` <br/> - ... <br/> | | ||
| | - `--status-message <message>` <br/> - `-sm <message>` | | NO | | | Status message | `--status-message "Invalid argument"` | | ||
| | - `--attributes <key-value-pairs...>` <br/> - `-a <key-value-pairs...>` | | NO | | | Span attributes as space (` `) seperated key-value pairs (`key1=value1 key2=value2 key3=value3`) | `--attributes key1=value1 key2=\"my value\" key3=true key4=123 key5=67.89 key6=\"456\"` | | ||
| | - `--server-port` <br/> - `-sp <port>` | `OTEL_CLI_SERVER_PORT=<port>` | NO | | `7777` | OTEL CLI server port for communicating over to export traces asynchronously in background | - `--server-port 12345` <br/> - `-sp 12345` | | ||
| | CLI Option | Environment Variable | Mandatory | Choices | Default Value | Description | Example | | ||
| |--------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------|-----------|--------------------------------------------------------------------------------------------|---------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------| | ||
| | - `--verbose` <br/> - `-v` | `OTEL_CLI_VERBOSE=true` | NO | | `false` | Enable verbose mode | `--verbose` | | ||
| | - `--endpoint <url>` <br/> - `-e <url>` | `OTEL_EXPORTER_OTLP_ENDPOINT=<url>` | YES | | | OTEL Exporter OTLP endpoint | `--endpoint https://collector.otel.io` | | ||
| | - `--protocol <url>` <br/> - `-p <url>` | `OTEL_EXPORTER_OTLP_PROTOCOL=<protocol>` | NO | - `http/json` <br/> - `grpc` | `http/json` | OTEL Exporter OTLP protocol | - `--protocol http/json` <br/> - `--protocol grpc` | | ||
| | - `--headers <key1=value1> <key2=value2> ...` <br/> - `-h <key1=value1> <key2=value2> ...` | `OTEL_EXPORTER_OTLP_HEADERS=key1=value1>,<key2=value2>` | NO | | | OTEL Exporter OTLP headers <br/> - In CLI options, headers are specified as space (` `) seperated key-value pairs (`key1=value1 key2=value2 key3=value3`) <br/> - In environment variable, headers are specified as comma (`,`) seperated key-value pairs (`key1=value1,key2=value2,key3=value3`) <br/> | `--headers x-api-key=abcd-1234 x-project-id=efgh-5678` | | ||
| | - `--traceparent <header>` <br/> - `-tp <header>` | `TRACEPARENT=<header>` | NO | | | Traceparent header in W3C trace context format | `--traceparent 00-84b54e9330faae5350f0dd8673c98146-279fa73bc935cc05-01` | | ||
| | - `--traceparent-disable` <br/> - `-tpd` | `OTEL_CLI_TRACEPARENT_DISABLE=true` | NO | | `false` | Disable traceparent header based W3C trace context propagation for the exported span | `--traceparent-disable` | | ||
| | - `--traceparent-print` <br/> - `-tpp` | `OTEL_CLI_TRACEPARENT_PRINT=true` | NO | | `false` | Print traceparent header in W3C trace context format for the exported span (the exported span id will be injected as parent span id in the header) | `--traceparent-print` | | ||
| | - `--trace-id <id>` <br/> - `-t <id>` | `OTEL_CLI_TRACE_ID=<id>` | NO | | | Trace id | `--trace-id 84b54e9330faae5350f0dd8673c98146` | | ||
| | - `--span-id <id>` <br/> - `-s <id>` | | NO | | | Span id | `--span-id b2746bb26cd13726` | | ||
| | - `--parent-span-id <id>` <br/> - `-p <id>` | | NO | | | Parent span id | `--parent-span-id 279fa73bc935cc05` | | ||
| | - `--name <name>` <br/> - `-s <name>` | | YES | | | Span name | `--name doPayment` | | ||
| | - `--service-name <name>` <br/> - `-sn <name>` | - `OTEL_CLI_SERVICE_NAME=<service-name>` <br/> - `OTEL_SERVICE_NAME=<service-name>` | YES | | | Service name | `--service-name payment-service` | | ||
| | - `--kind <kind>` <br/> - `-k <kind>` | | NO | - `INTERNAL` <br/> - `SERVER` <br/> - `CLIENT` <br/> - `PRODUCER` <br/> - `CONSUMER` <br/> | `INTERNAL` | Span kind | - `--kind CLIENT` <br/> - `--kind PRODUCER` <br/> - ... <br/> | | ||
| | - `--start-time-nanos <nanos>` | | NO | | | Start time in nanoseconds | `--start-time-nanos 1688811191123456789` | | ||
| | - `--start-time-micros <micros>` | | NO | | | Start time in microseconds | `--start-time-micros 1688811191123456` | | ||
| | - `--start-time-millis <millis>` | | NO | | | Start time in milliseconds | `--start-time-millis 1688811191123` | | ||
| | - `--start-time-secs <secs>` | | NO | | | Start time in seconds | `--start-time-secs 1688811191` | | ||
| | - `--end-time-nanos <nanos>` | | NO | | | End time in nanoseconds | `--end-time-nanos 1688811192123456789` | | ||
| | - `--end-time-micros <micros>` | | NO | | | End time in microseconds | `--end-time-micros 1688811192123456` | | ||
| | - `--end-time-millis <millis>` | | NO | | | End time in milliseconds | `--end-time-millis 1688811192123` | | ||
| | - `--end-time-secs <secs>` | | NO | | | End time in seconds | `--start-time-secs 1688811192` | | ||
| | - `--status-code <code>` <br/> - `-sc <code>` | | NO | - `UNSET` <br/> - `OK` <br/> - `ERROR` <br/> | `UNSET` | Status code | - `--status-code OK` <br/> - `--status-code ERROR` <br/> - ... <br/> | | ||
| | - `--status-message <message>` <br/> - `-sm <message>` | | NO | | | Status message | `--status-message "Invalid argument"` | | ||
| | - `--attributes <key-value-pairs...>` <br/> - `-a <key-value-pairs...>` | | NO | | | Span attributes as space (` `) seperated key-value pairs (`key1=value1 key2=value2 key3=value3`) | `--attributes key1=value1 key2=\"my value\" key3=true key4=123 key5=67.89 key6=\"456\"` | | ||
| | - `--server-port` <br/> - `-sp <port>` | `OTEL_CLI_SERVER_PORT=<port>` | NO | | `7777` | OTEL CLI server port for communicating over to export traces asynchronously in background | - `--server-port 12345` <br/> - `-sp 12345` | | ||
| #### How OTEL Exporter OTLP endpoint resolved? | ||
| - If `--traces-endpoint` (or `-te`) option is specified, | ||
| OTLP endpoint is used from the option value. | ||
| - Else, if `OTEL_EXPORTER_OTLP_TRACES_ENDPOINT` environment variable is specified, | ||
| OTLP endpoint is used from the environment variable value. | ||
| - Else, if `--endpoint` (or `-e`) option is specified, | ||
| OTLP endpoint is used from the option value by appending `/v1/traces` to the end of the value. | ||
| #### How OTEL Exporter OTLP HTTP traces endpoint resolved? | ||
| - if `--endpoint` (or `-e`) option is specified, | ||
| OTLP HTTP traces endpoint is generated from the option value by appending `/v1/traces` to the end of the value. | ||
| - Else, if `OTEL_EXPORTER_OTLP_ENDPOINT` environment variable is specified, | ||
| OTLP endpoint is used from the environment variable value by appending `/v1/traces` to the end of the value. | ||
| - Else, CLI fails with the error (`One of the OTEL Exporter OTLP endpoint or OTEL Exporter OTLP traces endpoint configurations must be specified!`). | ||
| OTLP HTTP traces endpoint is generated from the environment variable value by appending `/v1/traces` to the end of the value. | ||
| - Else, CLI fails with the error. | ||
@@ -202,10 +197,9 @@ #### How trace id is resolved? | ||
| | CLI Option | Environment Variable | Mandatory | Choices | Default Value | Description | Example | | ||
| |--------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------|-----------|--------------------------------------------------------------------------------------------|---------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------| | ||
| | - `--verbose` <br/> - `-v` | `OTEL_CLI_VERBOSE=true` | NO | | `false` | Enable verbose mode | `--verbose` | | ||
| | - `--endpoint <url>` <br/> - `-e <url>` | `OTEL_EXPORTER_OTLP_ENDPOINT=<url>` | NO | | | OTEL Exporter OTLP endpoint | `--endpoint https://collector.otel.io` | | ||
| | - `--traces-endpoint <url>` <br/> - `-te <url>` | `OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=<url>` | NO | | | OTEL Exporter OTLP traces endpoint | `--traces-endpoint https://collector.otel.io/v1/traces` | | ||
| | - `--protocol <url>` <br/> - `-p <url>` | `OTEL_EXPORTER_OTLP_PROTOCOL=<protocol>` | NO | - `http/json` <br/> | `http/json` | OTEL Exporter OTLP protocol | `--protocol http/json` | | ||
| | - `--headers <key1=value1> <key2=value2> ...` <br/> - `-h <key1=value1> <key2=value2> ...` | `OTEL_EXPORTER_OTLP_HEADERS=key1=value1>,<key2=value2>` | NO | | | OTEL Exporter OTLP headers <br/> - In CLI options, headers are specified as space (` `) seperated key-value pairs (`key1=value1 key2=value2 key3=value3`) <br/> - In environment variable, headers are specified as comma (`,`) seperated key-value pairs (`key1=value1,key2=value2,key3=value3`) <br/> | `--headers x-api-key=abcd-1234 x-project-id=efgh-5678` | | ||
| | - `--server-port` <br/> - `-sp <port>` | `OTEL_CLI_SERVER_PORT=<port>` | NO | | `7777` | OTEL CLI server port to start on | - `--server-port 12345` <br/> - `-sp 12345` | | ||
| | CLI Option | Environment Variable | Mandatory | Choices | Default Value | Description | Example | | ||
| |--------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------|-----------|------------------------------|---------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------| | ||
| | - `--verbose` <br/> - `-v` | `OTEL_CLI_VERBOSE=true` | NO | | `false` | Enable verbose mode | `--verbose` | | ||
| | - `--endpoint <url>` <br/> - `-e <url>` | `OTEL_EXPORTER_OTLP_ENDPOINT=<url>` | YES | | | OTEL Exporter OTLP endpoint | `--endpoint https://collector.otel.io` | | ||
| | - `--protocol <url>` <br/> - `-p <url>` | `OTEL_EXPORTER_OTLP_PROTOCOL=<protocol>` | NO | - `http/json` <br/> - `grpc` | `http/json` | OTEL Exporter OTLP protocol | - `--protocol http/json` <br/> - `--protocol grpc` | | ||
| | - `--headers <key1=value1> <key2=value2> ...` <br/> - `-h <key1=value1> <key2=value2> ...` | `OTEL_EXPORTER_OTLP_HEADERS=key1=value1>,<key2=value2>` | NO | | | OTEL Exporter OTLP headers <br/> - In CLI options, headers are specified as space (` `) seperated key-value pairs (`key1=value1 key2=value2 key3=value3`) <br/> - In environment variable, headers are specified as comma (`,`) seperated key-value pairs (`key1=value1,key2=value2,key3=value3`) <br/> | `--headers x-api-key=abcd-1234 x-project-id=efgh-5678` | | ||
| | - `--server-port` <br/> - `-sp <port>` | `OTEL_CLI_SERVER_PORT=<port>` | NO | | `7777` | OTEL CLI server port to start on | - `--server-port 12345` <br/> - `-sp 12345` | | ||
@@ -212,0 +206,0 @@ ### `shutdown-server` command |
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 1 instance in 1 package
304186
6.87%82
10.81%2141
7.97%36
-5.26%5
25%621
-0.96%+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added