@zintrust/core 0.1.21 → 0.1.23
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 +1 -1
- package/bin/z.js +1 -1
- package/bin/zin.d.ts +1 -1
- package/bin/zin.js +1 -1
- package/bin/zintrust-main.d.ts +1 -1
- package/bin/zintrust-main.js +2 -2
- package/bin/zintrust-microservices.d.ts +1 -1
- package/bin/zintrust-microservices.js +1 -1
- package/bin/zintrust.d.ts +1 -1
- package/bin/zintrust.js +1 -1
- package/bin/zt.d.ts +1 -1
- package/bin/zt.js +1 -1
- package/package.json +2 -3
- package/public/index.html +3 -3
- package/routes/api.js +1 -1
- package/routes/health.d.ts +3 -4
- package/routes/health.d.ts.map +1 -1
- package/routes/health.js +3 -125
- package/src/boot/Application.d.ts.map +1 -1
- package/src/boot/Application.js +11 -22
- package/src/boot/bootstrap.d.ts +1 -1
- package/src/boot/bootstrap.js +48 -7
- package/src/builder/BundleOptimizer.d.ts +1 -1
- package/src/builder/BundleOptimizer.js +1 -1
- package/src/cache/drivers/KVRemoteDriver.d.ts +1 -1
- package/src/cache/drivers/KVRemoteDriver.js +1 -1
- package/src/cli/CLI.d.ts.map +1 -1
- package/src/cli/CLI.js +15 -1
- package/src/cli/ErrorHandler.js +3 -3
- package/src/cli/commands/AddCommand.d.ts +1 -1
- package/src/cli/commands/AddCommand.d.ts.map +1 -1
- package/src/cli/commands/AddCommand.js +1 -1
- package/src/cli/commands/DbSeedCommand.js +1 -1
- package/src/cli/commands/MakeMailTemplateCommand.js +2 -1
- package/src/cli/commands/MakeNotificationTemplateCommand.js +2 -1
- package/src/cli/commands/MigrateCommand.d.ts.map +1 -1
- package/src/cli/commands/MigrateCommand.js +1 -1
- package/src/cli/commands/MigrateWorkerCommand.d.ts +9 -0
- package/src/cli/commands/MigrateWorkerCommand.d.ts.map +1 -0
- package/src/cli/commands/MigrateWorkerCommand.js +182 -0
- package/src/cli/commands/NewCommand.d.ts +1 -1
- package/src/cli/commands/NewCommand.d.ts.map +1 -1
- package/src/cli/commands/NewCommand.js +21 -7
- package/src/cli/commands/PublishCommand.d.ts +5 -0
- package/src/cli/commands/PublishCommand.d.ts.map +1 -0
- package/src/cli/commands/PublishCommand.js +54 -0
- package/src/cli/commands/QACommand.js +4 -4
- package/src/cli/commands/ResourceControlCommand.d.ts +6 -0
- package/src/cli/commands/ResourceControlCommand.d.ts.map +1 -0
- package/src/cli/commands/ResourceControlCommand.js +43 -0
- package/src/cli/commands/SimulateCommand.d.ts +1 -1
- package/src/cli/commands/SimulateCommand.js +4 -4
- package/src/cli/commands/StartCommand.d.ts.map +1 -1
- package/src/cli/commands/StartCommand.js +19 -7
- package/src/cli/commands/UpgradeCommand.d.ts +1 -1
- package/src/cli/commands/UpgradeCommand.js +2 -2
- package/src/cli/commands/WorkerCommands.d.ts +17 -0
- package/src/cli/commands/WorkerCommands.d.ts.map +1 -0
- package/src/cli/commands/WorkerCommands.js +264 -0
- package/src/cli/commands/index.d.ts +2 -0
- package/src/cli/commands/index.d.ts.map +1 -1
- package/src/cli/commands/index.js +2 -0
- package/src/cli/config/ConfigSchema.d.ts +1 -1
- package/src/cli/config/ConfigSchema.d.ts.map +1 -1
- package/src/cli/config/ConfigSchema.js +4 -3
- package/src/cli/d1/D1SqlMigrations.d.ts.map +1 -1
- package/src/cli/d1/D1SqlMigrations.js +4 -3
- package/src/cli/scaffolding/ModelGenerator.d.ts +1 -1
- package/src/cli/scaffolding/ModelGenerator.d.ts.map +1 -1
- package/src/cli/scaffolding/ModelGenerator.js +10 -2
- package/src/cli/scaffolding/ProjectScaffolder.js +5 -5
- package/src/cli/scaffolding/RouteGenerator.d.ts.map +1 -1
- package/src/cli/scaffolding/RouteGenerator.js +21 -2
- package/src/cli/scaffolding/TemplateEngine.js +1 -1
- package/src/cli/utils/EnvFileLoader.d.ts.map +1 -1
- package/src/common/ExternalServiceUtils.d.ts +63 -0
- package/src/common/ExternalServiceUtils.d.ts.map +1 -0
- package/src/common/ExternalServiceUtils.js +116 -0
- package/src/common/HealthRoutes.d.ts +10 -0
- package/src/common/HealthRoutes.d.ts.map +1 -0
- package/src/common/HealthRoutes.js +114 -0
- package/src/config/SecretsManager.d.ts.map +1 -1
- package/src/config/SecretsManager.js +2 -1
- package/src/config/app.d.ts +2 -1
- package/src/config/app.d.ts.map +1 -1
- package/src/config/app.js +98 -52
- package/src/config/broadcast.d.ts.map +1 -1
- package/src/config/broadcast.js +2 -2
- package/src/config/cache.d.ts.map +1 -1
- package/src/config/cache.js +2 -2
- package/src/config/database.d.ts.map +1 -1
- package/src/config/database.js +24 -5
- package/src/config/env.d.ts +43 -1
- package/src/config/env.d.ts.map +1 -1
- package/src/config/env.js +68 -21
- package/src/config/index.d.ts +10 -1
- package/src/config/index.d.ts.map +1 -1
- package/src/config/index.js +1 -0
- package/src/config/mail.d.ts.map +1 -1
- package/src/config/mail.js +3 -3
- package/src/config/middleware.d.ts.map +1 -1
- package/src/config/middleware.js +1 -1
- package/src/config/notification.d.ts.map +1 -1
- package/src/config/notification.js +2 -2
- package/src/config/queue.d.ts +14 -0
- package/src/config/queue.d.ts.map +1 -1
- package/src/config/queue.js +61 -36
- package/src/config/security.js +2 -2
- package/src/config/storage.d.ts.map +1 -1
- package/src/config/storage.js +5 -5
- package/src/config/type.d.ts +122 -0
- package/src/config/type.d.ts.map +1 -1
- package/src/config/type.js +10 -1
- package/src/config/workers.d.ts +13 -0
- package/src/config/workers.d.ts.map +1 -0
- package/src/config/workers.js +173 -0
- package/src/database/Paginator.d.ts +37 -0
- package/src/database/Paginator.d.ts.map +1 -0
- package/src/database/Paginator.js +81 -0
- package/src/exceptions/ZintrustError.d.ts +5 -2
- package/src/exceptions/ZintrustError.d.ts.map +1 -1
- package/src/exceptions/ZintrustError.js +6 -2
- package/src/features/Auth.d.ts +1 -1
- package/src/features/Auth.d.ts.map +1 -1
- package/src/features/Auth.js +3 -2
- package/src/features/Queue.d.ts.map +1 -1
- package/src/features/Queue.js +0 -2
- package/src/index.d.ts +15 -5
- package/src/index.d.ts.map +1 -1
- package/src/index.js +24 -3
- package/src/microservices/MicroserviceBootstrap.d.ts.map +1 -1
- package/src/microservices/MicroserviceBootstrap.js +3 -1
- package/src/microservices/MicroserviceGenerator.js +4 -4
- package/src/microservices/MicroserviceManager.d.ts +1 -1
- package/src/microservices/MicroserviceManager.js +1 -1
- package/src/middleware/RateLimiter.d.ts.map +1 -1
- package/src/middleware/RateLimiter.js +4 -3
- package/src/migrations/MigrationLoader.d.ts +1 -1
- package/src/migrations/MigrationLoader.d.ts.map +1 -1
- package/src/migrations/Migrator.d.ts +3 -3
- package/src/migrations/Migrator.d.ts.map +1 -1
- package/src/migrations/Migrator.js +1 -1
- package/src/migrations/MigratorFactory.d.ts +1 -1
- package/src/migrations/MigratorFactory.d.ts.map +1 -1
- package/src/migrations/MigratorFactory.js +3 -3
- package/src/migrations/enum/index.d.ts +93 -0
- package/src/migrations/enum/index.d.ts.map +1 -0
- package/src/migrations/enum/index.js +92 -0
- package/src/migrations/schema/Blueprint.d.ts +1 -1
- package/src/migrations/schema/Blueprint.d.ts.map +1 -1
- package/src/migrations/schema/Blueprint.js +27 -25
- package/src/migrations/schema/Schema.d.ts +1 -1
- package/src/migrations/schema/Schema.d.ts.map +1 -1
- package/src/migrations/schema/Schema.js +4 -3
- package/src/migrations/schema/SchemaCompiler.d.ts +1 -1
- package/src/migrations/schema/SchemaCompiler.d.ts.map +1 -1
- package/src/migrations/schema/SchemaCompiler.js +99 -91
- package/src/migrations/schema/index.d.ts +4 -4
- package/src/migrations/schema/index.d.ts.map +1 -1
- package/src/migrations/schema/index.js +3 -3
- package/src/migrations/schema/types.d.ts +2 -1
- package/src/migrations/schema/types.d.ts.map +1 -1
- package/src/node-singletons/crypto.d.ts +1 -1
- package/src/node-singletons/crypto.d.ts.map +1 -1
- package/src/node-singletons/crypto.js +1 -1
- package/src/node-singletons/os.d.ts +10 -1
- package/src/node-singletons/os.d.ts.map +1 -1
- package/src/node-singletons/os.js +10 -1
- package/src/openapi/OpenApiGenerator.js +2 -2
- package/src/orm/ConnectionManager.d.ts +7 -5
- package/src/orm/ConnectionManager.d.ts.map +1 -1
- package/src/orm/ConnectionManager.js +249 -93
- package/src/orm/Database.d.ts +2 -1
- package/src/orm/Database.d.ts.map +1 -1
- package/src/orm/DatabaseAdapter.d.ts +3 -2
- package/src/orm/DatabaseAdapter.d.ts.map +1 -1
- package/src/orm/DatabaseAdapter.js +17 -0
- package/src/orm/Model.d.ts +8 -1
- package/src/orm/Model.d.ts.map +1 -1
- package/src/orm/Model.js +109 -26
- package/src/orm/QueryBuilder.d.ts +12 -2
- package/src/orm/QueryBuilder.d.ts.map +1 -1
- package/src/orm/QueryBuilder.js +438 -38
- package/src/orm/Relationships.d.ts +61 -1
- package/src/orm/Relationships.d.ts.map +1 -1
- package/src/orm/Relationships.js +190 -0
- package/src/orm/adapters/D1Adapter.d.ts.map +1 -1
- package/src/orm/adapters/D1Adapter.js +2 -1
- package/src/orm/adapters/D1RemoteAdapter.d.ts +1 -1
- package/src/orm/adapters/D1RemoteAdapter.d.ts.map +1 -1
- package/src/orm/adapters/D1RemoteAdapter.js +3 -2
- package/src/orm/adapters/MySQLAdapter.d.ts.map +1 -1
- package/src/orm/adapters/MySQLAdapter.js +2 -1
- package/src/orm/adapters/SQLServerAdapter.d.ts.map +1 -1
- package/src/orm/adapters/SQLServerAdapter.js +2 -1
- package/src/orm/adapters/SQLiteAdapter.d.ts.map +1 -1
- package/src/orm/adapters/SQLiteAdapter.js +2 -1
- package/src/orm/migrations/MigrationStore.d.ts.map +1 -1
- package/src/performance/Optimizer.d.ts.map +1 -1
- package/src/performance/Optimizer.js +57 -18
- package/src/profiling/RequestProfiler.d.ts.map +1 -1
- package/src/profiling/RequestProfiler.js +3 -1
- package/src/routing/CoreRoutes.d.ts +1 -1
- package/src/routing/CoreRoutes.d.ts.map +1 -1
- package/src/routing/CoreRoutes.js +2 -116
- package/src/routing/error.d.ts.map +1 -1
- package/src/routing/error.js +3 -2
- package/src/routing/publicRoot.d.ts.map +1 -1
- package/src/routing/publicRoot.js +4 -2
- package/src/runtime/PluginAutoImports.d.ts.map +1 -1
- package/src/runtime/PluginAutoImports.js +20 -4
- package/src/runtime/PluginManager.d.ts.map +1 -1
- package/src/runtime/PluginManager.js +23 -6
- package/src/runtime/RuntimeAdapter.d.ts +3 -3
- package/src/runtime/RuntimeAdapter.d.ts.map +1 -1
- package/src/runtime/StartupConfigFileRegistry.d.ts +15 -13
- package/src/runtime/StartupConfigFileRegistry.d.ts.map +1 -1
- package/src/runtime/StartupConfigFileRegistry.js +12 -12
- package/src/runtime/adapters/CloudflareAdapter.d.ts.map +1 -1
- package/src/runtime/adapters/CloudflareAdapter.js +1 -1
- package/src/runtime/adapters/DenoAdapter.d.ts.map +1 -1
- package/src/runtime/adapters/DenoAdapter.js +1 -1
- package/src/runtime/adapters/FargateAdapter.d.ts +2 -2
- package/src/runtime/adapters/FargateAdapter.d.ts.map +1 -1
- package/src/runtime/adapters/FargateAdapter.js +1 -1
- package/src/runtime/adapters/LambdaAdapter.d.ts +1 -1
- package/src/runtime/adapters/LambdaAdapter.d.ts.map +1 -1
- package/src/runtime/adapters/LambdaAdapter.js +6 -4
- package/src/runtime/adapters/NodeServerAdapter.js +1 -1
- package/src/scripts/GenerateEnvArtifacts.js +1 -1
- package/src/security/SignedRequest.js +1 -1
- package/src/security/StartupSecretValidation.d.ts.map +1 -1
- package/src/security/StartupSecretValidation.js +7 -1
- package/src/start.d.ts.map +1 -1
- package/src/start.js +0 -2
- package/src/templates/features/Auth.ts.tpl +4 -4
- package/src/templates/project/basic/README.md.tpl +1 -1
- package/src/templates/project/basic/app/Middleware/index.ts.tpl +1 -1
- package/src/templates/project/basic/config/notification.ts.tpl +1 -1
- package/src/templates/project/basic/routes/api.ts.tpl +1 -3
- package/src/templates/project/basic/src/index.ts.tpl +1 -1
- package/src/templates/project/basic/src/zintrust.plugins.ts.tpl +1 -1
- package/src/templates/project/basic/template.json +1 -1
- package/src/toolkit/Secrets/index.d.ts.map +1 -1
- package/src/toolkit/Secrets/index.js +13 -9
- package/src/toolkit/Secrets/providers/AwsSecretsManager.d.ts.map +1 -1
- package/src/toolkit/Secrets/providers/AwsSecretsManager.js +20 -7
- package/src/toolkit/Secrets/providers/CloudflareKv.d.ts.map +1 -1
- package/src/toolkit/Secrets/providers/CloudflareKv.js +19 -6
- package/src/tools/http/Http.js +1 -1
- package/src/tools/mail/drivers/Ses.d.ts.map +1 -1
- package/src/tools/mail/drivers/Ses.js +5 -4
- package/src/tools/mail/templates/index.js +2 -2
- package/src/tools/notification/drivers/Termii.d.ts.map +1 -1
- package/src/tools/notification/drivers/Termii.js +6 -17
- package/src/tools/notification/testingHelpers.d.ts.map +1 -1
- package/src/tools/queue/Queue.d.ts.map +1 -1
- package/src/tools/queue/Queue.js +3 -5
- package/src/tools/queue/drivers/Redis.d.ts.map +1 -1
- package/src/tools/queue/drivers/Redis.js +7 -1
- package/src/tools/storage/drivers/S3.d.ts.map +1 -1
- package/src/tools/storage/drivers/S3.js +16 -3
- package/src/routes/health.d.ts +0 -2
- package/src/routes/health.d.ts.map +0 -1
- package/src/routes/health.js +0 -1
- package/src/runtime/RuntimeDetector.d.ts +0 -15
- package/src/runtime/RuntimeDetector.d.ts.map +0 -1
- package/src/runtime/RuntimeDetector.js +0 -271
- package/src/templates/project/basic/routes/health.ts.tpl +0 -143
- package/src/templates/project/basic/routes/metrics.ts.tpl +0 -22
- package/src/workers/BroadcastWorker.d.ts +0 -22
- package/src/workers/BroadcastWorker.d.ts.map +0 -1
- package/src/workers/BroadcastWorker.js +0 -24
- package/src/workers/NotificationWorker.d.ts +0 -22
- package/src/workers/NotificationWorker.d.ts.map +0 -1
- package/src/workers/NotificationWorker.js +0 -23
- package/src/workers/createQueueWorker.d.ts +0 -24
- package/src/workers/createQueueWorker.d.ts.map +0 -1
- package/src/workers/createQueueWorker.js +0 -114
package/bin/z.d.ts
CHANGED
package/bin/z.js
CHANGED
package/bin/zin.d.ts
CHANGED
package/bin/zin.js
CHANGED
package/bin/zintrust-main.d.ts
CHANGED
package/bin/zintrust-main.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* ZinTrust CLI - Main Entry Point (hashbang-free)
|
|
3
3
|
*
|
|
4
4
|
* This module contains the CLI implementation without a hashbang so that it can
|
|
5
5
|
* be imported by other bin shortcuts (zin/z/zt) without parse errors.
|
|
@@ -33,7 +33,7 @@ const isVersionRequest = (args) => {
|
|
|
33
33
|
return args.includes('-v') || args.includes('--version');
|
|
34
34
|
};
|
|
35
35
|
const printFancyVersion = (version) => {
|
|
36
|
-
const framework = '
|
|
36
|
+
const framework = 'ZinTrust Framework';
|
|
37
37
|
const bannerWidth = 46;
|
|
38
38
|
const env = (process.env['NODE_ENV'] ?? 'development').toString();
|
|
39
39
|
const db = (process.env['DB_CONNECTION'] ?? 'sqlite').toString();
|
package/bin/zintrust.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env -S node --import tsx
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
3
|
+
* ZinTrust CLI - Main Entry Point
|
|
4
4
|
*
|
|
5
5
|
* This bin script is a thin wrapper around the hashbang-free implementation in
|
|
6
6
|
* bin/zintrust-main.ts. Keeping the implementation hashbang-free allows other
|
package/bin/zintrust.js
CHANGED
package/bin/zt.d.ts
CHANGED
package/bin/zt.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zintrust/core",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.23",
|
|
4
4
|
"description": "Production-grade TypeScript backend framework for JavaScript",
|
|
5
5
|
"homepage": "https://zintrust.com",
|
|
6
6
|
"repository": {
|
|
@@ -34,7 +34,6 @@
|
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
36
|
"bcrypt": "^6.0.0",
|
|
37
|
-
"bg": "^1.0.0",
|
|
38
37
|
"chalk": "^5.6.2",
|
|
39
38
|
"commander": "^14.0.2",
|
|
40
39
|
"inquirer": "^13.2.0",
|
|
@@ -75,7 +74,7 @@
|
|
|
75
74
|
"symfony",
|
|
76
75
|
"laravel"
|
|
77
76
|
],
|
|
78
|
-
"author": "
|
|
77
|
+
"author": "ZinTrust Team",
|
|
79
78
|
"license": "MIT",
|
|
80
79
|
"publishConfig": {
|
|
81
80
|
"access": "public"
|
package/public/index.html
CHANGED
|
@@ -333,7 +333,7 @@
|
|
|
333
333
|
<footer
|
|
334
334
|
class="mt-14 flex flex-col md:flex-row items-center justify-between gap-4 border-t border-black/10 pt-8 text-sm text-slate-500 dark:border-white/10 dark:text-slate-400"
|
|
335
335
|
>
|
|
336
|
-
<div>© <span id="year"></span>
|
|
336
|
+
<div>© <span id="year"></span> ZinTrust Framework. All rights reserved.</div>
|
|
337
337
|
<div class="flex flex-wrap justify-center gap-x-5 gap-y-2 font-semibold">
|
|
338
338
|
<a
|
|
339
339
|
class="hover:text-slate-900 dark:hover:text-white"
|
|
@@ -373,7 +373,7 @@
|
|
|
373
373
|
</div>
|
|
374
374
|
<div class="mt-8 pt-8 border-t border-slate-200 dark:border-slate-800 text-center">
|
|
375
375
|
<p class="text-sm text-slate-500 dark:text-slate-400">
|
|
376
|
-
© 2025
|
|
376
|
+
© 2025 ZinTrust Framework. All rights reserved.
|
|
377
377
|
</p>
|
|
378
378
|
</div>
|
|
379
379
|
</footer>
|
|
@@ -381,7 +381,7 @@
|
|
|
381
381
|
</main>
|
|
382
382
|
|
|
383
383
|
<script>
|
|
384
|
-
const STORAGE_KEY = '
|
|
384
|
+
const STORAGE_KEY = 'zintrust-docs-theme';
|
|
385
385
|
const themeBtn = document.getElementById('themeBtn');
|
|
386
386
|
const themeIcon = document.getElementById('themeIcon');
|
|
387
387
|
const htmlEl = document.documentElement;
|
package/routes/api.js
CHANGED
|
@@ -32,7 +32,7 @@ function registerPublicRoutes(router) {
|
|
|
32
32
|
function registerRootRoute(router) {
|
|
33
33
|
Router.get(router, '/', async (_req, res) => {
|
|
34
34
|
res.json({
|
|
35
|
-
framework: '
|
|
35
|
+
framework: 'ZinTrust Framework',
|
|
36
36
|
app_name: Env.APP_NAME,
|
|
37
37
|
version: '0.1.0',
|
|
38
38
|
env: Env.NODE_ENV ?? 'development',
|
package/routes/health.d.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Health Routes
|
|
3
|
-
*
|
|
2
|
+
* Health Routes - Re-export from shared module
|
|
3
|
+
* This file maintains backward compatibility while eliminating duplication
|
|
4
4
|
*/
|
|
5
|
-
|
|
6
|
-
export declare function registerHealthRoutes(router: IRouter): void;
|
|
5
|
+
export { registerHealthRoutes } from '../src/common/HealthRoutes';
|
|
7
6
|
//# sourceMappingURL=health.d.ts.map
|
package/routes/health.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../../routes/health.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../../routes/health.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC"}
|
package/routes/health.js
CHANGED
|
@@ -1,127 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Health Routes
|
|
3
|
-
*
|
|
2
|
+
* Health Routes - Re-export from shared module
|
|
3
|
+
* This file maintains backward compatibility while eliminating duplication
|
|
4
4
|
*/
|
|
5
|
-
|
|
6
|
-
import { RuntimeHealthProbes } from '../src/health/RuntimeHealthProbes.js';
|
|
7
|
-
import { Env } from '../src/config/env.js';
|
|
8
|
-
import { Logger } from '../src/config/logger.js';
|
|
9
|
-
import { useDatabase } from '../src/orm/Database.js';
|
|
10
|
-
import { QueryBuilder } from '../src/orm/QueryBuilder.js';
|
|
11
|
-
import { Router } from '../src/routing/Router.js';
|
|
12
|
-
export function registerHealthRoutes(router) {
|
|
13
|
-
registerHealthRoute(router);
|
|
14
|
-
registerHealthLiveRoute(router);
|
|
15
|
-
registerHealthReadyRoute(router);
|
|
16
|
-
}
|
|
17
|
-
function registerHealthRoute(router) {
|
|
18
|
-
Router.get(router, '/health', async (_req, res) => {
|
|
19
|
-
const environment = Env.NODE_ENV ?? 'development';
|
|
20
|
-
try {
|
|
21
|
-
const db = useDatabase();
|
|
22
|
-
const maybeIsConnected = db.isConnected;
|
|
23
|
-
const maybeConnect = db.connect;
|
|
24
|
-
if (typeof maybeIsConnected === 'function' && maybeIsConnected.call(db) === false) {
|
|
25
|
-
if (typeof maybeConnect === 'function') {
|
|
26
|
-
await maybeConnect.call(db);
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
await QueryBuilder.ping(db);
|
|
30
|
-
const uptime = typeof process !== 'undefined' && typeof process.uptime === 'function'
|
|
31
|
-
? process.uptime()
|
|
32
|
-
: 0;
|
|
33
|
-
res.json({
|
|
34
|
-
status: 'healthy',
|
|
35
|
-
timestamp: new Date().toISOString(),
|
|
36
|
-
uptime,
|
|
37
|
-
database: 'connected',
|
|
38
|
-
environment,
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
catch (error) {
|
|
42
|
-
Logger.error('Health check failed:', error);
|
|
43
|
-
const isProd = environment === 'production' || environment === 'prod';
|
|
44
|
-
res.setStatus(503).json({
|
|
45
|
-
status: 'unhealthy',
|
|
46
|
-
timestamp: new Date().toISOString(),
|
|
47
|
-
database: 'disconnected',
|
|
48
|
-
error: isProd ? 'Service unavailable' : error.message,
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
function registerHealthLiveRoute(router) {
|
|
54
|
-
Router.get(router, '/health/live', async (_req, res) => {
|
|
55
|
-
const uptime = typeof process !== 'undefined' && typeof process.uptime === 'function' ? process.uptime() : 0;
|
|
56
|
-
res.json({
|
|
57
|
-
status: 'alive',
|
|
58
|
-
timestamp: new Date().toISOString(),
|
|
59
|
-
uptime,
|
|
60
|
-
});
|
|
61
|
-
});
|
|
62
|
-
}
|
|
63
|
-
function registerHealthReadyRoute(router) {
|
|
64
|
-
Router.get(router, '/health/ready', async (_req, res) => {
|
|
65
|
-
const startTime = Date.now();
|
|
66
|
-
const environment = appConfig.environment;
|
|
67
|
-
let databaseResponseTime = null;
|
|
68
|
-
let cacheResponseTime = null;
|
|
69
|
-
try {
|
|
70
|
-
const db = useDatabase();
|
|
71
|
-
const maybeIsConnected = db.isConnected;
|
|
72
|
-
const maybeConnect = db.connect;
|
|
73
|
-
if (typeof maybeIsConnected === 'function' && maybeIsConnected.call(db) === false) {
|
|
74
|
-
if (typeof maybeConnect === 'function') {
|
|
75
|
-
await maybeConnect.call(db);
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
await QueryBuilder.ping(db);
|
|
79
|
-
databaseResponseTime = Date.now() - startTime;
|
|
80
|
-
// Only probe KV at runtime when explicitly configured.
|
|
81
|
-
cacheResponseTime = await RuntimeHealthProbes.pingKvCache(2000);
|
|
82
|
-
res.json({
|
|
83
|
-
status: 'ready',
|
|
84
|
-
timestamp: new Date().toISOString(),
|
|
85
|
-
environment,
|
|
86
|
-
dependencies: {
|
|
87
|
-
database: {
|
|
88
|
-
status: 'ready',
|
|
89
|
-
responseTime: databaseResponseTime,
|
|
90
|
-
},
|
|
91
|
-
...(cacheResponseTime === null
|
|
92
|
-
? {}
|
|
93
|
-
: {
|
|
94
|
-
cache: {
|
|
95
|
-
status: 'ready',
|
|
96
|
-
responseTime: cacheResponseTime,
|
|
97
|
-
},
|
|
98
|
-
}),
|
|
99
|
-
},
|
|
100
|
-
});
|
|
101
|
-
}
|
|
102
|
-
catch (error) {
|
|
103
|
-
Logger.error('Readiness check failed:', error);
|
|
104
|
-
const isProd = environment === 'production';
|
|
105
|
-
const responseTime = Date.now() - startTime;
|
|
106
|
-
const dependencies = {
|
|
107
|
-
database: {
|
|
108
|
-
status: databaseResponseTime === null ? 'unavailable' : 'ready',
|
|
109
|
-
responseTime: databaseResponseTime ?? responseTime,
|
|
110
|
-
},
|
|
111
|
-
};
|
|
112
|
-
if (RuntimeHealthProbes.getCacheDriverName() === 'kv') {
|
|
113
|
-
dependencies['cache'] = {
|
|
114
|
-
status: 'unavailable',
|
|
115
|
-
responseTime: cacheResponseTime ?? responseTime,
|
|
116
|
-
};
|
|
117
|
-
}
|
|
118
|
-
res.setStatus(503).json({
|
|
119
|
-
status: 'not_ready',
|
|
120
|
-
timestamp: new Date().toISOString(),
|
|
121
|
-
environment,
|
|
122
|
-
dependencies,
|
|
123
|
-
error: isProd ? 'Service unavailable' : error.message,
|
|
124
|
-
});
|
|
125
|
-
}
|
|
126
|
-
});
|
|
127
|
-
}
|
|
5
|
+
export { registerHealthRoutes } from '../src/common/HealthRoutes.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Application.d.ts","sourceRoot":"","sources":["../../../src/boot/Application.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAGtE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAErE,OAAO,EAAE,KAAK,OAAO,EAAU,MAAM,kBAAkB,CAAC;AAUxD,MAAM,WAAW,YAAY;IAC3B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,QAAQ,IAAI,OAAO,CAAC;IACpB,aAAa,IAAI,OAAO,CAAC;IACzB,YAAY,IAAI,OAAO,CAAC;IACxB,SAAS,IAAI,OAAO,CAAC;IACrB,cAAc,IAAI,MAAM,CAAC;IACzB,SAAS,IAAI,OAAO,CAAC;IACrB,YAAY,IAAI,iBAAiB,CAAC;IAClC,kBAAkB,IAAI,gBAAgB,CAAC;IACvC,WAAW,IAAI,MAAM,CAAC;CACvB;
|
|
1
|
+
{"version":3,"file":"Application.d.ts","sourceRoot":"","sources":["../../../src/boot/Application.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAGtE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAErE,OAAO,EAAE,KAAK,OAAO,EAAU,MAAM,kBAAkB,CAAC;AAUxD,MAAM,WAAW,YAAY;IAC3B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,QAAQ,IAAI,OAAO,CAAC;IACpB,aAAa,IAAI,OAAO,CAAC;IACzB,YAAY,IAAI,OAAO,CAAC;IACxB,SAAS,IAAI,OAAO,CAAC;IACrB,cAAc,IAAI,MAAM,CAAC;IACzB,SAAS,IAAI,OAAO,CAAC;IACrB,YAAY,IAAI,iBAAiB,CAAC;IAClC,kBAAkB,IAAI,gBAAgB,CAAC;IACvC,WAAW,IAAI,MAAM,CAAC;CACvB;AA2YD;;GAEG;AACH,eAAO,MAAM,WAAW;IACtB;;OAEG;sBACe,MAAM,GAAG,YAAY;EA0CvC,CAAC;AAEH,eAAe,WAAW,CAAC"}
|
package/src/boot/Application.js
CHANGED
|
@@ -7,7 +7,6 @@ import { ServiceContainer } from '../container/ServiceContainer.js';
|
|
|
7
7
|
import { StartupHealthChecks } from '../health/StartupHealthChecks.js';
|
|
8
8
|
import { MiddlewareStack } from '../middleware/MiddlewareStack.js';
|
|
9
9
|
import { Router } from '../routing/Router.js';
|
|
10
|
-
import { StartupConfigFile, StartupConfigFileRegistry } from '../runtime/StartupConfigFileRegistry.js';
|
|
11
10
|
import broadcastConfig from '../config/broadcast.js';
|
|
12
11
|
import { FeatureFlags } from '../config/features.js';
|
|
13
12
|
import { Logger } from '../config/logger.js';
|
|
@@ -15,6 +14,7 @@ import notificationConfig from '../config/notification.js';
|
|
|
15
14
|
import { StartupConfigValidator } from '../config/StartupConfigValidator.js';
|
|
16
15
|
import * as path from '../node-singletons/path.js';
|
|
17
16
|
import { pathToFileURL } from '../node-singletons/url.js';
|
|
17
|
+
import { StartupConfigFile, StartupConfigFileRegistry } from '../runtime/StartupConfigFileRegistry.js';
|
|
18
18
|
const ShutdownManager = Object.freeze({
|
|
19
19
|
create() {
|
|
20
20
|
const hooks = [];
|
|
@@ -66,84 +66,73 @@ const registerFrameworkShutdownHooks = (shutdownManager) => {
|
|
|
66
66
|
.then((mod) => {
|
|
67
67
|
shutdownManager.add(async () => mod.ConnectionManager.shutdownIfInitialized());
|
|
68
68
|
})
|
|
69
|
-
/* c8 ignore start */
|
|
70
69
|
.catch(() => {
|
|
71
70
|
/* ignore import failures in restrictive runtimes */
|
|
72
71
|
});
|
|
73
|
-
/* c8 ignore stop */
|
|
74
72
|
import('../orm/Database.js')
|
|
75
73
|
.then((mod) => {
|
|
76
74
|
shutdownManager.add(() => mod.resetDatabase());
|
|
77
75
|
})
|
|
78
|
-
/* c8 ignore start */
|
|
79
76
|
.catch(() => {
|
|
80
77
|
/* ignore import failures in restrictive runtimes */
|
|
81
78
|
});
|
|
82
|
-
/* c8 ignore stop */
|
|
83
79
|
import('../cache/Cache.js')
|
|
84
80
|
.then((mod) => {
|
|
85
81
|
shutdownManager.add(() => mod.Cache.reset());
|
|
86
82
|
})
|
|
87
|
-
/* c8 ignore start */
|
|
88
83
|
.catch(() => {
|
|
89
84
|
/* ignore import failures in restrictive runtimes */
|
|
90
85
|
});
|
|
91
|
-
/* c8 ignore stop */
|
|
92
86
|
// Flush file logging streams
|
|
93
87
|
import('../config/FileLogWriter.js')
|
|
94
88
|
.then((mod) => {
|
|
95
89
|
shutdownManager.add(() => mod.FileLogWriter.flush());
|
|
96
90
|
})
|
|
97
|
-
/* c8 ignore start */
|
|
98
91
|
.catch(() => {
|
|
99
92
|
/* ignore import failures in restrictive runtimes */
|
|
100
93
|
});
|
|
101
|
-
/* c8 ignore stop */
|
|
102
94
|
import('../tools/broadcast/BroadcastRegistry.js')
|
|
103
95
|
.then((mod) => {
|
|
104
96
|
shutdownManager.add(() => mod.BroadcastRegistry.reset());
|
|
105
97
|
})
|
|
106
|
-
/* c8 ignore start */
|
|
107
98
|
.catch(() => {
|
|
108
99
|
/* ignore import failures in restrictive runtimes */
|
|
109
100
|
});
|
|
110
|
-
/* c8 ignore stop */
|
|
111
101
|
import('../tools/storage/StorageDiskRegistry.js')
|
|
112
102
|
.then((mod) => {
|
|
113
103
|
shutdownManager.add(() => mod.StorageDiskRegistry.reset());
|
|
114
104
|
})
|
|
115
|
-
/* c8 ignore start */
|
|
116
105
|
.catch(() => {
|
|
117
106
|
/* ignore import failures in restrictive runtimes */
|
|
118
107
|
});
|
|
119
|
-
/* c8 ignore stop */
|
|
120
108
|
import('../tools/notification/NotificationChannelRegistry.js')
|
|
121
109
|
.then((mod) => {
|
|
122
110
|
shutdownManager.add(() => mod.NotificationChannelRegistry.reset());
|
|
123
111
|
})
|
|
124
|
-
/* c8 ignore start */
|
|
125
112
|
.catch(() => {
|
|
126
113
|
/* ignore import failures in restrictive runtimes */
|
|
127
114
|
});
|
|
128
|
-
/* c8 ignore stop */
|
|
129
115
|
import('../tools/mail/MailDriverRegistry.js')
|
|
130
116
|
.then((mod) => {
|
|
131
117
|
shutdownManager.add(() => mod.MailDriverRegistry.reset());
|
|
132
118
|
})
|
|
133
|
-
/* c8 ignore start */
|
|
134
119
|
.catch(() => {
|
|
135
120
|
/* ignore import failures in restrictive runtimes */
|
|
136
121
|
});
|
|
137
|
-
/* c8 ignore stop */
|
|
138
122
|
import('../tools/queue/Queue.js')
|
|
139
123
|
.then((mod) => {
|
|
140
124
|
shutdownManager.add(() => mod.Queue.reset());
|
|
141
125
|
})
|
|
142
|
-
/* c8 ignore start */
|
|
143
126
|
.catch(() => {
|
|
144
127
|
/* ignore import failures in restrictive runtimes */
|
|
145
128
|
});
|
|
146
|
-
|
|
129
|
+
import('../../packages/workers/src/index.js')
|
|
130
|
+
.then((mod) => {
|
|
131
|
+
shutdownManager.add(async () => mod.WorkerShutdown.shutdown({ signal: 'APP_SHUTDOWN', timeout: 5000, forceExit: false }));
|
|
132
|
+
})
|
|
133
|
+
.catch(() => {
|
|
134
|
+
/* ignore import failures in restrictive runtimes */
|
|
135
|
+
});
|
|
147
136
|
};
|
|
148
137
|
const tryImportRoutesFromAppBase = async (resolvedBasePath) => {
|
|
149
138
|
if (resolvedBasePath === '')
|
|
@@ -271,7 +260,7 @@ const createLifecycle = (params) => {
|
|
|
271
260
|
const boot = async () => {
|
|
272
261
|
if (params.getBooted())
|
|
273
262
|
return;
|
|
274
|
-
Logger.info(`🚀 Booting
|
|
263
|
+
Logger.info(`🚀 Booting ZinTrust Application in ${params.environment} mode...`);
|
|
275
264
|
StartupConfigValidator.assertValid();
|
|
276
265
|
// Preload project-owned config overrides that must be available synchronously.
|
|
277
266
|
await StartupConfigFileRegistry.preload([
|
|
@@ -291,8 +280,8 @@ const createLifecycle = (params) => {
|
|
|
291
280
|
await registerRoutes(params.resolvedBasePath, params.router);
|
|
292
281
|
// Register service providers
|
|
293
282
|
// Bootstrap services
|
|
294
|
-
params.setBooted(true);
|
|
295
283
|
Logger.info('✅ Application booted successfully');
|
|
284
|
+
params.setBooted(true);
|
|
296
285
|
};
|
|
297
286
|
const shutdown = async () => {
|
|
298
287
|
Logger.info('🛑 Shutting down application...');
|
|
@@ -302,8 +291,8 @@ const createLifecycle = (params) => {
|
|
|
302
291
|
catch (error) {
|
|
303
292
|
Logger.error('Shutdown hook failed:', error);
|
|
304
293
|
}
|
|
305
|
-
Logger.info('✅ Application shut down successfully');
|
|
306
294
|
params.setBooted(false);
|
|
295
|
+
Logger.info('✅ Application shut down successfully');
|
|
307
296
|
};
|
|
308
297
|
return { boot, shutdown };
|
|
309
298
|
};
|
package/src/boot/bootstrap.d.ts
CHANGED
package/src/boot/bootstrap.js
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Application Bootstrap
|
|
3
|
-
* Entry point for running the
|
|
3
|
+
* Entry point for running the ZinTrust server
|
|
4
4
|
* Sealed namespace for immutability
|
|
5
5
|
*/
|
|
6
6
|
import { Application } from './Application.js';
|
|
7
7
|
import { Server } from './Server.js';
|
|
8
|
+
import { appConfig } from '../config/app.js';
|
|
8
9
|
import { Env } from '../config/env.js';
|
|
9
10
|
import { Logger } from '../config/logger.js';
|
|
10
11
|
import { ErrorFactory } from '../exceptions/ZintrustError.js';
|
|
11
|
-
// Register plugins (adapters, drivers, etc.)
|
|
12
|
-
// import '@/zintrust.plugins';
|
|
13
12
|
let appInstance;
|
|
14
13
|
let serverInstance;
|
|
15
14
|
let isShuttingDown = false;
|
|
15
|
+
let shutdownHandlersRegistered = false;
|
|
16
16
|
const logBootstrapErrorDetails = (error) => {
|
|
17
17
|
// Best-effort: surface startup config validation details (already redacted)
|
|
18
18
|
// so container runs show which env vars are missing/misconfigured.
|
|
@@ -38,8 +38,7 @@ const logBootstrapErrorDetails = (error) => {
|
|
|
38
38
|
};
|
|
39
39
|
const startSchedulesIfNeeded = async (app) => {
|
|
40
40
|
try {
|
|
41
|
-
const
|
|
42
|
-
const runtime = RuntimeDetector.detectRuntime();
|
|
41
|
+
const runtime = appConfig.detectRuntime();
|
|
43
42
|
if (runtime !== 'nodejs' && runtime !== 'fargate')
|
|
44
43
|
return;
|
|
45
44
|
const { create: createScheduleRunner } = await import('../scheduler/ScheduleRunner.js');
|
|
@@ -105,6 +104,17 @@ const gracefulShutdown = async (signal) => {
|
|
|
105
104
|
await appInstance.shutdown();
|
|
106
105
|
}
|
|
107
106
|
})(), timeoutMs, 'Graceful shutdown timed out');
|
|
107
|
+
// Shutdown worker management system first
|
|
108
|
+
if (appConfig.detectRuntime() === 'nodejs' || appConfig.detectRuntime() === 'lambda') {
|
|
109
|
+
try {
|
|
110
|
+
const { WorkerShutdown } = await import('../../packages/workers/src/index.js');
|
|
111
|
+
await withTimeout(WorkerShutdown.shutdown({ signal, timeout: 30000, forceExit: false }), timeoutMs, 'Worker shutdown timed out');
|
|
112
|
+
Logger.info('Worker management system shutdown complete');
|
|
113
|
+
}
|
|
114
|
+
catch (error) {
|
|
115
|
+
Logger.warn('Worker shutdown failed (continuing with app shutdown)', error);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
108
118
|
globalThis.clearTimeout(forceExitTimer);
|
|
109
119
|
process.exit(0);
|
|
110
120
|
}
|
|
@@ -113,6 +123,29 @@ const gracefulShutdown = async (signal) => {
|
|
|
113
123
|
process.exit(1);
|
|
114
124
|
}
|
|
115
125
|
};
|
|
126
|
+
async function useWorkerStarter() {
|
|
127
|
+
// Initialize worker management system
|
|
128
|
+
let workerInit = null;
|
|
129
|
+
try {
|
|
130
|
+
const { WorkerInit } = await import('../../packages/workers/src/index.js');
|
|
131
|
+
workerInit = WorkerInit;
|
|
132
|
+
await WorkerInit.initialize({
|
|
133
|
+
enableResourceMonitoring: true,
|
|
134
|
+
enableHealthMonitoring: true,
|
|
135
|
+
enableAutoScaling: false, // Disabled by default, enable via config
|
|
136
|
+
registerShutdownHandlers: true,
|
|
137
|
+
resourceMonitoringInterval: 60000,
|
|
138
|
+
});
|
|
139
|
+
Logger.info('Worker management system initialized');
|
|
140
|
+
}
|
|
141
|
+
catch (error) {
|
|
142
|
+
Logger.warn('Worker management system initialization failed (non-fatal)', error);
|
|
143
|
+
// Non-fatal - application can still run without worker management
|
|
144
|
+
}
|
|
145
|
+
if (workerInit?.autoStartPersistedWorkers) {
|
|
146
|
+
await workerInit.autoStartPersistedWorkers();
|
|
147
|
+
}
|
|
148
|
+
}
|
|
116
149
|
/**
|
|
117
150
|
* Bootstrap implementation
|
|
118
151
|
*/
|
|
@@ -123,7 +156,9 @@ const BootstrapFunctions = Object.freeze({
|
|
|
123
156
|
async start() {
|
|
124
157
|
try {
|
|
125
158
|
// Create application instance
|
|
126
|
-
|
|
159
|
+
// if (Env.ZINTRUST_PROJECT_ROOT) {
|
|
160
|
+
// }
|
|
161
|
+
const app = Application.create(Env.ZINTRUST_PROJECT_ROOT || undefined);
|
|
127
162
|
appInstance = app;
|
|
128
163
|
// Boot application
|
|
129
164
|
await app.boot();
|
|
@@ -136,9 +171,12 @@ const BootstrapFunctions = Object.freeze({
|
|
|
136
171
|
// Start listening
|
|
137
172
|
await server.listen();
|
|
138
173
|
Logger.info(`Server running at http://${host}:${port}`);
|
|
139
|
-
Logger.info(`
|
|
174
|
+
Logger.info(`ZinTrust documentation at http://${host}:${port}/doc`);
|
|
140
175
|
// Start schedules for long-running runtimes (Node.js / Fargate)
|
|
141
176
|
await startSchedulesIfNeeded(app);
|
|
177
|
+
if (appConfig.detectRuntime() === 'nodejs' || appConfig.detectRuntime() === 'lambda') {
|
|
178
|
+
await useWorkerStarter();
|
|
179
|
+
}
|
|
142
180
|
}
|
|
143
181
|
catch (error) {
|
|
144
182
|
Logger.error('Failed to bootstrap application:', error);
|
|
@@ -150,6 +188,9 @@ const BootstrapFunctions = Object.freeze({
|
|
|
150
188
|
* Handle graceful shutdown
|
|
151
189
|
*/
|
|
152
190
|
setupShutdownHandler() {
|
|
191
|
+
if (shutdownHandlersRegistered)
|
|
192
|
+
return;
|
|
193
|
+
shutdownHandlersRegistered = true;
|
|
153
194
|
process.on('SIGTERM', async () => {
|
|
154
195
|
await gracefulShutdown('SIGTERM');
|
|
155
196
|
});
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* KV Remote Cache Driver
|
|
3
3
|
*
|
|
4
|
-
* Calls a
|
|
4
|
+
* Calls a ZinTrust Cloudflare Worker KV proxy over HTTPS.
|
|
5
5
|
*/
|
|
6
6
|
import { RemoteSignedJson } from '../../common/RemoteSignedJson.js';
|
|
7
7
|
import { Env } from '../../config/env.js';
|
package/src/cli/CLI.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CLI.d.ts","sourceRoot":"","sources":["../../../src/cli/CLI.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"CLI.d.ts","sourceRoot":"","sources":["../../../src/cli/CLI.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAyCH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,MAAM,WAAW,IAAI;IACnB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,UAAU,IAAI,OAAO,CAAC;CACvB;AAqMD;;;;;;;GAOG;AACH,eAAO,MAAM,GAAG;cACJ,IAAI;EAed,CAAC"}
|