digitaltwin-core 0.14.3 → 1.0.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 (159) hide show
  1. package/README.md +218 -1
  2. package/dist/auth/apisix_parser.d.ts +56 -56
  3. package/dist/auth/apisix_parser.d.ts.map +1 -1
  4. package/dist/auth/apisix_parser.js +72 -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 +4 -1
  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/auth/types.d.ts +5 -3
  35. package/dist/auth/types.d.ts.map +1 -1
  36. package/dist/components/assets_manager.d.ts +1 -1
  37. package/dist/components/assets_manager.d.ts.map +1 -1
  38. package/dist/components/assets_manager.js +54 -48
  39. package/dist/components/assets_manager.js.map +1 -1
  40. package/dist/components/collector.d.ts.map +1 -1
  41. package/dist/components/collector.js +30 -18
  42. package/dist/components/collector.js.map +1 -1
  43. package/dist/components/custom_table_manager.d.ts.map +1 -1
  44. package/dist/components/custom_table_manager.js +36 -65
  45. package/dist/components/custom_table_manager.js.map +1 -1
  46. package/dist/components/global_assets_handler.d.ts +4 -2
  47. package/dist/components/global_assets_handler.d.ts.map +1 -1
  48. package/dist/components/global_assets_handler.js.map +1 -1
  49. package/dist/components/harvester.d.ts.map +1 -1
  50. package/dist/components/harvester.js +46 -33
  51. package/dist/components/harvester.js.map +1 -1
  52. package/dist/components/interfaces.d.ts +3 -2
  53. package/dist/components/interfaces.d.ts.map +1 -1
  54. package/dist/components/map_manager.d.ts.map +1 -1
  55. package/dist/components/map_manager.js.map +1 -1
  56. package/dist/components/tileset_manager.d.ts +2 -1
  57. package/dist/components/tileset_manager.d.ts.map +1 -1
  58. package/dist/components/tileset_manager.js +20 -15
  59. package/dist/components/tileset_manager.js.map +1 -1
  60. package/dist/database/adapters/knex_database_adapter.d.ts +6 -1
  61. package/dist/database/adapters/knex_database_adapter.d.ts.map +1 -1
  62. package/dist/database/adapters/knex_database_adapter.js +118 -36
  63. package/dist/database/adapters/knex_database_adapter.js.map +1 -1
  64. package/dist/database/database_adapter.d.ts +13 -1
  65. package/dist/database/database_adapter.d.ts.map +1 -1
  66. package/dist/database/database_adapter.js.map +1 -1
  67. package/dist/engine/component_types.d.ts +95 -0
  68. package/dist/engine/component_types.d.ts.map +1 -0
  69. package/dist/engine/component_types.js +93 -0
  70. package/dist/engine/component_types.js.map +1 -0
  71. package/dist/engine/digital_twin_engine.d.ts +121 -6
  72. package/dist/engine/digital_twin_engine.d.ts.map +1 -1
  73. package/dist/engine/digital_twin_engine.js +402 -74
  74. package/dist/engine/digital_twin_engine.js.map +1 -1
  75. package/dist/engine/endpoints.d.ts.map +1 -1
  76. package/dist/engine/endpoints.js +35 -3
  77. package/dist/engine/endpoints.js.map +1 -1
  78. package/dist/engine/error_handler.d.ts +20 -0
  79. package/dist/engine/error_handler.d.ts.map +1 -0
  80. package/dist/engine/error_handler.js +69 -0
  81. package/dist/engine/error_handler.js.map +1 -0
  82. package/dist/engine/events.d.ts +1 -1
  83. package/dist/engine/events.d.ts.map +1 -1
  84. package/dist/engine/events.js.map +1 -1
  85. package/dist/engine/health.d.ts +112 -0
  86. package/dist/engine/health.d.ts.map +1 -0
  87. package/dist/engine/health.js +190 -0
  88. package/dist/engine/health.js.map +1 -0
  89. package/dist/engine/initializer.d.ts.map +1 -1
  90. package/dist/engine/initializer.js +6 -4
  91. package/dist/engine/initializer.js.map +1 -1
  92. package/dist/engine/scheduler.d.ts.map +1 -1
  93. package/dist/engine/scheduler.js +17 -9
  94. package/dist/engine/scheduler.js.map +1 -1
  95. package/dist/engine/upload_processor.d.ts.map +1 -1
  96. package/dist/engine/upload_processor.js +24 -12
  97. package/dist/engine/upload_processor.js.map +1 -1
  98. package/dist/errors/index.d.ts +94 -0
  99. package/dist/errors/index.d.ts.map +1 -0
  100. package/dist/errors/index.js +149 -0
  101. package/dist/errors/index.js.map +1 -0
  102. package/dist/index.d.ts +9 -0
  103. package/dist/index.d.ts.map +1 -1
  104. package/dist/index.js +13 -0
  105. package/dist/index.js.map +1 -1
  106. package/dist/loader/component_loader.d.ts +128 -0
  107. package/dist/loader/component_loader.d.ts.map +1 -0
  108. package/dist/loader/component_loader.js +330 -0
  109. package/dist/loader/component_loader.js.map +1 -0
  110. package/dist/loader/index.d.ts +19 -0
  111. package/dist/loader/index.d.ts.map +1 -0
  112. package/dist/loader/index.js +19 -0
  113. package/dist/loader/index.js.map +1 -0
  114. package/dist/storage/adapters/local_storage_service.d.ts +6 -0
  115. package/dist/storage/adapters/local_storage_service.d.ts.map +1 -1
  116. package/dist/storage/adapters/local_storage_service.js +26 -4
  117. package/dist/storage/adapters/local_storage_service.js.map +1 -1
  118. package/dist/storage/adapters/ovh_storage_service.d.ts.map +1 -1
  119. package/dist/storage/adapters/ovh_storage_service.js +5 -6
  120. package/dist/storage/adapters/ovh_storage_service.js.map +1 -1
  121. package/dist/storage/storage_factory.d.ts.map +1 -1
  122. package/dist/storage/storage_factory.js +4 -1
  123. package/dist/storage/storage_factory.js.map +1 -1
  124. package/dist/storage/storage_service.d.ts.map +1 -1
  125. package/dist/storage/storage_service.js +6 -2
  126. package/dist/storage/storage_service.js.map +1 -1
  127. package/dist/types/http.d.ts +156 -0
  128. package/dist/types/http.d.ts.map +1 -0
  129. package/dist/types/http.js +8 -0
  130. package/dist/types/http.js.map +1 -0
  131. package/dist/utils/graceful_shutdown.d.ts +44 -0
  132. package/dist/utils/graceful_shutdown.d.ts.map +1 -0
  133. package/dist/utils/graceful_shutdown.js +79 -0
  134. package/dist/utils/graceful_shutdown.js.map +1 -0
  135. package/dist/utils/http_responses.d.ts +20 -0
  136. package/dist/utils/http_responses.d.ts.map +1 -1
  137. package/dist/utils/http_responses.js +28 -2
  138. package/dist/utils/http_responses.js.map +1 -1
  139. package/dist/utils/logger.d.ts +8 -8
  140. package/dist/utils/logger.d.ts.map +1 -1
  141. package/dist/utils/logger.js +8 -8
  142. package/dist/utils/logger.js.map +1 -1
  143. package/dist/utils/safe_async.d.ts +50 -0
  144. package/dist/utils/safe_async.d.ts.map +1 -0
  145. package/dist/utils/safe_async.js +90 -0
  146. package/dist/utils/safe_async.js.map +1 -0
  147. package/dist/validation/index.d.ts +3 -0
  148. package/dist/validation/index.d.ts.map +1 -0
  149. package/dist/validation/index.js +7 -0
  150. package/dist/validation/index.js.map +1 -0
  151. package/dist/validation/schemas.d.ts +273 -0
  152. package/dist/validation/schemas.d.ts.map +1 -0
  153. package/dist/validation/schemas.js +82 -0
  154. package/dist/validation/schemas.js.map +1 -0
  155. package/dist/validation/validate.d.ts +49 -0
  156. package/dist/validation/validate.d.ts.map +1 -0
  157. package/dist/validation/validate.js +110 -0
  158. package/dist/validation/validate.js.map +1 -0
  159. package/package.json +14 -8
