@devbro/pashmak 0.1.48 → 0.1.51

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 (41) hide show
  1. package/dist/DatabaseServiceProvider.d.mts +5 -2
  2. package/dist/DatabaseServiceProvider.mjs +10 -3
  3. package/dist/DatabaseServiceProvider.mjs.map +1 -1
  4. package/dist/app/console/StartCommand.d.mts +1 -0
  5. package/dist/app/console/StartCommand.mjs +5 -2
  6. package/dist/app/console/StartCommand.mjs.map +1 -1
  7. package/dist/app/console/generate/GenerateApiDocsCommand.d.mts +34 -2
  8. package/dist/app/console/generate/GenerateApiDocsCommand.mjs +183 -100
  9. package/dist/app/console/generate/GenerateApiDocsCommand.mjs.map +1 -1
  10. package/dist/app/console/project/base_project/src/config/storages.ts.tpl +2 -2
  11. package/dist/bin/DatabaseServiceProvider.cjs +12 -2
  12. package/dist/bin/app/console/DefaultCommand.cjs +136 -69
  13. package/dist/bin/app/console/KeyGenerateCommand.cjs +136 -69
  14. package/dist/bin/app/console/StartCommand.cjs +141 -71
  15. package/dist/bin/app/console/generate/GenerateApiDocsCommand.cjs +320 -170
  16. package/dist/bin/app/console/generate/GenerateControllerCommand.cjs +136 -69
  17. package/dist/bin/app/console/generate/index.cjs +320 -170
  18. package/dist/bin/app/console/index.cjs +325 -172
  19. package/dist/bin/app/console/migrate/GenerateMigrateCommand.cjs +136 -69
  20. package/dist/bin/app/console/migrate/MigrateCommand.cjs +136 -69
  21. package/dist/bin/app/console/migrate/MigrateRollbackCommand.cjs +136 -69
  22. package/dist/bin/app/console/migrate/index.cjs +136 -69
  23. package/dist/bin/app/console/queue/GenerateQueueMigrateCommand.cjs +136 -69
  24. package/dist/bin/cache.cjs +136 -69
  25. package/dist/bin/facades.cjs +136 -69
  26. package/dist/bin/factories.cjs +136 -69
  27. package/dist/bin/http.cjs +136 -69
  28. package/dist/bin/index.cjs +338 -178
  29. package/dist/bin/middlewares.cjs +136 -69
  30. package/dist/bin/queue.cjs +136 -69
  31. package/dist/bin/router.cjs +3 -5
  32. package/dist/facades.d.mts +6 -6
  33. package/dist/facades.mjs +97 -58
  34. package/dist/facades.mjs.map +1 -1
  35. package/dist/factories.mjs +45 -2
  36. package/dist/factories.mjs.map +1 -1
  37. package/dist/http.mjs +1 -1
  38. package/dist/http.mjs.map +1 -1
  39. package/dist/queue.d.mts +1 -1
  40. package/dist/queue.mjs.map +1 -1
  41. package/package.json +1 -1
@@ -77,6 +77,7 @@ var MiddlewareFactory = class {
77
77
  };
78
78
 
79
79
  // ../neko-router/dist/CompiledRoute.mjs
