@rsdk/core 5.0.0-next.2 → 5.0.0-next.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (134) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/config/metadata/decorators/inject-property.decorator.d.ts +1 -1
  3. package/dist/config/metadata/decorators/property.decorator.d.ts +1 -1
  4. package/dist/config/parsers/url/exception.d.ts +0 -1
  5. package/dist/config/parsers/url/url.parser.d.ts +0 -1
  6. package/dist/config/reload/config-reload.events.d.ts +0 -1
  7. package/dist/exceptions.handling/global-exceptions.filter.d.ts +1 -1
  8. package/dist/exceptions.handling/global-exceptions.filter.js +2 -5
  9. package/dist/exceptions.handling/global-exceptions.filter.js.map +1 -1
  10. package/dist/health/indicators.abstract/ping.indicator.d.ts +0 -1
  11. package/dist/index.d.ts +2 -3
  12. package/dist/index.js +4 -7
  13. package/dist/index.js.map +1 -1
  14. package/dist/logging/logger-initializing.module.d.ts +1 -1
  15. package/dist/logging/logger-initializing.module.js +1 -1
  16. package/dist/logging/logger-initializing.module.js.map +1 -1
  17. package/dist/metrics/metadata/decorators/metric.decorator.js +1 -2
  18. package/dist/metrics/metadata/decorators/metric.decorator.js.map +1 -1
  19. package/dist/metrics/metric-initializing.module.d.ts +1 -1
  20. package/dist/metrics/metric-initializing.module.js +1 -1
  21. package/dist/metrics/metric-initializing.module.js.map +1 -1
  22. package/dist/platform.context.d.ts +5 -5
  23. package/dist/platform.context.js +28 -24
  24. package/dist/platform.context.js.map +1 -1
  25. package/dist/platform.module.d.ts +1 -1
  26. package/dist/platform.module.js +10 -9
  27. package/dist/platform.module.js.map +1 -1
  28. package/dist/tracing/constants.d.ts +12 -9
  29. package/dist/tracing/constants.js +13 -11
  30. package/dist/tracing/constants.js.map +1 -1
  31. package/dist/tracing/index.d.ts +3 -3
  32. package/dist/tracing/index.js +3 -3
  33. package/dist/tracing/index.js.map +1 -1
  34. package/dist/tracing/opentelemetry/decorators/index.js.map +1 -0
  35. package/dist/tracing/{decorators → opentelemetry/decorators}/no-span.decorator.d.ts +1 -1
  36. package/dist/tracing/{decorators → opentelemetry/decorators}/no-span.decorator.js +3 -3
  37. package/dist/tracing/opentelemetry/decorators/no-span.decorator.js.map +1 -0
  38. package/dist/tracing/{decorators → opentelemetry/decorators}/span.decorator.js +5 -4
  39. package/dist/tracing/opentelemetry/decorators/span.decorator.js.map +1 -0
  40. package/dist/tracing/opentelemetry/index.d.ts +1 -0
  41. package/dist/tracing/{services → opentelemetry}/index.js +1 -1
  42. package/dist/tracing/opentelemetry/index.js.map +1 -0
  43. package/dist/tracing/opentelemetry/opentelemetry.helpers.d.ts +28 -0
  44. package/dist/tracing/opentelemetry/opentelemetry.helpers.js +77 -0
  45. package/dist/tracing/opentelemetry/opentelemetry.helpers.js.map +1 -0
  46. package/dist/tracing/opentelemetry/opentelemetry.metadata.d.ts +7 -0
  47. package/dist/tracing/opentelemetry/opentelemetry.metadata.js +27 -0
  48. package/dist/tracing/opentelemetry/opentelemetry.metadata.js.map +1 -0
  49. package/dist/tracing/opentelemetry/opentelemetry.wrapper.d.ts +6 -0
  50. package/dist/tracing/opentelemetry/opentelemetry.wrapper.js +71 -0
  51. package/dist/tracing/opentelemetry/opentelemetry.wrapper.js.map +1 -0
  52. package/dist/tracing/tracing.actx.d.ts +1 -0
  53. package/dist/tracing/tracing.actx.js +9 -0
  54. package/dist/tracing/tracing.actx.js.map +1 -0
  55. package/dist/tracing/tracing.interceptor.d.ts +20 -4
  56. package/dist/tracing/tracing.interceptor.js +59 -9
  57. package/dist/tracing/tracing.interceptor.js.map +1 -1
  58. package/dist/tracing/tracing.module.d.ts +10 -4
  59. package/dist/tracing/tracing.module.js +63 -21
  60. package/dist/tracing/tracing.module.js.map +1 -1
  61. package/dist/tracing/types.d.ts +9 -11
  62. package/dist/tracing/types.js +0 -20
  63. package/dist/tracing/types.js.map +1 -1
  64. package/dist/transport/protocol.detector.d.ts +13 -1
  65. package/dist/transport/protocol.detector.js +17 -24
  66. package/dist/transport/protocol.detector.js.map +1 -1
  67. package/dist/types/index.d.ts +0 -1
  68. package/dist/types/index.js +1 -4
  69. package/dist/types/index.js.map +1 -1
  70. package/dist/types/options.d.ts +2 -0
  71. package/dist/types/plugins.d.ts +8 -3
  72. package/dist/types/plugins.js.map +1 -1
  73. package/dist/types/transports.d.ts +19 -9
  74. package/dist/types/transports.js +3 -1
  75. package/dist/types/transports.js.map +1 -1
  76. package/package.json +9 -4
  77. package/src/exceptions.handling/global-exceptions.filter.ts +5 -6
  78. package/src/index.ts +3 -3
  79. package/src/logging/logger-initializing.module.ts +2 -2
  80. package/src/metrics/metric-initializing.module.ts +2 -2
  81. package/src/platform.context.ts +41 -32
  82. package/src/platform.module.ts +9 -8
  83. package/src/tracing/constants.ts +15 -9
  84. package/src/tracing/index.ts +3 -3
  85. package/src/tracing/opentelemetry/decorators/no-span.decorator.ts +10 -0
  86. package/src/tracing/{decorators → opentelemetry/decorators}/span.decorator.ts +8 -4
  87. package/src/tracing/opentelemetry/index.ts +1 -0
  88. package/src/tracing/opentelemetry/opentelemetry.helpers.ts +89 -0
  89. package/src/tracing/opentelemetry/opentelemetry.metadata.ts +24 -0
  90. package/src/tracing/opentelemetry/opentelemetry.wrapper.ts +90 -0
  91. package/src/tracing/tracing.actx.ts +8 -0
  92. package/src/tracing/tracing.interceptor.ts +65 -8
  93. package/src/tracing/tracing.module.ts +64 -23
  94. package/src/tracing/types.ts +9 -28
  95. package/src/transport/protocol.detector.ts +19 -25
  96. package/src/types/index.ts +0 -2
  97. package/src/types/options.ts +3 -0
  98. package/src/types/plugins.ts +9 -2
  99. package/src/types/transports.ts +27 -11
  100. package/dist/tracing/decorators/index.js.map +0 -1
  101. package/dist/tracing/decorators/no-span.decorator.js.map +0 -1
  102. package/dist/tracing/decorators/span.decorator.js.map +0 -1
  103. package/dist/tracing/request-metadata.module.d.ts +0 -5
  104. package/dist/tracing/request-metadata.module.js +0 -21
  105. package/dist/tracing/request-metadata.module.js.map +0 -1
  106. package/dist/tracing/services/index.d.ts +0 -1
  107. package/dist/tracing/services/index.js.map +0 -1
  108. package/dist/tracing/services/trace.injector.d.ts +0 -12
  109. package/dist/tracing/services/trace.injector.js +0 -154
  110. package/dist/tracing/services/trace.injector.js.map +0 -1
  111. package/dist/tracing/tracing.config.d.ts +0 -6
  112. package/dist/tracing/tracing.config.js +0 -39
  113. package/dist/tracing/tracing.config.js.map +0 -1
  114. package/dist/tracing/utils/create-span.d.ts +0 -10
  115. package/dist/tracing/utils/create-span.js +0 -20
  116. package/dist/tracing/utils/create-span.js.map +0 -1
  117. package/dist/transport/get-transport-id.d.ts +0 -5
  118. package/dist/transport/get-transport-id.js +0 -14
  119. package/dist/transport/get-transport-id.js.map +0 -1
  120. package/dist/types/tracing.headers-extractor.d.ts +0 -15
  121. package/dist/types/tracing.headers-extractor.js +0 -67
  122. package/dist/types/tracing.headers-extractor.js.map +0 -1
  123. package/src/tracing/decorators/no-span.decorator.ts +0 -10
  124. package/src/tracing/request-metadata.module.ts +0 -8
  125. package/src/tracing/services/index.ts +0 -1
  126. package/src/tracing/services/trace.injector.ts +0 -190
  127. package/src/tracing/tracing.config.ts +0 -25
  128. package/src/tracing/utils/create-span.ts +0 -20
  129. package/src/transport/get-transport-id.ts +0 -20
  130. package/src/types/tracing.headers-extractor.ts +0 -51
  131. /package/dist/tracing/{decorators → opentelemetry/decorators}/index.d.ts +0 -0
  132. /package/dist/tracing/{decorators → opentelemetry/decorators}/index.js +0 -0
  133. /package/dist/tracing/{decorators → opentelemetry/decorators}/span.decorator.d.ts +0 -0
  134. /package/src/tracing/{decorators → opentelemetry/decorators}/index.ts +0 -0
