@zintrust/core 0.1.0
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/bin/z.d.ts +7 -0
- package/bin/z.d.ts.map +1 -0
- package/bin/z.js +6 -0
- package/bin/zin.d.ts +7 -0
- package/bin/zin.d.ts.map +1 -0
- package/bin/zin.js +6 -0
- package/bin/zintrust-microservices.d.ts +7 -0
- package/bin/zintrust-microservices.d.ts.map +1 -0
- package/bin/zintrust-microservices.js +165 -0
- package/bin/zintrust.d.ts +9 -0
- package/bin/zintrust.d.ts.map +1 -0
- package/bin/zintrust.js +51 -0
- package/bin/zt.d.ts +7 -0
- package/bin/zt.d.ts.map +1 -0
- package/bin/zt.js +6 -0
- package/package.json +80 -0
- package/src/boot/Application.d.ts +31 -0
- package/src/boot/Application.d.ts.map +1 -0
- package/src/boot/Application.js +159 -0
- package/src/boot/Server.d.ts +23 -0
- package/src/boot/Server.d.ts.map +1 -0
- package/src/boot/Server.js +236 -0
- package/src/boot/bootstrap.d.ts +7 -0
- package/src/boot/bootstrap.d.ts.map +1 -0
- package/src/boot/bootstrap.js +64 -0
- package/src/builder/BundleOptimizer.d.ts +42 -0
- package/src/builder/BundleOptimizer.d.ts.map +1 -0
- package/src/builder/BundleOptimizer.js +356 -0
- package/src/cache/Cache.d.ts +26 -0
- package/src/cache/Cache.d.ts.map +1 -0
- package/src/cache/Cache.js +89 -0
- package/src/cache/CacheDriver.d.ts +28 -0
- package/src/cache/CacheDriver.d.ts.map +1 -0
- package/src/cache/CacheDriver.js +6 -0
- package/src/cache/drivers/KVDriver.d.ts +12 -0
- package/src/cache/drivers/KVDriver.d.ts.map +1 -0
- package/src/cache/drivers/KVDriver.js +54 -0
- package/src/cache/drivers/MemoryDriver.d.ts +12 -0
- package/src/cache/drivers/MemoryDriver.d.ts.map +1 -0
- package/src/cache/drivers/MemoryDriver.js +50 -0
- package/src/cache/drivers/MongoDriver.d.ts +17 -0
- package/src/cache/drivers/MongoDriver.d.ts.map +1 -0
- package/src/cache/drivers/MongoDriver.js +80 -0
- package/src/cache/drivers/RedisDriver.d.ts +12 -0
- package/src/cache/drivers/RedisDriver.d.ts.map +1 -0
- package/src/cache/drivers/RedisDriver.js +79 -0
- package/src/cli/BaseCommand.d.ts +39 -0
- package/src/cli/BaseCommand.d.ts.map +1 -0
- package/src/cli/BaseCommand.js +58 -0
- package/src/cli/CLI.d.ts +21 -0
- package/src/cli/CLI.d.ts.map +1 -0
- package/src/cli/CLI.js +203 -0
- package/src/cli/ErrorHandler.d.ts +23 -0
- package/src/cli/ErrorHandler.d.ts.map +1 -0
- package/src/cli/ErrorHandler.js +95 -0
- package/src/cli/PromptHelper.d.ts +47 -0
- package/src/cli/PromptHelper.d.ts.map +1 -0
- package/src/cli/PromptHelper.js +155 -0
- package/src/cli/commands/AddCommand.d.ts +15 -0
- package/src/cli/commands/AddCommand.d.ts.map +1 -0
- package/src/cli/commands/AddCommand.js +817 -0
- package/src/cli/commands/ConfigCommand.d.ts +15 -0
- package/src/cli/commands/ConfigCommand.d.ts.map +1 -0
- package/src/cli/commands/ConfigCommand.js +273 -0
- package/src/cli/commands/D1MigrateCommand.d.ts +15 -0
- package/src/cli/commands/D1MigrateCommand.d.ts.map +1 -0
- package/src/cli/commands/D1MigrateCommand.js +73 -0
- package/src/cli/commands/DebugCommand.d.ts +15 -0
- package/src/cli/commands/DebugCommand.d.ts.map +1 -0
- package/src/cli/commands/DebugCommand.js +52 -0
- package/src/cli/commands/FixCommand.d.ts +15 -0
- package/src/cli/commands/FixCommand.d.ts.map +1 -0
- package/src/cli/commands/FixCommand.js +80 -0
- package/src/cli/commands/KeyGenerateCommand.d.ts +9 -0
- package/src/cli/commands/KeyGenerateCommand.d.ts.map +1 -0
- package/src/cli/commands/KeyGenerateCommand.js +76 -0
- package/src/cli/commands/LogsCommand.d.ts +19 -0
- package/src/cli/commands/LogsCommand.d.ts.map +1 -0
- package/src/cli/commands/LogsCommand.js +185 -0
- package/src/cli/commands/MigrateCommand.d.ts +15 -0
- package/src/cli/commands/MigrateCommand.d.ts.map +1 -0
- package/src/cli/commands/MigrateCommand.js +56 -0
- package/src/cli/commands/NewCommand.d.ts +32 -0
- package/src/cli/commands/NewCommand.d.ts.map +1 -0
- package/src/cli/commands/NewCommand.js +280 -0
- package/src/cli/commands/PluginCommand.d.ts +9 -0
- package/src/cli/commands/PluginCommand.d.ts.map +1 -0
- package/src/cli/commands/PluginCommand.js +94 -0
- package/src/cli/commands/PrepareCommand.d.ts +8 -0
- package/src/cli/commands/PrepareCommand.d.ts.map +1 -0
- package/src/cli/commands/PrepareCommand.js +51 -0
- package/src/cli/commands/QACommand.d.ts +33 -0
- package/src/cli/commands/QACommand.d.ts.map +1 -0
- package/src/cli/commands/QACommand.js +490 -0
- package/src/cli/commands/SimulateCommand.d.ts +12 -0
- package/src/cli/commands/SimulateCommand.d.ts.map +1 -0
- package/src/cli/commands/SimulateCommand.js +79 -0
- package/src/cli/commands/StartCommand.d.ts +5 -0
- package/src/cli/commands/StartCommand.d.ts.map +1 -0
- package/src/cli/commands/StartCommand.js +227 -0
- package/src/cli/commands/index.d.ts +11 -0
- package/src/cli/commands/index.d.ts.map +1 -0
- package/src/cli/commands/index.js +10 -0
- package/src/cli/config/ConfigManager.d.ts +42 -0
- package/src/cli/config/ConfigManager.d.ts.map +1 -0
- package/src/cli/config/ConfigManager.js +175 -0
- package/src/cli/config/ConfigSchema.d.ts +195 -0
- package/src/cli/config/ConfigSchema.d.ts.map +1 -0
- package/src/cli/config/ConfigSchema.js +171 -0
- package/src/cli/config/ConfigValidator.d.ts +41 -0
- package/src/cli/config/ConfigValidator.d.ts.map +1 -0
- package/src/cli/config/ConfigValidator.js +200 -0
- package/src/cli/config/index.d.ts +8 -0
- package/src/cli/config/index.d.ts.map +1 -0
- package/src/cli/config/index.js +7 -0
- package/src/cli/debug/Dashboard.d.ts +34 -0
- package/src/cli/debug/Dashboard.d.ts.map +1 -0
- package/src/cli/debug/Dashboard.js +152 -0
- package/src/cli/index.d.ts +14 -0
- package/src/cli/index.d.ts.map +1 -0
- package/src/cli/index.js +14 -0
- package/src/cli/logger/Logger.d.ts +43 -0
- package/src/cli/logger/Logger.d.ts.map +1 -0
- package/src/cli/logger/Logger.js +137 -0
- package/src/cli/scaffolding/ControllerGenerator.d.ts +44 -0
- package/src/cli/scaffolding/ControllerGenerator.d.ts.map +1 -0
- package/src/cli/scaffolding/ControllerGenerator.js +540 -0
- package/src/cli/scaffolding/FactoryGenerator.d.ts +47 -0
- package/src/cli/scaffolding/FactoryGenerator.d.ts.map +1 -0
- package/src/cli/scaffolding/FactoryGenerator.js +356 -0
- package/src/cli/scaffolding/FeatureScaffolder.d.ts +40 -0
- package/src/cli/scaffolding/FeatureScaffolder.d.ts.map +1 -0
- package/src/cli/scaffolding/FeatureScaffolder.js +747 -0
- package/src/cli/scaffolding/FileGenerator.d.ts +31 -0
- package/src/cli/scaffolding/FileGenerator.d.ts.map +1 -0
- package/src/cli/scaffolding/FileGenerator.js +222 -0
- package/src/cli/scaffolding/MigrationGenerator.d.ts +35 -0
- package/src/cli/scaffolding/MigrationGenerator.d.ts.map +1 -0
- package/src/cli/scaffolding/MigrationGenerator.js +257 -0
- package/src/cli/scaffolding/ModelGenerator.d.ts +81 -0
- package/src/cli/scaffolding/ModelGenerator.d.ts.map +1 -0
- package/src/cli/scaffolding/ModelGenerator.js +249 -0
- package/src/cli/scaffolding/ProjectScaffolder.d.ts +66 -0
- package/src/cli/scaffolding/ProjectScaffolder.d.ts.map +1 -0
- package/src/cli/scaffolding/ProjectScaffolder.js +439 -0
- package/src/cli/scaffolding/RequestFactoryGenerator.d.ts +50 -0
- package/src/cli/scaffolding/RequestFactoryGenerator.d.ts.map +1 -0
- package/src/cli/scaffolding/RequestFactoryGenerator.js +465 -0
- package/src/cli/scaffolding/ResponseFactoryGenerator.d.ts +43 -0
- package/src/cli/scaffolding/ResponseFactoryGenerator.d.ts.map +1 -0
- package/src/cli/scaffolding/ResponseFactoryGenerator.js +321 -0
- package/src/cli/scaffolding/RouteGenerator.d.ts +66 -0
- package/src/cli/scaffolding/RouteGenerator.d.ts.map +1 -0
- package/src/cli/scaffolding/RouteGenerator.js +306 -0
- package/src/cli/scaffolding/SeederGenerator.d.ts +47 -0
- package/src/cli/scaffolding/SeederGenerator.d.ts.map +1 -0
- package/src/cli/scaffolding/SeederGenerator.js +286 -0
- package/src/cli/scaffolding/ServiceIntegrationTestGenerator.d.ts +40 -0
- package/src/cli/scaffolding/ServiceIntegrationTestGenerator.d.ts.map +1 -0
- package/src/cli/scaffolding/ServiceIntegrationTestGenerator.js +267 -0
- package/src/cli/scaffolding/ServiceRequestFactoryGenerator.d.ts +45 -0
- package/src/cli/scaffolding/ServiceRequestFactoryGenerator.d.ts.map +1 -0
- package/src/cli/scaffolding/ServiceRequestFactoryGenerator.js +397 -0
- package/src/cli/scaffolding/ServiceScaffolder.d.ts +45 -0
- package/src/cli/scaffolding/ServiceScaffolder.d.ts.map +1 -0
- package/src/cli/scaffolding/ServiceScaffolder.js +367 -0
- package/src/cli/scaffolding/TemplateEngine.d.ts +35 -0
- package/src/cli/scaffolding/TemplateEngine.d.ts.map +1 -0
- package/src/cli/scaffolding/TemplateEngine.js +379 -0
- package/src/cli/scaffolding/WorkflowGenerator.d.ts +31 -0
- package/src/cli/scaffolding/WorkflowGenerator.d.ts.map +1 -0
- package/src/cli/scaffolding/WorkflowGenerator.js +193 -0
- package/src/cli/scaffolding/index.d.ts +34 -0
- package/src/cli/scaffolding/index.d.ts.map +1 -0
- package/src/cli/scaffolding/index.js +18 -0
- package/src/cli/utils/DistPackager.d.ts +8 -0
- package/src/cli/utils/DistPackager.d.ts.map +1 -0
- package/src/cli/utils/DistPackager.js +94 -0
- package/src/cli/utils/EnvFileLoader.d.ts +21 -0
- package/src/cli/utils/EnvFileLoader.d.ts.map +1 -0
- package/src/cli/utils/EnvFileLoader.js +166 -0
- package/src/cli/utils/spawn.d.ts +11 -0
- package/src/cli/utils/spawn.d.ts.map +1 -0
- package/src/cli/utils/spawn.js +81 -0
- package/src/common/index.d.ts +87 -0
- package/src/common/index.d.ts.map +1 -0
- package/src/common/index.js +207 -0
- package/src/config/SecretsManager.d.ts +122 -0
- package/src/config/SecretsManager.d.ts.map +1 -0
- package/src/config/SecretsManager.js +328 -0
- package/src/config/app.d.ts +56 -0
- package/src/config/app.d.ts.map +1 -0
- package/src/config/app.js +77 -0
- package/src/config/cache.d.ts +76 -0
- package/src/config/cache.d.ts.map +1 -0
- package/src/config/cache.js +62 -0
- package/src/config/constants.d.ts +108 -0
- package/src/config/constants.d.ts.map +1 -0
- package/src/config/constants.js +64 -0
- package/src/config/database.d.ts +122 -0
- package/src/config/database.d.ts.map +1 -0
- package/src/config/database.js +89 -0
- package/src/config/env.d.ts +56 -0
- package/src/config/env.d.ts.map +1 -0
- package/src/config/env.js +133 -0
- package/src/config/features.d.ts +27 -0
- package/src/config/features.d.ts.map +1 -0
- package/src/config/features.js +49 -0
- package/src/config/index.d.ts +554 -0
- package/src/config/index.d.ts.map +1 -0
- package/src/config/index.js +31 -0
- package/src/config/logger.d.ts +17 -0
- package/src/config/logger.d.ts.map +1 -0
- package/src/config/logger.js +77 -0
- package/src/config/microservices.d.ts +88 -0
- package/src/config/microservices.d.ts.map +1 -0
- package/src/config/microservices.js +90 -0
- package/src/config/queue.d.ts +107 -0
- package/src/config/queue.d.ts.map +1 -0
- package/src/config/queue.js +74 -0
- package/src/config/security.d.ts +108 -0
- package/src/config/security.d.ts.map +1 -0
- package/src/config/security.js +134 -0
- package/src/config/storage.d.ts +105 -0
- package/src/config/storage.d.ts.map +1 -0
- package/src/config/storage.js +79 -0
- package/src/container/ServiceContainer.d.ts +25 -0
- package/src/container/ServiceContainer.d.ts.map +1 -0
- package/src/container/ServiceContainer.js +75 -0
- package/src/database/migrations/index.d.ts +2 -0
- package/src/database/migrations/index.d.ts.map +1 -0
- package/src/database/migrations/index.js +1 -0
- package/src/exceptions/ZintrustError.d.ts +88 -0
- package/src/exceptions/ZintrustError.d.ts.map +1 -0
- package/src/exceptions/ZintrustError.js +110 -0
- package/src/features/Auth.d.ts +20 -0
- package/src/features/Auth.d.ts.map +1 -0
- package/src/features/Auth.js +32 -0
- package/src/features/Queue.d.ts +21 -0
- package/src/features/Queue.d.ts.map +1 -0
- package/src/features/Queue.js +59 -0
- package/src/functions/cloudflare.d.ts +5 -0
- package/src/functions/cloudflare.d.ts.map +1 -0
- package/src/functions/cloudflare.js +34 -0
- package/src/functions/deno.d.ts +3 -0
- package/src/functions/deno.d.ts.map +1 -0
- package/src/functions/deno.js +31 -0
- package/src/functions/lambda.d.ts +2 -0
- package/src/functions/lambda.d.ts.map +1 -0
- package/src/functions/lambda.js +32 -0
- package/src/http/Controller.d.ts +20 -0
- package/src/http/Controller.d.ts.map +1 -0
- package/src/http/Controller.js +46 -0
- package/src/http/Kernel.d.ts +24 -0
- package/src/http/Kernel.d.ts.map +1 -0
- package/src/http/Kernel.js +72 -0
- package/src/http/Request.d.ts +36 -0
- package/src/http/Request.d.ts.map +1 -0
- package/src/http/Request.js +142 -0
- package/src/http/Response.d.ts +32 -0
- package/src/http/Response.d.ts.map +1 -0
- package/src/http/Response.js +70 -0
- package/src/index.d.ts +43 -0
- package/src/index.d.ts.map +1 -0
- package/src/index.js +37 -0
- package/src/microservices/MicroserviceBootstrap.d.ts +75 -0
- package/src/microservices/MicroserviceBootstrap.d.ts.map +1 -0
- package/src/microservices/MicroserviceBootstrap.js +285 -0
- package/src/microservices/MicroserviceGenerator.d.ts +27 -0
- package/src/microservices/MicroserviceGenerator.d.ts.map +1 -0
- package/src/microservices/MicroserviceGenerator.js +436 -0
- package/src/microservices/MicroserviceManager.d.ts +68 -0
- package/src/microservices/MicroserviceManager.d.ts.map +1 -0
- package/src/microservices/MicroserviceManager.js +266 -0
- package/src/microservices/PostgresAdapter.d.ts +90 -0
- package/src/microservices/PostgresAdapter.d.ts.map +1 -0
- package/src/microservices/PostgresAdapter.js +286 -0
- package/src/microservices/RequestTracingMiddleware.d.ts +41 -0
- package/src/microservices/RequestTracingMiddleware.d.ts.map +1 -0
- package/src/microservices/RequestTracingMiddleware.js +122 -0
- package/src/microservices/ServiceAuthMiddleware.d.ts +58 -0
- package/src/microservices/ServiceAuthMiddleware.d.ts.map +1 -0
- package/src/microservices/ServiceAuthMiddleware.js +240 -0
- package/src/microservices/ServiceBundler.d.ts +45 -0
- package/src/microservices/ServiceBundler.d.ts.map +1 -0
- package/src/microservices/ServiceBundler.js +297 -0
- package/src/microservices/ServiceHealthMonitor.d.ts +96 -0
- package/src/microservices/ServiceHealthMonitor.d.ts.map +1 -0
- package/src/microservices/ServiceHealthMonitor.js +379 -0
- package/src/middleware/CsrfMiddleware.d.ts +19 -0
- package/src/middleware/CsrfMiddleware.d.ts.map +1 -0
- package/src/middleware/CsrfMiddleware.js +121 -0
- package/src/middleware/MiddlewareStack.d.ts +27 -0
- package/src/middleware/MiddlewareStack.d.ts.map +1 -0
- package/src/middleware/MiddlewareStack.js +43 -0
- package/src/middleware/RateLimiter.d.ts +22 -0
- package/src/middleware/RateLimiter.d.ts.map +1 -0
- package/src/middleware/RateLimiter.js +72 -0
- package/src/middleware/SecurityMiddleware.d.ts +33 -0
- package/src/middleware/SecurityMiddleware.d.ts.map +1 -0
- package/src/middleware/SecurityMiddleware.js +106 -0
- package/src/middleware/index.d.ts +9 -0
- package/src/middleware/index.d.ts.map +1 -0
- package/src/middleware/index.js +8 -0
- package/src/node-singletons/child-process.d.ts +7 -0
- package/src/node-singletons/child-process.d.ts.map +1 -0
- package/src/node-singletons/child-process.js +6 -0
- package/src/node-singletons/crypto.d.ts +7 -0
- package/src/node-singletons/crypto.d.ts.map +1 -0
- package/src/node-singletons/crypto.js +6 -0
- package/src/node-singletons/events.d.ts +7 -0
- package/src/node-singletons/events.d.ts.map +1 -0
- package/src/node-singletons/events.js +6 -0
- package/src/node-singletons/fs.d.ts +12 -0
- package/src/node-singletons/fs.d.ts.map +1 -0
- package/src/node-singletons/fs.js +14 -0
- package/src/node-singletons/http.d.ts +8 -0
- package/src/node-singletons/http.d.ts.map +1 -0
- package/src/node-singletons/http.js +6 -0
- package/src/node-singletons/index.d.ts +30 -0
- package/src/node-singletons/index.d.ts.map +1 -0
- package/src/node-singletons/index.js +31 -0
- package/src/node-singletons/os.d.ts +9 -0
- package/src/node-singletons/os.d.ts.map +1 -0
- package/src/node-singletons/os.js +9 -0
- package/src/node-singletons/path.d.ts +7 -0
- package/src/node-singletons/path.d.ts.map +1 -0
- package/src/node-singletons/path.js +6 -0
- package/src/node-singletons/perf-hooks.d.ts +7 -0
- package/src/node-singletons/perf-hooks.d.ts.map +1 -0
- package/src/node-singletons/perf-hooks.js +6 -0
- package/src/node-singletons/readline.d.ts +10 -0
- package/src/node-singletons/readline.d.ts.map +1 -0
- package/src/node-singletons/readline.js +9 -0
- package/src/node-singletons/url.d.ts +7 -0
- package/src/node-singletons/url.d.ts.map +1 -0
- package/src/node-singletons/url.js +6 -0
- package/src/orm/ConnectionManager.d.ts +118 -0
- package/src/orm/ConnectionManager.d.ts.map +1 -0
- package/src/orm/ConnectionManager.js +401 -0
- package/src/orm/Database.d.ts +31 -0
- package/src/orm/Database.d.ts.map +1 -0
- package/src/orm/Database.js +163 -0
- package/src/orm/DatabaseAdapter.d.ts +96 -0
- package/src/orm/DatabaseAdapter.d.ts.map +1 -0
- package/src/orm/DatabaseAdapter.js +40 -0
- package/src/orm/Model.d.ts +91 -0
- package/src/orm/Model.d.ts.map +1 -0
- package/src/orm/Model.js +206 -0
- package/src/orm/QueryBuilder.d.ts +52 -0
- package/src/orm/QueryBuilder.d.ts.map +1 -0
- package/src/orm/QueryBuilder.js +134 -0
- package/src/orm/Relationships.d.ts +53 -0
- package/src/orm/Relationships.d.ts.map +1 -0
- package/src/orm/Relationships.js +98 -0
- package/src/orm/Schema.d.ts +123 -0
- package/src/orm/Schema.d.ts.map +1 -0
- package/src/orm/Schema.js +169 -0
- package/src/orm/adapters/D1Adapter.d.ts +15 -0
- package/src/orm/adapters/D1Adapter.d.ts.map +1 -0
- package/src/orm/adapters/D1Adapter.js +125 -0
- package/src/orm/adapters/MySQLAdapter.d.ts +16 -0
- package/src/orm/adapters/MySQLAdapter.d.ts.map +1 -0
- package/src/orm/adapters/MySQLAdapter.js +87 -0
- package/src/orm/adapters/PostgreSQLAdapter.d.ts +16 -0
- package/src/orm/adapters/PostgreSQLAdapter.d.ts.map +1 -0
- package/src/orm/adapters/PostgreSQLAdapter.js +87 -0
- package/src/orm/adapters/SQLServerAdapter.d.ts +16 -0
- package/src/orm/adapters/SQLServerAdapter.d.ts.map +1 -0
- package/src/orm/adapters/SQLServerAdapter.js +81 -0
- package/src/orm/adapters/SQLiteAdapter.d.ts +11 -0
- package/src/orm/adapters/SQLiteAdapter.d.ts.map +1 -0
- package/src/orm/adapters/SQLiteAdapter.js +131 -0
- package/src/performance/Benchmark.d.ts +87 -0
- package/src/performance/Benchmark.d.ts.map +1 -0
- package/src/performance/Benchmark.js +304 -0
- package/src/performance/CodeGenerationBenchmark.d.ts +23 -0
- package/src/performance/CodeGenerationBenchmark.d.ts.map +1 -0
- package/src/performance/CodeGenerationBenchmark.js +249 -0
- package/src/performance/Optimizer.d.ts +99 -0
- package/src/performance/Optimizer.d.ts.map +1 -0
- package/src/performance/Optimizer.js +396 -0
- package/src/performance/establish-baseline.d.ts +9 -0
- package/src/performance/establish-baseline.d.ts.map +1 -0
- package/src/performance/establish-baseline.js +55 -0
- package/src/profiling/MemoryProfiler.d.ts +32 -0
- package/src/profiling/MemoryProfiler.d.ts.map +1 -0
- package/src/profiling/MemoryProfiler.js +84 -0
- package/src/profiling/N1Detector.d.ts +16 -0
- package/src/profiling/N1Detector.d.ts.map +1 -0
- package/src/profiling/N1Detector.js +120 -0
- package/src/profiling/QueryLogger.d.ts +107 -0
- package/src/profiling/QueryLogger.d.ts.map +1 -0
- package/src/profiling/QueryLogger.js +148 -0
- package/src/profiling/RequestProfiler.d.ts +30 -0
- package/src/profiling/RequestProfiler.d.ts.map +1 -0
- package/src/profiling/RequestProfiler.js +94 -0
- package/src/profiling/types.d.ts +77 -0
- package/src/profiling/types.d.ts.map +1 -0
- package/src/profiling/types.js +5 -0
- package/src/routing/Router.d.ts +52 -0
- package/src/routing/Router.d.ts.map +1 -0
- package/src/routing/Router.js +191 -0
- package/src/runtime/PluginManager.d.ts +30 -0
- package/src/runtime/PluginManager.d.ts.map +1 -0
- package/src/runtime/PluginManager.js +197 -0
- package/src/runtime/PluginRegistry.d.ts +22 -0
- package/src/runtime/PluginRegistry.d.ts.map +1 -0
- package/src/runtime/PluginRegistry.js +93 -0
- package/src/runtime/RuntimeAdapter.d.ts +126 -0
- package/src/runtime/RuntimeAdapter.d.ts.map +1 -0
- package/src/runtime/RuntimeAdapter.js +127 -0
- package/src/runtime/RuntimeDetector.d.ts +15 -0
- package/src/runtime/RuntimeDetector.d.ts.map +1 -0
- package/src/runtime/RuntimeDetector.js +219 -0
- package/src/runtime/adapters/CloudflareAdapter.d.ts +43 -0
- package/src/runtime/adapters/CloudflareAdapter.d.ts.map +1 -0
- package/src/runtime/adapters/CloudflareAdapter.js +175 -0
- package/src/runtime/adapters/DenoAdapter.d.ts +30 -0
- package/src/runtime/adapters/DenoAdapter.d.ts.map +1 -0
- package/src/runtime/adapters/DenoAdapter.js +191 -0
- package/src/runtime/adapters/FargateAdapter.d.ts +40 -0
- package/src/runtime/adapters/FargateAdapter.d.ts.map +1 -0
- package/src/runtime/adapters/FargateAdapter.js +156 -0
- package/src/runtime/adapters/LambdaAdapter.d.ts +13 -0
- package/src/runtime/adapters/LambdaAdapter.d.ts.map +1 -0
- package/src/runtime/adapters/LambdaAdapter.js +302 -0
- package/src/runtime/adapters/NodeServerAdapter.d.ts +16 -0
- package/src/runtime/adapters/NodeServerAdapter.d.ts.map +1 -0
- package/src/runtime/adapters/NodeServerAdapter.js +199 -0
- package/src/scripts/TemplateSync.d.ts +7 -0
- package/src/scripts/TemplateSync.d.ts.map +1 -0
- package/src/scripts/TemplateSync.js +234 -0
- package/src/security/CsrfTokenManager.d.ts +28 -0
- package/src/security/CsrfTokenManager.d.ts.map +1 -0
- package/src/security/CsrfTokenManager.js +78 -0
- package/src/security/Encryptor.d.ts +15 -0
- package/src/security/Encryptor.d.ts.map +1 -0
- package/src/security/Encryptor.js +142 -0
- package/src/security/JwtManager.d.ts +41 -0
- package/src/security/JwtManager.d.ts.map +1 -0
- package/src/security/JwtManager.js +229 -0
- package/src/security/UrlValidator.d.ts +21 -0
- package/src/security/UrlValidator.d.ts.map +1 -0
- package/src/security/UrlValidator.js +42 -0
- package/src/security/XssProtection.d.ts +24 -0
- package/src/security/XssProtection.d.ts.map +1 -0
- package/src/security/XssProtection.js +133 -0
- package/src/templates/TemplateRegistry.d.ts +40 -0
- package/src/templates/TemplateRegistry.d.ts.map +1 -0
- package/src/templates/TemplateRegistry.js +78 -0
- package/src/templates/TemplateRegistry.ts +91 -0
- package/src/templates/adapters/MySQLAdapter.ts.tpl +97 -0
- package/src/templates/adapters/PostgreSQLAdapter.ts.tpl +101 -0
- package/src/templates/adapters/SQLServerAdapter.ts.tpl +95 -0
- package/src/templates/adapters/SQLiteAdapter.ts.tpl +189 -0
- package/src/templates/features/Auth.ts.tpl +40 -0
- package/src/templates/features/Queue.ts.tpl +75 -0
- package/src/templates/project/basic/.env.example.tpl +26 -0
- package/src/templates/project/basic/.env.tpl +164 -0
- package/src/templates/project/basic/README.md.tpl +13 -0
- package/src/templates/project/basic/app/Controllers/UserController.ts.tpl +155 -0
- package/src/templates/project/basic/app/Middleware/ProfilerMiddleware.ts.tpl +55 -0
- package/src/templates/project/basic/app/Middleware/index.ts.tpl +304 -0
- package/src/templates/project/basic/app/Models/Post.ts.tpl +30 -0
- package/src/templates/project/basic/app/Models/User.ts.tpl +53 -0
- package/src/templates/project/basic/config/SecretsManager.ts.tpl +453 -0
- package/src/templates/project/basic/config/app.ts.tpl +97 -0
- package/src/templates/project/basic/config/cache.ts.tpl +117 -0
- package/src/templates/project/basic/config/constants.ts.tpl +70 -0
- package/src/templates/project/basic/config/database.ts.tpl +152 -0
- package/src/templates/project/basic/config/env.ts.tpl +148 -0
- package/src/templates/project/basic/config/features.ts.tpl +57 -0
- package/src/templates/project/basic/config/index.ts.tpl +36 -0
- package/src/templates/project/basic/config/logger.ts.tpl +95 -0
- package/src/templates/project/basic/config/microservices.ts.tpl +104 -0
- package/src/templates/project/basic/config/queue.ts.tpl +134 -0
- package/src/templates/project/basic/config/security.ts.tpl +149 -0
- package/src/templates/project/basic/config/storage.ts.tpl +136 -0
- package/src/templates/project/basic/database/factories/.gitkeep.tpl +0 -0
- package/src/templates/project/basic/database/migrations/.gitkeep.tpl +0 -0
- package/src/templates/project/basic/database/migrations/index.ts.tpl +2 -0
- package/src/templates/project/basic/database/seeders/.gitkeep.tpl +0 -0
- package/src/templates/project/basic/package.json.tpl +22 -0
- package/src/templates/project/basic/routes/api.ts.tpl +135 -0
- package/src/templates/project/basic/src/index.ts.tpl +49 -0
- package/src/templates/project/basic/template.json +17 -0
- package/src/templates/project/basic/tsconfig.json.tpl +20 -0
- package/src/validation/ValidationError.d.ts +42 -0
- package/src/validation/ValidationError.d.ts.map +1 -0
- package/src/validation/ValidationError.js +53 -0
- package/src/validation/Validator.d.ts +60 -0
- package/src/validation/Validator.d.ts.map +1 -0
- package/src/validation/Validator.js +190 -0
|
@@ -0,0 +1,540 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ControllerGenerator - Generate controller files
|
|
3
|
+
* Creates CRUD controllers with validation and error handling
|
|
4
|
+
*/
|
|
5
|
+
import { FileGenerator } from '../scaffolding/FileGenerator';
|
|
6
|
+
import { Logger } from '../../config/logger';
|
|
7
|
+
import * as path from 'node:path';
|
|
8
|
+
/**
|
|
9
|
+
* ControllerGenerator creates HTTP request handlers
|
|
10
|
+
*/
|
|
11
|
+
const CONTROLLER_TYPES = {
|
|
12
|
+
crud: (options) => generateCrudController(options),
|
|
13
|
+
resource: (options) => generateResourceController(options),
|
|
14
|
+
api: (options) => generateApiController(options),
|
|
15
|
+
graphql: (options) => generateGraphQLController(options),
|
|
16
|
+
websocket: (options) => generateWebSocketController(options),
|
|
17
|
+
webhook: (options) => generateWebhookController(options),
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Validate controller options
|
|
21
|
+
*/
|
|
22
|
+
export function validateOptions(options) {
|
|
23
|
+
const errors = [];
|
|
24
|
+
if (options.name === undefined ||
|
|
25
|
+
options.name === '' ||
|
|
26
|
+
/^[A-Z][a-zA-Z\d]*Controller$/.test(options.name) === false) {
|
|
27
|
+
errors.push(`Invalid controller name '${options.name}'. Must end with 'Controller'.`);
|
|
28
|
+
}
|
|
29
|
+
if (options.controllerPath === undefined ||
|
|
30
|
+
options.controllerPath === '' ||
|
|
31
|
+
FileGenerator.directoryExists(options.controllerPath) === false) {
|
|
32
|
+
errors.push(`Controllers directory does not exist: ${options.controllerPath}`);
|
|
33
|
+
}
|
|
34
|
+
if (options.type !== undefined &&
|
|
35
|
+
Object.keys(CONTROLLER_TYPES).includes(options.type) === false) {
|
|
36
|
+
errors.push(`Invalid controller type '${options.type}'. Supported: ${Object.keys(CONTROLLER_TYPES).join(', ')}`);
|
|
37
|
+
}
|
|
38
|
+
return {
|
|
39
|
+
valid: errors.length === 0,
|
|
40
|
+
errors,
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Generate controller file
|
|
45
|
+
*/
|
|
46
|
+
export async function generateController(options) {
|
|
47
|
+
const validation = validateOptions(options);
|
|
48
|
+
if (validation.valid === false) {
|
|
49
|
+
return {
|
|
50
|
+
success: false,
|
|
51
|
+
controllerName: options.name,
|
|
52
|
+
controllerFile: '',
|
|
53
|
+
message: `Validation failed: ${validation.errors.join(', ')}`,
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
try {
|
|
57
|
+
const controllerType = options.type ?? 'resource';
|
|
58
|
+
const controllerContent = buildControllerCode(options, controllerType);
|
|
59
|
+
const controllerFile = path.join(options.controllerPath, `${options.name}.ts`);
|
|
60
|
+
const created = FileGenerator.writeFile(controllerFile, controllerContent);
|
|
61
|
+
if (created === false) {
|
|
62
|
+
return {
|
|
63
|
+
success: false,
|
|
64
|
+
controllerName: options.name,
|
|
65
|
+
controllerFile,
|
|
66
|
+
message: `Failed to create controller file`,
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
Logger.info(`✅ Generated controller: ${options.name}`);
|
|
70
|
+
return {
|
|
71
|
+
success: true,
|
|
72
|
+
controllerName: options.name,
|
|
73
|
+
controllerFile,
|
|
74
|
+
message: `Controller ${options.name} created successfully`,
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
catch (error) {
|
|
78
|
+
Logger.error(`Failed to generate controller: ${error.message}`);
|
|
79
|
+
return {
|
|
80
|
+
success: false,
|
|
81
|
+
controllerName: options.name,
|
|
82
|
+
controllerFile: '',
|
|
83
|
+
message: `Error: ${error.message}`,
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Build controller TypeScript code
|
|
89
|
+
*/
|
|
90
|
+
function buildControllerCode(options, type) {
|
|
91
|
+
if (type === 'crud' || type === 'resource') {
|
|
92
|
+
return generateCrudController(options);
|
|
93
|
+
}
|
|
94
|
+
else if (type === 'api') {
|
|
95
|
+
return generateApiController(options);
|
|
96
|
+
}
|
|
97
|
+
else if (type === 'graphql') {
|
|
98
|
+
return generateGraphQLController(options);
|
|
99
|
+
}
|
|
100
|
+
else if (type === 'websocket') {
|
|
101
|
+
return generateWebSocketController(options);
|
|
102
|
+
}
|
|
103
|
+
else if (type === 'webhook') {
|
|
104
|
+
return generateWebhookController(options);
|
|
105
|
+
}
|
|
106
|
+
return '';
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Generate CRUD/Resource controller
|
|
110
|
+
*/
|
|
111
|
+
function generateCrudController(options) {
|
|
112
|
+
const modelName = options?.model ?? 'Model';
|
|
113
|
+
const className = options?.name ?? 'ResourceController';
|
|
114
|
+
return `/**
|
|
115
|
+
* ${className}
|
|
116
|
+
* Auto-generated CRUD controller
|
|
117
|
+
*/
|
|
118
|
+
|
|
119
|
+
import { IRequest } from '../../http/Request';
|
|
120
|
+
import { IResponse } from '../../http/Response';
|
|
121
|
+
import { Controller } from '../../http/Controller';
|
|
122
|
+
import { ${modelName} } from '@app/Models/${modelName}';
|
|
123
|
+
|
|
124
|
+
export const ${className} = Object.freeze({
|
|
125
|
+
...Controller,
|
|
126
|
+
${buildIndexMethod(modelName)},
|
|
127
|
+
|
|
128
|
+
${buildShowMethod(modelName)},
|
|
129
|
+
|
|
130
|
+
${buildStoreMethod(modelName)},
|
|
131
|
+
|
|
132
|
+
${buildUpdateMethod(modelName)},
|
|
133
|
+
|
|
134
|
+
${buildDestroyMethod(modelName)},
|
|
135
|
+
|
|
136
|
+
${buildHandleErrorMethod()},
|
|
137
|
+
});
|
|
138
|
+
`;
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Build index method
|
|
142
|
+
*/
|
|
143
|
+
function buildIndexMethod(modelName) {
|
|
144
|
+
return ` /**
|
|
145
|
+
* GET /
|
|
146
|
+
* List all records
|
|
147
|
+
*/
|
|
148
|
+
async index(req: IRequest, res: IResponse): Promise<void> {
|
|
149
|
+
try {
|
|
150
|
+
const page = req.getQuery('page') as string || '1';
|
|
151
|
+
const limit = req.getQuery('limit') as string || '10';
|
|
152
|
+
|
|
153
|
+
const records = await ${modelName}.query()
|
|
154
|
+
.limit(parseInt(limit, 10))
|
|
155
|
+
.offset((parseInt(page, 10) - 1) * parseInt(limit, 10))
|
|
156
|
+
.get();
|
|
157
|
+
|
|
158
|
+
res.json({
|
|
159
|
+
data: records,
|
|
160
|
+
page: parseInt(page, 10),
|
|
161
|
+
limit: parseInt(limit, 10),
|
|
162
|
+
});
|
|
163
|
+
} catch (error) {
|
|
164
|
+
handleError(res, error);
|
|
165
|
+
}
|
|
166
|
+
}`;
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Build show method
|
|
170
|
+
*/
|
|
171
|
+
function buildShowMethod(modelName) {
|
|
172
|
+
return ` /**
|
|
173
|
+
* GET /:id
|
|
174
|
+
* Show single record
|
|
175
|
+
*/
|
|
176
|
+
async show(req: IRequest, res: IResponse): Promise<void> {
|
|
177
|
+
try {
|
|
178
|
+
const id = req.getParam('id');
|
|
179
|
+
const record = await ${modelName}.find(id);
|
|
180
|
+
|
|
181
|
+
if (record === null) {
|
|
182
|
+
return res.setStatus(404).json({ error: 'Not found' });
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
res.json({ data: record });
|
|
186
|
+
} catch (error) {
|
|
187
|
+
handleError(res, error);
|
|
188
|
+
}
|
|
189
|
+
}`;
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* Build store method
|
|
193
|
+
*/
|
|
194
|
+
function buildStoreMethod(modelName) {
|
|
195
|
+
return ` /**
|
|
196
|
+
* POST /
|
|
197
|
+
* Create new record
|
|
198
|
+
*/
|
|
199
|
+
async store(req: IRequest, res: IResponse): Promise<void> {
|
|
200
|
+
try {
|
|
201
|
+
const body = req.getBody() as Record<string, unknown>;
|
|
202
|
+
const record = await ${modelName}.create(body);
|
|
203
|
+
|
|
204
|
+
res.setStatus(201).json({ data: record });
|
|
205
|
+
} catch (error) {
|
|
206
|
+
handleError(res, error);
|
|
207
|
+
}
|
|
208
|
+
}`;
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* Build update method
|
|
212
|
+
*/
|
|
213
|
+
function buildUpdateMethod(modelName) {
|
|
214
|
+
return ` /**
|
|
215
|
+
* PUT /:id
|
|
216
|
+
* Update record
|
|
217
|
+
*/
|
|
218
|
+
async update(req: IRequest, res: IResponse): Promise<void> {
|
|
219
|
+
try {
|
|
220
|
+
const id = req.getParam('id');
|
|
221
|
+
const body = req.getBody() as Record<string, unknown>;
|
|
222
|
+
|
|
223
|
+
const record = await ${modelName}.find(id);
|
|
224
|
+
if (record === null) {
|
|
225
|
+
return res.setStatus(404).json({ error: 'Not found' });
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
record.fill(body);
|
|
229
|
+
await record.save();
|
|
230
|
+
|
|
231
|
+
res.json({ data: record });
|
|
232
|
+
} catch (error) {
|
|
233
|
+
handleError(res, error);
|
|
234
|
+
}
|
|
235
|
+
}`;
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* Build destroy method
|
|
239
|
+
*/
|
|
240
|
+
function buildDestroyMethod(modelName) {
|
|
241
|
+
return ` /**
|
|
242
|
+
* DELETE /:id
|
|
243
|
+
* Delete record
|
|
244
|
+
*/
|
|
245
|
+
async destroy(req: IRequest, res: IResponse): Promise<void> {
|
|
246
|
+
try {
|
|
247
|
+
const id = req.getParam('id');
|
|
248
|
+
const record = await ${modelName}.find(id);
|
|
249
|
+
|
|
250
|
+
if (record === null) {
|
|
251
|
+
return res.setStatus(404).json({ error: 'Not found' });
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
await record.delete();
|
|
255
|
+
res.setStatus(204).send();
|
|
256
|
+
} catch (error) {
|
|
257
|
+
handleError(res, error);
|
|
258
|
+
}
|
|
259
|
+
}`;
|
|
260
|
+
}
|
|
261
|
+
/**
|
|
262
|
+
* Build handle error method
|
|
263
|
+
*/
|
|
264
|
+
function buildHandleErrorMethod() {
|
|
265
|
+
return ` /**
|
|
266
|
+
* Handle controller errors
|
|
267
|
+
*/
|
|
268
|
+
handleError(res: IResponse, error: unknown): void {
|
|
269
|
+
const message = error instanceof Error ? error.message : 'Internal server error';
|
|
270
|
+
res.setStatus(500).json({ error: message });
|
|
271
|
+
}`;
|
|
272
|
+
}
|
|
273
|
+
/**
|
|
274
|
+
* Generate Resource controller (alias for CRUD)
|
|
275
|
+
*/
|
|
276
|
+
function generateResourceController(options) {
|
|
277
|
+
return generateCrudController(options);
|
|
278
|
+
}
|
|
279
|
+
/**
|
|
280
|
+
* Generate API controller
|
|
281
|
+
*/
|
|
282
|
+
function generateApiController(options) {
|
|
283
|
+
const className = options?.name ?? 'ApiController';
|
|
284
|
+
return `/**
|
|
285
|
+
* ${className}
|
|
286
|
+
* Auto-generated API controller
|
|
287
|
+
*/
|
|
288
|
+
|
|
289
|
+
import { IRequest } from '../../http/Request';
|
|
290
|
+
import { IResponse } from '../../http/Response';
|
|
291
|
+
import { Controller } from '../../http/Controller';
|
|
292
|
+
|
|
293
|
+
export const ${className} = {\n ...Controller,
|
|
294
|
+
${buildApiControllerBody()},
|
|
295
|
+
};
|
|
296
|
+
`;
|
|
297
|
+
}
|
|
298
|
+
/**
|
|
299
|
+
* Build API controller body
|
|
300
|
+
*/
|
|
301
|
+
function buildApiControllerBody() {
|
|
302
|
+
return `${buildApiMainHandler()},
|
|
303
|
+
|
|
304
|
+
${buildApiMethodHandlers()},
|
|
305
|
+
|
|
306
|
+
${buildHandleErrorMethod()}`;
|
|
307
|
+
}
|
|
308
|
+
/**
|
|
309
|
+
* Build API main handler
|
|
310
|
+
*/
|
|
311
|
+
function buildApiMainHandler() {
|
|
312
|
+
return ` /**
|
|
313
|
+
* API endpoint template
|
|
314
|
+
*/
|
|
315
|
+
async handleRequest(req: IRequest, res: IResponse): Promise<void> {
|
|
316
|
+
try {
|
|
317
|
+
const method = req.getMethod();
|
|
318
|
+
|
|
319
|
+
// Route to appropriate handler
|
|
320
|
+
if (method === 'GET') {
|
|
321
|
+
await handleGet(req, res);
|
|
322
|
+
} else if (method === 'POST') {
|
|
323
|
+
await handlePost(req, res);
|
|
324
|
+
} else if (method === 'PUT') {
|
|
325
|
+
await handlePut(req, res);
|
|
326
|
+
} else if (method === 'DELETE') {
|
|
327
|
+
await handleDelete(req, res);
|
|
328
|
+
} else {
|
|
329
|
+
res.setStatus(405).json({ error: 'Method not allowed' });
|
|
330
|
+
}
|
|
331
|
+
} catch (error) {
|
|
332
|
+
handleError(res, error);
|
|
333
|
+
}
|
|
334
|
+
}`;
|
|
335
|
+
}
|
|
336
|
+
/**
|
|
337
|
+
* Build API method handlers
|
|
338
|
+
*/
|
|
339
|
+
function buildApiMethodHandlers() {
|
|
340
|
+
return ` /**
|
|
341
|
+
* Handle GET requests
|
|
342
|
+
*/
|
|
343
|
+
async handleGet(_req: IRequest, res: IResponse): Promise<void> {
|
|
344
|
+
res.json({ message: 'GET endpoint' });
|
|
345
|
+
},
|
|
346
|
+
|
|
347
|
+
/**
|
|
348
|
+
* Handle POST requests
|
|
349
|
+
*/
|
|
350
|
+
async handlePost(_req: IRequest, res: IResponse): Promise<void> {
|
|
351
|
+
res.setStatus(201).json({ message: 'POST endpoint' });
|
|
352
|
+
},
|
|
353
|
+
|
|
354
|
+
/**
|
|
355
|
+
* Handle PUT requests
|
|
356
|
+
*/
|
|
357
|
+
async handlePut(_req: IRequest, res: IResponse): Promise<void> {
|
|
358
|
+
res.json({ message: 'PUT endpoint' });
|
|
359
|
+
},
|
|
360
|
+
|
|
361
|
+
/**
|
|
362
|
+
* Handle DELETE requests
|
|
363
|
+
*/
|
|
364
|
+
async handleDelete(_req: IRequest, res: IResponse): Promise<void> {
|
|
365
|
+
res.setStatus(204).send();
|
|
366
|
+
}`;
|
|
367
|
+
}
|
|
368
|
+
/**
|
|
369
|
+
* Generate GraphQL controller
|
|
370
|
+
*/
|
|
371
|
+
function generateGraphQLController(options) {
|
|
372
|
+
const className = options?.name ?? 'GraphQLController';
|
|
373
|
+
return `/**
|
|
374
|
+
* ${className}
|
|
375
|
+
* Auto-generated GraphQL controller
|
|
376
|
+
*/
|
|
377
|
+
|
|
378
|
+
import { IRequest } from '../../http/Request';
|
|
379
|
+
import { IResponse } from '../../http/Response';
|
|
380
|
+
import { Controller } from '../../http/Controller';
|
|
381
|
+
|
|
382
|
+
export const ${className} = {\n ...Controller,
|
|
383
|
+
/**
|
|
384
|
+
* GraphQL endpoint
|
|
385
|
+
*/
|
|
386
|
+
async handle(req: IRequest, res: IResponse): Promise<void> {
|
|
387
|
+
try {
|
|
388
|
+
if (req.getMethod() !== 'POST') {
|
|
389
|
+
return res.setStatus(405).json({ error: 'Method not allowed' });
|
|
390
|
+
}
|
|
391
|
+
|
|
392
|
+
const body = req.getBody() as Record<string, unknown>;
|
|
393
|
+
const query = body.query as string;
|
|
394
|
+
|
|
395
|
+
// TODO: Execute GraphQL query
|
|
396
|
+
const result = await executeQuery(query);
|
|
397
|
+
|
|
398
|
+
res.json(result);
|
|
399
|
+
} catch (error) {
|
|
400
|
+
handleError(res, error);
|
|
401
|
+
}
|
|
402
|
+
},
|
|
403
|
+
|
|
404
|
+
/**
|
|
405
|
+
* Execute GraphQL query
|
|
406
|
+
*/
|
|
407
|
+
async executeQuery(query: string): Promise<Record<string, unknown>> {
|
|
408
|
+
// TODO: Implement GraphQL execution
|
|
409
|
+
return { data: null };
|
|
410
|
+
},
|
|
411
|
+
|
|
412
|
+
/**
|
|
413
|
+
* Handle controller errors
|
|
414
|
+
*/
|
|
415
|
+
handleError(res: IResponse, error: unknown): void {
|
|
416
|
+
const message = error instanceof Error ? error.message : 'GraphQL error';
|
|
417
|
+
res.setStatus(500).json({ errors: [{ message }] });
|
|
418
|
+
},
|
|
419
|
+
};
|
|
420
|
+
`;
|
|
421
|
+
}
|
|
422
|
+
/**
|
|
423
|
+
* Generate WebSocket controller
|
|
424
|
+
*/
|
|
425
|
+
function generateWebSocketController(options) {
|
|
426
|
+
const className = options?.name ?? 'WebSocketController';
|
|
427
|
+
return `/**
|
|
428
|
+
* ${className}
|
|
429
|
+
* Auto-generated WebSocket controller
|
|
430
|
+
*/
|
|
431
|
+
|
|
432
|
+
import { Logger } from '../../config/logger';
|
|
433
|
+
|
|
434
|
+
export const ${className} = {
|
|
435
|
+
/**
|
|
436
|
+
* Handle WebSocket connection
|
|
437
|
+
*/
|
|
438
|
+
async onConnect(socket: { id: string }): Promise<void> {
|
|
439
|
+
Logger.info('Client connected:', { socketId: socket.id });
|
|
440
|
+
},
|
|
441
|
+
|
|
442
|
+
/**
|
|
443
|
+
* Handle WebSocket message
|
|
444
|
+
*/
|
|
445
|
+
async onMessage(socket: { emit: (event: string, data: unknown) => void }, message: unknown): Promise<void> {
|
|
446
|
+
Logger.info('Message received:', { message });
|
|
447
|
+
socket.emit('message', { echo: message });
|
|
448
|
+
},
|
|
449
|
+
|
|
450
|
+
/**
|
|
451
|
+
* Handle WebSocket disconnect
|
|
452
|
+
*/
|
|
453
|
+
async onDisconnect(socket: { id: string }): Promise<void> {
|
|
454
|
+
Logger.info('Client disconnected:', { socketId: socket.id });
|
|
455
|
+
},
|
|
456
|
+
};
|
|
457
|
+
`;
|
|
458
|
+
}
|
|
459
|
+
/**
|
|
460
|
+
* Generate Webhook controller
|
|
461
|
+
*/
|
|
462
|
+
function generateWebhookController(options) {
|
|
463
|
+
const className = options?.name ?? 'WebhookController';
|
|
464
|
+
return `/**
|
|
465
|
+
* ${className}
|
|
466
|
+
* Auto-generated Webhook controller
|
|
467
|
+
*/
|
|
468
|
+
|
|
469
|
+
import { IRequest } from '../../http/Request';
|
|
470
|
+
import { IResponse } from '../../http/Response';
|
|
471
|
+
import { Controller } from '../../http/Controller';
|
|
472
|
+
import { Logger } from '../../config/logger';
|
|
473
|
+
|
|
474
|
+
export const ${className} = {\n ...Controller,
|
|
475
|
+
${buildWebhookControllerBody()},
|
|
476
|
+
};
|
|
477
|
+
`;
|
|
478
|
+
}
|
|
479
|
+
/**
|
|
480
|
+
* Build Webhook controller body
|
|
481
|
+
*/
|
|
482
|
+
function buildWebhookControllerBody() {
|
|
483
|
+
return ` /**
|
|
484
|
+
* Handle incoming webhook
|
|
485
|
+
*/
|
|
486
|
+
async handle(req: IRequest, res: IResponse): Promise<void> {
|
|
487
|
+
try {
|
|
488
|
+
// Verify webhook signature
|
|
489
|
+
const signature = req.getHeader('x-webhook-signature');
|
|
490
|
+
if (verifySignature(req, signature as string) === false) {
|
|
491
|
+
return res.setStatus(401).json({ error: 'Invalid signature' });
|
|
492
|
+
}
|
|
493
|
+
|
|
494
|
+
const body = req.getBody();
|
|
495
|
+
await processWebhook(body);
|
|
496
|
+
|
|
497
|
+
res.json({ success: true });
|
|
498
|
+
} catch (error) {
|
|
499
|
+
handleError(res, error);
|
|
500
|
+
}
|
|
501
|
+
},
|
|
502
|
+
|
|
503
|
+
/**
|
|
504
|
+
* Verify webhook signature
|
|
505
|
+
*/
|
|
506
|
+
verifySignature(req: IRequest, signature: string): boolean {
|
|
507
|
+
// TODO: Implement signature verification
|
|
508
|
+
return true;
|
|
509
|
+
},
|
|
510
|
+
|
|
511
|
+
/**
|
|
512
|
+
* Process webhook payload
|
|
513
|
+
*/
|
|
514
|
+
async processWebhook(payload: unknown): Promise<void> {
|
|
515
|
+
// TODO: Implement webhook processing
|
|
516
|
+
Logger.info('Processing webhook:', { payload });
|
|
517
|
+
},
|
|
518
|
+
|
|
519
|
+
/**
|
|
520
|
+
* Handle controller errors
|
|
521
|
+
*/
|
|
522
|
+
handleError(res: IResponse, error: unknown): void {
|
|
523
|
+
const message = error instanceof Error ? error.message : 'Webhook error';
|
|
524
|
+
res.setStatus(500).json({ error: message });
|
|
525
|
+
}`;
|
|
526
|
+
}
|
|
527
|
+
/**
|
|
528
|
+
* Get available controller types
|
|
529
|
+
*/
|
|
530
|
+
export function getAvailableTypes() {
|
|
531
|
+
return Object.keys(CONTROLLER_TYPES);
|
|
532
|
+
}
|
|
533
|
+
/**
|
|
534
|
+
* ControllerGenerator creates HTTP request handlers
|
|
535
|
+
*/
|
|
536
|
+
export const ControllerGenerator = Object.freeze({
|
|
537
|
+
validateOptions,
|
|
538
|
+
generateController,
|
|
539
|
+
getAvailableTypes,
|
|
540
|
+
});
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Factory Generator
|
|
3
|
+
* Generates test data factory modules for models
|
|
4
|
+
*/
|
|
5
|
+
export type FieldType = 'string' | 'integer' | 'float' | 'boolean' | 'text' | 'datetime' | 'json' | 'email' | 'phone';
|
|
6
|
+
export interface FactoryField {
|
|
7
|
+
name: string;
|
|
8
|
+
type: FieldType;
|
|
9
|
+
nullable?: boolean;
|
|
10
|
+
}
|
|
11
|
+
export interface FactoryOptions {
|
|
12
|
+
factoryName: string;
|
|
13
|
+
modelName: string;
|
|
14
|
+
factoriesPath: string;
|
|
15
|
+
fields?: FactoryField[];
|
|
16
|
+
relationships?: string[];
|
|
17
|
+
}
|
|
18
|
+
export interface FactoryGeneratorResult {
|
|
19
|
+
success: boolean;
|
|
20
|
+
message: string;
|
|
21
|
+
filePath?: string;
|
|
22
|
+
factoryName?: string;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Factory Generator - Generates test data factories
|
|
26
|
+
*/
|
|
27
|
+
/**
|
|
28
|
+
* Validate factory options
|
|
29
|
+
*/
|
|
30
|
+
export declare function validateOptions(options: FactoryOptions): Promise<void>;
|
|
31
|
+
/**
|
|
32
|
+
* Generate factory
|
|
33
|
+
*/
|
|
34
|
+
export declare function generateFactory(options: FactoryOptions): Promise<FactoryGeneratorResult>;
|
|
35
|
+
/**
|
|
36
|
+
* Get available types
|
|
37
|
+
*/
|
|
38
|
+
export declare function getAvailableTypes(): string[];
|
|
39
|
+
/**
|
|
40
|
+
* Factory Generator - Generates test data factories
|
|
41
|
+
*/
|
|
42
|
+
export declare const FactoryGenerator: Readonly<{
|
|
43
|
+
validateOptions: typeof validateOptions;
|
|
44
|
+
generateFactory: typeof generateFactory;
|
|
45
|
+
getAvailableTypes: typeof getAvailableTypes;
|
|
46
|
+
}>;
|
|
47
|
+
//# sourceMappingURL=FactoryGenerator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FactoryGenerator.d.ts","sourceRoot":"","sources":["../../../../src/cli/scaffolding/FactoryGenerator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH,MAAM,MAAM,SAAS,GACjB,QAAQ,GACR,SAAS,GACT,OAAO,GACP,SAAS,GACT,MAAM,GACN,UAAU,GACV,MAAM,GACN,OAAO,GACP,OAAO,CAAC;AAEZ,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,SAAS,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,YAAY,EAAE,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AAEH;;GAEG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CA6B5E;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAyB9F;AA+SD;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,EAAE,CAE5C;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;;EAI3B,CAAC"}
|