@devbro/pashmak 0.1.48 → 0.1.49

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 (38) hide show
  1. package/dist/DatabaseServiceProvider.d.mts +4 -1
  2. package/dist/DatabaseServiceProvider.mjs +5 -2
  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 +8 -2
  12. package/dist/bin/app/console/DefaultCommand.cjs +45 -17
  13. package/dist/bin/app/console/KeyGenerateCommand.cjs +45 -17
  14. package/dist/bin/app/console/StartCommand.cjs +50 -19
  15. package/dist/bin/app/console/generate/GenerateApiDocsCommand.cjs +229 -118
  16. package/dist/bin/app/console/generate/GenerateControllerCommand.cjs +45 -17
  17. package/dist/bin/app/console/generate/index.cjs +229 -118
  18. package/dist/bin/app/console/index.cjs +234 -120
  19. package/dist/bin/app/console/migrate/GenerateMigrateCommand.cjs +45 -17
  20. package/dist/bin/app/console/migrate/MigrateCommand.cjs +45 -17
  21. package/dist/bin/app/console/migrate/MigrateRollbackCommand.cjs +45 -17
  22. package/dist/bin/app/console/migrate/index.cjs +45 -17
  23. package/dist/bin/app/console/queue/GenerateQueueMigrateCommand.cjs +45 -17
  24. package/dist/bin/cache.cjs +45 -17
  25. package/dist/bin/facades.cjs +45 -17
  26. package/dist/bin/factories.cjs +45 -17
  27. package/dist/bin/http.cjs +45 -17
  28. package/dist/bin/index.cjs +243 -126
  29. package/dist/bin/middlewares.cjs +45 -17
  30. package/dist/bin/queue.cjs +45 -17
  31. package/dist/bin/router.cjs +3 -5
  32. package/dist/factories.mjs +45 -2
  33. package/dist/factories.mjs.map +1 -1
  34. package/dist/http.mjs +1 -1
  35. package/dist/http.mjs.map +1 -1
  36. package/dist/queue.d.mts +1 -1
  37. package/dist/queue.mjs.map +1 -1
  38. package/package.json +1 -1
@@ -1234,6 +1234,7 @@ var MiddlewareFactory = class {
1234
1234
  };
1235
1235
 
1236
1236
  // ../neko-router/dist/CompiledRoute.mjs
