@diia-inhouse/diia-app 18.0.0 → 18.2.0
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/dist/baseDeps.js +7 -1
- package/dist/baseDeps.js.map +1 -1
- package/dist/interfaces/tracing.js +2 -0
- package/dist/interfaces/tracing.js.map +1 -1
- package/dist/tracing/index.js +4 -0
- package/dist/tracing/index.js.map +1 -1
- package/dist/types/interfaces/config.d.ts +2 -0
- package/dist/types/interfaces/deps.d.ts +2 -0
- package/dist/types/interfaces/tracing.d.ts +1 -0
- package/package.json +21 -16
- package/src/baseDeps.ts +9 -1
- package/src/interfaces/config.ts +2 -0
- package/src/interfaces/deps.ts +2 -0
- package/src/interfaces/tracing.ts +2 -0
- package/src/tracing/index.ts +5 -1
package/dist/baseDeps.js
CHANGED
|
@@ -11,7 +11,7 @@ const actionExecutor_1 = require("./actionExecutor");
|
|
|
11
11
|
const grpc_1 = require("./grpc");
|
|
12
12
|
const moleculerWrapper_1 = __importDefault(require("./moleculer/moleculerWrapper"));
|
|
13
13
|
async function getBaseDeps(config) {
|
|
14
|
-
const { isMoleculerEnabled, healthCheck: healthCheckConfig, store, redis, rabbit, db, auth, identifier, metrics } = config;
|
|
14
|
+
const { isMoleculerEnabled, healthCheck: healthCheckConfig, store, redis, rabbit, db, auth, identifier, metrics, featureFlags } = config;
|
|
15
15
|
const baseDeps = {
|
|
16
16
|
config: (0, awilix_1.asValue)(config),
|
|
17
17
|
validator: (0, awilix_1.asClass)(validators_1.AppValidator).singleton(),
|
|
@@ -94,6 +94,12 @@ async function getBaseDeps(config) {
|
|
|
94
94
|
injector: () => ({ identifierConfig: identifier }),
|
|
95
95
|
}).singleton();
|
|
96
96
|
}
|
|
97
|
+
if (featureFlags) {
|
|
98
|
+
const { FeatureService } = await import('@diia-inhouse/features');
|
|
99
|
+
baseDeps.featureFlag = (0, awilix_1.asClass)(FeatureService, {
|
|
100
|
+
injector: () => ({ featureConfig: featureFlags }),
|
|
101
|
+
}).singleton();
|
|
102
|
+
}
|
|
97
103
|
return baseDeps;
|
|
98
104
|
}
|
|
99
105
|
exports.getBaseDeps = getBaseDeps;
|
package/dist/baseDeps.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"baseDeps.js","sourceRoot":"","sources":["../src/baseDeps.ts"],"names":[],"mappings":";;;;;;AAAA,mCAAkE;AAElE,6DAA2D;AAE3D,yDAAuD;AAEvD,qDAAiD;AACjD,iCAAuD;AAGvD,oFAA2D;AAEpD,KAAK,UAAU,WAAW,CAC7B,MAAe;IAEf,MAAM,EAAE,kBAAkB,EAAE,WAAW,EAAE,iBAAiB,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"baseDeps.js","sourceRoot":"","sources":["../src/baseDeps.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tracing.js","sourceRoot":"","sources":["../../src/interfaces/tracing.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"tracing.js","sourceRoot":"","sources":["../../src/interfaces/tracing.ts"],"names":[],"mappings":";;;AAUa,QAAA,sCAAsC,GAAG,+BAA+B,CAAA"}
|
package/dist/tracing/index.js
CHANGED
|
@@ -10,6 +10,7 @@ const sdk_trace_base_1 = require("@opentelemetry/sdk-trace-base");
|
|
|
10
10
|
const sdk_trace_node_1 = require("@opentelemetry/sdk-trace-node");
|
|
11
11
|
const semantic_conventions_1 = require("@opentelemetry/semantic-conventions");
|
|
12
12
|
const lodash_1 = require("lodash");
|
|
13
|
+
const tracing_1 = require("../interfaces/tracing");
|
|
13
14
|
function getIgnoreIncomingRequestHook(paths = []) {
|
|
14
15
|
const ignoreIncomingPaths = new Set(['/metrics', '/ready', '/start', '/live'].concat(paths));
|
|
15
16
|
return ({ url }) => {
|
|
@@ -45,6 +46,9 @@ const defaultConfig = {
|
|
|
45
46
|
}
|
|
46
47
|
},
|
|
47
48
|
consumeHook: (span, consumeInfo) => {
|
|
49
|
+
for (const [key, value] of Object.entries(consumeInfo.msg.properties)) {
|
|
50
|
+
span.setAttribute(`${tracing_1.SEMATTRS_MESSAGING_RABBITMQ_ATTRIBUTES}.${key}`, value);
|
|
51
|
+
}
|
|
48
52
|
if (consumeInfo.msg.fields.exchange.includes('reply-to') || consumeInfo.msg.fields.routingKey.includes('reply-to')) {
|
|
49
53
|
span.updateName('amq.rabbitmq.reply-to');
|
|
50
54
|
span.setAttributes({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tracing/index.ts"],"names":[],"mappings":";;;AAAA,4CAAgF;AAChF,0FAAuF;AACvF,sFAA2E;AAC3E,oEAAyE;AAGzE,wDAAmD;AACnD,kEAA4G;AAC5G,kEAAkE;AAClE,8EAA8E;AAC9E,mCAA8B;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tracing/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import type { AuthConfig, IdentifierConfig } from '@diia-inhouse/crypto';
|
|
|
2
2
|
import type { AppDbConfig } from '@diia-inhouse/db';
|
|
3
3
|
import type { MetricsConfig as CustomMetricsConfig } from '@diia-inhouse/diia-metrics';
|
|
4
4
|
import type { QueueConnectionConfig } from '@diia-inhouse/diia-queue';
|
|
5
|
+
import type { FeatureConfig } from '@diia-inhouse/features';
|
|
5
6
|
import type { HealthCheckConfig } from '@diia-inhouse/healthcheck';
|
|
6
7
|
import type { RedisConfig } from '@diia-inhouse/redis';
|
|
7
8
|
import type { GenericObject, HttpMethod } from '@diia-inhouse/types';
|
|
@@ -60,4 +61,5 @@ export interface BaseConfig {
|
|
|
60
61
|
auth?: AuthConfig;
|
|
61
62
|
identifier?: IdentifierConfig;
|
|
62
63
|
grpcServer?: GrpcServerConfig;
|
|
64
|
+
featureFlags?: FeatureConfig;
|
|
63
65
|
}
|
|
@@ -5,6 +5,7 @@ import type { DatabaseService } from '@diia-inhouse/db';
|
|
|
5
5
|
import type { MetricsService } from '@diia-inhouse/diia-metrics';
|
|
6
6
|
import type { EventBus, EventMessageHandler, EventMessageValidator, ExternalCommunicator, ExternalCommunicatorChannel, ExternalEventBus, Queue, ScheduledTask, Task } from '@diia-inhouse/diia-queue';
|
|
7
7
|
import type { EnvService } from '@diia-inhouse/env';
|
|
8
|
+
import type { FeatureService } from '@diia-inhouse/features';
|
|
8
9
|
import type { HealthCheck } from '@diia-inhouse/healthcheck';
|
|
9
10
|
import type { CacheService, PubSubService, RedlockService, StoreService } from '@diia-inhouse/redis';
|
|
10
11
|
import type { AlsData, Logger } from '@diia-inhouse/types';
|
|
@@ -43,4 +44,5 @@ export interface BaseDeps<TConfig extends BaseConfig = BaseConfig> {
|
|
|
43
44
|
database?: DatabaseService;
|
|
44
45
|
auth?: AuthService;
|
|
45
46
|
identifier?: IdentifierService;
|
|
47
|
+
featureFlag?: FeatureService;
|
|
46
48
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@diia-inhouse/diia-app",
|
|
3
|
-
"version": "18.
|
|
3
|
+
"version": "18.2.0",
|
|
4
4
|
"description": "Application package with IoC container",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/types/index.d.ts",
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"src"
|
|
13
13
|
],
|
|
14
14
|
"engines": {
|
|
15
|
-
"node": ">=
|
|
15
|
+
"node": ">=20"
|
|
16
16
|
},
|
|
17
17
|
"scripts": {
|
|
18
18
|
"prebuild": "rimraf dist",
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
"awilix": "10.0.2",
|
|
51
51
|
"cookie-parser": "1.4.6",
|
|
52
52
|
"dotenv-flow": "3.3.0",
|
|
53
|
-
"glob": "
|
|
53
|
+
"glob": "11.0.0",
|
|
54
54
|
"lodash": "4.17.21",
|
|
55
55
|
"moleculer": "0.14.33",
|
|
56
56
|
"moleculer-web": "0.10.7",
|
|
@@ -69,6 +69,7 @@
|
|
|
69
69
|
"@diia-inhouse/diia-queue": ">=6.3.2",
|
|
70
70
|
"@diia-inhouse/env": ">=1.10.2",
|
|
71
71
|
"@diia-inhouse/errors": ">=1.7.0",
|
|
72
|
+
"@diia-inhouse/features": ">=2.1.0",
|
|
72
73
|
"@diia-inhouse/healthcheck": ">=1.7.0",
|
|
73
74
|
"@diia-inhouse/redis": ">=2.2.1",
|
|
74
75
|
"@diia-inhouse/types": ">=6.30.0",
|
|
@@ -93,37 +94,41 @@
|
|
|
93
94
|
},
|
|
94
95
|
"@diia-inhouse/crypto": {
|
|
95
96
|
"optional": true
|
|
97
|
+
},
|
|
98
|
+
"@diia-inhouse/features": {
|
|
99
|
+
"optional": true
|
|
96
100
|
}
|
|
97
101
|
},
|
|
98
102
|
"devDependencies": {
|
|
99
|
-
"@diia-inhouse/configs": "
|
|
100
|
-
"@diia-inhouse/crypto": "1.11.
|
|
101
|
-
"@diia-inhouse/db": "4.
|
|
102
|
-
"@diia-inhouse/diia-logger": "3.
|
|
103
|
+
"@diia-inhouse/configs": "2.2.0",
|
|
104
|
+
"@diia-inhouse/crypto": "1.11.1",
|
|
105
|
+
"@diia-inhouse/db": "4.13.1",
|
|
106
|
+
"@diia-inhouse/diia-logger": "3.3.0",
|
|
103
107
|
"@diia-inhouse/diia-metrics": "3.12.0",
|
|
104
|
-
"@diia-inhouse/diia-queue": "
|
|
108
|
+
"@diia-inhouse/diia-queue": "8.0.0",
|
|
105
109
|
"@diia-inhouse/env": "1.16.0",
|
|
106
110
|
"@diia-inhouse/errors": "1.10.0",
|
|
107
111
|
"@diia-inhouse/eslint-config": "5.1.0",
|
|
108
112
|
"@diia-inhouse/eslint-plugin": "1.6.0",
|
|
109
|
-
"@diia-inhouse/
|
|
113
|
+
"@diia-inhouse/features": "2.3.1",
|
|
114
|
+
"@diia-inhouse/genproto": "2.0.1",
|
|
110
115
|
"@diia-inhouse/healthcheck": "1.12.0",
|
|
111
|
-
"@diia-inhouse/redis": "2.
|
|
112
|
-
"@diia-inhouse/test": "6.
|
|
113
|
-
"@diia-inhouse/types": "6.
|
|
114
|
-
"@diia-inhouse/utils": "
|
|
116
|
+
"@diia-inhouse/redis": "2.13.1",
|
|
117
|
+
"@diia-inhouse/test": "6.4.0",
|
|
118
|
+
"@diia-inhouse/types": "6.51.0",
|
|
119
|
+
"@diia-inhouse/utils": "4.0.0",
|
|
115
120
|
"@diia-inhouse/validators": "1.17.0",
|
|
116
121
|
"@opentelemetry/instrumentation-amqplib": "0.38.0",
|
|
117
122
|
"@opentelemetry/instrumentation-http": "0.52.0",
|
|
118
123
|
"@opentelemetry/otlp-grpc-exporter-base": "0.52.0",
|
|
119
124
|
"@types/cookie-parser": "1.4.7",
|
|
120
|
-
"@types/lodash": "4.17.
|
|
121
|
-
"@types/node": "
|
|
125
|
+
"@types/lodash": "4.17.7",
|
|
126
|
+
"@types/node": "22.0.3",
|
|
122
127
|
"@types/pluralize": "0.0.33",
|
|
123
128
|
"eslint": "8.57.0",
|
|
124
129
|
"lockfile-lint": "4.14.0",
|
|
125
130
|
"madge": "7.0.0",
|
|
126
|
-
"prettier": "3.3.
|
|
131
|
+
"prettier": "3.3.3",
|
|
127
132
|
"type-fest": "4.8.2",
|
|
128
133
|
"typescript": "5.4.5"
|
|
129
134
|
},
|
package/src/baseDeps.ts
CHANGED
|
@@ -13,7 +13,7 @@ import MoleculerService from './moleculer/moleculerWrapper'
|
|
|
13
13
|
export async function getBaseDeps<TConfig extends BaseConfig = BaseConfig>(
|
|
14
14
|
config: TConfig,
|
|
15
15
|
): Promise<NameAndRegistrationPair<BaseDeps<TConfig>>> {
|
|
16
|
-
const { isMoleculerEnabled, healthCheck: healthCheckConfig, store, redis, rabbit, db, auth, identifier, metrics } = config
|
|
16
|
+
const { isMoleculerEnabled, healthCheck: healthCheckConfig, store, redis, rabbit, db, auth, identifier, metrics, featureFlags } = config
|
|
17
17
|
const baseDeps: NameAndRegistrationPair<BaseDeps<TConfig>> = {
|
|
18
18
|
config: asValue(config),
|
|
19
19
|
validator: asClass(AppValidator).singleton(),
|
|
@@ -124,5 +124,13 @@ export async function getBaseDeps<TConfig extends BaseConfig = BaseConfig>(
|
|
|
124
124
|
}).singleton()
|
|
125
125
|
}
|
|
126
126
|
|
|
127
|
+
if (featureFlags) {
|
|
128
|
+
const { FeatureService } = await import('@diia-inhouse/features')
|
|
129
|
+
|
|
130
|
+
baseDeps.featureFlag = asClass(FeatureService, {
|
|
131
|
+
injector: () => ({ featureConfig: featureFlags }),
|
|
132
|
+
}).singleton()
|
|
133
|
+
}
|
|
134
|
+
|
|
127
135
|
return baseDeps
|
|
128
136
|
}
|
package/src/interfaces/config.ts
CHANGED
|
@@ -2,6 +2,7 @@ import type { AuthConfig, IdentifierConfig } from '@diia-inhouse/crypto'
|
|
|
2
2
|
import type { AppDbConfig } from '@diia-inhouse/db'
|
|
3
3
|
import type { MetricsConfig as CustomMetricsConfig } from '@diia-inhouse/diia-metrics'
|
|
4
4
|
import type { QueueConnectionConfig } from '@diia-inhouse/diia-queue'
|
|
5
|
+
import type { FeatureConfig } from '@diia-inhouse/features'
|
|
5
6
|
import type { HealthCheckConfig } from '@diia-inhouse/healthcheck'
|
|
6
7
|
import type { RedisConfig } from '@diia-inhouse/redis'
|
|
7
8
|
import type { GenericObject, HttpMethod } from '@diia-inhouse/types'
|
|
@@ -73,4 +74,5 @@ export interface BaseConfig {
|
|
|
73
74
|
auth?: AuthConfig
|
|
74
75
|
identifier?: IdentifierConfig
|
|
75
76
|
grpcServer?: GrpcServerConfig
|
|
77
|
+
featureFlags?: FeatureConfig
|
|
76
78
|
}
|
package/src/interfaces/deps.ts
CHANGED
|
@@ -15,6 +15,7 @@ import type {
|
|
|
15
15
|
Task,
|
|
16
16
|
} from '@diia-inhouse/diia-queue'
|
|
17
17
|
import type { EnvService } from '@diia-inhouse/env'
|
|
18
|
+
import type { FeatureService } from '@diia-inhouse/features'
|
|
18
19
|
import type { HealthCheck } from '@diia-inhouse/healthcheck'
|
|
19
20
|
import type { CacheService, PubSubService, RedlockService, StoreService } from '@diia-inhouse/redis'
|
|
20
21
|
import type { AlsData, Logger } from '@diia-inhouse/types'
|
|
@@ -56,4 +57,5 @@ export interface BaseDeps<TConfig extends BaseConfig = BaseConfig> {
|
|
|
56
57
|
database?: DatabaseService
|
|
57
58
|
auth?: AuthService
|
|
58
59
|
identifier?: IdentifierService
|
|
60
|
+
featureFlag?: FeatureService
|
|
59
61
|
}
|
package/src/tracing/index.ts
CHANGED
|
@@ -10,7 +10,7 @@ import { NodeTracerProvider } from '@opentelemetry/sdk-trace-node'
|
|
|
10
10
|
import { SEMRESATTRS_SERVICE_NAME } from '@opentelemetry/semantic-conventions'
|
|
11
11
|
import { merge } from 'lodash'
|
|
12
12
|
|
|
13
|
-
import { OpentelemetryTracingConfig } from '../interfaces/tracing'
|
|
13
|
+
import { OpentelemetryTracingConfig, SEMATTRS_MESSAGING_RABBITMQ_ATTRIBUTES } from '../interfaces/tracing'
|
|
14
14
|
|
|
15
15
|
export function getIgnoreIncomingRequestHook(paths: string[] = []): IgnoreIncomingRequestFunction {
|
|
16
16
|
const ignoreIncomingPaths = new Set(['/metrics', '/ready', '/start', '/live'].concat(paths))
|
|
@@ -49,6 +49,10 @@ const defaultConfig: OpentelemetryTracingConfig = {
|
|
|
49
49
|
}
|
|
50
50
|
},
|
|
51
51
|
consumeHook: (span: Span, consumeInfo: ConsumeInfo) => {
|
|
52
|
+
for (const [key, value] of Object.entries(consumeInfo.msg.properties)) {
|
|
53
|
+
span.setAttribute(`${SEMATTRS_MESSAGING_RABBITMQ_ATTRIBUTES}.${key}`, value)
|
|
54
|
+
}
|
|
55
|
+
|
|
52
56
|
if (consumeInfo.msg.fields.exchange.includes('reply-to') || consumeInfo.msg.fields.routingKey.includes('reply-to')) {
|
|
53
57
|
span.updateName('amq.rabbitmq.reply-to')
|
|
54
58
|
span.setAttributes({
|