@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.
@@ -454,7 +454,7 @@ var Router = class {
454
454
 
455
455
  // src/facades.mts
456
456
  var import_neko_scheduler = require("@devbro/neko-scheduler");
457
- var import_neko_helper = require("@devbro/neko-helper");
457
+ var import_neko_helper2 = require("@devbro/neko-helper");
458
458
  var import_neko_context2 = require("@devbro/neko-context");
459
459
  var import_neko_storage2 = require("@devbro/neko-storage");
460
460
  var import_neko_mailer2 = require("@devbro/neko-mailer");
@@ -480,11 +480,11 @@ __export(queue_exports, {
480
480
  DatabaseTransport: () => DatabaseTransport
481
481
  });
482
482
  __reExport(queue_exports, require("@devbro/neko-queue"));
483
+ var import_neko_helper = require("@devbro/neko-helper");
483
484
  var DatabaseTransport = class {
484
485
  static {
485
486
  __name(this, "DatabaseTransport");
486
487
  }
487
- activeIntervals = /* @__PURE__ */ new Set();
488
488
  config = {
489
489
  queue_table: "queue_messages",
490
490
  db_connection: "default",
@@ -493,14 +493,48 @@ var DatabaseTransport = class {
493
493
  message_limit: 10
494
494
  // messages per each fetch
495
495
  };
496
- constructor(config3) {
496
+ channels = /* @__PURE__ */ new Map();
497
+ messageQueues = [];
498
+ repeater;
499
+ processMessage = /* @__PURE__ */ __name(async () => {
500
+ const conn = db(this.config.db_connection);
501
+ try {
502
+ await conn.connect();
503
+ let q = conn.getQuery();
504
+ 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();
505
+ for (let msg of messages) {
506
+ try {
507
+ let callback = this.channels.get(msg.channel);
508
+ await callback(msg.message);
509
+ await q.table(this.config.queue_table).whereOp("id", "=", msg.id).update({
510
+ status: "processed",
511
+ updated_at: /* @__PURE__ */ new Date(),
512
+ last_tried_at: /* @__PURE__ */ new Date(),
513
+ retried_count: (msg.retried_count || 0) + 1
514
+ });
515
+ } catch (error) {
516
+ await q.table(this.config.queue_table).whereOp("id", "=", msg.id).update({
517
+ status: "failed",
518
+ last_tried_at: /* @__PURE__ */ new Date(),
519
+ retried_count: (msg.retried_count || 0) + 1,
520
+ process_message: error.message || "Error processing message"
521
+ });
522
+ }
523
+ }
524
+ } catch (error) {
525
+ logger().error("Error in DatabaseTransport listen interval:", {
526
+ error
527
+ });
528
+ } finally {
529
+ await conn.disconnect();
530
+ }
531
+ }, "processMessage");
532
+ constructor(config3 = {}) {
497
533
  this.config = { ...this.config, ...config3 };
498
- }
499
- setListenInterval(interval) {
500
- this.config.listen_interval = interval;
501
- }
502
- setMessageLimit(limit) {
503
- this.config.message_limit = limit;
534
+ this.repeater = (0, import_neko_helper.createRepeater)(
535
+ this.processMessage,
536
+ this.config.listen_interval * 1e3
537
+ );
504
538
  }
505
539
  async dispatch(channel, message) {
506
540
  const conn = db(this.config.db_connection);
@@ -518,50 +552,22 @@ var DatabaseTransport = class {
518
552
  created_at: /* @__PURE__ */ new Date(),
519
553
  updated_at: /* @__PURE__ */ new Date(),
520
554
  last_tried_at: null,
521
- process_message: ""
555
+ process_message: "",
556
+ retried_count: 0,
557
+ status: "pending"
522
558
  });
523
559
  } finally {
524
560
  await conn.disconnect();
525
561
  }
526
562
  }
527
- async listen(channel, callback) {
528
- return new Promise(async (resolve, reject) => {
529
- const intervalId = setInterval(async () => {
530
- const conn = db(this.config.db_connection);
531
- try {
532
- await conn.connect();
533
- let q = conn.getQuery();
534
- 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();
535
- for (let msg of messages) {
536
- try {
537
- await callback(msg.message);
538
- await q.table(this.config.queue_table).whereOp("id", "=", msg.id).update({
539
- processed: true,
540
- updated_at: /* @__PURE__ */ new Date()
541
- });
542
- } catch (error) {
543
- await q.table(this.config.queue_table).whereOp("id", "=", msg.id).update({
544
- processed: false,
545
- last_tried_at: /* @__PURE__ */ new Date(),
546
- process_message: error.message || "Error processing message"
547
- });
548
- }
549
- }
550
- } catch (error) {
551
- this.activeIntervals.delete(intervalId);
552
- logger().error("Error in DatabaseTransport listen interval:", { error });
553
- } finally {
554
- await conn.disconnect();
555
- }
556
- }, this.config.listen_interval * 1e3);
557
- this.activeIntervals.add(intervalId);
558
- });
563
+ async registerListener(channel, callback) {
564
+ this.channels.set(channel, callback);
565
+ }
566
+ async startListening() {
567
+ this.repeater.start();
559
568
  }
560
569
  async stopListening() {
561
- for (const intervalId of this.activeIntervals) {
562
- clearInterval(intervalId);
563
- }
564
- this.activeIntervals.clear();
570
+ this.repeater.stop();
565
571
  }
566
572
  };
567
573
 
@@ -584,19 +590,7 @@ var FlexibleFactory = class {
584
590
  return ctor(...args);
585
591
  }
586
592
  };
587
- var MailerFactory = class _MailerFactory {
588
- static {
589
- __name(this, "MailerFactory");
590
- }
591
- static instance = new FlexibleFactory();
592
- static register(key, factory) {
593
- _MailerFactory.instance.register(key, factory);
594
- }
595
- static create(key, ...args) {
596
- return _MailerFactory.instance.create(key, ...args);
597
- }
598
- };
599
- MailerFactory.register("logger", (opt) => {
593
+ import_neko_mailer.MailerProviderFactory.register("logger", (opt) => {
600
594
  return new import_neko_mailer.FunctionProvider((mail) => {
601
595
  logger().info({
602
596
  msg: "Sending email",
@@ -604,32 +598,20 @@ MailerFactory.register("logger", (opt) => {
604
598
  });
605
599
  });
606
600
  });
607
- MailerFactory.register("ses", (opt) => {
601
+ import_neko_mailer.MailerProviderFactory.register("ses", (opt) => {
608
602
  return new import_neko_mailer.SESProvider(opt);
609
603
  });
610
- MailerFactory.register("smtp", (opt) => {
604
+ import_neko_mailer.MailerProviderFactory.register("smtp", (opt) => {
611
605
  return new import_neko_mailer.SMTPProvider(opt);
612
606
  });
613
- MailerFactory.register("memory", (opt) => {
607
+ import_neko_mailer.MailerProviderFactory.register("memory", (opt) => {
614
608
  return new import_neko_mailer.MemoryProvider();
615
609
  });
616
- var QueueTransportFactory = class _QueueTransportFactory {
617
- static {
618
- __name(this, "QueueTransportFactory");
619
- }
620
- static instance = new FlexibleFactory();
621
- static register(key, factory) {
622
- _QueueTransportFactory.instance.register(key, factory);
623
- }
624
- static create(key, ...args) {
625
- return _QueueTransportFactory.instance.create(key, ...args);
626
- }
627
- };
628
- QueueTransportFactory.register("database", (opt) => {
610
+ import_neko_queue2.QueueTransportFactory.register("database", (opt) => {
629
611
  let transport = new DatabaseTransport(opt);
630
612
  return new import_neko_queue.QueueConnection(transport);
631
613
  });
632
- QueueTransportFactory.register("memory", (opt) => {
614
+ import_neko_queue2.QueueTransportFactory.register("memory", (opt) => {
633
615
  let transport = new import_neko_queue2.MemoryTransport(opt);
634
616
  return new import_neko_queue.QueueConnection(transport);
635
617
  });
@@ -667,8 +649,8 @@ import_neko_storage.StorageProviderFactory.register("s3", (opt) => {
667
649
  // src/facades.mts
668
650
  var import_neko_cache2 = require("@devbro/neko-cache");
669
651
  var import_neko_queue3 = require("@devbro/neko-queue");
670
- var router = (0, import_neko_helper.createSingleton)(() => new Router());
671
- var scheduler = (0, import_neko_helper.createSingleton)(() => {
652
+ var router = (0, import_neko_helper2.createSingleton)(() => new Router());
653
+ var scheduler = (0, import_neko_helper2.createSingleton)(() => {
672
654
  const rc = new import_neko_scheduler.Scheduler();
673
655
  rc.setErrorHandler((err, job) => {
674
656
  logger().error({
@@ -680,12 +662,15 @@ var scheduler = (0, import_neko_helper.createSingleton)(() => {
680
662
  return rc;
681
663
  });
682
664
  var db = /* @__PURE__ */ __name((label = "default") => (0, import_neko_context2.ctx)().getOrThrow(["database", label]), "db");
683
- var storage = (0, import_neko_helper.createSingleton)((label = "default") => {
665
+ var storage = (0, import_neko_helper2.createSingleton)((label = "default") => {
684
666
  let storage_config = import_neko_config.config.get(["storages", label].join("."));
685
- const provider = import_neko_storage2.StorageProviderFactory.create(storage_config.provider, storage_config.config);
667
+ const provider = import_neko_storage2.StorageProviderFactory.create(
668
+ storage_config.provider,
669
+ storage_config.config
670
+ );
686
671
  return new import_neko_storage2.Storage(provider);
687
672
  });
688
- var cli = (0, import_neko_helper.createSingleton)(() => {
673
+ var cli = (0, import_neko_helper2.createSingleton)(() => {
689
674
  const [node, app, ...args] = process.argv;
690
675
  return new import_clipanion.Cli({
691
676
  binaryLabel: `My Application`,
@@ -693,7 +678,7 @@ var cli = (0, import_neko_helper.createSingleton)(() => {
693
678
  binaryVersion: `1.0.0`
694
679
  });
695
680
  });
696
- var httpServer = (0, import_neko_helper.createSingleton)(() => {
681
+ var httpServer = (0, import_neko_helper2.createSingleton)(() => {
697
682
  const server = new http_exports.HttpServer();
698
683
  server.setErrorHandler(async (err, req, res) => {
699
684
  if (err instanceof http_exports.HttpError) {
@@ -728,7 +713,7 @@ var httpServer = (0, import_neko_helper.createSingleton)(() => {
728
713
  server.setRouter(router());
729
714
  return server;
730
715
  });
731
- var logger = (0, import_neko_helper.createSingleton)((label) => {
716
+ var logger = (0, import_neko_helper2.createSingleton)((label) => {
732
717
  const logger_config = import_neko_config.config.get(["loggers", label].join("."));
733
718
  const rc = new import_neko_logger.Logger(logger_config);
734
719
  rc.setExtrasFunction((message) => {
@@ -737,25 +722,28 @@ var logger = (0, import_neko_helper.createSingleton)((label) => {
737
722
  });
738
723
  return rc;
739
724
  });
740
- var mailer = (0, import_neko_helper.createSingleton)((label) => {
725
+ var mailer = (0, import_neko_helper2.createSingleton)((label) => {
741
726
  const mailer_config = import_neko_config.config.get(["mailer", label].join("."));
742
- const provider = MailerFactory.create(
727
+ const provider = import_neko_mailer2.MailerProviderFactory.create(
743
728
  mailer_config.provider,
744
729
  mailer_config.config
745
730
  );
746
731
  const rc = new import_neko_mailer2.Mailer(provider);
747
732
  return rc;
748
733
  });
749
- var queue = (0, import_neko_helper.createSingleton)((label) => {
734
+ var queue = (0, import_neko_helper2.createSingleton)((label) => {
750
735
  const queue_config = import_neko_config.config.get(["queues", label].join("."));
751
736
  if (!queue_config) {
752
737
  throw new Error(`Queue configuration for '${label}' not found`);
753
738
  }
754
- const provider = QueueTransportFactory.create(queue_config.provider, queue_config.config);
739
+ const provider = import_neko_queue3.QueueTransportFactory.create(
740
+ queue_config.provider,
741
+ queue_config.config
742
+ );
755
743
  const rc = new import_neko_queue3.QueueConnection(provider);
756
744
  return rc;
757
745
  });
758
- var cache = (0, import_neko_helper.createSingleton)((label) => {
746
+ var cache = (0, import_neko_helper2.createSingleton)((label) => {
759
747
  const cache_config = import_neko_config.config.get(["caches", label].join("."));
760
748
  if (!cache_config) {
761
749
  throw new Error(`Cache configuration for '${label}' not found`);
@@ -1617,7 +1617,7 @@ var Router = class {
1617
1617
 
1618
1618
  // src/facades.mts
1619
1619
  var import_neko_scheduler = require("@devbro/neko-scheduler");
1620
- var import_neko_helper = require("@devbro/neko-helper");
1620
+ var import_neko_helper2 = require("@devbro/neko-helper");
1621
1621
  var import_neko_context2 = require("@devbro/neko-context");
1622
1622
  var import_neko_storage2 = require("@devbro/neko-storage");
1623
1623
  var import_neko_mailer2 = require("@devbro/neko-mailer");
@@ -1643,11 +1643,11 @@ __export(queue_exports, {
1643
1643
  DatabaseTransport: () => DatabaseTransport
1644
1644
  });
1645
1645
  __reExport(queue_exports, require("@devbro/neko-queue"));
1646
+ var import_neko_helper = require("@devbro/neko-helper");
1646
1647
  var DatabaseTransport = class {
1647
1648
  static {
1648
1649
  __name(this, "DatabaseTransport");
1649
1650
  }
1650
- activeIntervals = /* @__PURE__ */ new Set();
1651
1651
  config = {
1652
1652
  queue_table: "queue_messages",
1653
1653
  db_connection: "default",
@@ -1656,14 +1656,48 @@ var DatabaseTransport = class {
1656
1656
  message_limit: 10
1657
1657
  // messages per each fetch
1658
1658
  };
1659
- constructor(config8) {
1659
+ channels = /* @__PURE__ */ new Map();
1660
+ messageQueues = [];
1661
+ repeater;
1662
+ processMessage = /* @__PURE__ */ __name(async () => {
1663
+ const conn = db(this.config.db_connection);
1664
+ try {
1665
+ await conn.connect();
1666
+ let q = conn.getQuery();
1667
+ 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();
1668
+ for (let msg of messages) {
1669
+ try {
1670
+ let callback = this.channels.get(msg.channel);
1671
+ await callback(msg.message);
1672
+ await q.table(this.config.queue_table).whereOp("id", "=", msg.id).update({
1673
+ status: "processed",
1674
+ updated_at: /* @__PURE__ */ new Date(),
1675
+ last_tried_at: /* @__PURE__ */ new Date(),
1676
+ retried_count: (msg.retried_count || 0) + 1
1677
+ });
1678
+ } catch (error) {
1679
+ await q.table(this.config.queue_table).whereOp("id", "=", msg.id).update({
1680
+ status: "failed",
1681
+ last_tried_at: /* @__PURE__ */ new Date(),
1682
+ retried_count: (msg.retried_count || 0) + 1,
1683
+ process_message: error.message || "Error processing message"
1684
+ });
1685
+ }
1686
+ }
1687
+ } catch (error) {
1688
+ logger().error("Error in DatabaseTransport listen interval:", {
1689
+ error
1690
+ });
1691
+ } finally {
1692
+ await conn.disconnect();
1693
+ }
1694
+ }, "processMessage");
1695
+ constructor(config8 = {}) {
1660
1696
  this.config = { ...this.config, ...config8 };
1661
- }
1662
- setListenInterval(interval) {
1663
- this.config.listen_interval = interval;
1664
- }
1665
- setMessageLimit(limit) {
1666
- this.config.message_limit = limit;
1697
+ this.repeater = (0, import_neko_helper.createRepeater)(
1698
+ this.processMessage,
1699
+ this.config.listen_interval * 1e3
1700
+ );
1667
1701
  }
1668
1702
  async dispatch(channel, message) {
1669
1703
  const conn = db(this.config.db_connection);
@@ -1681,50 +1715,22 @@ var DatabaseTransport = class {
1681
1715
  created_at: /* @__PURE__ */ new Date(),
1682
1716
  updated_at: /* @__PURE__ */ new Date(),
1683
1717
  last_tried_at: null,
1684
- process_message: ""
1718
+ process_message: "",
1719
+ retried_count: 0,
1720
+ status: "pending"
1685
1721
  });
1686
1722
  } finally {
1687
1723
  await conn.disconnect();
1688
1724
  }
1689
1725
  }
1690
- async listen(channel, callback) {
1691
- return new Promise(async (resolve, reject) => {
1692
- const intervalId = setInterval(async () => {
1693
- const conn = db(this.config.db_connection);
1694
- try {
1695
- await conn.connect();
1696
- let q = conn.getQuery();
1697
- 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();
1698
- for (let msg of messages) {
1699
- try {
1700
- await callback(msg.message);
1701
- await q.table(this.config.queue_table).whereOp("id", "=", msg.id).update({
1702
- processed: true,
1703
- updated_at: /* @__PURE__ */ new Date()
1704
- });
1705
- } catch (error) {
1706
- await q.table(this.config.queue_table).whereOp("id", "=", msg.id).update({
1707
- processed: false,
1708
- last_tried_at: /* @__PURE__ */ new Date(),
1709
- process_message: error.message || "Error processing message"
1710
- });
1711
- }
1712
- }
1713
- } catch (error) {
1714
- this.activeIntervals.delete(intervalId);
1715
- logger().error("Error in DatabaseTransport listen interval:", { error });
1716
- } finally {
1717
- await conn.disconnect();
1718
- }
1719
- }, this.config.listen_interval * 1e3);
1720
- this.activeIntervals.add(intervalId);
1721
- });
1726
+ async registerListener(channel, callback) {
1727
+ this.channels.set(channel, callback);
1728
+ }
1729
+ async startListening() {
1730
+ this.repeater.start();
1722
1731
  }
1723
1732
  async stopListening() {
1724
- for (const intervalId of this.activeIntervals) {
1725
- clearInterval(intervalId);
1726
- }
1727
- this.activeIntervals.clear();
1733
+ this.repeater.stop();
1728
1734
  }
1729
1735
  };
1730
1736
 
@@ -1747,19 +1753,7 @@ var FlexibleFactory = class {
1747
1753
  return ctor(...args);
1748
1754
  }
1749
1755
  };
1750
- var MailerFactory = class _MailerFactory {
1751
- static {
1752
- __name(this, "MailerFactory");
1753
- }
1754
- static instance = new FlexibleFactory();
1755
- static register(key, factory) {
1756
- _MailerFactory.instance.register(key, factory);
1757
- }
1758
- static create(key, ...args) {
1759
- return _MailerFactory.instance.create(key, ...args);
1760
- }
1761
- };
1762
- MailerFactory.register("logger", (opt) => {
1756
+ import_neko_mailer.MailerProviderFactory.register("logger", (opt) => {
1763
1757
  return new import_neko_mailer.FunctionProvider((mail) => {
1764
1758
  logger().info({
1765
1759
  msg: "Sending email",
@@ -1767,32 +1761,20 @@ MailerFactory.register("logger", (opt) => {
1767
1761
  });
1768
1762
  });
1769
1763
  });
1770
- MailerFactory.register("ses", (opt) => {
1764
+ import_neko_mailer.MailerProviderFactory.register("ses", (opt) => {
1771
1765
  return new import_neko_mailer.SESProvider(opt);
1772
1766
  });
1773
- MailerFactory.register("smtp", (opt) => {
1767
+ import_neko_mailer.MailerProviderFactory.register("smtp", (opt) => {
1774
1768
  return new import_neko_mailer.SMTPProvider(opt);
1775
1769
  });
1776
- MailerFactory.register("memory", (opt) => {
1770
+ import_neko_mailer.MailerProviderFactory.register("memory", (opt) => {
1777
1771
  return new import_neko_mailer.MemoryProvider();
1778
1772
  });
1779
- var QueueTransportFactory = class _QueueTransportFactory {
1780
- static {
1781
- __name(this, "QueueTransportFactory");
1782
- }
1783
- static instance = new FlexibleFactory();
1784
- static register(key, factory) {
1785
- _QueueTransportFactory.instance.register(key, factory);
1786
- }
1787
- static create(key, ...args) {
1788
- return _QueueTransportFactory.instance.create(key, ...args);
1789
- }
1790
- };
1791
- QueueTransportFactory.register("database", (opt) => {
1773
+ import_neko_queue2.QueueTransportFactory.register("database", (opt) => {
1792
1774
  let transport = new DatabaseTransport(opt);
1793
1775
  return new import_neko_queue.QueueConnection(transport);
1794
1776
  });
1795
- QueueTransportFactory.register("memory", (opt) => {
1777
+ import_neko_queue2.QueueTransportFactory.register("memory", (opt) => {
1796
1778
  let transport = new import_neko_queue2.MemoryTransport(opt);
1797
1779
  return new import_neko_queue.QueueConnection(transport);
1798
1780
  });
@@ -1830,8 +1812,8 @@ import_neko_storage.StorageProviderFactory.register("s3", (opt) => {
1830
1812
  // src/facades.mts
1831
1813
  var import_neko_cache2 = require("@devbro/neko-cache");
1832
1814
  var import_neko_queue3 = require("@devbro/neko-queue");
1833
- var router = (0, import_neko_helper.createSingleton)(() => new Router());
1834
- var scheduler = (0, import_neko_helper.createSingleton)(() => {
1815
+ var router = (0, import_neko_helper2.createSingleton)(() => new Router());
1816
+ var scheduler = (0, import_neko_helper2.createSingleton)(() => {
1835
1817
  const rc = new import_neko_scheduler.Scheduler();
1836
1818
  rc.setErrorHandler((err, job) => {
1837
1819
  logger().error({
@@ -1843,12 +1825,15 @@ var scheduler = (0, import_neko_helper.createSingleton)(() => {
1843
1825
  return rc;
1844
1826
  });
1845
1827
  var db = /* @__PURE__ */ __name((label = "default") => (0, import_neko_context2.ctx)().getOrThrow(["database", label]), "db");
1846
- var storage = (0, import_neko_helper.createSingleton)((label = "default") => {
1828
+ var storage = (0, import_neko_helper2.createSingleton)((label = "default") => {
1847
1829
  let storage_config = import_neko_config.config.get(["storages", label].join("."));
1848
- const provider = import_neko_storage2.StorageProviderFactory.create(storage_config.provider, storage_config.config);
1830
+ const provider = import_neko_storage2.StorageProviderFactory.create(
1831
+ storage_config.provider,
1832
+ storage_config.config
1833
+ );
1849
1834
  return new import_neko_storage2.Storage(provider);
1850
1835
  });
1851
- var cli = (0, import_neko_helper.createSingleton)(() => {
1836
+ var cli = (0, import_neko_helper2.createSingleton)(() => {
1852
1837
  const [node, app, ...args] = process.argv;
1853
1838
  return new import_clipanion.Cli({
1854
1839
  binaryLabel: `My Application`,
@@ -1856,7 +1841,7 @@ var cli = (0, import_neko_helper.createSingleton)(() => {
1856
1841
  binaryVersion: `1.0.0`
1857
1842
  });
1858
1843
  });
1859
- var httpServer = (0, import_neko_helper.createSingleton)(() => {
1844
+ var httpServer = (0, import_neko_helper2.createSingleton)(() => {
1860
1845
  const server = new http_exports.HttpServer();
1861
1846
  server.setErrorHandler(async (err, req, res) => {
1862
1847
  if (err instanceof http_exports.HttpError) {
@@ -1891,7 +1876,7 @@ var httpServer = (0, import_neko_helper.createSingleton)(() => {
1891
1876
  server.setRouter(router());
1892
1877
  return server;
1893
1878
  });
1894
- var logger = (0, import_neko_helper.createSingleton)((label) => {
1879
+ var logger = (0, import_neko_helper2.createSingleton)((label) => {
1895
1880
  const logger_config = import_neko_config.config.get(["loggers", label].join("."));
1896
1881
  const rc = new import_neko_logger.Logger(logger_config);
1897
1882
  rc.setExtrasFunction((message) => {
@@ -1900,25 +1885,28 @@ var logger = (0, import_neko_helper.createSingleton)((label) => {
1900
1885
  });
1901
1886
  return rc;
1902
1887
  });
1903
- var mailer = (0, import_neko_helper.createSingleton)((label) => {
1888
+ var mailer = (0, import_neko_helper2.createSingleton)((label) => {
1904
1889
  const mailer_config = import_neko_config.config.get(["mailer", label].join("."));
1905
- const provider = MailerFactory.create(
1890
+ const provider = import_neko_mailer2.MailerProviderFactory.create(
1906
1891
  mailer_config.provider,
1907
1892
  mailer_config.config
1908
1893
  );
1909
1894
  const rc = new import_neko_mailer2.Mailer(provider);
1910
1895
  return rc;
1911
1896
  });
1912
- var queue = (0, import_neko_helper.createSingleton)((label) => {
1897
+ var queue = (0, import_neko_helper2.createSingleton)((label) => {
1913
1898
  const queue_config = import_neko_config.config.get(["queues", label].join("."));
1914
1899
  if (!queue_config) {
1915
1900
  throw new Error(`Queue configuration for '${label}' not found`);
1916
1901
  }
1917
- const provider = QueueTransportFactory.create(queue_config.provider, queue_config.config);
1902
+ const provider = import_neko_queue3.QueueTransportFactory.create(
1903
+ queue_config.provider,
1904
+ queue_config.config
1905
+ );
1918
1906
  const rc = new import_neko_queue3.QueueConnection(provider);
1919
1907
  return rc;
1920
1908
  });
1921
- var cache = (0, import_neko_helper.createSingleton)((label) => {
1909
+ var cache = (0, import_neko_helper2.createSingleton)((label) => {
1922
1910
  const cache_config = import_neko_config.config.get(["caches", label].join("."));
1923
1911
  if (!cache_config) {
1924
1912
  throw new Error(`Cache configuration for '${label}' not found`);