@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,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Service configuration from service.config.json
|
|
3
|
+
*/
|
|
4
|
+
export interface ServiceConfig {
|
|
5
|
+
name: string;
|
|
6
|
+
domain: string;
|
|
7
|
+
port?: number;
|
|
8
|
+
version: string;
|
|
9
|
+
description?: string;
|
|
10
|
+
dependencies?: string[];
|
|
11
|
+
healthCheck?: string;
|
|
12
|
+
database?: {
|
|
13
|
+
isolation: 'shared' | 'isolated';
|
|
14
|
+
migrations: boolean;
|
|
15
|
+
};
|
|
16
|
+
auth?: {
|
|
17
|
+
strategy: 'api-key' | 'jwt' | 'none' | 'custom';
|
|
18
|
+
secretKey?: string;
|
|
19
|
+
publicKey?: string;
|
|
20
|
+
};
|
|
21
|
+
tracing?: {
|
|
22
|
+
enabled: boolean;
|
|
23
|
+
samplingRate?: number;
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
export interface IMicroserviceBootstrap {
|
|
27
|
+
setServicesDir(dir: string): void;
|
|
28
|
+
getServicesDir(): string;
|
|
29
|
+
discoverServices(): Promise<ServiceConfig[]>;
|
|
30
|
+
registerServices(): Promise<void>;
|
|
31
|
+
getServiceConfig(domain: string, name: string): ServiceConfig | undefined;
|
|
32
|
+
getAllServiceConfigs(): ServiceConfig[];
|
|
33
|
+
isServiceIsolated(domain: string, name: string): boolean;
|
|
34
|
+
getServiceAuthStrategy(domain: string, name: string): string;
|
|
35
|
+
isTracingEnabled(domain: string, name: string): boolean;
|
|
36
|
+
getTracingSamplingRate(domain: string, name: string): number;
|
|
37
|
+
initialize(): Promise<void>;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Microservice Bootstrap - Handles service discovery and initialization
|
|
41
|
+
*/
|
|
42
|
+
export declare const MicroserviceBootstrap: {
|
|
43
|
+
getInstance(): IMicroserviceBootstrap;
|
|
44
|
+
reset(): void;
|
|
45
|
+
create(): IMicroserviceBootstrap;
|
|
46
|
+
};
|
|
47
|
+
/**
|
|
48
|
+
* Check if using shared database isolation
|
|
49
|
+
*/
|
|
50
|
+
export declare function isDatabaseShared(): boolean;
|
|
51
|
+
/**
|
|
52
|
+
* Get available authentication strategies
|
|
53
|
+
*/
|
|
54
|
+
export declare function getAuthStrategies(): string[];
|
|
55
|
+
/**
|
|
56
|
+
* Get available database isolations
|
|
57
|
+
*/
|
|
58
|
+
export declare function getDatabaseIsolations(): string[];
|
|
59
|
+
/**
|
|
60
|
+
* Check if request tracing is globally enabled
|
|
61
|
+
*/
|
|
62
|
+
export declare function isTracingGloballyEnabled(): boolean;
|
|
63
|
+
/**
|
|
64
|
+
* Get global tracing sampling rate
|
|
65
|
+
*/
|
|
66
|
+
export declare function getGlobalTracingSamplingRate(): number;
|
|
67
|
+
export declare const MicroservicesConfig: {
|
|
68
|
+
isDatabaseShared: typeof isDatabaseShared;
|
|
69
|
+
getAuthStrategies: typeof getAuthStrategies;
|
|
70
|
+
getDatabaseIsolations: typeof getDatabaseIsolations;
|
|
71
|
+
isTracingGloballyEnabled: typeof isTracingGloballyEnabled;
|
|
72
|
+
getGlobalTracingSamplingRate: typeof getGlobalTracingSamplingRate;
|
|
73
|
+
};
|
|
74
|
+
export default MicroserviceBootstrap;
|
|
75
|
+
//# sourceMappingURL=MicroserviceBootstrap.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MicroserviceBootstrap.d.ts","sourceRoot":"","sources":["../../../src/microservices/MicroserviceBootstrap.ts"],"names":[],"mappings":"AAUA;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE;QACT,SAAS,EAAE,QAAQ,GAAG,UAAU,CAAC;QACjC,UAAU,EAAE,OAAO,CAAC;KACrB,CAAC;IACF,IAAI,CAAC,EAAE;QACL,QAAQ,EAAE,SAAS,GAAG,KAAK,GAAG,MAAM,GAAG,QAAQ,CAAC;QAChD,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,OAAO,CAAC,EAAE;QACR,OAAO,EAAE,OAAO,CAAC;QACjB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;CACH;AAED,MAAM,WAAW,sBAAsB;IACrC,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,cAAc,IAAI,MAAM,CAAC;IACzB,gBAAgB,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IAC7C,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAClC,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAAC;IAC1E,oBAAoB,IAAI,aAAa,EAAE,CAAC;IACxC,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IACzD,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7D,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IACxD,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7D,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7B;AA0ED;;GAEG;AACH,eAAO,MAAM,qBAAqB;mBAEf,sBAAsB;aAC5B,IAAI;cACH,sBAAsB;CA8GjC,CAAC;AA2HJ;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,OAAO,CAE1C;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,EAAE,CAE5C;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,EAAE,CAEhD;AAED;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,OAAO,CAElD;AAED;;GAEG;AACH,wBAAgB,4BAA4B,IAAI,MAAM,CAGrD;AAED,eAAO,MAAM,mBAAmB;;;;;;CAM/B,CAAC;AAEF,eAAe,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,285 @@
|
|
|
1
|
+
import { Env } from '../config/env';
|
|
2
|
+
import { Logger } from '../config/logger';
|
|
3
|
+
import { MicroserviceManager, getEnabledServices, isMicroservicesEnabled, } from './MicroserviceManager';
|
|
4
|
+
import fs from '../node-singletons/fs';
|
|
5
|
+
import * as path from '../node-singletons/path';
|
|
6
|
+
/**
|
|
7
|
+
* Discover services from filesystem
|
|
8
|
+
*/
|
|
9
|
+
async function runDiscoverServices(state) {
|
|
10
|
+
if (!isMicroservicesEnabled()) {
|
|
11
|
+
return [];
|
|
12
|
+
}
|
|
13
|
+
try {
|
|
14
|
+
const domains = getDomains(state.servicesDir);
|
|
15
|
+
const services = [];
|
|
16
|
+
for (const domain of domains) {
|
|
17
|
+
const domainServices = discoverServicesInDomain(state, domain, services.length);
|
|
18
|
+
services.push(...domainServices);
|
|
19
|
+
}
|
|
20
|
+
Logger.info(`✅ Discovered ${services.length} microservices`);
|
|
21
|
+
return services;
|
|
22
|
+
}
|
|
23
|
+
catch (err) {
|
|
24
|
+
Logger.error('Failed to discover microservices', err);
|
|
25
|
+
handleDiscoveryError(err);
|
|
26
|
+
return [];
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Register discovered services with manager
|
|
31
|
+
*/
|
|
32
|
+
async function runRegisterServices(self) {
|
|
33
|
+
const services = await self.discoverServices();
|
|
34
|
+
const manager = MicroserviceManager.getInstance();
|
|
35
|
+
for (const config of services) {
|
|
36
|
+
manager.register(config);
|
|
37
|
+
}
|
|
38
|
+
Logger.info(`📋 Registered ${services.length} services with manager`);
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Initialize services (discover, register, run migrations if needed)
|
|
42
|
+
*/
|
|
43
|
+
async function runInitialize(self) {
|
|
44
|
+
if (isMicroservicesEnabled() === false) {
|
|
45
|
+
Logger.info('ℹ️ Microservices disabled (MICROSERVICES env var not set)');
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
Logger.info('🚀 Initializing microservices...');
|
|
49
|
+
// Discover and register services
|
|
50
|
+
await self.registerServices();
|
|
51
|
+
// Run migrations if configured
|
|
52
|
+
const services = self.getAllServiceConfigs();
|
|
53
|
+
for (const config of services) {
|
|
54
|
+
if (config.database?.migrations === true) {
|
|
55
|
+
Logger.info(`📦 Service ${config.name} has migrations enabled (database isolation: ${config.database.isolation})`);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
Logger.info('✅ Microservices initialized');
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Microservice Bootstrap - Handles service discovery and initialization
|
|
62
|
+
*/
|
|
63
|
+
export const MicroserviceBootstrap = Object.freeze(() => {
|
|
64
|
+
let instance;
|
|
65
|
+
return {
|
|
66
|
+
getInstance() {
|
|
67
|
+
instance ??= this.create();
|
|
68
|
+
return instance;
|
|
69
|
+
},
|
|
70
|
+
/**
|
|
71
|
+
* Reset the singleton instance (for testing)
|
|
72
|
+
*/
|
|
73
|
+
reset() {
|
|
74
|
+
instance = undefined;
|
|
75
|
+
},
|
|
76
|
+
/**
|
|
77
|
+
* Create a new microservice bootstrap instance
|
|
78
|
+
*/
|
|
79
|
+
create() {
|
|
80
|
+
const state = {
|
|
81
|
+
serviceConfigs: new Map(),
|
|
82
|
+
servicesDir: path.join(process.cwd(), 'src', 'services'),
|
|
83
|
+
};
|
|
84
|
+
const self = {
|
|
85
|
+
/**
|
|
86
|
+
* Set custom services directory
|
|
87
|
+
*/
|
|
88
|
+
setServicesDir(dir) {
|
|
89
|
+
state.servicesDir = dir;
|
|
90
|
+
},
|
|
91
|
+
getServicesDir() {
|
|
92
|
+
return state.servicesDir;
|
|
93
|
+
},
|
|
94
|
+
/**
|
|
95
|
+
* Discover services from filesystem
|
|
96
|
+
*/
|
|
97
|
+
async discoverServices() {
|
|
98
|
+
return runDiscoverServices(state);
|
|
99
|
+
},
|
|
100
|
+
/**
|
|
101
|
+
* Register discovered services with manager
|
|
102
|
+
*/
|
|
103
|
+
async registerServices() {
|
|
104
|
+
return runRegisterServices(this);
|
|
105
|
+
},
|
|
106
|
+
/**
|
|
107
|
+
* Get service configuration
|
|
108
|
+
*/
|
|
109
|
+
getServiceConfig(domain, name) {
|
|
110
|
+
return state.serviceConfigs.get(getServiceKey(domain, name));
|
|
111
|
+
},
|
|
112
|
+
/**
|
|
113
|
+
* Get all discovered service configurations
|
|
114
|
+
*/
|
|
115
|
+
getAllServiceConfigs() {
|
|
116
|
+
return Array.from(state.serviceConfigs.values());
|
|
117
|
+
},
|
|
118
|
+
/**
|
|
119
|
+
* Check if service has database isolation
|
|
120
|
+
*/
|
|
121
|
+
isServiceIsolated(domain, name) {
|
|
122
|
+
const config = this.getServiceConfig(domain, name);
|
|
123
|
+
return config?.database?.isolation === 'isolated' || false;
|
|
124
|
+
},
|
|
125
|
+
/**
|
|
126
|
+
* Get service auth strategy
|
|
127
|
+
*/
|
|
128
|
+
getServiceAuthStrategy(domain, name) {
|
|
129
|
+
const config = this.getServiceConfig(domain, name);
|
|
130
|
+
return config?.auth?.strategy || 'none';
|
|
131
|
+
},
|
|
132
|
+
/**
|
|
133
|
+
* Check if service has tracing enabled
|
|
134
|
+
*/
|
|
135
|
+
isTracingEnabled(domain, name) {
|
|
136
|
+
const config = this.getServiceConfig(domain, name);
|
|
137
|
+
return config?.tracing?.enabled ?? false;
|
|
138
|
+
},
|
|
139
|
+
/**
|
|
140
|
+
* Get tracing sampling rate (0.0 to 1.0)
|
|
141
|
+
*/
|
|
142
|
+
getTracingSamplingRate(domain, name) {
|
|
143
|
+
const config = this.getServiceConfig(domain, name);
|
|
144
|
+
return config?.tracing?.samplingRate ?? 1;
|
|
145
|
+
},
|
|
146
|
+
/**
|
|
147
|
+
* Initialize services (discover, register, run migrations if needed)
|
|
148
|
+
*/
|
|
149
|
+
async initialize() {
|
|
150
|
+
return runInitialize(this);
|
|
151
|
+
},
|
|
152
|
+
};
|
|
153
|
+
return self;
|
|
154
|
+
},
|
|
155
|
+
};
|
|
156
|
+
})();
|
|
157
|
+
/**
|
|
158
|
+
* Generate service key for registry lookup
|
|
159
|
+
*/
|
|
160
|
+
function getServiceKey(domain, name) {
|
|
161
|
+
return `${domain}/${name}`;
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Get all domains in services directory
|
|
165
|
+
*/
|
|
166
|
+
function getDomains(servicesDir) {
|
|
167
|
+
if (!fs.existsSync(servicesDir))
|
|
168
|
+
return [];
|
|
169
|
+
return fs.readdirSync(servicesDir).filter((file) => {
|
|
170
|
+
const filePath = path.join(servicesDir, file);
|
|
171
|
+
return fs.statSync(filePath).isDirectory();
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Check if a service is enabled via environment
|
|
176
|
+
*/
|
|
177
|
+
function isServiceEnabled(serviceName, enabledServices) {
|
|
178
|
+
return enabledServices.length === 0 || enabledServices.includes(serviceName);
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Load service configuration from file
|
|
182
|
+
*/
|
|
183
|
+
function loadServiceConfig(domain, serviceName, configPath, index) {
|
|
184
|
+
const configData = JSON.parse(fs.readFileSync(configPath, 'utf-8'));
|
|
185
|
+
return {
|
|
186
|
+
name: serviceName,
|
|
187
|
+
domain,
|
|
188
|
+
port: configData.port ?? 3001 + index,
|
|
189
|
+
version: configData.version,
|
|
190
|
+
description: configData.description,
|
|
191
|
+
dependencies: configData.dependencies ?? [],
|
|
192
|
+
healthCheck: configData.healthCheck ?? '/health',
|
|
193
|
+
database: {
|
|
194
|
+
isolation: configData.database?.isolation ?? 'shared',
|
|
195
|
+
migrations: configData.database?.migrations !== false,
|
|
196
|
+
},
|
|
197
|
+
auth: {
|
|
198
|
+
strategy: configData.auth?.strategy ?? 'none',
|
|
199
|
+
secretKey: configData.auth?.secretKey,
|
|
200
|
+
publicKey: configData.auth?.publicKey,
|
|
201
|
+
},
|
|
202
|
+
tracing: {
|
|
203
|
+
enabled: configData.tracing?.enabled ?? false,
|
|
204
|
+
samplingRate: configData.tracing?.samplingRate ?? 1,
|
|
205
|
+
},
|
|
206
|
+
};
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* Try to load service configuration if it exists
|
|
210
|
+
*/
|
|
211
|
+
function tryLoadServiceConfig(state, domain, serviceName, domainPath, index) {
|
|
212
|
+
const configPath = path.join(domainPath, serviceName, 'service.config.json');
|
|
213
|
+
if (!fs.existsSync(configPath))
|
|
214
|
+
return null;
|
|
215
|
+
const config = loadServiceConfig(domain, serviceName, configPath, index);
|
|
216
|
+
state.serviceConfigs.set(getServiceKey(domain, serviceName), config);
|
|
217
|
+
return config;
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Discover all services within a specific domain
|
|
221
|
+
*/
|
|
222
|
+
function discoverServicesInDomain(state, domain, startIndex) {
|
|
223
|
+
const domainPath = path.join(state.servicesDir, domain);
|
|
224
|
+
const serviceNames = fs.readdirSync(domainPath).filter((file) => {
|
|
225
|
+
const filePath = path.join(domainPath, file);
|
|
226
|
+
return fs.statSync(filePath).isDirectory() && file !== 'shared';
|
|
227
|
+
});
|
|
228
|
+
const services = [];
|
|
229
|
+
const enabledServices = getEnabledServices();
|
|
230
|
+
for (const serviceName of serviceNames) {
|
|
231
|
+
if (isServiceEnabled(serviceName, enabledServices)) {
|
|
232
|
+
const config = tryLoadServiceConfig(state, domain, serviceName, domainPath, startIndex + services.length);
|
|
233
|
+
if (config)
|
|
234
|
+
services.push(config);
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
return services;
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* Handle discovery errors gracefully
|
|
241
|
+
*/
|
|
242
|
+
function handleDiscoveryError(err) {
|
|
243
|
+
if (err.code !== 'ENOENT') {
|
|
244
|
+
Logger.error('Error discovering services:', err);
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* Check if using shared database isolation
|
|
249
|
+
*/
|
|
250
|
+
export function isDatabaseShared() {
|
|
251
|
+
return Env.DATABASE_ISOLATION !== 'isolated';
|
|
252
|
+
}
|
|
253
|
+
/**
|
|
254
|
+
* Get available authentication strategies
|
|
255
|
+
*/
|
|
256
|
+
export function getAuthStrategies() {
|
|
257
|
+
return ['api-key', 'jwt', 'none', 'custom'];
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* Get available database isolations
|
|
261
|
+
*/
|
|
262
|
+
export function getDatabaseIsolations() {
|
|
263
|
+
return ['shared', 'isolated'];
|
|
264
|
+
}
|
|
265
|
+
/**
|
|
266
|
+
* Check if request tracing is globally enabled
|
|
267
|
+
*/
|
|
268
|
+
export function isTracingGloballyEnabled() {
|
|
269
|
+
return Env.MICROSERVICES_TRACING === true;
|
|
270
|
+
}
|
|
271
|
+
/**
|
|
272
|
+
* Get global tracing sampling rate
|
|
273
|
+
*/
|
|
274
|
+
export function getGlobalTracingSamplingRate() {
|
|
275
|
+
const rate = Env.MICROSERVICES_TRACING_RATE;
|
|
276
|
+
return Math.min(Math.max(rate, 0), 1); // Clamp between 0 and 1
|
|
277
|
+
}
|
|
278
|
+
export const MicroservicesConfig = {
|
|
279
|
+
isDatabaseShared,
|
|
280
|
+
getAuthStrategies,
|
|
281
|
+
getDatabaseIsolations,
|
|
282
|
+
isTracingGloballyEnabled,
|
|
283
|
+
getGlobalTracingSamplingRate,
|
|
284
|
+
};
|
|
285
|
+
export default MicroserviceBootstrap;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Microservice generator - auto-creates microservice folder structure
|
|
3
|
+
* Generates boilerplate code for domain-driven microservices
|
|
4
|
+
*/
|
|
5
|
+
export interface GenerateServiceOptions {
|
|
6
|
+
domain: string;
|
|
7
|
+
services: string[];
|
|
8
|
+
basePort?: number;
|
|
9
|
+
version?: string;
|
|
10
|
+
}
|
|
11
|
+
export interface IMicroserviceGenerator {
|
|
12
|
+
generate(options: GenerateServiceOptions): Promise<void>;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Microservice code generator
|
|
16
|
+
*/
|
|
17
|
+
export declare const MicroserviceGenerator: {
|
|
18
|
+
getInstance(): IMicroserviceGenerator;
|
|
19
|
+
create(): IMicroserviceGenerator;
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* CLI command to generate microservices
|
|
23
|
+
*/
|
|
24
|
+
export declare function generateMicroservices(domain: string, services: string[], port?: number): Promise<void>;
|
|
25
|
+
export declare const generate: (options: GenerateServiceOptions) => Promise<void>;
|
|
26
|
+
export default MicroserviceGenerator;
|
|
27
|
+
//# sourceMappingURL=MicroserviceGenerator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MicroserviceGenerator.d.ts","sourceRoot":"","sources":["../../../src/microservices/MicroserviceGenerator.ts"],"names":[],"mappings":"AACA;;;GAGG;AAMH,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1D;AAED;;GAEG;AACH,eAAO,MAAM,qBAAqB;mBAEf,sBAAsB;cAC3B,sBAAsB;CAgDjC,CAAC;AAkbJ;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAAE,EAClB,IAAI,GAAE,MAAa,GAClB,OAAO,CAAC,IAAI,CAAC,CAYf;AAED,eAAO,MAAM,QAAQ,GAAU,SAAS,sBAAsB,KAAG,OAAO,CAAC,IAAI,CACtB,CAAC;AAExD,eAAe,qBAAqB,CAAC"}
|