@futdevpro/nts-dynamo 1.15.153 → 1.15.155

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 (52) hide show
  1. package/README.md +25 -6
  2. package/__documentations/2026-08-22-content-free-process-error-boundary.md +91 -0
  3. package/build/_models/control-models/app-params.control-model.d.ts.map +1 -1
  4. package/build/_models/control-models/app-params.control-model.js +1 -2
  5. package/build/_models/control-models/app-params.control-model.js.map +1 -1
  6. package/build/_modules/server/index.d.ts +4 -0
  7. package/build/_modules/server/index.d.ts.map +1 -1
  8. package/build/_modules/server/index.js +5 -0
  9. package/build/_modules/server/index.js.map +1 -1
  10. package/build/_modules/server/safe-diagnostic/safe-diagnostic-cause.type-enum.d.ts +9 -0
  11. package/build/_modules/server/safe-diagnostic/safe-diagnostic-cause.type-enum.d.ts.map +1 -0
  12. package/build/_modules/server/safe-diagnostic/safe-diagnostic-cause.type-enum.js +13 -0
  13. package/build/_modules/server/safe-diagnostic/safe-diagnostic-cause.type-enum.js.map +1 -0
  14. package/build/_modules/server/safe-diagnostic/safe-diagnostic-stage.type-enum.d.ts +20 -0
  15. package/build/_modules/server/safe-diagnostic/safe-diagnostic-stage.type-enum.d.ts.map +1 -0
  16. package/build/_modules/server/safe-diagnostic/safe-diagnostic-stage.type-enum.js +24 -0
  17. package/build/_modules/server/safe-diagnostic/safe-diagnostic-stage.type-enum.js.map +1 -0
  18. package/build/_modules/server/safe-diagnostic/safe-diagnostic.control-service.d.ts +19 -0
  19. package/build/_modules/server/safe-diagnostic/safe-diagnostic.control-service.d.ts.map +1 -0
  20. package/build/_modules/server/safe-diagnostic/safe-diagnostic.control-service.js +83 -0
  21. package/build/_modules/server/safe-diagnostic/safe-diagnostic.control-service.js.map +1 -0
  22. package/build/_modules/server/safe-diagnostic/safe-diagnostic.interface.d.ts +19 -0
  23. package/build/_modules/server/safe-diagnostic/safe-diagnostic.interface.d.ts.map +1 -0
  24. package/build/_modules/server/safe-diagnostic/safe-diagnostic.interface.js +3 -0
  25. package/build/_modules/server/safe-diagnostic/safe-diagnostic.interface.js.map +1 -0
  26. package/build/_services/core/global.service.d.ts +3 -3
  27. package/build/_services/core/global.service.d.ts.map +1 -1
  28. package/build/_services/core/global.service.js +24 -18
  29. package/build/_services/core/global.service.js.map +1 -1
  30. package/build/_services/server/app.server.d.ts +2 -0
  31. package/build/_services/server/app.server.d.ts.map +1 -1
  32. package/build/_services/server/app.server.js +71 -199
  33. package/build/_services/server/app.server.js.map +1 -1
  34. package/build/_services/shared.static-service.d.ts +11 -4
  35. package/build/_services/shared.static-service.d.ts.map +1 -1
  36. package/build/_services/shared.static-service.js +26 -6
  37. package/build/_services/shared.static-service.js.map +1 -1
  38. package/package.json +15 -9
  39. package/src/_models/control-models/app-params.control-model.spec.ts +9 -5
  40. package/src/_models/control-models/app-params.control-model.ts +4 -3
  41. package/src/_modules/server/index.ts +6 -0
  42. package/src/_modules/server/safe-diagnostic/safe-diagnostic-cause.type-enum.ts +8 -0
  43. package/src/_modules/server/safe-diagnostic/safe-diagnostic-stage.type-enum.ts +19 -0
  44. package/src/_modules/server/safe-diagnostic/safe-diagnostic.control-service.spec.ts +124 -0
  45. package/src/_modules/server/safe-diagnostic/safe-diagnostic.control-service.ts +99 -0
  46. package/src/_modules/server/safe-diagnostic/safe-diagnostic.interface.ts +20 -0
  47. package/src/_modules/server/server-status/db-readiness-probe.control-service.spec.ts +2 -2
  48. package/src/_services/core/global.service.ts +34 -33
  49. package/src/_services/server/app-safe-diagnostic.spec.ts +124 -0
  50. package/src/_services/server/app.server.ts +209 -262
  51. package/src/_services/shared.static-service.spec.ts +57 -23
  52. package/src/_services/shared.static-service.ts +48 -19
