@privateaim/server-kit 0.8.14 → 0.8.16
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/CHANGELOG.md +39 -0
- package/dist/core/component/handler/check.d.ts +4 -0
- package/dist/core/component/handler/check.d.ts.map +1 -0
- package/dist/core/component/handler/index.d.ts +3 -0
- package/dist/core/component/handler/index.d.ts.map +1 -0
- package/dist/core/component/handler/module.d.ts +11 -0
- package/dist/core/component/handler/module.d.ts.map +1 -0
- package/dist/core/component/handler/types.d.ts +11 -0
- package/dist/core/component/handler/types.d.ts.map +1 -0
- package/dist/core/component/index.d.ts +1 -0
- package/dist/core/component/index.d.ts.map +1 -1
- package/dist/core/queue-router/module.d.ts +3 -2
- package/dist/core/queue-router/module.d.ts.map +1 -1
- package/dist/core/queue-router/types.d.ts +7 -4
- package/dist/core/queue-router/types.d.ts.map +1 -1
- package/dist/index.cjs +233 -167
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +225 -128
- package/dist/index.mjs.map +1 -1
- package/dist/services/amqp/index.d.ts +1 -0
- package/dist/services/amqp/index.d.ts.map +1 -1
- package/dist/services/amqp/module.d.ts +2 -5
- package/dist/services/amqp/module.d.ts.map +1 -1
- package/dist/services/amqp/singleton.d.ts +6 -0
- package/dist/services/amqp/singleton.d.ts.map +1 -0
- package/dist/services/domain-event/index.d.ts +1 -1
- package/dist/services/domain-event/index.d.ts.map +1 -1
- package/dist/services/domain-event/module.d.ts +6 -6
- package/dist/services/domain-event/module.d.ts.map +1 -1
- package/dist/services/domain-event/redis/helpers.d.ts +2 -0
- package/dist/services/domain-event/redis/helpers.d.ts.map +1 -0
- package/dist/services/domain-event/redis/index.d.ts +1 -0
- package/dist/services/domain-event/redis/index.d.ts.map +1 -1
- package/dist/services/domain-event/redis/module.d.ts +3 -3
- package/dist/services/domain-event/redis/module.d.ts.map +1 -1
- package/dist/services/domain-event/singleton.d.ts +1 -0
- package/dist/services/domain-event/singleton.d.ts.map +1 -1
- package/dist/services/domain-event/socket/helpers.d.ts +3 -0
- package/dist/services/domain-event/socket/helpers.d.ts.map +1 -0
- package/dist/services/domain-event/socket/index.d.ts +1 -0
- package/dist/services/domain-event/socket/index.d.ts.map +1 -1
- package/dist/services/domain-event/socket/module.d.ts +3 -3
- package/dist/services/domain-event/socket/module.d.ts.map +1 -1
- package/dist/services/domain-event/types.d.ts +37 -0
- package/dist/services/domain-event/types.d.ts.map +1 -0
- package/dist/services/domain-event/utils.d.ts +0 -2
- package/dist/services/domain-event/utils.d.ts.map +1 -1
- package/dist/services/index.d.ts +0 -1
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/logger/module.d.ts.map +1 -1
- package/dist/services/logger/types.d.ts +2 -2
- package/dist/services/logger/types.d.ts.map +1 -1
- package/package.json +6 -6
- package/src/core/component/handler/check.ts +23 -0
- package/src/{services/loki → core/component/handler}/index.ts +2 -2
- package/src/core/component/handler/module.ts +57 -0
- package/src/core/component/handler/types.ts +28 -0
- package/src/core/component/index.ts +1 -0
- package/src/core/queue-router/module.ts +30 -4
- package/src/core/queue-router/types.ts +12 -5
- package/src/services/amqp/index.ts +1 -0
- package/src/services/amqp/module.ts +5 -19
- package/src/services/{loki → amqp}/singleton.ts +6 -6
- package/src/services/domain-event/index.ts +1 -1
- package/src/services/domain-event/module.ts +32 -15
- package/src/services/domain-event/redis/helpers.ts +28 -0
- package/src/services/domain-event/redis/index.ts +1 -0
- package/src/services/domain-event/redis/module.ts +19 -12
- package/src/services/domain-event/singleton.ts +9 -5
- package/src/services/domain-event/socket/helpers.ts +26 -0
- package/src/services/domain-event/socket/index.ts +1 -0
- package/src/services/domain-event/socket/module.ts +27 -31
- package/src/services/domain-event/types.ts +59 -0
- package/src/services/domain-event/utils.ts +0 -12
- package/src/services/index.ts +0 -1
- package/src/services/logger/module.ts +7 -17
- package/src/services/logger/types.ts +4 -4
- package/dist/services/domain-event/type.d.ts +0 -15
- package/dist/services/domain-event/type.d.ts.map +0 -1
- package/dist/services/loki/index.d.ts +0 -3
- package/dist/services/loki/index.d.ts.map +0 -1
- package/dist/services/loki/module.d.ts +0 -3
- package/dist/services/loki/module.d.ts.map +0 -1
- package/dist/services/loki/singleton.d.ts +0 -6
- package/dist/services/loki/singleton.d.ts.map +0 -1
- package/src/services/domain-event/type.ts +0 -27
- package/src/services/loki/module.ts +0 -30
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2022-2024.
|
|
3
|
+
* Author Peter Placzek (tada5hi)
|
|
4
|
+
* For the full copyright and license information,
|
|
5
|
+
* view the LICENSE file that was distributed with this source code.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import type { ObjectLiteral } from '@privateaim/kit';
|
|
9
|
+
|
|
10
|
+
export type DomainEventDestination = {
|
|
11
|
+
namespace?: string | string[],
|
|
12
|
+
channel: string | string[]
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
export type DomainEventDestinations = DomainEventDestination[];
|
|
16
|
+
|
|
17
|
+
export type DomainEventDestinationsFn<
|
|
18
|
+
T extends ObjectLiteral =ObjectLiteral,
|
|
19
|
+
> = (data: T) => DomainEventDestination[];
|
|
20
|
+
|
|
21
|
+
export type DomainEventMetadata = {
|
|
22
|
+
domain: string,
|
|
23
|
+
event: string,
|
|
24
|
+
|
|
25
|
+
request_path?: string | null,
|
|
26
|
+
request_method?: string | null;
|
|
27
|
+
request_ip_address?: string | null;
|
|
28
|
+
request_user_agent?: string | null;
|
|
29
|
+
|
|
30
|
+
actor_type?: string | null;
|
|
31
|
+
actor_id?: string | null;
|
|
32
|
+
actor_name?: string | null;
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
export type DomainEventPublishOptions<
|
|
36
|
+
T extends ObjectLiteral = ObjectLiteral,
|
|
37
|
+
> = {
|
|
38
|
+
data: T,
|
|
39
|
+
dataPrevious?: T,
|
|
40
|
+
metadata: DomainEventMetadata,
|
|
41
|
+
destinations: DomainEventDestinations | DomainEventDestinationsFn<T>
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
export interface IDomainEventPublisher {
|
|
45
|
+
publish(ctx: DomainEventPublishOptions) : Promise<void>;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export type DomainEventConsumeOptions<
|
|
49
|
+
T extends ObjectLiteral = ObjectLiteral,
|
|
50
|
+
> = {
|
|
51
|
+
data: T,
|
|
52
|
+
dataPrevious?: T,
|
|
53
|
+
metadata: DomainEventMetadata,
|
|
54
|
+
destinations: DomainEventDestinations
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
export interface IDomainEventConsumer {
|
|
58
|
+
consume(ctx: DomainEventConsumeOptions) : Promise<void>;
|
|
59
|
+
}
|
|
@@ -6,7 +6,6 @@
|
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
8
|
import { isObject } from '@privateaim/kit';
|
|
9
|
-
import type { DomainEventChannelName } from './type';
|
|
10
9
|
|
|
11
10
|
export function transformEventData<T>(input: T) : T {
|
|
12
11
|
if (isObject(input)) {
|
|
@@ -21,14 +20,3 @@ export function transformEventData<T>(input: T) : T {
|
|
|
21
20
|
|
|
22
21
|
return input;
|
|
23
22
|
}
|
|
24
|
-
|
|
25
|
-
export function buildEventChannelName(
|
|
26
|
-
input: DomainEventChannelName,
|
|
27
|
-
id?: string | number,
|
|
28
|
-
) : string {
|
|
29
|
-
if (typeof input === 'string') {
|
|
30
|
-
return input;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
return input(id);
|
|
34
|
-
}
|
package/src/services/index.ts
CHANGED
|
@@ -6,39 +6,30 @@
|
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
8
|
import { read } from 'envix';
|
|
9
|
-
import path from 'node:path';
|
|
10
9
|
import { EnvironmentName } from 'typeorm-extension';
|
|
11
10
|
import type { Logger } from 'winston';
|
|
12
11
|
import { createLogger as create, format, transports } from 'winston';
|
|
13
12
|
import type { LoggerCreateContext, LoggerTransports } from './types';
|
|
14
13
|
|
|
15
|
-
|
|
16
|
-
|
|
14
|
+
function toTransports(input: LoggerTransports) {
|
|
15
|
+
return Array.isArray(input) ? input : [input];
|
|
16
|
+
}
|
|
17
17
|
|
|
18
|
+
export function createLogger(ctx: LoggerCreateContext = {}) : Logger {
|
|
18
19
|
let loggerTransports : LoggerTransports;
|
|
19
20
|
if (read('env') === EnvironmentName.PRODUCTION) {
|
|
20
21
|
loggerTransports = [
|
|
21
22
|
new transports.Console({
|
|
22
23
|
level: 'info',
|
|
23
24
|
}),
|
|
24
|
-
|
|
25
|
-
filename: path.join(directory || process.cwd(), 'access.log'),
|
|
26
|
-
level: 'http',
|
|
27
|
-
maxsize: 10 * 1024 * 1024, // 10MB
|
|
28
|
-
maxFiles: 5,
|
|
29
|
-
}),
|
|
30
|
-
new transports.File({
|
|
31
|
-
filename: path.join(directory || process.cwd(), 'error.log'),
|
|
32
|
-
level: 'warn',
|
|
33
|
-
maxsize: 10 * 1024 * 1024, // 10MB
|
|
34
|
-
maxFiles: 5,
|
|
35
|
-
}),
|
|
25
|
+
...(ctx.transports ? toTransports(ctx.transports) : []),
|
|
36
26
|
];
|
|
37
27
|
} else {
|
|
38
28
|
loggerTransports = [
|
|
39
29
|
new transports.Console({
|
|
40
30
|
level: 'debug',
|
|
41
31
|
}),
|
|
32
|
+
...(ctx.transports ? toTransports(ctx.transports) : []),
|
|
42
33
|
];
|
|
43
34
|
}
|
|
44
35
|
|
|
@@ -46,12 +37,11 @@ export function createLogger(ctx: LoggerCreateContext = {}) : Logger {
|
|
|
46
37
|
format: format.combine(
|
|
47
38
|
format.errors({ stack: true }),
|
|
48
39
|
format.timestamp(),
|
|
49
|
-
format.colorize(),
|
|
50
40
|
format.simple(),
|
|
51
41
|
),
|
|
52
42
|
level: 'debug',
|
|
53
43
|
transports: loggerTransports,
|
|
54
44
|
// todo: deeply merge options
|
|
55
|
-
...(options || {}),
|
|
45
|
+
...(ctx.options || {}),
|
|
56
46
|
});
|
|
57
47
|
}
|
|
@@ -7,13 +7,13 @@
|
|
|
7
7
|
|
|
8
8
|
import type { Logger, LoggerOptions } from 'winston';
|
|
9
9
|
|
|
10
|
+
export type LoggerTransports = LoggerOptions['transports'];
|
|
11
|
+
|
|
10
12
|
export type LoggerCreateContext = {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
+
options?: Partial<LoggerOptions>,
|
|
14
|
+
transports?: LoggerTransports
|
|
13
15
|
};
|
|
14
16
|
|
|
15
|
-
export type LoggerTransports = LoggerOptions['transports'];
|
|
16
|
-
|
|
17
17
|
export type {
|
|
18
18
|
Logger,
|
|
19
19
|
};
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import type { DomainEventRecord } from '@privateaim/kit';
|
|
2
|
-
export type DomainEventChannelName = string | ((id?: string | number) => string);
|
|
3
|
-
export type DomainEventDestination = {
|
|
4
|
-
namespace?: string;
|
|
5
|
-
channel: DomainEventChannelName;
|
|
6
|
-
};
|
|
7
|
-
export type DomainEventDestinations = DomainEventDestination[];
|
|
8
|
-
export type DomainEventPublishContext<T extends DomainEventRecord = DomainEventRecord> = {
|
|
9
|
-
data: T;
|
|
10
|
-
destinations: DomainEventDestinations;
|
|
11
|
-
};
|
|
12
|
-
export interface IDomainEventPublisher {
|
|
13
|
-
publish(ctx: DomainEventPublishContext): Promise<void>;
|
|
14
|
-
}
|
|
15
|
-
//# sourceMappingURL=type.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"type.d.ts","sourceRoot":"","sources":["../../../src/services/domain-event/type.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEzD,MAAM,MAAM,sBAAsB,GAAG,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,KAAK,MAAM,CAAC,CAAC;AACjF,MAAM,MAAM,sBAAsB,GAAG;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,sBAAsB,CAAA;CAClC,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG,sBAAsB,EAAE,CAAC;AAE/D,MAAM,MAAM,yBAAyB,CACjC,CAAC,SAAS,iBAAiB,GAAG,iBAAiB,IAC/C;IACA,IAAI,EAAE,CAAC,CAAC;IACR,YAAY,EAAE,uBAAuB,CAAA;CACxC,CAAC;AAEF,MAAM,WAAW,qBAAqB;IAClC,OAAO,CAAC,GAAG,EAAE,yBAAyB,GAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3D"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/loki/index.ts"],"names":[],"mappings":"AAOA,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC"}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import { LokiClient, CompactorDeletionRequestCreate as LokiCompactorDeletionRequestCreate, Config as LokiConfig, ConfigInput as LokiConfigInput, DistributorPushStream as LokiDistributorPushStream, QuerierQueryRangeOptions as LokiQuerierQueryRangeOptions, QuerierQueryResult as LokiQuerierQueryResult, createClient as createLokiClient, nanoSeconds } from '@hapic/loki';
|
|
2
|
-
export { LokiClient, LokiConfig, LokiConfigInput, LokiCompactorDeletionRequestCreate, LokiDistributorPushStream, LokiQuerierQueryRangeOptions, LokiQuerierQueryResult, createLokiClient, nanoSeconds, };
|
|
3
|
-
//# sourceMappingURL=module.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../src/services/loki/module.ts"],"names":[],"mappings":"AAOA,OAAO,EACH,UAAU,EACV,8BAA8B,IAAI,kCAAkC,EACpE,MAAM,IAAI,UAAU,EACpB,WAAW,IAAI,eAAe,EAC9B,qBAAqB,IAAI,yBAAyB,EAClD,wBAAwB,IAAI,4BAA4B,EACxD,kBAAkB,IAAI,sBAAsB,EAC5C,YAAY,IAAI,gBAAgB,EAChC,WAAW,EACd,MAAM,aAAa,CAAC;AAErB,OAAO,EACH,UAAU,EACV,UAAU,EACV,eAAe,EACf,kCAAkC,EAClC,yBAAyB,EACzB,4BAA4B,EAC5B,sBAAsB,EACtB,gBAAgB,EAChB,WAAW,GACd,CAAC"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import type { Factory } from 'singa';
|
|
2
|
-
import type { LokiClient } from '@hapic/loki';
|
|
3
|
-
export declare function setLokiFactory(factory: Factory<LokiClient>): void;
|
|
4
|
-
export declare function isLokiClientUsable(): boolean;
|
|
5
|
-
export declare function useLokiClient(): LokiClient;
|
|
6
|
-
//# sourceMappingURL=singleton.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"singleton.d.ts","sourceRoot":"","sources":["../../../src/services/loki/singleton.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAErC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAM9C,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,QAE1D;AAED,wBAAgB,kBAAkB,YAEjC;AAED,wBAAgB,aAAa,eAE5B"}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (c) 2022-2024.
|
|
3
|
-
* Author Peter Placzek (tada5hi)
|
|
4
|
-
* For the full copyright and license information,
|
|
5
|
-
* view the LICENSE file that was distributed with this source code.
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
import type { DomainEventRecord } from '@privateaim/kit';
|
|
9
|
-
|
|
10
|
-
export type DomainEventChannelName = string | ((id?: string | number) => string);
|
|
11
|
-
export type DomainEventDestination = {
|
|
12
|
-
namespace?: string,
|
|
13
|
-
channel: DomainEventChannelName
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
export type DomainEventDestinations = DomainEventDestination[];
|
|
17
|
-
|
|
18
|
-
export type DomainEventPublishContext<
|
|
19
|
-
T extends DomainEventRecord = DomainEventRecord,
|
|
20
|
-
> = {
|
|
21
|
-
data: T,
|
|
22
|
-
destinations: DomainEventDestinations
|
|
23
|
-
};
|
|
24
|
-
|
|
25
|
-
export interface IDomainEventPublisher {
|
|
26
|
-
publish(ctx: DomainEventPublishContext) : Promise<void>;
|
|
27
|
-
}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (c) 2024.
|
|
3
|
-
* Author Peter Placzek (tada5hi)
|
|
4
|
-
* For the full copyright and license information,
|
|
5
|
-
* view the LICENSE file that was distributed with this source code.
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
import {
|
|
9
|
-
LokiClient,
|
|
10
|
-
CompactorDeletionRequestCreate as LokiCompactorDeletionRequestCreate,
|
|
11
|
-
Config as LokiConfig,
|
|
12
|
-
ConfigInput as LokiConfigInput,
|
|
13
|
-
DistributorPushStream as LokiDistributorPushStream,
|
|
14
|
-
QuerierQueryRangeOptions as LokiQuerierQueryRangeOptions,
|
|
15
|
-
QuerierQueryResult as LokiQuerierQueryResult,
|
|
16
|
-
createClient as createLokiClient,
|
|
17
|
-
nanoSeconds,
|
|
18
|
-
} from '@hapic/loki';
|
|
19
|
-
|
|
20
|
-
export {
|
|
21
|
-
LokiClient,
|
|
22
|
-
LokiConfig,
|
|
23
|
-
LokiConfigInput,
|
|
24
|
-
LokiCompactorDeletionRequestCreate,
|
|
25
|
-
LokiDistributorPushStream,
|
|
26
|
-
LokiQuerierQueryRangeOptions,
|
|
27
|
-
LokiQuerierQueryResult,
|
|
28
|
-
createLokiClient,
|
|
29
|
-
nanoSeconds,
|
|
30
|
-
};
|