1237
+ var import_neko_helper = require("@devbro/neko-helper");
1237
1238
  var CompiledRoute = class {
1238
1239
  static {
1239
1240
  __name(this, "CompiledRoute");
@@ -1254,7 +1255,7 @@ var CompiledRoute = class {
1254
1255
  for (const middleware of [...this.globalMiddlewares, ...this.route.getMiddlewares()]) {
1255
1256
  if (middleware instanceof Middleware) {
1256
1257
  this.middlewares.push(middleware);
1257
- } else if (this.isClass(middleware)) {
1258
+ } else if ((0, import_neko_helper.isClass)(middleware)) {
1258
1259
  this.middlewares.push(middleware.getInstance({}));
1259
1260
  } else if (typeof middleware === "function") {
1260
1261
  this.middlewares.push(MiddlewareFactory.create(middleware));
@@ -1263,9 +1264,6 @@ var CompiledRoute = class {
1263
1264
  }
1264
1265
  }
1265
1266
  }
1266
- isClass(func) {
1267
- return typeof func === "function" && /^class\s/.test(Function.prototype.toString.call(func));
1268
- }
1269
1267
  async run() {
1270
1268
  return await this.runMiddlewares(this.middlewares, this.request, this.response);
1271
1269
  }
@@ -1401,7 +1399,7 @@ var Route = class {
1401
1399
  i = start;
1402
1400
  } else if (char === "*") {
1403
1401
  let start = i + 1;
1404
- while (start < path5.length && /[a-zA-Z0-9_\.]/.test(path5[start])) {
1402
+ while (start < path5.length && /[a-zA-Z0-9_]/.test(path5[start])) {
1405
1403
  start++;
1406
1404
  }
1407
1405
  tokens.push({ type: "WILDCARD", value: path5.slice(i + 1, start) });
@@ -1612,7 +1610,7 @@ var Router = class {
1612
1610
 
1613
1611
  // src/facades.mts
1614
1612
  var import_neko_scheduler = require("@devbro/neko-scheduler");
1615
- var import_neko_helper2 = require("@devbro/neko-helper");
1613
+ var import_neko_helper3 = require("@devbro/neko-helper");
1616
1614
  var import_neko_context3 = require("@devbro/neko-context");
1617
1615
  var import_neko_storage2 = require("@devbro/neko-storage");
1618
1616
  var import_neko_mailer2 = require("@devbro/neko-mailer");
@@ -1653,7 +1651,7 @@ __export(queue_exports, {
1653
1651
  DatabaseTransport: () => DatabaseTransport
1654
1652
  });
1655
1653
  __reExport(queue_exports, require("@devbro/neko-queue"));
1656
- var import_neko_helper = require("@devbro/neko-helper");
1654
+ var import_neko_helper2 = require("@devbro/neko-helper");
1657
1655
  var import_neko_context2 = require("@devbro/neko-context");
1658
1656
  var DatabaseTransport = class {
1659
1657
  static {
@@ -1714,7 +1712,7 @@ var DatabaseTransport = class {
1714
1712
  }, "processMessage");
1715
1713
  constructor(config5 = {}) {
1716
1714
  this.config = { ...this.config, ...config5 };
1717
- this.repeater = (0, import_neko_helper.createRepeater)(
1715
+ this.repeater = (0, import_neko_helper2.createRepeater)(
1718
1716
  this.processMessage,
1719
1717
  this.config.listen_interval * 1e3
1720
1718
  );
@@ -1782,6 +1780,24 @@ import_neko_queue.QueueTransportFactory.register("database", (opt) => {
1782
1780
  import_neko_queue.QueueTransportFactory.register("memory", (opt) => {
1783
1781
  return new import_neko_queue.MemoryTransport(opt);
1784
1782
  });
1783
+ import_neko_queue.QueueTransportFactory.register("sqs", (opt) => {
1784
+ return new import_neko_queue.AwsSqsTransport(opt);
1785
+ });
1786
+ import_neko_queue.QueueTransportFactory.register("amqp", (opt) => {
1787
+ return new import_neko_queue.AmqpTransport(opt);
1788
+ });
1789
+ import_neko_queue.QueueTransportFactory.register("redis", (opt) => {
1790
+ return new import_neko_queue.RedisTransport(opt);
1791
+ });
1792
+ import_neko_queue.QueueTransportFactory.register("async", (opt) => {
1793
+ return new import_neko_queue.AsyncTransport();
1794
+ });
1795
+ import_neko_queue.QueueTransportFactory.register("azure_service_bus", (opt) => {
1796
+ return new import_neko_queue.AzureServiceBusTransport(opt);
1797
+ });
1798
+ import_neko_queue.QueueTransportFactory.register("google_pubsub", (opt) => {
1799
+ return new import_neko_queue.GooglePubSubTransport(opt);
1800
+ });
1785
1801
  var CacheProviderFactory = class _CacheProviderFactory {
1786
1802
  static {
1787
1803
  __name(this, "CacheProviderFactory");
@@ -1812,12 +1828,24 @@ import_neko_storage.StorageProviderFactory.register("local", (opt) => {
1812
1828
  import_neko_storage.StorageProviderFactory.register("s3", (opt) => {
1813
1829
  return new import_neko_storage.AWSS3StorageProvider(opt);
1814
1830
  });
1831
+ import_neko_storage.StorageProviderFactory.register("gcp", (opt) => {
1832
+ return new import_neko_storage.GCPStorageProvider(opt);
1833
+ });
1834
+ import_neko_storage.StorageProviderFactory.register("azure", (opt) => {
1835
+ return new import_neko_storage.AzureBlobStorageProvider(opt);
1836
+ });
1837
+ import_neko_storage.StorageProviderFactory.register("ftp", (opt) => {
1838
+ return new import_neko_storage.FTPStorageProvider(opt);
1839
+ });
1840
+ import_neko_storage.StorageProviderFactory.register("sftp", (opt) => {
1841
+ return new import_neko_storage.SFTPStorageProvider(opt);
1842
+ });
1815
1843
 
1816
1844
  // src/facades.mts
1817
1845
  var import_neko_cache2 = require("@devbro/neko-cache");
1818
1846
  var import_neko_queue2 = require("@devbro/neko-queue");
1819
- var router = (0, import_neko_helper2.createSingleton)(() => new Router());
1820
- var scheduler = (0, import_neko_helper2.createSingleton)(() => {
1847
+ var router = (0, import_neko_helper3.createSingleton)(() => new Router());
1848
+ var scheduler = (0, import_neko_helper3.createSingleton)(() => {
1821
1849
  const rc = new import_neko_scheduler.Scheduler();
1822
1850
  rc.setErrorHandler((err, job) => {
1823
1851
  logger().error({
@@ -1829,7 +1857,7 @@ var scheduler = (0, import_neko_helper2.createSingleton)(() => {
1829
1857
  return rc;
1830
1858
  });
1831
1859
  var db = /* @__PURE__ */ __name((label = "default") => (0, import_neko_context3.ctx)().getOrThrow(["database", label]), "db");
1832
- var storage = (0, import_neko_helper2.createSingleton)((label = "default") => {
1860
+ var storage = (0, import_neko_helper3.createSingleton)((label = "default") => {
1833
1861
  let storage_config = import_neko_config.config.get(["storages", label].join("."));
1834
1862
  const provider = import_neko_storage2.StorageProviderFactory.create(
1835
1863
  storage_config.provider,
@@ -1837,7 +1865,7 @@ var storage = (0, import_neko_helper2.createSingleton)((label = "default") => {
1837
1865
  );
1838
1866
  return new import_neko_storage2.Storage(provider);
1839
1867
  });
1840
- var cli = (0, import_neko_helper2.createSingleton)(() => {
1868
+ var cli = (0, import_neko_helper3.createSingleton)(() => {
1841
1869
  const [node, app, ...args] = process.argv;
1842
1870
  return new import_clipanion.Cli({
1843
1871
  binaryLabel: `My Application`,
@@ -1845,13 +1873,13 @@ var cli = (0, import_neko_helper2.createSingleton)(() => {
1845
1873
  binaryVersion: `1.0.0`
1846
1874
  });
1847
1875
  });
1848
- var httpServer = (0, import_neko_helper2.createSingleton)(() => {
1876
+ var httpServer = (0, import_neko_helper3.createSingleton)(() => {
1849
1877
  const server = new http_exports.HttpServer();
1850
1878
  server.setErrorHandler(handleHttpErrors);
1851
1879
  server.setRouter(router());
1852
1880
  return server;
1853
1881
  });
1854
- var logger = (0, import_neko_helper2.createSingleton)((label) => {
1882
+ var logger = (0, import_neko_helper3.createSingleton)((label) => {
1855
1883
  const logger_config = import_neko_config.config.get(["loggers", label].join("."));
1856
1884
  const rc = new import_neko_logger.Logger(logger_config);
1857
1885
  rc.setExtrasFunction((message) => {
@@ -1860,7 +1888,7 @@ var logger = (0, import_neko_helper2.createSingleton)((label) => {
1860
1888
  });
1861
1889
  return rc;
1862
1890
  });
1863
- var mailer = (0, import_neko_helper2.createSingleton)((label) => {
1891
+ var mailer = (0, import_neko_helper3.createSingleton)((label) => {
1864
1892
  const mailer_config = import_neko_config.config.get(["mailer", label].join("."));
1865
1893
  const provider = import_neko_mailer2.MailerProviderFactory.create(
1866
1894
  mailer_config.provider,
@@ -1869,7 +1897,7 @@ var mailer = (0, import_neko_helper2.createSingleton)((label) => {
1869
1897
  const rc = new import_neko_mailer2.Mailer(provider);
1870
1898
  return rc;
1871
1899
  });
1872
- var queue = (0, import_neko_helper2.createSingleton)((label) => {
1900
+ var queue = (0, import_neko_helper3.createSingleton)((label) => {
1873
1901
  const queue_config = import_neko_config.config.get(["queues", label].join("."));
1874
1902
  if (!queue_config) {
1875
1903
  throw new Error(`Queue configuration for '${label}' not found`);
@@ -1880,7 +1908,7 @@ var queue = (0, import_neko_helper2.createSingleton)((label) => {
1880
1908
  );
1881
1909
  return new import_neko_queue2.QueueConnection(provider);
1882
1910
  });
1883
- var cache = (0, import_neko_helper2.createSingleton)((label) => {
1911
+ var cache = (0, import_neko_helper3.createSingleton)((label) => {
1884
1912
  const cache_config = import_neko_config.config.get(["caches", label].join("."));
1885
1913
  if (!cache_config) {
1886
1914
  throw new Error(`Cache configuration for '${label}' not found`);
@@ -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,12 +671,24 @@ 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)(() => {
690
+ var router = (0, import_neko_helper3.createSingleton)(() => new Router());
691
+ var scheduler = (0, import_neko_helper3.createSingleton)(() => {
664
692
  const rc = new import_neko_scheduler.Scheduler();
665
693
  rc.setErrorHandler((err, job) => {
666
694
  logger().error({
@@ -672,7 +700,7 @@ var scheduler = (0, import_neko_helper2.createSingleton)(() => {
672
700
  return rc;
673
701
  });
674
702
  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") => {
703
+ var storage = (0, import_neko_helper3.createSingleton)((label = "default") => {
676
704
  let storage_config = import_neko_config.config.get(["storages", label].join("."));
677
705
  const provider = import_neko_storage2.StorageProviderFactory.create(
678
706
  storage_config.provider,
@@ -680,7 +708,7 @@ var storage = (0, import_neko_helper2.createSingleton)((label = "default") => {
680
708
  );
681
709
  return new import_neko_storage2.Storage(provider);
682
710
  });
683
- var cli = (0, import_neko_helper2.createSingleton)(() => {
711
+ var cli = (0, import_neko_helper3.createSingleton)(() => {
684
712
  const [node, app, ...args] = process.argv;
685
713
  return new import_clipanion.Cli({
686
714
  binaryLabel: `My Application`,
@@ -688,13 +716,13 @@ var cli = (0, import_neko_helper2.createSingleton)(() => {
688
716
  binaryVersion: `1.0.0`
689
717
  });
690
718
  });
691
- var httpServer = (0, import_neko_helper2.createSingleton)(() => {
719
+ var httpServer = (0, import_neko_helper3.createSingleton)(() => {
692
720
  const server = new http_exports.HttpServer();
693
721
  server.setErrorHandler(handleHttpErrors);
694
722
  server.setRouter(router());
695
723
  return server;
696
724
  });
697
- var logger = (0, import_neko_helper2.createSingleton)((label) => {
725
+ var logger = (0, import_neko_helper3.createSingleton)((label) => {
698
726
  const logger_config = import_neko_config.config.get(["loggers", label].join("."));
699
727
  const rc = new import_neko_logger.Logger(logger_config);
700
728
  rc.setExtrasFunction((message) => {
@@ -703,7 +731,7 @@ var logger = (0, import_neko_helper2.createSingleton)((label) => {
703
731
  });
704
732
  return rc;
705
733
  });
706
- var mailer = (0, import_neko_helper2.createSingleton)((label) => {
734
+ var mailer = (0, import_neko_helper3.createSingleton)((label) => {
707
735
  const mailer_config = import_neko_config.config.get(["mailer", label].join("."));
708
736
  const provider = import_neko_mailer2.MailerProviderFactory.create(
709
737
  mailer_config.provider,
@@ -712,7 +740,7 @@ var mailer = (0, import_neko_helper2.createSingleton)((label) => {
712
740
  const rc = new import_neko_mailer2.Mailer(provider);
713
741
  return rc;
714
742
  });
715
- var queue = (0, import_neko_helper2.createSingleton)((label) => {
743
+ var queue = (0, import_neko_helper3.createSingleton)((label) => {
716
744
  const queue_config = import_neko_config.config.get(["queues", label].join("."));
717
745
  if (!queue_config) {
718
746
  throw new Error(`Queue configuration for '${label}' not found`);
@@ -723,7 +751,7 @@ var queue = (0, import_neko_helper2.createSingleton)((label) => {
723
751
  );
724
752
  return new import_neko_queue2.QueueConnection(provider);
725
753
  });
726
- var cache = (0, import_neko_helper2.createSingleton)((label) => {
754
+ var cache = (0, import_neko_helper3.createSingleton)((label) => {
727
755
  const cache_config = import_neko_config.config.get(["caches", label].join("."));
728
756
  if (!cache_config) {
729
757
  throw new Error(`Cache configuration for '${label}' not found`);
@@ -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,12 +672,24 @@ 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)(() => {
691
+ var router = (0, import_neko_helper3.createSingleton)(() => new Router());
692
+ var scheduler = (0, import_neko_helper3.createSingleton)(() => {
665
693
  const rc = new import_neko_scheduler.Scheduler();
666
694
  rc.setErrorHandler((err, job) => {
667
695
  logger().error({
@@ -673,7 +701,7 @@ var scheduler = (0, import_neko_helper2.createSingleton)(() => {
673
701
  return rc;
674
702
  });
675
703
  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") => {
704
+ var storage = (0, import_neko_helper3.createSingleton)((label = "default") => {
677
705
  let storage_config = import_neko_config.config.get(["storages", label].join("."));
678
706
  const provider = import_neko_storage2.StorageProviderFactory.create(
679
707
  storage_config.provider,
@@ -681,7 +709,7 @@ var storage = (0, import_neko_helper2.createSingleton)((label = "default") => {
681
709
  );
682
710
  return new import_neko_storage2.Storage(provider);
683
711
  });
684
- var cli = (0, import_neko_helper2.createSingleton)(() => {
712
+ var cli = (0, import_neko_helper3.createSingleton)(() => {
685
713
  const [node, app, ...args] = process.argv;
686
714
  return new import_clipanion.Cli({
687
715
  binaryLabel: `My Application`,
@@ -689,13 +717,13 @@ var cli = (0, import_neko_helper2.createSingleton)(() => {
689
717
  binaryVersion: `1.0.0`
690
718
  });
691
719
  });
692
- var httpServer = (0, import_neko_helper2.createSingleton)(() => {
720
+ var httpServer = (0, import_neko_helper3.createSingleton)(() => {
693
721
  const server = new http_exports.HttpServer();
694
722
  server.setErrorHandler(handleHttpErrors);
695
723
  server.setRouter(router());
696
724
  return server;
697
725
  });
698
- var logger = (0, import_neko_helper2.createSingleton)((label) => {
726
+ var logger = (0, import_neko_helper3.createSingleton)((label) => {
699
727
  const logger_config = import_neko_config.config.get(["loggers", label].join("."));
700
728
  const rc = new import_neko_logger.Logger(logger_config);
701
729
  rc.setExtrasFunction((message) => {
@@ -704,7 +732,7 @@ var logger = (0, import_neko_helper2.createSingleton)((label) => {
704
732
  });
705
733
  return rc;
706
734
  });
707
- var mailer = (0, import_neko_helper2.createSingleton)((label) => {
735
+ var mailer = (0, import_neko_helper3.createSingleton)((label) => {
708
736
  const mailer_config = import_neko_config.config.get(["mailer", label].join("."));
709
737
  const provider = import_neko_mailer2.MailerProviderFactory.create(
710
738
  mailer_config.provider,
@@ -713,7 +741,7 @@ var mailer = (0, import_neko_helper2.createSingleton)((label) => {
713
741
  const rc = new import_neko_mailer2.Mailer(provider);
714
742
  return rc;
715
743
  });
716
- var queue = (0, import_neko_helper2.createSingleton)((label) => {
744
+ var queue = (0, import_neko_helper3.createSingleton)((label) => {
717
745
  const queue_config = import_neko_config.config.get(["queues", label].join("."));
718
746
  if (!queue_config) {
719
747
  throw new Error(`Queue configuration for '${label}' not found`);
@@ -724,7 +752,7 @@ var queue = (0, import_neko_helper2.createSingleton)((label) => {
724
752
  );
725
753
  return new import_neko_queue2.QueueConnection(provider);
726
754
  });
727
- var cache = (0, import_neko_helper2.createSingleton)((label) => {
755
+ var cache = (0, import_neko_helper3.createSingleton)((label) => {
728
756
  const cache_config = import_neko_config.config.get(["caches", label].join("."));
729
757
  if (!cache_config) {
730
758
  throw new Error(`Cache configuration for '${label}' not found`);