@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.
Files changed (279) hide show
  1. package/bin/z.d.ts +1 -1
  2. package/bin/z.js +1 -1
  3. package/bin/zin.d.ts +1 -1
  4. package/bin/zin.js +1 -1
  5. package/bin/zintrust-main.d.ts +1 -1
  6. package/bin/zintrust-main.js +2 -2
  7. package/bin/zintrust-microservices.d.ts +1 -1
  8. package/bin/zintrust-microservices.js +1 -1
  9. package/bin/zintrust.d.ts +1 -1
  10. package/bin/zintrust.js +1 -1
  11. package/bin/zt.d.ts +1 -1
  12. package/bin/zt.js +1 -1
  13. package/package.json +2 -3
  14. package/public/index.html +3 -3
  15. package/routes/api.js +1 -1
  16. package/routes/health.d.ts +3 -4
  17. package/routes/health.d.ts.map +1 -1
  18. package/routes/health.js +3 -125
  19. package/src/boot/Application.d.ts.map +1 -1
  20. package/src/boot/Application.js +11 -22
  21. package/src/boot/bootstrap.d.ts +1 -1
  22. package/src/boot/bootstrap.js +48 -7
  23. package/src/builder/BundleOptimizer.d.ts +1 -1
  24. package/src/builder/BundleOptimizer.js +1 -1
  25. package/src/cache/drivers/KVRemoteDriver.d.ts +1 -1
  26. package/src/cache/drivers/KVRemoteDriver.js +1 -1
  27. package/src/cli/CLI.d.ts.map +1 -1
  28. package/src/cli/CLI.js +15 -1
  29. package/src/cli/ErrorHandler.js +3 -3
  30. package/src/cli/commands/AddCommand.d.ts +1 -1
  31. package/src/cli/commands/AddCommand.d.ts.map +1 -1
  32. package/src/cli/commands/AddCommand.js +1 -1
  33. package/src/cli/commands/DbSeedCommand.js +1 -1
  34. package/src/cli/commands/MakeMailTemplateCommand.js +2 -1
  35. package/src/cli/commands/MakeNotificationTemplateCommand.js +2 -1
  36. package/src/cli/commands/MigrateCommand.d.ts.map +1 -1
  37. package/src/cli/commands/MigrateCommand.js +1 -1
  38. package/src/cli/commands/MigrateWorkerCommand.d.ts +9 -0
  39. package/src/cli/commands/MigrateWorkerCommand.d.ts.map +1 -0
  40. package/src/cli/commands/MigrateWorkerCommand.js +182 -0
  41. package/src/cli/commands/NewCommand.d.ts +1 -1
  42. package/src/cli/commands/NewCommand.d.ts.map +1 -1
  43. package/src/cli/commands/NewCommand.js +21 -7
  44. package/src/cli/commands/PublishCommand.d.ts +5 -0
  45. package/src/cli/commands/PublishCommand.d.ts.map +1 -0
  46. package/src/cli/commands/PublishCommand.js +54 -0
  47. package/src/cli/commands/QACommand.js +4 -4
  48. package/src/cli/commands/ResourceControlCommand.d.ts +6 -0
  49. package/src/cli/commands/ResourceControlCommand.d.ts.map +1 -0
  50. package/src/cli/commands/ResourceControlCommand.js +43 -0
  51. package/src/cli/commands/SimulateCommand.d.ts +1 -1
  52. package/src/cli/commands/SimulateCommand.js +4 -4
  53. package/src/cli/commands/StartCommand.d.ts.map +1 -1
  54. package/src/cli/commands/StartCommand.js +19 -7
  55. package/src/cli/commands/UpgradeCommand.d.ts +1 -1
  56. package/src/cli/commands/UpgradeCommand.js +2 -2
  57. package/src/cli/commands/WorkerCommands.d.ts +17 -0
  58. package/src/cli/commands/WorkerCommands.d.ts.map +1 -0
  59. package/src/cli/commands/WorkerCommands.js +264 -0
  60. package/src/cli/commands/index.d.ts +2 -0
  61. package/src/cli/commands/index.d.ts.map +1 -1
  62. package/src/cli/commands/index.js +2 -0
  63. package/src/cli/config/ConfigSchema.d.ts +1 -1
  64. package/src/cli/config/ConfigSchema.d.ts.map +1 -1
  65. package/src/cli/config/ConfigSchema.js +4 -3
  66. package/src/cli/d1/D1SqlMigrations.d.ts.map +1 -1
  67. package/src/cli/d1/D1SqlMigrations.js +4 -3
  68. package/src/cli/scaffolding/ModelGenerator.d.ts +1 -1
  69. package/src/cli/scaffolding/ModelGenerator.d.ts.map +1 -1
  70. package/src/cli/scaffolding/ModelGenerator.js +10 -2
  71. package/src/cli/scaffolding/ProjectScaffolder.js +5 -5
  72. package/src/cli/scaffolding/RouteGenerator.d.ts.map +1 -1
  73. package/src/cli/scaffolding/RouteGenerator.js +21 -2
  74. package/src/cli/scaffolding/TemplateEngine.js +1 -1
  75. package/src/cli/utils/EnvFileLoader.d.ts.map +1 -1
  76. package/src/common/ExternalServiceUtils.d.ts +63 -0
  77. package/src/common/ExternalServiceUtils.d.ts.map +1 -0
  78. package/src/common/ExternalServiceUtils.js +116 -0
  79. package/src/common/HealthRoutes.d.ts +10 -0
  80. package/src/common/HealthRoutes.d.ts.map +1 -0
  81. package/src/common/HealthRoutes.js +114 -0
  82. package/src/config/SecretsManager.d.ts.map +1 -1
  83. package/src/config/SecretsManager.js +2 -1
  84. package/src/config/app.d.ts +2 -1
  85. package/src/config/app.d.ts.map +1 -1
  86. package/src/config/app.js +98 -52
  87. package/src/config/broadcast.d.ts.map +1 -1
  88. package/src/config/broadcast.js +2 -2
  89. package/src/config/cache.d.ts.map +1 -1
  90. package/src/config/cache.js +2 -2
  91. package/src/config/database.d.ts.map +1 -1
  92. package/src/config/database.js +24 -5
  93. package/src/config/env.d.ts +43 -1
  94. package/src/config/env.d.ts.map +1 -1
  95. package/src/config/env.js +68 -21
  96. package/src/config/index.d.ts +10 -1
  97. package/src/config/index.d.ts.map +1 -1
  98. package/src/config/index.js +1 -0
  99. package/src/config/mail.d.ts.map +1 -1
  100. package/src/config/mail.js +3 -3
  101. package/src/config/middleware.d.ts.map +1 -1
  102. package/src/config/middleware.js +1 -1
  103. package/src/config/notification.d.ts.map +1 -1
  104. package/src/config/notification.js +2 -2
  105. package/src/config/queue.d.ts +14 -0
  106. package/src/config/queue.d.ts.map +1 -1
  107. package/src/config/queue.js +61 -36
  108. package/src/config/security.js +2 -2
  109. package/src/config/storage.d.ts.map +1 -1
  110. package/src/config/storage.js +5 -5
  111. package/src/config/type.d.ts +122 -0
  112. package/src/config/type.d.ts.map +1 -1
  113. package/src/config/type.js +10 -1
  114. package/src/config/workers.d.ts +13 -0
  115. package/src/config/workers.d.ts.map +1 -0
  116. package/src/config/workers.js +173 -0
  117. package/src/database/Paginator.d.ts +37 -0
  118. package/src/database/Paginator.d.ts.map +1 -0
  119. package/src/database/Paginator.js +81 -0
  120. package/src/exceptions/ZintrustError.d.ts +5 -2
  121. package/src/exceptions/ZintrustError.d.ts.map +1 -1
  122. package/src/exceptions/ZintrustError.js +6 -2
  123. package/src/features/Auth.d.ts +1 -1
  124. package/src/features/Auth.d.ts.map +1 -1
  125. package/src/features/Auth.js +3 -2
  126. package/src/features/Queue.d.ts.map +1 -1
  127. package/src/features/Queue.js +0 -2
  128. package/src/index.d.ts +15 -5
  129. package/src/index.d.ts.map +1 -1
  130. package/src/index.js +24 -3
  131. package/src/microservices/MicroserviceBootstrap.d.ts.map +1 -1
  132. package/src/microservices/MicroserviceBootstrap.js +3 -1
  133. package/src/microservices/MicroserviceGenerator.js +4 -4
  134. package/src/microservices/MicroserviceManager.d.ts +1 -1
  135. package/src/microservices/MicroserviceManager.js +1 -1
  136. package/src/middleware/RateLimiter.d.ts.map +1 -1
  137. package/src/middleware/RateLimiter.js +4 -3
  138. package/src/migrations/MigrationLoader.d.ts +1 -1
  139. package/src/migrations/MigrationLoader.d.ts.map +1 -1
  140. package/src/migrations/Migrator.d.ts +3 -3
  141. package/src/migrations/Migrator.d.ts.map +1 -1
  142. package/src/migrations/Migrator.js +1 -1
  143. package/src/migrations/MigratorFactory.d.ts +1 -1
  144. package/src/migrations/MigratorFactory.d.ts.map +1 -1
  145. package/src/migrations/MigratorFactory.js +3 -3
  146. package/src/migrations/enum/index.d.ts +93 -0
  147. package/src/migrations/enum/index.d.ts.map +1 -0
  148. package/src/migrations/enum/index.js +92 -0
  149. package/src/migrations/schema/Blueprint.d.ts +1 -1
  150. package/src/migrations/schema/Blueprint.d.ts.map +1 -1
  151. package/src/migrations/schema/Blueprint.js +27 -25
  152. package/src/migrations/schema/Schema.d.ts +1 -1
  153. package/src/migrations/schema/Schema.d.ts.map +1 -1
  154. package/src/migrations/schema/Schema.js +4 -3
  155. package/src/migrations/schema/SchemaCompiler.d.ts +1 -1
  156. package/src/migrations/schema/SchemaCompiler.d.ts.map +1 -1
  157. package/src/migrations/schema/SchemaCompiler.js +99 -91
  158. package/src/migrations/schema/index.d.ts +4 -4
  159. package/src/migrations/schema/index.d.ts.map +1 -1
  160. package/src/migrations/schema/index.js +3 -3
  161. package/src/migrations/schema/types.d.ts +2 -1
  162. package/src/migrations/schema/types.d.ts.map +1 -1
  163. package/src/node-singletons/crypto.d.ts +1 -1
  164. package/src/node-singletons/crypto.d.ts.map +1 -1
  165. package/src/node-singletons/crypto.js +1 -1
  166. package/src/node-singletons/os.d.ts +10 -1
  167. package/src/node-singletons/os.d.ts.map +1 -1
  168. package/src/node-singletons/os.js +10 -1
  169. package/src/openapi/OpenApiGenerator.js +2 -2
  170. package/src/orm/ConnectionManager.d.ts +7 -5
  171. package/src/orm/ConnectionManager.d.ts.map +1 -1
  172. package/src/orm/ConnectionManager.js +249 -93
  173. package/src/orm/Database.d.ts +2 -1
  174. package/src/orm/Database.d.ts.map +1 -1
  175. package/src/orm/DatabaseAdapter.d.ts +3 -2
  176. package/src/orm/DatabaseAdapter.d.ts.map +1 -1
  177. package/src/orm/DatabaseAdapter.js +17 -0
  178. package/src/orm/Model.d.ts +8 -1
  179. package/src/orm/Model.d.ts.map +1 -1
  180. package/src/orm/Model.js +109 -26
  181. package/src/orm/QueryBuilder.d.ts +12 -2
  182. package/src/orm/QueryBuilder.d.ts.map +1 -1
  183. package/src/orm/QueryBuilder.js +438 -38
  184. package/src/orm/Relationships.d.ts +61 -1
  185. package/src/orm/Relationships.d.ts.map +1 -1
  186. package/src/orm/Relationships.js +190 -0
  187. package/src/orm/adapters/D1Adapter.d.ts.map +1 -1
  188. package/src/orm/adapters/D1Adapter.js +2 -1
  189. package/src/orm/adapters/D1RemoteAdapter.d.ts +1 -1
  190. package/src/orm/adapters/D1RemoteAdapter.d.ts.map +1 -1
  191. package/src/orm/adapters/D1RemoteAdapter.js +3 -2
  192. package/src/orm/adapters/MySQLAdapter.d.ts.map +1 -1
  193. package/src/orm/adapters/MySQLAdapter.js +2 -1
  194. package/src/orm/adapters/SQLServerAdapter.d.ts.map +1 -1
  195. package/src/orm/adapters/SQLServerAdapter.js +2 -1
  196. package/src/orm/adapters/SQLiteAdapter.d.ts.map +1 -1
  197. package/src/orm/adapters/SQLiteAdapter.js +2 -1
  198. package/src/orm/migrations/MigrationStore.d.ts.map +1 -1
  199. package/src/performance/Optimizer.d.ts.map +1 -1
  200. package/src/performance/Optimizer.js +57 -18
  201. package/src/profiling/RequestProfiler.d.ts.map +1 -1
  202. package/src/profiling/RequestProfiler.js +3 -1
  203. package/src/routing/CoreRoutes.d.ts +1 -1
  204. package/src/routing/CoreRoutes.d.ts.map +1 -1
  205. package/src/routing/CoreRoutes.js +2 -116
  206. package/src/routing/error.d.ts.map +1 -1
  207. package/src/routing/error.js +3 -2
  208. package/src/routing/publicRoot.d.ts.map +1 -1
  209. package/src/routing/publicRoot.js +4 -2
  210. package/src/runtime/PluginAutoImports.d.ts.map +1 -1
  211. package/src/runtime/PluginAutoImports.js +20 -4
  212. package/src/runtime/PluginManager.d.ts.map +1 -1
  213. package/src/runtime/PluginManager.js +23 -6
  214. package/src/runtime/RuntimeAdapter.d.ts +3 -3
  215. package/src/runtime/RuntimeAdapter.d.ts.map +1 -1
  216. package/src/runtime/StartupConfigFileRegistry.d.ts +15 -13
  217. package/src/runtime/StartupConfigFileRegistry.d.ts.map +1 -1
  218. package/src/runtime/StartupConfigFileRegistry.js +12 -12
  219. package/src/runtime/adapters/CloudflareAdapter.d.ts.map +1 -1
  220. package/src/runtime/adapters/CloudflareAdapter.js +1 -1
  221. package/src/runtime/adapters/DenoAdapter.d.ts.map +1 -1
  222. package/src/runtime/adapters/DenoAdapter.js +1 -1
  223. package/src/runtime/adapters/FargateAdapter.d.ts +2 -2
  224. package/src/runtime/adapters/FargateAdapter.d.ts.map +1 -1
  225. package/src/runtime/adapters/FargateAdapter.js +1 -1
  226. package/src/runtime/adapters/LambdaAdapter.d.ts +1 -1
  227. package/src/runtime/adapters/LambdaAdapter.d.ts.map +1 -1
  228. package/src/runtime/adapters/LambdaAdapter.js +6 -4
  229. package/src/runtime/adapters/NodeServerAdapter.js +1 -1
  230. package/src/scripts/GenerateEnvArtifacts.js +1 -1
  231. package/src/security/SignedRequest.js +1 -1
  232. package/src/security/StartupSecretValidation.d.ts.map +1 -1
  233. package/src/security/StartupSecretValidation.js +7 -1
  234. package/src/start.d.ts.map +1 -1
  235. package/src/start.js +0 -2
  236. package/src/templates/features/Auth.ts.tpl +4 -4
  237. package/src/templates/project/basic/README.md.tpl +1 -1
  238. package/src/templates/project/basic/app/Middleware/index.ts.tpl +1 -1
  239. package/src/templates/project/basic/config/notification.ts.tpl +1 -1
  240. package/src/templates/project/basic/routes/api.ts.tpl +1 -3
  241. package/src/templates/project/basic/src/index.ts.tpl +1 -1
  242. package/src/templates/project/basic/src/zintrust.plugins.ts.tpl +1 -1
  243. package/src/templates/project/basic/template.json +1 -1
  244. package/src/toolkit/Secrets/index.d.ts.map +1 -1
  245. package/src/toolkit/Secrets/index.js +13 -9
  246. package/src/toolkit/Secrets/providers/AwsSecretsManager.d.ts.map +1 -1
  247. package/src/toolkit/Secrets/providers/AwsSecretsManager.js +20 -7
  248. package/src/toolkit/Secrets/providers/CloudflareKv.d.ts.map +1 -1
  249. package/src/toolkit/Secrets/providers/CloudflareKv.js +19 -6
  250. package/src/tools/http/Http.js +1 -1
  251. package/src/tools/mail/drivers/Ses.d.ts.map +1 -1
  252. package/src/tools/mail/drivers/Ses.js +5 -4
  253. package/src/tools/mail/templates/index.js +2 -2
  254. package/src/tools/notification/drivers/Termii.d.ts.map +1 -1
  255. package/src/tools/notification/drivers/Termii.js +6 -17
  256. package/src/tools/notification/testingHelpers.d.ts.map +1 -1
  257. package/src/tools/queue/Queue.d.ts.map +1 -1
  258. package/src/tools/queue/Queue.js +3 -5
  259. package/src/tools/queue/drivers/Redis.d.ts.map +1 -1
  260. package/src/tools/queue/drivers/Redis.js +7 -1
  261. package/src/tools/storage/drivers/S3.d.ts.map +1 -1
  262. package/src/tools/storage/drivers/S3.js +16 -3
  263. package/src/routes/health.d.ts +0 -2
  264. package/src/routes/health.d.ts.map +0 -1
  265. package/src/routes/health.js +0 -1
  266. package/src/runtime/RuntimeDetector.d.ts +0 -15
  267. package/src/runtime/RuntimeDetector.d.ts.map +0 -1
  268. package/src/runtime/RuntimeDetector.js +0 -271
  269. package/src/templates/project/basic/routes/health.ts.tpl +0 -143
  270. package/src/templates/project/basic/routes/metrics.ts.tpl +0 -22
  271. package/src/workers/BroadcastWorker.d.ts +0 -22
  272. package/src/workers/BroadcastWorker.d.ts.map +0 -1
  273. package/src/workers/BroadcastWorker.js +0 -24
  274. package/src/workers/NotificationWorker.d.ts +0 -22
  275. package/src/workers/NotificationWorker.d.ts.map +0 -1
  276. package/src/workers/NotificationWorker.js +0 -23
  277. package/src/workers/createQueueWorker.d.ts +0 -24
  278. package/src/workers/createQueueWorker.d.ts.map +0 -1
  279. package/src/workers/createQueueWorker.js +0 -114
