digitaltwin-core 0.14.2 → 1.0.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/LICENSE +20 -20
- package/README.md +494 -359
- package/dist/auth/apisix_parser.d.ts +141 -0
- package/dist/auth/apisix_parser.d.ts.map +1 -0
- package/dist/auth/apisix_parser.js +161 -0
- package/dist/auth/apisix_parser.js.map +1 -0
- package/dist/auth/auth_config.d.ts +126 -0
- package/dist/auth/auth_config.d.ts.map +1 -0
- package/dist/auth/auth_config.js +169 -0
- package/dist/auth/auth_config.js.map +1 -0
- package/dist/auth/auth_provider.d.ts +118 -0
- package/dist/auth/auth_provider.d.ts.map +1 -0
- package/dist/auth/auth_provider.js +8 -0
- package/dist/auth/auth_provider.js.map +1 -0
- package/dist/auth/auth_provider_factory.d.ts +91 -0
- package/dist/auth/auth_provider_factory.d.ts.map +1 -0
- package/dist/auth/auth_provider_factory.js +146 -0
- package/dist/auth/auth_provider_factory.js.map +1 -0
- package/dist/auth/index.d.ts +8 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/index.js +7 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/auth/providers/gateway_auth_provider.d.ts +78 -0
- package/dist/auth/providers/gateway_auth_provider.d.ts.map +1 -0
- package/dist/auth/providers/gateway_auth_provider.js +109 -0
- package/dist/auth/providers/gateway_auth_provider.js.map +1 -0
- package/dist/auth/providers/index.d.ts +4 -0
- package/dist/auth/providers/index.d.ts.map +1 -0
- package/dist/auth/providers/index.js +4 -0
- package/dist/auth/providers/index.js.map +1 -0
- package/dist/auth/providers/jwt_auth_provider.d.ts +91 -0
- package/dist/auth/providers/jwt_auth_provider.d.ts.map +1 -0
- package/dist/auth/providers/jwt_auth_provider.js +204 -0
- package/dist/auth/providers/jwt_auth_provider.js.map +1 -0
- package/dist/auth/providers/no_auth_provider.d.ts +61 -0
- package/dist/auth/providers/no_auth_provider.d.ts.map +1 -0
- package/dist/auth/providers/no_auth_provider.js +76 -0
- package/dist/auth/providers/no_auth_provider.js.map +1 -0
- package/dist/auth/types.d.ts +100 -0
- package/dist/auth/types.d.ts.map +1 -0
- package/dist/auth/types.js +2 -0
- package/dist/auth/types.js.map +1 -0
- package/dist/auth/user_service.d.ts +86 -0
- package/dist/auth/user_service.d.ts.map +1 -0
- package/dist/auth/user_service.js +237 -0
- package/dist/auth/user_service.js.map +1 -0
- package/dist/components/assets_manager.d.ts +662 -0
- package/dist/components/assets_manager.d.ts.map +1 -0
- package/dist/components/assets_manager.js +1537 -0
- package/dist/components/assets_manager.js.map +1 -0
- package/dist/components/async_upload.d.ts +20 -0
- package/dist/components/async_upload.d.ts.map +1 -0
- package/dist/components/async_upload.js +10 -0
- package/dist/components/async_upload.js.map +1 -0
- package/dist/components/collector.d.ts +203 -0
- package/dist/components/collector.d.ts.map +1 -0
- package/dist/components/collector.js +214 -0
- package/dist/components/collector.js.map +1 -0
- package/dist/components/custom_table_manager.d.ts +503 -0
- package/dist/components/custom_table_manager.d.ts.map +1 -0
- package/dist/components/custom_table_manager.js +1023 -0
- package/dist/components/custom_table_manager.js.map +1 -0
- package/dist/components/global_assets_handler.d.ts +63 -0
- package/dist/components/global_assets_handler.d.ts.map +1 -0
- package/dist/components/global_assets_handler.js +127 -0
- package/dist/components/global_assets_handler.js.map +1 -0
- package/dist/components/handler.d.ts +104 -0
- package/dist/components/handler.d.ts.map +1 -0
- package/dist/components/handler.js +110 -0
- package/dist/components/handler.js.map +1 -0
- package/dist/components/harvester.d.ts +182 -0
- package/dist/components/harvester.d.ts.map +1 -0
- package/dist/components/harvester.js +406 -0
- package/dist/components/harvester.js.map +1 -0
- package/dist/components/index.d.ts +11 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/index.js +9 -0
- package/dist/components/index.js.map +1 -0
- package/dist/components/interfaces.d.ts +126 -0
- package/dist/components/interfaces.d.ts.map +1 -0
- package/dist/components/interfaces.js +8 -0
- package/dist/components/interfaces.js.map +1 -0
- package/dist/components/map_manager.d.ts +61 -0
- package/dist/components/map_manager.d.ts.map +1 -0
- package/dist/components/map_manager.js +242 -0
- package/dist/components/map_manager.js.map +1 -0
- package/dist/components/tileset_manager.d.ts +125 -0
- package/dist/components/tileset_manager.d.ts.map +1 -0
- package/dist/components/tileset_manager.js +623 -0
- package/dist/components/tileset_manager.js.map +1 -0
- package/dist/components/types.d.ts +226 -0
- package/dist/components/types.d.ts.map +1 -0
- package/dist/components/types.js +8 -0
- package/dist/components/types.js.map +1 -0
- package/dist/database/adapters/knex_database_adapter.d.ts +97 -0
- package/dist/database/adapters/knex_database_adapter.d.ts.map +1 -0
- package/dist/database/adapters/knex_database_adapter.js +729 -0
- package/dist/database/adapters/knex_database_adapter.js.map +1 -0
- package/dist/database/database_adapter.d.ts +262 -0
- package/dist/database/database_adapter.d.ts.map +1 -0
- package/dist/database/database_adapter.js +46 -0
- package/dist/database/database_adapter.js.map +1 -0
- package/dist/engine/digital_twin_engine.d.ts +295 -0
- package/dist/engine/digital_twin_engine.d.ts.map +1 -0
- package/dist/engine/digital_twin_engine.js +907 -0
- package/dist/engine/digital_twin_engine.js.map +1 -0
- package/dist/engine/endpoints.d.ts +47 -0
- package/dist/engine/endpoints.d.ts.map +1 -0
- package/dist/engine/endpoints.js +88 -0
- package/dist/engine/endpoints.js.map +1 -0
- package/dist/engine/error_handler.d.ts +20 -0
- package/dist/engine/error_handler.d.ts.map +1 -0
- package/dist/engine/error_handler.js +69 -0
- package/dist/engine/error_handler.js.map +1 -0
- package/dist/engine/events.d.ts +93 -0
- package/dist/engine/events.d.ts.map +1 -0
- package/dist/engine/events.js +71 -0
- package/dist/engine/events.js.map +1 -0
- package/dist/engine/health.d.ts +112 -0
- package/dist/engine/health.d.ts.map +1 -0
- package/dist/engine/health.js +190 -0
- package/dist/engine/health.js.map +1 -0
- package/dist/engine/initializer.d.ts +62 -0
- package/dist/engine/initializer.d.ts.map +1 -0
- package/dist/engine/initializer.js +108 -0
- package/dist/engine/initializer.js.map +1 -0
- package/dist/engine/queue_manager.d.ts +87 -0
- package/dist/engine/queue_manager.d.ts.map +1 -0
- package/dist/engine/queue_manager.js +196 -0
- package/dist/engine/queue_manager.js.map +1 -0
- package/dist/engine/scheduler.d.ts +30 -0
- package/dist/engine/scheduler.d.ts.map +1 -0
- package/dist/engine/scheduler.js +378 -0
- package/dist/engine/scheduler.js.map +1 -0
- package/dist/engine/upload_processor.d.ts +36 -0
- package/dist/engine/upload_processor.d.ts.map +1 -0
- package/dist/engine/upload_processor.js +113 -0
- package/dist/engine/upload_processor.js.map +1 -0
- package/dist/env/env.d.ts +134 -0
- package/dist/env/env.d.ts.map +1 -0
- package/dist/env/env.js +177 -0
- package/dist/env/env.js.map +1 -0
- package/dist/errors/index.d.ts +94 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/errors/index.js +149 -0
- package/dist/errors/index.js.map +1 -0
- package/dist/index.d.ts +55 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +65 -0
- package/dist/index.js.map +1 -0
- package/dist/openapi/generator.d.ts +93 -0
- package/dist/openapi/generator.d.ts.map +1 -0
- package/dist/openapi/generator.js +293 -0
- package/dist/openapi/generator.js.map +1 -0
- package/dist/openapi/index.d.ts +9 -0
- package/dist/openapi/index.d.ts.map +1 -0
- package/dist/openapi/index.js +9 -0
- package/dist/openapi/index.js.map +1 -0
- package/dist/openapi/types.d.ts +182 -0
- package/dist/openapi/types.d.ts.map +1 -0
- package/dist/openapi/types.js +16 -0
- package/dist/openapi/types.js.map +1 -0
- package/dist/storage/adapters/local_storage_service.d.ts +57 -0
- package/dist/storage/adapters/local_storage_service.d.ts.map +1 -0
- package/dist/storage/adapters/local_storage_service.js +132 -0
- package/dist/storage/adapters/local_storage_service.js.map +1 -0
- package/dist/storage/adapters/ovh_storage_service.d.ts +72 -0
- package/dist/storage/adapters/ovh_storage_service.d.ts.map +1 -0
- package/dist/storage/adapters/ovh_storage_service.js +205 -0
- package/dist/storage/adapters/ovh_storage_service.js.map +1 -0
- package/dist/storage/storage_factory.d.ts +14 -0
- package/dist/storage/storage_factory.d.ts.map +1 -0
- package/dist/storage/storage_factory.js +43 -0
- package/dist/storage/storage_factory.js.map +1 -0
- package/dist/storage/storage_service.d.ts +163 -0
- package/dist/storage/storage_service.d.ts.map +1 -0
- package/dist/storage/storage_service.js +58 -0
- package/dist/storage/storage_service.js.map +1 -0
- package/dist/types/data_record.d.ts +123 -0
- package/dist/types/data_record.d.ts.map +1 -0
- package/dist/types/data_record.js +8 -0
- package/dist/types/data_record.js.map +1 -0
- package/dist/utils/graceful_shutdown.d.ts +44 -0
- package/dist/utils/graceful_shutdown.d.ts.map +1 -0
- package/dist/utils/graceful_shutdown.js +79 -0
- package/dist/utils/graceful_shutdown.js.map +1 -0
- package/dist/utils/http_responses.d.ts +175 -0
- package/dist/utils/http_responses.d.ts.map +1 -0
- package/dist/utils/http_responses.js +216 -0
- package/dist/utils/http_responses.js.map +1 -0
- package/dist/utils/index.d.ts +8 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +6 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/logger.d.ts +74 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +92 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/map_to_data_record.d.ts +10 -0
- package/dist/utils/map_to_data_record.d.ts.map +1 -0
- package/dist/utils/map_to_data_record.js +36 -0
- package/dist/utils/map_to_data_record.js.map +1 -0
- package/dist/utils/safe_async.d.ts +50 -0
- package/dist/utils/safe_async.d.ts.map +1 -0
- package/dist/utils/safe_async.js +90 -0
- package/dist/utils/safe_async.js.map +1 -0
- package/dist/utils/servable_endpoint.d.ts +63 -0
- package/dist/utils/servable_endpoint.d.ts.map +1 -0
- package/dist/utils/servable_endpoint.js +67 -0
- package/dist/utils/servable_endpoint.js.map +1 -0
- package/dist/utils/zip_utils.d.ts +66 -0
- package/dist/utils/zip_utils.d.ts.map +1 -0
- package/dist/utils/zip_utils.js +169 -0
- package/dist/utils/zip_utils.js.map +1 -0
- package/dist/validation/index.d.ts +3 -0
- package/dist/validation/index.d.ts.map +1 -0
- package/dist/validation/index.js +7 -0
- package/dist/validation/index.js.map +1 -0
- package/dist/validation/schemas.d.ts +273 -0
- package/dist/validation/schemas.d.ts.map +1 -0
- package/dist/validation/schemas.js +82 -0
- package/dist/validation/schemas.js.map +1 -0
- package/dist/validation/validate.d.ts +49 -0
- package/dist/validation/validate.d.ts.map +1 -0
- package/dist/validation/validate.js +110 -0
- package/dist/validation/validate.js.map +1 -0
- package/package.json +23 -13
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"digital_twin_engine.js","sourceRoot":"","sources":["../../src/engine/digital_twin_engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview HTTP endpoint exposure utilities for digital twin components
|
|
3
|
+
*
|
|
4
|
+
* This module handles the automatic registration of HTTP endpoints from servable
|
|
5
|
+
* components to the Express router, enabling RESTful API access to digital twin data.
|
|
6
|
+
*/
|
|
7
|
+
import type { Router } from 'ultimate-express';
|
|
8
|
+
import type { Collector } from '../components/collector.js';
|
|
9
|
+
import type { Harvester } from '../components/harvester.js';
|
|
10
|
+
import type { Handler } from '../components/handler.js';
|
|
11
|
+
import type { AssetsManager, CustomTableManager } from '../components/index.js';
|
|
12
|
+
/**
|
|
13
|
+
* Supported HTTP methods for component endpoints.
|
|
14
|
+
*
|
|
15
|
+
* These methods correspond to standard REST operations:
|
|
16
|
+
* - get: Retrieve data
|
|
17
|
+
* - post: Create new resources
|
|
18
|
+
* - put: Update existing resources (full update)
|
|
19
|
+
* - patch: Update existing resources (partial update)
|
|
20
|
+
* - delete: Remove resources
|
|
21
|
+
*/
|
|
22
|
+
export type HttpMethod = 'get' | 'post' | 'put' | 'delete' | 'patch';
|
|
23
|
+
/**
|
|
24
|
+
* Automatically registers HTTP endpoints from servable components to an Express router.
|
|
25
|
+
*
|
|
26
|
+
* This function iterates through all provided components, extracts their endpoints,
|
|
27
|
+
* and registers them with the Express router. Each endpoint is wrapped with error
|
|
28
|
+
* handling to ensure robust API behavior.
|
|
29
|
+
*
|
|
30
|
+
* @param router - Express router instance to register endpoints with
|
|
31
|
+
* @param servables - Array of components that expose HTTP endpoints
|
|
32
|
+
*
|
|
33
|
+
* @throws {Error} When an unsupported HTTP method is encountered
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* ```typescript
|
|
37
|
+
* const router = express.Router();
|
|
38
|
+
* const components = [collector1, harvester1, assetsManager1];
|
|
39
|
+
*
|
|
40
|
+
* await exposeEndpoints(router, components);
|
|
41
|
+
*
|
|
42
|
+
* // Now the router has all endpoints from the components registered
|
|
43
|
+
* app.use('/api', router);
|
|
44
|
+
* ```
|
|
45
|
+
*/
|
|
46
|
+
export declare function exposeEndpoints(router: Router, servables: Array<Collector | Harvester | Handler | AssetsManager | CustomTableManager>): Promise<void>;
|
|
47
|
+
//# sourceMappingURL=endpoints.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"endpoints.d.ts","sourceRoot":"","sources":["../../src/engine/endpoints.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAA;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAA;AAC3D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAA;AAEvD,OAAO,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AAM/E;;;;;;;;;GASG;AACH,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,CAAA;AAsBpE;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAsB,eAAe,CACjC,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,aAAa,GAAG,kBAAkB,CAAC,GACvF,OAAO,CAAC,IAAI,CAAC,CA4Df"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview HTTP endpoint exposure utilities for digital twin components
|
|
3
|
+
*
|
|
4
|
+
* This module handles the automatic registration of HTTP endpoints from servable
|
|
5
|
+
* components to the Express router, enabling RESTful API access to digital twin data.
|
|
6
|
+
*/
|
|
7
|
+
import { DigitalTwinError } from '../errors/index.js';
|
|
8
|
+
import { Logger } from '../utils/logger.js';
|
|
9
|
+
const logger = new Logger('Endpoints');
|
|
10
|
+
/**
|
|
11
|
+
* Automatically registers HTTP endpoints from servable components to an Express router.
|
|
12
|
+
*
|
|
13
|
+
* This function iterates through all provided components, extracts their endpoints,
|
|
14
|
+
* and registers them with the Express router. Each endpoint is wrapped with error
|
|
15
|
+
* handling to ensure robust API behavior.
|
|
16
|
+
*
|
|
17
|
+
* @param router - Express router instance to register endpoints with
|
|
18
|
+
* @param servables - Array of components that expose HTTP endpoints
|
|
19
|
+
*
|
|
20
|
+
* @throws {Error} When an unsupported HTTP method is encountered
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* ```typescript
|
|
24
|
+
* const router = express.Router();
|
|
25
|
+
* const components = [collector1, harvester1, assetsManager1];
|
|
26
|
+
*
|
|
27
|
+
* await exposeEndpoints(router, components);
|
|
28
|
+
*
|
|
29
|
+
* // Now the router has all endpoints from the components registered
|
|
30
|
+
* app.use('/api', router);
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
export async function exposeEndpoints(router, servables) {
|
|
34
|
+
for (const servable of servables) {
|
|
35
|
+
const endpoints = servable.getEndpoints();
|
|
36
|
+
for (const ep of endpoints) {
|
|
37
|
+
const method = ep.method.toLowerCase();
|
|
38
|
+
if (typeof router[method] === 'function') {
|
|
39
|
+
// Register endpoint with error handling wrapper
|
|
40
|
+
router[method](ep.path, async (req, res) => {
|
|
41
|
+
try {
|
|
42
|
+
const result = await ep.handler(req);
|
|
43
|
+
res.status(result.status)
|
|
44
|
+
.header(result.headers || {})
|
|
45
|
+
.send(result.content);
|
|
46
|
+
}
|
|
47
|
+
catch (error) {
|
|
48
|
+
const requestId = req.headers['x-request-id'] || crypto.randomUUID();
|
|
49
|
+
// Log the error with context
|
|
50
|
+
logger.error(`[${requestId}] ${req.method} ${ep.path} - ${error instanceof Error ? error.message : String(error)}`, {
|
|
51
|
+
requestId,
|
|
52
|
+
method: req.method,
|
|
53
|
+
path: ep.path,
|
|
54
|
+
userId: req.headers['x-user-id'],
|
|
55
|
+
stack: error instanceof Error ? error.stack : undefined
|
|
56
|
+
});
|
|
57
|
+
// Handle DigitalTwinError with proper status code
|
|
58
|
+
if (error instanceof DigitalTwinError) {
|
|
59
|
+
res.status(error.statusCode).send({
|
|
60
|
+
...error.toJSON(),
|
|
61
|
+
requestId
|
|
62
|
+
});
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
// Generic error response
|
|
66
|
+
const isProduction = process.env.NODE_ENV === 'production';
|
|
67
|
+
res.status(500).send({
|
|
68
|
+
error: {
|
|
69
|
+
code: 'INTERNAL_ERROR',
|
|
70
|
+
message: isProduction
|
|
71
|
+
? 'Internal server error'
|
|
72
|
+
: error instanceof Error
|
|
73
|
+
? error.message
|
|
74
|
+
: String(error),
|
|
75
|
+
requestId,
|
|
76
|
+
timestamp: new Date().toISOString()
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
throw new Error(`Unsupported HTTP method: ${ep.method}`);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=endpoints.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"endpoints.js","sourceRoot":"","sources":["../../src/engine/endpoints.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Express error handling middleware
|
|
3
|
+
* Provides centralized error handling with logging and structured responses
|
|
4
|
+
*/
|
|
5
|
+
import type { Request, Response, NextFunction } from 'ultimate-express';
|
|
6
|
+
/**
|
|
7
|
+
* Express error handler middleware
|
|
8
|
+
* Must be registered after all routes
|
|
9
|
+
*/
|
|
10
|
+
export declare function errorHandler(error: Error, req: Request, res: Response, _next: NextFunction): void;
|
|
11
|
+
/**
|
|
12
|
+
* Wraps an async route handler to automatically catch errors
|
|
13
|
+
* and pass them to the error handling middleware
|
|
14
|
+
*/
|
|
15
|
+
export declare function asyncHandler<T>(handler: (req: Request, res: Response, next: NextFunction) => Promise<T>): (req: Request, res: Response, next: NextFunction) => void;
|
|
16
|
+
/**
|
|
17
|
+
* 404 handler for routes that don't exist
|
|
18
|
+
*/
|
|
19
|
+
export declare function notFoundHandler(req: Request, res: Response): void;
|
|
20
|
+
//# sourceMappingURL=error_handler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error_handler.d.ts","sourceRoot":"","sources":["../../src/engine/error_handler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAOvE;;;GAGG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,GAAG,IAAI,CAoCjG;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,KAAK,OAAO,CAAC,CAAC,CAAC,IAC5F,KAAK,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,KAAG,IAAI,CAGjE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,IAAI,CAWjE"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Express error handling middleware
|
|
3
|
+
* Provides centralized error handling with logging and structured responses
|
|
4
|
+
*/
|
|
5
|
+
import { randomUUID } from 'crypto';
|
|
6
|
+
import { DigitalTwinError } from '../errors/index.js';
|
|
7
|
+
import { Logger } from '../utils/logger.js';
|
|
8
|
+
const logger = new Logger('ErrorHandler');
|
|
9
|
+
/**
|
|
10
|
+
* Express error handler middleware
|
|
11
|
+
* Must be registered after all routes
|
|
12
|
+
*/
|
|
13
|
+
export function errorHandler(error, req, res, _next) {
|
|
14
|
+
const requestId = req.headers['x-request-id'] || randomUUID();
|
|
15
|
+
// Log the error with context
|
|
16
|
+
logger.error(`[${requestId}] ${req.method} ${req.path} - ${error.message}`, {
|
|
17
|
+
requestId,
|
|
18
|
+
method: req.method,
|
|
19
|
+
path: req.path,
|
|
20
|
+
userId: req.headers['x-user-id'],
|
|
21
|
+
stack: error.stack
|
|
22
|
+
});
|
|
23
|
+
// Don't send response if headers already sent
|
|
24
|
+
if (res.headersSent) {
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
if (error instanceof DigitalTwinError) {
|
|
28
|
+
res.status(error.statusCode).json({
|
|
29
|
+
...error.toJSON(),
|
|
30
|
+
requestId
|
|
31
|
+
});
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
// Unknown error - return generic response
|
|
35
|
+
const isProduction = process.env.NODE_ENV === 'production';
|
|
36
|
+
res.status(500).json({
|
|
37
|
+
error: {
|
|
38
|
+
code: 'INTERNAL_ERROR',
|
|
39
|
+
message: isProduction ? 'Internal server error' : error.message,
|
|
40
|
+
requestId,
|
|
41
|
+
timestamp: new Date().toISOString(),
|
|
42
|
+
...(!isProduction && { stack: error.stack })
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Wraps an async route handler to automatically catch errors
|
|
48
|
+
* and pass them to the error handling middleware
|
|
49
|
+
*/
|
|
50
|
+
export function asyncHandler(handler) {
|
|
51
|
+
return (req, res, next) => {
|
|
52
|
+
Promise.resolve(handler(req, res, next)).catch(next);
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* 404 handler for routes that don't exist
|
|
57
|
+
*/
|
|
58
|
+
export function notFoundHandler(req, res) {
|
|
59
|
+
const requestId = req.headers['x-request-id'] || randomUUID();
|
|
60
|
+
res.status(404).json({
|
|
61
|
+
error: {
|
|
62
|
+
code: 'NOT_FOUND',
|
|
63
|
+
message: `Route ${req.method} ${req.path} not found`,
|
|
64
|
+
requestId,
|
|
65
|
+
timestamp: new Date().toISOString()
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=error_handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error_handler.js","sourceRoot":"","sources":["../../src/engine/error_handler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AACnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAE3C,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,cAAc,CAAC,CAAA;AAEzC;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,KAAY,EAAE,GAAY,EAAE,GAAa,EAAE,KAAmB;IACvF,MAAM,SAAS,GAAI,GAAG,CAAC,OAAO,CAAC,cAAc,CAAY,IAAI,UAAU,EAAE,CAAA;IAEzE,6BAA6B;IAC7B,MAAM,CAAC,KAAK,CAAC,IAAI,SAAS,KAAK,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,IAAI,MAAM,KAAK,CAAC,OAAO,EAAE,EAAE;QACxE,SAAS;QACT,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC;QAChC,KAAK,EAAE,KAAK,CAAC,KAAK;KACrB,CAAC,CAAA;IAEF,8CAA8C;IAC9C,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;QAClB,OAAM;IACV,CAAC;IAED,IAAI,KAAK,YAAY,gBAAgB,EAAE,CAAC;QACpC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC;YAC9B,GAAG,KAAK,CAAC,MAAM,EAAE;YACjB,SAAS;SACZ,CAAC,CAAA;QACF,OAAM;IACV,CAAC;IAED,0CAA0C;IAC1C,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,CAAA;IAC1D,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;QACjB,KAAK,EAAE;YACH,IAAI,EAAE,gBAAgB;YACtB,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO;YAC/D,SAAS;YACT,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,GAAG,CAAC,CAAC,YAAY,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;SAC/C;KACJ,CAAC,CAAA;AACN,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAI,OAAwE;IACpG,OAAO,CAAC,GAAY,EAAE,GAAa,EAAE,IAAkB,EAAQ,EAAE;QAC7D,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IACxD,CAAC,CAAA;AACL,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,GAAY,EAAE,GAAa;IACvD,MAAM,SAAS,GAAI,GAAG,CAAC,OAAO,CAAC,cAAc,CAAY,IAAI,UAAU,EAAE,CAAA;IAEzE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;QACjB,KAAK,EAAE;YACH,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,SAAS,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,IAAI,YAAY;YACpD,SAAS;YACT,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACtC;KACJ,CAAC,CAAA;AACN,CAAC"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Event system for digital twin engine component communication
|
|
3
|
+
*
|
|
4
|
+
* This module provides a centralized event bus for components to communicate
|
|
5
|
+
* asynchronously about their execution status and data processing events.
|
|
6
|
+
*/
|
|
7
|
+
import { EventEmitter } from 'events';
|
|
8
|
+
/**
|
|
9
|
+
* Interface representing an event emitted by digital twin components.
|
|
10
|
+
*
|
|
11
|
+
* Component events provide information about component execution lifecycle,
|
|
12
|
+
* allowing other parts of the system to react to component state changes.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```typescript
|
|
16
|
+
* const event: ComponentEvent = {
|
|
17
|
+
* type: 'collector:completed',
|
|
18
|
+
* componentName: 'weather-data-collector',
|
|
19
|
+
* timestamp: new Date(),
|
|
20
|
+
* data: { recordsProcessed: 150 }
|
|
21
|
+
* };
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
export interface ComponentEvent {
|
|
25
|
+
/** The type of event that occurred */
|
|
26
|
+
type: 'collector:completed' | 'harvester:completed';
|
|
27
|
+
/** Name of the component that emitted this event */
|
|
28
|
+
componentName: string;
|
|
29
|
+
/** Timestamp when the event occurred */
|
|
30
|
+
timestamp: Date;
|
|
31
|
+
/** Optional additional data related to the event */
|
|
32
|
+
data?: any;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Enhanced event bus for digital twin engine component communication.
|
|
36
|
+
*
|
|
37
|
+
* Extends Node.js EventEmitter to provide type-safe event handling
|
|
38
|
+
* for component lifecycle events. All components can emit events
|
|
39
|
+
* to notify other parts of the system about their execution status.
|
|
40
|
+
*
|
|
41
|
+
* @example
|
|
42
|
+
* ```typescript
|
|
43
|
+
* // Listen for collector completion events
|
|
44
|
+
* engineEventBus.on('collector:completed', (event) => {
|
|
45
|
+
* console.log(`Collector ${event.componentName} completed at ${event.timestamp}`);
|
|
46
|
+
* });
|
|
47
|
+
*
|
|
48
|
+
* // Emit an event from a component
|
|
49
|
+
* engineEventBus.emit('collector:completed', {
|
|
50
|
+
* type: 'collector:completed',
|
|
51
|
+
* componentName: 'my-collector',
|
|
52
|
+
* timestamp: new Date(),
|
|
53
|
+
* data: { success: true }
|
|
54
|
+
* });
|
|
55
|
+
* ```
|
|
56
|
+
*/
|
|
57
|
+
export declare class EngineEventBus extends EventEmitter {
|
|
58
|
+
/**
|
|
59
|
+
* Emits a component event to all registered listeners.
|
|
60
|
+
*
|
|
61
|
+
* @param event - The event name/type to emit
|
|
62
|
+
* @param data - The component event data
|
|
63
|
+
* @returns True if the event had listeners, false otherwise
|
|
64
|
+
*/
|
|
65
|
+
emit(event: string, data: ComponentEvent): boolean;
|
|
66
|
+
/**
|
|
67
|
+
* Registers a listener for component events.
|
|
68
|
+
*
|
|
69
|
+
* @param event - The event name/type to listen for
|
|
70
|
+
* @param listener - Function to call when the event is emitted
|
|
71
|
+
* @returns This event bus instance for method chaining
|
|
72
|
+
*/
|
|
73
|
+
on(event: string, listener: (data: ComponentEvent) => void): this;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Global event bus instance for the digital twin engine.
|
|
77
|
+
*
|
|
78
|
+
* This singleton provides a centralized communication channel
|
|
79
|
+
* for all components within the digital twin system.
|
|
80
|
+
*
|
|
81
|
+
* @example
|
|
82
|
+
* ```typescript
|
|
83
|
+
* // Listen for all collector events
|
|
84
|
+
* engineEventBus.on('collector:completed', (event) => {
|
|
85
|
+
* console.log(`Collector completed: ${event.componentName}`);
|
|
86
|
+
* });
|
|
87
|
+
*
|
|
88
|
+
* // Components emit events through this bus
|
|
89
|
+
* engineEventBus.emit('collector:completed', eventData);
|
|
90
|
+
* ```
|
|
91
|
+
*/
|
|
92
|
+
export declare const engineEventBus: EngineEventBus;
|
|
93
|
+
//# sourceMappingURL=events.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/engine/events.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AAErC;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,cAAc;IAC3B,sCAAsC;IACtC,IAAI,EAAE,qBAAqB,GAAG,qBAAqB,CAAA;IAEnD,oDAAoD;IACpD,aAAa,EAAE,MAAM,CAAA;IAErB,wCAAwC;IACxC,SAAS,EAAE,IAAI,CAAA;IAEf,oDAAoD;IACpD,IAAI,CAAC,EAAE,GAAG,CAAA;CACb;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,cAAe,SAAQ,YAAY;IAC5C;;;;;;OAMG;IACH,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO;IAIlD;;;;;;OAMG;IACH,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,GAAG,IAAI;CAGpE;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,cAAc,gBAAuB,CAAA"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Event system for digital twin engine component communication
|
|
3
|
+
*
|
|
4
|
+
* This module provides a centralized event bus for components to communicate
|
|
5
|
+
* asynchronously about their execution status and data processing events.
|
|
6
|
+
*/
|
|
7
|
+
import { EventEmitter } from 'events';
|
|
8
|
+
/**
|
|
9
|
+
* Enhanced event bus for digital twin engine component communication.
|
|
10
|
+
*
|
|
11
|
+
* Extends Node.js EventEmitter to provide type-safe event handling
|
|
12
|
+
* for component lifecycle events. All components can emit events
|
|
13
|
+
* to notify other parts of the system about their execution status.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```typescript
|
|
17
|
+
* // Listen for collector completion events
|
|
18
|
+
* engineEventBus.on('collector:completed', (event) => {
|
|
19
|
+
* console.log(`Collector ${event.componentName} completed at ${event.timestamp}`);
|
|
20
|
+
* });
|
|
21
|
+
*
|
|
22
|
+
* // Emit an event from a component
|
|
23
|
+
* engineEventBus.emit('collector:completed', {
|
|
24
|
+
* type: 'collector:completed',
|
|
25
|
+
* componentName: 'my-collector',
|
|
26
|
+
* timestamp: new Date(),
|
|
27
|
+
* data: { success: true }
|
|
28
|
+
* });
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
export class EngineEventBus extends EventEmitter {
|
|
32
|
+
/**
|
|
33
|
+
* Emits a component event to all registered listeners.
|
|
34
|
+
*
|
|
35
|
+
* @param event - The event name/type to emit
|
|
36
|
+
* @param data - The component event data
|
|
37
|
+
* @returns True if the event had listeners, false otherwise
|
|
38
|
+
*/
|
|
39
|
+
emit(event, data) {
|
|
40
|
+
return super.emit(event, data);
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Registers a listener for component events.
|
|
44
|
+
*
|
|
45
|
+
* @param event - The event name/type to listen for
|
|
46
|
+
* @param listener - Function to call when the event is emitted
|
|
47
|
+
* @returns This event bus instance for method chaining
|
|
48
|
+
*/
|
|
49
|
+
on(event, listener) {
|
|
50
|
+
return super.on(event, listener);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Global event bus instance for the digital twin engine.
|
|
55
|
+
*
|
|
56
|
+
* This singleton provides a centralized communication channel
|
|
57
|
+
* for all components within the digital twin system.
|
|
58
|
+
*
|
|
59
|
+
* @example
|
|
60
|
+
* ```typescript
|
|
61
|
+
* // Listen for all collector events
|
|
62
|
+
* engineEventBus.on('collector:completed', (event) => {
|
|
63
|
+
* console.log(`Collector completed: ${event.componentName}`);
|
|
64
|
+
* });
|
|
65
|
+
*
|
|
66
|
+
* // Components emit events through this bus
|
|
67
|
+
* engineEventBus.emit('collector:completed', eventData);
|
|
68
|
+
* ```
|
|
69
|
+
*/
|
|
70
|
+
export const engineEventBus = new EngineEventBus();
|
|
71
|
+
//# sourceMappingURL=events.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/engine/events.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AAgCrC;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,OAAO,cAAe,SAAQ,YAAY;IAC5C;;;;;;OAMG;IACH,IAAI,CAAC,KAAa,EAAE,IAAoB;QACpC,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;IAClC,CAAC;IAED;;;;;;OAMG;IACH,EAAE,CAAC,KAAa,EAAE,QAAwC;QACtD,OAAO,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;IACpC,CAAC;CACJ;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,cAAc,EAAE,CAAA"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import type { DatabaseAdapter } from '../database/database_adapter.js';
|
|
2
|
+
import type { QueueManager } from './queue_manager.js';
|
|
3
|
+
import type { StorageService } from '../storage/storage_service.js';
|
|
4
|
+
/**
|
|
5
|
+
* Individual health check result
|
|
6
|
+
*/
|
|
7
|
+
export interface HealthCheck {
|
|
8
|
+
/** Status of the check */
|
|
9
|
+
status: 'up' | 'down';
|
|
10
|
+
/** Response latency in milliseconds */
|
|
11
|
+
latency?: number;
|
|
12
|
+
/** Error message if status is down */
|
|
13
|
+
error?: string;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Component counts for health status
|
|
17
|
+
*/
|
|
18
|
+
export interface ComponentCounts {
|
|
19
|
+
collectors: number;
|
|
20
|
+
harvesters: number;
|
|
21
|
+
handlers: number;
|
|
22
|
+
assetsManagers: number;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Full health status response
|
|
26
|
+
*/
|
|
27
|
+
export interface HealthStatus {
|
|
28
|
+
/** Overall status */
|
|
29
|
+
status: 'healthy' | 'degraded' | 'unhealthy';
|
|
30
|
+
/** ISO timestamp of the check */
|
|
31
|
+
timestamp: string;
|
|
32
|
+
/** Process uptime in seconds */
|
|
33
|
+
uptime: number;
|
|
34
|
+
/** Package version if available */
|
|
35
|
+
version?: string;
|
|
36
|
+
/** Individual service checks */
|
|
37
|
+
checks: Record<string, HealthCheck>;
|
|
38
|
+
/** Component counts */
|
|
39
|
+
components?: ComponentCounts;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Custom health check function type
|
|
43
|
+
*/
|
|
44
|
+
export type HealthCheckFn = () => Promise<HealthCheck>;
|
|
45
|
+
/**
|
|
46
|
+
* Health checker with support for custom checks
|
|
47
|
+
*/
|
|
48
|
+
export declare class HealthChecker {
|
|
49
|
+
#private;
|
|
50
|
+
/**
|
|
51
|
+
* Register a custom health check
|
|
52
|
+
* @param name Unique name for the check
|
|
53
|
+
* @param checkFn Function that performs the check
|
|
54
|
+
*
|
|
55
|
+
* @example
|
|
56
|
+
* ```typescript
|
|
57
|
+
* healthChecker.registerCheck('external-api', async () => {
|
|
58
|
+
* try {
|
|
59
|
+
* await fetch('https://api.example.com/health')
|
|
60
|
+
* return { status: 'up' }
|
|
61
|
+
* } catch (error) {
|
|
62
|
+
* return { status: 'down', error: error.message }
|
|
63
|
+
* }
|
|
64
|
+
* })
|
|
65
|
+
* ```
|
|
66
|
+
*/
|
|
67
|
+
registerCheck(name: string, checkFn: HealthCheckFn): void;
|
|
68
|
+
/**
|
|
69
|
+
* Remove a health check
|
|
70
|
+
* @param name Name of the check to remove
|
|
71
|
+
*/
|
|
72
|
+
removeCheck(name: string): boolean;
|
|
73
|
+
/**
|
|
74
|
+
* Get list of registered check names
|
|
75
|
+
*/
|
|
76
|
+
getCheckNames(): string[];
|
|
77
|
+
/**
|
|
78
|
+
* Set component counts for health status
|
|
79
|
+
*/
|
|
80
|
+
setComponentCounts(counts: ComponentCounts): void;
|
|
81
|
+
/**
|
|
82
|
+
* Set version for health status
|
|
83
|
+
*/
|
|
84
|
+
setVersion(version: string): void;
|
|
85
|
+
/**
|
|
86
|
+
* Perform all registered health checks
|
|
87
|
+
*/
|
|
88
|
+
performCheck(): Promise<HealthStatus>;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Create a database health check function
|
|
92
|
+
*/
|
|
93
|
+
export declare function createDatabaseCheck(db: DatabaseAdapter): HealthCheckFn;
|
|
94
|
+
/**
|
|
95
|
+
* Create a Redis health check function via QueueManager
|
|
96
|
+
*/
|
|
97
|
+
export declare function createRedisCheck(qm: QueueManager): HealthCheckFn;
|
|
98
|
+
/**
|
|
99
|
+
* Create a storage health check function
|
|
100
|
+
*/
|
|
101
|
+
export declare function createStorageCheck(storage: StorageService): HealthCheckFn;
|
|
102
|
+
/**
|
|
103
|
+
* Perform deep health check on all services (convenience function)
|
|
104
|
+
*/
|
|
105
|
+
export declare function performHealthCheck(database: DatabaseAdapter, queueManager?: QueueManager | null, storage?: StorageService, componentCounts?: ComponentCounts, version?: string): Promise<HealthStatus>;
|
|
106
|
+
/**
|
|
107
|
+
* Simple liveness check - always returns ok if process is running
|
|
108
|
+
*/
|
|
109
|
+
export declare function livenessCheck(): {
|
|
110
|
+
status: 'ok';
|
|
111
|
+
};
|
|
112
|
+
//# sourceMappingURL=health.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../../src/engine/health.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAA;AACtE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AAEnE;;GAEG;AACH,MAAM,WAAW,WAAW;IACxB,0BAA0B;IAC1B,MAAM,EAAE,IAAI,GAAG,MAAM,CAAA;IACrB,uCAAuC;IACvC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,sCAAsC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAA;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC5B,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,cAAc,EAAE,MAAM,CAAA;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IACzB,qBAAqB;IACrB,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,WAAW,CAAA;IAC5C,iCAAiC;IACjC,SAAS,EAAE,MAAM,CAAA;IACjB,gCAAgC;IAChC,MAAM,EAAE,MAAM,CAAA;IACd,mCAAmC;IACnC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,gCAAgC;IAChC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;IACnC,uBAAuB;IACvB,UAAU,CAAC,EAAE,eAAe,CAAA;CAC/B;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,CAAA;AAEtD;;GAEG;AACH,qBAAa,aAAa;;IAKtB;;;;;;;;;;;;;;;;OAgBG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,IAAI;IAIzD;;;OAGG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIlC;;OAEG;IACH,aAAa,IAAI,MAAM,EAAE;IAIzB;;OAEG;IACH,kBAAkB,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI;IAIjD;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIjC;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,YAAY,CAAC;CAmD9C;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,eAAe,GAAG,aAAa,CAetE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,YAAY,GAAG,aAAa,CAchE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,cAAc,GAAG,aAAa,CAgBzE;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACpC,QAAQ,EAAE,eAAe,EACzB,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI,EAClC,OAAO,CAAC,EAAE,cAAc,EACxB,eAAe,CAAC,EAAE,eAAe,EACjC,OAAO,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,YAAY,CAAC,CAsBvB;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI;IAAE,MAAM,EAAE,IAAI,CAAA;CAAE,CAEhD"}
|