@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,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* File Generator
|
|
3
|
+
* Handles creation of files and directories
|
|
4
|
+
* Sealed namespace with file I/O operations
|
|
5
|
+
*/
|
|
6
|
+
export interface FileCreationOptions {
|
|
7
|
+
overwrite?: boolean;
|
|
8
|
+
createDirs?: boolean;
|
|
9
|
+
encoding?: BufferEncoding;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* FileGenerator namespace - sealed for immutability
|
|
13
|
+
*/
|
|
14
|
+
export declare const FileGenerator: Readonly<{
|
|
15
|
+
createDirectory: (dirPath: string) => boolean;
|
|
16
|
+
createDirectories: (directories: string[], baseDir: string) => void;
|
|
17
|
+
writeFile: (filePath: string, content: string, options?: FileCreationOptions) => boolean;
|
|
18
|
+
writeFiles: (files: Array<{
|
|
19
|
+
path: string;
|
|
20
|
+
content: string;
|
|
21
|
+
}>, baseDir: string, options?: FileCreationOptions) => number;
|
|
22
|
+
readFile: (filePath: string, encoding?: BufferEncoding) => string;
|
|
23
|
+
fileExists: (filePath: string) => boolean;
|
|
24
|
+
directoryExists: (dirPath: string) => boolean;
|
|
25
|
+
deleteFile: (filePath: string) => boolean;
|
|
26
|
+
deleteDirectory: (dirPath: string) => boolean;
|
|
27
|
+
listFiles: (dirPath: string, recursive?: boolean) => string[];
|
|
28
|
+
copyFile: (source: string, destination: string, options?: FileCreationOptions) => boolean;
|
|
29
|
+
getDirectorySize: (dirPath: string) => number;
|
|
30
|
+
}>;
|
|
31
|
+
//# sourceMappingURL=FileGenerator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FileGenerator.d.ts","sourceRoot":"","sources":["../../../../src/cli/scaffolding/FileGenerator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B;AAsOD;;GAEG;AACH,eAAO,MAAM,aAAa;+BApOQ,MAAM,KAAG,OAAO;qCAgBV,MAAM,EAAE,WAAW,MAAM,KAAG,IAAI;0BAW5D,MAAM,WACP,MAAM,YACN,mBAAmB,KAC3B,OAAO;wBA8BD,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,WACtC,MAAM,YACL,mBAAmB,KAC5B,MAAM;yBAgBmB,MAAM,aAAY,cAAc,KAAa,MAAM;2BAWjD,MAAM,KAAG,OAAO;+BAOZ,MAAM,KAAG,OAAO;2BAOpB,MAAM,KAAG,OAAO;+BAgBZ,MAAM,KAAG,OAAO;yBAgBtB,MAAM,0BAAsB,MAAM,EAAE;uBAiCtD,MAAM,eACD,MAAM,YACV,mBAAmB,KAC3B,OAAO;gCAwByB,MAAM,KAAG,MAAM;EA6ChD,CAAC"}
|
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* File Generator
|
|
3
|
+
* Handles creation of files and directories
|
|
4
|
+
* Sealed namespace with file I/O operations
|
|
5
|
+
*/
|
|
6
|
+
import { Logger } from '../../config/logger';
|
|
7
|
+
import { ErrorFactory } from '../../exceptions/ZintrustError';
|
|
8
|
+
import fs from '../../node-singletons/fs';
|
|
9
|
+
import * as path from 'node:path';
|
|
10
|
+
/**
|
|
11
|
+
* Create a directory recursively
|
|
12
|
+
*/
|
|
13
|
+
const createDirectory = (dirPath) => {
|
|
14
|
+
try {
|
|
15
|
+
if (!fs.existsSync(dirPath)) {
|
|
16
|
+
fs.mkdirSync(dirPath, { recursive: true });
|
|
17
|
+
Logger.info(`Created directory: ${dirPath}`);
|
|
18
|
+
return true;
|
|
19
|
+
}
|
|
20
|
+
return false;
|
|
21
|
+
}
|
|
22
|
+
catch (error) {
|
|
23
|
+
throw ErrorFactory.createCliError(`Failed to create directory ${dirPath}:`, error);
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Create multiple directories
|
|
28
|
+
*/
|
|
29
|
+
const createDirectories = (directories, baseDir) => {
|
|
30
|
+
for (const dir of directories) {
|
|
31
|
+
const fullPath = path.join(baseDir, dir);
|
|
32
|
+
createDirectory(fullPath);
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* Write file content
|
|
37
|
+
*/
|
|
38
|
+
const writeFile = (filePath, content, options = {}) => {
|
|
39
|
+
const { overwrite = false, createDirs = true, encoding = 'utf-8' } = options;
|
|
40
|
+
try {
|
|
41
|
+
const dir = path.dirname(filePath);
|
|
42
|
+
// Create parent directories if needed
|
|
43
|
+
if (createDirs && !fs.existsSync(dir)) {
|
|
44
|
+
createDirectory(dir);
|
|
45
|
+
}
|
|
46
|
+
// Check if file exists
|
|
47
|
+
if (fs.existsSync(filePath) && !overwrite) {
|
|
48
|
+
Logger.warn(`File already exists (skipped): ${filePath}`);
|
|
49
|
+
return false;
|
|
50
|
+
}
|
|
51
|
+
// Write file
|
|
52
|
+
fs.writeFileSync(filePath, content, { encoding });
|
|
53
|
+
Logger.info(`Created file: ${filePath}`);
|
|
54
|
+
return true;
|
|
55
|
+
}
|
|
56
|
+
catch (error) {
|
|
57
|
+
throw ErrorFactory.createCliError(`Failed to write file ${filePath}:`, error);
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
/**
|
|
61
|
+
* Write multiple files
|
|
62
|
+
*/
|
|
63
|
+
const writeFiles = (files, baseDir, options) => {
|
|
64
|
+
let count = 0;
|
|
65
|
+
for (const file of files) {
|
|
66
|
+
const fullPath = path.join(baseDir, file.path);
|
|
67
|
+
if (writeFile(fullPath, file.content, options)) {
|
|
68
|
+
count++;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
return count;
|
|
72
|
+
};
|
|
73
|
+
/**
|
|
74
|
+
* Read file content
|
|
75
|
+
*/
|
|
76
|
+
const readFile = (filePath, encoding = 'utf-8') => {
|
|
77
|
+
try {
|
|
78
|
+
return fs.readFileSync(filePath, { encoding });
|
|
79
|
+
}
|
|
80
|
+
catch (error) {
|
|
81
|
+
throw ErrorFactory.createCliError(`Failed to read file ${filePath}:`, error);
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
/**
|
|
85
|
+
* Check if file exists
|
|
86
|
+
*/
|
|
87
|
+
const fileExists = (filePath) => {
|
|
88
|
+
return fs.existsSync(filePath) && fs.statSync(filePath).isFile();
|
|
89
|
+
};
|
|
90
|
+
/**
|
|
91
|
+
* Check if directory exists
|
|
92
|
+
*/
|
|
93
|
+
const directoryExists = (dirPath) => {
|
|
94
|
+
return fs.existsSync(dirPath) && fs.statSync(dirPath).isDirectory();
|
|
95
|
+
};
|
|
96
|
+
/**
|
|
97
|
+
* Delete file
|
|
98
|
+
*/
|
|
99
|
+
const deleteFile = (filePath) => {
|
|
100
|
+
try {
|
|
101
|
+
if (fs.existsSync(filePath)) {
|
|
102
|
+
fs.unlinkSync(filePath);
|
|
103
|
+
Logger.info(`Deleted file: ${filePath}`);
|
|
104
|
+
return true;
|
|
105
|
+
}
|
|
106
|
+
return false;
|
|
107
|
+
}
|
|
108
|
+
catch (error) {
|
|
109
|
+
throw ErrorFactory.createCliError(`Failed to delete file ${filePath}:`, error);
|
|
110
|
+
}
|
|
111
|
+
};
|
|
112
|
+
/**
|
|
113
|
+
* Delete directory recursively
|
|
114
|
+
*/
|
|
115
|
+
const deleteDirectory = (dirPath) => {
|
|
116
|
+
try {
|
|
117
|
+
if (fs.existsSync(dirPath)) {
|
|
118
|
+
fs.rmSync(dirPath, { recursive: true, force: true });
|
|
119
|
+
Logger.info(`Deleted directory: ${dirPath}`);
|
|
120
|
+
return true;
|
|
121
|
+
}
|
|
122
|
+
return false;
|
|
123
|
+
}
|
|
124
|
+
catch (error) {
|
|
125
|
+
throw ErrorFactory.createCliError(`Failed to delete directory ${dirPath}:`, error);
|
|
126
|
+
}
|
|
127
|
+
};
|
|
128
|
+
/**
|
|
129
|
+
* List files in directory
|
|
130
|
+
*/
|
|
131
|
+
const listFiles = (dirPath, recursive = false) => {
|
|
132
|
+
try {
|
|
133
|
+
if (!fs.existsSync(dirPath))
|
|
134
|
+
return [];
|
|
135
|
+
const files = [];
|
|
136
|
+
const traverse = (dir) => {
|
|
137
|
+
const entries = fs.readdirSync(dir);
|
|
138
|
+
for (const entry of entries) {
|
|
139
|
+
const fullPath = path.join(dir, entry);
|
|
140
|
+
const stat = fs.statSync(fullPath);
|
|
141
|
+
if (stat.isFile()) {
|
|
142
|
+
files.push(fullPath);
|
|
143
|
+
}
|
|
144
|
+
else if (stat.isDirectory() && recursive) {
|
|
145
|
+
traverse(fullPath);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
};
|
|
149
|
+
traverse(dirPath);
|
|
150
|
+
return files;
|
|
151
|
+
}
|
|
152
|
+
catch (error) {
|
|
153
|
+
ErrorFactory.createCliError(`Failed to list files in ${dirPath}:`, error);
|
|
154
|
+
return [];
|
|
155
|
+
}
|
|
156
|
+
};
|
|
157
|
+
/**
|
|
158
|
+
* Copy file
|
|
159
|
+
*/
|
|
160
|
+
const copyFile = (source, destination, options = {}) => {
|
|
161
|
+
try {
|
|
162
|
+
const { createDirs = true } = options;
|
|
163
|
+
if (!fs.existsSync(source)) {
|
|
164
|
+
ErrorFactory.createCliError(`Source file not found: ${source}`, { source });
|
|
165
|
+
}
|
|
166
|
+
const dir = path.dirname(destination);
|
|
167
|
+
if (createDirs && !fs.existsSync(dir)) {
|
|
168
|
+
createDirectory(dir);
|
|
169
|
+
}
|
|
170
|
+
fs.copyFileSync(source, destination);
|
|
171
|
+
Logger.info(`Copied file: ${source} → ${destination}`);
|
|
172
|
+
return true;
|
|
173
|
+
}
|
|
174
|
+
catch (error) {
|
|
175
|
+
throw ErrorFactory.createCliError(`Failed to copy file ${source}:`, error);
|
|
176
|
+
}
|
|
177
|
+
};
|
|
178
|
+
/**
|
|
179
|
+
* Get directory size in bytes
|
|
180
|
+
*/
|
|
181
|
+
const getDirectorySize = (dirPath) => {
|
|
182
|
+
let size = 0;
|
|
183
|
+
try {
|
|
184
|
+
if (!fs.existsSync(dirPath))
|
|
185
|
+
return 0;
|
|
186
|
+
const traverse = (dir) => {
|
|
187
|
+
const entries = fs.readdirSync(dir);
|
|
188
|
+
for (const entry of entries) {
|
|
189
|
+
const fullPath = path.join(dir, entry);
|
|
190
|
+
const stat = fs.statSync(fullPath);
|
|
191
|
+
if (stat.isFile()) {
|
|
192
|
+
size += stat.size;
|
|
193
|
+
}
|
|
194
|
+
else if (stat.isDirectory()) {
|
|
195
|
+
traverse(fullPath);
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
};
|
|
199
|
+
traverse(dirPath);
|
|
200
|
+
}
|
|
201
|
+
catch (error) {
|
|
202
|
+
throw ErrorFactory.createCliError(`Failed to calculate directory size for ${dirPath}:`, error);
|
|
203
|
+
}
|
|
204
|
+
return size;
|
|
205
|
+
};
|
|
206
|
+
/**
|
|
207
|
+
* FileGenerator namespace - sealed for immutability
|
|
208
|
+
*/
|
|
209
|
+
export const FileGenerator = Object.freeze({
|
|
210
|
+
createDirectory,
|
|
211
|
+
createDirectories,
|
|
212
|
+
writeFile,
|
|
213
|
+
writeFiles,
|
|
214
|
+
readFile,
|
|
215
|
+
fileExists,
|
|
216
|
+
directoryExists,
|
|
217
|
+
deleteFile,
|
|
218
|
+
deleteDirectory,
|
|
219
|
+
listFiles,
|
|
220
|
+
copyFile,
|
|
221
|
+
getDirectorySize,
|
|
222
|
+
});
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MigrationGenerator - Generate database migrations
|
|
3
|
+
* Creates migration files for schema changes
|
|
4
|
+
*/
|
|
5
|
+
export type MigrationType = 'create' | 'alter' | 'drop';
|
|
6
|
+
export interface MigrationOptions {
|
|
7
|
+
name: string;
|
|
8
|
+
migrationsPath: string;
|
|
9
|
+
type?: MigrationType;
|
|
10
|
+
}
|
|
11
|
+
export interface MigrationScaffoldResult {
|
|
12
|
+
success: boolean;
|
|
13
|
+
migrationName: string;
|
|
14
|
+
filePath: string;
|
|
15
|
+
message: string;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Validate migration options
|
|
19
|
+
*/
|
|
20
|
+
export declare function validateOptions(options: MigrationOptions): {
|
|
21
|
+
valid: boolean;
|
|
22
|
+
errors: string[];
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Generate migration file
|
|
26
|
+
*/
|
|
27
|
+
export declare function generateMigration(options: MigrationOptions): Promise<MigrationScaffoldResult>;
|
|
28
|
+
/**
|
|
29
|
+
* MigrationGenerator creates database migration files
|
|
30
|
+
*/
|
|
31
|
+
export declare const MigrationGenerator: Readonly<{
|
|
32
|
+
validateOptions: typeof validateOptions;
|
|
33
|
+
generateMigration: typeof generateMigration;
|
|
34
|
+
}>;
|
|
35
|
+
//# sourceMappingURL=MigrationGenerator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MigrationGenerator.d.ts","sourceRoot":"","sources":["../../../../src/cli/scaffolding/MigrationGenerator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;AAExD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,aAAa,CAAC;CACtB;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,gBAAgB,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAmB/F;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,uBAAuB,CAAC,CAwDlC;AAqLD;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;EAG7B,CAAC"}
|
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MigrationGenerator - Generate database migrations
|
|
3
|
+
* Creates migration files for schema changes
|
|
4
|
+
*/
|
|
5
|
+
import { FileGenerator } from '../scaffolding/FileGenerator';
|
|
6
|
+
import { CommonUtils } from '../../common/index';
|
|
7
|
+
import { Logger } from '../../config/logger';
|
|
8
|
+
import * as path from '../../node-singletons/path';
|
|
9
|
+
/**
|
|
10
|
+
* Validate migration options
|
|
11
|
+
*/
|
|
12
|
+
export function validateOptions(options) {
|
|
13
|
+
const errors = [];
|
|
14
|
+
if (options.name.trim().length === 0) {
|
|
15
|
+
errors.push('Migration name is required');
|
|
16
|
+
}
|
|
17
|
+
if (!/^[a-z_]+$/.test(options.name)) {
|
|
18
|
+
errors.push('Migration name must contain only lowercase letters and underscores');
|
|
19
|
+
}
|
|
20
|
+
if (options.migrationsPath === '' || !FileGenerator.directoryExists(options.migrationsPath)) {
|
|
21
|
+
errors.push(`Migrations directory does not exist: ${options.migrationsPath}`);
|
|
22
|
+
}
|
|
23
|
+
return {
|
|
24
|
+
valid: errors.length === 0,
|
|
25
|
+
errors,
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Generate migration file
|
|
30
|
+
*/
|
|
31
|
+
export async function generateMigration(options) {
|
|
32
|
+
try {
|
|
33
|
+
// Validate options
|
|
34
|
+
const validation = validateOptions(options);
|
|
35
|
+
if (!validation.valid) {
|
|
36
|
+
return {
|
|
37
|
+
success: false,
|
|
38
|
+
migrationName: options.name,
|
|
39
|
+
filePath: '',
|
|
40
|
+
message: `Validation failed: ${validation.errors.join(', ')}`,
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
// Generate migration filename with timestamp
|
|
44
|
+
const timestamp = new Date()
|
|
45
|
+
.toISOString()
|
|
46
|
+
.replaceAll(/[-:T.Z]/g, '')
|
|
47
|
+
.slice(0, 14);
|
|
48
|
+
const filename = `${timestamp}_${options.name}.ts`;
|
|
49
|
+
const filePath = path.join(options.migrationsPath, filename);
|
|
50
|
+
// Check if migration already exists
|
|
51
|
+
if (FileGenerator.fileExists(filePath)) {
|
|
52
|
+
return {
|
|
53
|
+
success: false,
|
|
54
|
+
migrationName: options.name,
|
|
55
|
+
filePath,
|
|
56
|
+
message: `Migration file already exists: ${filePath}`,
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
// Generate migration content based on type
|
|
60
|
+
const type = options.type ?? detectType(options.name);
|
|
61
|
+
const content = generateMigrationContent(options.name, type);
|
|
62
|
+
// Write migration file
|
|
63
|
+
FileGenerator.writeFile(filePath, content);
|
|
64
|
+
Logger.info(`✅ Created migration: ${filename}`);
|
|
65
|
+
return {
|
|
66
|
+
success: true,
|
|
67
|
+
migrationName: options.name,
|
|
68
|
+
filePath,
|
|
69
|
+
message: `Migration '${options.name}' created successfully`,
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
catch (error) {
|
|
73
|
+
Logger.error('Migration generation error:', error);
|
|
74
|
+
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
75
|
+
return {
|
|
76
|
+
success: false,
|
|
77
|
+
migrationName: options.name,
|
|
78
|
+
filePath: '',
|
|
79
|
+
message: `Failed to create migration: ${errorMsg}`,
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Detect migration type from name
|
|
85
|
+
*/
|
|
86
|
+
function detectType(name) {
|
|
87
|
+
if (name.startsWith('create_'))
|
|
88
|
+
return 'create';
|
|
89
|
+
if (name.startsWith('drop_'))
|
|
90
|
+
return 'drop';
|
|
91
|
+
return 'alter';
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Generate migration file content
|
|
95
|
+
*/
|
|
96
|
+
function generateMigrationContent(name, type) {
|
|
97
|
+
const className = CommonUtils.toPascalCase(name);
|
|
98
|
+
if (type === 'create') {
|
|
99
|
+
return generateCreateMigration(className);
|
|
100
|
+
}
|
|
101
|
+
else if (type === 'drop') {
|
|
102
|
+
return generateDropMigration(className);
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
return generateAlterMigration(className);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Generate CREATE migration
|
|
110
|
+
*/
|
|
111
|
+
function generateCreateMigration(className) {
|
|
112
|
+
const tableName = getTableNameFromClass(className);
|
|
113
|
+
return `/**
|
|
114
|
+
* Migration: ${className}
|
|
115
|
+
* Creates ${tableName} table
|
|
116
|
+
*/
|
|
117
|
+
|
|
118
|
+
export interface Migration {
|
|
119
|
+
up(): Promise<void>;
|
|
120
|
+
down(): Promise<void>;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
export const migration: Migration = {
|
|
124
|
+
/**
|
|
125
|
+
* Run migration
|
|
126
|
+
*/
|
|
127
|
+
async up(): Promise<void> {
|
|
128
|
+
// Create table
|
|
129
|
+
// await db.schema.createTable('${tableName}', (table) => {
|
|
130
|
+
// table.increments('id').primary();
|
|
131
|
+
// table.string('name').notNullable();
|
|
132
|
+
// table.string('email').unique();
|
|
133
|
+
// table.timestamps();
|
|
134
|
+
// });
|
|
135
|
+
},
|
|
136
|
+
|
|
137
|
+
/**
|
|
138
|
+
* Rollback migration
|
|
139
|
+
*/
|
|
140
|
+
async down(): Promise<void> {
|
|
141
|
+
// Drop table
|
|
142
|
+
// await db.schema.dropTable('${tableName}');
|
|
143
|
+
},
|
|
144
|
+
};
|
|
145
|
+
`;
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Generate ALTER migration
|
|
149
|
+
*/
|
|
150
|
+
function generateAlterMigration(className) {
|
|
151
|
+
const tableName = getTableNameFromClass(className);
|
|
152
|
+
return `/**
|
|
153
|
+
* Migration: ${className}
|
|
154
|
+
* Modifies ${tableName} table
|
|
155
|
+
*/
|
|
156
|
+
|
|
157
|
+
export interface Migration {
|
|
158
|
+
up(): Promise<void>;
|
|
159
|
+
down(): Promise<void>;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
export const migration: Migration = {
|
|
163
|
+
/**
|
|
164
|
+
* Run migration
|
|
165
|
+
*/
|
|
166
|
+
async up(): Promise<void> {
|
|
167
|
+
// Add/modify columns
|
|
168
|
+
// await db.schema.alterTable('${tableName}', (table) => {
|
|
169
|
+
// table.string('new_column').nullable();
|
|
170
|
+
// });
|
|
171
|
+
},
|
|
172
|
+
|
|
173
|
+
/**
|
|
174
|
+
* Rollback migration
|
|
175
|
+
*/
|
|
176
|
+
async down(): Promise<void> {
|
|
177
|
+
// Remove columns
|
|
178
|
+
// await db.schema.alterTable('${tableName}', (table) => {
|
|
179
|
+
// table.dropColumn('new_column');
|
|
180
|
+
// });
|
|
181
|
+
},
|
|
182
|
+
};
|
|
183
|
+
`;
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Generate DROP migration
|
|
187
|
+
*/
|
|
188
|
+
function generateDropMigration(className) {
|
|
189
|
+
const tableName = getTableNameFromClass(className);
|
|
190
|
+
return `/**
|
|
191
|
+
* Migration: ${className}
|
|
192
|
+
* Drops ${tableName} table
|
|
193
|
+
*/
|
|
194
|
+
|
|
195
|
+
export interface Migration {
|
|
196
|
+
up(): Promise<void>;
|
|
197
|
+
down(): Promise<void>;
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
export const migration: Migration = {
|
|
201
|
+
/**
|
|
202
|
+
* Run migration
|
|
203
|
+
*/
|
|
204
|
+
async up(): Promise<void> {
|
|
205
|
+
// Drop table
|
|
206
|
+
// await db.schema.dropTable('${tableName}');
|
|
207
|
+
},
|
|
208
|
+
|
|
209
|
+
/**
|
|
210
|
+
* Rollback migration
|
|
211
|
+
*/
|
|
212
|
+
async down(): Promise<void> {
|
|
213
|
+
// Recreate table
|
|
214
|
+
// await db.schema.createTable('${tableName}', (table) => {
|
|
215
|
+
// table.increments('id').primary();
|
|
216
|
+
// table.timestamps();
|
|
217
|
+
// });
|
|
218
|
+
},
|
|
219
|
+
};
|
|
220
|
+
`;
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* Convert name to table name
|
|
224
|
+
*/
|
|
225
|
+
function getTableNameFromClass(className) {
|
|
226
|
+
// Remove prefixes
|
|
227
|
+
let tableName = className
|
|
228
|
+
.replace(/^Create/, '')
|
|
229
|
+
.replace(/^Drop/, '')
|
|
230
|
+
.replace(/^Alter/, '');
|
|
231
|
+
// Convert PascalCase to snake_case
|
|
232
|
+
tableName = tableName
|
|
233
|
+
.replaceAll(/([A-Z])/g, '_$1')
|
|
234
|
+
.toLowerCase()
|
|
235
|
+
.replace(/^_/, '');
|
|
236
|
+
// Remove 'table' suffix if present
|
|
237
|
+
if (tableName.endsWith('_table')) {
|
|
238
|
+
tableName = tableName.slice(0, -6); // Remove '_table'
|
|
239
|
+
}
|
|
240
|
+
// For ALTER migrations like "add_status_to_orders", extract the table name (last word)
|
|
241
|
+
if (tableName.includes('_to_')) {
|
|
242
|
+
const parts = tableName.split('_to_');
|
|
243
|
+
tableName = parts.at(-1) ?? tableName;
|
|
244
|
+
}
|
|
245
|
+
// Make plural if not already
|
|
246
|
+
if (!tableName.endsWith('s')) {
|
|
247
|
+
tableName += 's';
|
|
248
|
+
}
|
|
249
|
+
return tableName;
|
|
250
|
+
}
|
|
251
|
+
/**
|
|
252
|
+
* MigrationGenerator creates database migration files
|
|
253
|
+
*/
|
|
254
|
+
export const MigrationGenerator = Object.freeze({
|
|
255
|
+
validateOptions,
|
|
256
|
+
generateMigration,
|
|
257
|
+
});
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ModelGenerator - Generate ORM model files
|
|
3
|
+
* Creates type-safe model modules with relationships and validation
|
|
4
|
+
*/
|
|
5
|
+
export type FieldType = 'string' | 'integer' | 'float' | 'boolean' | 'text' | 'datetime' | 'json' | '';
|
|
6
|
+
export interface ModelField {
|
|
7
|
+
name: string;
|
|
8
|
+
type: FieldType;
|
|
9
|
+
nullable?: boolean;
|
|
10
|
+
default?: unknown;
|
|
11
|
+
unique?: boolean;
|
|
12
|
+
comment?: string;
|
|
13
|
+
}
|
|
14
|
+
export interface ModelRelationship {
|
|
15
|
+
type: 'hasOne' | 'hasMany' | 'belongsTo';
|
|
16
|
+
model: string;
|
|
17
|
+
foreignKey?: string;
|
|
18
|
+
localKey?: string;
|
|
19
|
+
}
|
|
20
|
+
export interface ModelOptions {
|
|
21
|
+
name: string;
|
|
22
|
+
modelPath: string;
|
|
23
|
+
table?: string;
|
|
24
|
+
fields?: ModelField[];
|
|
25
|
+
relationships?: ModelRelationship[];
|
|
26
|
+
timestamps?: boolean;
|
|
27
|
+
fillable?: string[];
|
|
28
|
+
hidden?: string[];
|
|
29
|
+
softDelete?: boolean;
|
|
30
|
+
withMigration?: boolean;
|
|
31
|
+
withFactory?: boolean;
|
|
32
|
+
withController?: boolean;
|
|
33
|
+
}
|
|
34
|
+
export interface ModelGeneratorResult {
|
|
35
|
+
success: boolean;
|
|
36
|
+
modelName: string;
|
|
37
|
+
modelFile: string;
|
|
38
|
+
migrationFile?: string;
|
|
39
|
+
factoryFile?: string;
|
|
40
|
+
controllerFile?: string;
|
|
41
|
+
message: string;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Validate model options
|
|
45
|
+
*/
|
|
46
|
+
export declare function validateOptions(options: ModelOptions): {
|
|
47
|
+
valid: boolean;
|
|
48
|
+
errors: string[];
|
|
49
|
+
};
|
|
50
|
+
/**
|
|
51
|
+
* Generate model file
|
|
52
|
+
*/
|
|
53
|
+
export declare function generateModel(options: ModelOptions): Promise<ModelGeneratorResult>;
|
|
54
|
+
/**
|
|
55
|
+
* Get common field types
|
|
56
|
+
*/
|
|
57
|
+
export declare function getCommonFieldTypes(): FieldType[];
|
|
58
|
+
/**
|
|
59
|
+
* Generate common model fields (User example)
|
|
60
|
+
*/
|
|
61
|
+
export declare function getUserFields(): ModelField[];
|
|
62
|
+
/**
|
|
63
|
+
* Generate common model fields (Post example)
|
|
64
|
+
*/
|
|
65
|
+
export declare function getPostFields(): ModelField[];
|
|
66
|
+
/**
|
|
67
|
+
* Generate common model fields (Order example)
|
|
68
|
+
*/
|
|
69
|
+
export declare function getOrderFields(): ModelField[];
|
|
70
|
+
/**
|
|
71
|
+
* ModelGenerator creates type-safe ORM models
|
|
72
|
+
*/
|
|
73
|
+
export declare const ModelGenerator: Readonly<{
|
|
74
|
+
validateOptions: typeof validateOptions;
|
|
75
|
+
generateModel: typeof generateModel;
|
|
76
|
+
getCommonFieldTypes: typeof getCommonFieldTypes;
|
|
77
|
+
getUserFields: typeof getUserFields;
|
|
78
|
+
getPostFields: typeof getPostFields;
|
|
79
|
+
getOrderFields: typeof getOrderFields;
|
|
80
|
+
}>;
|
|
81
|
+
//# sourceMappingURL=ModelGenerator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ModelGenerator.d.ts","sourceRoot":"","sources":["../../../../src/cli/scaffolding/ModelGenerator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,MAAM,MAAM,SAAS,GACjB,QAAQ,GACR,SAAS,GACT,OAAO,GACP,SAAS,GACT,MAAM,GACN,UAAU,GACV,MAAM,GACN,EAAE,CAAC;AAEP,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,SAAS,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,QAAQ,GAAG,SAAS,GAAG,WAAW,CAAC;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC;IACtB,aAAa,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACpC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,YAAY,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAsB3F;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,oBAAoB,CAAC,CA0CxF;AA+HD;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,SAAS,EAAE,CAEjD;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,UAAU,EAAE,CAW5C;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,UAAU,EAAE,CAU5C;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,UAAU,EAAE,CAU7C;AAED;;GAEG;AACH,eAAO,MAAM,cAAc;;;;;;;EAOzB,CAAC"}
|