@@ -243,6 +243,8 @@ export declare abstract class DyNTS_App extends DyNTS_SingletonService {
243
243
  get deepLog(): boolean;
244
244
  get fnLogs(): boolean;
245
245
  debugLog: boolean;
246
+ private reportSafeDiagnostic;
247
+ private forwardSafeDiagnostic;
246
248
  constructor();
247
249
  protected asyncConstruct(extended?: boolean): Promise<void>;
248
250
  ready(timeout?: number): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"app.server.d.ts","sourceRoot":"","sources":["../../../src/_services/server/app.server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app.server.d.ts","sourceRoot":"","sources":["../../../src/_services/server/app.server.ts"],"names":[],"mappings":"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"}
@@ -30,6 +30,8 @@ const global_service_1 = require("../core/global.service");
30
30
  const collection_growth_monitor_service_1 = require("../core/collection-growth-monitor.service");
31
31
  const memory_guard_service_1 = require("../core/memory-guard.service");
32
32
  const event_loop_diag_service_1 = require("../core/event-loop-diag.service");
33
+ const safe_diagnostic_stage_type_enum_1 = require("../../_modules/server/safe-diagnostic/safe-diagnostic-stage.type-enum");
34
+ const safe_diagnostic_control_service_1 = require("../../_modules/server/safe-diagnostic/safe-diagnostic.control-service");
33
35
  class DyNTS_App extends singleton_service_1.DyNTS_SingletonService {
34
36
  systemControls = new app_system_controls_control_model_1.DyNTS_AppSystemControls();
35
37
  get started() {
@@ -85,79 +87,39 @@ class DyNTS_App extends singleton_service_1.DyNTS_SingletonService {
85
87
  return global_settings_const_1.DyNTS_global_settings.log_settings.functions;
86
88
  }
87
89
  debugLog = global_settings_const_1.DyNTS_global_settings.log_settings.server_debug;
90
+ reportSafeDiagnostic(code, stage, error, status = 500) {
91
+ const configuredPrefix = global_settings_const_1.DyNTS_global_settings.systemShortCodeName;
92
+ const prefix = configuredPrefix && /^[A-Z][A-Z0-9_-]{1,31}$/.test(configuredPrefix)
93
+ ? configuredPrefix
94
+ : 'DYNTS';
95
+ return safe_diagnostic_control_service_1.DyNTS_SafeDiagnostic_ControlService.report({
96
+ code: `${prefix}|${code}`,
97
+ stage: stage,
98
+ error: error,
99
+ status: status,
100
+ });
101
+ }
102
+ forwardSafeDiagnostic(diagnostic) {
103
+ try {
104
+ const pending = global_service_1.DyNTS_GlobalService.globalErrorHandler?.(safe_diagnostic_control_service_1.DyNTS_SafeDiagnostic_ControlService.toError(diagnostic));
105
+ void pending?.catch((error) => {
106
+ this.reportSafeDiagnostic('DYNTS-AS0-GLOBAL-HANDLER-REJECTED', safe_diagnostic_stage_type_enum_1.DyNTS_SafeDiagnosticStage_Type.globalErrorHandler, error);
107
+ });
108
+ }
109
+ catch (error) {
110
+ this.reportSafeDiagnostic('DYNTS-AS0-GLOBAL-HANDLER-THREW', safe_diagnostic_stage_type_enum_1.DyNTS_SafeDiagnosticStage_Type.globalErrorHandler, error);
111
+ }
112
+ }
88
113
  constructor( /* extended?: boolean */) {
89
114
  super();
90
115
  /* dotenv.config() */
91
- process.on('unhandledRejection', (reason_theError, p_passWhatIsThis_maybeThePromise) => {
92
- if (reason_theError instanceof fsm_dynamo_1.DyFM_Error) {
93
- reason_theError.logSimple('Unhandled Rejection');
94
- }
95
- else {
96
- fsm_dynamo_1.DyFM_Log.H_error('Unhandled Rejection:', p_passWhatIsThis_maybeThePromise?.toString(), '\n Rejection reason:', reason_theError?.stack?.split('at')?.[0],
97
- /* '\n ErrorCode:', (reason as any)?.code, */
98
- '\n\n Stack:', reason_theError?.stack?.replaceAll?.('\n at', '\n at'));
99
- }
100
- try {
101
- global_service_1.DyNTS_GlobalService.globalErrorHandler?.(new fsm_dynamo_1.DyFM_Error({
102
- errorCode: `${global_settings_const_1.DyNTS_global_settings.systemShortCodeName}|DyNTS-AS0-BASE-UR`,
103
- message: `Unhandled Rejection!: "${reason_theError?.stack?.split('at')?.[0]}"`,
104
- userMessage: this.defaultErrorUserMsg,
105
- addECToUserMsg: true,
106
- error: reason_theError,
107
- additionalContent: {
108
- reason: reason_theError,
109
- rejectedPromise: p_passWhatIsThis_maybeThePromise,
110
- },
111
- systemVersion: global_settings_const_1.DyNTS_global_settings.systemVersion,
112
- level: fsm_dynamo_1.DyFM_ErrorLevel.critical,
113
- }));
114
- }
115
- catch (error) {
116
- fsm_dynamo_1.DyFM_Log.error('globalErrorHandler (MULTILEVEL) ERROR:', error);
117
- }
116
+ process.on('unhandledRejection', (reason) => {
117
+ const diagnostic = this.reportSafeDiagnostic('DYNTS-AS0-BASE-UR', safe_diagnostic_stage_type_enum_1.DyNTS_SafeDiagnosticStage_Type.unhandledRejection, reason);
118
+ this.forwardSafeDiagnostic(diagnostic);
118
119
  });
119
120
  this.asyncConstruct( /* extended */).catch((error) => {
120
- if (error instanceof fsm_dynamo_1.DyFM_Error) {
121
- if (error.additionalContent?.constructErrors?.length) {
122
- error.additionalContent.constructErrors.forEach((errorItem) => {
123
- fsm_dynamo_1.DyFM_Error.logSimple('(constructor asyncConstruct.catch) error:', errorItem);
124
- /* if (errorItem instanceof DyFM_Error) {
125
- errorItem.logSimple(`(constructor asyncConstruct.catch) error:\n`);
126
- } else {
127
- DyFM_Log.H_warn(
128
- '(constructor asyncConstruct.catch) additional error content:\n',
129
- errorItem
130
- );
131
- } */
132
- });
133
- }
134
- else {
135
- fsm_dynamo_1.DyFM_Log.H_warn('(constructor asyncConstruct.catch) additional error content:\n', error?.additionalContent);
136
- }
137
- }
138
- fsm_dynamo_1.DyFM_Error.logSimple('(constructor asyncConstruct.catch) error:', error);
139
- /* if (
140
- !DyNTS_global_settings.log_settings.highDetailedLogs &&
141
- (error instanceof DyFM_Error)
142
- ) {
143
- error.logSimple(
144
- `Application: "${this.params?.name}" start failed. (constructor asyncConstruct.catch)` +
145
- '\n all error messages (from this stack):\n\n"' +
146
- error._messages.join('"\n\n"') + '"\n\n'
147
- );
148
- } else if (error instanceof DyFM_Error) {
149
- DyFM_Log.H_error(
150
- `Application: "${this.params?.name}" start failed. (constructor asyncConstruct.catch)`,
151
- `\n ERROR:`, error
152
- );
153
- } */
154
- const message = error?.additionalContent?.constructErrors?.flatMap((errorItem) => {
155
- return errorItem?._messages ?? [];
156
- })?.join?.('\n') ??
157
- error?.errors?.flatMap((errorItem) => errorItem?._messages ?? [errorItem?.message])?.join?.('\n') ??
158
- error?.message ??
159
- 'UNKNOWN';
160
- fsm_dynamo_1.DyFM_Log.testError('Application start failed:\n', message);
121
+ const diagnostic = this.reportSafeDiagnostic('DYNTS-AS0-BOOTSTRAP-FAILED', safe_diagnostic_stage_type_enum_1.DyNTS_SafeDiagnosticStage_Type.bootstrap, error);
122
+ this.forwardSafeDiagnostic(diagnostic);
161
123
  process.exit(1);
162
124
  });
163
125
  }
@@ -264,8 +226,8 @@ class DyNTS_App extends singleton_service_1.DyNTS_SingletonService {
264
226
  }
265
227
  if (this.postProcess) {
266
228
  await this.postProcess().catch((error) => {
267
- fsm_dynamo_1.DyFM_Error.logSimple(`"${this._params.name}" postProcess failed:`, error);
268
- global_service_1.DyNTS_GlobalService.globalErrorHandler?.(error);
229
+ const diagnostic = this.reportSafeDiagnostic('DYNTS-AS0-POST-PROCESS-FAILED', safe_diagnostic_stage_type_enum_1.DyNTS_SafeDiagnosticStage_Type.postProcess, error);
230
+ this.forwardSafeDiagnostic(diagnostic);
269
231
  });
270
232
  }
271
233
  // FR-193 — bedrock OOM korai-figyelmeztetés: feltelepítjük a heap-watchdogot, ha
@@ -278,7 +240,7 @@ class DyNTS_App extends singleton_service_1.DyNTS_SingletonService {
278
240
  }
279
241
  }
280
242
  catch (memoryGuardError) {
281
- fsm_dynamo_1.DyFM_Log.warn('[DyNTS_MemoryGuard] auto-install skipped (non-fatal):', memoryGuardError);
243
+ this.reportSafeDiagnostic('DYNTS-AS0-MEMORY-GUARD-SKIPPED', safe_diagnostic_stage_type_enum_1.DyNTS_SafeDiagnosticStage_Type.memoryGuard, memoryGuardError);
282
244
  }
283
245
  // BFR-OVERSEER-007 — event-loop-lag diag a MemoryGuard MELLÉ: a „process él, HTTP néma" wedge
284
246
  // belső mérése (natív histogram, olcsó). Observation-only, sosem dob; a /server/diag olvas belőle.
@@ -286,7 +248,7 @@ class DyNTS_App extends singleton_service_1.DyNTS_SingletonService {
286
248
  event_loop_diag_service_1.DyNTS_EventLoopDiag.getInstance().install();
287
249
  }
288
250
  catch (eventLoopDiagError) {
289
- fsm_dynamo_1.DyFM_Log.warn('[DyNTS_EventLoopDiag] auto-install skipped (non-fatal):', eventLoopDiagError);
251
+ this.reportSafeDiagnostic('DYNTS-AS0-EVENT-LOOP-DIAG-SKIPPED', safe_diagnostic_stage_type_enum_1.DyNTS_SafeDiagnosticStage_Type.eventLoopDiagnostic, eventLoopDiagError);
290
252
  }
291
253
  // FR-258 / SR-4 — proactive collection-growth monitor (companion to the MemoryGuard). Warns
292
254
  // into the Errors-sink when a collection grows unbounded, BEFORE it can be loaded into heap and
@@ -297,7 +259,7 @@ class DyNTS_App extends singleton_service_1.DyNTS_SingletonService {
297
259
  }
298
260
  }
299
261
  catch (cgmError) {
300
- fsm_dynamo_1.DyFM_Log.warn('[DyNTS_CollectionGrowthMonitor] auto-install skipped (non-fatal):', cgmError);
262
+ this.reportSafeDiagnostic('DYNTS-AS0-COLLECTION-GROWTH-MONITOR-SKIPPED', safe_diagnostic_stage_type_enum_1.DyNTS_SafeDiagnosticStage_Type.collectionGrowthMonitor, cgmError);
301
263
  }
302
264
  if (!extended) {
303
265
  await this.ready();
@@ -311,14 +273,6 @@ class DyNTS_App extends singleton_service_1.DyNTS_SingletonService {
311
273
  }
312
274
  catch (error) {
313
275
  this.constructErrors.push(error);
314
- if (this.deepLog) {
315
- if (global_settings_const_1.DyNTS_global_settings.log_settings.highDetailedLogs) {
316
- fsm_dynamo_1.DyFM_Log.H_error(`"${this._params.name}" start failed (in asyncConstruct (highDetailedLog)). `, `\n\n construct ERRORS:`, this.constructErrors, '\n\nlast error:', error);
317
- }
318
- else {
319
- fsm_dynamo_1.DyFM_Log.H_error(`"${this._params.name}" start failed (in asyncConstruct). `, `\n\n construct ERRORS:`, this.getSimplifiedConstructErrors(), '\n\nlast error:', error instanceof fsm_dynamo_1.DyFM_Error ? error.getErrorSimplified() : error);
320
- }
321
- }
322
276
  throw new fsm_dynamo_1.DyFM_Error({
323
277
  ...this._getDefaultErrorSettings('asyncConstruct', error),
324
278
  errorCode: `${global_settings_const_1.DyNTS_global_settings.systemShortCodeName}|DyNTS-AS0-001`,
@@ -343,14 +297,7 @@ class DyNTS_App extends singleton_service_1.DyNTS_SingletonService {
343
297
  let ready = false;
344
298
  const start = +new Date();
345
299
  if (this.constructErrors.length) {
346
- if (this.deepLog) {
347
- if (global_settings_const_1.DyNTS_global_settings.log_settings.highDetailedLogs) {
348
- fsm_dynamo_1.DyFM_Log.H_error(`"${this._params.name}" start failed. (ready; constructErrors check 1)`, `\n construct ERRORS:`, this.constructErrors);
349
- }
350
- else {
351
- fsm_dynamo_1.DyFM_Log.H_error(`"${this._params.name}" start failed. (ready; constructErrors check 1)`, `\n construct ERRORS:`, this.getSimplifiedConstructErrors());
352
- }
353
- }
300
+ this.reportSafeDiagnostic('DYNTS-AS0-READINESS-CONSTRUCT-ERROR', safe_diagnostic_stage_type_enum_1.DyNTS_SafeDiagnosticStage_Type.readiness, this.constructErrors[0]);
354
301
  throw new fsm_dynamo_1.DyFM_Error({
355
302
  ...this._getDefaultErrorSettings('ready', new Error(`"${this._params.name}" start failed.`)),
356
303
  errorCode: `${global_settings_const_1.DyNTS_global_settings.systemShortCodeName}|DyNTS-AS0-R01`,
@@ -365,22 +312,12 @@ class DyNTS_App extends singleton_service_1.DyNTS_SingletonService {
365
312
  this.systemControls.httpServer.getIsReady() &&
366
313
  this.systemControls.httpsServer.getIsReady());
367
314
  }
368
- else {
369
- fsm_dynamo_1.DyFM_Log.error(`"${this._params.name}" APP NOT INITIALIZED while trying to get ready.`);
370
- }
371
315
  if (!ready) {
372
316
  await fsm_dynamo_1.DyFM_Async.wait(100);
373
317
  }
374
318
  }
375
319
  if (timeout < +new Date() - start) {
376
- if (this.deepLog) {
377
- if (global_settings_const_1.DyNTS_global_settings.log_settings.highDetailedLogs) {
378
- fsm_dynamo_1.DyFM_Log.H_error(`"${this._params.name}" start failed. (ready; TIMEOUT check)`, `\n construct ERRORS:`, this.constructErrors);
379
- }
380
- else {
381
- fsm_dynamo_1.DyFM_Log.H_error(`"${this._params.name}" start failed. (ready; TIMEOUT check)`, `\n construct ERRORS:`, this.getSimplifiedConstructErrors());
382
- }
383
- }
320
+ this.reportSafeDiagnostic('DYNTS-AS0-READINESS-TIMEOUT', safe_diagnostic_stage_type_enum_1.DyNTS_SafeDiagnosticStage_Type.readiness, this.constructErrors[0] ?? new Error('readiness-timeout'));
384
321
  throw new fsm_dynamo_1.DyFM_Error({
385
322
  ...this._getDefaultErrorSettings('ready', new Error(`"${this._params.name}" start failed. TIMEOUT`)),
386
323
  errorCode: `${global_settings_const_1.DyNTS_global_settings.systemShortCodeName}|DyNTS-AS0-R02`,
@@ -396,14 +333,7 @@ class DyNTS_App extends singleton_service_1.DyNTS_SingletonService {
396
333
  });
397
334
  }
398
335
  if (this.constructErrors.length) {
399
- if (this.deepLog) {
400
- if (global_settings_const_1.DyNTS_global_settings.log_settings.highDetailedLogs) {
401
- fsm_dynamo_1.DyFM_Log.H_error(`"${this._params.name}" start failed. (ready; constructErrors check 2)`, `\n construct ERRORS:`, this.constructErrors);
402
- }
403
- else {
404
- fsm_dynamo_1.DyFM_Log.H_error(`"${this._params.name}" start failed. (ready; constructErrors check 2)`, `\n construct ERRORS:`, this.getSimplifiedConstructErrors());
405
- }
406
- }
336
+ this.reportSafeDiagnostic('DYNTS-AS0-READINESS-LATE-CONSTRUCT-ERROR', safe_diagnostic_stage_type_enum_1.DyNTS_SafeDiagnosticStage_Type.readiness, this.constructErrors[0]);
407
337
  throw new fsm_dynamo_1.DyFM_Error({
408
338
  ...this._getDefaultErrorSettings('ready', new Error(`"${this._params.name}" start failed.`)),
409
339
  errorCode: `${global_settings_const_1.DyNTS_global_settings.systemShortCodeName}|DyNTS-AS0-R03`,
@@ -427,7 +357,7 @@ class DyNTS_App extends singleton_service_1.DyNTS_SingletonService {
427
357
  if (this.systemControls.httpsServer.init && !this.systemControls.httpsServer.started) {
428
358
  msg += `\nHTTPS Server start failed.`;
429
359
  }
430
- fsm_dynamo_1.DyFM_Log.error(msg, this.constructErrors);
360
+ this.reportSafeDiagnostic('DYNTS-AS0-READINESS-UNKNOWN', safe_diagnostic_stage_type_enum_1.DyNTS_SafeDiagnosticStage_Type.readiness, this.constructErrors[0] ?? new Error('readiness-unknown'));
431
361
  throw new fsm_dynamo_1.DyFM_Error({
432
362
  ...this._getDefaultErrorSettings('ready', new Error(msg)),
433
363
  errorCode: `${global_settings_const_1.DyNTS_global_settings.systemShortCodeName}|DyNTS-AS0-R04`,
@@ -569,7 +499,7 @@ class DyNTS_App extends singleton_service_1.DyNTS_SingletonService {
569
499
  this.mongoose.connection
570
500
  .once('open', () => {
571
501
  this.systemControls.mongoose.started = true;
572
- fsm_dynamo_1.DyFM_Log.success(`\nConnected to MongoDB (${this._params.dbUri})\n`);
502
+ fsm_dynamo_1.DyFM_Log.success('\nConnected to MongoDB.\n');
573
503
  resolve();
574
504
  // FR-258 / SR-2 — install declared-retention TTL indexes. DEFERRED + fire-and-forget +
575
505
  // fully non-fatal: a create-if-missing index op (and the `indexes()` probes) must NOT
@@ -593,31 +523,13 @@ class DyNTS_App extends singleton_service_1.DyNTS_SingletonService {
593
523
  // Ha a mongoose később mégis tudna csatlakozni, az 'open' event
594
524
  // beállítja a started flag-et, így a runtime DB-műveletek elindulnak.
595
525
  this.systemControls.mongoose.init = false;
596
- const d_error = new fsm_dynamo_1.DyFM_Error({
597
- ...this._getDefaultErrorSettings('startDB', error),
598
- errorCode: `${global_settings_const_1.DyNTS_global_settings.systemShortCodeName}|DyNTS-AS0-SDB1`,
599
- message: `Unable to connect to MongoDB server (${this._params.dbUri}), ` +
600
- `ERROR: ${error}`,
601
- level: fsm_dynamo_1.DyFM_ErrorLevel.serious,
602
- });
603
- fsm_dynamo_1.DyFM_Log.H_error(`\nUnable to connect to MongoDB server (${this._params.dbUri}).` +
604
- `\nServer will continue WITHOUT DB connection.` +
605
- `\nDB-using endpoints will fail at runtime until connection recovers.`);
606
- if (this.debugLog)
607
- fsm_dynamo_1.DyFM_Log.S_error(`\nMongoDB connect ERROR: `, error);
608
- global_service_1.DyNTS_GlobalService.globalErrorHandler?.(d_error);
526
+ const diagnostic = this.reportSafeDiagnostic('DYNTS-AS0-SDB1', safe_diagnostic_stage_type_enum_1.DyNTS_SafeDiagnosticStage_Type.databaseConnect, error, 503);
527
+ this.forwardSafeDiagnostic(diagnostic);
609
528
  resolve();
610
529
  }
611
530
  else {
612
- if (this.debugLog)
613
- fsm_dynamo_1.DyFM_Log.error('\nMongoDB ERROR: ', error);
614
- const d_error = new fsm_dynamo_1.DyFM_Error({
615
- ...this._getDefaultErrorSettings('mongoose.connection.on(error)', error),
616
- errorCode: `${global_settings_const_1.DyNTS_global_settings.systemShortCodeName}|DyNTS-AS0-SDB2`,
617
- message: `MongoDB ERROR: ${error}`,
618
- level: fsm_dynamo_1.DyFM_ErrorLevel.critical,
619
- });
620
- global_service_1.DyNTS_GlobalService.globalErrorHandler?.(d_error);
531
+ const diagnostic = this.reportSafeDiagnostic('DYNTS-AS0-SDB2', safe_diagnostic_stage_type_enum_1.DyNTS_SafeDiagnosticStage_Type.databaseRuntime, error, 503);
532
+ this.forwardSafeDiagnostic(diagnostic);
621
533
  }
622
534
  });
623
535
  try {
@@ -655,11 +567,13 @@ class DyNTS_App extends singleton_service_1.DyNTS_SingletonService {
655
567
  await this.mongoose.disconnect().catch(() => undefined);
656
568
  await this.mongoose.connect(this._params.dbUri, this._params.dbOptions);
657
569
  },
658
- log: (msg) => fsm_dynamo_1.DyFM_Log.warn(msg),
570
+ log: (msg) => {
571
+ this.reportSafeDiagnostic('DYNTS-AS0-MONGO-RECONNECT-EVENT', safe_diagnostic_stage_type_enum_1.DyNTS_SafeDiagnosticStage_Type.mongoReconnectGuard, msg, 503);
572
+ },
659
573
  });
660
574
  }
661
575
  catch (guardErr) {
662
- fsm_dynamo_1.DyFM_Log.warn(`[mongo-reconnect-guard] failed to start (non-fatal): ${guardErr instanceof Error ? guardErr.message : String(guardErr)}`);
576
+ this.reportSafeDiagnostic('DYNTS-AS0-MONGO-RECONNECT-FAILED', safe_diagnostic_stage_type_enum_1.DyNTS_SafeDiagnosticStage_Type.mongoReconnectGuard, guardErr, 503);
663
577
  }
664
578
  }
665
579
  /**
@@ -703,14 +617,11 @@ class DyNTS_App extends singleton_service_1.DyNTS_SingletonService {
703
617
  }
704
618
  else if (action === 'differs') {
705
619
  // Live index has a different TTL — left untouched at boot (see ensureRetentionTtlIndex doc).
706
- fsm_dynamo_1.DyFM_Log.warn(`[FR-258 retention] "${dataName}" already has a {__created} index with a DIFFERENT TTL than the ` +
707
- `declared ${Math.round(ttlSeconds / 86400)}d (${ttlSeconds}s) — left as-is (no boot-time rebuild). ` +
708
- `Apply the change via maintenance if intended.`);
620
+ this.reportSafeDiagnostic('DYNTS-AS0-RETENTION-INDEX-DIFFERS', safe_diagnostic_stage_type_enum_1.DyNTS_SafeDiagnosticStage_Type.retention, new Error('retention-index-differs'));
709
621
  }
710
622
  }
711
623
  catch (idxErr) {
712
- fsm_dynamo_1.DyFM_Log.warn(`[FR-258 retention] TTL index on "${dataName}" failed (non-fatal): ` +
713
- `${idxErr instanceof Error ? idxErr.message : String(idxErr)}`);
624
+ this.reportSafeDiagnostic('DYNTS-AS0-RETENTION-INDEX-FAILED', safe_diagnostic_stage_type_enum_1.DyNTS_SafeDiagnosticStage_Type.retention, idxErr);
714
625
  }
715
626
  }
716
627
  if (ensured > 0) {
@@ -718,8 +629,7 @@ class DyNTS_App extends singleton_service_1.DyNTS_SingletonService {
718
629
  }
719
630
  }
720
631
  catch (err) {
721
- fsm_dynamo_1.DyFM_Log.warn(`[FR-258 retention] TTL-installer failed (non-fatal): ` +
722
- `${err instanceof Error ? err.message : String(err)}`);
632
+ this.reportSafeDiagnostic('DYNTS-AS0-RETENTION-INSTALLER-FAILED', safe_diagnostic_stage_type_enum_1.DyNTS_SafeDiagnosticStage_Type.retention, err);
723
633
  }
724
634
  }
725
635
  /**
@@ -780,7 +690,7 @@ class DyNTS_App extends singleton_service_1.DyNTS_SingletonService {
780
690
  const errorStack = error.stack.split('\n');
781
691
  errorStack.splice(1, 2);
782
692
  error.stack = errorStack.join('\n');
783
- fsm_dynamo_1.DyFM_Log.error(errorMsg);
693
+ this.reportSafeDiagnostic('DYNTS-AS0-OPEN-ROUTE-CONFIGURATION', safe_diagnostic_stage_type_enum_1.DyNTS_SafeDiagnosticStage_Type.routing, error);
784
694
  throw error;
785
695
  }
786
696
  await this.initOpenExpress();
@@ -816,7 +726,7 @@ class DyNTS_App extends singleton_service_1.DyNTS_SingletonService {
816
726
  const errorStack = error.stack.split('\n');
817
727
  errorStack.splice(1, 2);
818
728
  error.stack = errorStack.join('\n');
819
- fsm_dynamo_1.DyFM_Log.error(errorMsg);
729
+ this.reportSafeDiagnostic('DYNTS-AS0-SECURE-ROUTE-CONFIGURATION', safe_diagnostic_stage_type_enum_1.DyNTS_SafeDiagnosticStage_Type.routing, error);
820
730
  throw error;
821
731
  }
822
732
  await this.initSecureExpress();
@@ -895,8 +805,7 @@ class DyNTS_App extends singleton_service_1.DyNTS_SingletonService {
895
805
  resolve();
896
806
  })
897
807
  .on('error', (error) => {
898
- if (this.debugLog)
899
- fsm_dynamo_1.DyFM_Log.error(`\nHTTPS (secure) server ERROR`, error);
808
+ const diagnostic = this.reportSafeDiagnostic('DYNTS-AS0-HTTPS-ERROR', safe_diagnostic_stage_type_enum_1.DyNTS_SafeDiagnosticStage_Type.httpsServer, error, 503);
900
809
  if (!this.systemControls.httpsServer.started) {
901
810
  const d_error = new fsm_dynamo_1.DyFM_Error({
902
811
  ...this._getDefaultErrorSettings('startExpresses', error),
@@ -904,29 +813,16 @@ class DyNTS_App extends singleton_service_1.DyNTS_SingletonService {
904
813
  message: `HTTPS (secure) start server ERROR`,
905
814
  });
906
815
  this.constructErrors.push(d_error);
907
- global_service_1.DyNTS_GlobalService.globalErrorHandler?.(d_error);
816
+ this.forwardSafeDiagnostic(diagnostic);
908
817
  reject(d_error);
909
818
  }
910
819
  else {
911
- const d_error = new fsm_dynamo_1.DyFM_Error({
912
- ...this._getDefaultErrorSettings('httpsServer.on(error)', error),
913
- errorCode: `${global_settings_const_1.DyNTS_global_settings.systemShortCodeName}|DyNTS-AS0-SE2`,
914
- message: `HTTPS (secure) server ERROR`,
915
- level: fsm_dynamo_1.DyFM_ErrorLevel.serious,
916
- });
917
- global_service_1.DyNTS_GlobalService.globalErrorHandler?.(d_error);
820
+ this.forwardSafeDiagnostic(diagnostic);
918
821
  }
919
822
  })
920
823
  .on('uncaughtException', (exception) => {
921
- const d_error = new fsm_dynamo_1.DyFM_Error({
922
- ...this._getDefaultErrorSettings('httpsServer.on(uncaughtException)', exception),
923
- errorCode: `${global_settings_const_1.DyNTS_global_settings.systemShortCodeName}|DyNTS-AS0-SE3`,
924
- message: `HTTPS (secure) server uncaughtException`,
925
- level: fsm_dynamo_1.DyFM_ErrorLevel.critical,
926
- });
927
- if (this.debugLog)
928
- fsm_dynamo_1.DyFM_Log.warn(`\nHTTPS (secure) server uncaughtException`, d_error);
929
- global_service_1.DyNTS_GlobalService.globalErrorHandler?.(d_error);
824
+ const diagnostic = this.reportSafeDiagnostic('DYNTS-AS0-HTTPS-UNCAUGHT', safe_diagnostic_stage_type_enum_1.DyNTS_SafeDiagnosticStage_Type.httpsServer, exception);
825
+ this.forwardSafeDiagnostic(diagnostic);
930
826
  });
931
827
  });
932
828
  }
@@ -946,8 +842,7 @@ class DyNTS_App extends singleton_service_1.DyNTS_SingletonService {
946
842
  resolve();
947
843
  })
948
844
  .on('error', (error) => {
949
- if (this.debugLog)
950
- fsm_dynamo_1.DyFM_Log.error(`\nHTTP (open) server ERROR`, error);
845
+ const diagnostic = this.reportSafeDiagnostic('DYNTS-AS0-HTTP-ERROR', safe_diagnostic_stage_type_enum_1.DyNTS_SafeDiagnosticStage_Type.httpServer, error, 503);
951
846
  if (!this.systemControls.httpServer.started) {
952
847
  const d_error = new fsm_dynamo_1.DyFM_Error({
953
848
  ...this._getDefaultErrorSettings('startExpresses', error),
@@ -955,30 +850,16 @@ class DyNTS_App extends singleton_service_1.DyNTS_SingletonService {
955
850
  message: `HTTP (open) start server ERROR`,
956
851
  });
957
852
  this.constructErrors.push(d_error);
958
- global_service_1.DyNTS_GlobalService.globalErrorHandler?.(d_error);
853
+ this.forwardSafeDiagnostic(diagnostic);
959
854
  reject(d_error);
960
855
  }
961
856
  else {
962
- const d_error = new fsm_dynamo_1.DyFM_Error({
963
- ...this._getDefaultErrorSettings('httpServer.on(error)', error),
964
- errorCode: `${global_settings_const_1.DyNTS_global_settings.systemShortCodeName}|DyNTS-AS0-SE4`,
965
- message: `HTTP (open) server ERROR`,
966
- level: fsm_dynamo_1.DyFM_ErrorLevel.serious,
967
- });
968
- global_service_1.DyNTS_GlobalService.globalErrorHandler?.(d_error);
857
+ this.forwardSafeDiagnostic(diagnostic);
969
858
  }
970
859
  })
971
860
  .on('uncaughtException', (exception) => {
972
- const d_error = new fsm_dynamo_1.DyFM_Error({
973
- ...this._getDefaultErrorSettings('httpServer.on(uncaughtException)', exception),
974
- errorCode: `${global_settings_const_1.DyNTS_global_settings.systemShortCodeName}|DyNTS-AS0-SE5`,
975
- message: `HTTP (open) server uncaughtException`,
976
- level: fsm_dynamo_1.DyFM_ErrorLevel.critical,
977
- });
978
- if (this.debugLog) {
979
- fsm_dynamo_1.DyFM_Log.warn(`\nHTTP (open) server uncaughtException`, d_error);
980
- }
981
- global_service_1.DyNTS_GlobalService.globalErrorHandler?.(d_error);
861
+ const diagnostic = this.reportSafeDiagnostic('DYNTS-AS0-HTTP-UNCAUGHT', safe_diagnostic_stage_type_enum_1.DyNTS_SafeDiagnosticStage_Type.httpServer, exception);
862
+ this.forwardSafeDiagnostic(diagnostic);
982
863
  });
983
864
  });
984
865
  }
@@ -996,30 +877,21 @@ class DyNTS_App extends singleton_service_1.DyNTS_SingletonService {
996
877
  async expressErrorHandling(error, req, res, next) {
997
878
  try {
998
879
  if (error) {
999
- const d_error = new fsm_dynamo_1.DyFM_Error({
1000
- ...this._getDefaultErrorSettings('expressErrorHandling', error),
1001
- errorCode: `${global_settings_const_1.DyNTS_global_settings.systemShortCodeName}|DyNTS-AS0-EEH1`,
1002
- message: `Express ERROR`,
1003
- additionalContent: {
1004
- req,
1005
- res,
1006
- },
1007
- level: fsm_dynamo_1.DyFM_ErrorLevel.error,
1008
- });
1009
- await global_service_1.DyNTS_GlobalService.globalErrorHandler?.(d_error, req, res);
880
+ const diagnostic = this.reportSafeDiagnostic('DYNTS-AS0-EXPRESS-ERROR', safe_diagnostic_stage_type_enum_1.DyNTS_SafeDiagnosticStage_Type.expressFallback, error);
881
+ this.forwardSafeDiagnostic(diagnostic);
1010
882
  // Kliens-safe strip (BFR-FDPAUTHSERVICE-002): az express-error út eddig NYERS error-t küldött
1011
883
  // (0 strip) — DyFM-nél belső stack/verzió/issuer, axios-jellegű error-nál akár auth-header is
1012
884
  // kimehetett. A strip-szabályok SSOT-ja a DyNTS_ClientSafeError_Util.
1013
885
  res.send(client_safe_error_util_1.DyNTS_ClientSafeError_Util.toClientSafe(error));
1014
886
  }
1015
887
  else {
1016
- fsm_dynamo_1.DyFM_Log.H_error('WTF??? express error; without error?...' +
1017
- '\nerr:', error, '\nreq:', req, '\nres:', res);
888
+ const diagnostic = this.reportSafeDiagnostic('DYNTS-AS0-EXPRESS-MISSING-ERROR', safe_diagnostic_stage_type_enum_1.DyNTS_SafeDiagnosticStage_Type.expressFallback);
889
+ this.forwardSafeDiagnostic(diagnostic);
1018
890
  }
1019
891
  }
1020
892
  catch (error) {
1021
- fsm_dynamo_1.DyFM_Log.H_error('MULTILEVEL ERROR (expressErrorHandling)....' +
1022
- '\n', error);
893
+ const diagnostic = this.reportSafeDiagnostic('DYNTS-AS0-EXPRESS-MULTILEVEL', safe_diagnostic_stage_type_enum_1.DyNTS_SafeDiagnosticStage_Type.expressFallback, error);
894
+ this.forwardSafeDiagnostic(diagnostic);
1023
895
  }
1024
896
  }
1025
897
  /**
@@ -1049,7 +921,7 @@ class DyNTS_App extends singleton_service_1.DyNTS_SingletonService {
1049
921
  errorStack.splice(1, 4);
1050
922
  error.stack = errorStack.join('\n'); */
1051
923
  error.stack = module.stackLocation;
1052
- fsm_dynamo_1.DyFM_Log.S_error(`ROUTE DUPLICATION: ${module.route}`, error);
924
+ this.reportSafeDiagnostic('DYNTS-AS0-SECURE-ROUTE-DUPLICATION', safe_diagnostic_stage_type_enum_1.DyNTS_SafeDiagnosticStage_Type.routing, error);
1053
925
  throw new fsm_dynamo_1.DyFM_Error({
1054
926
  ...this._getDefaultErrorSettings('mountSecureRoutes', error),
1055
927
  errorCode: `${global_settings_const_1.DyNTS_global_settings.systemShortCodeName}|DyNTS-AS0-MSR1`,
@@ -1092,7 +964,7 @@ class DyNTS_App extends singleton_service_1.DyNTS_SingletonService {
1092
964
  errorStack.splice(1, 4);
1093
965
  error.stack = errorStack.join('\n'); */
1094
966
  error.stack = module.stackLocation;
1095
- fsm_dynamo_1.DyFM_Log.S_error(`ROUTE DUPLICATION: ${module.route}`, error);
967
+ this.reportSafeDiagnostic('DYNTS-AS0-OPEN-ROUTE-DUPLICATION', safe_diagnostic_stage_type_enum_1.DyNTS_SafeDiagnosticStage_Type.routing, error);
1096
968
  throw new fsm_dynamo_1.DyFM_Error({
1097
969
  ...this._getDefaultErrorSettings('mountOpenRoutes', error),
1098
970
  errorCode: `${global_settings_const_1.DyNTS_global_settings.systemShortCodeName}|DyNTS-AS0-MOR1`,