@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`);
@@ -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`);