80
+ var import_neko_helper = require("@devbro/neko-helper");
80
81
  var CompiledRoute = class {
81
82
  static {
82
83
  __name(this, "CompiledRoute");
@@ -97,7 +98,7 @@ var CompiledRoute = class {
97
98
  for (const middleware of [...this.globalMiddlewares, ...this.route.getMiddlewares()]) {
98
99
  if (middleware instanceof Middleware) {
99
100
  this.middlewares.push(middleware);
100
- } else if (this.isClass(middleware)) {
101
+ } else if ((0, import_neko_helper.isClass)(middleware)) {
101
102
  this.middlewares.push(middleware.getInstance({}));
102
103
  } else if (typeof middleware === "function") {
103
104
  this.middlewares.push(MiddlewareFactory.create(middleware));
@@ -106,9 +107,6 @@ var CompiledRoute = class {
106
107
  }
107
108
  }
108
109
  }
109
- isClass(func) {
110
- return typeof func === "function" && /^class\s/.test(Function.prototype.toString.call(func));
111
- }
112
110
  async run() {
113
111
  return await this.runMiddlewares(this.middlewares, this.request, this.response);
114
112
  }
@@ -244,7 +242,7 @@ var Route = class {
244
242
  i = start;
245
243
  } else if (char === "*") {
246
244
  let start = i + 1;
247
- while (start < path3.length && /[a-zA-Z0-9_\.]/.test(path3[start])) {
245
+ while (start < path3.length && /[a-zA-Z0-9_]/.test(path3[start])) {
248
246
  start++;
249
247
  }
250
248
  tokens.push({ type: "WILDCARD", value: path3.slice(i + 1, start) });
@@ -455,7 +453,7 @@ var Router = class {
455
453
 
456
454
  // src/facades.mts
457
455
  var import_neko_scheduler = require("@devbro/neko-scheduler");
458
- var import_neko_helper2 = require("@devbro/neko-helper");
456
+ var import_neko_helper3 = require("@devbro/neko-helper");
459
457
  var import_neko_context3 = require("@devbro/neko-context");
460
458
  var import_neko_storage2 = require("@devbro/neko-storage");
461
459
  var import_neko_mailer2 = require("@devbro/neko-mailer");
@@ -496,7 +494,7 @@ __export(queue_exports, {
496
494
  DatabaseTransport: () => DatabaseTransport
497
495
  });
498
496
  __reExport(queue_exports, require("@devbro/neko-queue"));
499
- var import_neko_helper = require("@devbro/neko-helper");
497
+ var import_neko_helper2 = require("@devbro/neko-helper");
500
498
  var import_neko_context2 = require("@devbro/neko-context");
501
499
  var DatabaseTransport = class {
502
500
  static {
@@ -557,7 +555,7 @@ var DatabaseTransport = class {
557
555
  }, "processMessage");
558
556
  constructor(config3 = {}) {
559
557
  this.config = { ...this.config, ...config3 };
560
- this.repeater = (0, import_neko_helper.createRepeater)(
558
+ this.repeater = (0, import_neko_helper2.createRepeater)(
561
559
  this.processMessage,
562
560
  this.config.listen_interval * 1e3
563
561
  );
@@ -625,6 +623,24 @@ import_neko_queue.QueueTransportFactory.register("database", (opt) => {
625
623
  import_neko_queue.QueueTransportFactory.register("memory", (opt) => {
626
624
  return new import_neko_queue.MemoryTransport(opt);
627
625
  });
626
+ import_neko_queue.QueueTransportFactory.register("sqs", (opt) => {
627
+ return new import_neko_queue.AwsSqsTransport(opt);
628
+ });
629
+ import_neko_queue.QueueTransportFactory.register("amqp", (opt) => {
630
+ return new import_neko_queue.AmqpTransport(opt);
631
+ });
632
+ import_neko_queue.QueueTransportFactory.register("redis", (opt) => {
633
+ return new import_neko_queue.RedisTransport(opt);
634
+ });
635
+ import_neko_queue.QueueTransportFactory.register("async", (opt) => {
636
+ return new import_neko_queue.AsyncTransport();
637
+ });
638
+ import_neko_queue.QueueTransportFactory.register("azure_service_bus", (opt) => {
639
+ return new import_neko_queue.AzureServiceBusTransport(opt);
640
+ });
641
+ import_neko_queue.QueueTransportFactory.register("google_pubsub", (opt) => {
642
+ return new import_neko_queue.GooglePubSubTransport(opt);
643
+ });
628
644
  var CacheProviderFactory = class _CacheProviderFactory {
629
645
  static {
630
646
  __name(this, "CacheProviderFactory");
@@ -655,32 +671,75 @@ import_neko_storage.StorageProviderFactory.register("local", (opt) => {
655
671
  import_neko_storage.StorageProviderFactory.register("s3", (opt) => {
656
672
  return new import_neko_storage.AWSS3StorageProvider(opt);
657
673
  });
674
+ import_neko_storage.StorageProviderFactory.register("gcp", (opt) => {
675
+ return new import_neko_storage.GCPStorageProvider(opt);
676
+ });
677
+ import_neko_storage.StorageProviderFactory.register("azure", (opt) => {
678
+ return new import_neko_storage.AzureBlobStorageProvider(opt);
679
+ });
680
+ import_neko_storage.StorageProviderFactory.register("ftp", (opt) => {
681
+ return new import_neko_storage.FTPStorageProvider(opt);
682
+ });
683
+ import_neko_storage.StorageProviderFactory.register("sftp", (opt) => {
684
+ return new import_neko_storage.SFTPStorageProvider(opt);
685
+ });
658
686
 
659
687
  // src/facades.mts
660
688
  var import_neko_cache2 = require("@devbro/neko-cache");
661
689
  var import_neko_queue2 = require("@devbro/neko-queue");
662
- var router = (0, import_neko_helper2.createSingleton)(() => new Router());
663
- var scheduler = (0, import_neko_helper2.createSingleton)(() => {
664
- const rc = new import_neko_scheduler.Scheduler();
665
- rc.setErrorHandler((err, job) => {
666
- logger().error({
667
- msg: "Scheduled job error",
668
- err,
669
- job_name: job.getName()
670
- });
690
+ function wrapSingletonWithAccessors(singletonFn) {
691
+ let methodsInitialized = false;
692
+ const initializeMethods = /* @__PURE__ */ __name(() => {
693
+ if (methodsInitialized) return;
694
+ const defaultInstance = singletonFn();
695
+ const prototype = Object.getPrototypeOf(defaultInstance);
696
+ const methodNames = Object.getOwnPropertyNames(prototype).filter(
697
+ (name) => name !== "constructor" && typeof prototype[name] === "function"
698
+ );
699
+ for (const methodName of methodNames) {
700
+ singletonFn[methodName] = (...args) => {
701
+ const instance = singletonFn();
702
+ return instance[methodName](...args);
703
+ };
704
+ }
705
+ methodsInitialized = true;
706
+ }, "initializeMethods");
707
+ return new Proxy(singletonFn, {
708
+ get(target, prop, receiver) {
709
+ if (typeof prop === "string" && !Reflect.has(target, prop)) {
710
+ initializeMethods();
711
+ }
712
+ return Reflect.get(target, prop, receiver);
713
+ }
671
714
  });
672
- return rc;
673
- });
715
+ }
716
+ __name(wrapSingletonWithAccessors, "wrapSingletonWithAccessors");
717
+ var router = (0, import_neko_helper3.createSingleton)(() => new Router());
718
+ var scheduler = wrapSingletonWithAccessors(
719
+ (0, import_neko_helper3.createSingleton)(() => {
720
+ const rc = new import_neko_scheduler.Scheduler();
721
+ rc.setErrorHandler((err, job) => {
722
+ logger().error({
723
+ msg: "Scheduled job error",
724
+ err,
725
+ job_name: job.getName()
726
+ });
727
+ });
728
+ return rc;
729
+ })
730
+ );
674
731
  var db = /* @__PURE__ */ __name((label = "default") => (0, import_neko_context3.ctx)().getOrThrow(["database", label]), "db");
675
- var storage = (0, import_neko_helper2.createSingleton)((label = "default") => {
676
- let storage_config = import_neko_config.config.get(["storages", label].join("."));
677
- const provider = import_neko_storage2.StorageProviderFactory.create(
678
- storage_config.provider,
679
- storage_config.config
680
- );
681
- return new import_neko_storage2.Storage(provider);
682
- });
683
- var cli = (0, import_neko_helper2.createSingleton)(() => {
732
+ var storage = wrapSingletonWithAccessors(
733
+ (0, import_neko_helper3.createSingleton)((label = "default") => {
734
+ let storage_config = import_neko_config.config.get(["storages", label].join("."));
735
+ const provider = import_neko_storage2.StorageProviderFactory.create(
736
+ storage_config.provider,
737
+ storage_config.config
738
+ );
739
+ return new import_neko_storage2.Storage(provider);
740
+ })
741
+ );
742
+ var cli = (0, import_neko_helper3.createSingleton)(() => {
684
743
  const [node, app, ...args] = process.argv;
685
744
  return new import_clipanion.Cli({
686
745
  binaryLabel: `My Application`,
@@ -688,52 +747,60 @@ var cli = (0, import_neko_helper2.createSingleton)(() => {
688
747
  binaryVersion: `1.0.0`
689
748
  });
690
749
  });
691
- var httpServer = (0, import_neko_helper2.createSingleton)(() => {
750
+ var httpServer = (0, import_neko_helper3.createSingleton)(() => {
692
751
  const server = new http_exports.HttpServer();
693
752
  server.setErrorHandler(handleHttpErrors);
694
753
  server.setRouter(router());
695
754
  return server;
696
755
  });
697
- var logger = (0, import_neko_helper2.createSingleton)((label) => {
698
- const logger_config = import_neko_config.config.get(["loggers", label].join("."));
699
- const rc = new import_neko_logger.Logger(logger_config);
700
- rc.setExtrasFunction((message) => {
701
- message.requestId = (0, import_neko_context3.ctxSafe)()?.get("requestId") || "N/A";
702
- return message;
703
- });
704
- return rc;
705
- });
706
- var mailer = (0, import_neko_helper2.createSingleton)((label) => {
707
- const mailer_config = import_neko_config.config.get(["mailer", label].join("."));
708
- const provider = import_neko_mailer2.MailerProviderFactory.create(
709
- mailer_config.provider,
710
- mailer_config.config
711
- );
712
- const rc = new import_neko_mailer2.Mailer(provider);
713
- return rc;
714
- });
715
- var queue = (0, import_neko_helper2.createSingleton)((label) => {
716
- const queue_config = import_neko_config.config.get(["queues", label].join("."));
717
- if (!queue_config) {
718
- throw new Error(`Queue configuration for '${label}' not found`);
719
- }
720
- const provider = import_neko_queue2.QueueTransportFactory.create(
721
- queue_config.provider,
722
- queue_config.config
723
- );
724
- return new import_neko_queue2.QueueConnection(provider);
725
- });
726
- var cache = (0, import_neko_helper2.createSingleton)((label) => {
727
- const cache_config = import_neko_config.config.get(["caches", label].join("."));
728
- if (!cache_config) {
729
- throw new Error(`Cache configuration for '${label}' not found`);
730
- }
731
- const provider = CacheProviderFactory.create(
732
- cache_config.provider,
733
- cache_config.config
734
- );
735
- return new import_neko_cache2.Cache(provider);
736
- });
756
+ var logger = wrapSingletonWithAccessors(
757
+ (0, import_neko_helper3.createSingleton)((label) => {
758
+ const logger_config = import_neko_config.config.get(["loggers", label].join("."));
759
+ const rc = new import_neko_logger.Logger(logger_config);
760
+ rc.setExtrasFunction((message) => {
761
+ message.requestId = (0, import_neko_context3.ctxSafe)()?.get("requestId") || "N/A";
762
+ return message;
763
+ });
764
+ return rc;
765
+ })
766
+ );
767
+ var mailer = wrapSingletonWithAccessors(
768
+ (0, import_neko_helper3.createSingleton)((label) => {
769
+ const mailer_config = import_neko_config.config.get(["mailer", label].join("."));
770
+ const provider = import_neko_mailer2.MailerProviderFactory.create(
771
+ mailer_config.provider,
772
+ mailer_config.config
773
+ );
774
+ const rc = new import_neko_mailer2.Mailer(provider);
775
+ return rc;
776
+ })
777
+ );
778
+ var queue = wrapSingletonWithAccessors(
779
+ (0, import_neko_helper3.createSingleton)((label) => {
780
+ const queue_config = import_neko_config.config.get(["queues", label].join("."));
781
+ if (!queue_config) {
782
+ throw new Error(`Queue configuration for '${label}' not found`);
783
+ }
784
+ const provider = import_neko_queue2.QueueTransportFactory.create(
785
+ queue_config.provider,
786
+ queue_config.config
787
+ );
788
+ return new import_neko_queue2.QueueConnection(provider);
789
+ })
790
+ );
791
+ var cache = wrapSingletonWithAccessors(
792
+ (0, import_neko_helper3.createSingleton)((label) => {
793
+ const cache_config = import_neko_config.config.get(["caches", label].join("."));
794
+ if (!cache_config) {
795
+ throw new Error(`Cache configuration for '${label}' not found`);
796
+ }
797
+ const provider = CacheProviderFactory.create(
798
+ cache_config.provider,
799
+ cache_config.config
800
+ );
801
+ return new import_neko_cache2.Cache(provider);
802
+ })
803
+ );
737
804
 
738
805
  // src/app/console/queue/GenerateQueueMigrateCommand.mts
739
806
  var import_clipanion2 = require("clipanion");
@@ -78,6 +78,7 @@ var MiddlewareFactory = class {
78
78
  };
79
79
 
80
80
  // ../neko-router/dist/CompiledRoute.mjs
81
+ var import_neko_helper = require("@devbro/neko-helper");
81
82
  var CompiledRoute = class {
82
83
  static {
83
84
  __name(this, "CompiledRoute");
@@ -98,7 +99,7 @@ var CompiledRoute = class {
98
99
  for (const middleware of [...this.globalMiddlewares, ...this.route.getMiddlewares()]) {
99
100
  if (middleware instanceof Middleware) {
100
101
  this.middlewares.push(middleware);
101
- } else if (this.isClass(middleware)) {
102
+ } else if ((0, import_neko_helper.isClass)(middleware)) {
102
103
  this.middlewares.push(middleware.getInstance({}));
103
104
  } else if (typeof middleware === "function") {
104
105
  this.middlewares.push(MiddlewareFactory.create(middleware));
@@ -107,9 +108,6 @@ var CompiledRoute = class {
107
108
  }
108
109
  }
109
110
  }
110
- isClass(func) {
111
- return typeof func === "function" && /^class\s/.test(Function.prototype.toString.call(func));
112
- }
113
111
  async run() {
114
112
  return await this.runMiddlewares(this.middlewares, this.request, this.response);
115
113
  }
@@ -245,7 +243,7 @@ var Route = class {
245
243
  i = start;
246
244
  } else if (char === "*") {
247
245
  let start = i + 1;
248
- while (start < path2.length && /[a-zA-Z0-9_\.]/.test(path2[start])) {
246
+ while (start < path2.length && /[a-zA-Z0-9_]/.test(path2[start])) {
249
247
  start++;
250
248
  }
251
249
  tokens.push({ type: "WILDCARD", value: path2.slice(i + 1, start) });
@@ -456,7 +454,7 @@ var Router = class {
456
454
 
457
455
  // src/facades.mts
458
456
  var import_neko_scheduler = require("@devbro/neko-scheduler");
459
- var import_neko_helper2 = require("@devbro/neko-helper");
457
+ var import_neko_helper3 = require("@devbro/neko-helper");
460
458
  var import_neko_context3 = require("@devbro/neko-context");
461
459
  var import_neko_storage2 = require("@devbro/neko-storage");
462
460
  var import_neko_mailer2 = require("@devbro/neko-mailer");
@@ -497,7 +495,7 @@ __export(queue_exports, {
497
495
  DatabaseTransport: () => DatabaseTransport
498
496
  });
499
497
  __reExport(queue_exports, require("@devbro/neko-queue"));
500
- var import_neko_helper = require("@devbro/neko-helper");
498
+ var import_neko_helper2 = require("@devbro/neko-helper");
501
499
  var import_neko_context2 = require("@devbro/neko-context");
502
500
  var DatabaseTransport = class {
503
501
  static {
@@ -558,7 +556,7 @@ var DatabaseTransport = class {
558
556
  }, "processMessage");
559
557
  constructor(config2 = {}) {
560
558
  this.config = { ...this.config, ...config2 };
561
- this.repeater = (0, import_neko_helper.createRepeater)(
559
+ this.repeater = (0, import_neko_helper2.createRepeater)(
562
560
  this.processMessage,
563
561
  this.config.listen_interval * 1e3
564
562
  );
@@ -626,6 +624,24 @@ import_neko_queue.QueueTransportFactory.register("database", (opt) => {
626
624
  import_neko_queue.QueueTransportFactory.register("memory", (opt) => {
627
625
  return new import_neko_queue.MemoryTransport(opt);
628
626
  });
627
+ import_neko_queue.QueueTransportFactory.register("sqs", (opt) => {
628
+ return new import_neko_queue.AwsSqsTransport(opt);
629
+ });
630
+ import_neko_queue.QueueTransportFactory.register("amqp", (opt) => {
631
+ return new import_neko_queue.AmqpTransport(opt);
632
+ });
633
+ import_neko_queue.QueueTransportFactory.register("redis", (opt) => {
634
+ return new import_neko_queue.RedisTransport(opt);
635
+ });
636
+ import_neko_queue.QueueTransportFactory.register("async", (opt) => {
637
+ return new import_neko_queue.AsyncTransport();
638
+ });
639
+ import_neko_queue.QueueTransportFactory.register("azure_service_bus", (opt) => {
640
+ return new import_neko_queue.AzureServiceBusTransport(opt);
641
+ });
642
+ import_neko_queue.QueueTransportFactory.register("google_pubsub", (opt) => {
643
+ return new import_neko_queue.GooglePubSubTransport(opt);
644
+ });
629
645
  var CacheProviderFactory = class _CacheProviderFactory {
630
646
  static {
631
647
  __name(this, "CacheProviderFactory");
@@ -656,32 +672,75 @@ import_neko_storage.StorageProviderFactory.register("local", (opt) => {
656
672
  import_neko_storage.StorageProviderFactory.register("s3", (opt) => {
657
673
  return new import_neko_storage.AWSS3StorageProvider(opt);
658
674
  });
675
+ import_neko_storage.StorageProviderFactory.register("gcp", (opt) => {
676
+ return new import_neko_storage.GCPStorageProvider(opt);
677
+ });
678
+ import_neko_storage.StorageProviderFactory.register("azure", (opt) => {
679
+ return new import_neko_storage.AzureBlobStorageProvider(opt);
680
+ });
681
+ import_neko_storage.StorageProviderFactory.register("ftp", (opt) => {
682
+ return new import_neko_storage.FTPStorageProvider(opt);
683
+ });
684
+ import_neko_storage.StorageProviderFactory.register("sftp", (opt) => {
685
+ return new import_neko_storage.SFTPStorageProvider(opt);
686
+ });
659
687
 
660
688
  // src/facades.mts
661
689
  var import_neko_cache2 = require("@devbro/neko-cache");
662
690
  var import_neko_queue2 = require("@devbro/neko-queue");
663
- var router = (0, import_neko_helper2.createSingleton)(() => new Router());
664
- var scheduler = (0, import_neko_helper2.createSingleton)(() => {
665
- const rc = new import_neko_scheduler.Scheduler();
666
- rc.setErrorHandler((err, job) => {
667
- logger().error({
668
- msg: "Scheduled job error",
669
- err,
670
- job_name: job.getName()
671
- });
691
+ function wrapSingletonWithAccessors(singletonFn) {
692
+ let methodsInitialized = false;
693
+ const initializeMethods = /* @__PURE__ */ __name(() => {
694
+ if (methodsInitialized) return;
695
+ const defaultInstance = singletonFn();
696
+ const prototype = Object.getPrototypeOf(defaultInstance);
697
+ const methodNames = Object.getOwnPropertyNames(prototype).filter(
698
+ (name) => name !== "constructor" && typeof prototype[name] === "function"
699
+ );
700
+ for (const methodName of methodNames) {
701
+ singletonFn[methodName] = (...args) => {
702
+ const instance = singletonFn();
703
+ return instance[methodName](...args);
704
+ };
705
+ }
706
+ methodsInitialized = true;
707
+ }, "initializeMethods");
708
+ return new Proxy(singletonFn, {
709
+ get(target, prop, receiver) {
710
+ if (typeof prop === "string" && !Reflect.has(target, prop)) {
711
+ initializeMethods();
712
+ }
713
+ return Reflect.get(target, prop, receiver);
714
+ }
672
715
  });
673
- return rc;
674
- });
716
+ }
717
+ __name(wrapSingletonWithAccessors, "wrapSingletonWithAccessors");
718
+ var router = (0, import_neko_helper3.createSingleton)(() => new Router());
719
+ var scheduler = wrapSingletonWithAccessors(
720
+ (0, import_neko_helper3.createSingleton)(() => {
721
+ const rc = new import_neko_scheduler.Scheduler();
722
+ rc.setErrorHandler((err, job) => {
723
+ logger().error({
724
+ msg: "Scheduled job error",
725
+ err,
726
+ job_name: job.getName()
727
+ });
728
+ });
729
+ return rc;
730
+ })
731
+ );
675
732
  var db = /* @__PURE__ */ __name((label = "default") => (0, import_neko_context3.ctx)().getOrThrow(["database", label]), "db");
676
- var storage = (0, import_neko_helper2.createSingleton)((label = "default") => {
677
- let storage_config = import_neko_config.config.get(["storages", label].join("."));
678
- const provider = import_neko_storage2.StorageProviderFactory.create(
679
- storage_config.provider,
680
- storage_config.config
681
- );
682
- return new import_neko_storage2.Storage(provider);
683
- });
684
- var cli = (0, import_neko_helper2.createSingleton)(() => {
733
+ var storage = wrapSingletonWithAccessors(
734
+ (0, import_neko_helper3.createSingleton)((label = "default") => {
735
+ let storage_config = import_neko_config.config.get(["storages", label].join("."));
736
+ const provider = import_neko_storage2.StorageProviderFactory.create(
737
+ storage_config.provider,
738
+ storage_config.config
739
+ );
740
+ return new import_neko_storage2.Storage(provider);
741
+ })
742
+ );
743
+ var cli = (0, import_neko_helper3.createSingleton)(() => {
685
744
  const [node, app, ...args] = process.argv;
686
745
  return new import_clipanion.Cli({
687
746
  binaryLabel: `My Application`,
@@ -689,52 +748,60 @@ var cli = (0, import_neko_helper2.createSingleton)(() => {
689
748
  binaryVersion: `1.0.0`
690
749
  });
691
750
  });
692
- var httpServer = (0, import_neko_helper2.createSingleton)(() => {
751
+ var httpServer = (0, import_neko_helper3.createSingleton)(() => {
693
752
  const server = new http_exports.HttpServer();
694
753
  server.setErrorHandler(handleHttpErrors);
695
754
  server.setRouter(router());
696
755
  return server;
697
756
  });
698
- var logger = (0, import_neko_helper2.createSingleton)((label) => {
699
- const logger_config = import_neko_config.config.get(["loggers", label].join("."));
700
- const rc = new import_neko_logger.Logger(logger_config);
701
- rc.setExtrasFunction((message) => {
702
- message.requestId = (0, import_neko_context3.ctxSafe)()?.get("requestId") || "N/A";
703
- return message;
704
- });
705
- return rc;
706
- });
707
- var mailer = (0, import_neko_helper2.createSingleton)((label) => {
708
- const mailer_config = import_neko_config.config.get(["mailer", label].join("."));
709
- const provider = import_neko_mailer2.MailerProviderFactory.create(
710
- mailer_config.provider,
711
- mailer_config.config
712
- );
713
- const rc = new import_neko_mailer2.Mailer(provider);
714
- return rc;
715
- });
716
- var queue = (0, import_neko_helper2.createSingleton)((label) => {
717
- const queue_config = import_neko_config.config.get(["queues", label].join("."));
718
- if (!queue_config) {
719
- throw new Error(`Queue configuration for '${label}' not found`);
720
- }
721
- const provider = import_neko_queue2.QueueTransportFactory.create(
722
- queue_config.provider,
723
- queue_config.config
724
- );
725
- return new import_neko_queue2.QueueConnection(provider);
726
- });
727
- var cache = (0, import_neko_helper2.createSingleton)((label) => {
728
- const cache_config = import_neko_config.config.get(["caches", label].join("."));
729
- if (!cache_config) {
730
- throw new Error(`Cache configuration for '${label}' not found`);
731
- }
732
- const provider = CacheProviderFactory.create(
733
- cache_config.provider,
734
- cache_config.config
735
- );
736
- return new import_neko_cache2.Cache(provider);
737
- });
757
+ var logger = wrapSingletonWithAccessors(
758
+ (0, import_neko_helper3.createSingleton)((label) => {
759
+ const logger_config = import_neko_config.config.get(["loggers", label].join("."));
760
+ const rc = new import_neko_logger.Logger(logger_config);
761
+ rc.setExtrasFunction((message) => {
762
+ message.requestId = (0, import_neko_context3.ctxSafe)()?.get("requestId") || "N/A";
763
+ return message;
764
+ });
765
+ return rc;
766
+ })
767
+ );
768
+ var mailer = wrapSingletonWithAccessors(
769
+ (0, import_neko_helper3.createSingleton)((label) => {
770
+ const mailer_config = import_neko_config.config.get(["mailer", label].join("."));
771
+ const provider = import_neko_mailer2.MailerProviderFactory.create(
772
+ mailer_config.provider,
773
+ mailer_config.config
774
+ );
775
+ const rc = new import_neko_mailer2.Mailer(provider);
776
+ return rc;
777
+ })
778
+ );
779
+ var queue = wrapSingletonWithAccessors(
780
+ (0, import_neko_helper3.createSingleton)((label) => {
781
+ const queue_config = import_neko_config.config.get(["queues", label].join("."));
782
+ if (!queue_config) {
783
+ throw new Error(`Queue configuration for '${label}' not found`);
784
+ }
785
+ const provider = import_neko_queue2.QueueTransportFactory.create(
786
+ queue_config.provider,
787
+ queue_config.config
788
+ );
789
+ return new import_neko_queue2.QueueConnection(provider);
790
+ })
791
+ );
792
+ var cache = wrapSingletonWithAccessors(
793
+ (0, import_neko_helper3.createSingleton)((label) => {
794
+ const cache_config = import_neko_config.config.get(["caches", label].join("."));
795
+ if (!cache_config) {
796
+ throw new Error(`Cache configuration for '${label}' not found`);
797
+ }
798
+ const provider = CacheProviderFactory.create(
799
+ cache_config.provider,
800
+ cache_config.config
801
+ );
802
+ return new import_neko_cache2.Cache(provider);
803
+ })
804
+ );
738
805
 
739
806
  // src/cache.mts
740
807
  async function cacheQuery(q, options = {}) {