@coast/service-common-nest 1.0.79 → 2.0.1

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 (48) hide show
  1. package/dist/lib/{logger/MetricsConfig.d.ts → observe/CollectMetricsOptions.d.ts} +1 -1
  2. package/dist/lib/observe/CollectMetricsOptions.js +3 -0
  3. package/dist/lib/observe/CollectMetricsOptions.js.map +1 -0
  4. package/dist/lib/observe/ExtraLogFields.js.map +1 -0
  5. package/dist/lib/observe/LogExecutionOptions.d.ts +5 -0
  6. package/dist/lib/{logger/LogMethodOptions.js → observe/LogExecutionOptions.js} +1 -1
  7. package/dist/lib/observe/LogExecutionOptions.js.map +1 -0
  8. package/dist/lib/{logger → observe}/MetricTags.js.map +1 -1
  9. package/dist/lib/observe/ObserveMethod.d.ts +2 -0
  10. package/dist/lib/{logger/LogMethod.js → observe/ObserveMethod.js} +63 -37
  11. package/dist/lib/observe/ObserveMethod.js.map +1 -0
  12. package/dist/lib/observe/ObserveMethodOptions.d.ts +6 -0
  13. package/dist/lib/{logger/MetricsConfig.js → observe/ObserveMethodOptions.js} +1 -1
  14. package/dist/lib/observe/ObserveMethodOptions.js.map +1 -0
  15. package/dist/lib/observe/test/FakeUser.js.map +1 -0
  16. package/dist/lib/observe/test/ObserveMethodMetricsTestModule.d.ts +2 -0
  17. package/dist/lib/{logger/test/LogMethodMetricsTestModule.js → observe/test/ObserveMethodMetricsTestModule.js} +9 -9
  18. package/dist/lib/observe/test/ObserveMethodMetricsTestModule.js.map +1 -0
  19. package/dist/lib/observe/test/ObserveMethodTestModule.d.ts +2 -0
  20. package/dist/lib/{logger/test/LogMethodTestModule.js → observe/test/ObserveMethodTestModule.js} +9 -9
  21. package/dist/lib/observe/test/ObserveMethodTestModule.js.map +1 -0
  22. package/dist/lib/{logger/test/TestMetricsLoggedMethods.d.ts → observe/test/TestObserveMetricsMethods.d.ts} +1 -1
  23. package/dist/lib/{logger/test/TestMetricsLoggedMethods.js → observe/test/TestObserveMetricsMethods.js} +28 -28
  24. package/dist/lib/observe/test/TestObserveMetricsMethods.js.map +1 -0
  25. package/dist/lib/{logger/test/TestLoggedMethods.d.ts → observe/test/TestObservedMethods.d.ts} +4 -1
  26. package/dist/lib/{logger/test/TestLoggedMethods.js → observe/test/TestObservedMethods.js} +66 -43
  27. package/dist/lib/observe/test/TestObservedMethods.js.map +1 -0
  28. package/dist/tsconfig.tsbuildinfo +1 -1
  29. package/package.json +5 -5
  30. package/dist/lib/logger/ExtraLogFields.js.map +0 -1
  31. package/dist/lib/logger/LogMethod.d.ts +0 -2
  32. package/dist/lib/logger/LogMethod.js.map +0 -1
  33. package/dist/lib/logger/LogMethodOptions.d.ts +0 -6
  34. package/dist/lib/logger/LogMethodOptions.js.map +0 -1
  35. package/dist/lib/logger/MetricsConfig.js.map +0 -1
  36. package/dist/lib/logger/test/FakeUser.js.map +0 -1
  37. package/dist/lib/logger/test/LogMethodMetricsTestModule.d.ts +0 -2
  38. package/dist/lib/logger/test/LogMethodMetricsTestModule.js.map +0 -1
  39. package/dist/lib/logger/test/LogMethodTestModule.d.ts +0 -2
  40. package/dist/lib/logger/test/LogMethodTestModule.js.map +0 -1
  41. package/dist/lib/logger/test/TestLoggedMethods.js.map +0 -1
  42. package/dist/lib/logger/test/TestMetricsLoggedMethods.js.map +0 -1
  43. /package/dist/lib/{logger → observe}/ExtraLogFields.d.ts +0 -0
  44. /package/dist/lib/{logger → observe}/ExtraLogFields.js +0 -0
  45. /package/dist/lib/{logger → observe}/MetricTags.d.ts +0 -0
  46. /package/dist/lib/{logger → observe}/MetricTags.js +0 -0
  47. /package/dist/lib/{logger → observe}/test/FakeUser.d.ts +0 -0
  48. /package/dist/lib/{logger → observe}/test/FakeUser.js +0 -0
