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.
Files changed (227) hide show
  1. package/LICENSE +20 -20
  2. package/README.md +494 -359
  3. package/dist/auth/apisix_parser.d.ts +141 -0
  4. package/dist/auth/apisix_parser.d.ts.map +1 -0
  5. package/dist/auth/apisix_parser.js +161 -0
  6. package/dist/auth/apisix_parser.js.map +1 -0
  7. package/dist/auth/auth_config.d.ts +126 -0
  8. package/dist/auth/auth_config.d.ts.map +1 -0
  9. package/dist/auth/auth_config.js +169 -0
  10. package/dist/auth/auth_config.js.map +1 -0
  11. package/dist/auth/auth_provider.d.ts +118 -0
  12. package/dist/auth/auth_provider.d.ts.map +1 -0
  13. package/dist/auth/auth_provider.js +8 -0
  14. package/dist/auth/auth_provider.js.map +1 -0
  15. package/dist/auth/auth_provider_factory.d.ts +91 -0
  16. package/dist/auth/auth_provider_factory.d.ts.map +1 -0
  17. package/dist/auth/auth_provider_factory.js +146 -0
  18. package/dist/auth/auth_provider_factory.js.map +1 -0
  19. package/dist/auth/index.d.ts +8 -0
  20. package/dist/auth/index.d.ts.map +1 -0
  21. package/dist/auth/index.js +7 -0
  22. package/dist/auth/index.js.map +1 -0
  23. package/dist/auth/providers/gateway_auth_provider.d.ts +78 -0
  24. package/dist/auth/providers/gateway_auth_provider.d.ts.map +1 -0
  25. package/dist/auth/providers/gateway_auth_provider.js +109 -0
  26. package/dist/auth/providers/gateway_auth_provider.js.map +1 -0
  27. package/dist/auth/providers/index.d.ts +4 -0
  28. package/dist/auth/providers/index.d.ts.map +1 -0
  29. package/dist/auth/providers/index.js +4 -0
  30. package/dist/auth/providers/index.js.map +1 -0
  31. package/dist/auth/providers/jwt_auth_provider.d.ts +91 -0
  32. package/dist/auth/providers/jwt_auth_provider.d.ts.map +1 -0
  33. package/dist/auth/providers/jwt_auth_provider.js +204 -0
  34. package/dist/auth/providers/jwt_auth_provider.js.map +1 -0
  35. package/dist/auth/providers/no_auth_provider.d.ts +61 -0
  36. package/dist/auth/providers/no_auth_provider.d.ts.map +1 -0
  37. package/dist/auth/providers/no_auth_provider.js +76 -0
  38. package/dist/auth/providers/no_auth_provider.js.map +1 -0
  39. package/dist/auth/types.d.ts +100 -0
  40. package/dist/auth/types.d.ts.map +1 -0
  41. package/dist/auth/types.js +2 -0
  42. package/dist/auth/types.js.map +1 -0
  43. package/dist/auth/user_service.d.ts +86 -0
  44. package/dist/auth/user_service.d.ts.map +1 -0
  45. package/dist/auth/user_service.js +237 -0
  46. package/dist/auth/user_service.js.map +1 -0
  47. package/dist/components/assets_manager.d.ts +662 -0
  48. package/dist/components/assets_manager.d.ts.map +1 -0
  49. package/dist/components/assets_manager.js +1537 -0
  50. package/dist/components/assets_manager.js.map +1 -0
  51. package/dist/components/async_upload.d.ts +20 -0
  52. package/dist/components/async_upload.d.ts.map +1 -0
  53. package/dist/components/async_upload.js +10 -0
  54. package/dist/components/async_upload.js.map +1 -0
  55. package/dist/components/collector.d.ts +203 -0
  56. package/dist/components/collector.d.ts.map +1 -0
  57. package/dist/components/collector.js +214 -0
  58. package/dist/components/collector.js.map +1 -0
  59. package/dist/components/custom_table_manager.d.ts +503 -0
  60. package/dist/components/custom_table_manager.d.ts.map +1 -0
  61. package/dist/components/custom_table_manager.js +1023 -0
  62. package/dist/components/custom_table_manager.js.map +1 -0
  63. package/dist/components/global_assets_handler.d.ts +63 -0
  64. package/dist/components/global_assets_handler.d.ts.map +1 -0
  65. package/dist/components/global_assets_handler.js +127 -0
  66. package/dist/components/global_assets_handler.js.map +1 -0
  67. package/dist/components/handler.d.ts +104 -0
  68. package/dist/components/handler.d.ts.map +1 -0
  69. package/dist/components/handler.js +110 -0
  70. package/dist/components/handler.js.map +1 -0
  71. package/dist/components/harvester.d.ts +182 -0
  72. package/dist/components/harvester.d.ts.map +1 -0
  73. package/dist/components/harvester.js +406 -0
  74. package/dist/components/harvester.js.map +1 -0
  75. package/dist/components/index.d.ts +11 -0
  76. package/dist/components/index.d.ts.map +1 -0
  77. package/dist/components/index.js +9 -0
  78. package/dist/components/index.js.map +1 -0
  79. package/dist/components/interfaces.d.ts +126 -0
  80. package/dist/components/interfaces.d.ts.map +1 -0
  81. package/dist/components/interfaces.js +8 -0
  82. package/dist/components/interfaces.js.map +1 -0
  83. package/dist/components/map_manager.d.ts +61 -0
  84. package/dist/components/map_manager.d.ts.map +1 -0
  85. package/dist/components/map_manager.js +242 -0
  86. package/dist/components/map_manager.js.map +1 -0
  87. package/dist/components/tileset_manager.d.ts +125 -0
  88. package/dist/components/tileset_manager.d.ts.map +1 -0
  89. package/dist/components/tileset_manager.js +623 -0
  90. package/dist/components/tileset_manager.js.map +1 -0
  91. package/dist/components/types.d.ts +226 -0
  92. package/dist/components/types.d.ts.map +1 -0
  93. package/dist/components/types.js +8 -0
  94. package/dist/components/types.js.map +1 -0
  95. package/dist/database/adapters/knex_database_adapter.d.ts +97 -0
  96. package/dist/database/adapters/knex_database_adapter.d.ts.map +1 -0
  97. package/dist/database/adapters/knex_database_adapter.js +729 -0
  98. package/dist/database/adapters/knex_database_adapter.js.map +1 -0
  99. package/dist/database/database_adapter.d.ts +262 -0
  100. package/dist/database/database_adapter.d.ts.map +1 -0
  101. package/dist/database/database_adapter.js +46 -0
  102. package/dist/database/database_adapter.js.map +1 -0
  103. package/dist/engine/digital_twin_engine.d.ts +295 -0
  104. package/dist/engine/digital_twin_engine.d.ts.map +1 -0
  105. package/dist/engine/digital_twin_engine.js +907 -0
  106. package/dist/engine/digital_twin_engine.js.map +1 -0
  107. package/dist/engine/endpoints.d.ts +47 -0
  108. package/dist/engine/endpoints.d.ts.map +1 -0
  109. package/dist/engine/endpoints.js +88 -0
  110. package/dist/engine/endpoints.js.map +1 -0
  111. package/dist/engine/error_handler.d.ts +20 -0
  112. package/dist/engine/error_handler.d.ts.map +1 -0
  113. package/dist/engine/error_handler.js +69 -0
  114. package/dist/engine/error_handler.js.map +1 -0
  115. package/dist/engine/events.d.ts +93 -0
  116. package/dist/engine/events.d.ts.map +1 -0
  117. package/dist/engine/events.js +71 -0
  118. package/dist/engine/events.js.map +1 -0
  119. package/dist/engine/health.d.ts +112 -0
  120. package/dist/engine/health.d.ts.map +1 -0
  121. package/dist/engine/health.js +190 -0
  122. package/dist/engine/health.js.map +1 -0
  123. package/dist/engine/initializer.d.ts +62 -0
  124. package/dist/engine/initializer.d.ts.map +1 -0
  125. package/dist/engine/initializer.js +108 -0
  126. package/dist/engine/initializer.js.map +1 -0
  127. package/dist/engine/queue_manager.d.ts +87 -0
  128. package/dist/engine/queue_manager.d.ts.map +1 -0
  129. package/dist/engine/queue_manager.js +196 -0
  130. package/dist/engine/queue_manager.js.map +1 -0
  131. package/dist/engine/scheduler.d.ts +30 -0
  132. package/dist/engine/scheduler.d.ts.map +1 -0
  133. package/dist/engine/scheduler.js +378 -0
  134. package/dist/engine/scheduler.js.map +1 -0
  135. package/dist/engine/upload_processor.d.ts +36 -0
  136. package/dist/engine/upload_processor.d.ts.map +1 -0
  137. package/dist/engine/upload_processor.js +113 -0
  138. package/dist/engine/upload_processor.js.map +1 -0
  139. package/dist/env/env.d.ts +134 -0
  140. package/dist/env/env.d.ts.map +1 -0
  141. package/dist/env/env.js +177 -0
  142. package/dist/env/env.js.map +1 -0
  143. package/dist/errors/index.d.ts +94 -0
  144. package/dist/errors/index.d.ts.map +1 -0
  145. package/dist/errors/index.js +149 -0
  146. package/dist/errors/index.js.map +1 -0
  147. package/dist/index.d.ts +55 -0
  148. package/dist/index.d.ts.map +1 -0
  149. package/dist/index.js +65 -0
  150. package/dist/index.js.map +1 -0
  151. package/dist/openapi/generator.d.ts +93 -0
  152. package/dist/openapi/generator.d.ts.map +1 -0
  153. package/dist/openapi/generator.js +293 -0
  154. package/dist/openapi/generator.js.map +1 -0
  155. package/dist/openapi/index.d.ts +9 -0
  156. package/dist/openapi/index.d.ts.map +1 -0
  157. package/dist/openapi/index.js +9 -0
  158. package/dist/openapi/index.js.map +1 -0
  159. package/dist/openapi/types.d.ts +182 -0
  160. package/dist/openapi/types.d.ts.map +1 -0
  161. package/dist/openapi/types.js +16 -0
  162. package/dist/openapi/types.js.map +1 -0
  163. package/dist/storage/adapters/local_storage_service.d.ts +57 -0
  164. package/dist/storage/adapters/local_storage_service.d.ts.map +1 -0
  165. package/dist/storage/adapters/local_storage_service.js +132 -0
  166. package/dist/storage/adapters/local_storage_service.js.map +1 -0
  167. package/dist/storage/adapters/ovh_storage_service.d.ts +72 -0
  168. package/dist/storage/adapters/ovh_storage_service.d.ts.map +1 -0
  169. package/dist/storage/adapters/ovh_storage_service.js +205 -0
  170. package/dist/storage/adapters/ovh_storage_service.js.map +1 -0
  171. package/dist/storage/storage_factory.d.ts +14 -0
  172. package/dist/storage/storage_factory.d.ts.map +1 -0
  173. package/dist/storage/storage_factory.js +43 -0
  174. package/dist/storage/storage_factory.js.map +1 -0
  175. package/dist/storage/storage_service.d.ts +163 -0
  176. package/dist/storage/storage_service.d.ts.map +1 -0
  177. package/dist/storage/storage_service.js +58 -0
  178. package/dist/storage/storage_service.js.map +1 -0
  179. package/dist/types/data_record.d.ts +123 -0
  180. package/dist/types/data_record.d.ts.map +1 -0
  181. package/dist/types/data_record.js +8 -0
  182. package/dist/types/data_record.js.map +1 -0
  183. package/dist/utils/graceful_shutdown.d.ts +44 -0
  184. package/dist/utils/graceful_shutdown.d.ts.map +1 -0
  185. package/dist/utils/graceful_shutdown.js +79 -0
  186. package/dist/utils/graceful_shutdown.js.map +1 -0
  187. package/dist/utils/http_responses.d.ts +175 -0
  188. package/dist/utils/http_responses.d.ts.map +1 -0
  189. package/dist/utils/http_responses.js +216 -0
  190. package/dist/utils/http_responses.js.map +1 -0
  191. package/dist/utils/index.d.ts +8 -0
  192. package/dist/utils/index.d.ts.map +1 -0
  193. package/dist/utils/index.js +6 -0
  194. package/dist/utils/index.js.map +1 -0
  195. package/dist/utils/logger.d.ts +74 -0
  196. package/dist/utils/logger.d.ts.map +1 -0
  197. package/dist/utils/logger.js +92 -0
  198. package/dist/utils/logger.js.map +1 -0
  199. package/dist/utils/map_to_data_record.d.ts +10 -0
  200. package/dist/utils/map_to_data_record.d.ts.map +1 -0
  201. package/dist/utils/map_to_data_record.js +36 -0
  202. package/dist/utils/map_to_data_record.js.map +1 -0
  203. package/dist/utils/safe_async.d.ts +50 -0
  204. package/dist/utils/safe_async.d.ts.map +1 -0
  205. package/dist/utils/safe_async.js +90 -0
  206. package/dist/utils/safe_async.js.map +1 -0
  207. package/dist/utils/servable_endpoint.d.ts +63 -0
  208. package/dist/utils/servable_endpoint.d.ts.map +1 -0
  209. package/dist/utils/servable_endpoint.js +67 -0
  210. package/dist/utils/servable_endpoint.js.map +1 -0
  211. package/dist/utils/zip_utils.d.ts +66 -0
  212. package/dist/utils/zip_utils.d.ts.map +1 -0
  213. package/dist/utils/zip_utils.js +169 -0
  214. package/dist/utils/zip_utils.js.map +1 -0
  215. package/dist/validation/index.d.ts +3 -0
  216. package/dist/validation/index.d.ts.map +1 -0
  217. package/dist/validation/index.js +7 -0
  218. package/dist/validation/index.js.map +1 -0
  219. package/dist/validation/schemas.d.ts +273 -0
  220. package/dist/validation/schemas.d.ts.map +1 -0
  221. package/dist/validation/schemas.js +82 -0
  222. package/dist/validation/schemas.js.map +1 -0
  223. package/dist/validation/validate.d.ts +49 -0
  224. package/dist/validation/validate.d.ts.map +1 -0
  225. package/dist/validation/validate.js +110 -0
  226. package/dist/validation/validate.js.map +1 -0
  227. 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"}