@@ -4,19 +4,26 @@
4
4
  * Internal framework module intended for CLI usage.
5
5
  * It may use Node APIs (via node-singletons) and should not be used by runtime apps.
6
6
  */
7
+ import { Env } from '../../config/env.js';
7
8
  import { ErrorFactory } from '../../exceptions/ZintrustError.js';
8
9
  import { EnvFile } from '../Secrets/EnvFile.js';
9
10
  import { Manifest } from '../Secrets/Manifest.js';
10
11
  import { AwsSecretsManager } from '../Secrets/providers/AwsSecretsManager.js';
11
12
  import { CloudflareKv } from '../Secrets/providers/CloudflareKv.js';
13
+ const resolveDefaultEnvFile = () => Env.ZINTRUST_ENV_FILE;
14
+ const resolveDefaultManifest = () => Env.ZINTRUST_SECRETS_MANIFEST;
15
+ const resolveDefaultInFile = () => Env.ZINTRUST_ENV_IN_FILE;
16
+ const resolveSecretsProvider = () => {
17
+ return Env.ZINTRUST_SECRETS_PROVIDER;
18
+ };
12
19
  const resolveProvider = (provider) => {
13
20
  if (provider === 'aws' || provider === 'cloudflare')
14
21
  return provider;
15
22
  throw ErrorFactory.createCliError('Missing/invalid provider. Use --provider aws|cloudflare or set ZINTRUST_SECRETS_PROVIDER.');
16
23
  };