@@ -1,25 +0,0 @@
1
- import {
2
- BoolParser,
3
- Config,
4
- ConfigSection,
5
- Property,
6
- UrlParser,
7
- } from '../config';
8
- import { ConfigTag } from '../config/config.const';
9
-
10
- @ConfigSection({
11
- tags: [ConfigTag.infrastructure, ConfigTag.tracing],
12
- })
13
- export class TracingModuleConfig extends Config {
14
- @Property('TRACING_ENABLED', new BoolParser(), {
15
- defaultValue: false,
16
- description: 'Enable application tracing',
17
- })
18
- enabled!: boolean;
19
-
20
- @Property('TRACING_COLLECTOR_URL', new UrlParser(), {
21
- defaultValue: new URL('http://localhost:4318/v1/traces'),
22
- description: 'Url to jaeger/zipkin/otlp collector etc.',
23
- })
24
- collectorUrl!: URL;
25
- }
@@ -1,20 +0,0 @@
1
- import { getRandomBytes } from '@rsdk/common';
2
-
3
- /**
4
- * Функция для генерации корректного рандомного traceId и spanId
5
- * алгоритм взят из: https://github.com/openzipkin/zipkin-js/blob/ec89188cf6a07e184ab886c1dfb6c9dc276ddfa4/packages/zipkin/src/tracer/randomTraceId.js
6
- * спецификация по traceId: https://www.w3.org/TR/trace-context/#considerations-for-trace-id-field-generation
7
- * @returns {traceId, spanId}
8
- */
9
- export function createSpan(): {
10
- traceId: string;
11
- spanId: string;
12
- } {
13
- const rootSpanId = getRandomBytes(16);
14
- const traceId = getRandomBytes(16) + rootSpanId;
15
-
16
- return {
17
- traceId,
18
- spanId: rootSpanId,
19
- };
20
- }
@@ -1,20 +0,0 @@
1
- import type { ExecutionContext } from '@nestjs/common';
2
- import { createParamDecorator } from '@nestjs/common';
3
- import type { ExecutionContextHost } from '@nestjs/core/helpers/execution-context-host';
4
- import type { Transport } from '@nestjs/microservices';
5
- import { TRANSPORT_METADATA } from '@nestjs/microservices/constants';
6
-
7
- export const TransportId = createParamDecorator(
8
- (_data: unknown, ctx: ExecutionContext | ExecutionContextHost) => {
9
- return getTransportId(ctx);
10
- },
11
- );
12
-
13
- export function getTransportId(
14
- context: ExecutionContext | ExecutionContextHost,
15
- ): Transport {
16
- return (
17
- Reflect.getMetadata(TRANSPORT_METADATA, context.getHandler()) ??
18
- Reflect.getMetadata(TRANSPORT_METADATA, context.getClass())
19
- );
20
- }
@@ -1,51 +0,0 @@
1
- import { type ExecutionContext, Inject, Injectable } from '@nestjs/common';
2
- import { ILogger } from '@rsdk/logging';
3
-
4
- import { InjectLogger } from '../logging';
5
- import { TracingHeaders } from '../tracing/types';
6
- import { ProtocolDetector } from '../transport/protocol.detector';
7
-
8
- import { APP_PLUGINS, APP_TRANSPORTS } from './constants';
9
- import type { PlatformAppPlugin } from './plugins';
10
- import type { ITransport, ProtocolTracingHeadersExtractor } from './transports';
11
-
12
- @Injectable()
13
- export class TracingHeadersExtractor {
14
- constructor(
15
- @Inject(APP_PLUGINS)
16
- private plugins: Set<PlatformAppPlugin>,
17
- @Inject(APP_TRANSPORTS)
18
- private transports: Set<ITransport>,
19
- private protocolDetector: ProtocolDetector,
20
- @InjectLogger(TracingHeadersExtractor) private logger: ILogger,
21
- ) {
22
- this.extractors = new Map<string, ProtocolTracingHeadersExtractor>();
23
- for (const transport of this.transports) {
24
- const e = transport.getHeaderExtractor();
25
- if (e) {
26
- this.extractors.set(transport.getProtocol(), e);
27
- }
28
- }
29
- for (const plugin of this.plugins) {
30
- for (const x of plugin.tracingHeadersExtractors?.() ?? []) {
31
- this.extractors.set(x.protocol, x.extractor);
32
- }
33
- }
34
- }
35
-
36
- extract(ctx: ExecutionContext): TracingHeaders {
37
- const protocol = this.protocolDetector.getProtocol(ctx) ?? ctx.getType();
38
-
39
- const extracted = this.extractors.get(protocol)?.extract(ctx);
40
-
41
- if (extracted) {
42
- this.logger.trace('Extracted TraceHeaders', extracted.getHeaders());
43
- } else {
44
- this.logger.warn('Unable to extract Tracing headers, return empty');
45
- }
46
-
47
- return extracted ?? new TracingHeaders({});
48
- }
49
-
50
- private extractors: Map<string, ProtocolTracingHeadersExtractor>;
51
- }