@breadstone/archipel-platform-telemetry 0.0.20 → 0.0.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -0
- package/package.json +45 -11
- package/src/OtelSdkHolder.d.ts +1 -0
- package/src/OtelSdkHolder.js +6 -1
- package/src/TelemetryModule.js +9 -9
- package/src/core/TelemetryCacheMetricsRecorder.js +2 -2
- package/src/index.d.ts +1 -1
- package/src/index.js +1 -1
- package/src/logger/TelemetryLoggerService.js +31 -9
- package/src/metrics/MetricsService.d.ts +10 -3
- package/src/metrics/MetricsService.js +12 -6
- package/src/rules/TelemetryRuleEngine.d.ts +1 -0
- package/src/rules/TelemetryRuleEngine.js +10 -8
- package/src/{tokens.js → tokens/TelemetryTokens.js} +1 -1
- /package/src/{tokens.d.ts → tokens/TelemetryTokens.d.ts} +0 -0
package/README.md
CHANGED
|
@@ -20,6 +20,9 @@ import { TelemetryModule } from '@breadstone/archipel-platform-telemetry';
|
|
|
20
20
|
- **Graceful degradation**: Falls back to `NoopTelemetryFacade` when disabled — zero overhead
|
|
21
21
|
- **Health checks**: Integration with health module for observability readiness
|
|
22
22
|
- **Structured logging**: `TelemetryLoggerService` with request correlation IDs
|
|
23
|
+
- **Eager metric init**: `MetricsService` creates instruments at startup via `OnModuleInit`
|
|
24
|
+
- **Write-once SDK guard**: `OtelSdkHolder` prevents accidental double-initialization of the OpenTelemetry SDK
|
|
25
|
+
- **Shutdown timeout**: SDK shutdown is capped at 5 seconds to prevent hanging processes
|
|
23
26
|
|
|
24
27
|
## Development
|
|
25
28
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@breadstone/archipel-platform-telemetry",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.22",
|
|
4
4
|
"description": "OpenTelemetry integration with tracing, metrics, and graceful no-op fallback for NestJS.",
|
|
5
5
|
"type": "commonjs",
|
|
6
6
|
"main": "./src/index.js",
|
|
@@ -28,26 +28,60 @@
|
|
|
28
28
|
"README.md"
|
|
29
29
|
],
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"@breadstone/archipel-platform-caching": "0.0.
|
|
32
|
-
"@breadstone/archipel-platform-core": "0.0.
|
|
33
|
-
"@opentelemetry/api": "1.9.1",
|
|
34
|
-
"@opentelemetry/exporter-metrics-otlp-http": "0.215.0",
|
|
35
|
-
"@opentelemetry/exporter-trace-otlp-http": "0.215.0",
|
|
36
|
-
"@opentelemetry/instrumentation-express": "0.63.0",
|
|
37
|
-
"@opentelemetry/instrumentation-http": "0.215.0",
|
|
38
|
-
"@opentelemetry/resources": "2.7.0",
|
|
39
|
-
"@opentelemetry/sdk-node": "0.215.0",
|
|
40
|
-
"@opentelemetry/semantic-conventions": "1.40.0",
|
|
31
|
+
"@breadstone/archipel-platform-caching": "0.0.22",
|
|
32
|
+
"@breadstone/archipel-platform-core": "0.0.22",
|
|
41
33
|
"tslib": "2.8.1"
|
|
42
34
|
},
|
|
43
35
|
"peerDependencies": {
|
|
44
36
|
"@nestjs/common": ">=11.0.0",
|
|
45
37
|
"@nestjs/core": ">=11.0.0",
|
|
38
|
+
"@opentelemetry/api": ">=1.9.0",
|
|
39
|
+
"@opentelemetry/exporter-metrics-otlp-http": ">=0.200.0",
|
|
40
|
+
"@opentelemetry/exporter-trace-otlp-http": ">=0.200.0",
|
|
41
|
+
"@opentelemetry/instrumentation-express": ">=0.60.0",
|
|
42
|
+
"@opentelemetry/instrumentation-http": ">=0.200.0",
|
|
43
|
+
"@opentelemetry/resources": ">=2.0.0",
|
|
44
|
+
"@opentelemetry/sdk-node": ">=0.200.0",
|
|
45
|
+
"@opentelemetry/semantic-conventions": ">=1.30.0",
|
|
46
46
|
"rxjs": ">=7.0.0"
|
|
47
47
|
},
|
|
48
|
+
"peerDependenciesMeta": {
|
|
49
|
+
"@opentelemetry/api": {
|
|
50
|
+
"optional": true
|
|
51
|
+
},
|
|
52
|
+
"@opentelemetry/exporter-metrics-otlp-http": {
|
|
53
|
+
"optional": true
|
|
54
|
+
},
|
|
55
|
+
"@opentelemetry/exporter-trace-otlp-http": {
|
|
56
|
+
"optional": true
|
|
57
|
+
},
|
|
58
|
+
"@opentelemetry/instrumentation-express": {
|
|
59
|
+
"optional": true
|
|
60
|
+
},
|
|
61
|
+
"@opentelemetry/instrumentation-http": {
|
|
62
|
+
"optional": true
|
|
63
|
+
},
|
|
64
|
+
"@opentelemetry/resources": {
|
|
65
|
+
"optional": true
|
|
66
|
+
},
|
|
67
|
+
"@opentelemetry/sdk-node": {
|
|
68
|
+
"optional": true
|
|
69
|
+
},
|
|
70
|
+
"@opentelemetry/semantic-conventions": {
|
|
71
|
+
"optional": true
|
|
72
|
+
}
|
|
73
|
+
},
|
|
48
74
|
"devDependencies": {
|
|
49
75
|
"@nestjs/common": "11.1.19",
|
|
50
76
|
"@nestjs/core": "11.1.19",
|
|
77
|
+
"@opentelemetry/api": "1.9.1",
|
|
78
|
+
"@opentelemetry/exporter-metrics-otlp-http": "0.215.0",
|
|
79
|
+
"@opentelemetry/exporter-trace-otlp-http": "0.215.0",
|
|
80
|
+
"@opentelemetry/instrumentation-express": "0.63.0",
|
|
81
|
+
"@opentelemetry/instrumentation-http": "0.215.0",
|
|
82
|
+
"@opentelemetry/resources": "2.7.0",
|
|
83
|
+
"@opentelemetry/sdk-node": "0.215.0",
|
|
84
|
+
"@opentelemetry/semantic-conventions": "1.40.0",
|
|
51
85
|
"rxjs": "7.8.2",
|
|
52
86
|
"vitest": "4.1.4"
|
|
53
87
|
}
|
package/src/OtelSdkHolder.d.ts
CHANGED
|
@@ -12,6 +12,7 @@ export declare class OtelSdkHolder implements OnApplicationShutdown {
|
|
|
12
12
|
private _sdk?;
|
|
13
13
|
/**
|
|
14
14
|
* Stores the SDK reference so it can be shut down later.
|
|
15
|
+
* Can only be called once — subsequent calls are ignored.
|
|
15
16
|
*/
|
|
16
17
|
setSdk(sdk: unknown): void;
|
|
17
18
|
/** @inheritdoc */
|
package/src/OtelSdkHolder.js
CHANGED
|
@@ -24,8 +24,13 @@ let OtelSdkHolder = OtelSdkHolder_1 = class OtelSdkHolder {
|
|
|
24
24
|
// #region Methods
|
|
25
25
|
/**
|
|
26
26
|
* Stores the SDK reference so it can be shut down later.
|
|
27
|
+
* Can only be called once — subsequent calls are ignored.
|
|
27
28
|
*/
|
|
28
29
|
setSdk(sdk) {
|
|
30
|
+
if (this._sdk) {
|
|
31
|
+
this._logger.warn('OtelSdkHolder.setSdk() called more than once — ignoring.');
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
29
34
|
this._sdk = sdk;
|
|
30
35
|
}
|
|
31
36
|
/** @inheritdoc */
|
|
@@ -34,7 +39,7 @@ let OtelSdkHolder = OtelSdkHolder_1 = class OtelSdkHolder {
|
|
|
34
39
|
return;
|
|
35
40
|
}
|
|
36
41
|
try {
|
|
37
|
-
await this._sdk.shutdown();
|
|
42
|
+
await Promise.race([this._sdk.shutdown(), new Promise((resolve) => setTimeout(resolve, 5_000))]);
|
|
38
43
|
this._logger.log('OpenTelemetry SDK shut down successfully.');
|
|
39
44
|
}
|
|
40
45
|
catch (error) {
|
package/src/TelemetryModule.js
CHANGED
|
@@ -14,14 +14,14 @@ const MetricsService_1 = require("./metrics/MetricsService");
|
|
|
14
14
|
const TelemetryOptions_1 = require("./options/TelemetryOptions");
|
|
15
15
|
const OtelSdkHolder_1 = require("./OtelSdkHolder");
|
|
16
16
|
const TelemetryRuleEngine_1 = require("./rules/TelemetryRuleEngine");
|
|
17
|
-
const
|
|
17
|
+
const TelemetryTokens_1 = require("./tokens/TelemetryTokens");
|
|
18
18
|
let TelemetryModule = TelemetryModule_1 = class TelemetryModule {
|
|
19
19
|
static register(options) {
|
|
20
20
|
return {
|
|
21
21
|
module: TelemetryModule_1,
|
|
22
22
|
providers: [
|
|
23
23
|
{
|
|
24
|
-
provide:
|
|
24
|
+
provide: TelemetryTokens_1.TELEMETRY_OPTIONS,
|
|
25
25
|
useFactory: () => {
|
|
26
26
|
const merged = {
|
|
27
27
|
...TelemetryOptions_1.defaultTelemetryOptions,
|
|
@@ -32,21 +32,21 @@ let TelemetryModule = TelemetryModule_1 = class TelemetryModule {
|
|
|
32
32
|
},
|
|
33
33
|
},
|
|
34
34
|
{
|
|
35
|
-
provide:
|
|
36
|
-
inject: [
|
|
35
|
+
provide: TelemetryTokens_1.TELEMETRY_ENABLED,
|
|
36
|
+
inject: [TelemetryTokens_1.TELEMETRY_OPTIONS],
|
|
37
37
|
useFactory: (cfg) => cfg.enabled,
|
|
38
38
|
},
|
|
39
39
|
{
|
|
40
40
|
provide: TelemetryRuleEngine_1.TelemetryRuleEngine,
|
|
41
|
-
inject: [
|
|
41
|
+
inject: [TelemetryTokens_1.TELEMETRY_OPTIONS, MetricsService_1.MetricsService],
|
|
42
42
|
useFactory: (cfg, metricsService) => new TelemetryRuleEngine_1.TelemetryRuleEngine(cfg, metricsService),
|
|
43
43
|
},
|
|
44
44
|
TelemetryLoggerService_1.TelemetryLoggerService,
|
|
45
45
|
OtelSdkHolder_1.OtelSdkHolder,
|
|
46
46
|
MetricsService_1.MetricsService,
|
|
47
47
|
{
|
|
48
|
-
provide:
|
|
49
|
-
inject: [
|
|
48
|
+
provide: TelemetryTokens_1.TELEMETRY_FACADE,
|
|
49
|
+
inject: [TelemetryTokens_1.TELEMETRY_OPTIONS, TelemetryTokens_1.TELEMETRY_ENABLED, OtelSdkHolder_1.OtelSdkHolder],
|
|
50
50
|
useFactory: async (cfg, enabled, sdkHolder) => {
|
|
51
51
|
if (!enabled)
|
|
52
52
|
return new NoopTelemetryFacade_1.NoopTelemetryFacade();
|
|
@@ -63,13 +63,13 @@ let TelemetryModule = TelemetryModule_1 = class TelemetryModule {
|
|
|
63
63
|
},
|
|
64
64
|
{
|
|
65
65
|
provide: core_1.APP_INTERCEPTOR,
|
|
66
|
-
inject: [
|
|
66
|
+
inject: [TelemetryTokens_1.TELEMETRY_FACADE, TelemetryTokens_1.TELEMETRY_OPTIONS],
|
|
67
67
|
useFactory: (facade, cfg) => cfg.interceptor?.operation
|
|
68
68
|
? new OperationTelemetryInterceptor_1.OperationTelemetryInterceptor(facade)
|
|
69
69
|
: { intercept: (_, next) => next.handle() },
|
|
70
70
|
},
|
|
71
71
|
],
|
|
72
|
-
exports: [
|
|
72
|
+
exports: [TelemetryTokens_1.TELEMETRY_FACADE, MetricsService_1.MetricsService],
|
|
73
73
|
};
|
|
74
74
|
}
|
|
75
75
|
};
|
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.TelemetryCacheMetricsRecorder = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const common_1 = require("@nestjs/common");
|
|
6
|
-
const
|
|
6
|
+
const TelemetryTokens_1 = require("../tokens/TelemetryTokens");
|
|
7
7
|
// #endregion
|
|
8
8
|
/**
|
|
9
9
|
* Generic cache metrics recorder that forwards cache lifecycle events
|
|
@@ -56,7 +56,7 @@ let TelemetryCacheMetricsRecorder = class TelemetryCacheMetricsRecorder {
|
|
|
56
56
|
exports.TelemetryCacheMetricsRecorder = TelemetryCacheMetricsRecorder;
|
|
57
57
|
exports.TelemetryCacheMetricsRecorder = TelemetryCacheMetricsRecorder = tslib_1.__decorate([
|
|
58
58
|
(0, common_1.Injectable)(),
|
|
59
|
-
tslib_1.__param(0, (0, common_1.Inject)(
|
|
59
|
+
tslib_1.__param(0, (0, common_1.Inject)(TelemetryTokens_1.TELEMETRY_FACADE)),
|
|
60
60
|
tslib_1.__metadata("design:paramtypes", [Object])
|
|
61
61
|
], TelemetryCacheMetricsRecorder);
|
|
62
62
|
//# sourceMappingURL=TelemetryCacheMetricsRecorder.js.map
|
package/src/index.d.ts
CHANGED
package/src/index.js
CHANGED
|
@@ -13,5 +13,5 @@ Object.defineProperty(exports, "OtelSdkHolder", { enumerable: true, get: functio
|
|
|
13
13
|
tslib_1.__exportStar(require("./rules/TelemetryRuleEngine"), exports);
|
|
14
14
|
var TelemetryModule_1 = require("./TelemetryModule");
|
|
15
15
|
Object.defineProperty(exports, "TelemetryModule", { enumerable: true, get: function () { return TelemetryModule_1.TelemetryModule; } });
|
|
16
|
-
tslib_1.__exportStar(require("./tokens"), exports);
|
|
16
|
+
tslib_1.__exportStar(require("./tokens/TelemetryTokens"), exports);
|
|
17
17
|
//# sourceMappingURL=index.js.map
|
|
@@ -7,18 +7,40 @@ const TelemetryRuleEngine_1 = require("../rules/TelemetryRuleEngine");
|
|
|
7
7
|
let TelemetryLoggerService = class TelemetryLoggerService extends common_1.ConsoleLogger {
|
|
8
8
|
// #endregion
|
|
9
9
|
// #region Ctor
|
|
10
|
-
constructor(ruleEngine) {
|
|
10
|
+
constructor(ruleEngine) {
|
|
11
|
+
super();
|
|
12
|
+
this._ruleEngine = ruleEngine;
|
|
13
|
+
}
|
|
11
14
|
// #endregion
|
|
12
15
|
// #region Methods
|
|
13
|
-
log(message, context) {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
16
|
+
log(message, context) {
|
|
17
|
+
this.forward(message);
|
|
18
|
+
super.log(message, context);
|
|
19
|
+
}
|
|
20
|
+
error(message, stack, context) {
|
|
21
|
+
this.forward(message);
|
|
22
|
+
super.error(message, stack, context);
|
|
23
|
+
}
|
|
24
|
+
warn(message, context) {
|
|
25
|
+
this.forward(message);
|
|
26
|
+
super.warn(message, context);
|
|
27
|
+
}
|
|
28
|
+
debug(message, context) {
|
|
29
|
+
this.forward(message);
|
|
30
|
+
super.debug?.(message, context);
|
|
31
|
+
}
|
|
32
|
+
verbose(message, context) {
|
|
33
|
+
this.forward(message);
|
|
34
|
+
super.verbose?.(message, context);
|
|
35
|
+
}
|
|
36
|
+
forward(message) {
|
|
37
|
+
try {
|
|
38
|
+
this._ruleEngine?.process(message);
|
|
39
|
+
}
|
|
40
|
+
catch (error) {
|
|
41
|
+
super.warn?.(`TelemetryRuleEngine.process failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
42
|
+
}
|
|
20
43
|
}
|
|
21
|
-
catch { /* noop */ } }
|
|
22
44
|
};
|
|
23
45
|
exports.TelemetryLoggerService = TelemetryLoggerService;
|
|
24
46
|
exports.TelemetryLoggerService = TelemetryLoggerService = tslib_1.__decorate([
|
|
@@ -1,20 +1,27 @@
|
|
|
1
|
+
import { type OnModuleInit } from '@nestjs/common';
|
|
1
2
|
export interface IMetricInstruments {
|
|
2
3
|
cacheCounter?: unknown;
|
|
3
4
|
opCounter?: unknown;
|
|
4
5
|
opDuration?: unknown;
|
|
5
6
|
}
|
|
6
7
|
/**
|
|
7
|
-
* Provides
|
|
8
|
+
* Provides eagerly-initialized OpenTelemetry metric instruments.
|
|
8
9
|
*
|
|
9
10
|
* Replaces the former module-level `let instruments` closure (TEL-4).
|
|
10
11
|
*
|
|
11
12
|
* @public
|
|
12
13
|
*/
|
|
13
|
-
export declare class MetricsService {
|
|
14
|
+
export declare class MetricsService implements OnModuleInit {
|
|
14
15
|
private readonly _logger;
|
|
15
16
|
private _instruments?;
|
|
16
17
|
/**
|
|
17
|
-
*
|
|
18
|
+
* Eagerly initializes metric instruments at module startup.
|
|
19
|
+
*
|
|
20
|
+
* @public
|
|
21
|
+
*/
|
|
22
|
+
onModuleInit(): void;
|
|
23
|
+
/**
|
|
24
|
+
* Returns the cached metric instruments.
|
|
18
25
|
*/
|
|
19
26
|
getInstruments(): IMetricInstruments | undefined;
|
|
20
27
|
}
|
|
@@ -7,7 +7,7 @@ const tslib_1 = require("tslib");
|
|
|
7
7
|
const common_1 = require("@nestjs/common");
|
|
8
8
|
// #endregion
|
|
9
9
|
/**
|
|
10
|
-
* Provides
|
|
10
|
+
* Provides eagerly-initialized OpenTelemetry metric instruments.
|
|
11
11
|
*
|
|
12
12
|
* Replaces the former module-level `let instruments` closure (TEL-4).
|
|
13
13
|
*
|
|
@@ -22,11 +22,13 @@ let MetricsService = MetricsService_1 = class MetricsService {
|
|
|
22
22
|
// #endregion
|
|
23
23
|
// #region Methods
|
|
24
24
|
/**
|
|
25
|
-
*
|
|
25
|
+
* Eagerly initializes metric instruments at module startup.
|
|
26
|
+
*
|
|
27
|
+
* @public
|
|
26
28
|
*/
|
|
27
|
-
|
|
29
|
+
onModuleInit() {
|
|
28
30
|
if (this._instruments) {
|
|
29
|
-
return
|
|
31
|
+
return;
|
|
30
32
|
}
|
|
31
33
|
try {
|
|
32
34
|
const api = require('@opentelemetry/api');
|
|
@@ -36,13 +38,17 @@ let MetricsService = MetricsService_1 = class MetricsService {
|
|
|
36
38
|
opCounter: meter.createCounter('operation_event_total', { description: 'Operation success/error events' }),
|
|
37
39
|
opDuration: meter.createHistogram('operation_duration_ms', { description: 'Operation durations ms' }),
|
|
38
40
|
};
|
|
39
|
-
return this._instruments;
|
|
40
41
|
}
|
|
41
42
|
catch (error) {
|
|
42
43
|
this._logger.warn('Failed to initialize metric instruments.', error.message);
|
|
43
|
-
return undefined;
|
|
44
44
|
}
|
|
45
45
|
}
|
|
46
|
+
/**
|
|
47
|
+
* Returns the cached metric instruments.
|
|
48
|
+
*/
|
|
49
|
+
getInstruments() {
|
|
50
|
+
return this._instruments;
|
|
51
|
+
}
|
|
46
52
|
};
|
|
47
53
|
exports.MetricsService = MetricsService;
|
|
48
54
|
exports.MetricsService = MetricsService = MetricsService_1 = tslib_1.__decorate([
|
|
@@ -3,6 +3,7 @@ import { ITelemetryOptions } from '../options/TelemetryOptions';
|
|
|
3
3
|
export declare class TelemetryRuleEngine {
|
|
4
4
|
private readonly _options;
|
|
5
5
|
private readonly _metricsService;
|
|
6
|
+
private readonly _logger;
|
|
6
7
|
constructor(options: ITelemetryOptions, metricsService: MetricsService);
|
|
7
8
|
process(message: string): void;
|
|
8
9
|
private handleCache;
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.TelemetryRuleEngine = void 0;
|
|
4
|
+
const common_1 = require("@nestjs/common");
|
|
4
5
|
class TelemetryRuleEngine {
|
|
5
6
|
// #endregion
|
|
6
7
|
// #region Ctor
|
|
7
8
|
constructor(options, metricsService) {
|
|
9
|
+
this._logger = new common_1.Logger(TelemetryRuleEngine.name);
|
|
8
10
|
this._options = options;
|
|
9
11
|
this._metricsService = metricsService;
|
|
10
12
|
}
|
|
@@ -37,8 +39,8 @@ class TelemetryRuleEngine {
|
|
|
37
39
|
phase: tokens['phase'] ?? 'none',
|
|
38
40
|
});
|
|
39
41
|
}
|
|
40
|
-
catch {
|
|
41
|
-
|
|
42
|
+
catch (error) {
|
|
43
|
+
this._logger.warn('Cache metric recording failed', { error });
|
|
42
44
|
}
|
|
43
45
|
}
|
|
44
46
|
handleOperation(line) {
|
|
@@ -58,16 +60,16 @@ class TelemetryRuleEngine {
|
|
|
58
60
|
try {
|
|
59
61
|
counter?.add(1, labels);
|
|
60
62
|
}
|
|
61
|
-
catch {
|
|
62
|
-
|
|
63
|
+
catch (error) {
|
|
64
|
+
this._logger.warn('Operation counter recording failed', { error });
|
|
63
65
|
}
|
|
64
66
|
const dur = tokens['duration_ms'] ? Number(tokens['duration_ms']) : undefined;
|
|
65
67
|
if (dur !== undefined && !Number.isNaN(dur)) {
|
|
66
68
|
try {
|
|
67
69
|
histogram?.record(dur, labels);
|
|
68
70
|
}
|
|
69
|
-
catch {
|
|
70
|
-
|
|
71
|
+
catch (error) {
|
|
72
|
+
this._logger.warn('Operation histogram recording failed', { error });
|
|
71
73
|
}
|
|
72
74
|
}
|
|
73
75
|
}
|
|
@@ -93,8 +95,8 @@ class TelemetryRuleEngine {
|
|
|
93
95
|
histogram?.record(valueRaw, baseLabels);
|
|
94
96
|
}
|
|
95
97
|
}
|
|
96
|
-
catch {
|
|
97
|
-
|
|
98
|
+
catch (error) {
|
|
99
|
+
this._logger.warn('Client metric recording failed', { error });
|
|
98
100
|
}
|
|
99
101
|
}
|
|
100
102
|
parseTokens(line) {
|
|
@@ -5,4 +5,4 @@ exports.TELEMETRY_ENABLED = exports.TELEMETRY_FACADE = exports.TELEMETRY_OPTIONS
|
|
|
5
5
|
exports.TELEMETRY_OPTIONS = Symbol('TELEMETRY_OPTIONS');
|
|
6
6
|
exports.TELEMETRY_FACADE = Symbol('TELEMETRY_FACADE');
|
|
7
7
|
exports.TELEMETRY_ENABLED = Symbol('TELEMETRY_ENABLED');
|
|
8
|
-
//# sourceMappingURL=
|
|
8
|
+
//# sourceMappingURL=TelemetryTokens.js.map
|
|
File without changes
|