nestjs-temporal-core 3.0.10 → 3.0.12
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 +80 -0
- package/README.md +1755 -693
- package/dist/constants.d.ts +49 -151
- package/dist/constants.js +38 -141
- package/dist/constants.js.map +1 -1
- package/dist/decorators/activity.decorator.js +75 -15
- package/dist/decorators/activity.decorator.js.map +1 -1
- package/dist/decorators/index.d.ts +1 -3
- package/dist/decorators/index.js +4 -13
- package/dist/decorators/index.js.map +1 -1
- package/dist/decorators/workflow.decorator.d.ts +7 -3
- package/dist/decorators/workflow.decorator.js +161 -48
- package/dist/decorators/workflow.decorator.js.map +1 -1
- package/dist/health/temporal-health.controller.d.ts +7 -0
- package/dist/health/temporal-health.controller.js +77 -0
- package/dist/health/temporal-health.controller.js.map +1 -0
- package/dist/health/temporal-health.module.d.ts +2 -0
- package/dist/health/temporal-health.module.js +20 -0
- package/dist/health/temporal-health.module.js.map +1 -0
- package/dist/index.d.ts +10 -20
- package/dist/index.js +15 -30
- package/dist/index.js.map +1 -1
- package/dist/interfaces.d.ts +773 -160
- package/dist/interfaces.js +1 -2
- package/dist/interfaces.js.map +1 -1
- package/dist/providers/temporal-connection.factory.d.ts +28 -0
- package/dist/providers/temporal-connection.factory.js +194 -0
- package/dist/providers/temporal-connection.factory.js.map +1 -0
- package/dist/services/temporal-client.service.d.ts +33 -0
- package/dist/services/temporal-client.service.js +285 -0
- package/dist/services/temporal-client.service.js.map +1 -0
- package/dist/services/temporal-discovery.service.d.ts +34 -0
- package/dist/services/temporal-discovery.service.js +348 -0
- package/dist/services/temporal-discovery.service.js.map +1 -0
- package/dist/services/temporal-metadata.service.d.ts +37 -0
- package/dist/services/temporal-metadata.service.js +512 -0
- package/dist/services/temporal-metadata.service.js.map +1 -0
- package/dist/services/temporal-schedule.service.d.ts +35 -0
- package/dist/services/temporal-schedule.service.js +380 -0
- package/dist/services/temporal-schedule.service.js.map +1 -0
- package/dist/services/temporal-worker.service.d.ts +67 -0
- package/dist/services/temporal-worker.service.js +845 -0
- package/dist/services/temporal-worker.service.js.map +1 -0
- package/dist/services/temporal.service.d.ts +92 -0
- package/dist/services/temporal.service.js +621 -0
- package/dist/services/temporal.service.js.map +1 -0
- package/dist/temporal.module.d.ts +6 -9
- package/dist/temporal.module.js +160 -109
- package/dist/temporal.module.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/utils/index.d.ts +2 -2
- package/dist/utils/index.js +5 -8
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/logger.d.ts +10 -4
- package/dist/utils/logger.js +77 -106
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/metadata.d.ts +1 -3
- package/dist/utils/metadata.js +8 -18
- package/dist/utils/metadata.js.map +1 -1
- package/dist/utils/validation.d.ts +16 -2
- package/dist/utils/validation.js +103 -9
- package/dist/utils/validation.js.map +1 -1
- package/package.json +37 -26
- package/dist/activity/index.d.ts +0 -2
- package/dist/activity/index.js +0 -19
- package/dist/activity/index.js.map +0 -1
- package/dist/activity/temporal-activity.module.d.ts +0 -11
- package/dist/activity/temporal-activity.module.js +0 -52
- package/dist/activity/temporal-activity.module.js.map +0 -1
- package/dist/activity/temporal-activity.service.d.ts +0 -46
- package/dist/activity/temporal-activity.service.js +0 -192
- package/dist/activity/temporal-activity.service.js.map +0 -1
- package/dist/client/index.d.ts +0 -3
- package/dist/client/index.js +0 -20
- package/dist/client/index.js.map +0 -1
- package/dist/client/temporal-client.module.d.ts +0 -18
- package/dist/client/temporal-client.module.js +0 -198
- package/dist/client/temporal-client.module.js.map +0 -1
- package/dist/client/temporal-client.service.d.ts +0 -35
- package/dist/client/temporal-client.service.js +0 -187
- package/dist/client/temporal-client.service.js.map +0 -1
- package/dist/client/temporal-schedule.service.d.ts +0 -41
- package/dist/client/temporal-schedule.service.js +0 -204
- package/dist/client/temporal-schedule.service.js.map +0 -1
- package/dist/decorators/parameter.decorator.d.ts +0 -5
- package/dist/decorators/parameter.decorator.js +0 -57
- package/dist/decorators/parameter.decorator.js.map +0 -1
- package/dist/decorators/scheduling.decorator.d.ts +0 -4
- package/dist/decorators/scheduling.decorator.js +0 -44
- package/dist/decorators/scheduling.decorator.js.map +0 -1
- package/dist/discovery/index.d.ts +0 -2
- package/dist/discovery/index.js +0 -19
- package/dist/discovery/index.js.map +0 -1
- package/dist/discovery/temporal-discovery.service.d.ts +0 -39
- package/dist/discovery/temporal-discovery.service.js +0 -191
- package/dist/discovery/temporal-discovery.service.js.map +0 -1
- package/dist/discovery/temporal-schedule-manager.service.d.ts +0 -41
- package/dist/discovery/temporal-schedule-manager.service.js +0 -238
- package/dist/discovery/temporal-schedule-manager.service.js.map +0 -1
- package/dist/schedules/index.d.ts +0 -2
- package/dist/schedules/index.js +0 -19
- package/dist/schedules/index.js.map +0 -1
- package/dist/schedules/temporal-schedules.module.d.ts +0 -11
- package/dist/schedules/temporal-schedules.module.js +0 -55
- package/dist/schedules/temporal-schedules.module.js.map +0 -1
- package/dist/schedules/temporal-schedules.service.d.ts +0 -52
- package/dist/schedules/temporal-schedules.service.js +0 -221
- package/dist/schedules/temporal-schedules.service.js.map +0 -1
- package/dist/temporal.service.d.ts +0 -77
- package/dist/temporal.service.js +0 -243
- package/dist/temporal.service.js.map +0 -1
- package/dist/worker/index.d.ts +0 -3
- package/dist/worker/index.js +0 -20
- package/dist/worker/index.js.map +0 -1
- package/dist/worker/temporal-metadata.accessor.d.ts +0 -32
- package/dist/worker/temporal-metadata.accessor.js +0 -208
- package/dist/worker/temporal-metadata.accessor.js.map +0 -1
- package/dist/worker/temporal-worker-manager.service.d.ts +0 -49
- package/dist/worker/temporal-worker-manager.service.js +0 -389
- package/dist/worker/temporal-worker-manager.service.js.map +0 -1
- package/dist/worker/temporal-worker.module.d.ts +0 -18
- package/dist/worker/temporal-worker.module.js +0 -156
- package/dist/worker/temporal-worker.module.js.map +0 -1
package/dist/utils/index.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { createLogger, LoggerUtils, TemporalLogger, TemporalLoggerManager } from './logger';
|
|
2
2
|
export { isValidCronExpression, isValidIntervalExpression } from './validation';
|
|
3
|
-
export {
|
|
3
|
+
export { getActivityMetadata, getActivityMethodMetadata, isActivity, isActivityMethod, } from './metadata';
|
package/dist/utils/index.js
CHANGED
|
@@ -1,20 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.isActivityMethod = exports.isActivity = exports.getActivityMethodMetadata = exports.getActivityMetadata = exports.isValidIntervalExpression = exports.isValidCronExpression = exports.TemporalLoggerManager = exports.TemporalLogger = exports.LoggerUtils = exports.createLogger = void 0;
|
|
4
4
|
var logger_1 = require("./logger");
|
|
5
|
-
Object.defineProperty(exports, "TemporalLogger", { enumerable: true, get: function () { return logger_1.TemporalLogger; } });
|
|
6
|
-
Object.defineProperty(exports, "TemporalLoggerManager", { enumerable: true, get: function () { return logger_1.TemporalLoggerManager; } });
|
|
7
5
|
Object.defineProperty(exports, "createLogger", { enumerable: true, get: function () { return logger_1.createLogger; } });
|
|
8
|
-
Object.defineProperty(exports, "LogExecution", { enumerable: true, get: function () { return logger_1.LogExecution; } });
|
|
9
6
|
Object.defineProperty(exports, "LoggerUtils", { enumerable: true, get: function () { return logger_1.LoggerUtils; } });
|
|
7
|
+
Object.defineProperty(exports, "TemporalLogger", { enumerable: true, get: function () { return logger_1.TemporalLogger; } });
|
|
8
|
+
Object.defineProperty(exports, "TemporalLoggerManager", { enumerable: true, get: function () { return logger_1.TemporalLoggerManager; } });
|
|
10
9
|
var validation_1 = require("./validation");
|
|
11
10
|
Object.defineProperty(exports, "isValidCronExpression", { enumerable: true, get: function () { return validation_1.isValidCronExpression; } });
|
|
12
11
|
Object.defineProperty(exports, "isValidIntervalExpression", { enumerable: true, get: function () { return validation_1.isValidIntervalExpression; } });
|
|
13
12
|
var metadata_1 = require("./metadata");
|
|
14
|
-
Object.defineProperty(exports, "isActivity", { enumerable: true, get: function () { return metadata_1.isActivity; } });
|
|
15
13
|
Object.defineProperty(exports, "getActivityMetadata", { enumerable: true, get: function () { return metadata_1.getActivityMetadata; } });
|
|
16
|
-
Object.defineProperty(exports, "isActivityMethod", { enumerable: true, get: function () { return metadata_1.isActivityMethod; } });
|
|
17
14
|
Object.defineProperty(exports, "getActivityMethodMetadata", { enumerable: true, get: function () { return metadata_1.getActivityMethodMetadata; } });
|
|
18
|
-
Object.defineProperty(exports, "
|
|
19
|
-
Object.defineProperty(exports, "
|
|
15
|
+
Object.defineProperty(exports, "isActivity", { enumerable: true, get: function () { return metadata_1.isActivity; } });
|
|
16
|
+
Object.defineProperty(exports, "isActivityMethod", { enumerable: true, get: function () { return metadata_1.isActivityMethod; } });
|
|
20
17
|
//# sourceMappingURL=index.js.map
|
package/dist/utils/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;AAWA,mCAA4F;AAAnF,sGAAA,YAAY,OAAA;AAAE,qGAAA,WAAW,OAAA;AAAE,wGAAA,cAAc,OAAA;AAAE,+GAAA,qBAAqB,OAAA;AAGzE,2CAAgF;AAAvE,mHAAA,qBAAqB,OAAA;AAAE,uHAAA,yBAAyB,OAAA;AAGzD,uCAKoB;AAJhB,+GAAA,mBAAmB,OAAA;AACnB,qHAAA,yBAAyB,OAAA;AACzB,sGAAA,UAAU,OAAA;AACV,4GAAA,gBAAgB,OAAA"}
|
package/dist/utils/logger.d.ts
CHANGED
|
@@ -1,16 +1,23 @@
|
|
|
1
1
|
import { LogLevel, LoggerConfig, GlobalLoggerConfig } from '../interfaces';
|
|
2
2
|
export declare class TemporalLoggerManager {
|
|
3
3
|
private static instance;
|
|
4
|
+
private static readonly DEFAULT_CONFIG;
|
|
4
5
|
private globalConfig;
|
|
6
|
+
private readonly loggerCache;
|
|
5
7
|
static getInstance(): TemporalLoggerManager;
|
|
6
8
|
configure(config: GlobalLoggerConfig): void;
|
|
7
|
-
getGlobalConfig(): GlobalLoggerConfig
|
|
9
|
+
getGlobalConfig(): Readonly<GlobalLoggerConfig>;
|
|
8
10
|
createLogger(context: string, localConfig?: LoggerConfig): TemporalLogger;
|
|
11
|
+
private getCacheKey;
|
|
12
|
+
clearCache(): void;
|
|
9
13
|
}
|
|
10
14
|
export declare class TemporalLogger {
|
|
15
|
+
private static readonly LOG_LEVELS;
|
|
16
|
+
private static readonly LEVEL_INDICES;
|
|
11
17
|
private readonly nestLogger;
|
|
12
18
|
private readonly config;
|
|
13
19
|
private readonly context;
|
|
20
|
+
private readonly currentLevelIndex;
|
|
14
21
|
constructor(context: string, config?: LoggerConfig);
|
|
15
22
|
private shouldLog;
|
|
16
23
|
error(message: unknown, trace?: string | Error, context?: string): void;
|
|
@@ -22,14 +29,13 @@ export declare class TemporalLogger {
|
|
|
22
29
|
logExecutionTime(methodName: string, startTime: number, context?: string): void;
|
|
23
30
|
logWithLevel(level: LogLevel, message: unknown, context?: string): void;
|
|
24
31
|
createChildLogger(childContext: string, config?: LoggerConfig): TemporalLogger;
|
|
25
|
-
getConfig(): LoggerConfig
|
|
32
|
+
getConfig(): Readonly<Required<LoggerConfig>>;
|
|
26
33
|
isEnabled(): boolean;
|
|
27
34
|
getLogLevel(): LogLevel;
|
|
28
35
|
getContext(): string;
|
|
29
|
-
|
|
36
|
+
isLevelEnabled(level: LogLevel): boolean;
|
|
30
37
|
}
|
|
31
38
|
export declare function createLogger(context: string, config?: LoggerConfig): TemporalLogger;
|
|
32
|
-
export declare function LogExecution(_logLevel?: LogLevel): (target: unknown, propertyName: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
|
|
33
39
|
export declare class LoggerUtils {
|
|
34
40
|
static logServiceInit(logger: TemporalLogger, serviceName: string, config?: unknown): void;
|
|
35
41
|
static logServiceShutdown(logger: TemporalLogger, serviceName: string): void;
|
package/dist/utils/logger.js
CHANGED
|
@@ -1,85 +1,87 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
var TemporalLoggerManager_1;
|
|
9
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
3
|
exports.LoggerUtils = exports.TemporalLogger = exports.TemporalLoggerManager = void 0;
|
|
11
4
|
exports.createLogger = createLogger;
|
|
12
|
-
exports.LogExecution = LogExecution;
|
|
13
5
|
const common_1 = require("@nestjs/common");
|
|
14
|
-
|
|
6
|
+
class TemporalLoggerManager {
|
|
15
7
|
constructor() {
|
|
16
|
-
this.globalConfig =
|
|
17
|
-
|
|
18
|
-
logLevel: 'info',
|
|
19
|
-
appName: 'NestJS-Temporal',
|
|
20
|
-
};
|
|
8
|
+
this.globalConfig = TemporalLoggerManager.DEFAULT_CONFIG;
|
|
9
|
+
this.loggerCache = new Map();
|
|
21
10
|
}
|
|
22
11
|
static getInstance() {
|
|
23
|
-
|
|
24
|
-
TemporalLoggerManager_1.instance = new TemporalLoggerManager_1();
|
|
25
|
-
}
|
|
26
|
-
return TemporalLoggerManager_1.instance;
|
|
12
|
+
return (TemporalLoggerManager.instance ?? (TemporalLoggerManager.instance = new TemporalLoggerManager()));
|
|
27
13
|
}
|
|
28
14
|
configure(config) {
|
|
29
|
-
|
|
15
|
+
if (!config || typeof config !== 'object') {
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
const hasChanges = Object.keys(config).some((key) => this.globalConfig[key] !==
|
|
19
|
+
config[key]);
|
|
20
|
+
if (hasChanges) {
|
|
21
|
+
this.globalConfig = { ...this.globalConfig, ...config };
|
|
22
|
+
this.loggerCache.clear();
|
|
23
|
+
}
|
|
30
24
|
}
|
|
31
25
|
getGlobalConfig() {
|
|
32
|
-
return
|
|
26
|
+
return this.globalConfig;
|
|
33
27
|
}
|
|
34
28
|
createLogger(context, localConfig = {}) {
|
|
35
|
-
const
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
}
|
|
39
|
-
|
|
29
|
+
const cacheKey = this.getCacheKey(context, localConfig);
|
|
30
|
+
if (this.loggerCache.has(cacheKey)) {
|
|
31
|
+
return this.loggerCache.get(cacheKey);
|
|
32
|
+
}
|
|
33
|
+
const mergedConfig = { ...this.globalConfig, ...localConfig };
|
|
34
|
+
const logger = new TemporalLogger(context, mergedConfig);
|
|
35
|
+
this.loggerCache.set(cacheKey, logger);
|
|
36
|
+
return logger;
|
|
40
37
|
}
|
|
41
|
-
|
|
38
|
+
getCacheKey(context, localConfig) {
|
|
39
|
+
return `${context}:${localConfig?.enableLogger ?? ''}:${localConfig?.logLevel ?? ''}`;
|
|
40
|
+
}
|
|
41
|
+
clearCache() {
|
|
42
|
+
this.loggerCache.clear();
|
|
43
|
+
}
|
|
44
|
+
}
|
|
42
45
|
exports.TemporalLoggerManager = TemporalLoggerManager;
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
+
TemporalLoggerManager.DEFAULT_CONFIG = {
|
|
47
|
+
enableLogger: true,
|
|
48
|
+
logLevel: 'info',
|
|
49
|
+
appName: 'NestJS-Temporal',
|
|
50
|
+
};
|
|
46
51
|
class TemporalLogger {
|
|
47
52
|
constructor(context, config = {}) {
|
|
48
53
|
this.context = context;
|
|
49
54
|
this.nestLogger = new common_1.Logger(context);
|
|
55
|
+
const logLevel = config.logLevel && TemporalLogger.LEVEL_INDICES.has(config.logLevel)
|
|
56
|
+
? config.logLevel
|
|
57
|
+
: 'info';
|
|
50
58
|
this.config = {
|
|
51
59
|
enableLogger: config.enableLogger ?? true,
|
|
52
|
-
logLevel
|
|
60
|
+
logLevel,
|
|
53
61
|
};
|
|
62
|
+
this.currentLevelIndex = TemporalLogger.LEVEL_INDICES.get(this.config.logLevel) ?? 2;
|
|
54
63
|
}
|
|
55
64
|
shouldLog(level) {
|
|
56
|
-
if (this.config.enableLogger
|
|
65
|
+
if (!this.config.enableLogger)
|
|
57
66
|
return false;
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
const currentLevelIndex = levels.indexOf(this.config.logLevel);
|
|
61
|
-
const requestedLevelIndex = levels.indexOf(level);
|
|
62
|
-
return requestedLevelIndex <= currentLevelIndex;
|
|
67
|
+
const requestedLevelIndex = TemporalLogger.LEVEL_INDICES.get(level);
|
|
68
|
+
return requestedLevelIndex !== undefined && requestedLevelIndex <= this.currentLevelIndex;
|
|
63
69
|
}
|
|
64
70
|
error(message, trace, context) {
|
|
65
71
|
if (this.shouldLog('error')) {
|
|
66
|
-
const errorContext = context
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
}
|
|
70
|
-
else {
|
|
71
|
-
this.nestLogger.error(message, trace, errorContext);
|
|
72
|
-
}
|
|
72
|
+
const errorContext = context ?? this.context;
|
|
73
|
+
const stackTrace = trace instanceof Error ? trace.stack : trace;
|
|
74
|
+
this.nestLogger.error(message, stackTrace, errorContext);
|
|
73
75
|
}
|
|
74
76
|
}
|
|
75
77
|
warn(message, context) {
|
|
76
78
|
if (this.shouldLog('warn')) {
|
|
77
|
-
this.nestLogger.warn(message, context
|
|
79
|
+
this.nestLogger.warn(message, context ?? this.context);
|
|
78
80
|
}
|
|
79
81
|
}
|
|
80
82
|
log(message, context) {
|
|
81
83
|
if (this.shouldLog('info')) {
|
|
82
|
-
this.nestLogger.log(message, context
|
|
84
|
+
this.nestLogger.log(message, context ?? this.context);
|
|
83
85
|
}
|
|
84
86
|
}
|
|
85
87
|
info(message, context) {
|
|
@@ -87,36 +89,31 @@ class TemporalLogger {
|
|
|
87
89
|
}
|
|
88
90
|
debug(message, context) {
|
|
89
91
|
if (this.shouldLog('debug')) {
|
|
90
|
-
this.nestLogger.debug(message, context
|
|
92
|
+
this.nestLogger.debug(message, context ?? this.context);
|
|
91
93
|
}
|
|
92
94
|
}
|
|
93
95
|
verbose(message, context) {
|
|
94
96
|
if (this.shouldLog('verbose')) {
|
|
95
|
-
this.nestLogger.verbose(message, context
|
|
97
|
+
this.nestLogger.verbose(message, context ?? this.context);
|
|
96
98
|
}
|
|
97
99
|
}
|
|
98
100
|
logExecutionTime(methodName, startTime, context) {
|
|
99
|
-
|
|
100
|
-
|
|
101
|
+
if (this.shouldLog('debug')) {
|
|
102
|
+
const executionTime = Date.now() - startTime;
|
|
103
|
+
this.nestLogger.debug(`${methodName} executed in ${executionTime}ms`, context ?? this.context);
|
|
104
|
+
}
|
|
101
105
|
}
|
|
102
106
|
logWithLevel(level, message, context) {
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
case 'debug':
|
|
114
|
-
this.debug(message, context);
|
|
115
|
-
break;
|
|
116
|
-
case 'verbose':
|
|
117
|
-
this.verbose(message, context);
|
|
118
|
-
break;
|
|
119
|
-
}
|
|
107
|
+
if (!this.shouldLog(level))
|
|
108
|
+
return;
|
|
109
|
+
const methods = {
|
|
110
|
+
error: () => this.error(message, undefined, context),
|
|
111
|
+
warn: () => this.warn(message, context),
|
|
112
|
+
info: () => this.log(message, context),
|
|
113
|
+
debug: () => this.debug(message, context),
|
|
114
|
+
verbose: () => this.verbose(message, context),
|
|
115
|
+
};
|
|
116
|
+
methods[level]();
|
|
120
117
|
}
|
|
121
118
|
createChildLogger(childContext, config) {
|
|
122
119
|
const combinedContext = `${this.context}:${childContext}`;
|
|
@@ -124,58 +121,32 @@ class TemporalLogger {
|
|
|
124
121
|
return new TemporalLogger(combinedContext, childConfig);
|
|
125
122
|
}
|
|
126
123
|
getConfig() {
|
|
127
|
-
return
|
|
124
|
+
return this.config;
|
|
128
125
|
}
|
|
129
126
|
isEnabled() {
|
|
130
|
-
return this.config.enableLogger
|
|
127
|
+
return this.config.enableLogger;
|
|
131
128
|
}
|
|
132
129
|
getLogLevel() {
|
|
133
|
-
return this.config.logLevel
|
|
130
|
+
return this.config.logLevel;
|
|
134
131
|
}
|
|
135
132
|
getContext() {
|
|
136
133
|
return this.context;
|
|
137
134
|
}
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
this.config.logLevel = newConfig.logLevel ?? this.config.logLevel;
|
|
135
|
+
isLevelEnabled(level) {
|
|
136
|
+
return this.shouldLog(level);
|
|
141
137
|
}
|
|
142
138
|
}
|
|
143
139
|
exports.TemporalLogger = TemporalLogger;
|
|
140
|
+
TemporalLogger.LOG_LEVELS = [
|
|
141
|
+
'error',
|
|
142
|
+
'warn',
|
|
143
|
+
'info',
|
|
144
|
+
'debug',
|
|
145
|
+
'verbose',
|
|
146
|
+
];
|
|
147
|
+
TemporalLogger.LEVEL_INDICES = new Map(TemporalLogger.LOG_LEVELS.map((level, index) => [level, index]));
|
|
144
148
|
function createLogger(context, config) {
|
|
145
|
-
|
|
146
|
-
return manager.createLogger(context, config);
|
|
147
|
-
}
|
|
148
|
-
function LogExecution(_logLevel = 'debug') {
|
|
149
|
-
return function (target, propertyName, descriptor) {
|
|
150
|
-
const method = descriptor.value;
|
|
151
|
-
descriptor.value = function (...args) {
|
|
152
|
-
const logger = createLogger(target.constructor.name);
|
|
153
|
-
const startTime = Date.now();
|
|
154
|
-
try {
|
|
155
|
-
const result = method.apply(this, args);
|
|
156
|
-
if (result instanceof Promise) {
|
|
157
|
-
return result
|
|
158
|
-
.then((res) => {
|
|
159
|
-
logger.logExecutionTime(propertyName, startTime);
|
|
160
|
-
return res;
|
|
161
|
-
})
|
|
162
|
-
.catch((error) => {
|
|
163
|
-
logger.error(`Error in ${propertyName}:`, error);
|
|
164
|
-
throw error;
|
|
165
|
-
});
|
|
166
|
-
}
|
|
167
|
-
else {
|
|
168
|
-
logger.logExecutionTime(propertyName, startTime);
|
|
169
|
-
return result;
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
catch (error) {
|
|
173
|
-
logger.error(`Error in ${propertyName}:`, error);
|
|
174
|
-
throw error;
|
|
175
|
-
}
|
|
176
|
-
};
|
|
177
|
-
return descriptor;
|
|
178
|
-
};
|
|
149
|
+
return TemporalLoggerManager.getInstance().createLogger(context, config);
|
|
179
150
|
}
|
|
180
151
|
class LoggerUtils {
|
|
181
152
|
static logServiceInit(logger, serviceName, config) {
|
package/dist/utils/logger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/metadata.d.ts
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
import { ActivityMethodOptions, ActivityOptions
|
|
1
|
+
import { ActivityMethodOptions, ActivityOptions } from '../interfaces';
|
|
2
2
|
export declare function isActivity(target: object): boolean;
|
|
3
3
|
export declare function getActivityMetadata(target: object): ActivityOptions | undefined;
|
|
4
4
|
export declare function isActivityMethod(target: object): boolean;
|
|
5
5
|
export declare function getActivityMethodMetadata(target: object): ActivityMethodOptions | undefined;
|
|
6
|
-
export declare function getParameterMetadata(target: object, propertyKey: string | symbol): WorkflowParameterMetadata[];
|
|
7
|
-
export declare function WorkflowParamDecorator(index?: number): ParameterDecorator;
|
package/dist/utils/metadata.js
CHANGED
|
@@ -4,35 +4,25 @@ exports.isActivity = isActivity;
|
|
|
4
4
|
exports.getActivityMetadata = getActivityMetadata;
|
|
5
5
|
exports.isActivityMethod = isActivityMethod;
|
|
6
6
|
exports.getActivityMethodMetadata = getActivityMethodMetadata;
|
|
7
|
-
exports.getParameterMetadata = getParameterMetadata;
|
|
8
|
-
exports.WorkflowParamDecorator = WorkflowParamDecorator;
|
|
9
7
|
const constants_1 = require("../constants");
|
|
10
8
|
function isActivity(target) {
|
|
9
|
+
if (!target)
|
|
10
|
+
return false;
|
|
11
11
|
return Reflect.hasMetadata(constants_1.TEMPORAL_ACTIVITY, target);
|
|
12
12
|
}
|
|
13
13
|
function getActivityMetadata(target) {
|
|
14
|
+
if (!target)
|
|
15
|
+
return undefined;
|
|
14
16
|
return Reflect.getMetadata(constants_1.TEMPORAL_ACTIVITY, target);
|
|
15
17
|
}
|
|
16
18
|
function isActivityMethod(target) {
|
|
19
|
+
if (!target)
|
|
20
|
+
return false;
|
|
17
21
|
return Reflect.hasMetadata(constants_1.TEMPORAL_ACTIVITY_METHOD, target);
|
|
18
22
|
}
|
|
19
23
|
function getActivityMethodMetadata(target) {
|
|
24
|
+
if (!target)
|
|
25
|
+
return undefined;
|
|
20
26
|
return Reflect.getMetadata(constants_1.TEMPORAL_ACTIVITY_METHOD, target);
|
|
21
27
|
}
|
|
22
|
-
function getParameterMetadata(target, propertyKey) {
|
|
23
|
-
return Reflect.getMetadata(constants_1.WORKFLOW_PARAMS_METADATA, target, propertyKey) || [];
|
|
24
|
-
}
|
|
25
|
-
function WorkflowParamDecorator(index) {
|
|
26
|
-
return (target, propertyKey, parameterIndex) => {
|
|
27
|
-
if (!propertyKey)
|
|
28
|
-
return;
|
|
29
|
-
const existingParams = Reflect.getMetadata(constants_1.WORKFLOW_PARAMS_METADATA, target, propertyKey) || [];
|
|
30
|
-
existingParams[parameterIndex] = {
|
|
31
|
-
type: 'param',
|
|
32
|
-
index: index !== undefined ? index : parameterIndex,
|
|
33
|
-
extractAll: index === undefined,
|
|
34
|
-
};
|
|
35
|
-
Reflect.defineMetadata(constants_1.WORKFLOW_PARAMS_METADATA, existingParams, target, propertyKey);
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
28
|
//# sourceMappingURL=metadata.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../src/utils/metadata.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../src/utils/metadata.ts"],"names":[],"mappings":";;AAiBA,gCAGC;AAiBD,kDAGC;AAQD,4CAGC;AAQD,8DAGC;AA9DD,4CAA2E;AAiB3E,SAAgB,UAAU,CAAC,MAAc;IACrC,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAC1B,OAAO,OAAO,CAAC,WAAW,CAAC,6BAAiB,EAAE,MAAM,CAAC,CAAC;AAC1D,CAAC;AAiBD,SAAgB,mBAAmB,CAAC,MAAc;IAC9C,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAC9B,OAAO,OAAO,CAAC,WAAW,CAAC,6BAAiB,EAAE,MAAM,CAAC,CAAC;AAC1D,CAAC;AAQD,SAAgB,gBAAgB,CAAC,MAAc;IAC3C,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAC1B,OAAO,OAAO,CAAC,WAAW,CAAC,oCAAwB,EAAE,MAAM,CAAC,CAAC;AACjE,CAAC;AAQD,SAAgB,yBAAyB,CAAC,MAAc;IACpD,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAC9B,OAAO,OAAO,CAAC,WAAW,CAAC,oCAAwB,EAAE,MAAM,CAAC,CAAC;AACjE,CAAC"}
|
|
@@ -1,2 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
export declare function
|
|
1
|
+
import 'reflect-metadata';
|
|
2
|
+
export declare function validateWorkflowId(workflowId: string): void;
|
|
3
|
+
export declare function validateSignalName(signalName: string): void;
|
|
4
|
+
export declare function validateQueryName(queryName: string): void;
|
|
5
|
+
export declare function validateWorkflowType(workflowType: string): void;
|
|
6
|
+
export declare function validateActivityName(activityName: string): void;
|
|
7
|
+
export declare class ServiceInitializationUtils {
|
|
8
|
+
static safeInitialize<T>(serviceName: string, logger: {
|
|
9
|
+
debug: (msg: string) => void;
|
|
10
|
+
info: (msg: string) => void;
|
|
11
|
+
warn: (msg: string) => void;
|
|
12
|
+
error: (msg: string) => void;
|
|
13
|
+
}, initFunction: () => Promise<T> | T, allowFailure?: boolean): Promise<T | null>;
|
|
14
|
+
}
|
|
15
|
+
export declare function isValidCronExpression(expression: string): boolean;
|
|
16
|
+
export declare function isValidIntervalExpression(expression: string): boolean;
|
package/dist/utils/validation.js
CHANGED
|
@@ -1,22 +1,116 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ServiceInitializationUtils = void 0;
|
|
4
|
+
exports.validateWorkflowId = validateWorkflowId;
|
|
5
|
+
exports.validateSignalName = validateSignalName;
|
|
6
|
+
exports.validateQueryName = validateQueryName;
|
|
7
|
+
exports.validateWorkflowType = validateWorkflowType;
|
|
8
|
+
exports.validateActivityName = validateActivityName;
|
|
3
9
|
exports.isValidCronExpression = isValidCronExpression;
|
|
4
10
|
exports.isValidIntervalExpression = isValidIntervalExpression;
|
|
5
|
-
|
|
6
|
-
|
|
11
|
+
require("reflect-metadata");
|
|
12
|
+
const logger_1 = require("./logger");
|
|
13
|
+
const logger = (0, logger_1.createLogger)('ValidationUtils');
|
|
14
|
+
function validateWorkflowId(workflowId) {
|
|
15
|
+
if (!workflowId || workflowId.trim().length === 0) {
|
|
16
|
+
logger.debug(`Workflow ID validation failed: "${workflowId}"`);
|
|
17
|
+
throw new Error('Workflow ID is required and cannot be empty');
|
|
18
|
+
}
|
|
19
|
+
logger.debug(`Workflow ID validation passed: "${workflowId}"`);
|
|
20
|
+
}
|
|
21
|
+
function validateSignalName(signalName) {
|
|
22
|
+
if (!signalName || signalName.trim().length === 0) {
|
|
23
|
+
logger.debug(`Signal name validation failed: "${signalName}"`);
|
|
24
|
+
throw new Error('Signal name is required and cannot be empty');
|
|
25
|
+
}
|
|
26
|
+
if (signalName.includes(' ') || signalName.includes('\n') || signalName.includes('\t')) {
|
|
27
|
+
logger.debug(`Signal name validation failed: "${signalName}" (contains whitespace)`);
|
|
28
|
+
throw new Error(`Invalid signal name: "${signalName}". Signal names cannot contain whitespace.`);
|
|
29
|
+
}
|
|
30
|
+
logger.debug(`Signal name validation passed: "${signalName}"`);
|
|
31
|
+
}
|
|
32
|
+
function validateQueryName(queryName) {
|
|
33
|
+
if (!queryName || queryName.trim().length === 0) {
|
|
34
|
+
logger.debug(`Query name validation failed: "${queryName}"`);
|
|
35
|
+
throw new Error('Query name is required and cannot be empty');
|
|
36
|
+
}
|
|
37
|
+
if (queryName.includes(' ') || queryName.includes('\n') || queryName.includes('\t')) {
|
|
38
|
+
logger.debug(`Query name validation failed: "${queryName}" (contains whitespace)`);
|
|
39
|
+
throw new Error(`Invalid query name: "${queryName}". Query names cannot contain whitespace.`);
|
|
40
|
+
}
|
|
41
|
+
logger.debug(`Query name validation passed: "${queryName}"`);
|
|
42
|
+
}
|
|
43
|
+
function validateWorkflowType(workflowType) {
|
|
44
|
+
if (!workflowType || workflowType.trim().length === 0) {
|
|
45
|
+
logger.debug(`Workflow type validation failed: "${workflowType}"`);
|
|
46
|
+
throw new Error('Workflow type is required and cannot be empty');
|
|
47
|
+
}
|
|
48
|
+
logger.debug(`Workflow type validation passed: "${workflowType}"`);
|
|
49
|
+
}
|
|
50
|
+
function validateActivityName(activityName) {
|
|
51
|
+
if (!activityName || activityName.trim().length === 0) {
|
|
52
|
+
logger.debug(`Activity name validation failed: "${activityName}"`);
|
|
53
|
+
throw new Error('Activity name is required and cannot be empty');
|
|
54
|
+
}
|
|
55
|
+
logger.debug(`Activity name validation passed: "${activityName}"`);
|
|
56
|
+
}
|
|
57
|
+
class ServiceInitializationUtils {
|
|
58
|
+
static async safeInitialize(serviceName, logger, initFunction, allowFailure = true) {
|
|
59
|
+
try {
|
|
60
|
+
logger.debug(`Initializing ${serviceName}...`);
|
|
61
|
+
const result = await initFunction();
|
|
62
|
+
logger.info(`${serviceName} initialized successfully`);
|
|
63
|
+
return result;
|
|
64
|
+
}
|
|
65
|
+
catch (error) {
|
|
66
|
+
if (allowFailure) {
|
|
67
|
+
logger.warn(`${serviceName} initialization failed - continuing in degraded mode: ${error.message}`);
|
|
68
|
+
return null;
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
logger.error(`${serviceName} initialization failed: ${error.message}`);
|
|
72
|
+
throw error;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
exports.ServiceInitializationUtils = ServiceInitializationUtils;
|
|
78
|
+
function isValidCronExpression(expression) {
|
|
79
|
+
if (!expression || typeof expression !== 'string') {
|
|
80
|
+
return false;
|
|
81
|
+
}
|
|
82
|
+
const parts = expression
|
|
83
|
+
.trim()
|
|
84
|
+
.split(/\s+/)
|
|
85
|
+
.filter((part) => part.length > 0);
|
|
86
|
+
if (parts.length < 5 || parts.length > 6) {
|
|
7
87
|
return false;
|
|
8
88
|
}
|
|
9
|
-
|
|
10
|
-
if (parts.length !== 5 && parts.length !== 6) {
|
|
89
|
+
if (/^\s\d/.test(expression) && !/^\s\s+/.test(expression)) {
|
|
11
90
|
return false;
|
|
12
91
|
}
|
|
13
|
-
|
|
92
|
+
const validCronRegex = /^[\d\*\-,\/\?LW]+$/;
|
|
93
|
+
for (let i = 0; i < parts.length; i++) {
|
|
94
|
+
const part = parts[i];
|
|
95
|
+
if (/[@&#]/.test(part)) {
|
|
96
|
+
return false;
|
|
97
|
+
}
|
|
98
|
+
if (part !== '*' && !validCronRegex.test(part)) {
|
|
99
|
+
return false;
|
|
100
|
+
}
|
|
101
|
+
if (parts.length === 6 && i === 0) {
|
|
102
|
+
if (part !== '*' && /^\d+$/.test(part) && parseInt(part, 10) > 59) {
|
|
103
|
+
return false;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
return true;
|
|
14
108
|
}
|
|
15
|
-
function isValidIntervalExpression(
|
|
16
|
-
if (!
|
|
109
|
+
function isValidIntervalExpression(expression) {
|
|
110
|
+
if (!expression || typeof expression !== 'string') {
|
|
17
111
|
return false;
|
|
18
112
|
}
|
|
19
|
-
const
|
|
20
|
-
return
|
|
113
|
+
const intervalRegex = /^\d+(ms|[smhd])$/;
|
|
114
|
+
return intervalRegex.test(expression.trim());
|
|
21
115
|
}
|
|
22
116
|
//# sourceMappingURL=validation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/utils/validation.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/utils/validation.ts"],"names":[],"mappings":";;;AAWA,gDAMC;AAQD,gDAcC;AAQD,8CAcC;AAQD,oDAMC;AAQD,oDAMC;AA4CD,sDAmDC;AAOD,8DASC;AAxMD,4BAA0B;AAC1B,qCAAwC;AAExC,MAAM,MAAM,GAAG,IAAA,qBAAY,EAAC,iBAAiB,CAAC,CAAC;AAQ/C,SAAgB,kBAAkB,CAAC,UAAkB;IACjD,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChD,MAAM,CAAC,KAAK,CAAC,mCAAmC,UAAU,GAAG,CAAC,CAAC;QAC/D,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IACnE,CAAC;IACD,MAAM,CAAC,KAAK,CAAC,mCAAmC,UAAU,GAAG,CAAC,CAAC;AACnE,CAAC;AAQD,SAAgB,kBAAkB,CAAC,UAAkB;IACjD,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChD,MAAM,CAAC,KAAK,CAAC,mCAAmC,UAAU,GAAG,CAAC,CAAC;QAC/D,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IACnE,CAAC;IAED,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACrF,MAAM,CAAC,KAAK,CAAC,mCAAmC,UAAU,yBAAyB,CAAC,CAAC;QACrF,MAAM,IAAI,KAAK,CACX,yBAAyB,UAAU,4CAA4C,CAClF,CAAC;IACN,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,mCAAmC,UAAU,GAAG,CAAC,CAAC;AACnE,CAAC;AAQD,SAAgB,iBAAiB,CAAC,SAAiB;IAC/C,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9C,MAAM,CAAC,KAAK,CAAC,kCAAkC,SAAS,GAAG,CAAC,CAAC;QAC7D,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAClE,CAAC;IAED,IAAI,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAClF,MAAM,CAAC,KAAK,CAAC,kCAAkC,SAAS,yBAAyB,CAAC,CAAC;QACnF,MAAM,IAAI,KAAK,CACX,wBAAwB,SAAS,2CAA2C,CAC/E,CAAC;IACN,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,kCAAkC,SAAS,GAAG,CAAC,CAAC;AACjE,CAAC;AAQD,SAAgB,oBAAoB,CAAC,YAAoB;IACrD,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpD,MAAM,CAAC,KAAK,CAAC,qCAAqC,YAAY,GAAG,CAAC,CAAC;QACnE,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACrE,CAAC;IACD,MAAM,CAAC,KAAK,CAAC,qCAAqC,YAAY,GAAG,CAAC,CAAC;AACvE,CAAC;AAQD,SAAgB,oBAAoB,CAAC,YAAoB;IACrD,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpD,MAAM,CAAC,KAAK,CAAC,qCAAqC,YAAY,GAAG,CAAC,CAAC;QACnE,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACrE,CAAC;IACD,MAAM,CAAC,KAAK,CAAC,qCAAqC,YAAY,GAAG,CAAC,CAAC;AACvE,CAAC;AAKD,MAAa,0BAA0B;IAInC,MAAM,CAAC,KAAK,CAAC,cAAc,CACvB,WAAmB,EACnB,MAKC,EACD,YAAkC,EAClC,eAAwB,IAAI;QAE5B,IAAI,CAAC;YACD,MAAM,CAAC,KAAK,CAAC,gBAAgB,WAAW,KAAK,CAAC,CAAC;YAC/C,MAAM,MAAM,GAAG,MAAM,YAAY,EAAE,CAAC;YACpC,MAAM,CAAC,IAAI,CAAC,GAAG,WAAW,2BAA2B,CAAC,CAAC;YACvD,OAAO,MAAM,CAAC;QAClB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,IAAI,YAAY,EAAE,CAAC;gBACf,MAAM,CAAC,IAAI,CACP,GAAG,WAAW,yDAA0D,KAAe,CAAC,OAAO,EAAE,CACpG,CAAC;gBACF,OAAO,IAAI,CAAC;YAChB,CAAC;iBAAM,CAAC;gBACJ,MAAM,CAAC,KAAK,CAAC,GAAG,WAAW,2BAA4B,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;gBAClF,MAAM,KAAK,CAAC;YAChB,CAAC;QACL,CAAC;IACL,CAAC;CACJ;AAhCD,gEAgCC;AAOD,SAAgB,qBAAqB,CAAC,UAAkB;IACpD,IAAI,CAAC,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;QAChD,OAAO,KAAK,CAAC;IACjB,CAAC;IAGD,MAAM,KAAK,GAAG,UAAU;SACnB,IAAI,EAAE;SACN,KAAK,CAAC,KAAK,CAAC;SACZ,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAEvC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvC,OAAO,KAAK,CAAC;IACjB,CAAC;IAKD,IAAI,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QACzD,OAAO,KAAK,CAAC;IACjB,CAAC;IAMD,MAAM,cAAc,GAAG,oBAAoB,CAAC;IAG5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAGtB,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACrB,OAAO,KAAK,CAAC;QACjB,CAAC;QAGD,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7C,OAAO,KAAK,CAAC;QACjB,CAAC;QAGD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAChC,IAAI,IAAI,KAAK,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC;gBAChE,OAAO,KAAK,CAAC;YACjB,CAAC;QACL,CAAC;IACL,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAOD,SAAgB,yBAAyB,CAAC,UAAkB;IACxD,IAAI,CAAC,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;QAChD,OAAO,KAAK,CAAC;IACjB,CAAC;IAID,MAAM,aAAa,GAAG,kBAAkB,CAAC;IACzC,OAAO,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;AACjD,CAAC"}
|