@devbro/pashmak 0.1.44 → 0.1.46
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/app/console/generate/GenerateApiDocsCommand.mjs +1 -1
- package/dist/app/console/generate/GenerateApiDocsCommand.mjs.map +1 -1
- package/dist/bin/app/console/DefaultCommand.cjs +8 -11
- package/dist/bin/app/console/KeyGenerateCommand.cjs +8 -11
- package/dist/bin/app/console/StartCommand.cjs +12 -15
- package/dist/bin/app/console/generate/GenerateApiDocsCommand.cjs +9 -12
- package/dist/bin/app/console/generate/GenerateControllerCommand.cjs +10 -13
- package/dist/bin/app/console/generate/index.cjs +11 -14
- package/dist/bin/app/console/index.cjs +28 -31
- package/dist/bin/app/console/migrate/GenerateMigrateCommand.cjs +11 -14
- package/dist/bin/app/console/migrate/MigrateCommand.cjs +13 -16
- package/dist/bin/app/console/migrate/MigrateRollbackCommand.cjs +10 -13
- package/dist/bin/app/console/migrate/index.cjs +18 -21
- package/dist/bin/app/console/queue/GenerateQueueMigrateCommand.cjs +11 -14
- package/dist/bin/cache.cjs +8 -11
- package/dist/bin/facades.cjs +8 -11
- package/dist/bin/factories.cjs +8 -11
- package/dist/bin/index.cjs +42 -43
- package/dist/bin/middlewares.cjs +8 -9
- package/dist/bin/queue.cjs +8 -11
- package/dist/bin/router.cjs +6 -6
- package/dist/router.d.mts +1 -1
- package/dist/router.mjs +6 -6
- package/dist/router.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -133,7 +133,7 @@ class GenerateApiDocsCommand extends Command {
|
|
|
133
133
|
let final_api_docs = {};
|
|
134
134
|
for (let file_path of files_to_merge) {
|
|
135
135
|
let file_json = JSON.parse(await fs.readFile(file_path, "utf8"));
|
|
136
|
-
Arr.deepMerge(final_api_docs, file_json);
|
|
136
|
+
final_api_docs = Arr.deepMerge(final_api_docs, file_json);
|
|
137
137
|
}
|
|
138
138
|
await fs.writeFile(
|
|
139
139
|
config.get("api_docs.output"),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/app/console/generate/GenerateApiDocsCommand.mts"],"sourcesContent":["import { cli, router } from \"../../../facades.mjs\";\nimport { Command, Option } from \"clipanion\";\nimport path from \"path\";\nimport * as fs from \"fs/promises\";\nimport { config } from \"../../../config.mjs\";\nimport { Arr } from \"@devbro/neko-helper\";\n\nexport class GenerateApiDocsCommand extends Command {\n static paths = [\n [`make`, `apidocs`],\n [`generate`, `apidocs`],\n ];\n\n static usage = Command.Usage({\n category: `Generate`,\n description: `Generate OpenAPI documentation from routes`,\n details: `\n This command generates OpenAPI 3.0 specification documentation by analyzing\n your application's routes and merging with example files.\n \n The generated documentation includes:\n - All registered routes with their HTTP methods\n - Path parameters extracted from route definitions\n - Request body schemas for POST, PUT, and PATCH methods\n - Response schemas\n \n The command will merge files specified in config.api_docs.merge_files\n and output the final documentation to config.api_docs.output.\n\n This command depends on config data. make sure your default config contains the following:\n api_docs: {\n merge_files: [\n path.join(__dirname, '../..', 'private', 'openapi_examples.json'),\n path.join(__dirname, '../..', 'private', 'openapi_base.json'),\n path.join(__dirname, '../..', 'private', 'openapi_user_changes.json'),\n ],\n output: path.join(__dirname, '../..', 'private', 'openapi.json'),\n }\n `,\n examples: [[`Generate API documentation`, `$0 generate apidocs`]],\n });\n\n help = Option.Boolean(`--help,-h`, false, {\n description: `Show help message for this command`,\n });\n\n async execute() {\n if (this.help) {\n this.context.stdout.write(\n this.constructor.usage?.toString() || \"No help available\\n\",\n );\n return 0;\n }\n\n const rootDir = process.cwd();\n\n this.context.stdout.write(`Generating OpenAPI documentation...\\n`);\n\n // Get all routes from the router\n const routes = router().routes;\n\n // Generate OpenAPI 3.0 specification\n const openApiSpec = {\n openapi: \"3.0.0\",\n info: {\n title: \"API Documentation\",\n version: \"1.0.0\",\n description: \"Auto-generated API documentation\",\n },\n servers: [\n {\n url: \"/\",\n description: \"Local server\",\n },\n ],\n paths: {} as Record<string, any>,\n };\n\n // Process each route\n for (const route of routes) {\n const routePath = route.path;\n // Convert route path to OpenAPI format (e.g., /api/:id -> /api/{id})\n const openApiPath = routePath.replace(/:([a-zA-Z0-9_]+)/g, \"{$1}\");\n\n if (!openApiSpec.paths[openApiPath]) {\n openApiSpec.paths[openApiPath] = {};\n }\n\n // Add each HTTP method for this route\n for (const method of route.methods) {\n const lowerMethod = method.toLowerCase();\n\n // Skip HEAD as it's usually auto-generated\n if (lowerMethod === \"head\") {\n continue;\n }\n\n openApiSpec.paths[openApiPath][lowerMethod] = {\n summary: `${method} ${routePath}`,\n description: `Endpoint for ${method} ${routePath}`,\n parameters: this.extractParameters(routePath),\n responses: {\n \"200\": {\n description: \"Successful response\",\n content: {\n \"application/json\": {\n schema: {\n type: \"object\",\n },\n },\n },\n },\n \"500\": {\n description: \"Internal server error\",\n },\n },\n };\n\n // Add request body for POST, PUT, PATCH\n if ([\"post\", \"put\", \"patch\"].includes(lowerMethod)) {\n openApiSpec.paths[openApiPath][lowerMethod].requestBody = {\n required: true,\n content: {\n \"application/json\": {\n schema: {\n type: \"object\",\n },\n },\n },\n };\n }\n }\n }\n\n // Ensure public directory exists\n await fs.mkdir(config.get(\"private_path\"), { recursive: true });\n\n // Write the OpenAPI spec to public/openapi.json\n const outputPath = path.join(config.get(\"private_path\"), \"openapi.json\");\n await fs.writeFile(\n outputPath,\n JSON.stringify(openApiSpec, null, 2),\n \"utf-8\",\n );\n\n this.context.stdout.write(\n `OpenAPI documentation generated at: ${outputPath}\\n`,\n );\n this.context.stdout.write(`Total routes documented: ${routes.length}\\n`);\n\n let files_to_merge: string[] = config.get(\"api_docs.merge_files\");\n let final_api_docs = {};\n for (let file_path of files_to_merge) {\n let file_json = JSON.parse(await fs.readFile(file_path, \"utf8\"));\n Arr.deepMerge(final_api_docs, file_json);\n }\n\n await fs.writeFile(\n config.get(\"api_docs.output\"),\n JSON.stringify(final_api_docs, null, 2),\n );\n\n this.context.stdout.write(\n `wrote final open api document to : ${config.get(\"api_docs.output\")}\\n`,\n );\n }\n\n private extractParameters(routePath: string): any[] {\n const paramRegex = /:([a-zA-Z0-9_]+)/g;\n const parameters: any[] = [];\n let match;\n\n while ((match = paramRegex.exec(routePath)) !== null) {\n parameters.push({\n name: match[1],\n in: \"path\",\n required: true,\n schema: {\n type: \"string\",\n },\n description: `Path parameter ${match[1]}`,\n });\n }\n\n return parameters;\n }\n}\n\ncli().register(GenerateApiDocsCommand);\n"],"mappings":"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
|
|
1
|
+
{"version":3,"sources":["../../../../src/app/console/generate/GenerateApiDocsCommand.mts"],"sourcesContent":["import { cli, router } from \"../../../facades.mjs\";\nimport { Command, Option } from \"clipanion\";\nimport path from \"path\";\nimport * as fs from \"fs/promises\";\nimport { config } from \"../../../config.mjs\";\nimport { Arr } from \"@devbro/neko-helper\";\n\nexport class GenerateApiDocsCommand extends Command {\n static paths = [\n [`make`, `apidocs`],\n [`generate`, `apidocs`],\n ];\n\n static usage = Command.Usage({\n category: `Generate`,\n description: `Generate OpenAPI documentation from routes`,\n details: `\n This command generates OpenAPI 3.0 specification documentation by analyzing\n your application's routes and merging with example files.\n \n The generated documentation includes:\n - All registered routes with their HTTP methods\n - Path parameters extracted from route definitions\n - Request body schemas for POST, PUT, and PATCH methods\n - Response schemas\n \n The command will merge files specified in config.api_docs.merge_files\n and output the final documentation to config.api_docs.output.\n\n This command depends on config data. make sure your default config contains the following:\n api_docs: {\n merge_files: [\n path.join(__dirname, '../..', 'private', 'openapi_examples.json'),\n path.join(__dirname, '../..', 'private', 'openapi_base.json'),\n path.join(__dirname, '../..', 'private', 'openapi_user_changes.json'),\n ],\n output: path.join(__dirname, '../..', 'private', 'openapi.json'),\n }\n `,\n examples: [[`Generate API documentation`, `$0 generate apidocs`]],\n });\n\n help = Option.Boolean(`--help,-h`, false, {\n description: `Show help message for this command`,\n });\n\n async execute() {\n if (this.help) {\n this.context.stdout.write(\n this.constructor.usage?.toString() || \"No help available\\n\",\n );\n return 0;\n }\n\n const rootDir = process.cwd();\n\n this.context.stdout.write(`Generating OpenAPI documentation...\\n`);\n\n // Get all routes from the router\n const routes = router().routes;\n\n // Generate OpenAPI 3.0 specification\n const openApiSpec = {\n openapi: \"3.0.0\",\n info: {\n title: \"API Documentation\",\n version: \"1.0.0\",\n description: \"Auto-generated API documentation\",\n },\n servers: [\n {\n url: \"/\",\n description: \"Local server\",\n },\n ],\n paths: {} as Record<string, any>,\n };\n\n // Process each route\n for (const route of routes) {\n const routePath = route.path;\n // Convert route path to OpenAPI format (e.g., /api/:id -> /api/{id})\n const openApiPath = routePath.replace(/:([a-zA-Z0-9_]+)/g, \"{$1}\");\n\n if (!openApiSpec.paths[openApiPath]) {\n openApiSpec.paths[openApiPath] = {};\n }\n\n // Add each HTTP method for this route\n for (const method of route.methods) {\n const lowerMethod = method.toLowerCase();\n\n // Skip HEAD as it's usually auto-generated\n if (lowerMethod === \"head\") {\n continue;\n }\n\n openApiSpec.paths[openApiPath][lowerMethod] = {\n summary: `${method} ${routePath}`,\n description: `Endpoint for ${method} ${routePath}`,\n parameters: this.extractParameters(routePath),\n responses: {\n \"200\": {\n description: \"Successful response\",\n content: {\n \"application/json\": {\n schema: {\n type: \"object\",\n },\n },\n },\n },\n \"500\": {\n description: \"Internal server error\",\n },\n },\n };\n\n // Add request body for POST, PUT, PATCH\n if ([\"post\", \"put\", \"patch\"].includes(lowerMethod)) {\n openApiSpec.paths[openApiPath][lowerMethod].requestBody = {\n required: true,\n content: {\n \"application/json\": {\n schema: {\n type: \"object\",\n },\n },\n },\n };\n }\n }\n }\n\n // Ensure public directory exists\n await fs.mkdir(config.get(\"private_path\"), { recursive: true });\n\n // Write the OpenAPI spec to public/openapi.json\n const outputPath = path.join(config.get(\"private_path\"), \"openapi.json\");\n await fs.writeFile(\n outputPath,\n JSON.stringify(openApiSpec, null, 2),\n \"utf-8\",\n );\n\n this.context.stdout.write(\n `OpenAPI documentation generated at: ${outputPath}\\n`,\n );\n this.context.stdout.write(`Total routes documented: ${routes.length}\\n`);\n\n let files_to_merge: string[] = config.get(\"api_docs.merge_files\");\n let final_api_docs = {};\n for (let file_path of files_to_merge) {\n let file_json = JSON.parse(await fs.readFile(file_path, \"utf8\"));\n final_api_docs = Arr.deepMerge(final_api_docs, file_json);\n }\n\n await fs.writeFile(\n config.get(\"api_docs.output\"),\n JSON.stringify(final_api_docs, null, 2),\n );\n\n this.context.stdout.write(\n `wrote final open api document to : ${config.get(\"api_docs.output\")}\\n`,\n );\n }\n\n private extractParameters(routePath: string): any[] {\n const paramRegex = /:([a-zA-Z0-9_]+)/g;\n const parameters: any[] = [];\n let match;\n\n while ((match = paramRegex.exec(routePath)) !== null) {\n parameters.push({\n name: match[1],\n in: \"path\",\n required: true,\n schema: {\n type: \"string\",\n },\n description: `Path parameter ${match[1]}`,\n });\n }\n\n return parameters;\n }\n}\n\ncli().register(GenerateApiDocsCommand);\n"],"mappings":"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","names":[]}
|
|
@@ -456,16 +456,13 @@ var Router = class {
|
|
|
456
456
|
}
|
|
457
457
|
};
|
|
458
458
|
|
|
459
|
-
// src/router.mts
|
|
460
|
-
var import_neko_config = require("@devbro/neko-config");
|
|
461
|
-
|
|
462
459
|
// src/facades.mts
|
|
463
460
|
var import_neko_scheduler = require("@devbro/neko-scheduler");
|
|
464
461
|
var import_neko_helper2 = require("@devbro/neko-helper");
|
|
465
462
|
var import_neko_context3 = require("@devbro/neko-context");
|
|
466
463
|
var import_neko_storage2 = require("@devbro/neko-storage");
|
|
467
464
|
var import_neko_mailer2 = require("@devbro/neko-mailer");
|
|
468
|
-
var
|
|
465
|
+
var import_neko_config = require("@devbro/neko-config");
|
|
469
466
|
var import_clipanion = require("clipanion");
|
|
470
467
|
|
|
471
468
|
// src/http.mts
|
|
@@ -544,8 +541,8 @@ var DatabaseTransport = class {
|
|
|
544
541
|
}
|
|
545
542
|
});
|
|
546
543
|
}, "processMessage");
|
|
547
|
-
constructor(
|
|
548
|
-
this.config = { ...this.config, ...
|
|
544
|
+
constructor(config2 = {}) {
|
|
545
|
+
this.config = { ...this.config, ...config2 };
|
|
549
546
|
this.repeater = (0, import_neko_helper.createRepeater)(
|
|
550
547
|
this.processMessage,
|
|
551
548
|
this.config.listen_interval * 1e3
|
|
@@ -662,7 +659,7 @@ var scheduler = (0, import_neko_helper2.createSingleton)(() => {
|
|
|
662
659
|
});
|
|
663
660
|
var db = /* @__PURE__ */ __name((label = "default") => (0, import_neko_context3.ctx)().getOrThrow(["database", label]), "db");
|
|
664
661
|
var storage = (0, import_neko_helper2.createSingleton)((label = "default") => {
|
|
665
|
-
let storage_config =
|
|
662
|
+
let storage_config = import_neko_config.config.get(["storages", label].join("."));
|
|
666
663
|
const provider = import_neko_storage2.StorageProviderFactory.create(
|
|
667
664
|
storage_config.provider,
|
|
668
665
|
storage_config.config
|
|
@@ -695,7 +692,7 @@ var httpServer = (0, import_neko_helper2.createSingleton)(() => {
|
|
|
695
692
|
return server;
|
|
696
693
|
});
|
|
697
694
|
var logger = (0, import_neko_helper2.createSingleton)((label) => {
|
|
698
|
-
const logger_config =
|
|
695
|
+
const logger_config = import_neko_config.config.get(["loggers", label].join("."));
|
|
699
696
|
const rc = new import_neko_logger.Logger(logger_config);
|
|
700
697
|
rc.setExtrasFunction((message) => {
|
|
701
698
|
message.requestId = (0, import_neko_context3.ctxSafe)()?.get("requestId") || "N/A";
|
|
@@ -704,7 +701,7 @@ var logger = (0, import_neko_helper2.createSingleton)((label) => {
|
|
|
704
701
|
return rc;
|
|
705
702
|
});
|
|
706
703
|
var mailer = (0, import_neko_helper2.createSingleton)((label) => {
|
|
707
|
-
const mailer_config =
|
|
704
|
+
const mailer_config = import_neko_config.config.get(["mailer", label].join("."));
|
|
708
705
|
const provider = import_neko_mailer2.MailerProviderFactory.create(
|
|
709
706
|
mailer_config.provider,
|
|
710
707
|
mailer_config.config
|
|
@@ -713,7 +710,7 @@ var mailer = (0, import_neko_helper2.createSingleton)((label) => {
|
|
|
713
710
|
return rc;
|
|
714
711
|
});
|
|
715
712
|
var queue = (0, import_neko_helper2.createSingleton)((label) => {
|
|
716
|
-
const queue_config =
|
|
713
|
+
const queue_config = import_neko_config.config.get(["queues", label].join("."));
|
|
717
714
|
if (!queue_config) {
|
|
718
715
|
throw new Error(`Queue configuration for '${label}' not found`);
|
|
719
716
|
}
|
|
@@ -725,7 +722,7 @@ var queue = (0, import_neko_helper2.createSingleton)((label) => {
|
|
|
725
722
|
return rc;
|
|
726
723
|
});
|
|
727
724
|
var cache = (0, import_neko_helper2.createSingleton)((label) => {
|
|
728
|
-
const cache_config =
|
|
725
|
+
const cache_config = import_neko_config.config.get(["caches", label].join("."));
|
|
729
726
|
if (!cache_config) {
|
|
730
727
|
throw new Error(`Cache configuration for '${label}' not found`);
|
|
731
728
|
}
|
|
@@ -459,16 +459,13 @@ var Router = class {
|
|
|
459
459
|
}
|
|
460
460
|
};
|
|
461
461
|
|
|
462
|
-
// src/router.mts
|
|
463
|
-
var import_neko_config = require("@devbro/neko-config");
|
|
464
|
-
|
|
465
462
|
// src/facades.mts
|
|
466
463
|
var import_neko_scheduler = require("@devbro/neko-scheduler");
|
|
467
464
|
var import_neko_helper2 = require("@devbro/neko-helper");
|
|
468
465
|
var import_neko_context3 = require("@devbro/neko-context");
|
|
469
466
|
var import_neko_storage2 = require("@devbro/neko-storage");
|
|
470
467
|
var import_neko_mailer2 = require("@devbro/neko-mailer");
|
|
471
|
-
var
|
|
468
|
+
var import_neko_config = require("@devbro/neko-config");
|
|
472
469
|
var import_clipanion = require("clipanion");
|
|
473
470
|
|
|
474
471
|
// src/http.mts
|
|
@@ -547,8 +544,8 @@ var DatabaseTransport = class {
|
|
|
547
544
|
}
|
|
548
545
|
});
|
|
549
546
|
}, "processMessage");
|
|
550
|
-
constructor(
|
|
551
|
-
this.config = { ...this.config, ...
|
|
547
|
+
constructor(config2 = {}) {
|
|
548
|
+
this.config = { ...this.config, ...config2 };
|
|
552
549
|
this.repeater = (0, import_neko_helper.createRepeater)(
|
|
553
550
|
this.processMessage,
|
|
554
551
|
this.config.listen_interval * 1e3
|
|
@@ -665,7 +662,7 @@ var scheduler = (0, import_neko_helper2.createSingleton)(() => {
|
|
|
665
662
|
});
|
|
666
663
|
var db = /* @__PURE__ */ __name((label = "default") => (0, import_neko_context3.ctx)().getOrThrow(["database", label]), "db");
|
|
667
664
|
var storage = (0, import_neko_helper2.createSingleton)((label = "default") => {
|
|
668
|
-
let storage_config =
|
|
665
|
+
let storage_config = import_neko_config.config.get(["storages", label].join("."));
|
|
669
666
|
const provider = import_neko_storage2.StorageProviderFactory.create(
|
|
670
667
|
storage_config.provider,
|
|
671
668
|
storage_config.config
|
|
@@ -698,7 +695,7 @@ var httpServer = (0, import_neko_helper2.createSingleton)(() => {
|
|
|
698
695
|
return server;
|
|
699
696
|
});
|
|
700
697
|
var logger = (0, import_neko_helper2.createSingleton)((label) => {
|
|
701
|
-
const logger_config =
|
|
698
|
+
const logger_config = import_neko_config.config.get(["loggers", label].join("."));
|
|
702
699
|
const rc = new import_neko_logger.Logger(logger_config);
|
|
703
700
|
rc.setExtrasFunction((message) => {
|
|
704
701
|
message.requestId = (0, import_neko_context3.ctxSafe)()?.get("requestId") || "N/A";
|
|
@@ -707,7 +704,7 @@ var logger = (0, import_neko_helper2.createSingleton)((label) => {
|
|
|
707
704
|
return rc;
|
|
708
705
|
});
|
|
709
706
|
var mailer = (0, import_neko_helper2.createSingleton)((label) => {
|
|
710
|
-
const mailer_config =
|
|
707
|
+
const mailer_config = import_neko_config.config.get(["mailer", label].join("."));
|
|
711
708
|
const provider = import_neko_mailer2.MailerProviderFactory.create(
|
|
712
709
|
mailer_config.provider,
|
|
713
710
|
mailer_config.config
|
|
@@ -716,7 +713,7 @@ var mailer = (0, import_neko_helper2.createSingleton)((label) => {
|
|
|
716
713
|
return rc;
|
|
717
714
|
});
|
|
718
715
|
var queue = (0, import_neko_helper2.createSingleton)((label) => {
|
|
719
|
-
const queue_config =
|
|
716
|
+
const queue_config = import_neko_config.config.get(["queues", label].join("."));
|
|
720
717
|
if (!queue_config) {
|
|
721
718
|
throw new Error(`Queue configuration for '${label}' not found`);
|
|
722
719
|
}
|
|
@@ -728,7 +725,7 @@ var queue = (0, import_neko_helper2.createSingleton)((label) => {
|
|
|
728
725
|
return rc;
|
|
729
726
|
});
|
|
730
727
|
var cache = (0, import_neko_helper2.createSingleton)((label) => {
|
|
731
|
-
const cache_config =
|
|
728
|
+
const cache_config = import_neko_config.config.get(["caches", label].join("."));
|
|
732
729
|
if (!cache_config) {
|
|
733
730
|
throw new Error(`Cache configuration for '${label}' not found`);
|
|
734
731
|
}
|
|
@@ -36,7 +36,7 @@ __export(StartCommand_exports, {
|
|
|
36
36
|
});
|
|
37
37
|
module.exports = __toCommonJS(StartCommand_exports);
|
|
38
38
|
var import_clipanion2 = require("clipanion");
|
|
39
|
-
var
|
|
39
|
+
var import_neko_config2 = require("@devbro/neko-config");
|
|
40
40
|
|
|
41
41
|
// src/router.mts
|
|
42
42
|
var import_neko_context = require("@devbro/neko-context");
|
|
@@ -457,16 +457,13 @@ var Router = class {
|
|
|
457
457
|
}
|
|
458
458
|
};
|
|
459
459
|
|
|
460
|
-
// src/router.mts
|
|
461
|
-
var import_neko_config = require("@devbro/neko-config");
|
|
462
|
-
|
|
463
460
|
// src/facades.mts
|
|
464
461
|
var import_neko_scheduler = require("@devbro/neko-scheduler");
|
|
465
462
|
var import_neko_helper2 = require("@devbro/neko-helper");
|
|
466
463
|
var import_neko_context3 = require("@devbro/neko-context");
|
|
467
464
|
var import_neko_storage2 = require("@devbro/neko-storage");
|
|
468
465
|
var import_neko_mailer2 = require("@devbro/neko-mailer");
|
|
469
|
-
var
|
|
466
|
+
var import_neko_config = require("@devbro/neko-config");
|
|
470
467
|
var import_clipanion = require("clipanion");
|
|
471
468
|
|
|
472
469
|
// src/http.mts
|
|
@@ -545,8 +542,8 @@ var DatabaseTransport = class {
|
|
|
545
542
|
}
|
|
546
543
|
});
|
|
547
544
|
}, "processMessage");
|
|
548
|
-
constructor(
|
|
549
|
-
this.config = { ...this.config, ...
|
|
545
|
+
constructor(config3 = {}) {
|
|
546
|
+
this.config = { ...this.config, ...config3 };
|
|
550
547
|
this.repeater = (0, import_neko_helper.createRepeater)(
|
|
551
548
|
this.processMessage,
|
|
552
549
|
this.config.listen_interval * 1e3
|
|
@@ -663,7 +660,7 @@ var scheduler = (0, import_neko_helper2.createSingleton)(() => {
|
|
|
663
660
|
});
|
|
664
661
|
var db = /* @__PURE__ */ __name((label = "default") => (0, import_neko_context3.ctx)().getOrThrow(["database", label]), "db");
|
|
665
662
|
var storage = (0, import_neko_helper2.createSingleton)((label = "default") => {
|
|
666
|
-
let storage_config =
|
|
663
|
+
let storage_config = import_neko_config.config.get(["storages", label].join("."));
|
|
667
664
|
const provider = import_neko_storage2.StorageProviderFactory.create(
|
|
668
665
|
storage_config.provider,
|
|
669
666
|
storage_config.config
|
|
@@ -696,7 +693,7 @@ var httpServer = (0, import_neko_helper2.createSingleton)(() => {
|
|
|
696
693
|
return server;
|
|
697
694
|
});
|
|
698
695
|
var logger = (0, import_neko_helper2.createSingleton)((label) => {
|
|
699
|
-
const logger_config =
|
|
696
|
+
const logger_config = import_neko_config.config.get(["loggers", label].join("."));
|
|
700
697
|
const rc = new import_neko_logger.Logger(logger_config);
|
|
701
698
|
rc.setExtrasFunction((message) => {
|
|
702
699
|
message.requestId = (0, import_neko_context3.ctxSafe)()?.get("requestId") || "N/A";
|
|
@@ -705,7 +702,7 @@ var logger = (0, import_neko_helper2.createSingleton)((label) => {
|
|
|
705
702
|
return rc;
|
|
706
703
|
});
|
|
707
704
|
var mailer = (0, import_neko_helper2.createSingleton)((label) => {
|
|
708
|
-
const mailer_config =
|
|
705
|
+
const mailer_config = import_neko_config.config.get(["mailer", label].join("."));
|
|
709
706
|
const provider = import_neko_mailer2.MailerProviderFactory.create(
|
|
710
707
|
mailer_config.provider,
|
|
711
708
|
mailer_config.config
|
|
@@ -714,7 +711,7 @@ var mailer = (0, import_neko_helper2.createSingleton)((label) => {
|
|
|
714
711
|
return rc;
|
|
715
712
|
});
|
|
716
713
|
var queue = (0, import_neko_helper2.createSingleton)((label) => {
|
|
717
|
-
const queue_config =
|
|
714
|
+
const queue_config = import_neko_config.config.get(["queues", label].join("."));
|
|
718
715
|
if (!queue_config) {
|
|
719
716
|
throw new Error(`Queue configuration for '${label}' not found`);
|
|
720
717
|
}
|
|
@@ -726,7 +723,7 @@ var queue = (0, import_neko_helper2.createSingleton)((label) => {
|
|
|
726
723
|
return rc;
|
|
727
724
|
});
|
|
728
725
|
var cache = (0, import_neko_helper2.createSingleton)((label) => {
|
|
729
|
-
const cache_config =
|
|
726
|
+
const cache_config = import_neko_config.config.get(["caches", label].join("."));
|
|
730
727
|
if (!cache_config) {
|
|
731
728
|
throw new Error(`Cache configuration for '${label}' not found`);
|
|
732
729
|
}
|
|
@@ -765,16 +762,16 @@ var StartCommand = class extends import_clipanion2.Command {
|
|
|
765
762
|
scheduler().start();
|
|
766
763
|
}
|
|
767
764
|
if (this.queue || this.all) {
|
|
768
|
-
const config_queues =
|
|
765
|
+
const config_queues = import_neko_config2.config.get("queues");
|
|
769
766
|
for (const [name, conf] of Object.entries(config_queues)) {
|
|
770
767
|
queue(name).start();
|
|
771
768
|
}
|
|
772
769
|
}
|
|
773
770
|
if (this.http || this.all) {
|
|
774
771
|
const server = httpServer();
|
|
775
|
-
await server.listen(
|
|
772
|
+
await server.listen(import_neko_config2.config.get("port"), () => {
|
|
776
773
|
logger().info(
|
|
777
|
-
"Server is running on http://localhost:" +
|
|
774
|
+
"Server is running on http://localhost:" + import_neko_config2.config.get("port")
|
|
778
775
|
);
|
|
779
776
|
});
|
|
780
777
|
}
|
|
@@ -455,16 +455,13 @@ var Router = class {
|
|
|
455
455
|
}
|
|
456
456
|
};
|
|
457
457
|
|
|
458
|
-
// src/router.mts
|
|
459
|
-
var import_neko_config = require("@devbro/neko-config");
|
|
460
|
-
|
|
461
458
|
// src/facades.mts
|
|
462
459
|
var import_neko_scheduler = require("@devbro/neko-scheduler");
|
|
463
460
|
var import_neko_helper2 = require("@devbro/neko-helper");
|
|
464
461
|
var import_neko_context3 = require("@devbro/neko-context");
|
|
465
462
|
var import_neko_storage2 = require("@devbro/neko-storage");
|
|
466
463
|
var import_neko_mailer2 = require("@devbro/neko-mailer");
|
|
467
|
-
var
|
|
464
|
+
var import_neko_config = require("@devbro/neko-config");
|
|
468
465
|
var import_clipanion = require("clipanion");
|
|
469
466
|
|
|
470
467
|
// src/http.mts
|
|
@@ -543,8 +540,8 @@ var DatabaseTransport = class {
|
|
|
543
540
|
}
|
|
544
541
|
});
|
|
545
542
|
}, "processMessage");
|
|
546
|
-
constructor(
|
|
547
|
-
this.config = { ...this.config, ...
|
|
543
|
+
constructor(config3 = {}) {
|
|
544
|
+
this.config = { ...this.config, ...config3 };
|
|
548
545
|
this.repeater = (0, import_neko_helper.createRepeater)(
|
|
549
546
|
this.processMessage,
|
|
550
547
|
this.config.listen_interval * 1e3
|
|
@@ -661,7 +658,7 @@ var scheduler = (0, import_neko_helper2.createSingleton)(() => {
|
|
|
661
658
|
});
|
|
662
659
|
var db = /* @__PURE__ */ __name((label = "default") => (0, import_neko_context3.ctx)().getOrThrow(["database", label]), "db");
|
|
663
660
|
var storage = (0, import_neko_helper2.createSingleton)((label = "default") => {
|
|
664
|
-
let storage_config =
|
|
661
|
+
let storage_config = import_neko_config.config.get(["storages", label].join("."));
|
|
665
662
|
const provider = import_neko_storage2.StorageProviderFactory.create(
|
|
666
663
|
storage_config.provider,
|
|
667
664
|
storage_config.config
|
|
@@ -694,7 +691,7 @@ var httpServer = (0, import_neko_helper2.createSingleton)(() => {
|
|
|
694
691
|
return server;
|
|
695
692
|
});
|
|
696
693
|
var logger = (0, import_neko_helper2.createSingleton)((label) => {
|
|
697
|
-
const logger_config =
|
|
694
|
+
const logger_config = import_neko_config.config.get(["loggers", label].join("."));
|
|
698
695
|
const rc = new import_neko_logger.Logger(logger_config);
|
|
699
696
|
rc.setExtrasFunction((message) => {
|
|
700
697
|
message.requestId = (0, import_neko_context3.ctxSafe)()?.get("requestId") || "N/A";
|
|
@@ -703,7 +700,7 @@ var logger = (0, import_neko_helper2.createSingleton)((label) => {
|
|
|
703
700
|
return rc;
|
|
704
701
|
});
|
|
705
702
|
var mailer = (0, import_neko_helper2.createSingleton)((label) => {
|
|
706
|
-
const mailer_config =
|
|
703
|
+
const mailer_config = import_neko_config.config.get(["mailer", label].join("."));
|
|
707
704
|
const provider = import_neko_mailer2.MailerProviderFactory.create(
|
|
708
705
|
mailer_config.provider,
|
|
709
706
|
mailer_config.config
|
|
@@ -712,7 +709,7 @@ var mailer = (0, import_neko_helper2.createSingleton)((label) => {
|
|
|
712
709
|
return rc;
|
|
713
710
|
});
|
|
714
711
|
var queue = (0, import_neko_helper2.createSingleton)((label) => {
|
|
715
|
-
const queue_config =
|
|
712
|
+
const queue_config = import_neko_config.config.get(["queues", label].join("."));
|
|
716
713
|
if (!queue_config) {
|
|
717
714
|
throw new Error(`Queue configuration for '${label}' not found`);
|
|
718
715
|
}
|
|
@@ -724,7 +721,7 @@ var queue = (0, import_neko_helper2.createSingleton)((label) => {
|
|
|
724
721
|
return rc;
|
|
725
722
|
});
|
|
726
723
|
var cache = (0, import_neko_helper2.createSingleton)((label) => {
|
|
727
|
-
const cache_config =
|
|
724
|
+
const cache_config = import_neko_config.config.get(["caches", label].join("."));
|
|
728
725
|
if (!cache_config) {
|
|
729
726
|
throw new Error(`Cache configuration for '${label}' not found`);
|
|
730
727
|
}
|
|
@@ -873,7 +870,7 @@ var GenerateApiDocsCommand = class extends import_clipanion2.Command {
|
|
|
873
870
|
let final_api_docs = {};
|
|
874
871
|
for (let file_path of files_to_merge) {
|
|
875
872
|
let file_json = JSON.parse(await fs.readFile(file_path, "utf8"));
|
|
876
|
-
import_neko_helper3.Arr.deepMerge(final_api_docs, file_json);
|
|
873
|
+
final_api_docs = import_neko_helper3.Arr.deepMerge(final_api_docs, file_json);
|
|
877
874
|
}
|
|
878
875
|
await fs.writeFile(
|
|
879
876
|
config_exports.config.get("api_docs.output"),
|
|
@@ -455,16 +455,13 @@ var Router = class {
|
|
|
455
455
|
}
|
|
456
456
|
};
|
|
457
457
|
|
|
458
|
-
// src/router.mts
|
|
459
|
-
var import_neko_config = require("@devbro/neko-config");
|
|
460
|
-
|
|
461
458
|
// src/facades.mts
|
|
462
459
|
var import_neko_scheduler = require("@devbro/neko-scheduler");
|
|
463
460
|
var import_neko_helper2 = require("@devbro/neko-helper");
|
|
464
461
|
var import_neko_context3 = require("@devbro/neko-context");
|
|
465
462
|
var import_neko_storage2 = require("@devbro/neko-storage");
|
|
466
463
|
var import_neko_mailer2 = require("@devbro/neko-mailer");
|
|
467
|
-
var
|
|
464
|
+
var import_neko_config = require("@devbro/neko-config");
|
|
468
465
|
var import_clipanion = require("clipanion");
|
|
469
466
|
|
|
470
467
|
// src/http.mts
|
|
@@ -543,8 +540,8 @@ var DatabaseTransport = class {
|
|
|
543
540
|
}
|
|
544
541
|
});
|
|
545
542
|
}, "processMessage");
|
|
546
|
-
constructor(
|
|
547
|
-
this.config = { ...this.config, ...
|
|
543
|
+
constructor(config3 = {}) {
|
|
544
|
+
this.config = { ...this.config, ...config3 };
|
|
548
545
|
this.repeater = (0, import_neko_helper.createRepeater)(
|
|
549
546
|
this.processMessage,
|
|
550
547
|
this.config.listen_interval * 1e3
|
|
@@ -661,7 +658,7 @@ var scheduler = (0, import_neko_helper2.createSingleton)(() => {
|
|
|
661
658
|
});
|
|
662
659
|
var db = /* @__PURE__ */ __name((label = "default") => (0, import_neko_context3.ctx)().getOrThrow(["database", label]), "db");
|
|
663
660
|
var storage = (0, import_neko_helper2.createSingleton)((label = "default") => {
|
|
664
|
-
let storage_config =
|
|
661
|
+
let storage_config = import_neko_config.config.get(["storages", label].join("."));
|
|
665
662
|
const provider = import_neko_storage2.StorageProviderFactory.create(
|
|
666
663
|
storage_config.provider,
|
|
667
664
|
storage_config.config
|
|
@@ -694,7 +691,7 @@ var httpServer = (0, import_neko_helper2.createSingleton)(() => {
|
|
|
694
691
|
return server;
|
|
695
692
|
});
|
|
696
693
|
var logger = (0, import_neko_helper2.createSingleton)((label) => {
|
|
697
|
-
const logger_config =
|
|
694
|
+
const logger_config = import_neko_config.config.get(["loggers", label].join("."));
|
|
698
695
|
const rc = new import_neko_logger.Logger(logger_config);
|
|
699
696
|
rc.setExtrasFunction((message) => {
|
|
700
697
|
message.requestId = (0, import_neko_context3.ctxSafe)()?.get("requestId") || "N/A";
|
|
@@ -703,7 +700,7 @@ var logger = (0, import_neko_helper2.createSingleton)((label) => {
|
|
|
703
700
|
return rc;
|
|
704
701
|
});
|
|
705
702
|
var mailer = (0, import_neko_helper2.createSingleton)((label) => {
|
|
706
|
-
const mailer_config =
|
|
703
|
+
const mailer_config = import_neko_config.config.get(["mailer", label].join("."));
|
|
707
704
|
const provider = import_neko_mailer2.MailerProviderFactory.create(
|
|
708
705
|
mailer_config.provider,
|
|
709
706
|
mailer_config.config
|
|
@@ -712,7 +709,7 @@ var mailer = (0, import_neko_helper2.createSingleton)((label) => {
|
|
|
712
709
|
return rc;
|
|
713
710
|
});
|
|
714
711
|
var queue = (0, import_neko_helper2.createSingleton)((label) => {
|
|
715
|
-
const queue_config =
|
|
712
|
+
const queue_config = import_neko_config.config.get(["queues", label].join("."));
|
|
716
713
|
if (!queue_config) {
|
|
717
714
|
throw new Error(`Queue configuration for '${label}' not found`);
|
|
718
715
|
}
|
|
@@ -724,7 +721,7 @@ var queue = (0, import_neko_helper2.createSingleton)((label) => {
|
|
|
724
721
|
return rc;
|
|
725
722
|
});
|
|
726
723
|
var cache = (0, import_neko_helper2.createSingleton)((label) => {
|
|
727
|
-
const cache_config =
|
|
724
|
+
const cache_config = import_neko_config.config.get(["caches", label].join("."));
|
|
728
725
|
if (!cache_config) {
|
|
729
726
|
throw new Error(`Cache configuration for '${label}' not found`);
|
|
730
727
|
}
|
|
@@ -740,7 +737,7 @@ var import_clipanion2 = require("clipanion");
|
|
|
740
737
|
var import_change_case_all = require("change-case-all");
|
|
741
738
|
var import_path2 = __toESM(require("path"), 1);
|
|
742
739
|
var fs = __toESM(require("fs/promises"), 1);
|
|
743
|
-
var
|
|
740
|
+
var import_neko_config2 = require("@devbro/neko-config");
|
|
744
741
|
var import_handlebars = __toESM(require("handlebars"), 1);
|
|
745
742
|
var import_url = require("url");
|
|
746
743
|
var import_pluralize = __toESM(require("pluralize"), 1);
|
|
@@ -767,7 +764,7 @@ var GenerateControllerCommand = class extends import_clipanion2.Command {
|
|
|
767
764
|
const filename = `${import_change_case_all.Case.capital(this.name)}Controller.ts`;
|
|
768
765
|
this.context.stdout.write(`creating migration file ${filename}
|
|
769
766
|
`);
|
|
770
|
-
await fs.mkdir(
|
|
767
|
+
await fs.mkdir(import_neko_config2.config.get("migration.path"), { recursive: true });
|
|
771
768
|
let dirname = typeof __dirname === "string" ? __dirname : void 0;
|
|
772
769
|
if (!dirname) {
|
|
773
770
|
dirname = import_path2.default.dirname((0, import_url.fileURLToPath)(import_meta.url));
|
|
@@ -456,16 +456,13 @@ var Router = class {
|
|
|
456
456
|
}
|
|
457
457
|
};
|
|
458
458
|
|
|
459
|
-
// src/router.mts
|
|
460
|
-
var import_neko_config = require("@devbro/neko-config");
|
|
461
|
-
|
|
462
459
|
// src/facades.mts
|
|
463
460
|
var import_neko_scheduler = require("@devbro/neko-scheduler");
|
|
464
461
|
var import_neko_helper2 = require("@devbro/neko-helper");
|
|
465
462
|
var import_neko_context3 = require("@devbro/neko-context");
|
|
466
463
|
var import_neko_storage2 = require("@devbro/neko-storage");
|
|
467
464
|
var import_neko_mailer2 = require("@devbro/neko-mailer");
|
|
468
|
-
var
|
|
465
|
+
var import_neko_config = require("@devbro/neko-config");
|
|
469
466
|
var import_clipanion = require("clipanion");
|
|
470
467
|
|
|
471
468
|
// src/http.mts
|
|
@@ -544,8 +541,8 @@ var DatabaseTransport = class {
|
|
|
544
541
|
}
|
|
545
542
|
});
|
|
546
543
|
}, "processMessage");
|
|
547
|
-
constructor(
|
|
548
|
-
this.config = { ...this.config, ...
|
|
544
|
+
constructor(config4 = {}) {
|
|
545
|
+
this.config = { ...this.config, ...config4 };
|
|
549
546
|
this.repeater = (0, import_neko_helper.createRepeater)(
|
|
550
547
|
this.processMessage,
|
|
551
548
|
this.config.listen_interval * 1e3
|
|
@@ -662,7 +659,7 @@ var scheduler = (0, import_neko_helper2.createSingleton)(() => {
|
|
|
662
659
|
});
|
|
663
660
|
var db = /* @__PURE__ */ __name((label = "default") => (0, import_neko_context3.ctx)().getOrThrow(["database", label]), "db");
|
|
664
661
|
var storage = (0, import_neko_helper2.createSingleton)((label = "default") => {
|
|
665
|
-
let storage_config =
|
|
662
|
+
let storage_config = import_neko_config.config.get(["storages", label].join("."));
|
|
666
663
|
const provider = import_neko_storage2.StorageProviderFactory.create(
|
|
667
664
|
storage_config.provider,
|
|
668
665
|
storage_config.config
|
|
@@ -695,7 +692,7 @@ var httpServer = (0, import_neko_helper2.createSingleton)(() => {
|
|
|
695
692
|
return server;
|
|
696
693
|
});
|
|
697
694
|
var logger = (0, import_neko_helper2.createSingleton)((label) => {
|
|
698
|
-
const logger_config =
|
|
695
|
+
const logger_config = import_neko_config.config.get(["loggers", label].join("."));
|
|
699
696
|
const rc = new import_neko_logger.Logger(logger_config);
|
|
700
697
|
rc.setExtrasFunction((message) => {
|
|
701
698
|
message.requestId = (0, import_neko_context3.ctxSafe)()?.get("requestId") || "N/A";
|
|
@@ -704,7 +701,7 @@ var logger = (0, import_neko_helper2.createSingleton)((label) => {
|
|
|
704
701
|
return rc;
|
|
705
702
|
});
|
|
706
703
|
var mailer = (0, import_neko_helper2.createSingleton)((label) => {
|
|
707
|
-
const mailer_config =
|
|
704
|
+
const mailer_config = import_neko_config.config.get(["mailer", label].join("."));
|
|
708
705
|
const provider = import_neko_mailer2.MailerProviderFactory.create(
|
|
709
706
|
mailer_config.provider,
|
|
710
707
|
mailer_config.config
|
|
@@ -713,7 +710,7 @@ var mailer = (0, import_neko_helper2.createSingleton)((label) => {
|
|
|
713
710
|
return rc;
|
|
714
711
|
});
|
|
715
712
|
var queue = (0, import_neko_helper2.createSingleton)((label) => {
|
|
716
|
-
const queue_config =
|
|
713
|
+
const queue_config = import_neko_config.config.get(["queues", label].join("."));
|
|
717
714
|
if (!queue_config) {
|
|
718
715
|
throw new Error(`Queue configuration for '${label}' not found`);
|
|
719
716
|
}
|
|
@@ -725,7 +722,7 @@ var queue = (0, import_neko_helper2.createSingleton)((label) => {
|
|
|
725
722
|
return rc;
|
|
726
723
|
});
|
|
727
724
|
var cache = (0, import_neko_helper2.createSingleton)((label) => {
|
|
728
|
-
const cache_config =
|
|
725
|
+
const cache_config = import_neko_config.config.get(["caches", label].join("."));
|
|
729
726
|
if (!cache_config) {
|
|
730
727
|
throw new Error(`Cache configuration for '${label}' not found`);
|
|
731
728
|
}
|
|
@@ -741,7 +738,7 @@ var import_clipanion2 = require("clipanion");
|
|
|
741
738
|
var import_change_case_all = require("change-case-all");
|
|
742
739
|
var import_path2 = __toESM(require("path"), 1);
|
|
743
740
|
var fs = __toESM(require("fs/promises"), 1);
|
|
744
|
-
var
|
|
741
|
+
var import_neko_config2 = require("@devbro/neko-config");
|
|
745
742
|
var import_handlebars = __toESM(require("handlebars"), 1);
|
|
746
743
|
var import_url = require("url");
|
|
747
744
|
var import_pluralize = __toESM(require("pluralize"), 1);
|
|
@@ -768,7 +765,7 @@ var GenerateControllerCommand = class extends import_clipanion2.Command {
|
|
|
768
765
|
const filename = `${import_change_case_all.Case.capital(this.name)}Controller.ts`;
|
|
769
766
|
this.context.stdout.write(`creating migration file ${filename}
|
|
770
767
|
`);
|
|
771
|
-
await fs.mkdir(
|
|
768
|
+
await fs.mkdir(import_neko_config2.config.get("migration.path"), { recursive: true });
|
|
772
769
|
let dirname = typeof __dirname === "string" ? __dirname : void 0;
|
|
773
770
|
if (!dirname) {
|
|
774
771
|
dirname = import_path2.default.dirname((0, import_url.fileURLToPath)(import_meta.url));
|
|
@@ -927,7 +924,7 @@ var GenerateApiDocsCommand = class extends import_clipanion3.Command {
|
|
|
927
924
|
let final_api_docs = {};
|
|
928
925
|
for (let file_path of files_to_merge) {
|
|
929
926
|
let file_json = JSON.parse(await fs2.readFile(file_path, "utf8"));
|
|
930
|
-
import_neko_helper3.Arr.deepMerge(final_api_docs, file_json);
|
|
927
|
+
final_api_docs = import_neko_helper3.Arr.deepMerge(final_api_docs, file_json);
|
|
931
928
|
}
|
|
932
929
|
await fs2.writeFile(
|
|
933
930
|
config_exports.config.get("api_docs.output"),
|