@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.
Files changed (124) hide show
  1. package/README.md +6 -0
  2. package/package.json +10 -1
  3. package/public/index.html +1 -1
  4. package/routes/api.d.ts +7 -0
  5. package/routes/api.d.ts.map +1 -0
  6. package/routes/api.js +91 -0
  7. package/routes/broadcast.d.ts +9 -0
  8. package/routes/broadcast.d.ts.map +1 -0
  9. package/routes/broadcast.js +27 -0
  10. package/routes/health.d.ts +7 -0
  11. package/routes/health.d.ts.map +1 -0
  12. package/routes/health.js +127 -0
  13. package/routes/storage.d.ts +4 -0
  14. package/routes/storage.d.ts.map +1 -0
  15. package/routes/storage.js +35 -0
  16. package/src/boot/Application.js +1 -1
  17. package/src/boot/bootstrap.js +1 -1
  18. package/src/cli/CLI.d.ts.map +1 -1
  19. package/src/cli/CLI.js +2 -0
  20. package/src/cli/PromptHelper.d.ts.map +1 -1
  21. package/src/cli/PromptHelper.js +5 -4
  22. package/src/cli/commands/NewCommand.d.ts +1 -1
  23. package/src/cli/commands/NewCommand.d.ts.map +1 -1
  24. package/src/cli/commands/NewCommand.js +27 -10
  25. package/src/cli/commands/SimulateCommand.js +1 -1
  26. package/src/cli/commands/StartCommand.d.ts.map +1 -1
  27. package/src/cli/commands/StartCommand.js +90 -3
  28. package/src/cli/commands/UpgradeCommand.d.ts +16 -0
  29. package/src/cli/commands/UpgradeCommand.d.ts.map +1 -0
  30. package/src/cli/commands/UpgradeCommand.js +107 -0
  31. package/src/cli/commands/runner/index.d.ts +3 -0
  32. package/src/cli/commands/runner/index.d.ts.map +1 -0
  33. package/src/cli/commands/runner/index.js +139 -0
  34. package/src/cli/config/ConfigSchema.js +1 -1
  35. package/src/cli/env/EnvFileBackfill.d.ts +10 -0
  36. package/src/cli/env/EnvFileBackfill.d.ts.map +1 -0
  37. package/src/cli/env/EnvFileBackfill.js +64 -0
  38. package/src/cli/scaffolding/ProjectScaffolder.d.ts.map +1 -1
  39. package/src/cli/scaffolding/ProjectScaffolder.js +53 -23
  40. package/src/cli/utils/DistPackager.d.ts.map +1 -1
  41. package/src/cli/utils/DistPackager.js +8 -0
  42. package/src/config/broadcast.js +1 -1
  43. package/src/config/database.d.ts +6 -0
  44. package/src/config/database.d.ts.map +1 -1
  45. package/src/config/database.js +7 -1
  46. package/src/config/index.d.ts +7 -1
  47. package/src/config/index.d.ts.map +1 -1
  48. package/src/config/middleware.d.ts +2 -1
  49. package/src/config/middleware.d.ts.map +1 -1
  50. package/src/config/middleware.js +47 -11
  51. package/src/config/notification.js +1 -1
  52. package/src/config/storage.js +1 -1
  53. package/src/config/type.d.ts +7 -1
  54. package/src/config/type.d.ts.map +1 -1
  55. package/src/index.d.ts +1 -0
  56. package/src/index.d.ts.map +1 -1
  57. package/src/middleware/RateLimiter.d.ts +35 -0
  58. package/src/middleware/RateLimiter.d.ts.map +1 -1
  59. package/src/middleware/RateLimiter.js +213 -16
  60. package/src/node.d.ts +1 -1
  61. package/src/node.d.ts.map +1 -1
  62. package/src/node.js +4 -1
  63. package/src/orm/DatabaseRuntimeRegistration.d.ts.map +1 -1
  64. package/src/orm/DatabaseRuntimeRegistration.js +4 -0
  65. package/src/orm/QueryBuilder.d.ts.map +1 -1
  66. package/src/orm/QueryBuilder.js +7 -3
  67. package/src/orm/adapters/SQLiteAdapter.d.ts.map +1 -1
  68. package/src/orm/adapters/SQLiteAdapter.js +5 -1
  69. package/src/routes/api.d.ts +2 -0
  70. package/src/routes/api.d.ts.map +1 -0
  71. package/src/routes/api.js +1 -0
  72. package/src/routes/broadcast.d.ts +2 -0
  73. package/src/routes/broadcast.d.ts.map +1 -0
  74. package/src/routes/broadcast.js +1 -0
  75. package/src/routes/health.d.ts +2 -0
  76. package/src/routes/health.d.ts.map +1 -0
  77. package/src/routes/health.js +1 -0
  78. package/src/routes/storage.d.ts +2 -0
  79. package/src/routes/storage.d.ts.map +1 -0
  80. package/src/routes/storage.js +1 -0
  81. package/src/runtime/RuntimeAdapter.d.ts.map +1 -1
  82. package/src/runtime/RuntimeAdapter.js +20 -1
  83. package/src/runtime/adapters/DenoAdapter.js +2 -2
  84. package/src/scripts/TemplateImportsCheck.js +7 -7
  85. package/src/scripts/TemplateSync.js +6 -0
  86. package/src/start.d.ts +21 -0
  87. package/src/start.d.ts.map +1 -0
  88. package/src/start.js +60 -0
  89. package/src/templates/features/Queue.ts.tpl +2 -3
  90. package/src/templates/project/basic/.env.example.tpl +1 -1
  91. package/src/templates/project/basic/app/Controllers/UserController.ts.tpl +2 -4
  92. package/src/templates/project/basic/app/Middleware/ProfilerMiddleware.ts.tpl +1 -3
  93. package/src/templates/project/basic/app/Middleware/index.ts.tpl +3 -8
  94. package/src/templates/project/basic/app/Models/Post.ts.tpl +2 -3
  95. package/src/templates/project/basic/app/Models/User.ts.tpl +1 -1
  96. package/src/templates/project/basic/config/FileLogWriter.ts.tpl +1 -1
  97. package/src/templates/project/basic/config/SecretsManager.ts.tpl +2 -2
  98. package/src/templates/project/basic/config/StartupConfigValidator.ts.tpl +2 -2
  99. package/src/templates/project/basic/config/app.ts.tpl +3 -3
  100. package/src/templates/project/basic/config/broadcast.ts.tpl +4 -5
  101. package/src/templates/project/basic/config/cache.ts.tpl +2 -3
  102. package/src/templates/project/basic/config/cloudflare.ts.tpl +1 -1
  103. package/src/templates/project/basic/config/database.ts.tpl +9 -3
  104. package/src/templates/project/basic/config/env.ts.tpl +1 -1
  105. package/src/templates/project/basic/config/features.ts.tpl +2 -2
  106. package/src/templates/project/basic/config/index.ts.tpl +38 -20
  107. package/src/templates/project/basic/config/logger.ts.tpl +5 -381
  108. package/src/templates/project/basic/config/logging/HttpLogger.ts.tpl +1 -1
  109. package/src/templates/project/basic/config/logging/KvLogger.ts.tpl +2 -2
  110. package/src/templates/project/basic/config/logging/SlackLogger.ts.tpl +1 -1
  111. package/src/templates/project/basic/config/mail.ts.tpl +2 -3
  112. package/src/templates/project/basic/config/microservices.ts.tpl +1 -1
  113. package/src/templates/project/basic/config/middleware.ts.tpl +40 -13
  114. package/src/templates/project/basic/config/notification.ts.tpl +3 -4
  115. package/src/templates/project/basic/config/queue.ts.tpl +2 -2
  116. package/src/templates/project/basic/config/security.ts.tpl +3 -3
  117. package/src/templates/project/basic/config/startup.ts.tpl +1 -1
  118. package/src/templates/project/basic/config/storage.ts.tpl +3 -4
  119. package/src/templates/project/basic/config/type.ts.tpl +12 -2
  120. package/src/templates/project/basic/package.json.tpl +1 -1
  121. package/src/templates/project/basic/routes/api.ts.tpl +4 -4
  122. package/src/templates/project/basic/routes/health.ts.tpl +1 -6
  123. package/src/templates/project/basic/src/index.ts.tpl +7 -80
  124. package/src/templates/project/basic/tsconfig.json.tpl +0 -2