@@ -30,9 +30,10 @@
30
30
  * ```
31
31
  */
32
32
  export async function initializeComponents(components, database, storage, autoMigration = true) {
33
+ // Create all tables in parallel for faster startup
34
+ await Promise.all(components.map(comp => ensureTableExists(database, comp.getConfiguration().name, autoMigration)));
35
+ // Inject dependencies (synchronous, fast)
33
36
  for (const comp of components) {
34
- const config = comp.getConfiguration();
35
- await ensureTableExists(database, config.name, autoMigration);
36
37
  comp.setDependencies(database, storage);
37
38
  }
38
39
  }
@@ -60,9 +61,10 @@ export async function initializeComponents(components, database, storage, autoMi
60
61
  * ```
61
62
  */
62
63
  export async function initializeAssetsManagers(assetsManagers, database, storage, autoMigration = true) {
64
+ // Create all tables in parallel for faster startup
65
+ await Promise.all(assetsManagers.map(manager => ensureTableExists(database, manager.getConfiguration().name, autoMigration)));
66
+ // Inject dependencies (synchronous, fast)
63
67
  for (const manager of assetsManagers) {
64
- const config = manager.getConfiguration();
65
- await ensureTableExists(database, config.name, autoMigration);
66
68
  manager.setDependencies(database, storage);
67
69
  }
68
70
  }
