@devbro/pashmak 0.1.20 → 0.1.22

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.
@@ -566,17 +566,17 @@ var queue_exports = {};
566
566
  __export(queue_exports, {
567
567
  DatabaseTransport: () => DatabaseTransport
568
568
  });
569
- var DatabaseTransport;
569
+ var import_neko_helper, DatabaseTransport;
570
570
  var init_queue = __esm({
571
571
  "src/queue.mts"() {
572
572
  "use strict";
573
573
  __reExport(queue_exports, require("@devbro/neko-queue"));
574
574
  init_facades();
575
+ import_neko_helper = require("@devbro/neko-helper");
575
576
  DatabaseTransport = class {
576
577
  static {
577
578
  __name(this, "DatabaseTransport");
578
579
  }
579
- activeIntervals = /* @__PURE__ */ new Set();
580
580
  config = {
581
581
  queue_table: "queue_messages",
582
582
  db_connection: "default",
@@ -585,14 +585,48 @@ var init_queue = __esm({
585
585
  message_limit: 10
586
586
  // messages per each fetch
587
587
  };
588
- constructor(config10) {
588
+ channels = /* @__PURE__ */ new Map();
589
+ messageQueues = [];
590
+ repeater;
591
+ processMessage = /* @__PURE__ */ __name(async () => {
592
+ const conn = db(this.config.db_connection);
593
+ try {
594
+ await conn.connect();
595
+ let q = conn.getQuery();
596
+ let messages = await q.table(this.config.queue_table).whereOp("channel", "in", Array.from(this.channels.keys())).whereOp("status", "in", ["pending", "failed"]).limit(this.config.message_limit).orderBy("last_tried_at", "asc").get();
597
+ for (let msg of messages) {
598
+ try {
599
+ let callback = this.channels.get(msg.channel);
600
+ await callback(msg.message);
601
+ await q.table(this.config.queue_table).whereOp("id", "=", msg.id).update({
602
+ status: "processed",
603
+ updated_at: /* @__PURE__ */ new Date(),
604
+ last_tried_at: /* @__PURE__ */ new Date(),
605
+ retried_count: (msg.retried_count || 0) + 1
606
+ });
607
+ } catch (error) {
608
+ await q.table(this.config.queue_table).whereOp("id", "=", msg.id).update({
609
+ status: "failed",
610
+ last_tried_at: /* @__PURE__ */ new Date(),
611
+ retried_count: (msg.retried_count || 0) + 1,
612
+ process_message: error.message || "Error processing message"
613
+ });
614
+ }
615
+ }
616
+ } catch (error) {
617
+ logger().error("Error in DatabaseTransport listen interval:", {
618
+ error
619
+ });
620
+ } finally {
621
+ await conn.disconnect();
622
+ }
623
+ }, "processMessage");
624
+ constructor(config10 = {}) {
589
625
  this.config = { ...this.config, ...config10 };
590
- }
591
- setListenInterval(interval) {
592
- this.config.listen_interval = interval;
593
- }
594
- setMessageLimit(limit) {
595
- this.config.message_limit = limit;
626
+ this.repeater = (0, import_neko_helper.createRepeater)(
627
+ this.processMessage,
628
+ this.config.listen_interval * 1e3
629
+ );
596
630
  }
597
631
  async dispatch(channel, message) {
598
632
  const conn = db(this.config.db_connection);
@@ -610,57 +644,29 @@ var init_queue = __esm({
610
644
  created_at: /* @__PURE__ */ new Date(),
611
645
  updated_at: /* @__PURE__ */ new Date(),
612
646
  last_tried_at: null,
613
- process_message: ""
647
+ process_message: "",
648
+ retried_count: 0,
649
+ status: "pending"
614
650
  });
615
651
  } finally {
616
652
  await conn.disconnect();
617
653
  }
618
654
  }
619
- async listen(channel, callback) {
620
- return new Promise(async (resolve, reject) => {
621
- const intervalId = setInterval(async () => {
622
- const conn = db(this.config.db_connection);
623
- try {
624
- await conn.connect();
625
- let q = conn.getQuery();
626
- let messages = await q.table(this.config.queue_table).whereOp("channel", "=", channel).whereOp("processed", "=", false).limit(this.config.message_limit).orderBy("last_tried_at", "asc").get();
627
- for (let msg of messages) {
628
- try {
629
- await callback(msg.message);
630
- await q.table(this.config.queue_table).whereOp("id", "=", msg.id).update({
631
- processed: true,
632
- updated_at: /* @__PURE__ */ new Date()
633
- });
634
- } catch (error) {
635
- await q.table(this.config.queue_table).whereOp("id", "=", msg.id).update({
636
- processed: false,
637
- last_tried_at: /* @__PURE__ */ new Date(),
638
- process_message: error.message || "Error processing message"
639
- });
640
- }
641
- }
642
- } catch (error) {
643
- this.activeIntervals.delete(intervalId);
644
- logger().error("Error in DatabaseTransport listen interval:", { error });
645
- } finally {
646
- await conn.disconnect();
647
- }
648
- }, this.config.listen_interval * 1e3);
649
- this.activeIntervals.add(intervalId);
650
- });
655
+ async registerListener(channel, callback) {
656
+ this.channels.set(channel, callback);
657
+ }
658
+ async startListening() {
659
+ this.repeater.start();
651
660
  }
652
661
  async stopListening() {
653
- for (const intervalId of this.activeIntervals) {
654
- clearInterval(intervalId);
655
- }
656
- this.activeIntervals.clear();
662
+ this.repeater.stop();
657
663
  }
658
664
  };
659
665
  }
660
666
  });
661
667
 
662
668
  // src/factories.mts
663
- var import_neko_mailer, import_neko_queue, import_neko_queue2, import_neko_cache, import_neko_storage, FlexibleFactory, MailerFactory, QueueTransportFactory, CacheProviderFactory;
669
+ var import_neko_mailer, import_neko_queue, import_neko_queue2, import_neko_cache, import_neko_storage, FlexibleFactory, CacheProviderFactory;
664
670
  var init_factories = __esm({
665
671
  "src/factories.mts"() {
666
672
  "use strict";
@@ -687,19 +693,7 @@ var init_factories = __esm({
687
693
  return ctor(...args);
688
694
  }
689
695
  };
690
- MailerFactory = class _MailerFactory {
691
- static {
692
- __name(this, "MailerFactory");
693
- }
694
- static instance = new FlexibleFactory();
695
- static register(key, factory) {
696
- _MailerFactory.instance.register(key, factory);
697
- }
698
- static create(key, ...args) {
699
- return _MailerFactory.instance.create(key, ...args);
700
- }
701
- };
702
- MailerFactory.register("logger", (opt) => {
696
+ import_neko_mailer.MailerProviderFactory.register("logger", (opt) => {
703
697
  return new import_neko_mailer.FunctionProvider((mail) => {
704
698
  logger().info({
705
699
  msg: "Sending email",
@@ -707,32 +701,20 @@ var init_factories = __esm({
707
701
  });
708
702
  });
709
703
  });
710
- MailerFactory.register("ses", (opt) => {
704
+ import_neko_mailer.MailerProviderFactory.register("ses", (opt) => {
711
705
  return new import_neko_mailer.SESProvider(opt);
712
706
  });
713
- MailerFactory.register("smtp", (opt) => {
707
+ import_neko_mailer.MailerProviderFactory.register("smtp", (opt) => {
714
708
  return new import_neko_mailer.SMTPProvider(opt);
715
709
  });
716
- MailerFactory.register("memory", (opt) => {
710
+ import_neko_mailer.MailerProviderFactory.register("memory", (opt) => {
717
711
  return new import_neko_mailer.MemoryProvider();
718
712
  });
719
- QueueTransportFactory = class _QueueTransportFactory {
720
- static {
721
- __name(this, "QueueTransportFactory");
722
- }
723
- static instance = new FlexibleFactory();
724
- static register(key, factory) {
725
- _QueueTransportFactory.instance.register(key, factory);
726
- }
727
- static create(key, ...args) {
728
- return _QueueTransportFactory.instance.create(key, ...args);
729
- }
730
- };
731
- QueueTransportFactory.register("database", (opt) => {
713
+ import_neko_queue2.QueueTransportFactory.register("database", (opt) => {
732
714
  let transport = new DatabaseTransport(opt);
733
715
  return new import_neko_queue.QueueConnection(transport);
734
716
  });
735
- QueueTransportFactory.register("memory", (opt) => {
717
+ import_neko_queue2.QueueTransportFactory.register("memory", (opt) => {
736
718
  let transport = new import_neko_queue2.MemoryTransport(opt);
737
719
  return new import_neko_queue.QueueConnection(transport);
738
720
  });
@@ -770,13 +752,13 @@ var init_factories = __esm({
770
752
  });
771
753
 
772
754
  // src/facades.mts
773
- var import_neko_scheduler, import_neko_helper, import_neko_context2, import_neko_storage2, import_neko_mailer2, import_neko_config, import_clipanion, yup, import_neko_logger, import_neko_cache2, import_neko_queue3, router, scheduler, db, storage, cli, httpServer, logger, mailer, queue, cache;
755
+ var import_neko_scheduler, import_neko_helper2, import_neko_context2, import_neko_storage2, import_neko_mailer2, import_neko_config, import_clipanion, yup, import_neko_logger, import_neko_cache2, import_neko_queue3, router, scheduler, db, storage, cli, httpServer, logger, mailer, queue, cache;
774
756
  var init_facades = __esm({
775
757
  "src/facades.mts"() {
776
758
  "use strict";
777
759
  init_router();
778
760
  import_neko_scheduler = require("@devbro/neko-scheduler");
779
- import_neko_helper = require("@devbro/neko-helper");
761
+ import_neko_helper2 = require("@devbro/neko-helper");
780
762
  import_neko_context2 = require("@devbro/neko-context");
781
763
  import_neko_storage2 = require("@devbro/neko-storage");
782
764
  import_neko_mailer2 = require("@devbro/neko-mailer");
@@ -789,8 +771,8 @@ var init_facades = __esm({
789
771
  init_factories();
790
772
  import_neko_cache2 = require("@devbro/neko-cache");
791
773
  import_neko_queue3 = require("@devbro/neko-queue");
792
- router = (0, import_neko_helper.createSingleton)(() => new Router());
793
- scheduler = (0, import_neko_helper.createSingleton)(() => {
774
+ router = (0, import_neko_helper2.createSingleton)(() => new Router());
775
+ scheduler = (0, import_neko_helper2.createSingleton)(() => {
794
776
  const rc = new import_neko_scheduler.Scheduler();
795
777
  rc.setErrorHandler((err, job) => {
796
778
  logger().error({
@@ -802,12 +784,15 @@ var init_facades = __esm({
802
784
  return rc;
803
785
  });
804
786
  db = /* @__PURE__ */ __name((label = "default") => (0, import_neko_context2.ctx)().getOrThrow(["database", label]), "db");
805
- storage = (0, import_neko_helper.createSingleton)((label = "default") => {
787
+ storage = (0, import_neko_helper2.createSingleton)((label = "default") => {
806
788
  let storage_config = import_neko_config.config.get(["storages", label].join("."));
807
- const provider = import_neko_storage2.StorageProviderFactory.create(storage_config.provider, storage_config.config);
789
+ const provider = import_neko_storage2.StorageProviderFactory.create(
790
+ storage_config.provider,
791
+ storage_config.config
792
+ );
808
793
  return new import_neko_storage2.Storage(provider);
809
794
  });
810
- cli = (0, import_neko_helper.createSingleton)(() => {
795
+ cli = (0, import_neko_helper2.createSingleton)(() => {
811
796
  const [node, app, ...args] = process.argv;
812
797
  return new import_clipanion.Cli({
813
798
  binaryLabel: `My Application`,
@@ -815,7 +800,7 @@ var init_facades = __esm({
815
800
  binaryVersion: `1.0.0`
816
801
  });
817
802
  });
818
- httpServer = (0, import_neko_helper.createSingleton)(() => {
803
+ httpServer = (0, import_neko_helper2.createSingleton)(() => {
819
804
  const server = new http_exports.HttpServer();
820
805
  server.setErrorHandler(async (err, req, res) => {
821
806
  if (err instanceof http_exports.HttpError) {
@@ -850,7 +835,7 @@ var init_facades = __esm({
850
835
  server.setRouter(router());
851
836
  return server;
852
837
  });
853
- logger = (0, import_neko_helper.createSingleton)((label) => {
838
+ logger = (0, import_neko_helper2.createSingleton)((label) => {
854
839
  const logger_config = import_neko_config.config.get(["loggers", label].join("."));
855
840
  const rc = new import_neko_logger.Logger(logger_config);
856
841
  rc.setExtrasFunction((message) => {
@@ -859,25 +844,28 @@ var init_facades = __esm({
859
844
  });
860
845
  return rc;
861
846
  });
862
- mailer = (0, import_neko_helper.createSingleton)((label) => {
847
+ mailer = (0, import_neko_helper2.createSingleton)((label) => {
863
848
  const mailer_config = import_neko_config.config.get(["mailer", label].join("."));
864
- const provider = MailerFactory.create(
849
+ const provider = import_neko_mailer2.MailerProviderFactory.create(
865
850
  mailer_config.provider,
866
851
  mailer_config.config
867
852
  );
868
853
  const rc = new import_neko_mailer2.Mailer(provider);
869
854
  return rc;
870
855
  });
871
- queue = (0, import_neko_helper.createSingleton)((label) => {
856
+ queue = (0, import_neko_helper2.createSingleton)((label) => {
872
857
  const queue_config = import_neko_config.config.get(["queues", label].join("."));
873
858
  if (!queue_config) {
874
859
  throw new Error(`Queue configuration for '${label}' not found`);
875
860
  }
876
- const provider = QueueTransportFactory.create(queue_config.provider, queue_config.config);
861
+ const provider = import_neko_queue3.QueueTransportFactory.create(
862
+ queue_config.provider,
863
+ queue_config.config
864
+ );
877
865
  const rc = new import_neko_queue3.QueueConnection(provider);
878
866
  return rc;
879
867
  });
880
- cache = (0, import_neko_helper.createSingleton)((label) => {
868
+ cache = (0, import_neko_helper2.createSingleton)((label) => {
881
869
  const cache_config = import_neko_config.config.get(["caches", label].join("."));
882
870
  if (!cache_config) {
883
871
  throw new Error(`Cache configuration for '${label}' not found`);
@@ -455,7 +455,7 @@ var Router = class {
455
455
 
456
456
  // src/facades.mts
457
457
  var import_neko_scheduler = require("@devbro/neko-scheduler");
458
- var import_neko_helper = require("@devbro/neko-helper");
458
+ var import_neko_helper2 = require("@devbro/neko-helper");
459
459
  var import_neko_context2 = require("@devbro/neko-context");
460
460
  var import_neko_storage2 = require("@devbro/neko-storage");
461
461
  var import_neko_mailer2 = require("@devbro/neko-mailer");
@@ -481,11 +481,11 @@ __export(queue_exports, {
481
481
  DatabaseTransport: () => DatabaseTransport
482
482
  });
483
483
  __reExport(queue_exports, require("@devbro/neko-queue"));
484
+ var import_neko_helper = require("@devbro/neko-helper");
484
485
  var DatabaseTransport = class {
485
486
  static {
486
487
  __name(this, "DatabaseTransport");
487
488
  }
488
- activeIntervals = /* @__PURE__ */ new Set();
489
489
  config = {
490
490
  queue_table: "queue_messages",
491
491
  db_connection: "default",
@@ -494,14 +494,48 @@ var DatabaseTransport = class {
494
494
  message_limit: 10
495
495
  // messages per each fetch
496
496
  };
497
- constructor(config2) {
497
+ channels = /* @__PURE__ */ new Map();
498
+ messageQueues = [];
499
+ repeater;
500
+ processMessage = /* @__PURE__ */ __name(async () => {
501
+ const conn = db(this.config.db_connection);
502
+ try {
503
+ await conn.connect();
504
+ let q = conn.getQuery();
505
+ let messages = await q.table(this.config.queue_table).whereOp("channel", "in", Array.from(this.channels.keys())).whereOp("status", "in", ["pending", "failed"]).limit(this.config.message_limit).orderBy("last_tried_at", "asc").get();
506
+ for (let msg of messages) {
507
+ try {
508
+ let callback = this.channels.get(msg.channel);
509
+ await callback(msg.message);
510
+ await q.table(this.config.queue_table).whereOp("id", "=", msg.id).update({
511
+ status: "processed",
512
+ updated_at: /* @__PURE__ */ new Date(),
513
+ last_tried_at: /* @__PURE__ */ new Date(),
514
+ retried_count: (msg.retried_count || 0) + 1
515
+ });
516
+ } catch (error) {
517
+ await q.table(this.config.queue_table).whereOp("id", "=", msg.id).update({
518
+ status: "failed",
519
+ last_tried_at: /* @__PURE__ */ new Date(),
520
+ retried_count: (msg.retried_count || 0) + 1,
521
+ process_message: error.message || "Error processing message"
522
+ });
523
+ }
524
+ }
525
+ } catch (error) {
526
+ logger().error("Error in DatabaseTransport listen interval:", {
527
+ error
528
+ });
529
+ } finally {
530
+ await conn.disconnect();
531
+ }
532
+ }, "processMessage");
533
+ constructor(config2 = {}) {
498
534
  this.config = { ...this.config, ...config2 };
499
- }
500
- setListenInterval(interval) {
501
- this.config.listen_interval = interval;
502
- }
503
- setMessageLimit(limit) {
504
- this.config.message_limit = limit;
535
+ this.repeater = (0, import_neko_helper.createRepeater)(
536
+ this.processMessage,
537
+ this.config.listen_interval * 1e3
538
+ );
505
539
  }
506
540
  async dispatch(channel, message) {
507
541
  const conn = db(this.config.db_connection);
@@ -519,50 +553,22 @@ var DatabaseTransport = class {
519
553
  created_at: /* @__PURE__ */ new Date(),
520
554
  updated_at: /* @__PURE__ */ new Date(),
521
555
  last_tried_at: null,
522
- process_message: ""
556
+ process_message: "",
557
+ retried_count: 0,
558
+ status: "pending"
523
559
  });
524
560
  } finally {
525
561
  await conn.disconnect();
526
562
  }
527
563
  }
528
- async listen(channel, callback) {
529
- return new Promise(async (resolve, reject) => {
530
- const intervalId = setInterval(async () => {
531
- const conn = db(this.config.db_connection);
532
- try {
533
- await conn.connect();
534
- let q = conn.getQuery();
535
- let messages = await q.table(this.config.queue_table).whereOp("channel", "=", channel).whereOp("processed", "=", false).limit(this.config.message_limit).orderBy("last_tried_at", "asc").get();
536
- for (let msg of messages) {
537
- try {
538
- await callback(msg.message);
539
- await q.table(this.config.queue_table).whereOp("id", "=", msg.id).update({
540
- processed: true,
541
- updated_at: /* @__PURE__ */ new Date()
542
- });
543
- } catch (error) {
544
- await q.table(this.config.queue_table).whereOp("id", "=", msg.id).update({
545
- processed: false,
546
- last_tried_at: /* @__PURE__ */ new Date(),
547
- process_message: error.message || "Error processing message"
548
- });
549
- }
550
- }
551
- } catch (error) {
552
- this.activeIntervals.delete(intervalId);
553
- logger().error("Error in DatabaseTransport listen interval:", { error });
554
- } finally {
555
- await conn.disconnect();
556
- }
557
- }, this.config.listen_interval * 1e3);
558
- this.activeIntervals.add(intervalId);
559
- });
564
+ async registerListener(channel, callback) {
565
+ this.channels.set(channel, callback);
566
+ }
567
+ async startListening() {
568
+ this.repeater.start();
560
569
  }
561
570
  async stopListening() {
562
- for (const intervalId of this.activeIntervals) {
563
- clearInterval(intervalId);
564
- }
565
- this.activeIntervals.clear();
571
+ this.repeater.stop();
566
572
  }
567
573
  };
568
574
 
@@ -585,19 +591,7 @@ var FlexibleFactory = class {
585
591
  return ctor(...args);
586
592
  }
587
593
  };
588
- var MailerFactory = class _MailerFactory {
589
- static {
590
- __name(this, "MailerFactory");
591
- }
592
- static instance = new FlexibleFactory();
593
- static register(key, factory) {
594
- _MailerFactory.instance.register(key, factory);
595
- }
596
- static create(key, ...args) {
597
- return _MailerFactory.instance.create(key, ...args);
598
- }
599
- };
600
- MailerFactory.register("logger", (opt) => {
594
+ import_neko_mailer.MailerProviderFactory.register("logger", (opt) => {
601
595
  return new import_neko_mailer.FunctionProvider((mail) => {
602
596
  logger().info({
603
597
  msg: "Sending email",
@@ -605,32 +599,20 @@ MailerFactory.register("logger", (opt) => {
605
599
  });
606
600
  });
607
601
  });
608
- MailerFactory.register("ses", (opt) => {
602
+ import_neko_mailer.MailerProviderFactory.register("ses", (opt) => {
609
603
  return new import_neko_mailer.SESProvider(opt);
610
604
  });
611
- MailerFactory.register("smtp", (opt) => {
605
+ import_neko_mailer.MailerProviderFactory.register("smtp", (opt) => {
612
606
  return new import_neko_mailer.SMTPProvider(opt);
613
607
  });
614
- MailerFactory.register("memory", (opt) => {
608
+ import_neko_mailer.MailerProviderFactory.register("memory", (opt) => {
615
609
  return new import_neko_mailer.MemoryProvider();
616
610
  });
617
- var QueueTransportFactory = class _QueueTransportFactory {
618
- static {
619
- __name(this, "QueueTransportFactory");
620
- }
621
- static instance = new FlexibleFactory();
622
- static register(key, factory) {
623
- _QueueTransportFactory.instance.register(key, factory);
624
- }
625
- static create(key, ...args) {
626
- return _QueueTransportFactory.instance.create(key, ...args);
627
- }
628
- };
629
- QueueTransportFactory.register("database", (opt) => {
611
+ import_neko_queue2.QueueTransportFactory.register("database", (opt) => {
630
612
  let transport = new DatabaseTransport(opt);
631
613
  return new import_neko_queue.QueueConnection(transport);
632
614
  });
633
- QueueTransportFactory.register("memory", (opt) => {
615
+ import_neko_queue2.QueueTransportFactory.register("memory", (opt) => {
634
616
  let transport = new import_neko_queue2.MemoryTransport(opt);
635
617
  return new import_neko_queue.QueueConnection(transport);
636
618
  });
@@ -668,8 +650,8 @@ import_neko_storage.StorageProviderFactory.register("s3", (opt) => {
668
650
  // src/facades.mts
669
651
  var import_neko_cache2 = require("@devbro/neko-cache");
670
652
  var import_neko_queue3 = require("@devbro/neko-queue");
671
- var router = (0, import_neko_helper.createSingleton)(() => new Router());
672
- var scheduler = (0, import_neko_helper.createSingleton)(() => {
653
+ var router = (0, import_neko_helper2.createSingleton)(() => new Router());
654
+ var scheduler = (0, import_neko_helper2.createSingleton)(() => {
673
655
  const rc = new import_neko_scheduler.Scheduler();
674
656
  rc.setErrorHandler((err, job) => {
675
657
  logger().error({
@@ -681,12 +663,15 @@ var scheduler = (0, import_neko_helper.createSingleton)(() => {
681
663
  return rc;
682
664
  });
683
665
  var db = /* @__PURE__ */ __name((label = "default") => (0, import_neko_context2.ctx)().getOrThrow(["database", label]), "db");
684
- var storage = (0, import_neko_helper.createSingleton)((label = "default") => {
666
+ var storage = (0, import_neko_helper2.createSingleton)((label = "default") => {
685
667
  let storage_config = import_neko_config.config.get(["storages", label].join("."));
686
- const provider = import_neko_storage2.StorageProviderFactory.create(storage_config.provider, storage_config.config);
668
+ const provider = import_neko_storage2.StorageProviderFactory.create(
669
+ storage_config.provider,
670
+ storage_config.config
671
+ );
687
672
  return new import_neko_storage2.Storage(provider);
688
673
  });
689
- var cli = (0, import_neko_helper.createSingleton)(() => {
674
+ var cli = (0, import_neko_helper2.createSingleton)(() => {
690
675
  const [node, app, ...args] = process.argv;
691
676
  return new import_clipanion.Cli({
692
677
  binaryLabel: `My Application`,
@@ -694,7 +679,7 @@ var cli = (0, import_neko_helper.createSingleton)(() => {
694
679
  binaryVersion: `1.0.0`
695
680
  });
696
681
  });
697
- var httpServer = (0, import_neko_helper.createSingleton)(() => {
682
+ var httpServer = (0, import_neko_helper2.createSingleton)(() => {
698
683
  const server = new http_exports.HttpServer();
699
684
  server.setErrorHandler(async (err, req, res) => {
700
685
  if (err instanceof http_exports.HttpError) {
@@ -729,7 +714,7 @@ var httpServer = (0, import_neko_helper.createSingleton)(() => {
729
714
  server.setRouter(router());
730
715
  return server;
731
716
  });
732
- var logger = (0, import_neko_helper.createSingleton)((label) => {
717
+ var logger = (0, import_neko_helper2.createSingleton)((label) => {
733
718
  const logger_config = import_neko_config.config.get(["loggers", label].join("."));
734
719
  const rc = new import_neko_logger.Logger(logger_config);
735
720
  rc.setExtrasFunction((message) => {
@@ -738,25 +723,28 @@ var logger = (0, import_neko_helper.createSingleton)((label) => {
738
723
  });
739
724
  return rc;
740
725
  });
741
- var mailer = (0, import_neko_helper.createSingleton)((label) => {
726
+ var mailer = (0, import_neko_helper2.createSingleton)((label) => {
742
727
  const mailer_config = import_neko_config.config.get(["mailer", label].join("."));
743
- const provider = MailerFactory.create(
728
+ const provider = import_neko_mailer2.MailerProviderFactory.create(
744
729
  mailer_config.provider,
745
730
  mailer_config.config
746
731
  );
747
732
  const rc = new import_neko_mailer2.Mailer(provider);
748
733
  return rc;
749
734
  });
750
- var queue = (0, import_neko_helper.createSingleton)((label) => {
735
+ var queue = (0, import_neko_helper2.createSingleton)((label) => {
751
736
  const queue_config = import_neko_config.config.get(["queues", label].join("."));
752
737
  if (!queue_config) {
753
738
  throw new Error(`Queue configuration for '${label}' not found`);
754
739
  }
755
- const provider = QueueTransportFactory.create(queue_config.provider, queue_config.config);
740
+ const provider = import_neko_queue3.QueueTransportFactory.create(
741
+ queue_config.provider,
742
+ queue_config.config
743
+ );
756
744
  const rc = new import_neko_queue3.QueueConnection(provider);
757
745
  return rc;
758
746
  });
759
- var cache = (0, import_neko_helper.createSingleton)((label) => {
747
+ var cache = (0, import_neko_helper2.createSingleton)((label) => {
760
748
  const cache_config = import_neko_config.config.get(["caches", label].join("."));
761
749
  if (!cache_config) {
762
750
  throw new Error(`Cache configuration for '${label}' not found`);