@cepseudo/engine 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 (55) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +209 -0
  3. package/dist/component_types.d.ts +92 -0
  4. package/dist/component_types.d.ts.map +1 -0
  5. package/dist/component_types.js +93 -0
  6. package/dist/component_types.js.map +1 -0
  7. package/dist/digital_twin_engine.d.ts +390 -0
  8. package/dist/digital_twin_engine.d.ts.map +1 -0
  9. package/dist/digital_twin_engine.js +1200 -0
  10. package/dist/digital_twin_engine.js.map +1 -0
  11. package/dist/endpoints.d.ts +45 -0
  12. package/dist/endpoints.d.ts.map +1 -0
  13. package/dist/endpoints.js +87 -0
  14. package/dist/endpoints.js.map +1 -0
  15. package/dist/error_handler.d.ts +20 -0
  16. package/dist/error_handler.d.ts.map +1 -0
  17. package/dist/error_handler.js +68 -0
  18. package/dist/error_handler.js.map +1 -0
  19. package/dist/global_assets_handler.d.ts +63 -0
  20. package/dist/global_assets_handler.d.ts.map +1 -0
  21. package/dist/global_assets_handler.js +127 -0
  22. package/dist/global_assets_handler.js.map +1 -0
  23. package/dist/graceful_shutdown.d.ts +44 -0
  24. package/dist/graceful_shutdown.d.ts.map +1 -0
  25. package/dist/graceful_shutdown.js +79 -0
  26. package/dist/graceful_shutdown.js.map +1 -0
  27. package/dist/health.d.ts +112 -0
  28. package/dist/health.d.ts.map +1 -0
  29. package/dist/health.js +190 -0
  30. package/dist/health.js.map +1 -0
  31. package/dist/index.d.ts +19 -0
  32. package/dist/index.d.ts.map +1 -0
  33. package/dist/index.js +25 -0
  34. package/dist/index.js.map +1 -0
  35. package/dist/initializer.d.ts +62 -0
  36. package/dist/initializer.d.ts.map +1 -0
  37. package/dist/initializer.js +110 -0
  38. package/dist/initializer.js.map +1 -0
  39. package/dist/loader/component_loader.d.ts +133 -0
  40. package/dist/loader/component_loader.d.ts.map +1 -0
  41. package/dist/loader/component_loader.js +340 -0
  42. package/dist/loader/component_loader.js.map +1 -0
  43. package/dist/openapi/generator.d.ts +93 -0
  44. package/dist/openapi/generator.d.ts.map +1 -0
  45. package/dist/openapi/generator.js +293 -0
  46. package/dist/openapi/generator.js.map +1 -0
  47. package/dist/queue_manager.d.ts +87 -0
  48. package/dist/queue_manager.d.ts.map +1 -0
  49. package/dist/queue_manager.js +196 -0
  50. package/dist/queue_manager.js.map +1 -0
  51. package/dist/scheduler.d.ts +29 -0
  52. package/dist/scheduler.d.ts.map +1 -0
  53. package/dist/scheduler.js +375 -0
  54. package/dist/scheduler.js.map +1 -0
  55. package/package.json +78 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"digital_twin_engine.js","sourceRoot":"","sources":["../src/digital_twin_engine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
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, Harvester, Handler, CustomTableManager } from '@cepseudo/components';
9
+ import type { AssetsManager } from '@cepseudo/assets';
10
+ /**
11
+ * Supported HTTP methods for component endpoints.
12
+ *
13
+ * These methods correspond to standard REST operations:
14
+ * - get: Retrieve data
15
+ * - post: Create new resources
16
+ * - put: Update existing resources (full update)
17
+ * - patch: Update existing resources (partial update)
18
+ * - delete: Remove resources
19
+ */
20
+ export type { HttpMethod } from '@cepseudo/shared';
21
+ /**
22
+ * Automatically registers HTTP endpoints from servable components to an Express router.
23
+ *
24
+ * This function iterates through all provided components, extracts their endpoints,
25
+ * and registers them with the Express router. Each endpoint is wrapped with error
26
+ * handling to ensure robust API behavior.
27
+ *
28
+ * @param router - Express router instance to register endpoints with
29
+ * @param servables - Array of components that expose HTTP endpoints
30
+ *
31
+ * @throws {Error} When an unsupported HTTP method is encountered
32
+ *
33
+ * @example
34
+ * ```typescript
35
+ * const router = express.Router();
36
+ * const components = [collector1, harvester1, assetsManager1];
37
+ *
38
+ * await exposeEndpoints(router, components);
39
+ *
40
+ * // Now the router has all endpoints from the components registered
41
+ * app.use('/api', router);
42
+ * ```
43
+ */
44
+ export declare function exposeEndpoints(router: Router, servables: Array<Collector | Harvester | Handler | AssetsManager | CustomTableManager>): Promise<void>;
45
+ //# sourceMappingURL=endpoints.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"endpoints.d.ts","sourceRoot":"","sources":["../src/endpoints.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAqB,MAAM,kBAAkB,CAAA;AACjE,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAC7F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAMrD;;;;;;;;;GASG;AAEH,YAAY,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAsBlD;;;;;;;;;;;;;;;;;;;;;;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,87 @@
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, Logger } from '@cepseudo/shared';
8
+ const logger = new Logger('Endpoints');
9
+ /**
10
+ * Automatically registers HTTP endpoints from servable components to an Express router.
11
+ *
12
+ * This function iterates through all provided components, extracts their endpoints,
13
+ * and registers them with the Express router. Each endpoint is wrapped with error
14
+ * handling to ensure robust API behavior.
15
+ *
16
+ * @param router - Express router instance to register endpoints with
17
+ * @param servables - Array of components that expose HTTP endpoints
18
+ *
19
+ * @throws {Error} When an unsupported HTTP method is encountered
20
+ *
21
+ * @example
22
+ * ```typescript
23
+ * const router = express.Router();
24
+ * const components = [collector1, harvester1, assetsManager1];
25
+ *
26
+ * await exposeEndpoints(router, components);
27
+ *
28
+ * // Now the router has all endpoints from the components registered
29
+ * app.use('/api', router);
30
+ * ```
31
+ */
32
+ export async function exposeEndpoints(router, servables) {
33
+ for (const servable of servables) {
34
+ const endpoints = servable.getEndpoints();
35
+ for (const ep of endpoints) {
36
+ const method = ep.method.toLowerCase();
37
+ if (typeof router[method] === 'function') {
38
+ // Register endpoint with error handling wrapper
39
+ router[method](ep.path, async (req, res) => {
40
+ try {
41
+ const result = await ep.handler(req);
42
+ res.status(result.status)
43
+ .header(result.headers || {})
44
+ .send(result.content);
45
+ }
46
+ catch (error) {
47
+ const requestId = req.headers['x-request-id'] || crypto.randomUUID();
48
+ // Log the error with context
49
+ logger.error(`[${requestId}] ${req.method} ${ep.path} - ${error instanceof Error ? error.message : String(error)}`, {
50
+ requestId,
51
+ method: req.method,
52
+ path: ep.path,
53
+ userId: req.headers['x-user-id'],
54
+ stack: error instanceof Error ? error.stack : undefined
55
+ });
56
+ // Handle DigitalTwinError with proper status code
57
+ if (error instanceof DigitalTwinError) {
58
+ res.status(error.statusCode).send({
59
+ ...error.toJSON(),
60
+ requestId
61
+ });
62
+ return;
63
+ }
64
+ // Generic error response
65
+ const isProduction = process.env.NODE_ENV === 'production';
66
+ res.status(500).send({
67
+ error: {
68
+ code: 'INTERNAL_ERROR',
69
+ message: isProduction
70
+ ? 'Internal server error'
71
+ : error instanceof Error
72
+ ? error.message
73
+ : String(error),
74
+ requestId,
75
+ timestamp: new Date().toISOString()
76
+ }
77
+ });
78
+ }
79
+ });
80
+ }
81
+ else {
82
+ throw new Error(`Unsupported HTTP method: ${ep.method}`);
83
+ }
84
+ }
85
+ }
86
+ }
87
+ //# sourceMappingURL=endpoints.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"endpoints.js","sourceRoot":"","sources":["../src/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/error_handler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAMvE;;;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,68 @@
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, Logger } from '@cepseudo/shared';
7
+ const logger = new Logger('ErrorHandler');
8
+ /**
9
+ * Express error handler middleware
10
+ * Must be registered after all routes
11
+ */
12
+ export function errorHandler(error, req, res, _next) {
13
+ const requestId = req.headers['x-request-id'] || randomUUID();
14
+ // Log the error with context
15
+ logger.error(`[${requestId}] ${req.method} ${req.path} - ${error.message}`, {
16
+ requestId,
17
+ method: req.method,
18
+ path: req.path,
19
+ userId: req.headers['x-user-id'],
20
+ stack: error.stack
21
+ });
22
+ // Don't send response if headers already sent
23
+ if (res.headersSent) {
24
+ return;
25
+ }
26
+ if (error instanceof DigitalTwinError) {
27
+ res.status(error.statusCode).json({
28
+ ...error.toJSON(),
29
+ requestId
30
+ });
31
+ return;
32
+ }
33
+ // Unknown error - return generic response
34
+ const isProduction = process.env.NODE_ENV === 'production';
35
+ res.status(500).json({
36
+ error: {
37
+ code: 'INTERNAL_ERROR',
38
+ message: isProduction ? 'Internal server error' : error.message,
39
+ requestId,
40
+ timestamp: new Date().toISOString(),
41
+ ...(!isProduction && { stack: error.stack })
42
+ }
43
+ });
44
+ }
45
+ /**
46
+ * Wraps an async route handler to automatically catch errors
47
+ * and pass them to the error handling middleware
48
+ */
49
+ export function asyncHandler(handler) {
50
+ return (req, res, next) => {
51
+ Promise.resolve(handler(req, res, next)).catch(next);
52
+ };
53
+ }
54
+ /**
55
+ * 404 handler for routes that don't exist
56
+ */
57
+ export function notFoundHandler(req, res) {
58
+ const requestId = req.headers['x-request-id'] || randomUUID();
59
+ res.status(404).json({
60
+ error: {
61
+ code: 'NOT_FOUND',
62
+ message: `Route ${req.method} ${req.path} not found`,
63
+ requestId,
64
+ timestamp: new Date().toISOString()
65
+ }
66
+ });
67
+ }
68
+ //# sourceMappingURL=error_handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error_handler.js","sourceRoot":"","sources":["../src/error_handler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AACnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAE3D,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,63 @@
1
+ import { Handler } from '@cepseudo/components';
2
+ import type { ComponentConfiguration, DataResponse, HttpMethod, TypedRequest } from '@cepseudo/shared';
3
+ import type { AssetsManager } from '@cepseudo/assets';
4
+ /**
5
+ * Global assets handler that provides access to ALL assets across ALL asset managers.
6
+ *
7
+ * This handler aggregates assets from all registered AssetsManager instances
8
+ * without duplicating their logic or hardcoding component names.
9
+ *
10
+ * @class GlobalAssetsHandler
11
+ * @extends {Handler}
12
+ *
13
+ * @example
14
+ * ```typescript
15
+ * const globalHandler = new GlobalAssetsHandler()
16
+ * globalHandler.setAssetsManagers([gltfManager, pointcloudManager])
17
+ *
18
+ * // Usage:
19
+ * // GET /assets/all - Returns all assets from all managers
20
+ * ```
21
+ */
22
+ export declare class GlobalAssetsHandler extends Handler {
23
+ private assetsManagers;
24
+ /**
25
+ * Inject AssetsManager dependencies (called by engine)
26
+ */
27
+ setAssetsManagers(assetsManagers: AssetsManager[]): void;
28
+ /**
29
+ * Component configuration for the global assets handler
30
+ */
31
+ getConfiguration(): ComponentConfiguration;
32
+ /**
33
+ * Get all assets from all registered asset managers.
34
+ *
35
+ * This method delegates to each AssetsManager's getAllAssets() method
36
+ * and aggregates the results with proper endpoint URLs.
37
+ *
38
+ * @returns {Promise<DataResponse>} JSON response with all assets
39
+ *
40
+ * @example
41
+ * ```typescript
42
+ * // GET /assets/all
43
+ * // Returns: {
44
+ * // total: 5,
45
+ * // assets: [
46
+ * // { id: 1, component: "gltf", url: "/gltf/1", ... },
47
+ * // { id: 2, component: "pointcloud", url: "/pointcloud/2", ... }
48
+ * // ]
49
+ * // }
50
+ * ```
51
+ */
52
+ getAllAssets(): Promise<DataResponse>;
53
+ /**
54
+ * HTTP endpoints for global assets
55
+ */
56
+ getEndpoints(): Array<{
57
+ method: HttpMethod;
58
+ path: string;
59
+ handler: (req: TypedRequest) => Promise<DataResponse>;
60
+ responseType?: string;
61
+ }>;
62
+ }
63
+ //# sourceMappingURL=global_assets_handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"global_assets_handler.d.ts","sourceRoot":"","sources":["../src/global_assets_handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAC9C,OAAO,KAAK,EAAE,sBAAsB,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AACtG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAErD;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,mBAAoB,SAAQ,OAAO;IAC5C,OAAO,CAAC,cAAc,CAAsB;IAE5C;;OAEG;IACH,iBAAiB,CAAC,cAAc,EAAE,aAAa,EAAE,GAAG,IAAI;IAIxD;;OAEG;IACH,gBAAgB,IAAI,sBAAsB;IAS1C;;;;;;;;;;;;;;;;;;;OAmBG;IACG,YAAY,IAAI,OAAO,CAAC,YAAY,CAAC;IAuD3C;;OAEG;IACM,YAAY,IAAI,KAAK,CAAC;QAC3B,MAAM,EAAE,UAAU,CAAA;QAClB,IAAI,EAAE,MAAM,CAAA;QACZ,OAAO,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,OAAO,CAAC,YAAY,CAAC,CAAA;QACrD,YAAY,CAAC,EAAE,MAAM,CAAA;KACxB,CAAC;CAUL"}
@@ -0,0 +1,127 @@
1
+ import { Handler } from '@cepseudo/components';
2
+ /**
3
+ * Global assets handler that provides access to ALL assets across ALL asset managers.
4
+ *
5
+ * This handler aggregates assets from all registered AssetsManager instances
6
+ * without duplicating their logic or hardcoding component names.
7
+ *
8
+ * @class GlobalAssetsHandler
9
+ * @extends {Handler}
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * const globalHandler = new GlobalAssetsHandler()
14
+ * globalHandler.setAssetsManagers([gltfManager, pointcloudManager])
15
+ *
16
+ * // Usage:
17
+ * // GET /assets/all - Returns all assets from all managers
18
+ * ```
19
+ */
20
+ export class GlobalAssetsHandler extends Handler {
21
+ constructor() {
22
+ super(...arguments);
23
+ this.assetsManagers = [];
24
+ }
25
+ /**
26
+ * Inject AssetsManager dependencies (called by engine)
27
+ */
28
+ setAssetsManagers(assetsManagers) {
29
+ this.assetsManagers = assetsManagers;
30
+ }
31
+ /**
32
+ * Component configuration for the global assets handler
33
+ */
34
+ getConfiguration() {
35
+ return {
36
+ name: 'global_assets',
37
+ description: 'Global handler for all assets across all managers',
38
+ contentType: 'application/json',
39
+ tags: ['assets', 'global', 'all']
40
+ };
41
+ }
42
+ /**
43
+ * Get all assets from all registered asset managers.
44
+ *
45
+ * This method delegates to each AssetsManager's getAllAssets() method
46
+ * and aggregates the results with proper endpoint URLs.
47
+ *
48
+ * @returns {Promise<DataResponse>} JSON response with all assets
49
+ *
50
+ * @example
51
+ * ```typescript
52
+ * // GET /assets/all
53
+ * // Returns: {
54
+ * // total: 5,
55
+ * // assets: [
56
+ * // { id: 1, component: "gltf", url: "/gltf/1", ... },
57
+ * // { id: 2, component: "pointcloud", url: "/pointcloud/2", ... }
58
+ * // ]
59
+ * // }
60
+ * ```
61
+ */
62
+ async getAllAssets() {
63
+ try {
64
+ const allAssets = [];
65
+ // Iterate through all registered AssetsManager instances
66
+ for (const manager of this.assetsManagers) {
67
+ try {
68
+ const assets = await manager.getAllAssets();
69
+ const config = manager.getConfiguration();
70
+ // Transform assets to include component info and URLs
71
+ const transformedAssets = assets.map(asset => ({
72
+ id: asset.id,
73
+ component: config.name,
74
+ date: asset.date,
75
+ contentType: asset.contentType,
76
+ description: asset.description,
77
+ source: asset.source,
78
+ owner_id: asset.owner_id,
79
+ filename: asset.filename,
80
+ // Generate URLs using the manager's configuration
81
+ url: `/${config.endpoint}/${asset.id}`,
82
+ download_url: `/${config.endpoint}/${asset.id}/download`
83
+ }));
84
+ allAssets.push(...transformedAssets);
85
+ }
86
+ catch (error) {
87
+ // Skip this manager if it fails, don't break the whole operation
88
+ console.warn(`Failed to get assets from manager ${manager.getConfiguration().name}:`, error);
89
+ continue;
90
+ }
91
+ }
92
+ // Sort by date (newest first)
93
+ allAssets.sort((a, b) => new Date(b.date).getTime() - new Date(a.date).getTime());
94
+ return {
95
+ status: 200,
96
+ content: JSON.stringify({
97
+ total: allAssets.length,
98
+ assets: allAssets
99
+ }),
100
+ headers: { 'Content-Type': 'application/json' }
101
+ };
102
+ }
103
+ catch (error) {
104
+ return {
105
+ status: 500,
106
+ content: JSON.stringify({
107
+ error: error instanceof Error ? error.message : 'Unknown error'
108
+ }),
109
+ headers: { 'Content-Type': 'application/json' }
110
+ };
111
+ }
112
+ }
113
+ /**
114
+ * HTTP endpoints for global assets
115
+ */
116
+ getEndpoints() {
117
+ return [
118
+ {
119
+ method: 'get',
120
+ path: '/assets/all',
121
+ handler: this.getAllAssets.bind(this),
122
+ responseType: 'application/json'
123
+ }
124
+ ];
125
+ }
126
+ }
127
+ //# sourceMappingURL=global_assets_handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"global_assets_handler.js","sourceRoot":"","sources":["../src/global_assets_handler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ import type { DigitalTwinEngine } from './digital_twin_engine.js';
2
+ export interface ShutdownOptions {
3
+ /** Timeout before forcing exit (default: 30000ms) */
4
+ timeout?: number;
5
+ /** Signals to handle (default: ['SIGTERM', 'SIGINT']) */
6
+ signals?: NodeJS.Signals[];
7
+ /** Custom cleanup function to run before stopping engine */
8
+ onShutdown?: () => Promise<void>;
9
+ /** Custom logger function (default: console.log) */
10
+ logger?: (msg: string) => void;
11
+ }
12
+ /**
13
+ * Setup graceful shutdown handlers for a DigitalTwinEngine
14
+ *
15
+ * This helper registers signal handlers for graceful shutdown in production.
16
+ * It handles SIGTERM (from Kubernetes/Docker) and SIGINT (Ctrl+C) by default.
17
+ *
18
+ * @param engine The DigitalTwinEngine instance to shut down
19
+ * @param options Configuration options
20
+ * @returns Cleanup function to remove signal handlers
21
+ *
22
+ * @example
23
+ * ```typescript
24
+ * import { DigitalTwinEngine, setupGracefulShutdown } from 'digitaltwin-core'
25
+ *
26
+ * const engine = new DigitalTwinEngine({ ... })
27
+ *
28
+ * // Setup graceful shutdown before starting
29
+ * const cleanup = setupGracefulShutdown(engine, {
30
+ * timeout: 30000,
31
+ * signals: ['SIGTERM', 'SIGINT', 'SIGQUIT'],
32
+ * onShutdown: async () => {
33
+ * console.log('Performing custom cleanup...')
34
+ * }
35
+ * })
36
+ *
37
+ * await engine.start()
38
+ *
39
+ * // Later, if you need to remove handlers:
40
+ * // cleanup()
41
+ * ```
42
+ */
43
+ export declare function setupGracefulShutdown(engine: DigitalTwinEngine, options?: ShutdownOptions): () => void;
44
+ //# sourceMappingURL=graceful_shutdown.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graceful_shutdown.d.ts","sourceRoot":"","sources":["../src/graceful_shutdown.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAEjE,MAAM,WAAW,eAAe;IAC5B,qDAAqD;IACrD,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,yDAAyD;IACzD,OAAO,CAAC,EAAE,MAAM,CAAC,OAAO,EAAE,CAAA;IAC1B,4DAA4D;IAC5D,UAAU,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAChC,oDAAoD;IACpD,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;CACjC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,iBAAiB,EAAE,OAAO,GAAE,eAAoB,GAAG,MAAM,IAAI,CAuD1G"}
@@ -0,0 +1,79 @@
1
+ /**
2
+ * Setup graceful shutdown handlers for a DigitalTwinEngine
3
+ *
4
+ * This helper registers signal handlers for graceful shutdown in production.
5
+ * It handles SIGTERM (from Kubernetes/Docker) and SIGINT (Ctrl+C) by default.
6
+ *
7
+ * @param engine The DigitalTwinEngine instance to shut down
8
+ * @param options Configuration options
9
+ * @returns Cleanup function to remove signal handlers
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * import { DigitalTwinEngine, setupGracefulShutdown } from 'digitaltwin-core'
14
+ *
15
+ * const engine = new DigitalTwinEngine({ ... })
16
+ *
17
+ * // Setup graceful shutdown before starting
18
+ * const cleanup = setupGracefulShutdown(engine, {
19
+ * timeout: 30000,
20
+ * signals: ['SIGTERM', 'SIGINT', 'SIGQUIT'],
21
+ * onShutdown: async () => {
22
+ * console.log('Performing custom cleanup...')
23
+ * }
24
+ * })
25
+ *
26
+ * await engine.start()
27
+ *
28
+ * // Later, if you need to remove handlers:
29
+ * // cleanup()
30
+ * ```
31
+ */
32
+ export function setupGracefulShutdown(engine, options = {}) {
33
+ const { timeout = 30000, signals = ['SIGTERM', 'SIGINT'], onShutdown, logger = console.log } = options;
34
+ let isShuttingDown = false;
35
+ const shutdown = async (signal) => {
36
+ if (isShuttingDown) {
37
+ logger(`[Shutdown] Already shutting down, ignoring ${signal}`);
38
+ return;
39
+ }
40
+ isShuttingDown = true;
41
+ logger(`[Shutdown] Received ${signal}, initiating graceful shutdown...`);
42
+ // Set global timeout for force exit
43
+ const forceExitTimer = setTimeout(() => {
44
+ logger('[Shutdown] Timeout exceeded, forcing exit');
45
+ process.exit(1);
46
+ }, timeout);
47
+ forceExitTimer.unref();
48
+ try {
49
+ // Run custom shutdown logic first
50
+ if (onShutdown) {
51
+ await onShutdown();
52
+ }
53
+ // Stop the engine
54
+ await engine.stop();
55
+ clearTimeout(forceExitTimer);
56
+ logger('[Shutdown] Graceful shutdown completed');
57
+ process.exit(0);
58
+ }
59
+ catch (error) {
60
+ logger(`[Shutdown] Error during shutdown: ${error instanceof Error ? error.message : String(error)}`);
61
+ process.exit(1);
62
+ }
63
+ };
64
+ // Register signal handlers
65
+ const handlers = new Map();
66
+ signals.forEach(signal => {
67
+ const handler = () => shutdown(signal);
68
+ handlers.set(signal, handler);
69
+ process.on(signal, handler);
70
+ });
71
+ // Return cleanup function
72
+ return () => {
73
+ handlers.forEach((handler, signal) => {
74
+ process.removeListener(signal, handler);
75
+ });
76
+ handlers.clear();
77
+ };
78
+ }
79
+ //# sourceMappingURL=graceful_shutdown.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graceful_shutdown.js","sourceRoot":"","sources":["../src/graceful_shutdown.ts"],"names":[],"mappings":"AAaA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAyB,EAAE,UAA2B,EAAE;IAC1F,MAAM,EAAE,OAAO,GAAG,KAAK,EAAE,OAAO,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,OAAO,CAAA;IAEtG,IAAI,cAAc,GAAG,KAAK,CAAA;IAE1B,MAAM,QAAQ,GAAG,KAAK,EAAE,MAAc,EAAE,EAAE;QACtC,IAAI,cAAc,EAAE,CAAC;YACjB,MAAM,CAAC,8CAA8C,MAAM,EAAE,CAAC,CAAA;YAC9D,OAAM;QACV,CAAC;QAED,cAAc,GAAG,IAAI,CAAA;QACrB,MAAM,CAAC,uBAAuB,MAAM,mCAAmC,CAAC,CAAA;QAExE,oCAAoC;QACpC,MAAM,cAAc,GAAG,UAAU,CAAC,GAAG,EAAE;YACnC,MAAM,CAAC,2CAA2C,CAAC,CAAA;YACnD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACnB,CAAC,EAAE,OAAO,CAAC,CAAA;QACX,cAAc,CAAC,KAAK,EAAE,CAAA;QAEtB,IAAI,CAAC;YACD,kCAAkC;YAClC,IAAI,UAAU,EAAE,CAAC;gBACb,MAAM,UAAU,EAAE,CAAA;YACtB,CAAC;YAED,kBAAkB;YAClB,MAAM,MAAM,CAAC,IAAI,EAAE,CAAA;YAEnB,YAAY,CAAC,cAAc,CAAC,CAAA;YAC5B,MAAM,CAAC,wCAAwC,CAAC,CAAA;YAChD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACnB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,CAAC,qCAAqC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;YACrG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACnB,CAAC;IACL,CAAC,CAAA;IAED,2BAA2B;IAC3B,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA8B,CAAA;IAEtD,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;QACrB,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;QACtC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QAC7B,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC/B,CAAC,CAAC,CAAA;IAEF,0BAA0B;IAC1B,OAAO,GAAG,EAAE;QACR,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACjC,OAAO,CAAC,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QAC3C,CAAC,CAAC,CAAA;QACF,QAAQ,CAAC,KAAK,EAAE,CAAA;IACpB,CAAC,CAAA;AACL,CAAC"}