@@ -1 +1 @@
1
- {"version":3,"file":"initializer.js","sourceRoot":"","sources":["../../src/engine/initializer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACtC,UAAwC,EACxC,QAAyB,EACzB,OAAuB,EACvB,gBAAyB,IAAI;IAE7B,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAA;QACtC,MAAM,iBAAiB,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE,aAAa,CAAC,CAAA;QAC7D,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;IAC3C,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC1C,cAA+B,EAC/B,QAAyB,EACzB,OAAuB,EACvB,gBAAyB,IAAI;IAE7B,KAAK,MAAM,OAAO,IAAI,cAAc,EAAE,CAAC;QACnC,MAAM,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAA;QACzC,MAAM,iBAAiB,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE,aAAa,CAAC,CAAA;QAC7D,OAAO,CAAC,eAAe,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;IAC9C,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,KAAK,UAAU,iBAAiB,CAC5B,QAAyB,EACzB,SAAiB,EACjB,gBAAyB,IAAI;IAE7B,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,eAAe,CAAC,SAAS,CAAC,CAAA;IACxD,IAAI,CAAC,MAAM,EAAE,CAAC;QACV,MAAM,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,CAAA;QACrC,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;YAClC,OAAO,CAAC,GAAG,CAAC,gCAAgC,SAAS,GAAG,CAAC,CAAA;QAC7D,CAAC;IACL,CAAC;SAAM,IAAI,aAAa,EAAE,CAAC;QACvB,6DAA6D;QAC7D,MAAM,UAAU,GAAG,MAAM,QAAQ,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAA;QAC/D,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;YAC3D,OAAO,CAAC,GAAG,CAAC,2BAA2B,SAAS,MAAM,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAClF,CAAC;IACL,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"initializer.js","sourceRoot":"","sources":["../../src/engine/initializer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACtC,UAAwC,EACxC,QAAyB,EACzB,OAAuB,EACvB,gBAAyB,IAAI;IAE7B,mDAAmD;IACnD,MAAM,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,iBAAiB,CAAC,QAAQ,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,CAAA;IAEnH,0CAA0C;IAC1C,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC5B,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;IAC3C,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC1C,cAA+B,EAC/B,QAAyB,EACzB,OAAuB,EACvB,gBAAyB,IAAI;IAE7B,mDAAmD;IACnD,MAAM,OAAO,CAAC,GAAG,CACb,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,iBAAiB,CAAC,QAAQ,EAAE,OAAO,CAAC,gBAAgB,EAAE,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,CAC7G,CAAA;IAED,0CAA0C;IAC1C,KAAK,MAAM,OAAO,IAAI,cAAc,EAAE,CAAC;QACnC,OAAO,CAAC,eAAe,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;IAC9C,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,KAAK,UAAU,iBAAiB,CAC5B,QAAyB,EACzB,SAAiB,EACjB,gBAAyB,IAAI;IAE7B,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,eAAe,CAAC,SAAS,CAAC,CAAA;IACxD,IAAI,CAAC,MAAM,EAAE,CAAC;QACV,MAAM,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,CAAA;QACrC,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;YAClC,OAAO,CAAC,GAAG,CAAC,gCAAgC,SAAS,GAAG,CAAC,CAAA;QAC7D,CAAC;IACL,CAAC;SAAM,IAAI,aAAa,EAAE,CAAC;QACvB,6DAA6D;QAC7D,MAAM,UAAU,GAAG,MAAM,QAAQ,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAA;QAC/D,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;YAC3D,OAAO,CAAC,GAAG,CAAC,2BAA2B,SAAS,MAAM,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAClF,CAAC;IACL,CAAC;AACL,CAAC"}
@@ -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;AAE/B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,EAAU,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAwbrD;;;;;;;;;;;;;;;;;;;;;;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
  /**
@@ -236,13 +244,13 @@ class ComponentScheduler {
236
244
  async #processCollectorJob(job) {
237
245
  const comp = this.componentMap[job.name];
238
246
  if (!comp)
239
- return;
247
+ return undefined;
240
248
  this.logger.debug(`Running collector: ${job.name}`);
241
249
  try {
242
250
  const result = await comp.run();
243
251
  return {
244
252
  success: true,
245
- bytes: result?.length || 0,
253
+ bytes: result?.length ?? 0,
246
254
  timestamp: new Date().toISOString()
247
255
  };
248
256
  }
@@ -258,7 +266,7 @@ class ComponentScheduler {
258
266
  async #processHarvesterJob(job) {
259
267
  const comp = this.componentMap[job.name];
260
268
  if (!comp)
261
- return;
269
+ return undefined;
262
270
  this.logger.debug(`Running harvester: ${job.name} (${job.data.triggeredBy})`);
263
271
  try {
264
272
  const result = await comp.run();
@@ -270,7 +278,7 @@ class ComponentScheduler {
270
278
  data: { success: result }
271
279
  });
272
280
  return {
273
- success: result,
281
+ success: Boolean(result),
274
282
  timestamp: new Date().toISOString()
275
283
  };
276
284
  }
@@ -286,10 +294,10 @@ class ComponentScheduler {
286
294
  async #processPriorityJob(job) {
287
295
  const comp = this.componentMap[job.name];
288
296
  if (!comp)
289
- return;
297
+ return undefined;
290
298
  this.logger.debug(`Running priority job: ${job.name}`);
291
299
  const result = await comp.run();
292
- return { success: true, result };
300
+ return { success: true, result, timestamp: new Date().toISOString() };
293
301
  }
294
302
  /**
295
303
  * Schedules components in single-queue mode (legacy)
@@ -334,10 +342,10 @@ class ComponentScheduler {
334
342
  async #processSingleQueueJob(job) {
335
343
  const comp = this.componentMap[job.name];
336
344
  if (!comp)
337
- return;
345
+ return undefined;
338
346
  this.logger.debug(`Running ${job.data.type}: ${job.name}`);
339
347
  const result = await comp.run();
340
- return { success: true, result };
348
+ return { success: true, result, timestamp: new Date().toISOString() };
341
349
  }
342
350
  }
343
351
  /**
@@ -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":"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"}
@@ -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"}
@@ -0,0 +1,149 @@
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 class DigitalTwinError extends Error {
9
+ constructor(message, context) {
10
+ super(message);
11
+ this.timestamp = new Date();
12
+ this.name = this.constructor.name;
13
+ this.context = context;
14
+ // Maintains proper stack trace for where our error was thrown (only available on V8)
15
+ if (Error.captureStackTrace) {
16
+ Error.captureStackTrace(this, this.constructor);
17
+ }
18
+ }
19
+ toJSON() {
20
+ return {
21
+ error: {
22
+ code: this.code,
23
+ message: this.message,
24
+ timestamp: this.timestamp.toISOString(),
25
+ ...(this.context && { context: this.context }),
26
+ ...(process.env.NODE_ENV !== 'production' && { stack: this.stack })
27
+ }
28
+ };
29
+ }
30
+ }
31
+ /**
32
+ * Validation error - invalid input data (422 Unprocessable Entity)
33
+ */
34
+ export class ValidationError extends DigitalTwinError {
35
+ constructor() {
36
+ super(...arguments);
37
+ this.code = 'VALIDATION_ERROR';
38
+ this.statusCode = 422;
39
+ }
40
+ }
41
+ /**
42
+ * Resource not found (404)
43
+ */
44
+ export class NotFoundError extends DigitalTwinError {
45
+ constructor() {
46
+ super(...arguments);
47
+ this.code = 'NOT_FOUND';
48
+ this.statusCode = 404;
49
+ }
50
+ }
51
+ /**
52
+ * Authentication required or invalid credentials (401)
53
+ */
54
+ export class AuthenticationError extends DigitalTwinError {
55
+ constructor() {
56
+ super(...arguments);
57
+ this.code = 'AUTHENTICATION_ERROR';
58
+ this.statusCode = 401;
59
+ }
60
+ }
61
+ /**
62
+ * Insufficient permissions (403)
63
+ */
64
+ export class AuthorizationError extends DigitalTwinError {
65
+ constructor() {
66
+ super(...arguments);
67
+ this.code = 'AUTHORIZATION_ERROR';
68
+ this.statusCode = 403;
69
+ }
70
+ }
71
+ /**
72
+ * Storage operation failed (500)
73
+ */
74
+ export class StorageError extends DigitalTwinError {
75
+ constructor() {
76
+ super(...arguments);
77
+ this.code = 'STORAGE_ERROR';
78
+ this.statusCode = 500;
79
+ }
80
+ }
81
+ /**
82
+ * Database operation failed (500)
83
+ */
84
+ export class DatabaseError extends DigitalTwinError {
85
+ constructor() {
86
+ super(...arguments);
87
+ this.code = 'DATABASE_ERROR';
88
+ this.statusCode = 500;
89
+ }
90
+ }
91
+ /**
92
+ * External service (API) error (502)
93
+ */
94
+ export class ExternalServiceError extends DigitalTwinError {
95
+ constructor() {
96
+ super(...arguments);
97
+ this.code = 'EXTERNAL_SERVICE_ERROR';
98
+ this.statusCode = 502;
99
+ }
100
+ }
101
+ /**
102
+ * Configuration error (500)
103
+ */
104
+ export class ConfigurationError extends DigitalTwinError {
105
+ constructor() {
106
+ super(...arguments);
107
+ this.code = 'CONFIGURATION_ERROR';
108
+ this.statusCode = 500;
109
+ }
110
+ }
111
+ /**
112
+ * Queue/Job processing error (500)
113
+ */
114
+ export class QueueError extends DigitalTwinError {
115
+ constructor() {
116
+ super(...arguments);
117
+ this.code = 'QUEUE_ERROR';
118
+ this.statusCode = 500;
119
+ }
120
+ }
121
+ /**
122
+ * File operation error (500)
123
+ */
124
+ export class FileOperationError extends DigitalTwinError {
125
+ constructor() {
126
+ super(...arguments);
127
+ this.code = 'FILE_OPERATION_ERROR';
128
+ this.statusCode = 500;
129
+ }
130
+ }
131
+ /**
132
+ * Type guard to check if an error is a DigitalTwinError
133
+ */
134
+ export function isDigitalTwinError(error) {
135
+ return error instanceof DigitalTwinError;
136
+ }
137
+ /**
138
+ * Wraps an unknown error into a DigitalTwinError
139
+ */
140
+ export function wrapError(error, ErrorClass = StorageError) {
141
+ if (error instanceof DigitalTwinError) {
142
+ return error;
143
+ }
144
+ const message = error instanceof Error ? error.message : String(error);
145
+ const context = error instanceof Error ? { originalError: error.name } : undefined;
146
+ // @ts-expect-error - ErrorClass is abstract but we're passing concrete classes
147
+ return new ErrorClass(message, context);
148
+ }
149
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -33,13 +33,22 @@ export { KnexDatabaseAdapter, PostgreSQLConfig, SQLiteConfig } from './database/
33
33
  export * from './components/types.js';
34
34
  export * from './components/interfaces.js';
35
35
  export * from './types/data_record.js';
36
+ export * from './types/http.js';
36
37
  export * from './auth/index.js';
38
+ export * from './errors/index.js';
39
+ export * from './validation/index.js';
37
40
  export { Logger, LogLevel } from './utils/logger.js';
41
+ export { safeAsync, tryAsync, safeCleanup, retryAsync } from './utils/safe_async.js';
42
+ export { setupGracefulShutdown, type ShutdownOptions } from './utils/graceful_shutdown.js';
38
43
  export { mapToDataRecord } from './utils/map_to_data_record.js';
39
44
  export { servableEndpoint } from './utils/servable_endpoint.js';
40
45
  export { HttpStatus, jsonResponse, successResponse, errorResponse, badRequestResponse, unauthorizedResponse, forbiddenResponse, notFoundResponse, textResponse, fileResponse, multiStatusResponse } from './utils/http_responses.js';
41
46
  export type { HttpStatusCode } from './utils/http_responses.js';
47
+ export { type AnyComponent, type ComponentTypeName, type SchedulableComponent, type ActiveComponent, type ComponentTypeMap, type LoadedComponents, isCollector, isHarvester, isHandler, isAssetsManager, isCustomTableManager, isActiveComponent, detectComponentType } from './engine/component_types.js';
48
+ export { loadComponents, type LoadComponentsOptions, type LoadComponentsResult } from './loader/index.js';
42
49
  export { QueueManager } from './engine/queue_manager.js';
50
+ export { errorHandler, asyncHandler, notFoundHandler } from './engine/error_handler.js';
51
+ export { HealthChecker, createDatabaseCheck, createRedisCheck, createStorageCheck, performHealthCheck, livenessCheck, type HealthCheck, type HealthCheckFn, type HealthStatus, type ComponentCounts } from './engine/health.js';
43
52
  export { UploadProcessor, type TilesetUploadJobData, type UploadJobData, type UploadStatus } from './engine/upload_processor.js';
44
53
  export { initializeComponents } from './engine/initializer.js';
45
54
  export * from './engine/events.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AAGnE,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAA;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAA;AAC3E,OAAO,EACH,kBAAkB,EAClB,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC9B,MAAM,sCAAsC,CAAA;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAA;AAChE,OAAO,EAAE,KAAK,eAAe,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AAGtF,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAA;AACjF,OAAO,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAA;AAC/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAA;AAGpE,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA;AAChE,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,8CAA8C,CAAA;AAGlH,cAAc,uBAAuB,CAAA;AACrC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,wBAAwB,CAAA;AAGtC,cAAc,iBAAiB,CAAA;AAG/B,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AAC/D,OAAO,EACH,UAAU,EACV,YAAY,EACZ,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,mBAAmB,EACtB,MAAM,2BAA2B,CAAA;AAClC,YAAY,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAG/D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,EACH,eAAe,EACf,KAAK,oBAAoB,EACzB,KAAK,aAAa,EAClB,KAAK,YAAY,EACpB,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAC9D,cAAc,oBAAoB,CAAA;AAClC,cAAc,uBAAuB,CAAA;AAGrC,cAAc,oBAAoB,CAAA;AAElC,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -38,15 +38,28 @@ export { KnexDatabaseAdapter } from './database/adapters/knex_database_adapter.j
38
38
  export * from './components/types.js';
39
39
  export * from './components/interfaces.js';
40
40
  export * from './types/data_record.js';
41
+ export * from './types/http.js';
41
42
  // Authentication
42
43
  export * from './auth/index.js';
44
+ // Errors
45
+ export * from './errors/index.js';
46
+ // Validation
47
+ export * from './validation/index.js';
43
48
  // Utilities
44
49
  export { Logger, LogLevel } from './utils/logger.js';
50
+ export { safeAsync, tryAsync, safeCleanup, retryAsync } from './utils/safe_async.js';
51
+ export { setupGracefulShutdown } from './utils/graceful_shutdown.js';
45
52
  export { mapToDataRecord } from './utils/map_to_data_record.js';
46
53
  export { servableEndpoint } from './utils/servable_endpoint.js';
47
54
  export { HttpStatus, jsonResponse, successResponse, errorResponse, badRequestResponse, unauthorizedResponse, forbiddenResponse, notFoundResponse, textResponse, fileResponse, multiStatusResponse } from './utils/http_responses.js';
55
+ // Component Types and Guards (for dynamic registration)
56
+ export { isCollector, isHarvester, isHandler, isAssetsManager, isCustomTableManager, isActiveComponent, detectComponentType } from './engine/component_types.js';
57
+ // Component Loader (auto-discovery)
58
+ export { loadComponents } from './loader/index.js';
48
59
  // Engine Components
49
60
  export { QueueManager } from './engine/queue_manager.js';
61
+ export { errorHandler, asyncHandler, notFoundHandler } from './engine/error_handler.js';
62
+ export { HealthChecker, createDatabaseCheck, createRedisCheck, createStorageCheck, performHealthCheck, livenessCheck } from './engine/health.js';
50
63
  export { UploadProcessor } from './engine/upload_processor.js';
51
64
  export { initializeComponents } from './engine/initializer.js';
52
65
  export * from './engine/events.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,cAAc;AACd,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AAEnE,kBAAkB;AAClB,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAA;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAA;AAC3E,OAAO,EACH,kBAAkB,EAGrB,MAAM,sCAAsC,CAAA;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAA;AAChE,OAAO,EAAwB,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AAEtF,mBAAmB;AACnB,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAA;AACjF,OAAO,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAA;AAC/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAA;AAEpE,oBAAoB;AACpB,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA;AAChE,OAAO,EAAE,mBAAmB,EAAkC,MAAM,8CAA8C,CAAA;AAElH,uBAAuB;AACvB,cAAc,uBAAuB,CAAA;AACrC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,wBAAwB,CAAA;AAEtC,iBAAiB;AACjB,cAAc,iBAAiB,CAAA;AAE/B,YAAY;AACZ,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AAC/D,OAAO,EACH,UAAU,EACV,YAAY,EACZ,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,mBAAmB,EACtB,MAAM,2BAA2B,CAAA;AAGlC,oBAAoB;AACpB,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,EACH,eAAe,EAIlB,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAC9D,cAAc,oBAAoB,CAAA;AAClC,cAAc,uBAAuB,CAAA;AAErC,mCAAmC;AACnC,cAAc,oBAAoB,CAAA;AAElC,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,cAAc;AACd,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AAEnE,kBAAkB;AAClB,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAA;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAA;AAC3E,OAAO,EACH,kBAAkB,EAGrB,MAAM,sCAAsC,CAAA;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAA;AAChE,OAAO,EAAwB,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AAEtF,mBAAmB;AACnB,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAA;AACjF,OAAO,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAA;AAC/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAA;AAEpE,oBAAoB;AACpB,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA;AAChE,OAAO,EAAE,mBAAmB,EAAkC,MAAM,8CAA8C,CAAA;AAElH,uBAAuB;AACvB,cAAc,uBAAuB,CAAA;AACrC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,wBAAwB,CAAA;AACtC,cAAc,iBAAiB,CAAA;AAE/B,iBAAiB;AACjB,cAAc,iBAAiB,CAAA;AAE/B,SAAS;AACT,cAAc,mBAAmB,CAAA;AAEjC,aAAa;AACb,cAAc,uBAAuB,CAAA;AAErC,YAAY;AACZ,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AACpD,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AACpF,OAAO,EAAE,qBAAqB,EAAwB,MAAM,8BAA8B,CAAA;AAC1F,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AAC/D,OAAO,EACH,UAAU,EACV,YAAY,EACZ,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,mBAAmB,EACtB,MAAM,2BAA2B,CAAA;AAGlC,wDAAwD;AACxD,OAAO,EAOH,WAAW,EACX,WAAW,EACX,SAAS,EACT,eAAe,EACf,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACtB,MAAM,6BAA6B,CAAA;AAEpC,oCAAoC;AACpC,OAAO,EAAE,cAAc,EAAyD,MAAM,mBAAmB,CAAA;AAEzG,oBAAoB;AACpB,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AACvF,OAAO,EACH,aAAa,EACb,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,EAKhB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACH,eAAe,EAIlB,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAC9D,cAAc,oBAAoB,CAAA;AAClC,cAAc,uBAAuB,CAAA;AAErC,mCAAmC;AACnC,cAAc,oBAAoB,CAAA;AAElC,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAA"}