@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,105 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Storage Configuration
|
|
3
|
+
* File storage and cloud storage settings
|
|
4
|
+
* Sealed namespace for immutability
|
|
5
|
+
*/
|
|
6
|
+
import { Env } from './env';
|
|
7
|
+
type EnvGetValue = ReturnType<typeof Env.get>;
|
|
8
|
+
type EnvGetBoolValue = ReturnType<typeof Env.getBool>;
|
|
9
|
+
type LocalStorageDriverConfig = {
|
|
10
|
+
driver: 'local';
|
|
11
|
+
root: EnvGetValue;
|
|
12
|
+
url: EnvGetValue;
|
|
13
|
+
visibility: EnvGetValue;
|
|
14
|
+
};
|
|
15
|
+
type S3StorageDriverConfig = {
|
|
16
|
+
driver: 's3';
|
|
17
|
+
key: EnvGetValue;
|
|
18
|
+
secret: EnvGetValue;
|
|
19
|
+
region: typeof Env.AWS_REGION;
|
|
20
|
+
bucket: EnvGetValue;
|
|
21
|
+
url: EnvGetValue;
|
|
22
|
+
endpoint: EnvGetValue;
|
|
23
|
+
usePathStyleUrl: EnvGetBoolValue;
|
|
24
|
+
};
|
|
25
|
+
type GcsStorageDriverConfig = {
|
|
26
|
+
driver: 'gcs';
|
|
27
|
+
projectId: EnvGetValue;
|
|
28
|
+
keyFile: EnvGetValue;
|
|
29
|
+
bucket: EnvGetValue;
|
|
30
|
+
url: EnvGetValue;
|
|
31
|
+
};
|
|
32
|
+
type StorageDrivers = {
|
|
33
|
+
local: LocalStorageDriverConfig;
|
|
34
|
+
s3: S3StorageDriverConfig;
|
|
35
|
+
gcs: GcsStorageDriverConfig;
|
|
36
|
+
};
|
|
37
|
+
type StorageDriverName = keyof StorageDrivers;
|
|
38
|
+
type StorageDriverConfig = StorageDrivers[StorageDriverName];
|
|
39
|
+
type StorageConfigRuntime = {
|
|
40
|
+
default: string;
|
|
41
|
+
drivers: StorageDrivers;
|
|
42
|
+
};
|
|
43
|
+
export declare const storageConfig: Readonly<{
|
|
44
|
+
/**
|
|
45
|
+
* Default storage driver
|
|
46
|
+
*/
|
|
47
|
+
default: string;
|
|
48
|
+
/**
|
|
49
|
+
* Storage drivers configuration
|
|
50
|
+
*/
|
|
51
|
+
drivers: {
|
|
52
|
+
local: {
|
|
53
|
+
driver: "local";
|
|
54
|
+
root: string;
|
|
55
|
+
url: string;
|
|
56
|
+
visibility: string;
|
|
57
|
+
};
|
|
58
|
+
s3: {
|
|
59
|
+
driver: "s3";
|
|
60
|
+
key: string;
|
|
61
|
+
secret: string;
|
|
62
|
+
region: string;
|
|
63
|
+
bucket: string;
|
|
64
|
+
url: string;
|
|
65
|
+
endpoint: string;
|
|
66
|
+
usePathStyleUrl: boolean;
|
|
67
|
+
};
|
|
68
|
+
gcs: {
|
|
69
|
+
driver: "gcs";
|
|
70
|
+
projectId: string;
|
|
71
|
+
keyFile: string;
|
|
72
|
+
bucket: string;
|
|
73
|
+
url: string;
|
|
74
|
+
};
|
|
75
|
+
};
|
|
76
|
+
/**
|
|
77
|
+
* Get storage driver config
|
|
78
|
+
*/
|
|
79
|
+
getDriver(this: StorageConfigRuntime): StorageDriverConfig;
|
|
80
|
+
/**
|
|
81
|
+
* Temporary file settings
|
|
82
|
+
*/
|
|
83
|
+
temp: {
|
|
84
|
+
path: string;
|
|
85
|
+
maxAge: number;
|
|
86
|
+
};
|
|
87
|
+
/**
|
|
88
|
+
* Uploads settings
|
|
89
|
+
*/
|
|
90
|
+
uploads: {
|
|
91
|
+
maxSize: string;
|
|
92
|
+
allowedMimes: string;
|
|
93
|
+
path: string;
|
|
94
|
+
};
|
|
95
|
+
/**
|
|
96
|
+
* Backups settings
|
|
97
|
+
*/
|
|
98
|
+
backups: {
|
|
99
|
+
path: string;
|
|
100
|
+
driver: string;
|
|
101
|
+
};
|
|
102
|
+
}>;
|
|
103
|
+
export type StorageConfig = typeof storageConfig;
|
|
104
|
+
export {};
|
|
105
|
+
//# sourceMappingURL=storage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../src/config/storage.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAElC,KAAK,WAAW,GAAG,UAAU,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;AAC9C,KAAK,eAAe,GAAG,UAAU,CAAC,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC;AAEtD,KAAK,wBAAwB,GAAG;IAC9B,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,WAAW,CAAC;IAClB,GAAG,EAAE,WAAW,CAAC;IACjB,UAAU,EAAE,WAAW,CAAC;CACzB,CAAC;AAEF,KAAK,qBAAqB,GAAG;IAC3B,MAAM,EAAE,IAAI,CAAC;IACb,GAAG,EAAE,WAAW,CAAC;IACjB,MAAM,EAAE,WAAW,CAAC;IACpB,MAAM,EAAE,OAAO,GAAG,CAAC,UAAU,CAAC;IAC9B,MAAM,EAAE,WAAW,CAAC;IACpB,GAAG,EAAE,WAAW,CAAC;IACjB,QAAQ,EAAE,WAAW,CAAC;IACtB,eAAe,EAAE,eAAe,CAAC;CAClC,CAAC;AAEF,KAAK,sBAAsB,GAAG;IAC5B,MAAM,EAAE,KAAK,CAAC;IACd,SAAS,EAAE,WAAW,CAAC;IACvB,OAAO,EAAE,WAAW,CAAC;IACrB,MAAM,EAAE,WAAW,CAAC;IACpB,GAAG,EAAE,WAAW,CAAC;CAClB,CAAC;AAEF,KAAK,cAAc,GAAG;IACpB,KAAK,EAAE,wBAAwB,CAAC;IAChC,EAAE,EAAE,qBAAqB,CAAC;IAC1B,GAAG,EAAE,sBAAsB,CAAC;CAC7B,CAAC;AAEF,KAAK,iBAAiB,GAAG,MAAM,cAAc,CAAC;AAC9C,KAAK,mBAAmB,GAAG,cAAc,CAAC,iBAAiB,CAAC,CAAC;AAE7D,KAAK,oBAAoB,GAAG;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,cAAc,CAAC;CACzB,CAAC;AAoFF,eAAO,MAAM,aAAa;IAnExB;;OAEG;;IAGH;;OAEG;;;;;;;;;;;;;;;;;;;;;;;;;;IA2BH;;OAEG;oBACa,oBAAoB,GAAG,mBAAmB;IAI1D;;OAEG;;;;;IAMH;;OAEG;;;;;;IAOH;;OAEG;;;;;EAOuD,CAAC;AAE7D,MAAM,MAAM,aAAa,GAAG,OAAO,aAAa,CAAC"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Storage Configuration
|
|
3
|
+
* File storage and cloud storage settings
|
|
4
|
+
* Sealed namespace for immutability
|
|
5
|
+
*/
|
|
6
|
+
import { Env } from './env';
|
|
7
|
+
const isStorageDriverName = (value, drivers) => {
|
|
8
|
+
return value in drivers;
|
|
9
|
+
};
|
|
10
|
+
const getStorageDriver = (config) => {
|
|
11
|
+
const driverName = config.default;
|
|
12
|
+
if (isStorageDriverName(driverName, config.drivers)) {
|
|
13
|
+
return config.drivers[driverName];
|
|
14
|
+
}
|
|
15
|
+
return config.drivers.local;
|
|
16
|
+
};
|
|
17
|
+
const storageConfigObj = {
|
|
18
|
+
/**
|
|
19
|
+
* Default storage driver
|
|
20
|
+
*/
|
|
21
|
+
default: Env.get('STORAGE_DRIVER', 'local'),
|
|
22
|
+
/**
|
|
23
|
+
* Storage drivers configuration
|
|
24
|
+
*/
|
|
25
|
+
drivers: {
|
|
26
|
+
local: {
|
|
27
|
+
driver: 'local',
|
|
28
|
+
root: Env.get('STORAGE_PATH', 'storage'),
|
|
29
|
+
url: Env.get('STORAGE_URL', '/storage'),
|
|
30
|
+
visibility: Env.get('STORAGE_VISIBILITY', 'private'),
|
|
31
|
+
},
|
|
32
|
+
s3: {
|
|
33
|
+
driver: 's3',
|
|
34
|
+
key: Env.get('AWS_ACCESS_KEY_ID'),
|
|
35
|
+
secret: Env.get('AWS_SECRET_ACCESS_KEY'),
|
|
36
|
+
region: Env.AWS_REGION,
|
|
37
|
+
bucket: Env.get('AWS_S3_BUCKET'),
|
|
38
|
+
url: Env.get('AWS_S3_URL'),
|
|
39
|
+
endpoint: Env.get('AWS_S3_ENDPOINT'),
|
|
40
|
+
usePathStyleUrl: Env.getBool('AWS_S3_USE_PATH_STYLE_URL', false),
|
|
41
|
+
},
|
|
42
|
+
gcs: {
|
|
43
|
+
driver: 'gcs',
|
|
44
|
+
projectId: Env.get('GCS_PROJECT_ID'),
|
|
45
|
+
keyFile: Env.get('GCS_KEY_FILE'),
|
|
46
|
+
bucket: Env.get('GCS_BUCKET'),
|
|
47
|
+
url: Env.get('GCS_URL'),
|
|
48
|
+
},
|
|
49
|
+
},
|
|
50
|
+
/**
|
|
51
|
+
* Get storage driver config
|
|
52
|
+
*/
|
|
53
|
+
getDriver() {
|
|
54
|
+
return getStorageDriver(this);
|
|
55
|
+
},
|
|
56
|
+
/**
|
|
57
|
+
* Temporary file settings
|
|
58
|
+
*/
|
|
59
|
+
temp: {
|
|
60
|
+
path: Env.get('TEMP_PATH', 'storage/temp'),
|
|
61
|
+
maxAge: Env.getInt('TEMP_FILE_MAX_AGE', 86400), // 24 hours
|
|
62
|
+
},
|
|
63
|
+
/**
|
|
64
|
+
* Uploads settings
|
|
65
|
+
*/
|
|
66
|
+
uploads: {
|
|
67
|
+
maxSize: Env.get('MAX_UPLOAD_SIZE', '100mb'),
|
|
68
|
+
allowedMimes: Env.get('ALLOWED_UPLOAD_MIMES', 'jpg,jpeg,png,pdf,doc,docx'),
|
|
69
|
+
path: Env.get('UPLOADS_PATH', 'storage/uploads'),
|
|
70
|
+
},
|
|
71
|
+
/**
|
|
72
|
+
* Backups settings
|
|
73
|
+
*/
|
|
74
|
+
backups: {
|
|
75
|
+
path: Env.get('BACKUPS_PATH', 'storage/backups'),
|
|
76
|
+
driver: Env.get('BACKUP_DRIVER', 's3'),
|
|
77
|
+
},
|
|
78
|
+
};
|
|
79
|
+
export const storageConfig = Object.freeze(storageConfigObj);
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ServiceContainer - Dependency Injection Container
|
|
3
|
+
* Manages service registration and resolution with proven dependency injection patterns
|
|
4
|
+
*/
|
|
5
|
+
type ServiceFactory<T = unknown> = () => T;
|
|
6
|
+
export interface IServiceContainer {
|
|
7
|
+
bind<T>(key: string, factory: ServiceFactory<T>): void;
|
|
8
|
+
singleton<T>(key: string, factoryOrInstance: ServiceFactory<T> | T): void;
|
|
9
|
+
resolve<T = unknown>(key: string): T;
|
|
10
|
+
has(key: string): boolean;
|
|
11
|
+
get<T = unknown>(key: string): T;
|
|
12
|
+
flush(): void;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* ServiceContainer - Dependency Injection Container
|
|
16
|
+
* Refactored to Functional Object pattern
|
|
17
|
+
*/
|
|
18
|
+
export declare const ServiceContainer: Readonly<{
|
|
19
|
+
/**
|
|
20
|
+
* Create a new service container instance
|
|
21
|
+
*/
|
|
22
|
+
create(): IServiceContainer;
|
|
23
|
+
}>;
|
|
24
|
+
export default ServiceContainer;
|
|
25
|
+
//# sourceMappingURL=ServiceContainer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ServiceContainer.d.ts","sourceRoot":"","sources":["../../../src/container/ServiceContainer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,KAAK,cAAc,CAAC,CAAC,GAAG,OAAO,IAAI,MAAM,CAAC,CAAC;AAQ3C,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACvD,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,iBAAiB,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IAC1E,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,CAAC;IACrC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAC1B,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,CAAC;IACjC,KAAK,IAAI,IAAI,CAAC;CACf;AAED;;;GAGG;AACH,eAAO,MAAM,gBAAgB;IAC3B;;OAEG;cACO,iBAAiB;EAyE3B,CAAC;AAEH,eAAe,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ServiceContainer - Dependency Injection Container
|
|
3
|
+
* Manages service registration and resolution with proven dependency injection patterns
|
|
4
|
+
*/
|
|
5
|
+
import { ErrorFactory } from '../exceptions/ZintrustError';
|
|
6
|
+
/**
|
|
7
|
+
* ServiceContainer - Dependency Injection Container
|
|
8
|
+
* Refactored to Functional Object pattern
|
|
9
|
+
*/
|
|
10
|
+
export const ServiceContainer = Object.freeze({
|
|
11
|
+
/**
|
|
12
|
+
* Create a new service container instance
|
|
13
|
+
*/
|
|
14
|
+
create() {
|
|
15
|
+
const bindings = new Map();
|
|
16
|
+
const singletons = new Map();
|
|
17
|
+
return {
|
|
18
|
+
/**
|
|
19
|
+
* Register a service binding
|
|
20
|
+
*/
|
|
21
|
+
bind(key, factory) {
|
|
22
|
+
bindings.set(key, {
|
|
23
|
+
factory: factory,
|
|
24
|
+
singleton: false,
|
|
25
|
+
});
|
|
26
|
+
},
|
|
27
|
+
/**
|
|
28
|
+
* Register a singleton service (instantiated once)
|
|
29
|
+
*/
|
|
30
|
+
singleton(key, factoryOrInstance) {
|
|
31
|
+
const isFactory = typeof factoryOrInstance === 'function';
|
|
32
|
+
bindings.set(key, {
|
|
33
|
+
factory: isFactory ? factoryOrInstance : () => factoryOrInstance,
|
|
34
|
+
singleton: true,
|
|
35
|
+
});
|
|
36
|
+
},
|
|
37
|
+
/**
|
|
38
|
+
* Resolve a service from the container
|
|
39
|
+
*/
|
|
40
|
+
resolve(key) {
|
|
41
|
+
const binding = bindings.get(key);
|
|
42
|
+
if (binding === undefined) {
|
|
43
|
+
throw ErrorFactory.createNotFoundError(`Service "${key}" is not registered in the container`, { key });
|
|
44
|
+
}
|
|
45
|
+
if (binding.singleton === true) {
|
|
46
|
+
if (singletons.has(key) === false) {
|
|
47
|
+
singletons.set(key, binding.factory());
|
|
48
|
+
}
|
|
49
|
+
return singletons.get(key);
|
|
50
|
+
}
|
|
51
|
+
return binding.factory();
|
|
52
|
+
},
|
|
53
|
+
/**
|
|
54
|
+
* Check if a service is registered
|
|
55
|
+
*/
|
|
56
|
+
has(key) {
|
|
57
|
+
return bindings.has(key);
|
|
58
|
+
},
|
|
59
|
+
/**
|
|
60
|
+
* Get a service (alias for resolve)
|
|
61
|
+
*/
|
|
62
|
+
get(key) {
|
|
63
|
+
return this.resolve(key);
|
|
64
|
+
},
|
|
65
|
+
/**
|
|
66
|
+
* Clear all bindings and singletons
|
|
67
|
+
*/
|
|
68
|
+
flush() {
|
|
69
|
+
bindings.clear();
|
|
70
|
+
singletons.clear();
|
|
71
|
+
},
|
|
72
|
+
};
|
|
73
|
+
},
|
|
74
|
+
});
|
|
75
|
+
export default ServiceContainer;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/database/migrations/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base Exception Factory for Zintrust Framework
|
|
3
|
+
* Implemented as plain functions (no classes / no prototype-based constructors).
|
|
4
|
+
*/
|
|
5
|
+
export interface IZintrustError extends Error {
|
|
6
|
+
statusCode: number;
|
|
7
|
+
code: string;
|
|
8
|
+
details?: unknown;
|
|
9
|
+
}
|
|
10
|
+
type StackTraceConstructorOpt = ((...args: never[]) => unknown) | (abstract new (...args: never[]) => unknown);
|
|
11
|
+
export type ZintrustErrorInit = Readonly<{
|
|
12
|
+
statusCode?: number;
|
|
13
|
+
code?: string;
|
|
14
|
+
details?: unknown;
|
|
15
|
+
name?: string;
|
|
16
|
+
prototype?: object;
|
|
17
|
+
captureStackTraceCtor?: StackTraceConstructorOpt;
|
|
18
|
+
}>;
|
|
19
|
+
/**
|
|
20
|
+
* Plain initializer for Zintrust framework errors.
|
|
21
|
+
*/
|
|
22
|
+
export declare function initZintrustError(target: Error, init?: ZintrustErrorInit): void;
|
|
23
|
+
type TypedZintrustError<TCode extends string, TName extends string, TStatus extends number> = IZintrustError & {
|
|
24
|
+
readonly code: TCode;
|
|
25
|
+
name: TName;
|
|
26
|
+
readonly statusCode: TStatus;
|
|
27
|
+
};
|
|
28
|
+
export type ZintrustError = TypedZintrustError<'INTERNAL_ERROR', 'ZintrustError', 500>;
|
|
29
|
+
export type DatabaseError = TypedZintrustError<'DATABASE_ERROR', 'DatabaseError', 500>;
|
|
30
|
+
export type ValidationError = TypedZintrustError<'VALIDATION_ERROR', 'ValidationError', 400>;
|
|
31
|
+
export type NotFoundError = TypedZintrustError<'NOT_FOUND', 'NotFoundError', 404>;
|
|
32
|
+
export type UnauthorizedError = TypedZintrustError<'UNAUTHORIZED', 'UnauthorizedError', 401>;
|
|
33
|
+
export type ForbiddenError = TypedZintrustError<'FORBIDDEN', 'ForbiddenError', 403>;
|
|
34
|
+
export type ConnectionError = TypedZintrustError<'CONNECTION_ERROR', 'ConnectionError', 500>;
|
|
35
|
+
export type ConfigError = TypedZintrustError<'CONFIG_ERROR', 'ConfigError', 500>;
|
|
36
|
+
export type GeneralError = TypedZintrustError<'GENERAL_ERROR', 'GeneralError', 500>;
|
|
37
|
+
export type CliError = TypedZintrustError<'CLI_ERROR', 'CliError', 1>;
|
|
38
|
+
export type SecurityError = TypedZintrustError<'SECURITY_ERROR', 'SecurityError', 401>;
|
|
39
|
+
export type CatchError = TypedZintrustError<'TRY_CATCH_ERROR', 'CatchError', 500>;
|
|
40
|
+
/**
|
|
41
|
+
* Plain error creators.
|
|
42
|
+
*/
|
|
43
|
+
export declare function ZintrustError(message: string, details?: unknown): ZintrustError;
|
|
44
|
+
export declare function createDatabaseError(message: string, details?: unknown): DatabaseError;
|
|
45
|
+
export declare function createValidationError(message: string, details?: unknown): ValidationError;
|
|
46
|
+
export declare function createNotFoundError(message?: string, details?: unknown): NotFoundError;
|
|
47
|
+
export declare function createUnauthorizedError(message?: string, details?: unknown): UnauthorizedError;
|
|
48
|
+
export declare function createForbiddenError(message?: string, details?: unknown): ForbiddenError;
|
|
49
|
+
export declare function createConnectionError(message: string, details?: unknown): ConnectionError;
|
|
50
|
+
export declare function createConfigError(message: string, details?: unknown): ConfigError;
|
|
51
|
+
export declare function createGeneralError(message: string, details?: unknown): GeneralError;
|
|
52
|
+
export declare function createCliError(message: string, details?: unknown): CliError;
|
|
53
|
+
export declare function createSecurityError(message: string, details?: unknown): SecurityError;
|
|
54
|
+
export declare function createTryCatchError(message: string, details?: unknown): CatchError;
|
|
55
|
+
/**
|
|
56
|
+
* Backward compatibility Errors object.
|
|
57
|
+
*/
|
|
58
|
+
export declare const Errors: Readonly<{
|
|
59
|
+
database: (message: string, details?: unknown) => Error;
|
|
60
|
+
notFound: (message?: string, details?: unknown) => Error;
|
|
61
|
+
validation: (message: string, details?: unknown) => Error;
|
|
62
|
+
unauthorized: (message?: string, details?: unknown) => Error;
|
|
63
|
+
forbidden: (message?: string, details?: unknown) => Error;
|
|
64
|
+
connection: (message: string, details?: unknown) => Error;
|
|
65
|
+
config: (message: string, details?: unknown) => Error;
|
|
66
|
+
general: (message: string, details?: unknown) => Error;
|
|
67
|
+
cli: (message: string, details?: unknown) => Error;
|
|
68
|
+
security: (message: string, details?: unknown) => Error;
|
|
69
|
+
catchError: (message: string, details?: unknown) => Error;
|
|
70
|
+
}>;
|
|
71
|
+
/**
|
|
72
|
+
* Centralized ErrorFactory for creating standardized errors.
|
|
73
|
+
*/
|
|
74
|
+
export declare const ErrorFactory: Readonly<{
|
|
75
|
+
createDatabaseError: (message: string, details?: unknown) => DatabaseError;
|
|
76
|
+
createConnectionError: (message: string, details?: unknown) => ConnectionError;
|
|
77
|
+
createConfigError: (message: string, details?: unknown) => ConfigError;
|
|
78
|
+
createValidationError: (message: string, details?: unknown) => ValidationError;
|
|
79
|
+
createGeneralError: (message: string, details?: unknown) => GeneralError;
|
|
80
|
+
createTryCatchError: (message: string, details?: unknown) => CatchError;
|
|
81
|
+
createCliError: (message: string, details?: unknown) => CliError;
|
|
82
|
+
createSecurityError: (message: string, details?: unknown) => SecurityError;
|
|
83
|
+
createNotFoundError: (message?: string, details?: unknown) => NotFoundError;
|
|
84
|
+
createUnauthorizedError: (message?: string, details?: unknown) => UnauthorizedError;
|
|
85
|
+
createForbiddenError: (message?: string, details?: unknown) => ForbiddenError;
|
|
86
|
+
}>;
|
|
87
|
+
export {};
|
|
88
|
+
//# sourceMappingURL=ZintrustError.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ZintrustError.d.ts","sourceRoot":"","sources":["../../../src/exceptions/ZintrustError.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base Exception Factory for Zintrust Framework
|
|
3
|
+
* Implemented as plain functions (no classes / no prototype-based constructors).
|
|
4
|
+
*/
|
|
5
|
+
import { Logger } from '../config/logger';
|
|
6
|
+
/**
|
|
7
|
+
* Plain initializer for Zintrust framework errors.
|
|
8
|
+
*/
|
|
9
|
+
export function initZintrustError(target, init = {}) {
|
|
10
|
+
const mutable = target;
|
|
11
|
+
if (init.name !== undefined) {
|
|
12
|
+
target.name = init.name;
|
|
13
|
+
}
|
|
14
|
+
mutable.statusCode = init.statusCode ?? 500;
|
|
15
|
+
mutable.code = init.code ?? 'INTERNAL_ERROR';
|
|
16
|
+
if (init.details !== undefined) {
|
|
17
|
+
mutable.details = init.details;
|
|
18
|
+
}
|
|
19
|
+
if (init.prototype !== undefined) {
|
|
20
|
+
Object.setPrototypeOf(target, init.prototype);
|
|
21
|
+
}
|
|
22
|
+
if (Error?.captureStackTrace !== undefined) {
|
|
23
|
+
Error.captureStackTrace(target, (init.captureStackTraceCtor ?? initZintrustError));
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
function createTypedZintrustError(message, statusCode, code, name, details) {
|
|
27
|
+
// Use `globalThis.Error` to avoid the project's `new Error(...)` restricted syntax selector.
|
|
28
|
+
const error = new globalThis.Error(message);
|
|
29
|
+
initZintrustError(error, {
|
|
30
|
+
statusCode,
|
|
31
|
+
code,
|
|
32
|
+
details,
|
|
33
|
+
name,
|
|
34
|
+
prototype: Error.prototype,
|
|
35
|
+
captureStackTraceCtor: createTypedZintrustError,
|
|
36
|
+
});
|
|
37
|
+
return error;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Plain error creators.
|
|
41
|
+
*/
|
|
42
|
+
export function ZintrustError(message, details) {
|
|
43
|
+
return createTypedZintrustError(message, 500, 'INTERNAL_ERROR', 'ZintrustError', details);
|
|
44
|
+
}
|
|
45
|
+
export function createDatabaseError(message, details) {
|
|
46
|
+
return createTypedZintrustError(message, 500, 'DATABASE_ERROR', 'DatabaseError', details);
|
|
47
|
+
}
|
|
48
|
+
export function createValidationError(message, details) {
|
|
49
|
+
return createTypedZintrustError(message, 400, 'VALIDATION_ERROR', 'ValidationError', details);
|
|
50
|
+
}
|
|
51
|
+
export function createNotFoundError(message = 'Resource not found', details) {
|
|
52
|
+
return createTypedZintrustError(message, 404, 'NOT_FOUND', 'NotFoundError', details);
|
|
53
|
+
}
|
|
54
|
+
export function createUnauthorizedError(message = 'Unauthorized', details) {
|
|
55
|
+
return createTypedZintrustError(message, 401, 'UNAUTHORIZED', 'UnauthorizedError', details);
|
|
56
|
+
}
|
|
57
|
+
export function createForbiddenError(message = 'Forbidden', details) {
|
|
58
|
+
return createTypedZintrustError(message, 403, 'FORBIDDEN', 'ForbiddenError', details);
|
|
59
|
+
}
|
|
60
|
+
export function createConnectionError(message, details) {
|
|
61
|
+
return createTypedZintrustError(message, 500, 'CONNECTION_ERROR', 'ConnectionError', details);
|
|
62
|
+
}
|
|
63
|
+
export function createConfigError(message, details) {
|
|
64
|
+
return createTypedZintrustError(message, 500, 'CONFIG_ERROR', 'ConfigError', details);
|
|
65
|
+
}
|
|
66
|
+
export function createGeneralError(message, details) {
|
|
67
|
+
return createTypedZintrustError(message, 500, 'GENERAL_ERROR', 'GeneralError', details);
|
|
68
|
+
}
|
|
69
|
+
export function createCliError(message, details) {
|
|
70
|
+
return createTypedZintrustError(message, 1, 'CLI_ERROR', 'CliError', details);
|
|
71
|
+
}
|
|
72
|
+
export function createSecurityError(message, details) {
|
|
73
|
+
return createTypedZintrustError(message, 401, 'SECURITY_ERROR', 'SecurityError', details);
|
|
74
|
+
}
|
|
75
|
+
export function createTryCatchError(message, details) {
|
|
76
|
+
Logger.error(message, details);
|
|
77
|
+
return createTypedZintrustError(message, 500, 'TRY_CATCH_ERROR', 'CatchError', details);
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Backward compatibility Errors object.
|
|
81
|
+
*/
|
|
82
|
+
export const Errors = Object.freeze({
|
|
83
|
+
database: (message, details) => createDatabaseError(message, details),
|
|
84
|
+
notFound: (message, details) => createNotFoundError(message ?? 'Resource not found', details),
|
|
85
|
+
validation: (message, details) => createValidationError(message, details),
|
|
86
|
+
unauthorized: (message, details) => createUnauthorizedError(message ?? 'Unauthorized', details),
|
|
87
|
+
forbidden: (message, details) => createForbiddenError(message ?? 'Forbidden', details),
|
|
88
|
+
connection: (message, details) => createConnectionError(message, details),
|
|
89
|
+
config: (message, details) => createConfigError(message, details),
|
|
90
|
+
general: (message, details) => createGeneralError(message, details),
|
|
91
|
+
cli: (message, details) => createCliError(message, details),
|
|
92
|
+
security: (message, details) => createSecurityError(message, details),
|
|
93
|
+
catchError: (message, details) => createTryCatchError(message, details),
|
|
94
|
+
});
|
|
95
|
+
/**
|
|
96
|
+
* Centralized ErrorFactory for creating standardized errors.
|
|
97
|
+
*/
|
|
98
|
+
export const ErrorFactory = Object.freeze({
|
|
99
|
+
createDatabaseError: (message, details) => createDatabaseError(message, details),
|
|
100
|
+
createConnectionError: (message, details) => createConnectionError(message, details),
|
|
101
|
+
createConfigError: (message, details) => createConfigError(message, details),
|
|
102
|
+
createValidationError: (message, details) => createValidationError(message, details),
|
|
103
|
+
createGeneralError: (message, details) => createGeneralError(message, details),
|
|
104
|
+
createTryCatchError: (message, details) => createTryCatchError(message, details),
|
|
105
|
+
createCliError: (message, details) => createCliError(message, details),
|
|
106
|
+
createSecurityError: (message, details) => createSecurityError(message, details),
|
|
107
|
+
createNotFoundError: (message, details) => createNotFoundError(message ?? 'Resource not found', details),
|
|
108
|
+
createUnauthorizedError: (message, details) => createUnauthorizedError(message ?? 'Unauthorized', details),
|
|
109
|
+
createForbiddenError: (message, details) => createForbiddenError(message ?? 'Forbidden', details),
|
|
110
|
+
});
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { type Secret, type SignOptions } from 'jsonwebtoken';
|
|
2
|
+
export declare const Auth: Readonly<{
|
|
3
|
+
/**
|
|
4
|
+
* Hash a password
|
|
5
|
+
*/
|
|
6
|
+
hash(password: string): Promise<string>;
|
|
7
|
+
/**
|
|
8
|
+
* Compare a password with a hash
|
|
9
|
+
*/
|
|
10
|
+
compare(password: string, hash: string): Promise<boolean>;
|
|
11
|
+
/**
|
|
12
|
+
* Generate a JWT token
|
|
13
|
+
*/
|
|
14
|
+
generateToken(payload: Record<string, unknown>, secret: Secret, expiresIn?: NonNullable<SignOptions["expiresIn"]>): string;
|
|
15
|
+
/**
|
|
16
|
+
* Verify a JWT token
|
|
17
|
+
*/
|
|
18
|
+
verifyToken<T>(token: string, secret: Secret): T;
|
|
19
|
+
}>;
|
|
20
|
+
//# sourceMappingURL=Auth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Auth.d.ts","sourceRoot":"","sources":["../../../src/features/Auth.ts"],"names":[],"mappings":"AAEA,OAAO,EAAgB,KAAK,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3E,eAAO,MAAM,IAAI;IACf;;OAEG;mBACkB,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAK7C;;OAEG;sBACqB,MAAM,QAAQ,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAI/D;;OAEG;2BAEQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,UACxB,MAAM,cACH,WAAW,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,GAC/C,MAAM;IAKT;;OAEG;gBACS,CAAC,SAAS,MAAM,UAAU,MAAM,GAAG,CAAC;EAGhD,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
// TEMPLATE_START
|
|
2
|
+
import * as bcrypt from 'bcrypt';
|
|
3
|
+
import { sign, verify } from 'jsonwebtoken';
|
|
4
|
+
export const Auth = Object.freeze({
|
|
5
|
+
/**
|
|
6
|
+
* Hash a password
|
|
7
|
+
*/
|
|
8
|
+
async hash(password) {
|
|
9
|
+
const salt = await bcrypt.genSalt(10);
|
|
10
|
+
return bcrypt.hash(password, salt);
|
|
11
|
+
},
|
|
12
|
+
/**
|
|
13
|
+
* Compare a password with a hash
|
|
14
|
+
*/
|
|
15
|
+
async compare(password, hash) {
|
|
16
|
+
return bcrypt.compare(password, hash);
|
|
17
|
+
},
|
|
18
|
+
/**
|
|
19
|
+
* Generate a JWT token
|
|
20
|
+
*/
|
|
21
|
+
generateToken(payload, secret, expiresIn = '1h') {
|
|
22
|
+
const options = { expiresIn };
|
|
23
|
+
return sign(payload, secret, options);
|
|
24
|
+
},
|
|
25
|
+
/**
|
|
26
|
+
* Verify a JWT token
|
|
27
|
+
*/
|
|
28
|
+
verifyToken(token, secret) {
|
|
29
|
+
return verify(token, secret);
|
|
30
|
+
},
|
|
31
|
+
});
|
|
32
|
+
// TEMPLATE_END
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export interface QueueJob {
|
|
2
|
+
id: string;
|
|
3
|
+
data: unknown;
|
|
4
|
+
timestamp: number;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Simple In-Memory Queue
|
|
8
|
+
* For production, replace with Redis or similar.
|
|
9
|
+
*/
|
|
10
|
+
export declare const Queue: Readonly<{
|
|
11
|
+
jobs: QueueJob[];
|
|
12
|
+
/**
|
|
13
|
+
* Add a job to the queue
|
|
14
|
+
*/
|
|
15
|
+
add<T>(data: T): Promise<string>;
|
|
16
|
+
/**
|
|
17
|
+
* Process jobs (Placeholder)
|
|
18
|
+
*/
|
|
19
|
+
process(handler: (job: QueueJob) => Promise<void>): Promise<void>;
|
|
20
|
+
}>;
|
|
21
|
+
//# sourceMappingURL=Queue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Queue.d.ts","sourceRoot":"","sources":["../../../src/features/Queue.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,eAAO,MAAM,KAAK;UACJ,QAAQ,EAAE;IAEtB;;OAEG;QACO,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IActC;;OAEG;qBACoB,CAAC,GAAG,EAAE,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;EAMvE,CAAC"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
// TEMPLATE_START
|
|
2
|
+
import { Logger } from '../config/logger';
|
|
3
|
+
import { ErrorFactory } from '../exceptions/ZintrustError';
|
|
4
|
+
/**
|
|
5
|
+
* Simple In-Memory Queue
|
|
6
|
+
* For production, replace with Redis or similar.
|
|
7
|
+
*/
|
|
8
|
+
export const Queue = Object.freeze({
|
|
9
|
+
jobs: [],
|
|
10
|
+
/**
|
|
11
|
+
* Add a job to the queue
|
|
12
|
+
*/
|
|
13
|
+
async add(data) {
|
|
14
|
+
const id = await generateSecureJobId();
|
|
15
|
+
const job = {
|
|
16
|
+
id,
|
|
17
|
+
data,
|
|
18
|
+
timestamp: Date.now(),
|
|
19
|
+
};
|
|
20
|
+
// In a real implementation, this would push to Redis/SQS
|
|
21
|
+
Queue.jobs.push(job);
|
|
22
|
+
Logger.info(`[Queue] Job added: ${id}`);
|
|
23
|
+
return id;
|
|
24
|
+
},
|
|
25
|
+
/**
|
|
26
|
+
* Process jobs (Placeholder)
|
|
27
|
+
*/
|
|
28
|
+
async process(handler) {
|
|
29
|
+
Logger.info('[Queue] Processing jobs...');
|
|
30
|
+
const jobsToProcess = [...Queue.jobs];
|
|
31
|
+
Queue.jobs.length = 0;
|
|
32
|
+
await Promise.all(jobsToProcess.map(async (job) => handler(job)));
|
|
33
|
+
},
|
|
34
|
+
});
|
|
35
|
+
async function generateSecureJobId() {
|
|
36
|
+
if (typeof globalThis.crypto?.randomUUID === 'function') {
|
|
37
|
+
return globalThis.crypto.randomUUID();
|
|
38
|
+
}
|
|
39
|
+
if (typeof globalThis.crypto?.getRandomValues === 'function') {
|
|
40
|
+
const bytes = new Uint8Array(16);
|
|
41
|
+
globalThis.crypto.getRandomValues(bytes);
|
|
42
|
+
return bytesToHex(bytes);
|
|
43
|
+
}
|
|
44
|
+
// Node fallback for environments without Web Crypto
|
|
45
|
+
try {
|
|
46
|
+
const nodeCrypto = await import('node:crypto');
|
|
47
|
+
return nodeCrypto.randomBytes(16).toString('hex');
|
|
48
|
+
}
|
|
49
|
+
catch (error) {
|
|
50
|
+
throw ErrorFactory.createTryCatchError('Secure crypto API not available to generate a job id.', error);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
function bytesToHex(bytes) {
|
|
54
|
+
let out = '';
|
|
55
|
+
for (const b of bytes)
|
|
56
|
+
out += b.toString(16).padStart(2, '0');
|
|
57
|
+
return out;
|
|
58
|
+
}
|
|
59
|
+
// TEMPLATE_END
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloudflare.d.ts","sourceRoot":"","sources":["../../../src/functions/cloudflare.ts"],"names":[],"mappings":";mBAsBuB,OAAO,QAAQ,OAAO,QAAQ,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC;;AADhF,wBAqBE"}
|