@zintrust/core 0.1.17 → 0.1.19
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/README.md +6 -0
- package/package.json +10 -1
- package/public/index.html +1 -1
- package/routes/api.d.ts +7 -0
- package/routes/api.d.ts.map +1 -0
- package/routes/api.js +91 -0
- package/routes/broadcast.d.ts +9 -0
- package/routes/broadcast.d.ts.map +1 -0
- package/routes/broadcast.js +27 -0
- package/routes/health.d.ts +7 -0
- package/routes/health.d.ts.map +1 -0
- package/routes/health.js +127 -0
- package/routes/storage.d.ts +4 -0
- package/routes/storage.d.ts.map +1 -0
- package/routes/storage.js +35 -0
- package/src/boot/Application.js +1 -1
- package/src/boot/bootstrap.js +1 -1
- package/src/cli/CLI.d.ts.map +1 -1
- package/src/cli/CLI.js +2 -0
- package/src/cli/PromptHelper.d.ts.map +1 -1
- package/src/cli/PromptHelper.js +5 -4
- 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 +27 -10
- package/src/cli/commands/SimulateCommand.js +1 -1
- package/src/cli/commands/StartCommand.d.ts.map +1 -1
- package/src/cli/commands/StartCommand.js +90 -3
- package/src/cli/commands/UpgradeCommand.d.ts +16 -0
- package/src/cli/commands/UpgradeCommand.d.ts.map +1 -0
- package/src/cli/commands/UpgradeCommand.js +107 -0
- package/src/cli/commands/runner/index.d.ts +3 -0
- package/src/cli/commands/runner/index.d.ts.map +1 -0
- package/src/cli/commands/runner/index.js +139 -0
- package/src/cli/config/ConfigSchema.js +1 -1
- package/src/cli/env/EnvFileBackfill.d.ts +10 -0
- package/src/cli/env/EnvFileBackfill.d.ts.map +1 -0
- package/src/cli/env/EnvFileBackfill.js +64 -0
- package/src/cli/scaffolding/ProjectScaffolder.d.ts.map +1 -1
- package/src/cli/scaffolding/ProjectScaffolder.js +53 -23
- package/src/cli/utils/DistPackager.d.ts.map +1 -1
- package/src/cli/utils/DistPackager.js +8 -0
- package/src/config/broadcast.js +1 -1
- package/src/config/database.d.ts +6 -0
- package/src/config/database.d.ts.map +1 -1
- package/src/config/database.js +7 -1
- package/src/config/index.d.ts +7 -1
- package/src/config/index.d.ts.map +1 -1
- package/src/config/middleware.d.ts +2 -1
- package/src/config/middleware.d.ts.map +1 -1
- package/src/config/middleware.js +47 -11
- package/src/config/notification.js +1 -1
- package/src/config/storage.js +1 -1
- package/src/config/type.d.ts +7 -1
- package/src/config/type.d.ts.map +1 -1
- package/src/index.d.ts +1 -0
- package/src/index.d.ts.map +1 -1
- package/src/middleware/RateLimiter.d.ts +35 -0
- package/src/middleware/RateLimiter.d.ts.map +1 -1
- package/src/middleware/RateLimiter.js +213 -16
- package/src/node.d.ts +1 -1
- package/src/node.d.ts.map +1 -1
- package/src/node.js +4 -1
- package/src/orm/DatabaseRuntimeRegistration.d.ts.map +1 -1
- package/src/orm/DatabaseRuntimeRegistration.js +4 -0
- package/src/orm/QueryBuilder.d.ts.map +1 -1
- package/src/orm/QueryBuilder.js +7 -3
- package/src/orm/adapters/SQLiteAdapter.d.ts.map +1 -1
- package/src/orm/adapters/SQLiteAdapter.js +5 -1
- package/src/routes/api.d.ts +2 -0
- package/src/routes/api.d.ts.map +1 -0
- package/src/routes/api.js +1 -0
- package/src/routes/broadcast.d.ts +2 -0
- package/src/routes/broadcast.d.ts.map +1 -0
- package/src/routes/broadcast.js +1 -0
- package/src/routes/health.d.ts +2 -0
- package/src/routes/health.d.ts.map +1 -0
- package/src/routes/health.js +1 -0
- package/src/routes/storage.d.ts +2 -0
- package/src/routes/storage.d.ts.map +1 -0
- package/src/routes/storage.js +1 -0
- package/src/runtime/RuntimeAdapter.d.ts.map +1 -1
- package/src/runtime/RuntimeAdapter.js +20 -1
- package/src/runtime/adapters/DenoAdapter.js +2 -2
- package/src/scripts/TemplateImportsCheck.js +7 -7
- package/src/scripts/TemplateSync.js +6 -0
- package/src/start.d.ts +21 -0
- package/src/start.d.ts.map +1 -0
- package/src/start.js +60 -0
- package/src/templates/features/Queue.ts.tpl +2 -3
- package/src/templates/project/basic/.env.example.tpl +1 -1
- package/src/templates/project/basic/app/Controllers/UserController.ts.tpl +2 -4
- package/src/templates/project/basic/app/Middleware/ProfilerMiddleware.ts.tpl +1 -3
- package/src/templates/project/basic/app/Middleware/index.ts.tpl +3 -8
- package/src/templates/project/basic/app/Models/Post.ts.tpl +2 -3
- package/src/templates/project/basic/app/Models/User.ts.tpl +1 -1
- package/src/templates/project/basic/config/FileLogWriter.ts.tpl +1 -1
- package/src/templates/project/basic/config/SecretsManager.ts.tpl +2 -2
- package/src/templates/project/basic/config/StartupConfigValidator.ts.tpl +2 -2
- package/src/templates/project/basic/config/app.ts.tpl +3 -3
- package/src/templates/project/basic/config/broadcast.ts.tpl +4 -5
- package/src/templates/project/basic/config/cache.ts.tpl +2 -3
- package/src/templates/project/basic/config/cloudflare.ts.tpl +1 -1
- package/src/templates/project/basic/config/database.ts.tpl +9 -3
- package/src/templates/project/basic/config/env.ts.tpl +1 -1
- package/src/templates/project/basic/config/features.ts.tpl +2 -2
- package/src/templates/project/basic/config/index.ts.tpl +38 -20
- package/src/templates/project/basic/config/logger.ts.tpl +5 -381
- package/src/templates/project/basic/config/logging/HttpLogger.ts.tpl +1 -1
- package/src/templates/project/basic/config/logging/KvLogger.ts.tpl +2 -2
- package/src/templates/project/basic/config/logging/SlackLogger.ts.tpl +1 -1
- package/src/templates/project/basic/config/mail.ts.tpl +2 -3
- package/src/templates/project/basic/config/microservices.ts.tpl +1 -1
- package/src/templates/project/basic/config/middleware.ts.tpl +40 -13
- package/src/templates/project/basic/config/notification.ts.tpl +3 -4
- package/src/templates/project/basic/config/queue.ts.tpl +2 -2
- package/src/templates/project/basic/config/security.ts.tpl +3 -3
- package/src/templates/project/basic/config/startup.ts.tpl +1 -1
- package/src/templates/project/basic/config/storage.ts.tpl +3 -4
- package/src/templates/project/basic/config/type.ts.tpl +12 -2
- package/src/templates/project/basic/package.json.tpl +1 -1
- package/src/templates/project/basic/routes/api.ts.tpl +4 -4
- package/src/templates/project/basic/routes/health.ts.tpl +1 -6
- package/src/templates/project/basic/src/index.ts.tpl +7 -80
- package/src/templates/project/basic/tsconfig.json.tpl +0 -2
|
@@ -5,10 +5,10 @@
|
|
|
5
5
|
|
|
6
6
|
import { Env, type IRouter, Router } from '@zintrust/core';
|
|
7
7
|
|
|
8
|
-
import { UserController } from '
|
|
9
|
-
import { registerBroadcastRoutes } from '
|
|
10
|
-
import { registerHealthRoutes } from '
|
|
11
|
-
import { registerStorageRoutes } from '
|
|
8
|
+
import { UserController } from '@app/Controllers/UserController';
|
|
9
|
+
import { registerBroadcastRoutes } from '@routes/broadcast';
|
|
10
|
+
import { registerHealthRoutes } from '@routes/health';
|
|
11
|
+
import { registerStorageRoutes } from '@routes/storage';
|
|
12
12
|
|
|
13
13
|
export function registerRoutes(router: IRouter): void {
|
|
14
14
|
const userController = UserController.create();
|
|
@@ -3,12 +3,7 @@
|
|
|
3
3
|
* Provides health, liveness, and readiness endpoints.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import { appConfig } from '
|
|
7
|
-
import { Env } from '../config/env';
|
|
8
|
-
import { Logger } from '../config/logger';
|
|
9
|
-
import { RuntimeHealthProbes } from '@zintrust/core';
|
|
10
|
-
import { useDatabase } from '@zintrust/core';
|
|
11
|
-
import { QueryBuilder } from '@zintrust/core';
|
|
6
|
+
import { useDatabase, appConfig, Env , Logger, RuntimeHealthProbes, QueryBuilder} from '@zintrust/core';
|
|
12
7
|
import { type IRouter, Router } from '@zintrust/core';
|
|
13
8
|
|
|
14
9
|
export function registerHealthRoutes(router: IRouter): void {
|
|
@@ -1,86 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Zintrust Application Entry Point
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
|
-
import {
|
|
6
|
-
import process from '@zintrust/core/node';
|
|
7
|
-
// Optional adapters/drivers registered via `zin plugin install`
|
|
8
|
-
import './zintrust.plugins.js';
|
|
5
|
+
import { isNodeMain, start } from '@zintrust/core/start';
|
|
9
6
|
|
|
10
|
-
|
|
11
|
-
|
|
7
|
+
// Cloudflare Workers entry.
|
|
8
|
+
export { default } from '@zintrust/core/start';
|
|
12
9
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
let timer: ReturnType<typeof setTimeout> | undefined;
|
|
17
|
-
|
|
18
|
-
const timeout = new Promise<never>((_, reject) => {
|
|
19
|
-
timer = setTimeout(() => reject(new globalThis.Error(timeoutMessage)), ms);
|
|
20
|
-
});
|
|
21
|
-
|
|
22
|
-
return Promise.race([promise, timeout]).finally(() => {
|
|
23
|
-
if (timer) clearTimeout(timer);
|
|
24
|
-
}) as Promise<T>;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
async function stopServices(server: ServerInstance, app: AppInstance): Promise<void> {
|
|
28
|
-
await server.close();
|
|
29
|
-
await app.shutdown();
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
async function shutdownGracefully(signal: string, server: ServerInstance, app: AppInstance): Promise<void> {
|
|
33
|
-
Logger.info(`${signal} received, shutting down gracefully...`);
|
|
34
|
-
|
|
35
|
-
const timeoutMs = Env.getInt('SHUTDOWN_TIMEOUT', 1500);
|
|
36
|
-
const forceExitMs = Env.getInt('SHUTDOWN_FORCE_EXIT_MS', 2500);
|
|
37
|
-
|
|
38
|
-
const forceExitTimer = globalThis.setTimeout(() => {
|
|
39
|
-
process.exit(0);
|
|
40
|
-
}, forceExitMs);
|
|
41
|
-
|
|
42
|
-
(forceExitTimer as unknown as { unref?: () => void }).unref?.();
|
|
43
|
-
|
|
44
|
-
try {
|
|
45
|
-
await withTimeout(stopServices(server, app), timeoutMs);
|
|
46
|
-
globalThis.clearTimeout(forceExitTimer);
|
|
47
|
-
process.exit(0);
|
|
48
|
-
} catch (error) {
|
|
49
|
-
Logger.error('Graceful shutdown failed:', error);
|
|
50
|
-
process.exit(1);
|
|
51
|
-
}
|
|
10
|
+
// Node entry (when executed as `node src/index.ts` / `tsx src/index.ts` etc.).
|
|
11
|
+
if (isNodeMain(import.meta.url)) {
|
|
12
|
+
await start();
|
|
52
13
|
}
|
|
53
|
-
|
|
54
|
-
/**
|
|
55
|
-
* Start the application
|
|
56
|
-
*/
|
|
57
|
-
async function start() {
|
|
58
|
-
try {
|
|
59
|
-
// Create application instance
|
|
60
|
-
const app = Application.create();
|
|
61
|
-
|
|
62
|
-
// Boot application
|
|
63
|
-
await app.boot();
|
|
64
|
-
|
|
65
|
-
// Get port and host from environment
|
|
66
|
-
const port = Env.getInt('APP_PORT', 3000);
|
|
67
|
-
const host = Env.get('HOST', 'localhost');
|
|
68
|
-
|
|
69
|
-
// Create and start server
|
|
70
|
-
const server = Server.create(app, port, host);
|
|
71
|
-
|
|
72
|
-
// Start listening
|
|
73
|
-
await server.listen();
|
|
74
|
-
|
|
75
|
-
Logger.info(`Server running at http://${host}:${port}`);
|
|
76
|
-
|
|
77
|
-
process.on('SIGTERM', () => void shutdownGracefully('SIGTERM', server, app));
|
|
78
|
-
process.on('SIGINT', () => void shutdownGracefully('SIGINT', server, app));
|
|
79
|
-
} catch (error) {
|
|
80
|
-
Logger.error('Failed to start application:', error);
|
|
81
|
-
process.exit(1);
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
// Run start
|
|
86
|
-
await start();
|