@@ -11,7 +11,7 @@
11
11
  "type-check": "tsc --noEmit"
12
12
  },
13
13
  "dependencies": {
14
- "@zintrust/core": "^0.1.4"
14
+ "@zintrust/core": "^{{coreVersion}}"
15
15
  },
16
16
  "devDependencies": {
17
17
  "@types/node": "^25.0.3",
@@ -5,10 +5,10 @@
5
5
 
6
6
  import { Env, type IRouter, Router } from '@zintrust/core';
7
7
 
8
- import { UserController } from '../app/Controllers/UserController';
9
- import { registerBroadcastRoutes } from './broadcast';
10
- import { registerHealthRoutes } from './health';
11
- import { registerStorageRoutes } from './storage';
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 '../config/app';
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
- * test-app - Zintrust Application Entry Point
2
+ * Zintrust Application Entry Point
3
3
  */
4
4
 
5
- import { Application, Env, Logger, Server } from '@zintrust/core';
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
- type AppInstance = ReturnType<typeof Application.create>;
11
- type ServerInstance = ReturnType<typeof Server.create>;
7
+ // Cloudflare Workers entry.
8
+ export { default } from '@zintrust/core/start';
12
9
 
13
- function withTimeout<T>(promise: Promise<T>, ms: number, timeoutMessage = 'Shutdown timed out'): Promise<T> {
14
- if (!Number.isFinite(ms) || ms <= 0) return promise;
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();
@@ -13,8 +13,6 @@
13
13
  "@app/*": ["./app/*"],
14
14
  "@toolkit/*": ["./app/Toolkit/*"],
15
15
  "@config/*": ["./config/*"],
16
- "@app/*": ["./app/*"],
17
- "@toolkit/*": ["./app/Toolkit/*"],
18
16
  "@routes/*": ["./routes/*"],
19
17
  "@database/*": ["./database/*"],
20
18