@@ -12,10 +12,10 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
12
  return function (target, key) { decorator(target, key, paramIndex); }
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.TestLoggedMethods = void 0;
15
+ exports.TestObservedMethods = void 0;
16
16
  const Sensitive_1 = require("@coast/service-common/logger/redaction/Sensitive");
17
17
  const common_1 = require("@nestjs/common");
18
- const LogMethod_1 = require("../LogMethod");
18
+ const ObserveMethod_1 = require("../ObserveMethod");
19
19
  const FakeUser_1 = require("./FakeUser");
20
20
  class FakeError extends Error {
21
21
  constructor() {
@@ -23,7 +23,7 @@ class FakeError extends Error {
23
23
  this.name = 'FakeError';
24
24
  }
25
25
  }
26
- let TestLoggedMethods = class TestLoggedMethods {
26
+ let TestObservedMethods = class TestObservedMethods {
27
27
  constructor() {
28
28
  this.name = 'test_class';
29
29
  this.counter = 0;
@@ -63,117 +63,140 @@ let TestLoggedMethods = class TestLoggedMethods {
63
63
  this.counter += 1;
64
64
  }
65
65
  logWithThrowingResolver() { }
66
+ logExecutionDisabled() { }
67
+ logSampledOut() { }
68
+ logSampledIn() { }
66
69
  };
67
- exports.TestLoggedMethods = TestLoggedMethods;
70
+ exports.TestObservedMethods = TestObservedMethods;
68
71
  __decorate([
69
- (0, LogMethod_1.LogMethod)(),
72
+ (0, ObserveMethod_1.ObserveMethod)(),
70
73
  __metadata("design:type", Function),
71
74
  __metadata("design:paramtypes", []),
72
75
  __metadata("design:returntype", void 0)
73
- ], TestLoggedMethods.prototype, "logStartAndEnd", null);
76
+ ], TestObservedMethods.prototype, "logStartAndEnd", null);
74
77
  __decorate([
75
- (0, LogMethod_1.LogMethod)(),
78
+ (0, ObserveMethod_1.ObserveMethod)(),
76
79
  __metadata("design:type", Function),
77
80
  __metadata("design:paramtypes", [String, Number, Boolean, Object]),
78
81
  __metadata("design:returntype", void 0)
79
- ], TestLoggedMethods.prototype, "logAllParams", null);
82
+ ], TestObservedMethods.prototype, "logAllParams", null);
80
83
  __decorate([
81
- (0, LogMethod_1.LogMethod)(),
84
+ (0, ObserveMethod_1.ObserveMethod)(),
82
85
  __param(1, (0, Sensitive_1.Sensitive)()),
83
86
  __metadata("design:type", Function),
84
87
  __metadata("design:paramtypes", [String, String]),
85
88
  __metadata("design:returntype", void 0)
86
- ], TestLoggedMethods.prototype, "logWithRedactSensitive", null);
89
+ ], TestObservedMethods.prototype, "logWithRedactSensitive", null);
87
90
  __decorate([
88
- (0, LogMethod_1.LogMethod)(),
91
+ (0, ObserveMethod_1.ObserveMethod)(),
89
92
  __param(1, (0, Sensitive_1.Sensitive)({ keys: ['foo'] })),
90
93
  __metadata("design:type", Function),
91
94
  __metadata("design:paramtypes", [String, Object]),
92
95
  __metadata("design:returntype", void 0)
93
- ], TestLoggedMethods.prototype, "logWithRedactNestedSensitive", null);
96
+ ], TestObservedMethods.prototype, "logWithRedactNestedSensitive", null);
94
97
  __decorate([
95
- (0, LogMethod_1.LogMethod)(),
98
+ (0, ObserveMethod_1.ObserveMethod)(),
96
99
  __metadata("design:type", Function),
97
100
  __metadata("design:paramtypes", [FakeUser_1.FakeUser]),
98
101
  __metadata("design:returntype", void 0)
99
- ], TestLoggedMethods.prototype, "logWithSensitiveField", null);
102
+ ], TestObservedMethods.prototype, "logWithSensitiveField", null);
100
103
  __decorate([
101
- (0, LogMethod_1.LogMethod)({ extraLogFields: { toolName: 'noop_tool' } }),
104
+ (0, ObserveMethod_1.ObserveMethod)({ logExecution: { extraLogFields: { toolName: 'noop_tool' } } }),
102
105
  __metadata("design:type", Function),
103
106
  __metadata("design:paramtypes", []),
104
107
  __metadata("design:returntype", void 0)
105
- ], TestLoggedMethods.prototype, "logWithExtraFields", null);
108
+ ], TestObservedMethods.prototype, "logWithExtraFields", null);
106
109
  __decorate([
107
- (0, LogMethod_1.LogMethod)({ extraLogFields: { experiment: 'exp-42', toolName: 'async_tool' } }),
110
+ (0, ObserveMethod_1.ObserveMethod)({ logExecution: { extraLogFields: { experiment: 'exp-42', toolName: 'async_tool' } } }),
108
111
  __metadata("design:type", Function),
109
112
  __metadata("design:paramtypes", []),
110
113
  __metadata("design:returntype", Promise)
111
- ], TestLoggedMethods.prototype, "logAsyncWithExtraFields", null);
114
+ ], TestObservedMethods.prototype, "logAsyncWithExtraFields", null);
112
115
  __decorate([
113
- (0, LogMethod_1.LogMethod)({ extraLogFields: { toolName: 'rejecting_tool' } }),
116
+ (0, ObserveMethod_1.ObserveMethod)({ logExecution: { extraLogFields: { toolName: 'rejecting_tool' } } }),
114
117
  __metadata("design:type", Function),
115
118
  __metadata("design:paramtypes", []),
116
119
  __metadata("design:returntype", Promise)
117
- ], TestLoggedMethods.prototype, "logAsyncRejectsWithExtraFields", null);
120
+ ], TestObservedMethods.prototype, "logAsyncRejectsWithExtraFields", null);
118
121
  __decorate([
119
- (0, LogMethod_1.LogMethod)({ extraLogFields: { toolName: 'throwing_tool' } }),
122
+ (0, ObserveMethod_1.ObserveMethod)({ logExecution: { extraLogFields: { toolName: 'throwing_tool' } } }),
120
123
  __metadata("design:type", Function),
121
124
  __metadata("design:paramtypes", []),
122
125
  __metadata("design:returntype", void 0)
123
- ], TestLoggedMethods.prototype, "logThrowsWithExtraFields", null);
126
+ ], TestObservedMethods.prototype, "logThrowsWithExtraFields", null);
124
127
  __decorate([
125
- (0, LogMethod_1.LogMethod)({ extraLogFields: { method: 'overridden', toolName: 'collision_tool' } }),
128
+ (0, ObserveMethod_1.ObserveMethod)({ logExecution: { extraLogFields: { method: 'overridden', toolName: 'collision_tool' } } }),
126
129
  __metadata("design:type", Function),
127
130
  __metadata("design:paramtypes", []),
128
131
  __metadata("design:returntype", void 0)
129
- ], TestLoggedMethods.prototype, "logWithReservedKeyCollision", null);
132
+ ], TestObservedMethods.prototype, "logWithReservedKeyCollision", null);
130
133
  __decorate([
131
- (0, LogMethod_1.LogMethod)(),
134
+ (0, ObserveMethod_1.ObserveMethod)(),
132
135
  __metadata("design:type", Function),
133
136
  __metadata("design:paramtypes", []),
134
137
  __metadata("design:returntype", void 0)
135
- ], TestLoggedMethods.prototype, "logThrowsFakeError", null);
138
+ ], TestObservedMethods.prototype, "logThrowsFakeError", null);
136
139
  __decorate([
137
- (0, LogMethod_1.LogMethod)(),
140
+ (0, ObserveMethod_1.ObserveMethod)(),
138
141
  __metadata("design:type", Function),
139
142
  __metadata("design:paramtypes", []),
140
143
  __metadata("design:returntype", Promise)
141
- ], TestLoggedMethods.prototype, "logRejectsFakeError", null);
144
+ ], TestObservedMethods.prototype, "logRejectsFakeError", null);
142
145
  __decorate([
143
- (0, LogMethod_1.LogMethod)(),
146
+ (0, ObserveMethod_1.ObserveMethod)(),
144
147
  __metadata("design:type", Function),
145
148
  __metadata("design:paramtypes", []),
146
149
  __metadata("design:returntype", void 0)
147
- ], TestLoggedMethods.prototype, "logThrowsString", null);
150
+ ], TestObservedMethods.prototype, "logThrowsString", null);
148
151
  __decorate([
149
- (0, LogMethod_1.LogMethod)({ extraLogFields: (self) => ({ toolName: self.name }) }),
152
+ (0, ObserveMethod_1.ObserveMethod)({ logExecution: { extraLogFields: (self) => ({ toolName: self.name }) } }),
150
153
  __metadata("design:type", Function),
151
154
  __metadata("design:paramtypes", []),
152
155
  __metadata("design:returntype", void 0)
153
- ], TestLoggedMethods.prototype, "logWithFunctionExtras", null);
156
+ ], TestObservedMethods.prototype, "logWithFunctionExtras", null);
154
157
  __decorate([
155
- (0, LogMethod_1.LogMethod)({ extraLogFields: (self) => ({ toolName: self.name }) }),
158
+ (0, ObserveMethod_1.ObserveMethod)({ logExecution: { extraLogFields: (self) => ({ toolName: self.name }) } }),
156
159
  __metadata("design:type", Function),
157
160
  __metadata("design:paramtypes", []),
158
161
  __metadata("design:returntype", Promise)
159
- ], TestLoggedMethods.prototype, "logAsyncWithFunctionExtras", null);
162
+ ], TestObservedMethods.prototype, "logAsyncWithFunctionExtras", null);
160
163
  __decorate([
161
- (0, LogMethod_1.LogMethod)({ extraLogFields: (self) => ({ counter: self.counter }) }),
164
+ (0, ObserveMethod_1.ObserveMethod)({ logExecution: { extraLogFields: (self) => ({ counter: self.counter }) } }),
162
165
  __metadata("design:type", Function),
163
166
  __metadata("design:paramtypes", []),
164
167
  __metadata("design:returntype", void 0)
165
- ], TestLoggedMethods.prototype, "logMutatesCounter", null);
168
+ ], TestObservedMethods.prototype, "logMutatesCounter", null);
166
169
  __decorate([
167
- (0, LogMethod_1.LogMethod)({
168
- extraLogFields: () => {
169
- throw new Error('resolver boom');
170
+ (0, ObserveMethod_1.ObserveMethod)({
171
+ logExecution: {
172
+ extraLogFields: () => {
173
+ throw new Error('resolver boom');
174
+ },
170
175
  },
171
176
  }),
172
177
  __metadata("design:type", Function),
173
178
  __metadata("design:paramtypes", []),
174
179
  __metadata("design:returntype", void 0)
175
- ], TestLoggedMethods.prototype, "logWithThrowingResolver", null);
176
- exports.TestLoggedMethods = TestLoggedMethods = __decorate([
180
+ ], TestObservedMethods.prototype, "logWithThrowingResolver", null);
181
+ __decorate([
182
+ (0, ObserveMethod_1.ObserveMethod)({ logExecution: false }),
183
+ __metadata("design:type", Function),
184
+ __metadata("design:paramtypes", []),
185
+ __metadata("design:returntype", void 0)
186
+ ], TestObservedMethods.prototype, "logExecutionDisabled", null);
187
+ __decorate([
188
+ (0, ObserveMethod_1.ObserveMethod)({ logExecution: { samplePercentage: 0 } }),
189
+ __metadata("design:type", Function),
190
+ __metadata("design:paramtypes", []),
191
+ __metadata("design:returntype", void 0)
192
+ ], TestObservedMethods.prototype, "logSampledOut", null);
193
+ __decorate([
194
+ (0, ObserveMethod_1.ObserveMethod)({ logExecution: { samplePercentage: 100 } }),
195
+ __metadata("design:type", Function),
196
+ __metadata("design:paramtypes", []),
197
+ __metadata("design:returntype", void 0)
198
+ ], TestObservedMethods.prototype, "logSampledIn", null);
199
+ exports.TestObservedMethods = TestObservedMethods = __decorate([
177
200
  (0, common_1.Injectable)()
178
- ], TestLoggedMethods);
179
- //# sourceMappingURL=TestLoggedMethods.js.map
201
+ ], TestObservedMethods);
202
+ //# sourceMappingURL=TestObservedMethods.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TestObservedMethods.js","sourceRoot":"","sources":["../../../../lib/observe/test/TestObservedMethods.ts"],"names":[],"mappings":"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"}