@devbro/pashmak 0.1.47 → 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.
- package/dist/DatabaseServiceProvider.d.mts +4 -1
- package/dist/DatabaseServiceProvider.mjs +5 -2
- package/dist/DatabaseServiceProvider.mjs.map +1 -1
- package/dist/app/console/StartCommand.d.mts +1 -0
- package/dist/app/console/StartCommand.mjs +5 -2
- package/dist/app/console/StartCommand.mjs.map +1 -1
- package/dist/app/console/generate/GenerateApiDocsCommand.d.mts +34 -2
- package/dist/app/console/generate/GenerateApiDocsCommand.mjs +183 -100
- package/dist/app/console/generate/GenerateApiDocsCommand.mjs.map +1 -1
- package/dist/app/console/project/base_project/src/config/storages.ts.tpl +2 -2
- package/dist/bin/DatabaseServiceProvider.cjs +8 -2
- package/dist/bin/app/console/DefaultCommand.cjs +64 -32
- package/dist/bin/app/console/KeyGenerateCommand.cjs +64 -32
- package/dist/bin/app/console/StartCommand.cjs +69 -34
- package/dist/bin/app/console/generate/GenerateApiDocsCommand.cjs +248 -133
- package/dist/bin/app/console/generate/GenerateControllerCommand.cjs +64 -32
- package/dist/bin/app/console/generate/index.cjs +248 -133
- package/dist/bin/app/console/index.cjs +253 -135
- package/dist/bin/app/console/migrate/GenerateMigrateCommand.cjs +64 -32
- package/dist/bin/app/console/migrate/MigrateCommand.cjs +64 -32
- package/dist/bin/app/console/migrate/MigrateRollbackCommand.cjs +64 -32
- package/dist/bin/app/console/migrate/index.cjs +64 -32
- package/dist/bin/app/console/queue/GenerateQueueMigrateCommand.cjs +64 -32
- package/dist/bin/cache.cjs +64 -32
- package/dist/bin/facades.cjs +64 -32
- package/dist/bin/factories.cjs +64 -32
- package/dist/bin/http.cjs +739 -0
- package/dist/bin/index.cjs +264 -141
- package/dist/bin/middlewares.cjs +66 -34
- package/dist/bin/queue.cjs +64 -32
- package/dist/bin/router.cjs +4 -8
- package/dist/config.d.mts +0 -1
- package/dist/facades.mjs +2 -13
- package/dist/facades.mjs.map +1 -1
- package/dist/factories.mjs +45 -2
- package/dist/factories.mjs.map +1 -1
- package/dist/http.d.mts +4 -0
- package/dist/http.mjs +20 -0
- package/dist/http.mjs.map +1 -1
- package/dist/queue.d.mts +1 -1
- package/dist/queue.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -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 (
|
|
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,13 +108,8 @@ 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
|
-
|
|
115
|
-
this.response.end();
|
|
116
|
-
return rc;
|
|
112
|
+
return await this.runMiddlewares(this.middlewares, this.request, this.response);
|
|
117
113
|
}
|
|
118
114
|
prepareOutputJsonFormat(obj) {
|
|
119
115
|
function traverse(value) {
|
|
@@ -247,7 +243,7 @@ var Route = class {
|
|
|
247
243
|
i = start;
|
|
248
244
|
} else if (char === "*") {
|
|
249
245
|
let start = i + 1;
|
|
250
|
-
while (start < path2.length && /[a-zA-Z0-9_
|
|
246
|
+
while (start < path2.length && /[a-zA-Z0-9_]/.test(path2[start])) {
|
|
251
247
|
start++;
|
|
252
248
|
}
|
|
253
249
|
tokens.push({ type: "WILDCARD", value: path2.slice(i + 1, start) });
|
|
@@ -458,7 +454,7 @@ var Router = class {
|
|
|
458
454
|
|
|
459
455
|
// src/facades.mts
|
|
460
456
|
var import_neko_scheduler = require("@devbro/neko-scheduler");
|
|
461
|
-
var
|
|
457
|
+
var import_neko_helper3 = require("@devbro/neko-helper");
|
|
462
458
|
var import_neko_context3 = require("@devbro/neko-context");
|
|
463
459
|
var import_neko_storage2 = require("@devbro/neko-storage");
|
|
464
460
|
var import_neko_mailer2 = require("@devbro/neko-mailer");
|
|
@@ -467,7 +463,24 @@ var import_clipanion = require("clipanion");
|
|
|
467
463
|
|
|
468
464
|
// src/http.mts
|
|
469
465
|
var http_exports = {};
|
|
466
|
+
__export(http_exports, {
|
|
467
|
+
handleHttpErrors: () => handleHttpErrors
|
|
468
|
+
});
|
|
469
|
+
var import_neko_http = require("@devbro/neko-http");
|
|
470
470
|
__reExport(http_exports, require("@devbro/neko-http"));
|
|
471
|
+
async function handleHttpErrors(err, req, res) {
|
|
472
|
+
if (err instanceof import_neko_http.HttpError) {
|
|
473
|
+
res.writeHead(err.statusCode, { "Content-Type": "application/json" });
|
|
474
|
+
res.write(JSON.stringify({ message: err.message, error: err.code }));
|
|
475
|
+
logger().warn({ msg: "HttpError: " + err.message, err });
|
|
476
|
+
return;
|
|
477
|
+
} else {
|
|
478
|
+
logger().error({ msg: "Error: " + err.message, err });
|
|
479
|
+
}
|
|
480
|
+
res.writeHead(500, { "Content-Type": "application/json" });
|
|
481
|
+
res.write(JSON.stringify({ error: "Internal Server Error" }));
|
|
482
|
+
}
|
|
483
|
+
__name(handleHttpErrors, "handleHttpErrors");
|
|
471
484
|
|
|
472
485
|
// src/facades.mts
|
|
473
486
|
var import_neko_logger = require("@devbro/neko-logger");
|
|
@@ -482,7 +495,7 @@ __export(queue_exports, {
|
|
|
482
495
|
DatabaseTransport: () => DatabaseTransport
|
|
483
496
|
});
|
|
484
497
|
__reExport(queue_exports, require("@devbro/neko-queue"));
|
|
485
|
-
var
|
|
498
|
+
var import_neko_helper2 = require("@devbro/neko-helper");
|
|
486
499
|
var import_neko_context2 = require("@devbro/neko-context");
|
|
487
500
|
var DatabaseTransport = class {
|
|
488
501
|
static {
|
|
@@ -543,7 +556,7 @@ var DatabaseTransport = class {
|
|
|
543
556
|
}, "processMessage");
|
|
544
557
|
constructor(config2 = {}) {
|
|
545
558
|
this.config = { ...this.config, ...config2 };
|
|
546
|
-
this.repeater = (0,
|
|
559
|
+
this.repeater = (0, import_neko_helper2.createRepeater)(
|
|
547
560
|
this.processMessage,
|
|
548
561
|
this.config.listen_interval * 1e3
|
|
549
562
|
);
|
|
@@ -611,6 +624,24 @@ import_neko_queue.QueueTransportFactory.register("database", (opt) => {
|
|
|
611
624
|
import_neko_queue.QueueTransportFactory.register("memory", (opt) => {
|
|
612
625
|
return new import_neko_queue.MemoryTransport(opt);
|
|
613
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
|
+
});
|
|
614
645
|
var CacheProviderFactory = class _CacheProviderFactory {
|
|
615
646
|
static {
|
|
616
647
|
__name(this, "CacheProviderFactory");
|
|
@@ -641,12 +672,24 @@ import_neko_storage.StorageProviderFactory.register("local", (opt) => {
|
|
|
641
672
|
import_neko_storage.StorageProviderFactory.register("s3", (opt) => {
|
|
642
673
|
return new import_neko_storage.AWSS3StorageProvider(opt);
|
|
643
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
|
+
});
|
|
644
687
|
|
|
645
688
|
// src/facades.mts
|
|
646
689
|
var import_neko_cache2 = require("@devbro/neko-cache");
|
|
647
690
|
var import_neko_queue2 = require("@devbro/neko-queue");
|
|
648
|
-
var router = (0,
|
|
649
|
-
var scheduler = (0,
|
|
691
|
+
var router = (0, import_neko_helper3.createSingleton)(() => new Router());
|
|
692
|
+
var scheduler = (0, import_neko_helper3.createSingleton)(() => {
|
|
650
693
|
const rc = new import_neko_scheduler.Scheduler();
|
|
651
694
|
rc.setErrorHandler((err, job) => {
|
|
652
695
|
logger().error({
|
|
@@ -658,7 +701,7 @@ var scheduler = (0, import_neko_helper2.createSingleton)(() => {
|
|
|
658
701
|
return rc;
|
|
659
702
|
});
|
|
660
703
|
var db = /* @__PURE__ */ __name((label = "default") => (0, import_neko_context3.ctx)().getOrThrow(["database", label]), "db");
|
|
661
|
-
var storage = (0,
|
|
704
|
+
var storage = (0, import_neko_helper3.createSingleton)((label = "default") => {
|
|
662
705
|
let storage_config = import_neko_config.config.get(["storages", label].join("."));
|
|
663
706
|
const provider = import_neko_storage2.StorageProviderFactory.create(
|
|
664
707
|
storage_config.provider,
|
|
@@ -666,7 +709,7 @@ var storage = (0, import_neko_helper2.createSingleton)((label = "default") => {
|
|
|
666
709
|
);
|
|
667
710
|
return new import_neko_storage2.Storage(provider);
|
|
668
711
|
});
|
|
669
|
-
var cli = (0,
|
|
712
|
+
var cli = (0, import_neko_helper3.createSingleton)(() => {
|
|
670
713
|
const [node, app, ...args] = process.argv;
|
|
671
714
|
return new import_clipanion.Cli({
|
|
672
715
|
binaryLabel: `My Application`,
|
|
@@ -674,24 +717,13 @@ var cli = (0, import_neko_helper2.createSingleton)(() => {
|
|
|
674
717
|
binaryVersion: `1.0.0`
|
|
675
718
|
});
|
|
676
719
|
});
|
|
677
|
-
var httpServer = (0,
|
|
720
|
+
var httpServer = (0, import_neko_helper3.createSingleton)(() => {
|
|
678
721
|
const server = new http_exports.HttpServer();
|
|
679
|
-
server.setErrorHandler(
|
|
680
|
-
if (err instanceof http_exports.HttpError) {
|
|
681
|
-
res.writeHead(err.statusCode, { "Content-Type": "application/json" });
|
|
682
|
-
res.end(JSON.stringify({ message: err.message, error: err.code }));
|
|
683
|
-
logger().warn({ msg: "HttpError: " + err.message, err });
|
|
684
|
-
return;
|
|
685
|
-
} else {
|
|
686
|
-
logger().error({ msg: "Error: " + err.message, err });
|
|
687
|
-
}
|
|
688
|
-
res.writeHead(500, { "Content-Type": "" });
|
|
689
|
-
res.end(JSON.stringify({ error: "Internal Server Error" }));
|
|
690
|
-
});
|
|
722
|
+
server.setErrorHandler(handleHttpErrors);
|
|
691
723
|
server.setRouter(router());
|
|
692
724
|
return server;
|
|
693
725
|
});
|
|
694
|
-
var logger = (0,
|
|
726
|
+
var logger = (0, import_neko_helper3.createSingleton)((label) => {
|
|
695
727
|
const logger_config = import_neko_config.config.get(["loggers", label].join("."));
|
|
696
728
|
const rc = new import_neko_logger.Logger(logger_config);
|
|
697
729
|
rc.setExtrasFunction((message) => {
|
|
@@ -700,7 +732,7 @@ var logger = (0, import_neko_helper2.createSingleton)((label) => {
|
|
|
700
732
|
});
|
|
701
733
|
return rc;
|
|
702
734
|
});
|
|
703
|
-
var mailer = (0,
|
|
735
|
+
var mailer = (0, import_neko_helper3.createSingleton)((label) => {
|
|
704
736
|
const mailer_config = import_neko_config.config.get(["mailer", label].join("."));
|
|
705
737
|
const provider = import_neko_mailer2.MailerProviderFactory.create(
|
|
706
738
|
mailer_config.provider,
|
|
@@ -709,7 +741,7 @@ var mailer = (0, import_neko_helper2.createSingleton)((label) => {
|
|
|
709
741
|
const rc = new import_neko_mailer2.Mailer(provider);
|
|
710
742
|
return rc;
|
|
711
743
|
});
|
|
712
|
-
var queue = (0,
|
|
744
|
+
var queue = (0, import_neko_helper3.createSingleton)((label) => {
|
|
713
745
|
const queue_config = import_neko_config.config.get(["queues", label].join("."));
|
|
714
746
|
if (!queue_config) {
|
|
715
747
|
throw new Error(`Queue configuration for '${label}' not found`);
|
|
@@ -720,7 +752,7 @@ var queue = (0, import_neko_helper2.createSingleton)((label) => {
|
|
|
720
752
|
);
|
|
721
753
|
return new import_neko_queue2.QueueConnection(provider);
|
|
722
754
|
});
|
|
723
|
-
var cache = (0,
|
|
755
|
+
var cache = (0, import_neko_helper3.createSingleton)((label) => {
|
|
724
756
|
const cache_config = import_neko_config.config.get(["caches", label].join("."));
|
|
725
757
|
if (!cache_config) {
|
|
726
758
|
throw new Error(`Cache configuration for '${label}' not found`);
|
|
@@ -81,6 +81,7 @@ var MiddlewareFactory = class {
|
|
|
81
81
|
};
|
|
82
82
|
|
|
83
83
|
// ../neko-router/dist/CompiledRoute.mjs
|
|
84
|
+
var import_neko_helper = require("@devbro/neko-helper");
|
|
84
85
|
var CompiledRoute = class {
|
|
85
86
|
static {
|
|
86
87
|
__name(this, "CompiledRoute");
|
|
@@ -101,7 +102,7 @@ var CompiledRoute = class {
|
|
|
101
102
|
for (const middleware of [...this.globalMiddlewares, ...this.route.getMiddlewares()]) {
|
|
102
103
|
if (middleware instanceof Middleware) {
|
|
103
104
|
this.middlewares.push(middleware);
|
|
104
|
-
} else if (
|
|
105
|
+
} else if ((0, import_neko_helper.isClass)(middleware)) {
|
|
105
106
|
this.middlewares.push(middleware.getInstance({}));
|
|
106
107
|
} else if (typeof middleware === "function") {
|
|
107
108
|
this.middlewares.push(MiddlewareFactory.create(middleware));
|
|
@@ -110,13 +111,8 @@ var CompiledRoute = class {
|
|
|
110
111
|
}
|
|
111
112
|
}
|
|
112
113
|
}
|
|
113
|
-
isClass(func) {
|
|
114
|
-
return typeof func === "function" && /^class\s/.test(Function.prototype.toString.call(func));
|
|
115
|
-
}
|
|
116
114
|
async run() {
|
|
117
|
-
|
|
118
|
-
this.response.end();
|
|
119
|
-
return rc;
|
|
115
|
+
return await this.runMiddlewares(this.middlewares, this.request, this.response);
|
|
120
116
|
}
|
|
121
117
|
prepareOutputJsonFormat(obj) {
|
|
122
118
|
function traverse(value) {
|
|
@@ -250,7 +246,7 @@ var Route = class {
|
|
|
250
246
|
i = start;
|
|
251
247
|
} else if (char === "*") {
|
|
252
248
|
let start = i + 1;
|
|
253
|
-
while (start < path3.length && /[a-zA-Z0-9_
|
|
249
|
+
while (start < path3.length && /[a-zA-Z0-9_]/.test(path3[start])) {
|
|
254
250
|
start++;
|
|
255
251
|
}
|
|
256
252
|
tokens.push({ type: "WILDCARD", value: path3.slice(i + 1, start) });
|
|
@@ -461,7 +457,7 @@ var Router = class {
|
|
|
461
457
|
|
|
462
458
|
// src/facades.mts
|
|
463
459
|
var import_neko_scheduler = require("@devbro/neko-scheduler");
|
|
464
|
-
var
|
|
460
|
+
var import_neko_helper3 = require("@devbro/neko-helper");
|
|
465
461
|
var import_neko_context3 = require("@devbro/neko-context");
|
|
466
462
|
var import_neko_storage2 = require("@devbro/neko-storage");
|
|
467
463
|
var import_neko_mailer2 = require("@devbro/neko-mailer");
|
|
@@ -470,7 +466,24 @@ var import_clipanion = require("clipanion");
|
|
|
470
466
|
|
|
471
467
|
// src/http.mts
|
|
472
468
|
var http_exports = {};
|
|
469
|
+
__export(http_exports, {
|
|
470
|
+
handleHttpErrors: () => handleHttpErrors
|
|
471
|
+
});
|
|
472
|
+
var import_neko_http = require("@devbro/neko-http");
|
|
473
473
|
__reExport(http_exports, require("@devbro/neko-http"));
|
|
474
|
+
async function handleHttpErrors(err, req, res) {
|
|
475
|
+
if (err instanceof import_neko_http.HttpError) {
|
|
476
|
+
res.writeHead(err.statusCode, { "Content-Type": "application/json" });
|
|
477
|
+
res.write(JSON.stringify({ message: err.message, error: err.code }));
|
|
478
|
+
logger().warn({ msg: "HttpError: " + err.message, err });
|
|
479
|
+
return;
|
|
480
|
+
} else {
|
|
481
|
+
logger().error({ msg: "Error: " + err.message, err });
|
|
482
|
+
}
|
|
483
|
+
res.writeHead(500, { "Content-Type": "application/json" });
|
|
484
|
+
res.write(JSON.stringify({ error: "Internal Server Error" }));
|
|
485
|
+
}
|
|
486
|
+
__name(handleHttpErrors, "handleHttpErrors");
|
|
474
487
|
|
|
475
488
|
// src/facades.mts
|
|
476
489
|
var import_neko_logger = require("@devbro/neko-logger");
|
|
@@ -485,7 +498,7 @@ __export(queue_exports, {
|
|
|
485
498
|
DatabaseTransport: () => DatabaseTransport
|
|
486
499
|
});
|
|
487
500
|
__reExport(queue_exports, require("@devbro/neko-queue"));
|
|
488
|
-
var
|
|
501
|
+
var import_neko_helper2 = require("@devbro/neko-helper");
|
|
489
502
|
var import_neko_context2 = require("@devbro/neko-context");
|
|
490
503
|
var DatabaseTransport = class {
|
|
491
504
|
static {
|
|
@@ -546,7 +559,7 @@ var DatabaseTransport = class {
|
|
|
546
559
|
}, "processMessage");
|
|
547
560
|
constructor(config2 = {}) {
|
|
548
561
|
this.config = { ...this.config, ...config2 };
|
|
549
|
-
this.repeater = (0,
|
|
562
|
+
this.repeater = (0, import_neko_helper2.createRepeater)(
|
|
550
563
|
this.processMessage,
|
|
551
564
|
this.config.listen_interval * 1e3
|
|
552
565
|
);
|
|
@@ -614,6 +627,24 @@ import_neko_queue.QueueTransportFactory.register("database", (opt) => {
|
|
|
614
627
|
import_neko_queue.QueueTransportFactory.register("memory", (opt) => {
|
|
615
628
|
return new import_neko_queue.MemoryTransport(opt);
|
|
616
629
|
});
|
|
630
|
+
import_neko_queue.QueueTransportFactory.register("sqs", (opt) => {
|
|
631
|
+
return new import_neko_queue.AwsSqsTransport(opt);
|
|
632
|
+
});
|
|
633
|
+
import_neko_queue.QueueTransportFactory.register("amqp", (opt) => {
|
|
634
|
+
return new import_neko_queue.AmqpTransport(opt);
|
|
635
|
+
});
|
|
636
|
+
import_neko_queue.QueueTransportFactory.register("redis", (opt) => {
|
|
637
|
+
return new import_neko_queue.RedisTransport(opt);
|
|
638
|
+
});
|
|
639
|
+
import_neko_queue.QueueTransportFactory.register("async", (opt) => {
|
|
640
|
+
return new import_neko_queue.AsyncTransport();
|
|
641
|
+
});
|
|
642
|
+
import_neko_queue.QueueTransportFactory.register("azure_service_bus", (opt) => {
|
|
643
|
+
return new import_neko_queue.AzureServiceBusTransport(opt);
|
|
644
|
+
});
|
|
645
|
+
import_neko_queue.QueueTransportFactory.register("google_pubsub", (opt) => {
|
|
646
|
+
return new import_neko_queue.GooglePubSubTransport(opt);
|
|
647
|
+
});
|
|
617
648
|
var CacheProviderFactory = class _CacheProviderFactory {
|
|
618
649
|
static {
|
|
619
650
|
__name(this, "CacheProviderFactory");
|
|
@@ -644,12 +675,24 @@ import_neko_storage.StorageProviderFactory.register("local", (opt) => {
|
|
|
644
675
|
import_neko_storage.StorageProviderFactory.register("s3", (opt) => {
|
|
645
676
|
return new import_neko_storage.AWSS3StorageProvider(opt);
|
|
646
677
|
});
|
|
678
|
+
import_neko_storage.StorageProviderFactory.register("gcp", (opt) => {
|
|
679
|
+
return new import_neko_storage.GCPStorageProvider(opt);
|
|
680
|
+
});
|
|
681
|
+
import_neko_storage.StorageProviderFactory.register("azure", (opt) => {
|
|
682
|
+
return new import_neko_storage.AzureBlobStorageProvider(opt);
|
|
683
|
+
});
|
|
684
|
+
import_neko_storage.StorageProviderFactory.register("ftp", (opt) => {
|
|
685
|
+
return new import_neko_storage.FTPStorageProvider(opt);
|
|
686
|
+
});
|
|
687
|
+
import_neko_storage.StorageProviderFactory.register("sftp", (opt) => {
|
|
688
|
+
return new import_neko_storage.SFTPStorageProvider(opt);
|
|
689
|
+
});
|
|
647
690
|
|
|
648
691
|
// src/facades.mts
|
|
649
692
|
var import_neko_cache2 = require("@devbro/neko-cache");
|
|
650
693
|
var import_neko_queue2 = require("@devbro/neko-queue");
|
|
651
|
-
var router = (0,
|
|
652
|
-
var scheduler = (0,
|
|
694
|
+
var router = (0, import_neko_helper3.createSingleton)(() => new Router());
|
|
695
|
+
var scheduler = (0, import_neko_helper3.createSingleton)(() => {
|
|
653
696
|
const rc = new import_neko_scheduler.Scheduler();
|
|
654
697
|
rc.setErrorHandler((err, job) => {
|
|
655
698
|
logger().error({
|
|
@@ -661,7 +704,7 @@ var scheduler = (0, import_neko_helper2.createSingleton)(() => {
|
|
|
661
704
|
return rc;
|
|
662
705
|
});
|
|
663
706
|
var db = /* @__PURE__ */ __name((label = "default") => (0, import_neko_context3.ctx)().getOrThrow(["database", label]), "db");
|
|
664
|
-
var storage = (0,
|
|
707
|
+
var storage = (0, import_neko_helper3.createSingleton)((label = "default") => {
|
|
665
708
|
let storage_config = import_neko_config.config.get(["storages", label].join("."));
|
|
666
709
|
const provider = import_neko_storage2.StorageProviderFactory.create(
|
|
667
710
|
storage_config.provider,
|
|
@@ -669,7 +712,7 @@ var storage = (0, import_neko_helper2.createSingleton)((label = "default") => {
|
|
|
669
712
|
);
|
|
670
713
|
return new import_neko_storage2.Storage(provider);
|
|
671
714
|
});
|
|
672
|
-
var cli = (0,
|
|
715
|
+
var cli = (0, import_neko_helper3.createSingleton)(() => {
|
|
673
716
|
const [node, app, ...args] = process.argv;
|
|
674
717
|
return new import_clipanion.Cli({
|
|
675
718
|
binaryLabel: `My Application`,
|
|
@@ -677,24 +720,13 @@ var cli = (0, import_neko_helper2.createSingleton)(() => {
|
|
|
677
720
|
binaryVersion: `1.0.0`
|
|
678
721
|
});
|
|
679
722
|
});
|
|
680
|
-
var httpServer = (0,
|
|
723
|
+
var httpServer = (0, import_neko_helper3.createSingleton)(() => {
|
|
681
724
|
const server = new http_exports.HttpServer();
|
|
682
|
-
server.setErrorHandler(
|
|
683
|
-
if (err instanceof http_exports.HttpError) {
|
|
684
|
-
res.writeHead(err.statusCode, { "Content-Type": "application/json" });
|
|
685
|
-
res.end(JSON.stringify({ message: err.message, error: err.code }));
|
|
686
|
-
logger().warn({ msg: "HttpError: " + err.message, err });
|
|
687
|
-
return;
|
|
688
|
-
} else {
|
|
689
|
-
logger().error({ msg: "Error: " + err.message, err });
|
|
690
|
-
}
|
|
691
|
-
res.writeHead(500, { "Content-Type": "" });
|
|
692
|
-
res.end(JSON.stringify({ error: "Internal Server Error" }));
|
|
693
|
-
});
|
|
725
|
+
server.setErrorHandler(handleHttpErrors);
|
|
694
726
|
server.setRouter(router());
|
|
695
727
|
return server;
|
|
696
728
|
});
|
|
697
|
-
var logger = (0,
|
|
729
|
+
var logger = (0, import_neko_helper3.createSingleton)((label) => {
|
|
698
730
|
const logger_config = import_neko_config.config.get(["loggers", label].join("."));
|
|
699
731
|
const rc = new import_neko_logger.Logger(logger_config);
|
|
700
732
|
rc.setExtrasFunction((message) => {
|
|
@@ -703,7 +735,7 @@ var logger = (0, import_neko_helper2.createSingleton)((label) => {
|
|
|
703
735
|
});
|
|
704
736
|
return rc;
|
|
705
737
|
});
|
|
706
|
-
var mailer = (0,
|
|
738
|
+
var mailer = (0, import_neko_helper3.createSingleton)((label) => {
|
|
707
739
|
const mailer_config = import_neko_config.config.get(["mailer", label].join("."));
|
|
708
740
|
const provider = import_neko_mailer2.MailerProviderFactory.create(
|
|
709
741
|
mailer_config.provider,
|
|
@@ -712,7 +744,7 @@ var mailer = (0, import_neko_helper2.createSingleton)((label) => {
|
|
|
712
744
|
const rc = new import_neko_mailer2.Mailer(provider);
|
|
713
745
|
return rc;
|
|
714
746
|
});
|
|
715
|
-
var queue = (0,
|
|
747
|
+
var queue = (0, import_neko_helper3.createSingleton)((label) => {
|
|
716
748
|
const queue_config = import_neko_config.config.get(["queues", label].join("."));
|
|
717
749
|
if (!queue_config) {
|
|
718
750
|
throw new Error(`Queue configuration for '${label}' not found`);
|
|
@@ -723,7 +755,7 @@ var queue = (0, import_neko_helper2.createSingleton)((label) => {
|
|
|
723
755
|
);
|
|
724
756
|
return new import_neko_queue2.QueueConnection(provider);
|
|
725
757
|
});
|
|
726
|
-
var cache = (0,
|
|
758
|
+
var cache = (0, import_neko_helper3.createSingleton)((label) => {
|
|
727
759
|
const cache_config = import_neko_config.config.get(["caches", label].join("."));
|
|
728
760
|
if (!cache_config) {
|
|
729
761
|
throw new Error(`Cache configuration for '${label}' not found`);
|
|
@@ -79,6 +79,7 @@ var MiddlewareFactory = class {
|
|
|
79
79
|
};
|
|
80
80
|
|
|
81
81
|
// ../neko-router/dist/CompiledRoute.mjs
|
|
82
|
+
var import_neko_helper = require("@devbro/neko-helper");
|
|
82
83
|
var CompiledRoute = class {
|
|
83
84
|
static {
|
|
84
85
|
__name(this, "CompiledRoute");
|
|
@@ -99,7 +100,7 @@ var CompiledRoute = class {
|
|
|
99
100
|
for (const middleware of [...this.globalMiddlewares, ...this.route.getMiddlewares()]) {
|
|
100
101
|
if (middleware instanceof Middleware) {
|
|
101
102
|
this.middlewares.push(middleware);
|
|
102
|
-
} else if (
|
|
103
|
+
} else if ((0, import_neko_helper.isClass)(middleware)) {
|
|
103
104
|
this.middlewares.push(middleware.getInstance({}));
|
|
104
105
|
} else if (typeof middleware === "function") {
|
|
105
106
|
this.middlewares.push(MiddlewareFactory.create(middleware));
|
|
@@ -108,13 +109,8 @@ var CompiledRoute = class {
|
|
|
108
109
|
}
|
|
109
110
|
}
|
|
110
111
|
}
|
|
111
|
-
isClass(func) {
|
|
112
|
-
return typeof func === "function" && /^class\s/.test(Function.prototype.toString.call(func));
|
|
113
|
-
}
|
|
114
112
|
async run() {
|
|
115
|
-
|
|
116
|
-
this.response.end();
|
|
117
|
-
return rc;
|
|
113
|
+
return await this.runMiddlewares(this.middlewares, this.request, this.response);
|
|
118
114
|
}
|
|
119
115
|
prepareOutputJsonFormat(obj) {
|
|
120
116
|
function traverse(value) {
|
|
@@ -248,7 +244,7 @@ var Route = class {
|
|
|
248
244
|
i = start;
|
|
249
245
|
} else if (char === "*") {
|
|
250
246
|
let start = i + 1;
|
|
251
|
-
while (start < path2.length && /[a-zA-Z0-9_
|
|
247
|
+
while (start < path2.length && /[a-zA-Z0-9_]/.test(path2[start])) {
|
|
252
248
|
start++;
|
|
253
249
|
}
|
|
254
250
|
tokens.push({ type: "WILDCARD", value: path2.slice(i + 1, start) });
|
|
@@ -459,7 +455,7 @@ var Router = class {
|
|
|
459
455
|
|
|
460
456
|
// src/facades.mts
|
|
461
457
|
var import_neko_scheduler = require("@devbro/neko-scheduler");
|
|
462
|
-
var
|
|
458
|
+
var import_neko_helper3 = require("@devbro/neko-helper");
|
|
463
459
|
var import_neko_context3 = require("@devbro/neko-context");
|
|
464
460
|
var import_neko_storage2 = require("@devbro/neko-storage");
|
|
465
461
|
var import_neko_mailer2 = require("@devbro/neko-mailer");
|
|
@@ -468,7 +464,24 @@ var import_clipanion = require("clipanion");
|
|
|
468
464
|
|
|
469
465
|
// src/http.mts
|
|
470
466
|
var http_exports = {};
|
|
467
|
+
__export(http_exports, {
|
|
468
|
+
handleHttpErrors: () => handleHttpErrors
|
|
469
|
+
});
|
|
470
|
+
var import_neko_http = require("@devbro/neko-http");
|
|
471
471
|
__reExport(http_exports, require("@devbro/neko-http"));
|
|
472
|
+
async function handleHttpErrors(err, req, res) {
|
|
473
|
+
if (err instanceof import_neko_http.HttpError) {
|
|
474
|
+
res.writeHead(err.statusCode, { "Content-Type": "application/json" });
|
|
475
|
+
res.write(JSON.stringify({ message: err.message, error: err.code }));
|
|
476
|
+
logger().warn({ msg: "HttpError: " + err.message, err });
|
|
477
|
+
return;
|
|
478
|
+
} else {
|
|
479
|
+
logger().error({ msg: "Error: " + err.message, err });
|
|
480
|
+
}
|
|
481
|
+
res.writeHead(500, { "Content-Type": "application/json" });
|
|
482
|
+
res.write(JSON.stringify({ error: "Internal Server Error" }));
|
|
483
|
+
}
|
|
484
|
+
__name(handleHttpErrors, "handleHttpErrors");
|
|
472
485
|
|
|
473
486
|
// src/facades.mts
|
|
474
487
|
var import_neko_logger = require("@devbro/neko-logger");
|
|
@@ -483,7 +496,7 @@ __export(queue_exports, {
|
|
|
483
496
|
DatabaseTransport: () => DatabaseTransport
|
|
484
497
|
});
|
|
485
498
|
__reExport(queue_exports, require("@devbro/neko-queue"));
|
|
486
|
-
var
|
|
499
|
+
var import_neko_helper2 = require("@devbro/neko-helper");
|
|
487
500
|
var import_neko_context2 = require("@devbro/neko-context");
|
|
488
501
|
var DatabaseTransport = class {
|
|
489
502
|
static {
|
|
@@ -544,7 +557,7 @@ var DatabaseTransport = class {
|
|
|
544
557
|
}, "processMessage");
|
|
545
558
|
constructor(config3 = {}) {
|
|
546
559
|
this.config = { ...this.config, ...config3 };
|
|
547
|
-
this.repeater = (0,
|
|
560
|
+
this.repeater = (0, import_neko_helper2.createRepeater)(
|
|
548
561
|
this.processMessage,
|
|
549
562
|
this.config.listen_interval * 1e3
|
|
550
563
|
);
|
|
@@ -612,6 +625,24 @@ import_neko_queue.QueueTransportFactory.register("database", (opt) => {
|
|
|
612
625
|
import_neko_queue.QueueTransportFactory.register("memory", (opt) => {
|
|
613
626
|
return new import_neko_queue.MemoryTransport(opt);
|
|
614
627
|
});
|
|
628
|
+
import_neko_queue.QueueTransportFactory.register("sqs", (opt) => {
|
|
629
|
+
return new import_neko_queue.AwsSqsTransport(opt);
|
|
630
|
+
});
|
|
631
|
+
import_neko_queue.QueueTransportFactory.register("amqp", (opt) => {
|
|
632
|
+
return new import_neko_queue.AmqpTransport(opt);
|
|
633
|
+
});
|
|
634
|
+
import_neko_queue.QueueTransportFactory.register("redis", (opt) => {
|
|
635
|
+
return new import_neko_queue.RedisTransport(opt);
|
|
636
|
+
});
|
|
637
|
+
import_neko_queue.QueueTransportFactory.register("async", (opt) => {
|
|
638
|
+
return new import_neko_queue.AsyncTransport();
|
|
639
|
+
});
|
|
640
|
+
import_neko_queue.QueueTransportFactory.register("azure_service_bus", (opt) => {
|
|
641
|
+
return new import_neko_queue.AzureServiceBusTransport(opt);
|
|
642
|
+
});
|
|
643
|
+
import_neko_queue.QueueTransportFactory.register("google_pubsub", (opt) => {
|
|
644
|
+
return new import_neko_queue.GooglePubSubTransport(opt);
|
|
645
|
+
});
|
|
615
646
|
var CacheProviderFactory = class _CacheProviderFactory {
|
|
616
647
|
static {
|
|
617
648
|
__name(this, "CacheProviderFactory");
|
|
@@ -642,12 +673,24 @@ import_neko_storage.StorageProviderFactory.register("local", (opt) => {
|
|
|
642
673
|
import_neko_storage.StorageProviderFactory.register("s3", (opt) => {
|
|
643
674
|
return new import_neko_storage.AWSS3StorageProvider(opt);
|
|
644
675
|
});
|
|
676
|
+
import_neko_storage.StorageProviderFactory.register("gcp", (opt) => {
|
|
677
|
+
return new import_neko_storage.GCPStorageProvider(opt);
|
|
678
|
+
});
|
|
679
|
+
import_neko_storage.StorageProviderFactory.register("azure", (opt) => {
|
|
680
|
+
return new import_neko_storage.AzureBlobStorageProvider(opt);
|
|
681
|
+
});
|
|
682
|
+
import_neko_storage.StorageProviderFactory.register("ftp", (opt) => {
|
|
683
|
+
return new import_neko_storage.FTPStorageProvider(opt);
|
|
684
|
+
});
|
|
685
|
+
import_neko_storage.StorageProviderFactory.register("sftp", (opt) => {
|
|
686
|
+
return new import_neko_storage.SFTPStorageProvider(opt);
|
|
687
|
+
});
|
|
645
688
|
|
|
646
689
|
// src/facades.mts
|
|
647
690
|
var import_neko_cache2 = require("@devbro/neko-cache");
|
|
648
691
|
var import_neko_queue2 = require("@devbro/neko-queue");
|
|
649
|
-
var router = (0,
|
|
650
|
-
var scheduler = (0,
|
|
692
|
+
var router = (0, import_neko_helper3.createSingleton)(() => new Router());
|
|
693
|
+
var scheduler = (0, import_neko_helper3.createSingleton)(() => {
|
|
651
694
|
const rc = new import_neko_scheduler.Scheduler();
|
|
652
695
|
rc.setErrorHandler((err, job) => {
|
|
653
696
|
logger().error({
|
|
@@ -659,7 +702,7 @@ var scheduler = (0, import_neko_helper2.createSingleton)(() => {
|
|
|
659
702
|
return rc;
|
|
660
703
|
});
|
|
661
704
|
var db = /* @__PURE__ */ __name((label = "default") => (0, import_neko_context3.ctx)().getOrThrow(["database", label]), "db");
|
|
662
|
-
var storage = (0,
|
|
705
|
+
var storage = (0, import_neko_helper3.createSingleton)((label = "default") => {
|
|
663
706
|
let storage_config = import_neko_config.config.get(["storages", label].join("."));
|
|
664
707
|
const provider = import_neko_storage2.StorageProviderFactory.create(
|
|
665
708
|
storage_config.provider,
|
|
@@ -667,7 +710,7 @@ var storage = (0, import_neko_helper2.createSingleton)((label = "default") => {
|
|
|
667
710
|
);
|
|
668
711
|
return new import_neko_storage2.Storage(provider);
|
|
669
712
|
});
|
|
670
|
-
var cli = (0,
|
|
713
|
+
var cli = (0, import_neko_helper3.createSingleton)(() => {
|
|
671
714
|
const [node, app, ...args] = process.argv;
|
|
672
715
|
return new import_clipanion.Cli({
|
|
673
716
|
binaryLabel: `My Application`,
|
|
@@ -675,24 +718,13 @@ var cli = (0, import_neko_helper2.createSingleton)(() => {
|
|
|
675
718
|
binaryVersion: `1.0.0`
|
|
676
719
|
});
|
|
677
720
|
});
|
|
678
|
-
var httpServer = (0,
|
|
721
|
+
var httpServer = (0, import_neko_helper3.createSingleton)(() => {
|
|
679
722
|
const server = new http_exports.HttpServer();
|
|
680
|
-
server.setErrorHandler(
|
|
681
|
-
if (err instanceof http_exports.HttpError) {
|
|
682
|
-
res.writeHead(err.statusCode, { "Content-Type": "application/json" });
|
|
683
|
-
res.end(JSON.stringify({ message: err.message, error: err.code }));
|
|
684
|
-
logger().warn({ msg: "HttpError: " + err.message, err });
|
|
685
|
-
return;
|
|
686
|
-
} else {
|
|
687
|
-
logger().error({ msg: "Error: " + err.message, err });
|
|
688
|
-
}
|
|
689
|
-
res.writeHead(500, { "Content-Type": "" });
|
|
690
|
-
res.end(JSON.stringify({ error: "Internal Server Error" }));
|
|
691
|
-
});
|
|
723
|
+
server.setErrorHandler(handleHttpErrors);
|
|
692
724
|
server.setRouter(router());
|
|
693
725
|
return server;
|
|
694
726
|
});
|
|
695
|
-
var logger = (0,
|
|
727
|
+
var logger = (0, import_neko_helper3.createSingleton)((label) => {
|
|
696
728
|
const logger_config = import_neko_config.config.get(["loggers", label].join("."));
|
|
697
729
|
const rc = new import_neko_logger.Logger(logger_config);
|
|
698
730
|
rc.setExtrasFunction((message) => {
|
|
@@ -701,7 +733,7 @@ var logger = (0, import_neko_helper2.createSingleton)((label) => {
|
|
|
701
733
|
});
|
|
702
734
|
return rc;
|
|
703
735
|
});
|
|
704
|
-
var mailer = (0,
|
|
736
|
+
var mailer = (0, import_neko_helper3.createSingleton)((label) => {
|
|
705
737
|
const mailer_config = import_neko_config.config.get(["mailer", label].join("."));
|
|
706
738
|
const provider = import_neko_mailer2.MailerProviderFactory.create(
|
|
707
739
|
mailer_config.provider,
|
|
@@ -710,7 +742,7 @@ var mailer = (0, import_neko_helper2.createSingleton)((label) => {
|
|
|
710
742
|
const rc = new import_neko_mailer2.Mailer(provider);
|
|
711
743
|
return rc;
|
|
712
744
|
});
|
|
713
|
-
var queue = (0,
|
|
745
|
+
var queue = (0, import_neko_helper3.createSingleton)((label) => {
|
|
714
746
|
const queue_config = import_neko_config.config.get(["queues", label].join("."));
|
|
715
747
|
if (!queue_config) {
|
|
716
748
|
throw new Error(`Queue configuration for '${label}' not found`);
|
|
@@ -721,7 +753,7 @@ var queue = (0, import_neko_helper2.createSingleton)((label) => {
|
|
|
721
753
|
);
|
|
722
754
|
return new import_neko_queue2.QueueConnection(provider);
|
|
723
755
|
});
|
|
724
|
-
var cache = (0,
|
|
756
|
+
var cache = (0, import_neko_helper3.createSingleton)((label) => {
|
|
725
757
|
const cache_config = import_neko_config.config.get(["caches", label].join("."));
|
|
726
758
|
if (!cache_config) {
|
|
727
759
|
throw new Error(`Cache configuration for '${label}' not found`);
|
|
@@ -740,12 +772,15 @@ var StartCommand = class extends import_clipanion2.Command {
|
|
|
740
772
|
__name(this, "StartCommand");
|
|
741
773
|
}
|
|
742
774
|
scheduler = import_clipanion2.Option.Boolean(`--scheduler`, false);
|
|
775
|
+
cron = import_clipanion2.Option.Boolean(`--cron`, false);
|
|
743
776
|
http = import_clipanion2.Option.Boolean(`--http`, false);
|
|
744
777
|
queue = import_clipanion2.Option.Boolean(`--queue`, false);
|
|
745
778
|
all = import_clipanion2.Option.Boolean("--all", false);
|
|
746
779
|
static paths = [[`start`]];
|
|
747
780
|
async execute() {
|
|
748
|
-
if ([this.all, this.http, this.scheduler, this.queue].filter(
|
|
781
|
+
if ([this.all, this.http, this.scheduler || this.cron, this.queue].filter(
|
|
782
|
+
(x) => x
|
|
783
|
+
).length == 0) {
|
|
749
784
|
this.context.stdout.write(
|
|
750
785
|
`No service was selected. please check -h for details
|
|
751
786
|
`
|
|
@@ -755,7 +790,7 @@ var StartCommand = class extends import_clipanion2.Command {
|
|
|
755
790
|
logger().info(`Starting Server
|
|
756
791
|
`);
|
|
757
792
|
import_neko_sql.PostgresqlConnection.defaults.idleTimeoutMillis = 1e4;
|
|
758
|
-
if (this.scheduler || this.all) {
|
|
793
|
+
if (this.scheduler || this.cron || this.all) {
|
|
759
794
|
logger().info(`starting scheduler
|
|
760
795
|
`);
|
|
761
796
|
scheduler().start();
|