17
- const resolveOutFile = (outFile) => outFile ?? process.env['ZINTRUST_ENV_FILE'] ?? '.env.pull';
18
- const resolveManifestPath = (manifestPath) => manifestPath ?? process.env['ZINTRUST_SECRETS_MANIFEST'] ?? 'secrets.manifest.json';
19
- const resolveInFile = (inFile) => inFile ?? process.env['ZINTRUST_ENV_IN_FILE'] ?? '.env';
24
+ const resolveOutFile = (outFile) => outFile ?? resolveDefaultEnvFile();
25
+ const resolveManifestPath = (manifestPath) => manifestPath ?? resolveDefaultManifest();
26
+ const resolveInFile = (inFile) => inFile ?? resolveDefaultInFile();
20
27
  const pullAws = async (manifest) => {
21
28
  const client = AwsSecretsManager.createFromEnv();
22
29
  const entries = Object.entries(manifest.keys).filter(([, spec]) => spec.aws !== undefined);
@@ -85,8 +92,7 @@ const pushCloudflare = async (manifest, env, dryRun) => {
85
92
  };
86
93
  export const SecretsToolkit = Object.freeze({
87
94
  async pull(options) {
88
- const provider = resolveProvider(options.provider ??
89
- process.env['ZINTRUST_SECRETS_PROVIDER']);
95
+ const provider = resolveProvider(options.provider ?? resolveSecretsProvider());
90
96
  const outFile = resolveOutFile(options.outFile);
91
97
  const manifestPath = resolveManifestPath(options.manifestPath);
92
98
  const manifest = await Manifest.load({ cwd: options.cwd, path: manifestPath, provider });
@@ -97,8 +103,7 @@ export const SecretsToolkit = Object.freeze({
97
103
  return { outFile, keys: Object.keys(resolved) };
98
104
  },
99
105
  async push(options) {
100
- const provider = resolveProvider(options.provider ??
101
- process.env['ZINTRUST_SECRETS_PROVIDER']);
106
+ const provider = resolveProvider(options.provider ?? resolveSecretsProvider());
102
107
  const inFile = resolveInFile(options.inFile);
103
108
  const manifestPath = resolveManifestPath(options.manifestPath);
104
109
  const manifest = await Manifest.load({ cwd: options.cwd, path: manifestPath, provider });
@@ -110,8 +115,7 @@ export const SecretsToolkit = Object.freeze({
110
115
  return { inFile, keys };
111
116
  },
112
117
  doctor(options) {
113
- const provider = resolveProvider(options.provider ??
114
- process.env['ZINTRUST_SECRETS_PROVIDER']);
118
+ const provider = resolveProvider(options.provider ?? resolveSecretsProvider());
115
119
  const missing = provider === 'aws' ? AwsSecretsManager.doctorEnv() : CloudflareKv.doctorEnv();
116
120
  return { provider, ok: missing.length === 0, missing };
117
121
  },
@@ -1 +1 @@
1
- {"version":3,"file":"AwsSecretsManager.d.ts","sourceRoot":"","sources":["../../../../../src/toolkit/Secrets/providers/AwsSecretsManager.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,cAAc,GAAG;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AA0GF,eAAO,MAAM,iBAAiB;qBACX;QACf,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;QACzE,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;KAC9D;iBAsDY,MAAM,EAAE;EAcrB,CAAC;AAEH,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"AwsSecretsManager.d.ts","sourceRoot":"","sources":["../../../../../src/toolkit/Secrets/providers/AwsSecretsManager.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,cAAc,GAAG;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAqHF,eAAO,MAAM,iBAAiB;qBACX;QACf,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;QACzE,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;KAC9D;iBAsDY,MAAM,EAAE;EAcrB,CAAC;AAEH,eAAe,iBAAiB,CAAC"}
@@ -1,6 +1,19 @@
1
1
  import { AwsSigV4 } from '../../../common/index.js';
2
+ import { Env } from '../../../config/env.js';
2
3
  import { ErrorFactory } from '../../../exceptions/ZintrustError.js';
3
4
  const sha256Hex = (data) => AwsSigV4.sha256Hex(data);
5
+ const readEnvString = (key) => {
6
+ const anyEnv = Env;
7
+ const fromEnv = typeof anyEnv.get === 'function' ? anyEnv.get(key, '') : '';
8
+ if (typeof fromEnv === 'string' && fromEnv.trim() !== '')
9
+ return fromEnv;
10
+ if (typeof process !== 'undefined') {
11
+ const raw = process.env?.[key];
12
+ if (typeof raw === 'string')
13
+ return raw;
14
+ }
15
+ return fromEnv ?? '';
16
+ };
4
17
  const buildAuthorization = (params) => {
5
18
  const canonicalUri = '/';
6
19
  const canonicalQueryString = '';
@@ -78,10 +91,10 @@ const requestAwsSecretsManager = async (region, credentials, target, body) => {
78
91
  };
79
92
  export const AwsSecretsManager = Object.freeze({
80
93
  createFromEnv() {
81
- const region = process.env['AWS_REGION'] ?? process.env['AWS_DEFAULT_REGION'] ?? '';
82
- const accessKeyId = process.env['AWS_ACCESS_KEY_ID'] ?? '';
83
- const secretAccessKey = process.env['AWS_SECRET_ACCESS_KEY'] ?? '';
84
- const sessionToken = process.env['AWS_SESSION_TOKEN'] ?? undefined;
94
+ const region = readEnvString('AWS_REGION') || readEnvString('AWS_DEFAULT_REGION');
95
+ const accessKeyId = readEnvString('AWS_ACCESS_KEY_ID');
96
+ const secretAccessKey = readEnvString('AWS_SECRET_ACCESS_KEY');
97
+ const sessionToken = readEnvString('AWS_SESSION_TOKEN') || undefined;
85
98
  if (region.trim() === '' || accessKeyId.trim() === '' || secretAccessKey.trim() === '') {
86
99
  throw ErrorFactory.createCliError('AWS credentials missing: set AWS_REGION, AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY');
87
100
  }
@@ -116,13 +129,13 @@ export const AwsSecretsManager = Object.freeze({
116
129
  },
117
130
  doctorEnv() {
118
131
  const missing = [];
119
- const region = (process.env['AWS_REGION'] ?? process.env['AWS_DEFAULT_REGION'] ?? '').trim();
132
+ const region = (readEnvString('AWS_REGION') || readEnvString('AWS_DEFAULT_REGION')).trim();
120
133
  if (region === '')
121
134
  missing.push('AWS_REGION');
122
- const accessKeyId = (process.env['AWS_ACCESS_KEY_ID'] ?? '').trim();
135
+ const accessKeyId = readEnvString('AWS_ACCESS_KEY_ID').trim();
123
136
  if (accessKeyId === '')
124
137
  missing.push('AWS_ACCESS_KEY_ID');
125
- const secretAccessKey = (process.env['AWS_SECRET_ACCESS_KEY'] ?? '').trim();
138
+ const secretAccessKey = readEnvString('AWS_SECRET_ACCESS_KEY').trim();
126
139
  if (secretAccessKey === '')
127
140
  missing.push('AWS_SECRET_ACCESS_KEY');
128
141
  return missing;
@@ -1 +1 @@
1
- {"version":3,"file":"CloudflareKv.d.ts","sourceRoot":"","sources":["../../../../../src/toolkit/Secrets/providers/CloudflareKv.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,YAAY;qBACN;QACf,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;QACxE,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;KAC/E;iBAsEY,MAAM,EAAE;EAcrB,CAAC;AAEH,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"CloudflareKv.d.ts","sourceRoot":"","sources":["../../../../../src/toolkit/Secrets/providers/CloudflareKv.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,YAAY;qBACN;QACf,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;QACxE,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;KAC/E;iBAiFY,MAAM,EAAE;EAgBrB,CAAC;AAEH,eAAe,YAAY,CAAC"}
@@ -1,9 +1,22 @@
1
+ import { Env } from '../../../config/env.js';
1
2
  import { ErrorFactory } from '../../../exceptions/ZintrustError.js';
2
3
  export const CloudflareKv = Object.freeze({
3
4
  createFromEnv() {
4
- const accountId = process.env['CLOUDFLARE_ACCOUNT_ID'] ?? '';
5
- const apiToken = process.env['CLOUDFLARE_API_TOKEN'] ?? '';
6
- const defaultNamespaceId = process.env['CLOUDFLARE_KV_NAMESPACE_ID'] ?? '';
5
+ const readEnvString = (key) => {
6
+ const anyEnv = Env;
7
+ const fromEnv = typeof anyEnv.get === 'function' ? anyEnv.get(key, '') : '';
8
+ if (typeof fromEnv === 'string' && fromEnv.trim() !== '')
9
+ return fromEnv;
10
+ if (typeof process !== 'undefined') {
11
+ const raw = process.env?.[key];
12
+ if (typeof raw === 'string')
13
+ return raw;
14
+ }
15
+ return fromEnv ?? '';
16
+ };
17
+ const accountId = readEnvString('CLOUDFLARE_ACCOUNT_ID');
18
+ const apiToken = readEnvString('CLOUDFLARE_API_TOKEN');
19
+ const defaultNamespaceId = readEnvString('CLOUDFLARE_KV_NAMESPACE_ID');
7
20
  if (accountId.trim() === '' || apiToken.trim() === '') {
8
21
  throw ErrorFactory.createCliError('Cloudflare credentials missing: set CLOUDFLARE_ACCOUNT_ID, CLOUDFLARE_API_TOKEN');
9
22
  }
@@ -58,13 +71,13 @@ export const CloudflareKv = Object.freeze({
58
71
  },
59
72
  doctorEnv() {
60
73
  const missing = [];
61
- const accountId = (process.env['CLOUDFLARE_ACCOUNT_ID'] ?? '').trim();
74
+ const accountId = (Env.get?.('CLOUDFLARE_ACCOUNT_ID', '') ?? Env.CLOUDFLARE_ACCOUNT_ID).trim();
62
75
  if (accountId === '')
63
76
  missing.push('CLOUDFLARE_ACCOUNT_ID');
64
- const apiToken = (process.env['CLOUDFLARE_API_TOKEN'] ?? '').trim();
77
+ const apiToken = (Env.get?.('CLOUDFLARE_API_TOKEN', '') ?? Env.CLOUDFLARE_API_TOKEN).trim();
65
78
  if (apiToken === '')
66
79
  missing.push('CLOUDFLARE_API_TOKEN');
67
- const namespaceId = (process.env['CLOUDFLARE_KV_NAMESPACE_ID'] ?? '').trim();
80
+ const namespaceId = (Env.get?.('CLOUDFLARE_KV_NAMESPACE_ID', '') ?? Env.CLOUDFLARE_KV_NAMESPACE_ID).trim();
68
81
  if (namespaceId === '')
69
82
  missing.push('CLOUDFLARE_KV_NAMESPACE_ID');
70
83
  return missing;
@@ -77,7 +77,7 @@ const createRequestBuilder = (method, url, initialBody) => {
77
77
  method,
78
78
  url,
79
79
  headers: {
80
- 'User-Agent': 'Zintrust/1.0',
80
+ 'User-Agent': 'ZinTrust/1.0',
81
81
  },
82
82
  body: initialBody ? JSON.stringify(initialBody) : undefined,
83
83
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Ses.d.ts","sourceRoot":"","sources":["../../../../../src/tools/mail/drivers/Ses.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,SAAS,GAAG;IACtB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACtB,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,EAAE,EAAE,OAAO,CAAC;IACZ,QAAQ,EAAE,KAAK,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAsGF,eAAO,MAAM,SAAS;iBACD,SAAS,WAAW,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;EAgDxE,CAAC;AAEH,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"Ses.d.ts","sourceRoot":"","sources":["../../../../../src/tools/mail/drivers/Ses.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,SAAS,GAAG;IACtB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACtB,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,EAAE,EAAE,OAAO,CAAC;IACZ,QAAQ,EAAE,KAAK,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAsGF,eAAO,MAAM,SAAS;iBACD,SAAS,WAAW,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;EAgDxE,CAAC;AAEH,eAAe,SAAS,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { readEnvString } from '../../../common/ExternalServiceUtils.js';
1
2
  import { AwsSigV4 } from '../../../common/index.js';
2
3
  import { ErrorFactory } from '../../../exceptions/ZintrustError.js';
3
4
  const sha256Hex = (data) => AwsSigV4.sha256Hex(data);
@@ -33,10 +34,10 @@ const ensureRegion = (config) => {
33
34
  return region;
34
35
  };
35
36
  const ensureCredentials = () => {
36
- const accessKeyId = process.env['AWS_ACCESS_KEY_ID'] ?? '';
37
- const secretAccessKey = process.env['AWS_SECRET_ACCESS_KEY'] ?? '';
38
- const sessionToken = process.env['AWS_SESSION_TOKEN'] ?? undefined;
39
- if (accessKeyId.trim() === '' || secretAccessKey.trim() === '') {
37
+ const accessKeyId = readEnvString('AWS_ACCESS_KEY_ID');
38
+ const secretAccessKey = readEnvString('AWS_SECRET_ACCESS_KEY');
39
+ const sessionToken = readEnvString('AWS_SESSION_TOKEN') ?? undefined;
40
+ if (accessKeyId.length === 0 || secretAccessKey.length === 0) {
40
41
  throw ErrorFactory.createConfigError('SES: missing AWS credentials (set AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY)');
41
42
  }
42
43
  return { accessKeyId, secretAccessKey, sessionToken };
@@ -28,8 +28,8 @@ export const MailTemplates = Object.freeze({
28
28
  // Example template. Apps can add their own workflows under app/Toolkit/Mail.
29
29
  welcome: Object.freeze({
30
30
  subject: 'Welcome, {{name}}!',
31
- text: 'Hi {{name}},\n\nWelcome to Zintrust.',
32
- html: '<p>Hi {{name}},</p><p>Welcome to Zintrust.</p>',
31
+ text: 'Hi {{name}},\n\nWelcome to ZinTrust.',
32
+ html: '<p>Hi {{name}},</p><p>Welcome to ZinTrust.</p>',
33
33
  }),
34
34
  }),
35
35
  });
@@ -1 +1 @@
1
- {"version":3,"file":"Termii.d.ts","sourceRoot":"","sources":["../../../../../src/tools/notification/drivers/Termii.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,eAAO,MAAM,YAAY;oBACD,MAAM,WAAW,MAAM,YAAW,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;EA6C/E,CAAC;AAEH,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"Termii.d.ts","sourceRoot":"","sources":["../../../../../src/tools/notification/drivers/Termii.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,eAAO,MAAM,YAAY;oBACD,MAAM,WAAW,MAAM,YAAW,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;EA+B/E,CAAC;AAEH,eAAe,YAAY,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { readEnvString, safeFetch, validateRequiredParams } from '../../../common/ExternalServiceUtils.js';
1
2
  import { ErrorFactory } from '../../../exceptions/ZintrustError.js';
2
3
  /**
3
4
  * Termii SMS Driver (skeleton)
@@ -6,14 +7,9 @@ import { ErrorFactory } from '../../../exceptions/ZintrustError.js';
6
7
  */
7
8
  export const TermiiDriver = Object.freeze({
8
9
  async send(recipient, message, options = {}) {
9
- if (!recipient || typeof recipient !== 'string') {
10
- throw ErrorFactory.createValidationError('Recipient phone number is required');
11
- }
12
- if (!message || typeof message !== 'string') {
13
- throw ErrorFactory.createValidationError('Message body is required');
14
- }
15
- const apiKey = process.env['TERMII_API_KEY'] ?? '';
16
- const sender = process.env['TERMII_SENDER'] ?? 'Zintrust';
10
+ validateRequiredParams({ recipient, message }, ['recipient', 'message']);
11
+ const apiKey = readEnvString('TERMII_API_KEY');
12
+ const sender = readEnvString('TERMII_SENDER');
17
13
  if (!apiKey) {
18
14
  throw ErrorFactory.createConfigError('TERMII_API_KEY is not configured');
19
15
  }
@@ -24,22 +20,15 @@ export const TermiiDriver = Object.freeze({
24
20
  api_key: apiKey,
25
21
  ...options,
26
22
  };
27
- // Use global fetch — tests will mock this
23
+ // Use shared fetch wrapper
28
24
  const url = 'https://api.termii.com/sms/send';
29
- const res = await globalThis.fetch(url, {
25
+ const res = await safeFetch(url, {
30
26
  method: 'POST',
31
27
  headers: {
32
28
  'Content-Type': 'application/json',
33
29
  },
34
30
  body: JSON.stringify(payload),
35
31
  });
36
- if (!res.ok) {
37
- const txt = await res.text().catch(() => '');
38
- throw ErrorFactory.createTryCatchError(`Termii request failed (${res.status})`, {
39
- status: res.status,
40
- body: txt,
41
- });
42
- }
43
32
  const json = await res.json().catch(() => ({}));
44
33
  return json;
45
34
  },
@@ -1 +1 @@
1
- {"version":3,"file":"testingHelpers.d.ts","sourceRoot":"","sources":["../../../../src/tools/notification/testingHelpers.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,aAAa,GACxB,aAA0B,EAC1B,OAAM,OAA0B,KAC/B;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,IAAI,CAAA;CA2B3C,CAAC;;0CA5BM,OAAO,KACZ;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,IAAI,CAAA;KAAE;;AA6B9C,wBAAiC"}
1
+ {"version":3,"file":"testingHelpers.d.ts","sourceRoot":"","sources":["../../../../src/tools/notification/testingHelpers.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,aAAa,GACxB,aAA0B,EAC1B,OAAM,OAA0B,KAC/B;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,IAAI,CAAA;CA2B3C,CAAC;;0CA5BM,OAAO,KACZ;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,IAAI,CAAA;KAAE;;AA6B9C,wBAAiC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Queue.d.ts","sourceRoot":"","sources":["../../../../src/tools/queue/Queue.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,YAAY,CAAC,CAAC,GAAG,OAAO,IAAI;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,CAAC,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAErF,UAAU,YAAY;IACpB,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACjE,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IAC1E,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACvC,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACrC;AAID,eAAO,MAAM,KAAK;mBACD,MAAM,UAAU,YAAY;aAIlC,IAAI;eAIF,MAAM,GAAG,YAAY;YAelB,CAAC,mBAAmB,MAAM,WAAW,CAAC,eAAe,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;YAK7E,CAAC,mBACN,MAAM,eACA,MAAM,GAClB,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;eAKtB,MAAM,MAAM,MAAM,eAAe,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;kBAKpD,MAAM,eAAe,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;iBAK9C,MAAM,eAAe,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;EAI9D,CAAC;AAEH,eAAe,KAAK,CAAC"}
1
+ {"version":3,"file":"Queue.d.ts","sourceRoot":"","sources":["../../../../src/tools/queue/Queue.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,YAAY,CAAC,CAAC,GAAG,OAAO,IAAI;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,CAAC,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAErF,UAAU,YAAY;IACpB,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACjE,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IAC1E,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACvC,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACrC;AAID,eAAO,MAAM,KAAK;mBACD,MAAM,UAAU,YAAY;aAIlC,IAAI;eAIF,MAAM,GAAG,YAAY;YAUlB,CAAC,mBAAmB,MAAM,WAAW,CAAC,eAAe,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;YAK7E,CAAC,mBACN,MAAM,eACA,MAAM,GAClB,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;eAKtB,MAAM,MAAM,MAAM,eAAe,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;kBAKpD,MAAM,eAAe,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;iBAK9C,MAAM,eAAe,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;EAI9D,CAAC;AAEH,eAAe,KAAK,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { Env } from '../../config/env.js';
1
2
  import { ErrorFactory } from '../../exceptions/ZintrustError.js';
2
3
  const drivers = new Map();
3
4
  export const Queue = Object.freeze({
@@ -8,11 +9,8 @@ export const Queue = Object.freeze({
8
9
  drivers.clear();
9
10
  },
10
11
  get(name) {
11
- const driverName = (name ??
12
- process.env['QUEUE_CONNECTION'] ??
13
- process.env['QUEUE_DRIVER'] ??
14
- 'inmemory')
15
- .toString()
12
+ const resolved = (name ?? Env.QUEUE_CONNECTION) || Env.QUEUE_DRIVER || 'inmemory';
13
+ const driverName = (resolved !== null && resolved !== undefined ? String(resolved) : 'inmemory')
16
14
  .trim()
17
15
  .toLowerCase();
18
16
  const driver = drivers.get(driverName);
@@ -1 +1 @@
1
- {"version":3,"file":"Redis.d.ts","sourceRoot":"","sources":["../../../../../src/tools/queue/drivers/Redis.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAevD,eAAO,MAAM,UAAU;uBAuDL,CAAC,mBAAmB,MAAM,WAAW,CAAC,KAAG,OAAO,CAAC,MAAM,CAAC;uBAQxD,CAAC,mBAAmB,MAAM,KAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;2BAY7D,MAAM,OAAO,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC;6BAMjC,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC;4BAKzB,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC;CAKzC,CAAC;AAEL,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"Redis.d.ts","sourceRoot":"","sources":["../../../../../src/tools/queue/drivers/Redis.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAoBvD,eAAO,MAAM,UAAU;uBAuDL,CAAC,mBAAmB,MAAM,WAAW,CAAC,KAAG,OAAO,CAAC,MAAM,CAAC;uBAQxD,CAAC,mBAAmB,MAAM,KAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;2BAY7D,MAAM,OAAO,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC;6BAMjC,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC;4BAKzB,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC;CAKzC,CAAC;AAEL,eAAe,UAAU,CAAC"}
@@ -1,7 +1,13 @@
1
1
  import { generateUuid } from '../../../common/utility.js';
2
+ import { Env } from '../../../config/env.js';
2
3
  import { ErrorFactory } from '../../../exceptions/ZintrustError.js';
3
4
  const getRedisUrl = () => {
4
- const url = (process.env['REDIS_URL'] ?? '').trim();
5
+ const anyEnv = Env;
6
+ const fromEnv = typeof anyEnv.get === 'function' ? anyEnv.get('REDIS_URL', '') : '';
7
+ const hasProcess = typeof process === 'object' && process !== null;
8
+ const fallback = hasProcess ? (process.env?.['REDIS_URL'] ?? '') : '';
9
+ const trimmed = fromEnv.trim();
10
+ const url = (trimmed.length > 0 ? fromEnv : String(fallback)).trim();
5
11
  return url.length > 0 ? url : null;
6
12
  };
7
13
  export const RedisQueue = (() => {
@@ -1 +1 @@
1
- {"version":3,"file":"S3.d.ts","sourceRoot":"","sources":["../../../../../src/tools/storage/drivers/S3.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,QAAQ,GAAG;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;CAClC,CAAC;AAwGF,eAAO,MAAM,QAAQ;gBACD,QAAQ,OAAO,MAAM,WAAW,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;gBA8CjE,QAAQ,OAAO,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;mBA0CpC,QAAQ,OAAO,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;mBAkCxC,QAAQ,OAAO,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;gBAoC9C,QAAQ,OAAO,MAAM,GAAG,MAAM;oBAOhC,QAAQ,OACX,MAAM,YACD;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,KAAK,GAAG,KAAK,CAAA;KAAE,GACvD,MAAM;EAqDT,CAAC;AAEH,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"S3.d.ts","sourceRoot":"","sources":["../../../../../src/tools/storage/drivers/S3.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,QAAQ,GAAG;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;CAClC,CAAC;AAqHF,eAAO,MAAM,QAAQ;gBACD,QAAQ,OAAO,MAAM,WAAW,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;gBA8CjE,QAAQ,OAAO,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;mBA0CpC,QAAQ,OAAO,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;mBAkCxC,QAAQ,OAAO,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;gBAoC9C,QAAQ,OAAO,MAAM,GAAG,MAAM;oBAOhC,QAAQ,OACX,MAAM,YACD;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,KAAK,GAAG,KAAK,CAAA;KAAE,GACvD,MAAM;EAqDT,CAAC;AAEH,eAAe,QAAQ,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { AwsSigV4 } from '../../../common/index.js';
2
+ import { Env } from '../../../config/env.js';
2
3
  import { ErrorFactory } from '../../../exceptions/ZintrustError.js';
3
4
  import { createHash, createHmac } from '../../../node-singletons/crypto.js';
4
5
  const sha256Hex = (data) => createHash('sha256').update(data).digest('hex');
@@ -51,9 +52,21 @@ const buildCanonicalQueryString = (params) => {
51
52
  return entries.map(([k, v]) => `${k}=${v}`).join('&');
52
53
  };
53
54
  const getCredentials = (config) => {
54
- const accessKeyId = config.accessKeyId ?? process.env['AWS_ACCESS_KEY_ID'] ?? '';
55
- const secretAccessKey = config.secretAccessKey ?? process.env['AWS_SECRET_ACCESS_KEY'] ?? '';
56
- const sessionToken = process.env['AWS_SESSION_TOKEN'] ?? undefined;
55
+ const readEnvString = (key) => {
56
+ const anyEnv = Env;
57
+ const fromEnv = typeof anyEnv.get === 'function' ? anyEnv.get(key, '') : '';
58
+ if (typeof fromEnv === 'string' && fromEnv.trim() !== '')
59
+ return fromEnv;
60
+ if (typeof process !== 'undefined') {
61
+ const raw = process.env?.[key];
62
+ if (typeof raw === 'string')
63
+ return raw;
64
+ }
65
+ return fromEnv ?? '';
66
+ };
67
+ const accessKeyId = config.accessKeyId || readEnvString('AWS_ACCESS_KEY_ID') || Env.AWS_ACCESS_KEY_ID;
68
+ const secretAccessKey = config.secretAccessKey || readEnvString('AWS_SECRET_ACCESS_KEY') || Env.AWS_SECRET_ACCESS_KEY;
69
+ const sessionToken = readEnvString('AWS_SESSION_TOKEN') || Env.AWS_SESSION_TOKEN || undefined;
57
70
  if (accessKeyId.trim() === '' || secretAccessKey.trim() === '') {
58
71
  throw ErrorFactory.createConfigError('S3: missing AWS credentials');
59
72
  }
@@ -1,2 +0,0 @@
1
- export { registerHealthRoutes } from '../../routes/health';
2
- //# sourceMappingURL=health.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../../../src/routes/health.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC"}
@@ -1 +0,0 @@
1
- export { registerHealthRoutes } from '../../routes/health.js';
@@ -1,15 +0,0 @@
1
- import type { AdapterConfig, RuntimeAdapter, ZintrustHandler } from './RuntimeAdapter';
2
- export declare const RuntimeDetector: Readonly<{
3
- RUNTIME_VAR: "RUNTIME";
4
- AUTO: "auto";
5
- detectRuntime: () => string;
6
- createAdapter: (config: AdapterConfig) => RuntimeAdapter;
7
- createAdapterForRuntime: (runtime: string, config: AdapterConfig) => RuntimeAdapter;
8
- getRuntimeInfo: () => Record<string, unknown>;
9
- }>;
10
- export declare const ApplicationBootstrap: Readonly<{
11
- initialize: (handler: ZintrustHandler) => Promise<void>;
12
- shutdown: (signal?: string) => Promise<void>;
13
- setupGracefulShutdown: () => void;
14
- }>;
15
- //# sourceMappingURL=RuntimeDetector.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RuntimeDetector.d.ts","sourceRoot":"","sources":["../../../src/runtime/RuntimeDetector.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAkK9F,eAAO,MAAM,eAAe;;;yBA9GF,MAAM;4BAyBD,aAAa,KAAG,cAAc;uCAQnB,MAAM,UAAU,aAAa,KAAG,cAAc;0BAuD7D,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;EA6BhD,CAAC;AA8IH,eAAO,MAAM,oBAAoB;0BAtGE,eAAe,KAAG,OAAO,CAAC,IAAI,CAAC;wBA0DlC,MAAM,KAAe,OAAO,CAAC,IAAI,CAAC;iCAmChC,IAAI;EAapC,CAAC"}