@fraqjs/fraq 0.3.2 → 0.3.3

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.
package/dist/index.d.mts CHANGED
@@ -5540,23 +5540,26 @@ declare namespace filter {
5540
5540
  }
5541
5541
  //#endregion
5542
5542
  //#region src/core/logging.d.ts
5543
+ type LogLevel = 'debug' | 'info' | 'warn' | 'error';
5543
5544
  interface LogMessage {
5544
- level: 'debug' | 'info' | 'warn' | 'error';
5545
+ level: LogLevel;
5545
5546
  module: string;
5546
5547
  message: string;
5547
5548
  error?: unknown;
5548
5549
  time: number;
5549
5550
  }
5551
+ type LogHandler = (message: LogMessage) => void;
5550
5552
  declare class Logger {
5551
5553
  private readonly logHandler;
5552
5554
  private readonly module;
5553
- constructor(logHandler: (message: LogMessage) => void, module: string);
5555
+ constructor(logHandler: LogHandler, module: string);
5554
5556
  private log;
5555
5557
  debug(message: string): void;
5556
5558
  info(message: string): void;
5557
5559
  warn(message: string, error?: unknown): void;
5558
5560
  error(message: string, error?: unknown): void;
5559
5561
  }
5562
+ declare function combineLogHandlers(...handlers: LogHandler[]): LogHandler;
5560
5563
  //#endregion
5561
5564
  //#region src/core/service.d.ts
5562
5565
  /** biome-ignore-all lint/suspicious/noExplicitAny: Service constructors may accept any arguments. */
@@ -5578,7 +5581,7 @@ interface ContextOptions {
5578
5581
  initialDelayMs?: number;
5579
5582
  maxDelayMs?: number;
5580
5583
  };
5581
- logHandler?: (message: LogMessage) => void;
5584
+ logHandler?: LogHandler;
5582
5585
  }
5583
5586
  interface ContextUrlOptions {
5584
5587
  accessToken?: string;
@@ -5666,6 +5669,8 @@ export {
5666
5669
  ContextUrlOptions,
5667
5670
  EventMap,
5668
5671
  Filter,
5672
+ LogHandler,
5673
+ LogLevel,
5669
5674
  LogMessage,
5670
5675
  Logger,
5671
5676
  MilkyClient,
@@ -5676,6 +5681,7 @@ export {
5676
5681
  Router,
5677
5682
  type ServiceClass,
5678
5683
  Session,
5684
+ combineLogHandlers,
5679
5685
  createMilkyClient,
5680
5686
  definePlugin,
5681
5687
  filter,
package/dist/index.mjs CHANGED
@@ -300,6 +300,11 @@ var Logger = class {
300
300
  this.log("error", message, error);
301
301
  }
302
302
  };
303
+ function combineLogHandlers(...handlers) {
304
+ return (message) => {
305
+ for (const handler of handlers) handler(message);
306
+ };
307
+ }
303
308
  //#endregion
304
309
  //#region src/core/service.ts
305
310
  function getServiceName(service) {
@@ -452,8 +457,10 @@ var Context = class Context {
452
457
  }
453
458
  async runEventStream() {
454
459
  let reconnectDelay = this.initialReconnectDelayMs;
460
+ let reconnectAttempt = 1;
455
461
  while (this.isStarted) {
456
462
  try {
463
+ this.logger.debug(`Connecting event stream (attempt=${reconnectAttempt})`);
457
464
  const subscription = await this.client.startEvents((event) => {
458
465
  try {
459
466
  this.eventBus.emit(event.event_type, event);
@@ -461,13 +468,17 @@ var Context = class Context {
461
468
  this.logger.error("Error handling event stream event", error);
462
469
  }
463
470
  });
471
+ this.logger.info("Event stream connected");
464
472
  reconnectDelay = this.initialReconnectDelayMs;
473
+ reconnectAttempt = 1;
465
474
  await subscription.closed;
475
+ this.logger.warn(`Event stream disconnected; reconnecting in ${reconnectDelay}ms`);
466
476
  } catch (error) {
467
- this.logger.error("Error connecting event stream", error);
477
+ this.logger.error(`Error connecting event stream; reconnecting in ${reconnectDelay}ms`, error);
468
478
  }
469
479
  await new Promise((resolve) => setTimeout(resolve, reconnectDelay));
470
480
  reconnectDelay = Math.min(reconnectDelay * 2, this.maxReconnectDelayMs);
481
+ reconnectAttempt += 1;
471
482
  }
472
483
  }
473
484
  createSession(message) {
@@ -866,4 +877,4 @@ let param;
866
877
  _param.segment = segment;
867
878
  })(param || (param = {}));
868
879
  //#endregion
869
- export { Context, Logger, Parameter, Router, createMilkyClient, definePlugin, filter, milkyPackageVersion, milkyVersion, msg, param, seg };
880
+ export { Context, Logger, Parameter, Router, combineLogHandlers, createMilkyClient, definePlugin, filter, milkyPackageVersion, milkyVersion, msg, param, seg };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@fraqjs/fraq",
3
3
  "type": "module",
4
- "version": "0.3.2",
4
+ "version": "0.3.3",
5
5
  "description": "Milky Bot framework",
6
6
  "files": [
7
7
  "dist"