@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,87 @@
|
|
|
1
|
+
// TEMPLATE_START
|
|
2
|
+
/* eslint-disable @typescript-eslint/require-await */
|
|
3
|
+
/**
|
|
4
|
+
* MySQL Database Adapter
|
|
5
|
+
*/
|
|
6
|
+
import { FeatureFlags } from '../../config/features';
|
|
7
|
+
import { Logger } from '../../config/logger';
|
|
8
|
+
import { ErrorFactory } from '../../exceptions/ZintrustError';
|
|
9
|
+
/**
|
|
10
|
+
* MySQL adapter implementation
|
|
11
|
+
* Sealed namespace for immutability
|
|
12
|
+
*/
|
|
13
|
+
export const MySQLAdapter = Object.freeze({
|
|
14
|
+
/**
|
|
15
|
+
* Create a new MySQL adapter instance
|
|
16
|
+
*/
|
|
17
|
+
create(config) {
|
|
18
|
+
let connected = false;
|
|
19
|
+
return {
|
|
20
|
+
async connect() {
|
|
21
|
+
if (config.host === 'error') {
|
|
22
|
+
throw ErrorFactory.createConnectionError('Failed to connect to MySQL: Error: Connection failed');
|
|
23
|
+
}
|
|
24
|
+
connected = true;
|
|
25
|
+
Logger.info(`✓ MySQL connected (${config.host}:${config.port})`);
|
|
26
|
+
},
|
|
27
|
+
async disconnect() {
|
|
28
|
+
connected = false;
|
|
29
|
+
Logger.info('✓ MySQL disconnected');
|
|
30
|
+
},
|
|
31
|
+
async query(_sql, _parameters) {
|
|
32
|
+
if (!connected)
|
|
33
|
+
throw ErrorFactory.createConnectionError('Database not connected');
|
|
34
|
+
// Mock implementation
|
|
35
|
+
return { rows: [], rowCount: 0 };
|
|
36
|
+
},
|
|
37
|
+
async queryOne(sql, parameters) {
|
|
38
|
+
const result = await this.query(sql, parameters);
|
|
39
|
+
return result.rows[0] ?? null;
|
|
40
|
+
},
|
|
41
|
+
async transaction(callback) {
|
|
42
|
+
if (!connected)
|
|
43
|
+
throw ErrorFactory.createConnectionError('Database not connected');
|
|
44
|
+
try {
|
|
45
|
+
await this.query('START TRANSACTION', []);
|
|
46
|
+
const result = await callback(this);
|
|
47
|
+
await this.query('COMMIT', []);
|
|
48
|
+
return result;
|
|
49
|
+
}
|
|
50
|
+
catch (error) {
|
|
51
|
+
await this.query('ROLLBACK', []);
|
|
52
|
+
throw ErrorFactory.createTryCatchError('MySQL transaction failed', error);
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
getType() {
|
|
56
|
+
return 'mysql';
|
|
57
|
+
},
|
|
58
|
+
isConnected() {
|
|
59
|
+
return connected;
|
|
60
|
+
},
|
|
61
|
+
async rawQuery(sql, parameters) {
|
|
62
|
+
if (!FeatureFlags.isRawQueryEnabled()) {
|
|
63
|
+
throw ErrorFactory.createConfigError('Raw SQL queries are disabled');
|
|
64
|
+
}
|
|
65
|
+
if (!connected) {
|
|
66
|
+
throw ErrorFactory.createConnectionError('Database not connected');
|
|
67
|
+
}
|
|
68
|
+
try {
|
|
69
|
+
Logger.warn(`Raw SQL Query executed: ${sql}`, { parameters });
|
|
70
|
+
// Mock implementation for tests
|
|
71
|
+
if (sql.includes('INVALID')) {
|
|
72
|
+
throw ErrorFactory.createDatabaseError('Invalid SQL syntax');
|
|
73
|
+
}
|
|
74
|
+
return [];
|
|
75
|
+
}
|
|
76
|
+
catch (error) {
|
|
77
|
+
throw ErrorFactory.createTryCatchError(`Raw SQL query failed: ${sql}`, error);
|
|
78
|
+
}
|
|
79
|
+
},
|
|
80
|
+
getPlaceholder(_index) {
|
|
81
|
+
return '?';
|
|
82
|
+
},
|
|
83
|
+
};
|
|
84
|
+
},
|
|
85
|
+
});
|
|
86
|
+
export default MySQLAdapter;
|
|
87
|
+
// TEMPLATE_END
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PostgreSQL Database Adapter
|
|
3
|
+
*/
|
|
4
|
+
import { DatabaseConfig, IDatabaseAdapter } from '../DatabaseAdapter';
|
|
5
|
+
/**
|
|
6
|
+
* PostgreSQL adapter implementation
|
|
7
|
+
* Sealed namespace for immutability
|
|
8
|
+
*/
|
|
9
|
+
export declare const PostgreSQLAdapter: Readonly<{
|
|
10
|
+
/**
|
|
11
|
+
* Create a new PostgreSQL adapter instance
|
|
12
|
+
*/
|
|
13
|
+
create(config: DatabaseConfig): IDatabaseAdapter;
|
|
14
|
+
}>;
|
|
15
|
+
export default PostgreSQLAdapter;
|
|
16
|
+
//# sourceMappingURL=PostgreSQLAdapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PostgreSQLAdapter.d.ts","sourceRoot":"","sources":["../../../../src/orm/adapters/PostgreSQLAdapter.ts"],"names":[],"mappings":"AAEA;;GAEG;AAKH,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAe,MAAM,sBAAsB,CAAC;AAErF;;;GAGG;AACH,eAAO,MAAM,iBAAiB;IAC5B;;OAEG;mBACY,cAAc,GAAG,gBAAgB;EA6EhD,CAAC;AAEH,eAAe,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
// TEMPLATE_START
|
|
2
|
+
/* eslint-disable @typescript-eslint/require-await */
|
|
3
|
+
/**
|
|
4
|
+
* PostgreSQL Database Adapter
|
|
5
|
+
*/
|
|
6
|
+
import { FeatureFlags } from '../../config/features';
|
|
7
|
+
import { Logger } from '../../config/logger';
|
|
8
|
+
import { ErrorFactory } from '../../exceptions/ZintrustError';
|
|
9
|
+
/**
|
|
10
|
+
* PostgreSQL adapter implementation
|
|
11
|
+
* Sealed namespace for immutability
|
|
12
|
+
*/
|
|
13
|
+
export const PostgreSQLAdapter = Object.freeze({
|
|
14
|
+
/**
|
|
15
|
+
* Create a new PostgreSQL adapter instance
|
|
16
|
+
*/
|
|
17
|
+
create(config) {
|
|
18
|
+
let connected = false;
|
|
19
|
+
return {
|
|
20
|
+
async connect() {
|
|
21
|
+
if (config.host === 'error') {
|
|
22
|
+
throw ErrorFactory.createConnectionError('Failed to connect to PostgreSQL: Connection failed');
|
|
23
|
+
}
|
|
24
|
+
connected = true;
|
|
25
|
+
Logger.info(`✓ PostgreSQL connected (${config.host}:${config.port})`);
|
|
26
|
+
},
|
|
27
|
+
async disconnect() {
|
|
28
|
+
connected = false;
|
|
29
|
+
Logger.info('✓ PostgreSQL disconnected');
|
|
30
|
+
},
|
|
31
|
+
async query(_sql, _parameters) {
|
|
32
|
+
if (!connected)
|
|
33
|
+
throw ErrorFactory.createConnectionError('Database not connected');
|
|
34
|
+
// Mock implementation
|
|
35
|
+
return { rows: [], rowCount: 0 };
|
|
36
|
+
},
|
|
37
|
+
async queryOne(sql, parameters) {
|
|
38
|
+
const result = await this.query(sql, parameters);
|
|
39
|
+
return result.rows[0] ?? null;
|
|
40
|
+
},
|
|
41
|
+
async transaction(callback) {
|
|
42
|
+
if (!connected)
|
|
43
|
+
throw ErrorFactory.createConnectionError('Database not connected');
|
|
44
|
+
try {
|
|
45
|
+
await this.query('BEGIN', []);
|
|
46
|
+
const result = await callback(this);
|
|
47
|
+
await this.query('COMMIT', []);
|
|
48
|
+
return result;
|
|
49
|
+
}
|
|
50
|
+
catch (error) {
|
|
51
|
+
await this.query('ROLLBACK', []);
|
|
52
|
+
throw ErrorFactory.createTryCatchError('PostgreSQL transaction failed', error);
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
getType() {
|
|
56
|
+
return 'postgresql';
|
|
57
|
+
},
|
|
58
|
+
isConnected() {
|
|
59
|
+
return connected;
|
|
60
|
+
},
|
|
61
|
+
async rawQuery(sql, parameters) {
|
|
62
|
+
if (!FeatureFlags.isRawQueryEnabled()) {
|
|
63
|
+
throw ErrorFactory.createConfigError('Raw SQL queries are disabled. Set USE_RAW_QRY=true environment variable to enable.');
|
|
64
|
+
}
|
|
65
|
+
if (!connected) {
|
|
66
|
+
throw ErrorFactory.createConnectionError('Database not connected');
|
|
67
|
+
}
|
|
68
|
+
Logger.warn(`Raw SQL Query executed: ${sql}`, { parameters });
|
|
69
|
+
try {
|
|
70
|
+
if (sql.toUpperCase().includes('INVALID')) {
|
|
71
|
+
throw ErrorFactory.createDatabaseError('Invalid SQL syntax');
|
|
72
|
+
}
|
|
73
|
+
// Mock implementation
|
|
74
|
+
return [];
|
|
75
|
+
}
|
|
76
|
+
catch (error) {
|
|
77
|
+
throw ErrorFactory.createTryCatchError('Raw SQL Query failed', error);
|
|
78
|
+
}
|
|
79
|
+
},
|
|
80
|
+
getPlaceholder(index) {
|
|
81
|
+
return `$${index}`;
|
|
82
|
+
},
|
|
83
|
+
};
|
|
84
|
+
},
|
|
85
|
+
});
|
|
86
|
+
export default PostgreSQLAdapter;
|
|
87
|
+
// TEMPLATE_END
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SQL Server Database Adapter
|
|
3
|
+
*/
|
|
4
|
+
import { DatabaseConfig, IDatabaseAdapter } from '../DatabaseAdapter';
|
|
5
|
+
/**
|
|
6
|
+
* SQL Server adapter implementation
|
|
7
|
+
* Sealed namespace for immutability
|
|
8
|
+
*/
|
|
9
|
+
export declare const SQLServerAdapter: Readonly<{
|
|
10
|
+
/**
|
|
11
|
+
* Create a new SQL Server adapter instance
|
|
12
|
+
*/
|
|
13
|
+
create(config: DatabaseConfig): IDatabaseAdapter;
|
|
14
|
+
}>;
|
|
15
|
+
export default SQLServerAdapter;
|
|
16
|
+
//# sourceMappingURL=SQLServerAdapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SQLServerAdapter.d.ts","sourceRoot":"","sources":["../../../../src/orm/adapters/SQLServerAdapter.ts"],"names":[],"mappings":"AAEA;;GAEG;AAKH,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAe,MAAM,sBAAsB,CAAC;AAErF;;;GAGG;AACH,eAAO,MAAM,gBAAgB;IAC3B;;OAEG;mBACY,cAAc,GAAG,gBAAgB;EAwEhD,CAAC;AAEH,eAAe,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
// TEMPLATE_START
|
|
2
|
+
/* eslint-disable @typescript-eslint/require-await */
|
|
3
|
+
/**
|
|
4
|
+
* SQL Server Database Adapter
|
|
5
|
+
*/
|
|
6
|
+
import { FeatureFlags } from '../../config/features';
|
|
7
|
+
import { Logger } from '../../config/logger';
|
|
8
|
+
import { ErrorFactory } from '../../exceptions/ZintrustError';
|
|
9
|
+
/**
|
|
10
|
+
* SQL Server adapter implementation
|
|
11
|
+
* Sealed namespace for immutability
|
|
12
|
+
*/
|
|
13
|
+
export const SQLServerAdapter = Object.freeze({
|
|
14
|
+
/**
|
|
15
|
+
* Create a new SQL Server adapter instance
|
|
16
|
+
*/
|
|
17
|
+
create(config) {
|
|
18
|
+
let connected = false;
|
|
19
|
+
return {
|
|
20
|
+
async connect() {
|
|
21
|
+
if (config.host === 'error') {
|
|
22
|
+
throw ErrorFactory.createConnectionError('Failed to connect to SQL Server: Error: Connection failed');
|
|
23
|
+
}
|
|
24
|
+
connected = true;
|
|
25
|
+
Logger.info(`✓ SQL Server connected (${config.host}:${config.port})`);
|
|
26
|
+
},
|
|
27
|
+
async disconnect() {
|
|
28
|
+
connected = false;
|
|
29
|
+
Logger.info('✓ SQL Server disconnected');
|
|
30
|
+
},
|
|
31
|
+
async query(_sql, _parameters) {
|
|
32
|
+
if (!connected)
|
|
33
|
+
throw ErrorFactory.createConnectionError('Database not connected');
|
|
34
|
+
// Mock implementation
|
|
35
|
+
return { rows: [], rowCount: 0 };
|
|
36
|
+
},
|
|
37
|
+
async queryOne(sql, parameters) {
|
|
38
|
+
const result = await this.query(sql, parameters);
|
|
39
|
+
return result.rows[0] ?? null;
|
|
40
|
+
},
|
|
41
|
+
async transaction(callback) {
|
|
42
|
+
try {
|
|
43
|
+
return await callback(this);
|
|
44
|
+
}
|
|
45
|
+
catch (error) {
|
|
46
|
+
throw ErrorFactory.createTryCatchError('Transaction failed', error);
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
getType() {
|
|
50
|
+
return 'sqlserver';
|
|
51
|
+
},
|
|
52
|
+
isConnected() {
|
|
53
|
+
return connected;
|
|
54
|
+
},
|
|
55
|
+
async rawQuery(sql, parameters) {
|
|
56
|
+
if (!FeatureFlags.isRawQueryEnabled()) {
|
|
57
|
+
throw ErrorFactory.createConfigError('Raw SQL queries are disabled. Set USE_RAW_QRY=true environment variable to enable.');
|
|
58
|
+
}
|
|
59
|
+
if (!connected) {
|
|
60
|
+
throw ErrorFactory.createConnectionError('Database not connected');
|
|
61
|
+
}
|
|
62
|
+
Logger.warn(`Raw SQL Query executed: ${sql}`, { parameters });
|
|
63
|
+
try {
|
|
64
|
+
if (sql.toUpperCase().includes('INVALID')) {
|
|
65
|
+
throw ErrorFactory.createDatabaseError('Invalid SQL syntax');
|
|
66
|
+
}
|
|
67
|
+
// Mock implementation
|
|
68
|
+
return [];
|
|
69
|
+
}
|
|
70
|
+
catch (error) {
|
|
71
|
+
throw ErrorFactory.createTryCatchError('Raw SQL Query failed', error);
|
|
72
|
+
}
|
|
73
|
+
},
|
|
74
|
+
getPlaceholder(index) {
|
|
75
|
+
return `@param${index}`;
|
|
76
|
+
},
|
|
77
|
+
};
|
|
78
|
+
},
|
|
79
|
+
});
|
|
80
|
+
export default SQLServerAdapter;
|
|
81
|
+
// TEMPLATE_END
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SQLite Database Adapter
|
|
3
|
+
* Production Implementation
|
|
4
|
+
*/
|
|
5
|
+
import { DatabaseConfig, IDatabaseAdapter } from '../DatabaseAdapter';
|
|
6
|
+
declare function createSQLiteAdapter(config: DatabaseConfig): IDatabaseAdapter;
|
|
7
|
+
export declare const SQLiteAdapter: Readonly<{
|
|
8
|
+
create: typeof createSQLiteAdapter;
|
|
9
|
+
}>;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=SQLiteAdapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SQLiteAdapter.d.ts","sourceRoot":"","sources":["../../../../src/orm/adapters/SQLiteAdapter.ts"],"names":[],"mappings":"AAEA;;;GAGG;AAMH,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAe,MAAM,sBAAsB,CAAC;AA4HrF,iBAAS,mBAAmB,CAAC,MAAM,EAAE,cAAc,GAAG,gBAAgB,CAgDrE;AAED,eAAO,MAAM,aAAa;;EAExB,CAAC"}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
// TEMPLATE_START
|
|
2
|
+
/* eslint-disable @typescript-eslint/require-await */
|
|
3
|
+
/**
|
|
4
|
+
* SQLite Database Adapter
|
|
5
|
+
* Production Implementation
|
|
6
|
+
*/
|
|
7
|
+
import { FeatureFlags } from '../../config/features';
|
|
8
|
+
import { Logger } from '../../config/logger';
|
|
9
|
+
import { ErrorFactory } from '../../exceptions/ZintrustError';
|
|
10
|
+
import { performance } from '../../node-singletons/perf-hooks';
|
|
11
|
+
import Database from 'better-sqlite3';
|
|
12
|
+
function normalizeFilename(database) {
|
|
13
|
+
const value = (database ?? '').trim();
|
|
14
|
+
return value.length > 0 ? value : ':memory:';
|
|
15
|
+
}
|
|
16
|
+
function isSelectQuery(sql) {
|
|
17
|
+
return sql.trimStart().toLowerCase().startsWith('select');
|
|
18
|
+
}
|
|
19
|
+
function requireDb(db) {
|
|
20
|
+
if (db === null)
|
|
21
|
+
throw ErrorFactory.createConnectionError('Database not connected');
|
|
22
|
+
return db;
|
|
23
|
+
}
|
|
24
|
+
function executeQuery(db, sql, parameters) {
|
|
25
|
+
const start = performance.now();
|
|
26
|
+
const stmt = db.prepare(sql);
|
|
27
|
+
if (isSelectQuery(sql)) {
|
|
28
|
+
const rows = stmt.all(parameters);
|
|
29
|
+
Logger.debug('SQLite query executed', { durationMs: performance.now() - start, sql });
|
|
30
|
+
return { rows, rowCount: rows.length };
|
|
31
|
+
}
|
|
32
|
+
const info = stmt.run(parameters);
|
|
33
|
+
Logger.debug('SQLite query executed', { durationMs: performance.now() - start, sql });
|
|
34
|
+
return { rows: [], rowCount: info.changes };
|
|
35
|
+
}
|
|
36
|
+
function executeRawQuery(db, sql, parameters) {
|
|
37
|
+
const stmt = db.prepare(sql);
|
|
38
|
+
if (isSelectQuery(sql))
|
|
39
|
+
return stmt.all(parameters);
|
|
40
|
+
stmt.run(parameters);
|
|
41
|
+
return [];
|
|
42
|
+
}
|
|
43
|
+
async function connectSQLite(state) {
|
|
44
|
+
if (state.db !== null)
|
|
45
|
+
return;
|
|
46
|
+
const filename = normalizeFilename(state.config.database);
|
|
47
|
+
state.db = new Database(filename);
|
|
48
|
+
// Enable WAL mode for better concurrency
|
|
49
|
+
state.db.pragma('journal_mode = WAL');
|
|
50
|
+
Logger.info(`✓ SQLite connected (${filename})`);
|
|
51
|
+
}
|
|
52
|
+
async function disconnectSQLite(state) {
|
|
53
|
+
if (state.db === null)
|
|
54
|
+
return;
|
|
55
|
+
state.db.close();
|
|
56
|
+
state.db = null;
|
|
57
|
+
Logger.info('✓ SQLite disconnected');
|
|
58
|
+
}
|
|
59
|
+
async function querySQLite(state, sql, parameters) {
|
|
60
|
+
const currentDb = requireDb(state.db);
|
|
61
|
+
try {
|
|
62
|
+
return executeQuery(currentDb, sql, parameters);
|
|
63
|
+
}
|
|
64
|
+
catch (error) {
|
|
65
|
+
throw ErrorFactory.createTryCatchError('Query failed', { sql, parameters, cause: error });
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
async function rawQuerySQLite(state, sql, parameters) {
|
|
69
|
+
if (!FeatureFlags.isRawQueryEnabled()) {
|
|
70
|
+
throw ErrorFactory.createConfigError('Raw SQL queries are disabled');
|
|
71
|
+
}
|
|
72
|
+
const currentDb = requireDb(state.db);
|
|
73
|
+
Logger.warn(`Raw SQL Query executed: ${sql}`);
|
|
74
|
+
try {
|
|
75
|
+
return executeRawQuery(currentDb, sql, parameters);
|
|
76
|
+
}
|
|
77
|
+
catch (error) {
|
|
78
|
+
throw ErrorFactory.createTryCatchError('Raw query failed', { sql, parameters, cause: error });
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
async function transactionSQLite(state, adapter, callback) {
|
|
82
|
+
const currentDb = requireDb(state.db);
|
|
83
|
+
await adapter.query('BEGIN', []);
|
|
84
|
+
try {
|
|
85
|
+
const result = await callback(adapter, currentDb);
|
|
86
|
+
await adapter.query('COMMIT', []);
|
|
87
|
+
return result;
|
|
88
|
+
}
|
|
89
|
+
catch (error) {
|
|
90
|
+
await adapter.query('ROLLBACK', []);
|
|
91
|
+
throw ErrorFactory.createTryCatchError('Transaction failed', { cause: error });
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
function createSQLiteAdapter(config) {
|
|
95
|
+
const state = { db: null, config };
|
|
96
|
+
const adapter = {
|
|
97
|
+
async connect() {
|
|
98
|
+
await connectSQLite(state);
|
|
99
|
+
},
|
|
100
|
+
async disconnect() {
|
|
101
|
+
await disconnectSQLite(state);
|
|
102
|
+
},
|
|
103
|
+
async query(sql, parameters = []) {
|
|
104
|
+
return querySQLite(state, sql, parameters);
|
|
105
|
+
},
|
|
106
|
+
async queryOne(sql, parameters = []) {
|
|
107
|
+
const result = await adapter.query(sql, parameters);
|
|
108
|
+
return result.rows[0] ?? null;
|
|
109
|
+
},
|
|
110
|
+
async transaction(callback) {
|
|
111
|
+
return transactionSQLite(state, adapter, callback);
|
|
112
|
+
},
|
|
113
|
+
async rawQuery(sql, parameters = []) {
|
|
114
|
+
return rawQuerySQLite(state, sql, parameters);
|
|
115
|
+
},
|
|
116
|
+
getType() {
|
|
117
|
+
return 'sqlite';
|
|
118
|
+
},
|
|
119
|
+
isConnected() {
|
|
120
|
+
return Boolean(state.db);
|
|
121
|
+
},
|
|
122
|
+
getPlaceholder(_index) {
|
|
123
|
+
return '?';
|
|
124
|
+
},
|
|
125
|
+
};
|
|
126
|
+
return adapter;
|
|
127
|
+
}
|
|
128
|
+
export const SQLiteAdapter = Object.freeze({
|
|
129
|
+
create: createSQLiteAdapter,
|
|
130
|
+
});
|
|
131
|
+
// TEMPLATE_END
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Benchmarking Suite - Performance Measurement Tools
|
|
3
|
+
* Measures code generation, memory usage, and overall performance
|
|
4
|
+
*/
|
|
5
|
+
export interface BenchmarkResult {
|
|
6
|
+
name: string;
|
|
7
|
+
duration: number;
|
|
8
|
+
memoryBefore: number;
|
|
9
|
+
memoryAfter: number;
|
|
10
|
+
memoryDelta: number;
|
|
11
|
+
iterationCount: number;
|
|
12
|
+
averageTime: number;
|
|
13
|
+
averageMemory: number;
|
|
14
|
+
timestamp: Date;
|
|
15
|
+
metadata?: Record<string, unknown>;
|
|
16
|
+
}
|
|
17
|
+
export interface BenchmarkSuite {
|
|
18
|
+
name: string;
|
|
19
|
+
results: BenchmarkResult[];
|
|
20
|
+
totalDuration: number;
|
|
21
|
+
startTime: Date;
|
|
22
|
+
endTime: Date;
|
|
23
|
+
}
|
|
24
|
+
export interface OperationComparison {
|
|
25
|
+
name: string;
|
|
26
|
+
timeChange: number;
|
|
27
|
+
memoryChange: number;
|
|
28
|
+
timeFaster: boolean;
|
|
29
|
+
memoryLower: boolean;
|
|
30
|
+
}
|
|
31
|
+
export interface ComparisonResult {
|
|
32
|
+
timestamp: Date;
|
|
33
|
+
comparisons: OperationComparison[];
|
|
34
|
+
overallImprovement: number;
|
|
35
|
+
}
|
|
36
|
+
export interface IBenchmark {
|
|
37
|
+
measure<T>(name: string, fn: () => T, iterations?: number, metadata?: Record<string, unknown>): BenchmarkResult;
|
|
38
|
+
measureAsync<T>(name: string, fn: () => Promise<T>, iterations?: number, metadata?: Record<string, unknown>): Promise<BenchmarkResult>;
|
|
39
|
+
getResults(): BenchmarkResult[];
|
|
40
|
+
getTable(): string;
|
|
41
|
+
toJSON(): BenchmarkSuite;
|
|
42
|
+
export(filePath: string): void;
|
|
43
|
+
compare(previous: BenchmarkSuite): ComparisonResult;
|
|
44
|
+
getComparisonReport(comparison: ComparisonResult): string;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Benchmark - Measure performance of operations
|
|
48
|
+
* Sealed namespace for immutability
|
|
49
|
+
*/
|
|
50
|
+
export declare const Benchmark: Readonly<{
|
|
51
|
+
/**
|
|
52
|
+
* Create a new benchmark instance
|
|
53
|
+
*/
|
|
54
|
+
create(name?: string): IBenchmark;
|
|
55
|
+
}>;
|
|
56
|
+
export interface MemorySnapshot {
|
|
57
|
+
timestamp: number;
|
|
58
|
+
heapUsed: number;
|
|
59
|
+
heapTotal: number;
|
|
60
|
+
external: number;
|
|
61
|
+
rss: number;
|
|
62
|
+
arrayBuffers: number;
|
|
63
|
+
}
|
|
64
|
+
export interface MemoryStats {
|
|
65
|
+
peakHeap: number;
|
|
66
|
+
minHeap: number;
|
|
67
|
+
avgHeap: number;
|
|
68
|
+
peakRss: number;
|
|
69
|
+
snapshots: number;
|
|
70
|
+
}
|
|
71
|
+
export interface IMemoryMonitor {
|
|
72
|
+
start(intervalMs?: number): void;
|
|
73
|
+
stop(): MemorySnapshot[];
|
|
74
|
+
getStats(): MemoryStats;
|
|
75
|
+
formatStats(): string;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Memory Monitor - Track memory usage over time
|
|
79
|
+
* Sealed namespace for immutability
|
|
80
|
+
*/
|
|
81
|
+
export declare const MemoryMonitor: Readonly<{
|
|
82
|
+
/**
|
|
83
|
+
* Create a new memory monitor instance
|
|
84
|
+
*/
|
|
85
|
+
create(): IMemoryMonitor;
|
|
86
|
+
}>;
|
|
87
|
+
//# sourceMappingURL=Benchmark.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Benchmark.d.ts","sourceRoot":"","sources":["../../../src/performance/Benchmark.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,IAAI,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,IAAI,CAAC;IAChB,OAAO,EAAE,IAAI,CAAC;CACf;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,IAAI,CAAC;IAChB,WAAW,EAAE,mBAAmB,EAAE,CAAC;IACnC,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,CAAC,CAAC,EACP,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,CAAC,EACX,UAAU,CAAC,EAAE,MAAM,EACnB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,eAAe,CAAC;IACnB,YAAY,CAAC,CAAC,EACZ,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,UAAU,CAAC,EAAE,MAAM,EACnB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,OAAO,CAAC,eAAe,CAAC,CAAC;IAC5B,UAAU,IAAI,eAAe,EAAE,CAAC;IAChC,QAAQ,IAAI,MAAM,CAAC;IACnB,MAAM,IAAI,cAAc,CAAC;IACzB,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,OAAO,CAAC,QAAQ,EAAE,cAAc,GAAG,gBAAgB,CAAC;IACpD,mBAAmB,CAAC,UAAU,EAAE,gBAAgB,GAAG,MAAM,CAAC;CAC3D;AAED;;;GAGG;AACH,eAAO,MAAM,SAAS;IACpB;;OAEG;kBACU,MAAM,GAAuB,UAAU;EAuCpD,CAAC;AAkMH,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,IAAI,IAAI,cAAc,EAAE,CAAC;IACzB,QAAQ,IAAI,WAAW,CAAC;IACxB,WAAW,IAAI,MAAM,CAAC;CACvB;AACD;;;GAGG;AACH,eAAO,MAAM,aAAa;IACxB;;OAEG;cACO,cAAc;EA6ExB,CAAC"}
|