digitaltwin-core 0.14.3 → 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 (123) hide show
  1. package/README.md +135 -0
  2. package/dist/auth/apisix_parser.d.ts +46 -51
  3. package/dist/auth/apisix_parser.d.ts.map +1 -1
  4. package/dist/auth/apisix_parser.js +62 -86
  5. package/dist/auth/apisix_parser.js.map +1 -1
  6. package/dist/auth/auth_provider.d.ts +118 -0
  7. package/dist/auth/auth_provider.d.ts.map +1 -0
  8. package/dist/auth/auth_provider.js +8 -0
  9. package/dist/auth/auth_provider.js.map +1 -0
  10. package/dist/auth/auth_provider_factory.d.ts +91 -0
  11. package/dist/auth/auth_provider_factory.d.ts.map +1 -0
  12. package/dist/auth/auth_provider_factory.js +146 -0
  13. package/dist/auth/auth_provider_factory.js.map +1 -0
  14. package/dist/auth/index.d.ts +3 -0
  15. package/dist/auth/index.d.ts.map +1 -1
  16. package/dist/auth/index.js +3 -0
  17. package/dist/auth/index.js.map +1 -1
  18. package/dist/auth/providers/gateway_auth_provider.d.ts +78 -0
  19. package/dist/auth/providers/gateway_auth_provider.d.ts.map +1 -0
  20. package/dist/auth/providers/gateway_auth_provider.js +109 -0
  21. package/dist/auth/providers/gateway_auth_provider.js.map +1 -0
  22. package/dist/auth/providers/index.d.ts +4 -0
  23. package/dist/auth/providers/index.d.ts.map +1 -0
  24. package/dist/auth/providers/index.js +4 -0
  25. package/dist/auth/providers/index.js.map +1 -0
  26. package/dist/auth/providers/jwt_auth_provider.d.ts +91 -0
  27. package/dist/auth/providers/jwt_auth_provider.d.ts.map +1 -0
  28. package/dist/auth/providers/jwt_auth_provider.js +204 -0
  29. package/dist/auth/providers/jwt_auth_provider.js.map +1 -0
  30. package/dist/auth/providers/no_auth_provider.d.ts +61 -0
  31. package/dist/auth/providers/no_auth_provider.d.ts.map +1 -0
  32. package/dist/auth/providers/no_auth_provider.js +76 -0
  33. package/dist/auth/providers/no_auth_provider.js.map +1 -0
  34. package/dist/components/assets_manager.d.ts +1 -1
  35. package/dist/components/assets_manager.d.ts.map +1 -1
  36. package/dist/components/assets_manager.js +52 -44
  37. package/dist/components/assets_manager.js.map +1 -1
  38. package/dist/components/collector.d.ts.map +1 -1
  39. package/dist/components/collector.js +30 -18
  40. package/dist/components/collector.js.map +1 -1
  41. package/dist/components/custom_table_manager.d.ts.map +1 -1
  42. package/dist/components/custom_table_manager.js +36 -65
  43. package/dist/components/custom_table_manager.js.map +1 -1
  44. package/dist/components/harvester.d.ts.map +1 -1
  45. package/dist/components/harvester.js +46 -33
  46. package/dist/components/harvester.js.map +1 -1
  47. package/dist/components/tileset_manager.d.ts.map +1 -1
  48. package/dist/components/tileset_manager.js +20 -15
  49. package/dist/components/tileset_manager.js.map +1 -1
  50. package/dist/database/adapters/knex_database_adapter.d.ts +5 -0
  51. package/dist/database/adapters/knex_database_adapter.d.ts.map +1 -1
  52. package/dist/database/adapters/knex_database_adapter.js +116 -34
  53. package/dist/database/adapters/knex_database_adapter.js.map +1 -1
  54. package/dist/database/database_adapter.d.ts +11 -0
  55. package/dist/database/database_adapter.d.ts.map +1 -1
  56. package/dist/database/database_adapter.js.map +1 -1
  57. package/dist/engine/digital_twin_engine.d.ts +48 -6
  58. package/dist/engine/digital_twin_engine.d.ts.map +1 -1
  59. package/dist/engine/digital_twin_engine.js +175 -48
  60. package/dist/engine/digital_twin_engine.js.map +1 -1
  61. package/dist/engine/endpoints.d.ts.map +1 -1
  62. package/dist/engine/endpoints.js +35 -3
  63. package/dist/engine/endpoints.js.map +1 -1
  64. package/dist/engine/error_handler.d.ts +20 -0
  65. package/dist/engine/error_handler.d.ts.map +1 -0
  66. package/dist/engine/error_handler.js +69 -0
  67. package/dist/engine/error_handler.js.map +1 -0
  68. package/dist/engine/health.d.ts +112 -0
  69. package/dist/engine/health.d.ts.map +1 -0
  70. package/dist/engine/health.js +190 -0
  71. package/dist/engine/health.js.map +1 -0
  72. package/dist/engine/scheduler.d.ts.map +1 -1
  73. package/dist/engine/scheduler.js +9 -1
  74. package/dist/engine/scheduler.js.map +1 -1
  75. package/dist/engine/upload_processor.d.ts.map +1 -1
  76. package/dist/engine/upload_processor.js +24 -12
  77. package/dist/engine/upload_processor.js.map +1 -1
  78. package/dist/errors/index.d.ts +94 -0
  79. package/dist/errors/index.d.ts.map +1 -0
  80. package/dist/errors/index.js +149 -0
  81. package/dist/errors/index.js.map +1 -0
  82. package/dist/index.d.ts +6 -0
  83. package/dist/index.d.ts.map +1 -1
  84. package/dist/index.js +8 -0
  85. package/dist/index.js.map +1 -1
  86. package/dist/storage/adapters/local_storage_service.d.ts +6 -0
  87. package/dist/storage/adapters/local_storage_service.d.ts.map +1 -1
  88. package/dist/storage/adapters/local_storage_service.js +26 -4
  89. package/dist/storage/adapters/local_storage_service.js.map +1 -1
  90. package/dist/storage/adapters/ovh_storage_service.d.ts.map +1 -1
  91. package/dist/storage/adapters/ovh_storage_service.js +5 -6
  92. package/dist/storage/adapters/ovh_storage_service.js.map +1 -1
  93. package/dist/storage/storage_factory.d.ts.map +1 -1
  94. package/dist/storage/storage_factory.js +4 -1
  95. package/dist/storage/storage_factory.js.map +1 -1
  96. package/dist/storage/storage_service.d.ts.map +1 -1
  97. package/dist/storage/storage_service.js +6 -2
  98. package/dist/storage/storage_service.js.map +1 -1
  99. package/dist/utils/graceful_shutdown.d.ts +44 -0
  100. package/dist/utils/graceful_shutdown.d.ts.map +1 -0
  101. package/dist/utils/graceful_shutdown.js +79 -0
  102. package/dist/utils/graceful_shutdown.js.map +1 -0
  103. package/dist/utils/http_responses.d.ts +20 -0
  104. package/dist/utils/http_responses.d.ts.map +1 -1
  105. package/dist/utils/http_responses.js +28 -2
  106. package/dist/utils/http_responses.js.map +1 -1
  107. package/dist/utils/safe_async.d.ts +50 -0
  108. package/dist/utils/safe_async.d.ts.map +1 -0
  109. package/dist/utils/safe_async.js +90 -0
  110. package/dist/utils/safe_async.js.map +1 -0
  111. package/dist/validation/index.d.ts +3 -0
  112. package/dist/validation/index.d.ts.map +1 -0
  113. package/dist/validation/index.js +7 -0
  114. package/dist/validation/index.js.map +1 -0
  115. package/dist/validation/schemas.d.ts +273 -0
  116. package/dist/validation/schemas.d.ts.map +1 -0
  117. package/dist/validation/schemas.js +82 -0
  118. package/dist/validation/schemas.js.map +1 -0
  119. package/dist/validation/validate.d.ts +49 -0
  120. package/dist/validation/validate.d.ts.map +1 -0
  121. package/dist/validation/validate.js +110 -0
  122. package/dist/validation/validate.js.map +1 -0
  123. package/package.json +9 -1
