@rayondigital/nest-dapr 0.9.58 → 0.9.60

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.
@@ -73,8 +73,9 @@ class ActorProxyBuilder {
73
73
  }
74
74
  const originalBody = args.length > 0 ? args : null;
75
75
  const correlationId = this.daprContextService.getCorrelationId(true);
76
+ const traceId = this.daprContextService.getTraceId(true);
76
77
  const body = yield this.prepareBody(this.daprContextService, args, originalBody);
77
- return yield this.actorClient.actor.invoke(actorTypeClassName, actorId, methodName, body, correlationId);
78
+ return yield this.actorClient.actor.invoke(actorTypeClassName, actorId, methodName, body, correlationId, traceId);
78
79
  });
79
80
  }
80
81
  prepareBody(daprContextService, args, body) {
@@ -70,15 +70,17 @@ let NestActorManager = NestActorManager_1 = class NestActorManager {
70
70
  }
71
71
  }
72
72
  setupReentrancy(options) {
73
- ActorClientHTTP_1.default.prototype.invoke = function (actorType, actorId, methodName, body, reentrancyId) {
73
+ ActorClientHTTP_1.default.prototype.invoke = function (actorType, actorId, methodName, body, reentrancyId, traceParent) {
74
+ var _a;
74
75
  return __awaiter(this, void 0, void 0, function* () {
75
76
  const urlSafeId = actorId.getURLSafeId();
76
77
  const result = yield this.client.execute(`/actors/${actorType}/${urlSafeId}/method/${methodName}`, {
77
78
  method: 'POST',
78
79
  body,
79
80
  headers: {
80
- 'Dapr-Reentrancy-Id': reentrancyId !== null && reentrancyId !== void 0 ? reentrancyId : (0, crypto_1.randomUUID)(),
81
+ 'Dapr-Reentrancy-Id': (_a = reentrancyId !== null && reentrancyId !== void 0 ? reentrancyId : traceParent) !== null && _a !== void 0 ? _a : (0, crypto_1.randomUUID)(),
81
82
  'X-Correlation-ID': reentrancyId,
83
+ traceparent: traceParent,
82
84
  },
83
85
  });
84
86
  return result;
@@ -119,6 +121,10 @@ let NestActorManager = NestActorManager_1 = class NestActorManager {
119
121
  if (correlationId) {
120
122
  contextService.setCorrelationId(correlationId);
121
123
  }
124
+ const traceId = context[dapr_context_service_1.DAPR_TRACE_ID_KEY];
125
+ if (traceId) {
126
+ contextService.setTraceId(correlationId);
127
+ }
122
128
  }
123
129
  if (invokeWrapperFn) {
124
130
  return yield invokeWrapperFn(actorId, methodName, data, originalCallActor.bind(this));
@@ -1,6 +1,7 @@
1
1
  import { ClsService } from 'nestjs-cls';
2
2
  export declare const DAPR_CONTEXT_KEY = "context";
3
3
  export declare const DAPR_CORRELATION_ID_KEY = "correlationId";
4
+ export declare const DAPR_TRACE_ID_KEY = "traceId";
4
5
  export declare class DaprContextService {
5
6
  private readonly cls;
6
7
  constructor(cls: ClsService);
@@ -8,11 +9,15 @@ export declare class DaprContextService {
8
9
  getId(): string;
9
10
  setIdIfNotDefined(id?: string): void;
10
11
  getCorrelationId(createIfNotDefined?: boolean): any;
12
+ getTraceId(createIfNotDefined?: boolean): any;
11
13
  setCorrelationId(value?: string): void;
12
14
  setCorrelationIdIfNotDefined(value?: string): string;
15
+ setTraceId(value: string): void;
16
+ setTraceIdIfNotDefined(value?: string): string;
13
17
  setByKey<T>(key: string | symbol, value: T): void;
14
18
  setByKeyIfNotDefined<T>(key: string | symbol, value: T): any;
15
19
  set<T>(value: T): void;
16
20
  getByKey<T>(key: string): T | undefined;
17
21
  get<T>(): T | undefined;
22
+ private randomTraceId;
18
23
  }
@@ -9,12 +9,13 @@ var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.DaprContextService = exports.DAPR_CORRELATION_ID_KEY = exports.DAPR_CONTEXT_KEY = void 0;
12
+ exports.DaprContextService = exports.DAPR_TRACE_ID_KEY = exports.DAPR_CORRELATION_ID_KEY = exports.DAPR_CONTEXT_KEY = void 0;
13
13
  const crypto_1 = require("crypto");
14
14
  const common_1 = require("@nestjs/common");
15
15
  const nestjs_cls_1 = require("nestjs-cls");
16
16
  exports.DAPR_CONTEXT_KEY = 'context';
17
17
  exports.DAPR_CORRELATION_ID_KEY = 'correlationId';
18
+ exports.DAPR_TRACE_ID_KEY = 'traceId';
18
19
  let DaprContextService = class DaprContextService {
19
20
  constructor(cls) {
20
21
  this.cls = cls;
@@ -46,6 +47,18 @@ let DaprContextService = class DaprContextService {
46
47
  return this.setCorrelationIdIfNotDefined();
47
48
  return undefined;
48
49
  }
50
+ getTraceId(createIfNotDefined = false) {
51
+ const byKey = this.getByKey(exports.DAPR_TRACE_ID_KEY);
52
+ if (byKey)
53
+ return byKey;
54
+ const context = this.get();
55
+ if (context && context[exports.DAPR_TRACE_ID_KEY]) {
56
+ return context[exports.DAPR_TRACE_ID_KEY];
57
+ }
58
+ if (createIfNotDefined)
59
+ return this.setTraceIdIfNotDefined();
60
+ return undefined;
61
+ }
49
62
  setCorrelationId(value) {
50
63
  this.setByKey(exports.DAPR_CORRELATION_ID_KEY, value !== null && value !== void 0 ? value : (0, crypto_1.randomUUID)().toString());
51
64
  }
@@ -55,6 +68,15 @@ let DaprContextService = class DaprContextService {
55
68
  this.setByKeyIfNotDefined(exports.DAPR_CORRELATION_ID_KEY, value);
56
69
  return value;
57
70
  }
71
+ setTraceId(value) {
72
+ this.setByKey(exports.DAPR_TRACE_ID_KEY, value !== null && value !== void 0 ? value : (0, crypto_1.randomUUID)().toString());
73
+ }
74
+ setTraceIdIfNotDefined(value) {
75
+ if (!value)
76
+ value = this.randomTraceId();
77
+ this.setByKeyIfNotDefined(exports.DAPR_TRACE_ID_KEY, value);
78
+ return value;
79
+ }
58
80
  setByKey(key, value) {
59
81
  this.getService().set(key, value);
60
82
  }
@@ -90,6 +112,13 @@ let DaprContextService = class DaprContextService {
90
112
  return undefined;
91
113
  }
92
114
  }
115
+ randomTraceId() {
116
+ const version = '00';
117
+ const traceId = (0, crypto_1.randomBytes)(16).toString('hex');
118
+ const spanId = (0, crypto_1.randomBytes)(8).toString('hex');
119
+ const traceFlags = '01';
120
+ return `${version}-${traceId}-${spanId}-${traceFlags}`;
121
+ }
93
122
  };
94
123
  DaprContextService = __decorate([
95
124
  (0, common_1.Injectable)(),
package/dist/index.d.ts CHANGED
@@ -5,6 +5,7 @@ import { SerializableError } from './actors/serializable-error';
5
5
  import { StatefulActorOf } from './actors/stateful-actor-of';
6
6
  import { IState, StatefulActor } from './actors/stateful.actor';
7
7
  import { DAPR_BINDING_METADATA, DAPR_PUBSUB_METADATA, DAPR_ACTOR_METADATA, DAPR_ACTOR_STATE_METADATA } from './constants';
8
+ import { DaprActorOnEvent } from './dapr-actor-on-event.decorator';
8
9
  import { State } from './dapr-actor-state.decorator';
9
10
  import { DaprActor, DaprActorMetadata } from './dapr-actor.decorator';
10
11
  import { DaprBinding, DaprBindingMetadata } from './dapr-binding.decorator';
@@ -15,4 +16,4 @@ import { DaprPubSub, DaprPubSubMetadata } from './dapr-pubsub.decorator';
15
16
  import { DaprLoader } from './dapr.loader';
16
17
  import { DaprContextProvider, DaprModule } from './dapr.module';
17
18
  import { DaprPubSubClient } from './pubsub/dapr-pubsub-client.service';
18
- export { DAPR_BINDING_METADATA, DAPR_PUBSUB_METADATA, DAPR_ACTOR_METADATA, DAPR_ACTOR_STATE_METADATA, DaprMetadataAccessor, DaprBindingMetadata, DaprBinding, DaprPubSubMetadata, DaprPubSub, DaprActorMetadata, State, DaprActor, DaprLoader, DaprModule, DaprActorClient, DaprContextService, DaprContextProvider, ActorRuntimeService, DaprPubSubClient, DaprClientCache, DaprEventEmitter, StatefulActor, StatefulActorOf, IState, SerializableError, };
19
+ export { DAPR_BINDING_METADATA, DAPR_PUBSUB_METADATA, DAPR_ACTOR_METADATA, DAPR_ACTOR_STATE_METADATA, DaprMetadataAccessor, DaprBindingMetadata, DaprBinding, DaprPubSubMetadata, DaprPubSub, DaprActorMetadata, State, DaprActor, DaprLoader, DaprModule, DaprActorClient, DaprContextService, DaprContextProvider, ActorRuntimeService, DaprPubSubClient, DaprClientCache, DaprEventEmitter, StatefulActor, StatefulActorOf, IState, SerializableError, DaprActorOnEvent, };
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SerializableError = exports.StatefulActorOf = exports.StatefulActor = exports.DaprEventEmitter = exports.DaprClientCache = exports.DaprPubSubClient = exports.ActorRuntimeService = exports.DaprContextProvider = exports.DaprContextService = exports.DaprActorClient = exports.DaprModule = exports.DaprLoader = exports.DaprActor = exports.State = exports.DaprPubSub = exports.DaprBinding = exports.DaprMetadataAccessor = exports.DAPR_ACTOR_STATE_METADATA = exports.DAPR_ACTOR_METADATA = exports.DAPR_PUBSUB_METADATA = exports.DAPR_BINDING_METADATA = void 0;
3
+ exports.DaprActorOnEvent = exports.SerializableError = exports.StatefulActorOf = exports.StatefulActor = exports.DaprEventEmitter = exports.DaprClientCache = exports.DaprPubSubClient = exports.ActorRuntimeService = exports.DaprContextProvider = exports.DaprContextService = exports.DaprActorClient = exports.DaprModule = exports.DaprLoader = exports.DaprActor = exports.State = exports.DaprPubSub = exports.DaprBinding = exports.DaprMetadataAccessor = exports.DAPR_ACTOR_STATE_METADATA = exports.DAPR_ACTOR_METADATA = exports.DAPR_PUBSUB_METADATA = exports.DAPR_BINDING_METADATA = void 0;
4
4
  const actor_runtime_service_1 = require("./actors/actor-runtime.service");
5
5
  Object.defineProperty(exports, "ActorRuntimeService", { enumerable: true, get: function () { return actor_runtime_service_1.ActorRuntimeService; } });
6
6
  const client_cache_1 = require("./actors/client-cache");
@@ -18,6 +18,8 @@ Object.defineProperty(exports, "DAPR_BINDING_METADATA", { enumerable: true, get:
18
18
  Object.defineProperty(exports, "DAPR_PUBSUB_METADATA", { enumerable: true, get: function () { return constants_1.DAPR_PUBSUB_METADATA; } });
19
19
  Object.defineProperty(exports, "DAPR_ACTOR_METADATA", { enumerable: true, get: function () { return constants_1.DAPR_ACTOR_METADATA; } });
20
20
  Object.defineProperty(exports, "DAPR_ACTOR_STATE_METADATA", { enumerable: true, get: function () { return constants_1.DAPR_ACTOR_STATE_METADATA; } });
21
+ const dapr_actor_on_event_decorator_1 = require("./dapr-actor-on-event.decorator");
22
+ Object.defineProperty(exports, "DaprActorOnEvent", { enumerable: true, get: function () { return dapr_actor_on_event_decorator_1.DaprActorOnEvent; } });
21
23
  const dapr_actor_state_decorator_1 = require("./dapr-actor-state.decorator");
22
24
  Object.defineProperty(exports, "State", { enumerable: true, get: function () { return dapr_actor_state_decorator_1.State; } });
23
25
  const dapr_actor_decorator_1 = require("./dapr-actor.decorator");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rayondigital/nest-dapr",
3
- "version": "0.9.58",
3
+ "version": "0.9.60",
4
4
  "description": "Develop NestJs microservices using Dapr pubsub, actors and other bindings",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",