digitaltwin-core 0.14.0 → 0.14.1

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 (169) hide show
  1. package/package.json +101 -106
  2. package/dist/auth/apisix_parser.d.ts +0 -146
  3. package/dist/auth/apisix_parser.d.ts.map +0 -1
  4. package/dist/auth/apisix_parser.js +0 -185
  5. package/dist/auth/apisix_parser.js.map +0 -1
  6. package/dist/auth/auth_config.d.ts +0 -126
  7. package/dist/auth/auth_config.d.ts.map +0 -1
  8. package/dist/auth/auth_config.js +0 -169
  9. package/dist/auth/auth_config.js.map +0 -1
  10. package/dist/auth/index.d.ts +0 -5
  11. package/dist/auth/index.d.ts.map +0 -1
  12. package/dist/auth/index.js +0 -4
  13. package/dist/auth/index.js.map +0 -1
  14. package/dist/auth/types.d.ts +0 -100
  15. package/dist/auth/types.d.ts.map +0 -1
  16. package/dist/auth/types.js +0 -2
  17. package/dist/auth/types.js.map +0 -1
  18. package/dist/auth/user_service.d.ts +0 -86
  19. package/dist/auth/user_service.d.ts.map +0 -1
  20. package/dist/auth/user_service.js +0 -237
  21. package/dist/auth/user_service.js.map +0 -1
  22. package/dist/components/assets_manager.d.ts +0 -662
  23. package/dist/components/assets_manager.d.ts.map +0 -1
  24. package/dist/components/assets_manager.js +0 -1529
  25. package/dist/components/assets_manager.js.map +0 -1
  26. package/dist/components/async_upload.d.ts +0 -20
  27. package/dist/components/async_upload.d.ts.map +0 -1
  28. package/dist/components/async_upload.js +0 -10
  29. package/dist/components/async_upload.js.map +0 -1
  30. package/dist/components/collector.d.ts +0 -203
  31. package/dist/components/collector.d.ts.map +0 -1
  32. package/dist/components/collector.js +0 -202
  33. package/dist/components/collector.js.map +0 -1
  34. package/dist/components/custom_table_manager.d.ts +0 -503
  35. package/dist/components/custom_table_manager.d.ts.map +0 -1
  36. package/dist/components/custom_table_manager.js +0 -1052
  37. package/dist/components/custom_table_manager.js.map +0 -1
  38. package/dist/components/global_assets_handler.d.ts +0 -63
  39. package/dist/components/global_assets_handler.d.ts.map +0 -1
  40. package/dist/components/global_assets_handler.js +0 -127
  41. package/dist/components/global_assets_handler.js.map +0 -1
  42. package/dist/components/handler.d.ts +0 -104
  43. package/dist/components/handler.d.ts.map +0 -1
  44. package/dist/components/handler.js +0 -110
  45. package/dist/components/handler.js.map +0 -1
  46. package/dist/components/harvester.d.ts +0 -182
  47. package/dist/components/harvester.d.ts.map +0 -1
  48. package/dist/components/harvester.js +0 -393
  49. package/dist/components/harvester.js.map +0 -1
  50. package/dist/components/index.d.ts +0 -11
  51. package/dist/components/index.d.ts.map +0 -1
  52. package/dist/components/index.js +0 -9
  53. package/dist/components/index.js.map +0 -1
  54. package/dist/components/interfaces.d.ts +0 -126
  55. package/dist/components/interfaces.d.ts.map +0 -1
  56. package/dist/components/interfaces.js +0 -8
  57. package/dist/components/interfaces.js.map +0 -1
  58. package/dist/components/map_manager.d.ts +0 -61
  59. package/dist/components/map_manager.d.ts.map +0 -1
  60. package/dist/components/map_manager.js +0 -242
  61. package/dist/components/map_manager.js.map +0 -1
  62. package/dist/components/tileset_manager.d.ts +0 -125
  63. package/dist/components/tileset_manager.d.ts.map +0 -1
  64. package/dist/components/tileset_manager.js +0 -618
  65. package/dist/components/tileset_manager.js.map +0 -1
  66. package/dist/components/types.d.ts +0 -226
  67. package/dist/components/types.d.ts.map +0 -1
  68. package/dist/components/types.js +0 -8
  69. package/dist/components/types.js.map +0 -1
  70. package/dist/database/adapters/knex_database_adapter.d.ts +0 -92
  71. package/dist/database/adapters/knex_database_adapter.d.ts.map +0 -1
  72. package/dist/database/adapters/knex_database_adapter.js +0 -647
  73. package/dist/database/adapters/knex_database_adapter.js.map +0 -1
  74. package/dist/database/database_adapter.d.ts +0 -251
  75. package/dist/database/database_adapter.d.ts.map +0 -1
  76. package/dist/database/database_adapter.js +0 -46
  77. package/dist/database/database_adapter.js.map +0 -1
  78. package/dist/engine/digital_twin_engine.d.ts +0 -253
  79. package/dist/engine/digital_twin_engine.d.ts.map +0 -1
  80. package/dist/engine/digital_twin_engine.js +0 -790
  81. package/dist/engine/digital_twin_engine.js.map +0 -1
  82. package/dist/engine/endpoints.d.ts +0 -47
  83. package/dist/engine/endpoints.d.ts.map +0 -1
  84. package/dist/engine/endpoints.js +0 -56
  85. package/dist/engine/endpoints.js.map +0 -1
  86. package/dist/engine/events.d.ts +0 -93
  87. package/dist/engine/events.d.ts.map +0 -1
  88. package/dist/engine/events.js +0 -71
  89. package/dist/engine/events.js.map +0 -1
  90. package/dist/engine/initializer.d.ts +0 -62
  91. package/dist/engine/initializer.d.ts.map +0 -1
  92. package/dist/engine/initializer.js +0 -108
  93. package/dist/engine/initializer.js.map +0 -1
  94. package/dist/engine/queue_manager.d.ts +0 -87
  95. package/dist/engine/queue_manager.d.ts.map +0 -1
  96. package/dist/engine/queue_manager.js +0 -196
  97. package/dist/engine/queue_manager.js.map +0 -1
  98. package/dist/engine/scheduler.d.ts +0 -30
  99. package/dist/engine/scheduler.d.ts.map +0 -1
  100. package/dist/engine/scheduler.js +0 -370
  101. package/dist/engine/scheduler.js.map +0 -1
  102. package/dist/engine/upload_processor.d.ts +0 -36
  103. package/dist/engine/upload_processor.d.ts.map +0 -1
  104. package/dist/engine/upload_processor.js +0 -101
  105. package/dist/engine/upload_processor.js.map +0 -1
  106. package/dist/env/env.d.ts +0 -134
  107. package/dist/env/env.d.ts.map +0 -1
  108. package/dist/env/env.js +0 -177
  109. package/dist/env/env.js.map +0 -1
  110. package/dist/index.d.ts +0 -49
  111. package/dist/index.d.ts.map +0 -1
  112. package/dist/index.js +0 -57
  113. package/dist/index.js.map +0 -1
  114. package/dist/openapi/generator.d.ts +0 -93
  115. package/dist/openapi/generator.d.ts.map +0 -1
  116. package/dist/openapi/generator.js +0 -293
  117. package/dist/openapi/generator.js.map +0 -1
  118. package/dist/openapi/index.d.ts +0 -9
  119. package/dist/openapi/index.d.ts.map +0 -1
  120. package/dist/openapi/index.js +0 -9
  121. package/dist/openapi/index.js.map +0 -1
  122. package/dist/openapi/types.d.ts +0 -182
  123. package/dist/openapi/types.d.ts.map +0 -1
  124. package/dist/openapi/types.js +0 -16
  125. package/dist/openapi/types.js.map +0 -1
  126. package/dist/storage/adapters/local_storage_service.d.ts +0 -51
  127. package/dist/storage/adapters/local_storage_service.d.ts.map +0 -1
  128. package/dist/storage/adapters/local_storage_service.js +0 -110
  129. package/dist/storage/adapters/local_storage_service.js.map +0 -1
  130. package/dist/storage/adapters/ovh_storage_service.d.ts +0 -72
  131. package/dist/storage/adapters/ovh_storage_service.d.ts.map +0 -1
  132. package/dist/storage/adapters/ovh_storage_service.js +0 -206
  133. package/dist/storage/adapters/ovh_storage_service.js.map +0 -1
  134. package/dist/storage/storage_factory.d.ts +0 -14
  135. package/dist/storage/storage_factory.d.ts.map +0 -1
  136. package/dist/storage/storage_factory.js +0 -40
  137. package/dist/storage/storage_factory.js.map +0 -1
  138. package/dist/storage/storage_service.d.ts +0 -163
  139. package/dist/storage/storage_service.d.ts.map +0 -1
  140. package/dist/storage/storage_service.js +0 -54
  141. package/dist/storage/storage_service.js.map +0 -1
  142. package/dist/types/data_record.d.ts +0 -123
  143. package/dist/types/data_record.d.ts.map +0 -1
  144. package/dist/types/data_record.js +0 -8
  145. package/dist/types/data_record.js.map +0 -1
  146. package/dist/utils/http_responses.d.ts +0 -155
  147. package/dist/utils/http_responses.d.ts.map +0 -1
  148. package/dist/utils/http_responses.js +0 -190
  149. package/dist/utils/http_responses.js.map +0 -1
  150. package/dist/utils/index.d.ts +0 -8
  151. package/dist/utils/index.d.ts.map +0 -1
  152. package/dist/utils/index.js +0 -6
  153. package/dist/utils/index.js.map +0 -1
  154. package/dist/utils/logger.d.ts +0 -74
  155. package/dist/utils/logger.d.ts.map +0 -1
  156. package/dist/utils/logger.js +0 -92
  157. package/dist/utils/logger.js.map +0 -1
  158. package/dist/utils/map_to_data_record.d.ts +0 -10
  159. package/dist/utils/map_to_data_record.d.ts.map +0 -1
  160. package/dist/utils/map_to_data_record.js +0 -36
  161. package/dist/utils/map_to_data_record.js.map +0 -1
  162. package/dist/utils/servable_endpoint.d.ts +0 -63
  163. package/dist/utils/servable_endpoint.d.ts.map +0 -1
  164. package/dist/utils/servable_endpoint.js +0 -67
  165. package/dist/utils/servable_endpoint.js.map +0 -1
  166. package/dist/utils/zip_utils.d.ts +0 -66
  167. package/dist/utils/zip_utils.d.ts.map +0 -1
  168. package/dist/utils/zip_utils.js +0 -169
  169. package/dist/utils/zip_utils.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"knex_database_adapter.js","sourceRoot":"","sources":["../../../src/database/adapters/knex_database_adapter.ts"],"names":[],"mappings":"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"}