@@ -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"}
@@ -0,0 +1,190 @@
1
+ /**
2
+ * Health checker with support for custom checks
3
+ */
4
+ export class HealthChecker {
5
+ #checks = new Map();
6
+ #componentCounts;
7
+ #version;
8
+ /**
9
+ * Register a custom health check
10
+ * @param name Unique name for the check
11
+ * @param checkFn Function that performs the check
12
+ *
13
+ * @example
14
+ * ```typescript
15
+ * healthChecker.registerCheck('external-api', async () => {
16
+ * try {
17
+ * await fetch('https://api.example.com/health')
18
+ * return { status: 'up' }
19
+ * } catch (error) {
20
+ * return { status: 'down', error: error.message }
21
+ * }
22
+ * })
23
+ * ```
24
+ */
25
+ registerCheck(name, checkFn) {
26
+ this.#checks.set(name, checkFn);
27
+ }
28
+ /**
29
+ * Remove a health check
30
+ * @param name Name of the check to remove
31
+ */
32
+ removeCheck(name) {
33
+ return this.#checks.delete(name);
34
+ }
35
+ /**
36
+ * Get list of registered check names
37
+ */
38
+ getCheckNames() {
39
+ return Array.from(this.#checks.keys());
40
+ }
41
+ /**
42
+ * Set component counts for health status
43
+ */
44
+ setComponentCounts(counts) {
45
+ this.#componentCounts = counts;
46
+ }
47
+ /**
48
+ * Set version for health status
49
+ */
50
+ setVersion(version) {
51
+ this.#version = version;
52
+ }
53
+ /**
54
+ * Perform all registered health checks
55
+ */
56
+ async performCheck() {
57
+ const checks = {};
58
+ // Run all checks in parallel
59
+ const entries = Array.from(this.#checks.entries());
60
+ const results = await Promise.all(entries.map(async ([name, checkFn]) => {
61
+ const start = Date.now();
62
+ try {
63
+ const result = await checkFn();
64
+ return [name, { ...result, latency: result.latency ?? Date.now() - start }];
65
+ }
66
+ catch (error) {
67
+ return [
68
+ name,
69
+ {
70
+ status: 'down',
71
+ latency: Date.now() - start,
72
+ error: error instanceof Error ? error.message : 'Unknown error'
73
+ }
74
+ ];
75
+ }
76
+ }));
77
+ results.forEach(([name, result]) => {
78
+ checks[name] = result;
79
+ });
80
+ // Determine overall status
81
+ const allChecks = Object.values(checks);
82
+ const anyDown = allChecks.some(c => c.status === 'down');
83
+ const databaseDown = checks['database']?.status === 'down';
84
+ let status;
85
+ if (databaseDown) {
86
+ status = 'unhealthy';
87
+ }
88
+ else if (anyDown) {
89
+ status = 'degraded';
90
+ }
91
+ else {
92
+ status = 'healthy';
93
+ }
94
+ return {
95
+ status,
96
+ timestamp: new Date().toISOString(),
97
+ uptime: process.uptime(),
98
+ ...(this.#version && { version: this.#version }),
99
+ checks,
100
+ ...(this.#componentCounts && { components: this.#componentCounts })
101
+ };
102
+ }
103
+ }
104
+ /**
105
+ * Create a database health check function
106
+ */
107
+ export function createDatabaseCheck(db) {
108
+ return async () => {
109
+ const start = Date.now();
110
+ try {
111
+ // Use doesTableExists as a ping - it will fail if DB is unreachable
112
+ await db.doesTableExists('_health_check_ping');
113
+ return { status: 'up', latency: Date.now() - start };
114
+ }
115
+ catch (error) {
116
+ return {
117
+ status: 'down',
118
+ latency: Date.now() - start,
119
+ error: error instanceof Error ? error.message : 'Unknown error'
120
+ };
121
+ }
122
+ };
123
+ }
124
+ /**
125
+ * Create a Redis health check function via QueueManager
126
+ */
127
+ export function createRedisCheck(qm) {
128
+ return async () => {
129
+ const start = Date.now();
130
+ try {
131
+ await qm.getQueueStats();
132
+ return { status: 'up', latency: Date.now() - start };
133
+ }
134
+ catch (error) {
135
+ return {
136
+ status: 'down',
137
+ latency: Date.now() - start,
138
+ error: error instanceof Error ? error.message : 'Unknown error'
139
+ };
140
+ }
141
+ };
142
+ }
143
+ /**
144
+ * Create a storage health check function
145
+ */
146
+ export function createStorageCheck(storage) {
147
+ return async () => {
148
+ const start = Date.now();
149
+ try {
150
+ if ('checkConnection' in storage && typeof storage.checkConnection === 'function') {
151
+ await storage.checkConnection();
152
+ }
153
+ return { status: 'up', latency: Date.now() - start };
154
+ }
155
+ catch (error) {
156
+ return {
157
+ status: 'down',
158
+ latency: Date.now() - start,
159
+ error: error instanceof Error ? error.message : 'Unknown error'
160
+ };
161
+ }
162
+ };
163
+ }
164
+ /**
165
+ * Perform deep health check on all services (convenience function)
166
+ */
167
+ export async function performHealthCheck(database, queueManager, storage, componentCounts, version) {
168
+ const checker = new HealthChecker();
169
+ checker.registerCheck('database', createDatabaseCheck(database));
170
+ if (queueManager) {
171
+ checker.registerCheck('redis', createRedisCheck(queueManager));
172
+ }
173
+ if (storage) {
174
+ checker.registerCheck('storage', createStorageCheck(storage));
175
+ }
176
+ if (componentCounts) {
177
+ checker.setComponentCounts(componentCounts);
178
+ }
179
+ if (version) {
180
+ checker.setVersion(version);
181
+ }
182
+ return checker.performCheck();
183
+ }
184
+ /**
185
+ * Simple liveness check - always returns ok if process is running
186
+ */
187
+ export function livenessCheck() {
188
+ return { status: 'ok' };
189
+ }
190
+ //# sourceMappingURL=health.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"health.js","sourceRoot":"","sources":["../../src/engine/health.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"scheduler.d.ts","sourceRoot":"","sources":["../../src/engine/scheduler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAA;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAA;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,EAAU,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AA2ZrD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAsB,kBAAkB,CACpC,UAAU,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC,EACxC,YAAY,EAAE,YAAY,EAC1B,UAAU,GAAE,OAAc,EAC1B,QAAQ,CAAC,EAAE,QAAQ,GACpB,OAAO,CAAC,MAAM,EAAE,CAAC,CAGnB"}
1
+ {"version":3,"file":"scheduler.d.ts","sourceRoot":"","sources":["../../src/engine/scheduler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAA;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAA;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,EAAU,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAqarD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAsB,kBAAkB,CACpC,UAAU,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC,EACxC,YAAY,EAAE,YAAY,EAC1B,UAAU,GAAE,OAAc,EAC1B,QAAQ,CAAC,EAAE,QAAQ,GACpB,OAAO,CAAC,MAAM,EAAE,CAAC,CAGnB"}
@@ -136,7 +136,15 @@ class ComponentScheduler {
136
136
  if (event.type !== 'collector:completed')
137
137
  return;
138
138
  this.logger.debug(`Received collector:completed event from ${event.componentName}`);
139
- await this.#triggerDependentHarvesters(event.componentName);
139
+ try {
140
+ await this.#triggerDependentHarvesters(event.componentName);
141
+ }
142
+ catch (error) {
143
+ this.logger.error(`Failed to trigger harvesters for ${event.componentName}: ${error instanceof Error ? error.message : String(error)}`, {
144
+ componentName: event.componentName,
145
+ stack: error instanceof Error ? error.stack : undefined
146
+ });
147
+ }
140
148
  });
141
149
  }
142
150
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../../src/engine/scheduler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../../src/engine/scheduler.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"upload_processor.d.ts","sourceRoot":"","sources":["../../src/engine/upload_processor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAA;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AACnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAA;AAItE,MAAM,WAAW,oBAAoB;IACjC,IAAI,EAAE,SAAS,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,EAAE,MAAM,CAAA;IACpB,aAAa,EAAE,MAAM,CAAA;IACrB,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,MAAM,aAAa,GAAG,oBAAoB,CAAA;AAChD,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,YAAY,GAAG,WAAW,GAAG,QAAQ,CAAA;AAE5E;;;;;;;;;GASG;AACH,qBAAa,eAAe;IACxB,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,EAAE,CAAiB;gBAEf,OAAO,EAAE,cAAc,EAAE,EAAE,EAAE,eAAe;IAKxD,KAAK,CAAC,UAAU,EAAE,iBAAiB,GAAG,IAAI;IAWpC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;YAOb,UAAU;YAQV,oBAAoB;YAiEpB,kBAAkB;CAGnC"}
1
+ {"version":3,"file":"upload_processor.d.ts","sourceRoot":"","sources":["../../src/engine/upload_processor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAA;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AACnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAA;AAQtE,MAAM,WAAW,oBAAoB;IACjC,IAAI,EAAE,SAAS,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,EAAE,MAAM,CAAA;IACpB,aAAa,EAAE,MAAM,CAAA;IACrB,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,MAAM,aAAa,GAAG,oBAAoB,CAAA;AAChD,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,YAAY,GAAG,WAAW,GAAG,QAAQ,CAAA;AAE5E;;;;;;;;;GASG;AACH,qBAAa,eAAe;IACxB,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,EAAE,CAAiB;gBAEf,OAAO,EAAE,cAAc,EAAE,EAAE,EAAE,eAAe;IAKxD,KAAK,CAAC,UAAU,EAAE,iBAAiB,GAAG,IAAI;IAWpC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;YAOb,UAAU;YAQV,oBAAoB;YAsFpB,kBAAkB;CAGnC"}
@@ -1,6 +1,9 @@
1
1
  import { Worker } from 'bullmq';
2
2
  import { extractAndStoreArchive } from '../utils/zip_utils.js';
3
+ import { safeAsync, safeCleanup } from '../utils/safe_async.js';
4
+ import { Logger } from '../utils/logger.js';
3
5
  import fs from 'fs/promises';
6
+ const logger = new Logger('UploadProcessor');
4
7
  /**
5
8
  * Background worker for processing large file uploads (tileset extraction).
6
9
  * Prevents HTTP timeout by queuing jobs and processing asynchronously.
@@ -58,8 +61,11 @@ export class UploadProcessor {
58
61
  await job.updateProgress(80);
59
62
  // Validate tileset.json exists
60
63
  if (!extractResult.root_file) {
61
- // Clean up uploaded files
62
- await this.storage.deleteByPrefix(basePath).catch(() => { });
64
+ // Clean up uploaded files (basePath is always set at this point)
65
+ if (basePath) {
66
+ const pathToDelete = basePath;
67
+ await safeAsync(() => this.storage.deleteByPrefix(pathToDelete), 'cleanup storage on invalid tileset', logger);
68
+ }
63
69
  throw new Error('Invalid tileset: no tileset.json found in the ZIP archive');
64
70
  }
65
71
  // Build the public URL for tileset.json
@@ -73,24 +79,30 @@ export class UploadProcessor {
73
79
  });
74
80
  await job.updateProgress(90);
75
81
  // Clean up temp file
76
- await fs.unlink(tempFilePath).catch(() => { });
82
+ await safeAsync(() => fs.unlink(tempFilePath), 'cleanup temp file after upload', logger);
77
83
  await job.updateProgress(100);
78
- console.log(`[UploadProcessor] Tileset ${recordId} uploaded: ${extractResult.file_count} files`);
84
+ logger.info(`Tileset ${recordId} uploaded: ${extractResult.file_count} files`);
79
85
  }
80
86
  catch (error) {
81
87
  // Update record as failed (don't delete - keep for debugging)
82
88
  const errorMessage = error instanceof Error ? error.message : 'Unknown error';
83
- await this.db
84
- .updateById(componentName, recordId, {
89
+ await safeAsync(() => this.db.updateById(componentName, recordId, {
85
90
  upload_status: 'failed',
86
91
  upload_error: errorMessage
87
- })
88
- .catch(() => { });
92
+ }), 'update record status to failed', logger);
89
93
  // Clean up: uploaded files and temp file
90
- if (basePath) {
91
- await this.storage.deleteByPrefix(basePath).catch(() => { });
92
- }
93
- await fs.unlink(tempFilePath).catch(() => { });
94
+ const pathToClean = basePath; // Capture for closure
95
+ await safeCleanup([
96
+ ...(pathToClean
97
+ ? [
98
+ {
99
+ operation: () => this.storage.deleteByPrefix(pathToClean),
100
+ context: 'cleanup storage on upload error'
101
+ }
102
+ ]
103
+ : []),
104
+ { operation: () => fs.unlink(tempFilePath), context: 'cleanup temp file on upload error' }
105
+ ], logger);
94
106
  throw error;
95
107
  }
96
108
  }
@@ -1 +1 @@
1
- {"version":3,"file":"upload_processor.js","sourceRoot":"","sources":["../../src/engine/upload_processor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"upload_processor.js","sourceRoot":"","sources":["../../src/engine/upload_processor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAY,MAAM,QAAQ,CAAA;AAIzC,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AAC9D,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAC3C,OAAO,EAAE,MAAM,aAAa,CAAA;AAE5B,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,iBAAiB,CAAC,CAAA;AAe5C;;;;;;;;;GASG;AACH,MAAM,OAAO,eAAe;IAKxB,YAAY,OAAuB,EAAE,EAAmB;QAJhD,WAAM,GAAkB,IAAI,CAAA;QAKhC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;IAChB,CAAC;IAED,KAAK,CAAC,UAA6B;QAC/B,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC,YAAY,EAAE,KAAK,EAAE,GAAuB,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;YAC5F,UAAU;YACV,WAAW,EAAE,CAAC;YACd,OAAO,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE;SACvC,CAAC,CAAA;QAEF,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,WAAW,EAAE,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,yBAAyB,GAAG,CAAC,EAAE,YAAY,CAAC,CAAC,CAAA;QAC5F,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,yBAAyB,GAAG,EAAE,EAAE,UAAU,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAA;IAClH,CAAC;IAED,KAAK,CAAC,IAAI;QACN,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAA;YACzB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;QACtB,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,UAAU,CAAC,GAAuB;QAC5C,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC9B,MAAM,IAAI,CAAC,oBAAoB,CAAC,GAAgC,CAAC,CAAA;QACrE,CAAC;aAAM,CAAC;YACJ,MAAM,IAAI,KAAK,CAAC,4BAA6B,GAAG,CAAC,IAAY,CAAC,IAAI,EAAE,CAAC,CAAA;QACzE,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,oBAAoB,CAAC,GAA8B;QAC7D,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,aAAa,EAAE,GAAG,GAAG,CAAC,IAAI,CAAA;QAC1D,IAAI,QAAQ,GAAkB,IAAI,CAAA;QAElC,IAAI,CAAC;YACD,MAAM,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,aAAa,EAAE,YAAY,CAAC,CAAA;YACpE,MAAM,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC,CAAA;YAE5B,gBAAgB;YAChB,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;gBAC1D,MAAM,IAAI,KAAK,CAAC,6BAA6B,GAAG,CAAC,OAAO,EAAE,CAAC,CAAA;YAC/D,CAAC,CAAC,CAAA;YACF,MAAM,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC,CAAA;YAE5B,4BAA4B;YAC5B,QAAQ,GAAG,GAAG,aAAa,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,CAAA;YAE3C,0CAA0C;YAC1C,MAAM,aAAa,GAAG,MAAM,sBAAsB,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;YACrF,MAAM,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC,CAAA;YAE5B,+BAA+B;YAC/B,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC;gBAC3B,iEAAiE;gBACjE,IAAI,QAAQ,EAAE,CAAC;oBACX,MAAM,YAAY,GAAG,QAAQ,CAAA;oBAC7B,MAAM,SAAS,CACX,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,YAAY,CAAC,EAC/C,oCAAoC,EACpC,MAAM,CACT,CAAA;gBACL,CAAC;gBACD,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAA;YAChF,CAAC;YAED,wCAAwC;YACxC,MAAM,WAAW,GAAG,GAAG,QAAQ,IAAI,aAAa,CAAC,SAAS,EAAE,CAAA;YAC5D,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC,CAAA;YAEzD,uDAAuD;YACvD,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,EAAE,QAAQ,EAAE;gBAC9C,GAAG,EAAE,QAAQ;gBACb,WAAW,EAAE,UAAU;gBACvB,aAAa,EAAE,WAAW;aAC7B,CAAC,CAAA;YACF,MAAM,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC,CAAA;YAE5B,qBAAqB;YACrB,MAAM,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,gCAAgC,EAAE,MAAM,CAAC,CAAA;YACxF,MAAM,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,CAAA;YAE7B,MAAM,CAAC,IAAI,CAAC,WAAW,QAAQ,cAAc,aAAa,CAAC,UAAU,QAAQ,CAAC,CAAA;QAClF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,8DAA8D;YAC9D,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAA;YAC7E,MAAM,SAAS,CACX,GAAG,EAAE,CACD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,EAAE,QAAQ,EAAE;gBACxC,aAAa,EAAE,QAAQ;gBACvB,YAAY,EAAE,YAAY;aAC7B,CAAC,EACN,gCAAgC,EAChC,MAAM,CACT,CAAA;YAED,yCAAyC;YACzC,MAAM,WAAW,GAAG,QAAQ,CAAA,CAAC,sBAAsB;YACnD,MAAM,WAAW,CACb;gBACI,GAAG,CAAC,WAAW;oBACX,CAAC,CAAC;wBACI;4BACI,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,WAAW,CAAC;4BACzD,OAAO,EAAE,iCAAiC;yBAC7C;qBACJ;oBACH,CAAC,CAAC,EAAE,CAAC;gBACT,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,mCAAmC,EAAE;aAC7F,EACD,MAAM,CACT,CAAA;YAED,MAAM,KAAK,CAAA;QACf,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAAC,EAAU,EAAE,SAAiB,EAAE,MAAoB;QAChF,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,CAAA;IACtE,CAAC;CACJ"}
@@ -0,0 +1,94 @@
1
+ /**
2
+ * Custom error classes for Digital Twin framework
3
+ * Provides structured error handling with codes, status codes, and context
4
+ */
5
+ /**
6
+ * Base error class for all Digital Twin errors
7
+ */
8
+ export declare abstract class DigitalTwinError extends Error {
9
+ abstract readonly code: string;
10
+ abstract readonly statusCode: number;
11
+ readonly timestamp: Date;
12
+ readonly context?: Record<string, unknown>;
13
+ constructor(message: string, context?: Record<string, unknown>);
14
+ toJSON(): Record<string, unknown>;
15
+ }
16
+ /**
17
+ * Validation error - invalid input data (422 Unprocessable Entity)
18
+ */
19
+ export declare class ValidationError extends DigitalTwinError {
20
+ readonly code: "VALIDATION_ERROR";
21
+ readonly statusCode: 422;
22
+ }
23
+ /**
24
+ * Resource not found (404)
25
+ */
26
+ export declare class NotFoundError extends DigitalTwinError {
27
+ readonly code: "NOT_FOUND";
28
+ readonly statusCode: 404;
29
+ }
30
+ /**
31
+ * Authentication required or invalid credentials (401)
32
+ */
33
+ export declare class AuthenticationError extends DigitalTwinError {
34
+ readonly code: "AUTHENTICATION_ERROR";
35
+ readonly statusCode: 401;
36
+ }
37
+ /**
38
+ * Insufficient permissions (403)
39
+ */
40
+ export declare class AuthorizationError extends DigitalTwinError {
41
+ readonly code: "AUTHORIZATION_ERROR";
42
+ readonly statusCode: 403;
43
+ }
44
+ /**
45
+ * Storage operation failed (500)
46
+ */
47
+ export declare class StorageError extends DigitalTwinError {
48
+ readonly code: "STORAGE_ERROR";
49
+ readonly statusCode: 500;
50
+ }
51
+ /**
52
+ * Database operation failed (500)
53
+ */
54
+ export declare class DatabaseError extends DigitalTwinError {
55
+ readonly code: "DATABASE_ERROR";
56
+ readonly statusCode: 500;
57
+ }
58
+ /**
59
+ * External service (API) error (502)
60
+ */
61
+ export declare class ExternalServiceError extends DigitalTwinError {
62
+ readonly code: "EXTERNAL_SERVICE_ERROR";
63
+ readonly statusCode: 502;
64
+ }
65
+ /**
66
+ * Configuration error (500)
67
+ */
68
+ export declare class ConfigurationError extends DigitalTwinError {
69
+ readonly code: "CONFIGURATION_ERROR";
70
+ readonly statusCode: 500;
71
+ }
72
+ /**
73
+ * Queue/Job processing error (500)
74
+ */
75
+ export declare class QueueError extends DigitalTwinError {
76
+ readonly code: "QUEUE_ERROR";
77
+ readonly statusCode: 500;
78
+ }
79
+ /**
80
+ * File operation error (500)
81
+ */
82
+ export declare class FileOperationError extends DigitalTwinError {
83
+ readonly code: "FILE_OPERATION_ERROR";
84
+ readonly statusCode: 500;
85
+ }
86
+ /**
87
+ * Type guard to check if an error is a DigitalTwinError
88
+ */
89
+ export declare function isDigitalTwinError(error: unknown): error is DigitalTwinError;
90
+ /**
91
+ * Wraps an unknown error into a DigitalTwinError
92
+ */
93
+ export declare function wrapError(error: unknown, ErrorClass?: typeof DigitalTwinError): DigitalTwinError;
94
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,8BAAsB,gBAAiB,SAAQ,KAAK;IAChD,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IACpC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAa;IACrC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;gBAE9B,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAU9D,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAWpC;AAED;;GAEG;AACH,qBAAa,eAAgB,SAAQ,gBAAgB;IACjD,QAAQ,CAAC,IAAI,EAAG,kBAAkB,CAAS;IAC3C,QAAQ,CAAC,UAAU,EAAG,GAAG,CAAS;CACrC;AAED;;GAEG;AACH,qBAAa,aAAc,SAAQ,gBAAgB;IAC/C,QAAQ,CAAC,IAAI,EAAG,WAAW,CAAS;IACpC,QAAQ,CAAC,UAAU,EAAG,GAAG,CAAS;CACrC;AAED;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,gBAAgB;IACrD,QAAQ,CAAC,IAAI,EAAG,sBAAsB,CAAS;IAC/C,QAAQ,CAAC,UAAU,EAAG,GAAG,CAAS;CACrC;AAED;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,gBAAgB;IACpD,QAAQ,CAAC,IAAI,EAAG,qBAAqB,CAAS;IAC9C,QAAQ,CAAC,UAAU,EAAG,GAAG,CAAS;CACrC;AAED;;GAEG;AACH,qBAAa,YAAa,SAAQ,gBAAgB;IAC9C,QAAQ,CAAC,IAAI,EAAG,eAAe,CAAS;IACxC,QAAQ,CAAC,UAAU,EAAG,GAAG,CAAS;CACrC;AAED;;GAEG;AACH,qBAAa,aAAc,SAAQ,gBAAgB;IAC/C,QAAQ,CAAC,IAAI,EAAG,gBAAgB,CAAS;IACzC,QAAQ,CAAC,UAAU,EAAG,GAAG,CAAS;CACrC;AAED;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,gBAAgB;IACtD,QAAQ,CAAC,IAAI,EAAG,wBAAwB,CAAS;IACjD,QAAQ,CAAC,UAAU,EAAG,GAAG,CAAS;CACrC;AAED;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,gBAAgB;IACpD,QAAQ,CAAC,IAAI,EAAG,qBAAqB,CAAS;IAC9C,QAAQ,CAAC,UAAU,EAAG,GAAG,CAAS;CACrC;AAED;;GAEG;AACH,qBAAa,UAAW,SAAQ,gBAAgB;IAC5C,QAAQ,CAAC,IAAI,EAAG,aAAa,CAAS;IACtC,QAAQ,CAAC,UAAU,EAAG,GAAG,CAAS;CACrC;AAED;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,gBAAgB;IACpD,QAAQ,CAAC,IAAI,EAAG,sBAAsB,CAAS;IAC/C,QAAQ,CAAC,UAAU,EAAG,GAAG,CAAS;CACrC;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,gBAAgB,CAE5E;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,GAAE,OAAO,gBAA+B,GAAG,gBAAgB,CAU9G"}