@@ -1,251 +0,0 @@
1
- /**
2
- * @fileoverview Database abstraction layer for digital twin data persistence
3
- *
4
- * This module defines the abstract DatabaseAdapter interface that provides
5
- * unified database operations across different database backends (SQLite, PostgreSQL).
6
- * Implementations handle component data storage, metadata management, and querying.
7
- */
8
- import type { DataRecord } from '../types/data_record.js';
9
- /**
10
- * Structure used to store metadata about a data blob in the database.
11
- *
12
- * MetadataRow represents a single row in a component's database table,
13
- * linking stored binary data (via URL) with its metadata. Extended to
14
- * support asset-specific fields for AssetsManager components.
15
- *
16
- * @interface MetadataRow
17
- *
18
- * @example
19
- * ```typescript
20
- * // Basic collector metadata
21
- * const metadata: MetadataRow = {
22
- * name: 'weather-collector',
23
- * type: 'application/json',
24
- * url: '/storage/weather/2024-01-15.json',
25
- * date: new Date()
26
- * }
27
- *
28
- * // Asset metadata with ownership
29
- * const assetMetadata: MetadataRow = {
30
- * name: 'gltf-assets',
31
- * type: 'model/gltf-binary',
32
- * url: '/storage/assets/building.glb',
33
- * date: new Date(),
34
- * description: '3D building model',
35
- * source: 'https://data-source.com/buildings',
36
- * owner_id: 123,
37
- * filename: 'building.glb',
38
- * is_public: true
39
- * }
40
- * ```
41
- */
42
- export interface MetadataRow {
43
- /** Unique identifier of the data row (auto-generated on insert) */
44
- id?: number;
45
- /** Logical name of the data source (component name, used as table identifier) */
46
- name: string;
47
- /** MIME type of the associated blob (e.g. 'application/json', 'model/gltf-binary') */
48
- type: string;
49
- /** Path or URL where the blob is stored (resolved by the StorageService) */
50
- url: string;
51
- /** Timestamp indicating when the data was collected or uploaded */
52
- date: Date;
53
- /** Human-readable description of the asset (AssetsManager only) */
54
- description?: string;
55
- /** Source URL for data provenance (AssetsManager only) */
56
- source?: string;
57
- /** ID of the user who owns this asset (AssetsManager only) */
58
- owner_id?: number | null;
59
- /** Original filename provided by the user (AssetsManager only) */
60
- filename?: string;
61
- /** Whether the asset is publicly accessible (AssetsManager only) */
62
- is_public?: boolean;
63
- }
64
- /**
65
- * Abstract database adapter providing unified data operations for all components.
66
- *
67
- * DatabaseAdapter defines the contract for database operations used throughout the
68
- * digital twin system. Implementations provide concrete database access using specific
69
- * backends (SQLite, PostgreSQL) while maintaining a consistent API.
70
- *
71
- * The adapter handles:
72
- * - Table creation and schema migration for components
73
- * - CRUD operations for collected data and assets
74
- * - Time-based and count-based queries for harvesters
75
- * - Custom table operations for CustomTableManager components
76
- *
77
- * @abstract
78
- * @class DatabaseAdapter
79
- *
80
- * @example
81
- * ```typescript
82
- * // Using KnexDatabaseAdapter (concrete implementation)
83
- * const database = KnexDatabaseAdapter.forSQLite({
84
- * filename: './data/digitaltwin.db'
85
- * }, storage)
86
- *
87
- * // Save collector data
88
- * await database.save({
89
- * name: 'weather-collector',
90
- * type: 'application/json',
91
- * url: await storage.save(buffer, 'weather-collector'),
92
- * date: new Date()
93
- * })
94
- *
95
- * // Query latest data
96
- * const latest = await database.getLatestByName('weather-collector')
97
- * const data = await latest?.data()
98
- * ```
99
- */
100
- export declare abstract class DatabaseAdapter {
101
- /**
102
- * Saves metadata and returns the created DataRecord.
103
- * @param meta - Metadata to save
104
- * @returns The created DataRecord with data() function for lazy loading
105
- */
106
- abstract save(meta: MetadataRow): Promise<DataRecord>;
107
- /**
108
- * Deletes a record by ID from a specific component's table.
109
- * @param id - Record ID to delete
110
- * @param name - Component/table name
111
- */
112
- abstract delete(id: string, name: string): Promise<void>;
113
- /**
114
- * Retrieves a specific record by ID from a component's table.
115
- * @param id - Record ID to retrieve
116
- * @param name - Component/table name
117
- * @returns The DataRecord or undefined if not found
118
- */
119
- abstract getById(id: string, name: string): Promise<DataRecord | undefined>;
120
- /**
121
- * Gets the most recent record for a component.
122
- * @param name - Component/table name
123
- * @returns The latest DataRecord or undefined if table is empty
124
- */
125
- abstract getLatestByName(name: string): Promise<DataRecord | undefined>;
126
- /**
127
- * Checks if a table exists in the database.
128
- * @param name - Table name to check
129
- * @returns true if table exists, false otherwise
130
- */
131
- abstract doesTableExists(name: string): Promise<boolean>;
132
- /**
133
- * Creates a standard component table with default columns.
134
- * @param name - Table name to create
135
- */
136
- abstract createTable(name: string): Promise<void>;
137
- /**
138
- * Create a table with custom columns for CustomTableManager components
139
- * @param name - Table name
140
- * @param columns - Column definitions (name -> SQL type)
141
- */
142
- abstract createTableWithColumns(name: string, columns: Record<string, string>): Promise<void>;
143
- /**
144
- * Migrate existing table schema to add missing columns and indexes.
145
- *
146
- * Only performs safe operations like adding columns with defaults or nullable.
147
- * Returns an array of migration messages describing what was done.
148
- *
149
- * @param name - Table name to migrate
150
- * @returns Array of migration messages
151
- */
152
- abstract migrateTableSchema(name: string): Promise<string[]>;
153
- /**
154
- * Get the first (oldest) record for a given component name.
155
- * @param name - The component name
156
- * @returns The oldest DataRecord or undefined if none found
157
- */
158
- abstract getFirstByName(name: string): Promise<DataRecord | undefined>;
159
- /**
160
- * Get records between two dates for a given component.
161
- * @param name - The component name
162
- * @param startDate - Start date (inclusive)
163
- * @param endDate - End date (exclusive), optional
164
- * @param limit - Maximum number of records to return, optional
165
- * @returns Array of DataRecords matching the criteria
166
- */
167
- abstract getByDateRange(name: string, startDate: Date, endDate?: Date, limit?: number): Promise<DataRecord[]>;
168
- /**
169
- * Get records after a specific date for a given component.
170
- * @param name - The component name
171
- * @param afterDate - Date to search after (exclusive)
172
- * @param limit - Maximum number of records to return
173
- * @returns Array of DataRecords after the specified date
174
- */
175
- abstract getAfterDate(name: string, afterDate: Date, limit?: number): Promise<DataRecord[]>;
176
- /**
177
- * Get the latest record before a specific date for a given component.
178
- * @param name - The component name
179
- * @param beforeDate - Date to search before (exclusive)
180
- * @returns The latest DataRecord before the date, or undefined if none found
181
- */
182
- abstract getLatestBefore(name: string, beforeDate: Date): Promise<DataRecord | undefined>;
183
- /**
184
- * Get the latest N records before a specific date for a given component.
185
- * @param name - The component name
186
- * @param beforeDate - Date to search before (exclusive)
187
- * @param limit - Number of records to return
188
- * @returns Array of the latest DataRecords before the date
189
- */
190
- abstract getLatestRecordsBefore(name: string, beforeDate: Date, limit: number): Promise<DataRecord[]>;
191
- /**
192
- * Check if any records exist after a specific date for a given component.
193
- * @param name - The component name
194
- * @param afterDate - Date to check after (exclusive)
195
- * @returns True if records exist after the date, false otherwise
196
- */
197
- abstract hasRecordsAfterDate(name: string, afterDate: Date): Promise<boolean>;
198
- /**
199
- * Count records for a given component within a date range.
200
- * @param name - The component name
201
- * @param startDate - Start date (inclusive)
202
- * @param endDate - End date (exclusive), optional
203
- * @returns Number of records in the range
204
- */
205
- abstract countByDateRange(name: string, startDate: Date, endDate?: Date): Promise<number>;
206
- /**
207
- * Find records by column conditions for CustomTableManager components.
208
- * @param tableName - Table name to query
209
- * @param conditions - Key-value pairs to match
210
- * @returns Array of matching records
211
- */
212
- abstract findByConditions(tableName: string, conditions: Record<string, any>): Promise<DataRecord[]>;
213
- /**
214
- * Update a record by ID for CustomTableManager components.
215
- * @param tableName - Table name to update
216
- * @param id - Record ID to update
217
- * @param data - Data to update (excluding id, created_at, updated_at)
218
- * @returns Promise that resolves when update is complete
219
- */
220
- abstract updateById(tableName: string, id: number, data: Record<string, any>): Promise<void>;
221
- /**
222
- * Find records for custom tables (returns raw database rows, not DataRecords)
223
- * This bypasses mapToDataRecord() which assumes standard table structure
224
- * @param tableName - Table name to query
225
- * @param conditions - Key-value pairs to match (empty for all records)
226
- * @returns Array of raw database rows
227
- */
228
- abstract findCustomTableRecords(tableName: string, conditions?: Record<string, any>): Promise<any[]>;
229
- /**
230
- * Get a single custom table record by ID (returns raw database row, not DataRecord)
231
- * @param tableName - Table name to query
232
- * @param id - Record ID
233
- * @returns Raw database row or null if not found
234
- */
235
- abstract getCustomTableRecordById(tableName: string, id: number): Promise<any | null>;
236
- /**
237
- * Insert a record into a custom table (returns the new record ID)
238
- * @param tableName - Table name to insert into
239
- * @param data - Data to insert (created_at/updated_at will be added automatically)
240
- * @returns The ID of the new record
241
- */
242
- abstract insertCustomTableRecord(tableName: string, data: Record<string, any>): Promise<number>;
243
- /**
244
- * Closes all database connections gracefully.
245
- * This method should be called when shutting down the application
246
- * to ensure proper cleanup of connection pools.
247
- * @returns Promise that resolves when all connections are closed
248
- */
249
- abstract close(): Promise<void>;
250
- }
251
- //# sourceMappingURL=database_adapter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"database_adapter.d.ts","sourceRoot":"","sources":["../../src/database/database_adapter.ts"],"names":[],"mappings":"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"}
@@ -1,46 +0,0 @@
1
- /**
2
- * @fileoverview Database abstraction layer for digital twin data persistence
3
- *
4
- * This module defines the abstract DatabaseAdapter interface that provides
5
- * unified database operations across different database backends (SQLite, PostgreSQL).
6
- * Implementations handle component data storage, metadata management, and querying.
7
- */
8
- /**
9
- * Abstract database adapter providing unified data operations for all components.
10
- *
11
- * DatabaseAdapter defines the contract for database operations used throughout the
12
- * digital twin system. Implementations provide concrete database access using specific
13
- * backends (SQLite, PostgreSQL) while maintaining a consistent API.
14
- *
15
- * The adapter handles:
16
- * - Table creation and schema migration for components
17
- * - CRUD operations for collected data and assets
18
- * - Time-based and count-based queries for harvesters
19
- * - Custom table operations for CustomTableManager components
20
- *
21
- * @abstract
22
- * @class DatabaseAdapter
23
- *
24
- * @example
25
- * ```typescript
26
- * // Using KnexDatabaseAdapter (concrete implementation)
27
- * const database = KnexDatabaseAdapter.forSQLite({
28
- * filename: './data/digitaltwin.db'
29
- * }, storage)
30
- *
31
- * // Save collector data
32
- * await database.save({
33
- * name: 'weather-collector',
34
- * type: 'application/json',
35
- * url: await storage.save(buffer, 'weather-collector'),
36
- * date: new Date()
37
- * })
38
- *
39
- * // Query latest data
40
- * const latest = await database.getLatestByName('weather-collector')
41
- * const data = await latest?.data()
42
- * ```
43
- */
44
- export class DatabaseAdapter {
45
- }
46
- //# sourceMappingURL=database_adapter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"database_adapter.js","sourceRoot":"","sources":["../../src/database/database_adapter.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AA8DH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,MAAM,OAAgB,eAAe;CAgLpC"}
@@ -1,253 +0,0 @@
1
- import type { Collector } from '../components/collector.js';
2
- import type { Harvester } from '../components/harvester.js';
3
- import type { Handler } from '../components/handler.js';
4
- import type { AssetsManager } from '../components/assets_manager.js';
5
- import type { CustomTableManager } from '../components/custom_table_manager.js';
6
- import type { StorageService } from '../storage/storage_service.js';
7
- import type { DatabaseAdapter } from '../database/database_adapter.js';
8
- import type { ConnectionOptions } from 'bullmq';
9
- import { LogLevel } from '../utils/logger.js';
10
- import type { QueueConfig } from './queue_manager.js';
11
- /**
12
- * Result of component validation
13
- */
14
- export interface ComponentValidationResult {
15
- /** Component name */
16
- name: string;
17
- /** Component type */
18
- type: 'collector' | 'harvester' | 'handler' | 'assets_manager' | 'custom_table_manager';
19
- /** Validation status */
20
- valid: boolean;
21
- /** Validation errors if any */
22
- errors: string[];
23
- /** Validation warnings if any */
24
- warnings: string[];
25
- }
26
- /**
27
- * Overall validation result
28
- */
29
- export interface ValidationResult {
30
- /** Overall validation status */
31
- valid: boolean;
32
- /** Individual component results */
33
- components: ComponentValidationResult[];
34
- /** Engine-level errors */
35
- engineErrors: string[];
36
- /** Summary statistics */
37
- summary: {
38
- total: number;
39
- valid: number;
40
- invalid: number;
41
- warnings: number;
42
- };
43
- }
44
- /**
45
- * Configuration options for the Digital Twin Engine
46
- *
47
- * @interface EngineOptions
48
- * @example
49
- * ```typescript
50
- * const options: EngineOptions = {
51
- * storage: storageService,
52
- * database: databaseAdapter,
53
- * collectors: [myCollector],
54
- * harvesters: [myHarvester],
55
- * handlers: [myHandler],
56
- * server: { port: 3000, host: 'localhost' },
57
- * queues: {
58
- * multiQueue: true,
59
- * workers: { collectors: 2, harvesters: 1 }
60
- * }
61
- * }
62
- * ```
63
- */
64
- export interface EngineOptions {
65
- /** Array of data collectors to register with the engine */
66
- collectors?: Collector[];
67
- /** Array of data harvesters to register with the engine */
68
- harvesters?: Harvester[];
69
- /** Array of request handlers to register with the engine */
70
- handlers?: Handler[];
71
- /** Array of assets managers to register with the engine */
72
- assetsManagers?: AssetsManager[];
73
- /** Array of custom table managers to register with the engine */
74
- customTableManagers?: CustomTableManager[];
75
- /** Storage service instance for persisting data (required) */
76
- storage: StorageService;
77
- /** Database adapter instance for data operations (required) */
78
- database: DatabaseAdapter;
79
- /** Redis connection options for queue management */
80
- redis?: ConnectionOptions;
81
- /** Queue configuration options */
82
- queues?: {
83
- /** Enable multi-queue mode (default: true) */
84
- multiQueue?: boolean;
85
- /** Worker configuration for different component types */
86
- workers?: {
87
- /** Number of collector workers (default: 1) */
88
- collectors?: number;
89
- /** Number of harvester workers (default: 1) */
90
- harvesters?: number;
91
- };
92
- /** Additional queue configuration options */
93
- options?: QueueConfig['queueOptions'];
94
- };
95
- /** HTTP server configuration */
96
- server?: {
97
- /** Server port (default: 3000) */
98
- port: number;
99
- /** Server host (default: '0.0.0.0') */
100
- host?: string;
101
- };
102
- /** Logging configuration */
103
- logging?: {
104
- /** Log level (default: LogLevel.INFO) */
105
- level: LogLevel;
106
- /** Log format (default: 'text') */
107
- format?: 'json' | 'text';
108
- };
109
- /** Dry run mode - validate configuration without persisting data (default: false) */
110
- dryRun?: boolean;
111
- /**
112
- * Enable automatic schema migration for existing tables (default: true)
113
- *
114
- * When enabled, the engine will automatically add missing columns with safe defaults
115
- * to existing tables at startup. Only safe operations are performed:
116
- * - Adding columns with DEFAULT values
117
- * - Adding nullable columns
118
- * - Adding indexes
119
- *
120
- * Set to false to require manual migrations via SQL scripts.
121
- */
122
- autoMigration?: boolean;
123
- }
124
- /**
125
- * Digital Twin Engine - Core orchestrator for collectors, harvesters, and handlers
126
- *
127
- * The engine manages the lifecycle of all components, sets up queues for processing,
128
- * exposes HTTP endpoints, and handles the overall coordination of the digital twin system.
129
- *
130
- * @class DigitalTwinEngine
131
- * @example
132
- * ```TypeScript
133
- * import { DigitalTwinEngine } from './digital_twin_engine.js'
134
- * import { StorageServiceFactory } from '../storage/storage_factory.js'
135
- * import { KnexDatabaseAdapter } from '../database/adapters/knex_database_adapter.js'
136
- *
137
- * const storage = StorageServiceFactory.create()
138
- * const database = new KnexDatabaseAdapter({ client: 'sqlite3', connection: ':memory:' }, storage)
139
- *
140
- * const engine = new DigitalTwinEngine({
141
- * storage,
142
- * database,
143
- * collectors: [myCollector],
144
- * server: { port: 3000 }
145
- * })
146
- *
147
- * await engine.start()
148
- * ```
149
- */
150
- export declare class DigitalTwinEngine {
151
- #private;
152
- /**
153
- * Creates a new Digital Twin Engine instance
154
- *
155
- * @param {EngineOptions} options - Configuration options for the engine
156
- * @throws {Error} If required options (storage, database) are missing
157
- *
158
- * @example
159
- * ```TypeScript
160
- * const engine = new DigitalTwinEngine({
161
- * storage: myStorageService,
162
- * database: myDatabaseAdapter,
163
- * collectors: [collector1, collector2],
164
- * server: { port: 4000, host: 'localhost' }
165
- * })
166
- * ```
167
- */
168
- constructor(options: EngineOptions);
169
- /**
170
- * Starts the Digital Twin Engine
171
- *
172
- * This method:
173
- * 1. Initializes all registered components (collectors, harvesters, handlers)
174
- * 2. Set up HTTP endpoints for component access
175
- * 3. Configures and starts background job queues
176
- * 4. Starts the HTTP server
177
- * 5. Exposes queue monitoring endpoints
178
- *
179
- * @async
180
- * @returns {Promise<void>}
181
- *
182
- * @example
183
- * ```TypeScript
184
- * await engine.start()
185
- * console.log('Engine is running!')
186
- * ```
187
- */
188
- start(): Promise<void>;
189
- /**
190
- * Get the server port
191
- *
192
- * @returns {number | undefined} The server port or undefined if not started
193
- *
194
- * @example
195
- * ```TypeScript
196
- * const port = engine.getPort()
197
- * console.log(`Server running on port ${port}`)
198
- * ```
199
- */
200
- getPort(): number | undefined;
201
- /**
202
- * Stops the Digital Twin Engine gracefully
203
- *
204
- * This method:
205
- * 1. Closes HTTP server
206
- * 2. Stops background workers
207
- * 3. Closes all queue connections
208
- * 4. Closes database connections
209
- * 5. Clean up resources
210
- *
211
- * @async
212
- * @returns {Promise<void>}
213
- *
214
- * @example
215
- * ```TypeScript
216
- * await engine.stop()
217
- * console.log('Engine stopped gracefully')
218
- * ```
219
- */
220
- stop(): Promise<void>;
221
- /**
222
- * Validate the engine configuration and all components
223
- *
224
- * This method checks that all components are properly configured and can be initialized
225
- * without actually creating tables or starting the server.
226
- *
227
- * @returns {Promise<ValidationResult>} Comprehensive validation results
228
- *
229
- * @example
230
- * ```typescript
231
- * const result = await engine.validateConfiguration()
232
- * if (!result.valid) {
233
- * console.error('Validation errors:', result.engineErrors)
234
- * }
235
- * ```
236
- */
237
- validateConfiguration(): Promise<ValidationResult>;
238
- /**
239
- * Test all components by running their core methods without persistence
240
- *
241
- * @returns {Promise<ComponentValidationResult[]>} Test results for each component
242
- *
243
- * @example
244
- * ```typescript
245
- * const results = await engine.testComponents()
246
- * results.forEach(result => {
247
- * console.log(`${result.name}: ${result.valid ? '✅' : '❌'}`)
248
- * })
249
- * ```
250
- */
251
- testComponents(): Promise<ComponentValidationResult[]>;
252
- }
253
- //# sourceMappingURL=digital_twin_engine.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"digital_twin_engine.d.ts","sourceRoot":"","sources":["../../src/engine/digital_twin_engine.ts"],"names":[],"mappings":"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"}