@zintrust/core 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (494) hide show
  1. package/bin/z.d.ts +7 -0
  2. package/bin/z.d.ts.map +1 -0
  3. package/bin/z.js +6 -0
  4. package/bin/zin.d.ts +7 -0
  5. package/bin/zin.d.ts.map +1 -0
  6. package/bin/zin.js +6 -0
  7. package/bin/zintrust-microservices.d.ts +7 -0
  8. package/bin/zintrust-microservices.d.ts.map +1 -0
  9. package/bin/zintrust-microservices.js +165 -0
  10. package/bin/zintrust.d.ts +9 -0
  11. package/bin/zintrust.d.ts.map +1 -0
  12. package/bin/zintrust.js +51 -0
  13. package/bin/zt.d.ts +7 -0
  14. package/bin/zt.d.ts.map +1 -0
  15. package/bin/zt.js +6 -0
  16. package/package.json +80 -0
  17. package/src/boot/Application.d.ts +31 -0
  18. package/src/boot/Application.d.ts.map +1 -0
  19. package/src/boot/Application.js +159 -0
  20. package/src/boot/Server.d.ts +23 -0
  21. package/src/boot/Server.d.ts.map +1 -0
  22. package/src/boot/Server.js +236 -0
  23. package/src/boot/bootstrap.d.ts +7 -0
  24. package/src/boot/bootstrap.d.ts.map +1 -0
  25. package/src/boot/bootstrap.js +64 -0
  26. package/src/builder/BundleOptimizer.d.ts +42 -0
  27. package/src/builder/BundleOptimizer.d.ts.map +1 -0
  28. package/src/builder/BundleOptimizer.js +356 -0
  29. package/src/cache/Cache.d.ts +26 -0
  30. package/src/cache/Cache.d.ts.map +1 -0
  31. package/src/cache/Cache.js +89 -0
  32. package/src/cache/CacheDriver.d.ts +28 -0
  33. package/src/cache/CacheDriver.d.ts.map +1 -0
  34. package/src/cache/CacheDriver.js +6 -0
  35. package/src/cache/drivers/KVDriver.d.ts +12 -0
  36. package/src/cache/drivers/KVDriver.d.ts.map +1 -0
  37. package/src/cache/drivers/KVDriver.js +54 -0
  38. package/src/cache/drivers/MemoryDriver.d.ts +12 -0
  39. package/src/cache/drivers/MemoryDriver.d.ts.map +1 -0
  40. package/src/cache/drivers/MemoryDriver.js +50 -0
  41. package/src/cache/drivers/MongoDriver.d.ts +17 -0
  42. package/src/cache/drivers/MongoDriver.d.ts.map +1 -0
  43. package/src/cache/drivers/MongoDriver.js +80 -0
  44. package/src/cache/drivers/RedisDriver.d.ts +12 -0
  45. package/src/cache/drivers/RedisDriver.d.ts.map +1 -0
  46. package/src/cache/drivers/RedisDriver.js +79 -0
  47. package/src/cli/BaseCommand.d.ts +39 -0
  48. package/src/cli/BaseCommand.d.ts.map +1 -0
  49. package/src/cli/BaseCommand.js +58 -0
  50. package/src/cli/CLI.d.ts +21 -0
  51. package/src/cli/CLI.d.ts.map +1 -0
  52. package/src/cli/CLI.js +203 -0
  53. package/src/cli/ErrorHandler.d.ts +23 -0
  54. package/src/cli/ErrorHandler.d.ts.map +1 -0
  55. package/src/cli/ErrorHandler.js +95 -0
  56. package/src/cli/PromptHelper.d.ts +47 -0
  57. package/src/cli/PromptHelper.d.ts.map +1 -0
  58. package/src/cli/PromptHelper.js +155 -0
  59. package/src/cli/commands/AddCommand.d.ts +15 -0
  60. package/src/cli/commands/AddCommand.d.ts.map +1 -0
  61. package/src/cli/commands/AddCommand.js +817 -0
  62. package/src/cli/commands/ConfigCommand.d.ts +15 -0
  63. package/src/cli/commands/ConfigCommand.d.ts.map +1 -0
  64. package/src/cli/commands/ConfigCommand.js +273 -0
  65. package/src/cli/commands/D1MigrateCommand.d.ts +15 -0
  66. package/src/cli/commands/D1MigrateCommand.d.ts.map +1 -0
  67. package/src/cli/commands/D1MigrateCommand.js +73 -0
  68. package/src/cli/commands/DebugCommand.d.ts +15 -0
  69. package/src/cli/commands/DebugCommand.d.ts.map +1 -0
  70. package/src/cli/commands/DebugCommand.js +52 -0
  71. package/src/cli/commands/FixCommand.d.ts +15 -0
  72. package/src/cli/commands/FixCommand.d.ts.map +1 -0
  73. package/src/cli/commands/FixCommand.js +80 -0
  74. package/src/cli/commands/KeyGenerateCommand.d.ts +9 -0
  75. package/src/cli/commands/KeyGenerateCommand.d.ts.map +1 -0
  76. package/src/cli/commands/KeyGenerateCommand.js +76 -0
  77. package/src/cli/commands/LogsCommand.d.ts +19 -0
  78. package/src/cli/commands/LogsCommand.d.ts.map +1 -0
  79. package/src/cli/commands/LogsCommand.js +185 -0
  80. package/src/cli/commands/MigrateCommand.d.ts +15 -0
  81. package/src/cli/commands/MigrateCommand.d.ts.map +1 -0
  82. package/src/cli/commands/MigrateCommand.js +56 -0
  83. package/src/cli/commands/NewCommand.d.ts +32 -0
  84. package/src/cli/commands/NewCommand.d.ts.map +1 -0
  85. package/src/cli/commands/NewCommand.js +280 -0
  86. package/src/cli/commands/PluginCommand.d.ts +9 -0
  87. package/src/cli/commands/PluginCommand.d.ts.map +1 -0
  88. package/src/cli/commands/PluginCommand.js +94 -0
  89. package/src/cli/commands/PrepareCommand.d.ts +8 -0
  90. package/src/cli/commands/PrepareCommand.d.ts.map +1 -0
  91. package/src/cli/commands/PrepareCommand.js +51 -0
  92. package/src/cli/commands/QACommand.d.ts +33 -0
  93. package/src/cli/commands/QACommand.d.ts.map +1 -0
  94. package/src/cli/commands/QACommand.js +490 -0
  95. package/src/cli/commands/SimulateCommand.d.ts +12 -0
  96. package/src/cli/commands/SimulateCommand.d.ts.map +1 -0
  97. package/src/cli/commands/SimulateCommand.js +79 -0
  98. package/src/cli/commands/StartCommand.d.ts +5 -0
  99. package/src/cli/commands/StartCommand.d.ts.map +1 -0
  100. package/src/cli/commands/StartCommand.js +227 -0
  101. package/src/cli/commands/index.d.ts +11 -0
  102. package/src/cli/commands/index.d.ts.map +1 -0
  103. package/src/cli/commands/index.js +10 -0
  104. package/src/cli/config/ConfigManager.d.ts +42 -0
  105. package/src/cli/config/ConfigManager.d.ts.map +1 -0
  106. package/src/cli/config/ConfigManager.js +175 -0
  107. package/src/cli/config/ConfigSchema.d.ts +195 -0
  108. package/src/cli/config/ConfigSchema.d.ts.map +1 -0
  109. package/src/cli/config/ConfigSchema.js +171 -0
  110. package/src/cli/config/ConfigValidator.d.ts +41 -0
  111. package/src/cli/config/ConfigValidator.d.ts.map +1 -0
  112. package/src/cli/config/ConfigValidator.js +200 -0
  113. package/src/cli/config/index.d.ts +8 -0
  114. package/src/cli/config/index.d.ts.map +1 -0
  115. package/src/cli/config/index.js +7 -0
  116. package/src/cli/debug/Dashboard.d.ts +34 -0
  117. package/src/cli/debug/Dashboard.d.ts.map +1 -0
  118. package/src/cli/debug/Dashboard.js +152 -0
  119. package/src/cli/index.d.ts +14 -0
  120. package/src/cli/index.d.ts.map +1 -0
  121. package/src/cli/index.js +14 -0
  122. package/src/cli/logger/Logger.d.ts +43 -0
  123. package/src/cli/logger/Logger.d.ts.map +1 -0
  124. package/src/cli/logger/Logger.js +137 -0
  125. package/src/cli/scaffolding/ControllerGenerator.d.ts +44 -0
  126. package/src/cli/scaffolding/ControllerGenerator.d.ts.map +1 -0
  127. package/src/cli/scaffolding/ControllerGenerator.js +540 -0
  128. package/src/cli/scaffolding/FactoryGenerator.d.ts +47 -0
  129. package/src/cli/scaffolding/FactoryGenerator.d.ts.map +1 -0
  130. package/src/cli/scaffolding/FactoryGenerator.js +356 -0
  131. package/src/cli/scaffolding/FeatureScaffolder.d.ts +40 -0
  132. package/src/cli/scaffolding/FeatureScaffolder.d.ts.map +1 -0
  133. package/src/cli/scaffolding/FeatureScaffolder.js +747 -0
  134. package/src/cli/scaffolding/FileGenerator.d.ts +31 -0
  135. package/src/cli/scaffolding/FileGenerator.d.ts.map +1 -0
  136. package/src/cli/scaffolding/FileGenerator.js +222 -0
  137. package/src/cli/scaffolding/MigrationGenerator.d.ts +35 -0
  138. package/src/cli/scaffolding/MigrationGenerator.d.ts.map +1 -0
  139. package/src/cli/scaffolding/MigrationGenerator.js +257 -0
  140. package/src/cli/scaffolding/ModelGenerator.d.ts +81 -0
  141. package/src/cli/scaffolding/ModelGenerator.d.ts.map +1 -0
  142. package/src/cli/scaffolding/ModelGenerator.js +249 -0
  143. package/src/cli/scaffolding/ProjectScaffolder.d.ts +66 -0
  144. package/src/cli/scaffolding/ProjectScaffolder.d.ts.map +1 -0
  145. package/src/cli/scaffolding/ProjectScaffolder.js +439 -0
  146. package/src/cli/scaffolding/RequestFactoryGenerator.d.ts +50 -0
  147. package/src/cli/scaffolding/RequestFactoryGenerator.d.ts.map +1 -0
  148. package/src/cli/scaffolding/RequestFactoryGenerator.js +465 -0
  149. package/src/cli/scaffolding/ResponseFactoryGenerator.d.ts +43 -0
  150. package/src/cli/scaffolding/ResponseFactoryGenerator.d.ts.map +1 -0
  151. package/src/cli/scaffolding/ResponseFactoryGenerator.js +321 -0
  152. package/src/cli/scaffolding/RouteGenerator.d.ts +66 -0
  153. package/src/cli/scaffolding/RouteGenerator.d.ts.map +1 -0
  154. package/src/cli/scaffolding/RouteGenerator.js +306 -0
  155. package/src/cli/scaffolding/SeederGenerator.d.ts +47 -0
  156. package/src/cli/scaffolding/SeederGenerator.d.ts.map +1 -0
  157. package/src/cli/scaffolding/SeederGenerator.js +286 -0
  158. package/src/cli/scaffolding/ServiceIntegrationTestGenerator.d.ts +40 -0
  159. package/src/cli/scaffolding/ServiceIntegrationTestGenerator.d.ts.map +1 -0
  160. package/src/cli/scaffolding/ServiceIntegrationTestGenerator.js +267 -0
  161. package/src/cli/scaffolding/ServiceRequestFactoryGenerator.d.ts +45 -0
  162. package/src/cli/scaffolding/ServiceRequestFactoryGenerator.d.ts.map +1 -0
  163. package/src/cli/scaffolding/ServiceRequestFactoryGenerator.js +397 -0
  164. package/src/cli/scaffolding/ServiceScaffolder.d.ts +45 -0
  165. package/src/cli/scaffolding/ServiceScaffolder.d.ts.map +1 -0
  166. package/src/cli/scaffolding/ServiceScaffolder.js +367 -0
  167. package/src/cli/scaffolding/TemplateEngine.d.ts +35 -0
  168. package/src/cli/scaffolding/TemplateEngine.d.ts.map +1 -0
  169. package/src/cli/scaffolding/TemplateEngine.js +379 -0
  170. package/src/cli/scaffolding/WorkflowGenerator.d.ts +31 -0
  171. package/src/cli/scaffolding/WorkflowGenerator.d.ts.map +1 -0
  172. package/src/cli/scaffolding/WorkflowGenerator.js +193 -0
  173. package/src/cli/scaffolding/index.d.ts +34 -0
  174. package/src/cli/scaffolding/index.d.ts.map +1 -0
  175. package/src/cli/scaffolding/index.js +18 -0
  176. package/src/cli/utils/DistPackager.d.ts +8 -0
  177. package/src/cli/utils/DistPackager.d.ts.map +1 -0
  178. package/src/cli/utils/DistPackager.js +94 -0
  179. package/src/cli/utils/EnvFileLoader.d.ts +21 -0
  180. package/src/cli/utils/EnvFileLoader.d.ts.map +1 -0
  181. package/src/cli/utils/EnvFileLoader.js +166 -0
  182. package/src/cli/utils/spawn.d.ts +11 -0
  183. package/src/cli/utils/spawn.d.ts.map +1 -0
  184. package/src/cli/utils/spawn.js +81 -0
  185. package/src/common/index.d.ts +87 -0
  186. package/src/common/index.d.ts.map +1 -0
  187. package/src/common/index.js +207 -0
  188. package/src/config/SecretsManager.d.ts +122 -0
  189. package/src/config/SecretsManager.d.ts.map +1 -0
  190. package/src/config/SecretsManager.js +328 -0
  191. package/src/config/app.d.ts +56 -0
  192. package/src/config/app.d.ts.map +1 -0
  193. package/src/config/app.js +77 -0
  194. package/src/config/cache.d.ts +76 -0
  195. package/src/config/cache.d.ts.map +1 -0
  196. package/src/config/cache.js +62 -0
  197. package/src/config/constants.d.ts +108 -0
  198. package/src/config/constants.d.ts.map +1 -0
  199. package/src/config/constants.js +64 -0
  200. package/src/config/database.d.ts +122 -0
  201. package/src/config/database.d.ts.map +1 -0
  202. package/src/config/database.js +89 -0
  203. package/src/config/env.d.ts +56 -0
  204. package/src/config/env.d.ts.map +1 -0
  205. package/src/config/env.js +133 -0
  206. package/src/config/features.d.ts +27 -0
  207. package/src/config/features.d.ts.map +1 -0
  208. package/src/config/features.js +49 -0
  209. package/src/config/index.d.ts +554 -0
  210. package/src/config/index.d.ts.map +1 -0
  211. package/src/config/index.js +31 -0
  212. package/src/config/logger.d.ts +17 -0
  213. package/src/config/logger.d.ts.map +1 -0
  214. package/src/config/logger.js +77 -0
  215. package/src/config/microservices.d.ts +88 -0
  216. package/src/config/microservices.d.ts.map +1 -0
  217. package/src/config/microservices.js +90 -0
  218. package/src/config/queue.d.ts +107 -0
  219. package/src/config/queue.d.ts.map +1 -0
  220. package/src/config/queue.js +74 -0
  221. package/src/config/security.d.ts +108 -0
  222. package/src/config/security.d.ts.map +1 -0
  223. package/src/config/security.js +134 -0
  224. package/src/config/storage.d.ts +105 -0
  225. package/src/config/storage.d.ts.map +1 -0
  226. package/src/config/storage.js +79 -0
  227. package/src/container/ServiceContainer.d.ts +25 -0
  228. package/src/container/ServiceContainer.d.ts.map +1 -0
  229. package/src/container/ServiceContainer.js +75 -0
  230. package/src/database/migrations/index.d.ts +2 -0
  231. package/src/database/migrations/index.d.ts.map +1 -0
  232. package/src/database/migrations/index.js +1 -0
  233. package/src/exceptions/ZintrustError.d.ts +88 -0
  234. package/src/exceptions/ZintrustError.d.ts.map +1 -0
  235. package/src/exceptions/ZintrustError.js +110 -0
  236. package/src/features/Auth.d.ts +20 -0
  237. package/src/features/Auth.d.ts.map +1 -0
  238. package/src/features/Auth.js +32 -0
  239. package/src/features/Queue.d.ts +21 -0
  240. package/src/features/Queue.d.ts.map +1 -0
  241. package/src/features/Queue.js +59 -0
  242. package/src/functions/cloudflare.d.ts +5 -0
  243. package/src/functions/cloudflare.d.ts.map +1 -0
  244. package/src/functions/cloudflare.js +34 -0
  245. package/src/functions/deno.d.ts +3 -0
  246. package/src/functions/deno.d.ts.map +1 -0
  247. package/src/functions/deno.js +31 -0
  248. package/src/functions/lambda.d.ts +2 -0
  249. package/src/functions/lambda.d.ts.map +1 -0
  250. package/src/functions/lambda.js +32 -0
  251. package/src/http/Controller.d.ts +20 -0
  252. package/src/http/Controller.d.ts.map +1 -0
  253. package/src/http/Controller.js +46 -0
  254. package/src/http/Kernel.d.ts +24 -0
  255. package/src/http/Kernel.d.ts.map +1 -0
  256. package/src/http/Kernel.js +72 -0
  257. package/src/http/Request.d.ts +36 -0
  258. package/src/http/Request.d.ts.map +1 -0
  259. package/src/http/Request.js +142 -0
  260. package/src/http/Response.d.ts +32 -0
  261. package/src/http/Response.d.ts.map +1 -0
  262. package/src/http/Response.js +70 -0
  263. package/src/index.d.ts +43 -0
  264. package/src/index.d.ts.map +1 -0
  265. package/src/index.js +37 -0
  266. package/src/microservices/MicroserviceBootstrap.d.ts +75 -0
  267. package/src/microservices/MicroserviceBootstrap.d.ts.map +1 -0
  268. package/src/microservices/MicroserviceBootstrap.js +285 -0
  269. package/src/microservices/MicroserviceGenerator.d.ts +27 -0
  270. package/src/microservices/MicroserviceGenerator.d.ts.map +1 -0
  271. package/src/microservices/MicroserviceGenerator.js +436 -0
  272. package/src/microservices/MicroserviceManager.d.ts +68 -0
  273. package/src/microservices/MicroserviceManager.d.ts.map +1 -0
  274. package/src/microservices/MicroserviceManager.js +266 -0
  275. package/src/microservices/PostgresAdapter.d.ts +90 -0
  276. package/src/microservices/PostgresAdapter.d.ts.map +1 -0
  277. package/src/microservices/PostgresAdapter.js +286 -0
  278. package/src/microservices/RequestTracingMiddleware.d.ts +41 -0
  279. package/src/microservices/RequestTracingMiddleware.d.ts.map +1 -0
  280. package/src/microservices/RequestTracingMiddleware.js +122 -0
  281. package/src/microservices/ServiceAuthMiddleware.d.ts +58 -0
  282. package/src/microservices/ServiceAuthMiddleware.d.ts.map +1 -0
  283. package/src/microservices/ServiceAuthMiddleware.js +240 -0
  284. package/src/microservices/ServiceBundler.d.ts +45 -0
  285. package/src/microservices/ServiceBundler.d.ts.map +1 -0
  286. package/src/microservices/ServiceBundler.js +297 -0
  287. package/src/microservices/ServiceHealthMonitor.d.ts +96 -0
  288. package/src/microservices/ServiceHealthMonitor.d.ts.map +1 -0
  289. package/src/microservices/ServiceHealthMonitor.js +379 -0
  290. package/src/middleware/CsrfMiddleware.d.ts +19 -0
  291. package/src/middleware/CsrfMiddleware.d.ts.map +1 -0
  292. package/src/middleware/CsrfMiddleware.js +121 -0
  293. package/src/middleware/MiddlewareStack.d.ts +27 -0
  294. package/src/middleware/MiddlewareStack.d.ts.map +1 -0
  295. package/src/middleware/MiddlewareStack.js +43 -0
  296. package/src/middleware/RateLimiter.d.ts +22 -0
  297. package/src/middleware/RateLimiter.d.ts.map +1 -0
  298. package/src/middleware/RateLimiter.js +72 -0
  299. package/src/middleware/SecurityMiddleware.d.ts +33 -0
  300. package/src/middleware/SecurityMiddleware.d.ts.map +1 -0
  301. package/src/middleware/SecurityMiddleware.js +106 -0
  302. package/src/middleware/index.d.ts +9 -0
  303. package/src/middleware/index.d.ts.map +1 -0
  304. package/src/middleware/index.js +8 -0
  305. package/src/node-singletons/child-process.d.ts +7 -0
  306. package/src/node-singletons/child-process.d.ts.map +1 -0
  307. package/src/node-singletons/child-process.js +6 -0
  308. package/src/node-singletons/crypto.d.ts +7 -0
  309. package/src/node-singletons/crypto.d.ts.map +1 -0
  310. package/src/node-singletons/crypto.js +6 -0
  311. package/src/node-singletons/events.d.ts +7 -0
  312. package/src/node-singletons/events.d.ts.map +1 -0
  313. package/src/node-singletons/events.js +6 -0
  314. package/src/node-singletons/fs.d.ts +12 -0
  315. package/src/node-singletons/fs.d.ts.map +1 -0
  316. package/src/node-singletons/fs.js +14 -0
  317. package/src/node-singletons/http.d.ts +8 -0
  318. package/src/node-singletons/http.d.ts.map +1 -0
  319. package/src/node-singletons/http.js +6 -0
  320. package/src/node-singletons/index.d.ts +30 -0
  321. package/src/node-singletons/index.d.ts.map +1 -0
  322. package/src/node-singletons/index.js +31 -0
  323. package/src/node-singletons/os.d.ts +9 -0
  324. package/src/node-singletons/os.d.ts.map +1 -0
  325. package/src/node-singletons/os.js +9 -0
  326. package/src/node-singletons/path.d.ts +7 -0
  327. package/src/node-singletons/path.d.ts.map +1 -0
  328. package/src/node-singletons/path.js +6 -0
  329. package/src/node-singletons/perf-hooks.d.ts +7 -0
  330. package/src/node-singletons/perf-hooks.d.ts.map +1 -0
  331. package/src/node-singletons/perf-hooks.js +6 -0
  332. package/src/node-singletons/readline.d.ts +10 -0
  333. package/src/node-singletons/readline.d.ts.map +1 -0
  334. package/src/node-singletons/readline.js +9 -0
  335. package/src/node-singletons/url.d.ts +7 -0
  336. package/src/node-singletons/url.d.ts.map +1 -0
  337. package/src/node-singletons/url.js +6 -0
  338. package/src/orm/ConnectionManager.d.ts +118 -0
  339. package/src/orm/ConnectionManager.d.ts.map +1 -0
  340. package/src/orm/ConnectionManager.js +401 -0
  341. package/src/orm/Database.d.ts +31 -0
  342. package/src/orm/Database.d.ts.map +1 -0
  343. package/src/orm/Database.js +163 -0
  344. package/src/orm/DatabaseAdapter.d.ts +96 -0
  345. package/src/orm/DatabaseAdapter.d.ts.map +1 -0
  346. package/src/orm/DatabaseAdapter.js +40 -0
  347. package/src/orm/Model.d.ts +91 -0
  348. package/src/orm/Model.d.ts.map +1 -0
  349. package/src/orm/Model.js +206 -0
  350. package/src/orm/QueryBuilder.d.ts +52 -0
  351. package/src/orm/QueryBuilder.d.ts.map +1 -0
  352. package/src/orm/QueryBuilder.js +134 -0
  353. package/src/orm/Relationships.d.ts +53 -0
  354. package/src/orm/Relationships.d.ts.map +1 -0
  355. package/src/orm/Relationships.js +98 -0
  356. package/src/orm/Schema.d.ts +123 -0
  357. package/src/orm/Schema.d.ts.map +1 -0
  358. package/src/orm/Schema.js +169 -0
  359. package/src/orm/adapters/D1Adapter.d.ts +15 -0
  360. package/src/orm/adapters/D1Adapter.d.ts.map +1 -0
  361. package/src/orm/adapters/D1Adapter.js +125 -0
  362. package/src/orm/adapters/MySQLAdapter.d.ts +16 -0
  363. package/src/orm/adapters/MySQLAdapter.d.ts.map +1 -0
  364. package/src/orm/adapters/MySQLAdapter.js +87 -0
  365. package/src/orm/adapters/PostgreSQLAdapter.d.ts +16 -0
  366. package/src/orm/adapters/PostgreSQLAdapter.d.ts.map +1 -0
  367. package/src/orm/adapters/PostgreSQLAdapter.js +87 -0
  368. package/src/orm/adapters/SQLServerAdapter.d.ts +16 -0
  369. package/src/orm/adapters/SQLServerAdapter.d.ts.map +1 -0
  370. package/src/orm/adapters/SQLServerAdapter.js +81 -0
  371. package/src/orm/adapters/SQLiteAdapter.d.ts +11 -0
  372. package/src/orm/adapters/SQLiteAdapter.d.ts.map +1 -0
  373. package/src/orm/adapters/SQLiteAdapter.js +131 -0
  374. package/src/performance/Benchmark.d.ts +87 -0
  375. package/src/performance/Benchmark.d.ts.map +1 -0
  376. package/src/performance/Benchmark.js +304 -0
  377. package/src/performance/CodeGenerationBenchmark.d.ts +23 -0
  378. package/src/performance/CodeGenerationBenchmark.d.ts.map +1 -0
  379. package/src/performance/CodeGenerationBenchmark.js +249 -0
  380. package/src/performance/Optimizer.d.ts +99 -0
  381. package/src/performance/Optimizer.d.ts.map +1 -0
  382. package/src/performance/Optimizer.js +396 -0
  383. package/src/performance/establish-baseline.d.ts +9 -0
  384. package/src/performance/establish-baseline.d.ts.map +1 -0
  385. package/src/performance/establish-baseline.js +55 -0
  386. package/src/profiling/MemoryProfiler.d.ts +32 -0
  387. package/src/profiling/MemoryProfiler.d.ts.map +1 -0
  388. package/src/profiling/MemoryProfiler.js +84 -0
  389. package/src/profiling/N1Detector.d.ts +16 -0
  390. package/src/profiling/N1Detector.d.ts.map +1 -0
  391. package/src/profiling/N1Detector.js +120 -0
  392. package/src/profiling/QueryLogger.d.ts +107 -0
  393. package/src/profiling/QueryLogger.d.ts.map +1 -0
  394. package/src/profiling/QueryLogger.js +148 -0
  395. package/src/profiling/RequestProfiler.d.ts +30 -0
  396. package/src/profiling/RequestProfiler.d.ts.map +1 -0
  397. package/src/profiling/RequestProfiler.js +94 -0
  398. package/src/profiling/types.d.ts +77 -0
  399. package/src/profiling/types.d.ts.map +1 -0
  400. package/src/profiling/types.js +5 -0
  401. package/src/routing/Router.d.ts +52 -0
  402. package/src/routing/Router.d.ts.map +1 -0
  403. package/src/routing/Router.js +191 -0
  404. package/src/runtime/PluginManager.d.ts +30 -0
  405. package/src/runtime/PluginManager.d.ts.map +1 -0
  406. package/src/runtime/PluginManager.js +197 -0
  407. package/src/runtime/PluginRegistry.d.ts +22 -0
  408. package/src/runtime/PluginRegistry.d.ts.map +1 -0
  409. package/src/runtime/PluginRegistry.js +93 -0
  410. package/src/runtime/RuntimeAdapter.d.ts +126 -0
  411. package/src/runtime/RuntimeAdapter.d.ts.map +1 -0
  412. package/src/runtime/RuntimeAdapter.js +127 -0
  413. package/src/runtime/RuntimeDetector.d.ts +15 -0
  414. package/src/runtime/RuntimeDetector.d.ts.map +1 -0
  415. package/src/runtime/RuntimeDetector.js +219 -0
  416. package/src/runtime/adapters/CloudflareAdapter.d.ts +43 -0
  417. package/src/runtime/adapters/CloudflareAdapter.d.ts.map +1 -0
  418. package/src/runtime/adapters/CloudflareAdapter.js +175 -0
  419. package/src/runtime/adapters/DenoAdapter.d.ts +30 -0
  420. package/src/runtime/adapters/DenoAdapter.d.ts.map +1 -0
  421. package/src/runtime/adapters/DenoAdapter.js +191 -0
  422. package/src/runtime/adapters/FargateAdapter.d.ts +40 -0
  423. package/src/runtime/adapters/FargateAdapter.d.ts.map +1 -0
  424. package/src/runtime/adapters/FargateAdapter.js +156 -0
  425. package/src/runtime/adapters/LambdaAdapter.d.ts +13 -0
  426. package/src/runtime/adapters/LambdaAdapter.d.ts.map +1 -0
  427. package/src/runtime/adapters/LambdaAdapter.js +302 -0
  428. package/src/runtime/adapters/NodeServerAdapter.d.ts +16 -0
  429. package/src/runtime/adapters/NodeServerAdapter.d.ts.map +1 -0
  430. package/src/runtime/adapters/NodeServerAdapter.js +199 -0
  431. package/src/scripts/TemplateSync.d.ts +7 -0
  432. package/src/scripts/TemplateSync.d.ts.map +1 -0
  433. package/src/scripts/TemplateSync.js +234 -0
  434. package/src/security/CsrfTokenManager.d.ts +28 -0
  435. package/src/security/CsrfTokenManager.d.ts.map +1 -0
  436. package/src/security/CsrfTokenManager.js +78 -0
  437. package/src/security/Encryptor.d.ts +15 -0
  438. package/src/security/Encryptor.d.ts.map +1 -0
  439. package/src/security/Encryptor.js +142 -0
  440. package/src/security/JwtManager.d.ts +41 -0
  441. package/src/security/JwtManager.d.ts.map +1 -0
  442. package/src/security/JwtManager.js +229 -0
  443. package/src/security/UrlValidator.d.ts +21 -0
  444. package/src/security/UrlValidator.d.ts.map +1 -0
  445. package/src/security/UrlValidator.js +42 -0
  446. package/src/security/XssProtection.d.ts +24 -0
  447. package/src/security/XssProtection.d.ts.map +1 -0
  448. package/src/security/XssProtection.js +133 -0
  449. package/src/templates/TemplateRegistry.d.ts +40 -0
  450. package/src/templates/TemplateRegistry.d.ts.map +1 -0
  451. package/src/templates/TemplateRegistry.js +78 -0
  452. package/src/templates/TemplateRegistry.ts +91 -0
  453. package/src/templates/adapters/MySQLAdapter.ts.tpl +97 -0
  454. package/src/templates/adapters/PostgreSQLAdapter.ts.tpl +101 -0
  455. package/src/templates/adapters/SQLServerAdapter.ts.tpl +95 -0
  456. package/src/templates/adapters/SQLiteAdapter.ts.tpl +189 -0
  457. package/src/templates/features/Auth.ts.tpl +40 -0
  458. package/src/templates/features/Queue.ts.tpl +75 -0
  459. package/src/templates/project/basic/.env.example.tpl +26 -0
  460. package/src/templates/project/basic/.env.tpl +164 -0
  461. package/src/templates/project/basic/README.md.tpl +13 -0
  462. package/src/templates/project/basic/app/Controllers/UserController.ts.tpl +155 -0
  463. package/src/templates/project/basic/app/Middleware/ProfilerMiddleware.ts.tpl +55 -0
  464. package/src/templates/project/basic/app/Middleware/index.ts.tpl +304 -0
  465. package/src/templates/project/basic/app/Models/Post.ts.tpl +30 -0
  466. package/src/templates/project/basic/app/Models/User.ts.tpl +53 -0
  467. package/src/templates/project/basic/config/SecretsManager.ts.tpl +453 -0
  468. package/src/templates/project/basic/config/app.ts.tpl +97 -0
  469. package/src/templates/project/basic/config/cache.ts.tpl +117 -0
  470. package/src/templates/project/basic/config/constants.ts.tpl +70 -0
  471. package/src/templates/project/basic/config/database.ts.tpl +152 -0
  472. package/src/templates/project/basic/config/env.ts.tpl +148 -0
  473. package/src/templates/project/basic/config/features.ts.tpl +57 -0
  474. package/src/templates/project/basic/config/index.ts.tpl +36 -0
  475. package/src/templates/project/basic/config/logger.ts.tpl +95 -0
  476. package/src/templates/project/basic/config/microservices.ts.tpl +104 -0
  477. package/src/templates/project/basic/config/queue.ts.tpl +134 -0
  478. package/src/templates/project/basic/config/security.ts.tpl +149 -0
  479. package/src/templates/project/basic/config/storage.ts.tpl +136 -0
  480. package/src/templates/project/basic/database/factories/.gitkeep.tpl +0 -0
  481. package/src/templates/project/basic/database/migrations/.gitkeep.tpl +0 -0
  482. package/src/templates/project/basic/database/migrations/index.ts.tpl +2 -0
  483. package/src/templates/project/basic/database/seeders/.gitkeep.tpl +0 -0
  484. package/src/templates/project/basic/package.json.tpl +22 -0
  485. package/src/templates/project/basic/routes/api.ts.tpl +135 -0
  486. package/src/templates/project/basic/src/index.ts.tpl +49 -0
  487. package/src/templates/project/basic/template.json +17 -0
  488. package/src/templates/project/basic/tsconfig.json.tpl +20 -0
  489. package/src/validation/ValidationError.d.ts +42 -0
  490. package/src/validation/ValidationError.d.ts.map +1 -0
  491. package/src/validation/ValidationError.js +53 -0
  492. package/src/validation/Validator.d.ts +60 -0
  493. package/src/validation/Validator.d.ts.map +1 -0
  494. package/src/validation/Validator.js +190 -0
@@ -0,0 +1,122 @@
1
+ /**
2
+ * Unified Secrets Management Layer
3
+ * Abstracts secrets retrieval across different cloud platforms
4
+ * Supports: AWS Secrets Manager, Parameter Store, Cloudflare KV, Deno env
5
+ */
6
+ export interface CloudflareKV {
7
+ get(key: string): Promise<string | null>;
8
+ put(key: string, value: string, options?: {
9
+ expirationTtl?: number;
10
+ }): Promise<void>;
11
+ delete(key: string): Promise<void>;
12
+ list(options?: {
13
+ prefix?: string;
14
+ }): Promise<{
15
+ keys: {
16
+ name: string;
17
+ }[];
18
+ }>;
19
+ }
20
+ export interface SecretConfig {
21
+ platform: 'aws' | 'cloudflare' | 'deno' | 'local';
22
+ region?: string;
23
+ kv?: CloudflareKV;
24
+ }
25
+ export interface SecretValue {
26
+ key: string;
27
+ value: string;
28
+ expiresAt?: number;
29
+ rotationEnabled?: boolean;
30
+ }
31
+ interface SecretsManagerInstance {
32
+ getSecret(key: string, options?: GetSecretOptions): Promise<string>;
33
+ setSecret(key: string, value: string, options?: SetSecretOptions): Promise<void>;
34
+ deleteSecret(key: string): Promise<void>;
35
+ rotateSecret(key: string): Promise<void>;
36
+ listSecrets(pattern?: string): Promise<string[]>;
37
+ clearCache(key?: string): void;
38
+ }
39
+ /**
40
+ * SecretsManager - Unified interface for retrieving secrets
41
+ * Sealed namespace for immutability
42
+ */
43
+ export declare const SecretsManager: Readonly<{
44
+ /**
45
+ * Get or create singleton instance
46
+ */
47
+ getInstance(config?: SecretConfig): SecretsManagerInstance;
48
+ /**
49
+ * Get secret value from appropriate backend
50
+ */
51
+ getSecret(key: string, options?: GetSecretOptions): Promise<string>;
52
+ /**
53
+ * Set secret value
54
+ */
55
+ setSecret(key: string, value: string, options?: SetSecretOptions): Promise<void>;
56
+ /**
57
+ * Delete secret
58
+ */
59
+ deleteSecret(key: string): Promise<void>;
60
+ /**
61
+ * Rotate secret (trigger new secret generation)
62
+ */
63
+ rotateSecret(key: string): Promise<void>;
64
+ /**
65
+ * Get all secrets matching pattern
66
+ */
67
+ listSecrets(pattern?: string): Promise<string[]>;
68
+ /**
69
+ * Clear cache (useful after rotation)
70
+ */
71
+ clearCache(key?: string): void;
72
+ }>;
73
+ /**
74
+ * Predefined secret keys
75
+ * Sealed namespace for immutability
76
+ */
77
+ export declare const SECRETS: Readonly<{
78
+ readonly DB_USERNAME: "db/username";
79
+ readonly DB_PASSWORD: "db/password";
80
+ readonly DB_HOST: "db/host";
81
+ readonly DB_PORT: "db/port";
82
+ readonly DB_DATABASE: "db/database";
83
+ readonly JWT_SECRET: "jwt/secret";
84
+ readonly JWT_REFRESH_SECRET: "jwt/refresh-secret";
85
+ readonly ENCRYPTION_KEY: "encryption/key";
86
+ readonly ENCRYPTION_IV: "encryption/iv";
87
+ readonly STRIPE_API_KEY: "stripe/api-key";
88
+ readonly STRIPE_WEBHOOK_SECRET: "stripe/webhook-secret";
89
+ readonly SENDGRID_API_KEY: "sendgrid/api-key";
90
+ readonly GITHUB_TOKEN: "github/token";
91
+ readonly SESSION_SECRET: "session/secret";
92
+ readonly CSRF_SECRET: "csrf/secret";
93
+ }>;
94
+ export interface GetSecretOptions {
95
+ cacheTtl?: number;
96
+ throwIfMissing?: boolean;
97
+ }
98
+ export interface SetSecretOptions {
99
+ expirationTtl?: number;
100
+ metadata?: Record<string, unknown>;
101
+ }
102
+ /**
103
+ * Helper to get database credentials using secrets manager
104
+ */
105
+ export declare function getDatabaseCredentials(): Promise<DatabaseCredentials>;
106
+ /**
107
+ * Helper to get JWT secrets
108
+ */
109
+ export declare function getJwtSecrets(): Promise<JwtSecrets>;
110
+ export interface DatabaseCredentials {
111
+ username: string;
112
+ password: string;
113
+ host: string;
114
+ port: number;
115
+ database: string;
116
+ }
117
+ export interface JwtSecrets {
118
+ secret: string;
119
+ refreshSecret: string;
120
+ }
121
+ export {};
122
+ //# sourceMappingURL=SecretsManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SecretsManager.d.ts","sourceRoot":"","sources":["../../../src/config/SecretsManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,328 @@
1
+ /**
2
+ * Unified Secrets Management Layer
3
+ * Abstracts secrets retrieval across different cloud platforms
4
+ * Supports: AWS Secrets Manager, Parameter Store, Cloudflare KV, Deno env
5
+ */
6
+ import { Logger } from './logger';
7
+ import { ErrorFactory } from '../exceptions/ZintrustError';
8
+ let instance;
9
+ /**
10
+ * Get secret value from appropriate backend
11
+ */
12
+ async function runGetSecret(config, cache, key, options) {
13
+ // Check cache first
14
+ const cached = cache.get(key);
15
+ if (cached !== undefined && cached.expiresAt > Date.now()) {
16
+ return cached.value;
17
+ }
18
+ let value;
19
+ switch (config.platform) {
20
+ case 'aws':
21
+ value = await getFromAWSSecretsManager(key);
22
+ break;
23
+ case 'cloudflare':
24
+ value = await getFromCloudflareKV(config, key);
25
+ break;
26
+ case 'deno':
27
+ value = await getFromDenoEnv(key);
28
+ break;
29
+ case 'local':
30
+ default:
31
+ value = await getFromEnv(key);
32
+ }
33
+ // Cache the value
34
+ const ttl = options?.cacheTtl ?? 3600000; // 1 hour default
35
+ cache.set(key, {
36
+ value,
37
+ expiresAt: Date.now() + ttl,
38
+ });
39
+ return value;
40
+ }
41
+ /**
42
+ * Set secret value
43
+ */
44
+ async function runSetSecret(config, cache, key, value, options) {
45
+ switch (config.platform) {
46
+ case 'aws':
47
+ await setInAWSSecretsManager(key, value, options);
48
+ break;
49
+ case 'cloudflare':
50
+ await setInCloudflareKV(config, key, value, options);
51
+ break;
52
+ case 'deno':
53
+ throw ErrorFactory.createConfigError('Cannot set secrets in Deno environment');
54
+ case 'local':
55
+ default:
56
+ throw ErrorFactory.createConfigError('Cannot set secrets in local environment');
57
+ }
58
+ // Invalidate cache
59
+ cache.delete(key);
60
+ }
61
+ /**
62
+ * Delete secret
63
+ */
64
+ async function runDeleteSecret(config, cache, key) {
65
+ switch (config.platform) {
66
+ case 'aws':
67
+ await deleteFromAWSSecretsManager(key);
68
+ break;
69
+ case 'cloudflare':
70
+ await deleteFromCloudflareKV(config, key);
71
+ break;
72
+ case 'deno':
73
+ case 'local':
74
+ default:
75
+ throw ErrorFactory.createConfigError('Cannot delete secrets in this environment');
76
+ }
77
+ // Invalidate cache
78
+ cache.delete(key);
79
+ }
80
+ /**
81
+ * SecretsManager implementation
82
+ * Refactored to Functional Object pattern
83
+ */
84
+ const SecretsManagerImpl = {
85
+ /**
86
+ * Create a new secrets manager instance
87
+ */
88
+ create(config) {
89
+ const cache = new Map();
90
+ return {
91
+ /**
92
+ * Get secret value from appropriate backend
93
+ */
94
+ async getSecret(key, options) {
95
+ return runGetSecret(config, cache, key, options);
96
+ },
97
+ /**
98
+ * Set secret value
99
+ */
100
+ async setSecret(key, value, options) {
101
+ return runSetSecret(config, cache, key, value, options);
102
+ },
103
+ /**
104
+ * Delete secret
105
+ */
106
+ async deleteSecret(key) {
107
+ return runDeleteSecret(config, cache, key);
108
+ },
109
+ /**
110
+ * Rotate secret (trigger new secret generation)
111
+ */
112
+ async rotateSecret(_key) {
113
+ if (config.platform === 'aws') {
114
+ // AWS Secrets Manager supports automatic rotation
115
+ throw ErrorFactory.createConfigError('Secret rotation not implemented');
116
+ }
117
+ throw ErrorFactory.createConfigError('Secret rotation not supported on this platform');
118
+ },
119
+ /**
120
+ * Get all secrets matching pattern
121
+ */
122
+ async listSecrets(pattern) {
123
+ switch (config.platform) {
124
+ case 'aws':
125
+ return listFromAWSSecretsManager(pattern);
126
+ case 'cloudflare':
127
+ return listFromCloudflareKV(config, pattern);
128
+ case 'deno':
129
+ case 'local':
130
+ default:
131
+ return [];
132
+ }
133
+ },
134
+ /**
135
+ * Clear cache (useful after rotation)
136
+ */
137
+ clearCache(key) {
138
+ if (key === undefined) {
139
+ cache.clear();
140
+ }
141
+ else {
142
+ cache.delete(key);
143
+ }
144
+ },
145
+ };
146
+ },
147
+ };
148
+ /**
149
+ * AWS Secrets Manager integration
150
+ */
151
+ async function getFromAWSSecretsManager(key) {
152
+ try {
153
+ Logger.debug(`[AWS] Getting secret: ${key}`);
154
+ throw ErrorFactory.createConfigError('AWS SDK not available in core - use wrapper module');
155
+ }
156
+ catch (error) {
157
+ throw ErrorFactory.createTryCatchError(`Failed to retrieve secret from AWS: ${error.message}`, error);
158
+ }
159
+ }
160
+ async function setInAWSSecretsManager(key, _value, _options) {
161
+ Logger.info(`[AWS] Setting secret: ${key}`);
162
+ throw ErrorFactory.createConfigError('AWS SDK not available in core - use wrapper module');
163
+ }
164
+ async function deleteFromAWSSecretsManager(key) {
165
+ Logger.info(`[AWS] Deleting secret: ${key}`);
166
+ throw ErrorFactory.createConfigError('AWS SDK not available in core - use wrapper module');
167
+ }
168
+ async function listFromAWSSecretsManager(pattern) {
169
+ Logger.info(`[AWS] Listing secrets with pattern: ${pattern ?? '*'}`);
170
+ return [];
171
+ }
172
+ /**
173
+ * Cloudflare KV integration
174
+ */
175
+ async function getFromCloudflareKV(config, key) {
176
+ if (config.kv === undefined) {
177
+ throw ErrorFactory.createConfigError('Cloudflare KV namespace not configured');
178
+ }
179
+ const value = await config.kv.get(key);
180
+ if (value === null || value === '') {
181
+ throw ErrorFactory.createNotFoundError(`Secret not found: ${key}`, { key });
182
+ }
183
+ return value;
184
+ }
185
+ async function setInCloudflareKV(config, key, value, options) {
186
+ if (config.kv === undefined) {
187
+ throw ErrorFactory.createConfigError('Cloudflare KV namespace not configured');
188
+ }
189
+ const ttl = options?.expirationTtl;
190
+ await config.kv.put(key, value, { expirationTtl: ttl });
191
+ }
192
+ async function deleteFromCloudflareKV(config, key) {
193
+ if (config.kv === undefined) {
194
+ throw ErrorFactory.createConfigError('Cloudflare KV namespace not configured');
195
+ }
196
+ await config.kv.delete(key);
197
+ }
198
+ async function listFromCloudflareKV(config, pattern) {
199
+ if (config.kv === undefined) {
200
+ throw ErrorFactory.createConfigError('Cloudflare KV namespace not configured');
201
+ }
202
+ const result = await config.kv.list({ prefix: pattern });
203
+ return result.keys.map((k) => k.name);
204
+ }
205
+ /**
206
+ * Deno environment integration
207
+ */
208
+ async function getFromDenoEnv(key) {
209
+ const value = globalThis['Deno']?.env?.get?.(key);
210
+ if (value === undefined || value === null || value === '') {
211
+ throw ErrorFactory.createNotFoundError(`Secret not found: ${key}`, { key });
212
+ }
213
+ return value;
214
+ }
215
+ /**
216
+ * Local environment variables (Node.js)
217
+ */
218
+ async function getFromEnv(key) {
219
+ const value = process.env[key];
220
+ if (value === undefined || value === null || value === '') {
221
+ throw ErrorFactory.createNotFoundError(`Secret not found: ${key}`, { key });
222
+ }
223
+ return value;
224
+ }
225
+ /**
226
+ * SecretsManager - Unified interface for retrieving secrets
227
+ * Sealed namespace for immutability
228
+ */
229
+ export const SecretsManager = Object.freeze({
230
+ /**
231
+ * Get or create singleton instance
232
+ */
233
+ getInstance(config) {
234
+ if (instance === undefined && config !== undefined) {
235
+ instance = SecretsManagerImpl.create(config);
236
+ }
237
+ if (instance === undefined) {
238
+ throw ErrorFactory.createConfigError('SecretsManager not initialized. Call getInstance(config) first.');
239
+ }
240
+ return instance;
241
+ },
242
+ /**
243
+ * Get secret value from appropriate backend
244
+ */
245
+ async getSecret(key, options) {
246
+ return this.getInstance().getSecret(key, options);
247
+ },
248
+ /**
249
+ * Set secret value
250
+ */
251
+ async setSecret(key, value, options) {
252
+ return this.getInstance().setSecret(key, value, options);
253
+ },
254
+ /**
255
+ * Delete secret
256
+ */
257
+ async deleteSecret(key) {
258
+ return this.getInstance().deleteSecret(key);
259
+ },
260
+ /**
261
+ * Rotate secret (trigger new secret generation)
262
+ */
263
+ async rotateSecret(key) {
264
+ return this.getInstance().rotateSecret(key);
265
+ },
266
+ /**
267
+ * Get all secrets matching pattern
268
+ */
269
+ async listSecrets(pattern) {
270
+ return this.getInstance().listSecrets(pattern);
271
+ },
272
+ /**
273
+ * Clear cache (useful after rotation)
274
+ */
275
+ clearCache(key) {
276
+ this.getInstance().clearCache(key);
277
+ },
278
+ });
279
+ /**
280
+ * Predefined secret keys
281
+ * Sealed namespace for immutability
282
+ */
283
+ export const SECRETS = Object.freeze({
284
+ // Database credentials
285
+ DB_USERNAME: 'db/username',
286
+ // Secret identifier only (not a credential value)
287
+ DB_PASSWORD: 'db/password', // NOSONAR (typescript:S2068) - secret key name, not hardcoded password
288
+ DB_HOST: 'db/host',
289
+ DB_PORT: 'db/port',
290
+ DB_DATABASE: 'db/database',
291
+ // API keys
292
+ JWT_SECRET: 'jwt/secret',
293
+ JWT_REFRESH_SECRET: 'jwt/refresh-secret',
294
+ // Encryption
295
+ ENCRYPTION_KEY: 'encryption/key',
296
+ ENCRYPTION_IV: 'encryption/iv',
297
+ // Third-party APIs
298
+ STRIPE_API_KEY: 'stripe/api-key',
299
+ STRIPE_WEBHOOK_SECRET: 'stripe/webhook-secret',
300
+ SENDGRID_API_KEY: 'sendgrid/api-key',
301
+ GITHUB_TOKEN: 'github/token',
302
+ // Session/CSRF
303
+ SESSION_SECRET: 'session/secret',
304
+ CSRF_SECRET: 'csrf/secret',
305
+ });
306
+ /**
307
+ * Helper to get database credentials using secrets manager
308
+ */
309
+ export async function getDatabaseCredentials() {
310
+ const manager = SecretsManager.getInstance();
311
+ return {
312
+ username: await manager.getSecret(SECRETS.DB_USERNAME),
313
+ password: await manager.getSecret(SECRETS.DB_PASSWORD),
314
+ host: await manager.getSecret(SECRETS.DB_HOST),
315
+ port: Number.parseInt(await manager.getSecret(SECRETS.DB_PORT), 10),
316
+ database: await manager.getSecret(SECRETS.DB_DATABASE),
317
+ };
318
+ }
319
+ /**
320
+ * Helper to get JWT secrets
321
+ */
322
+ export async function getJwtSecrets() {
323
+ const manager = SecretsManager.getInstance();
324
+ return {
325
+ secret: await manager.getSecret(SECRETS.JWT_SECRET),
326
+ refreshSecret: await manager.getSecret(SECRETS.JWT_REFRESH_SECRET),
327
+ };
328
+ }
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Application Configuration
3
+ * Core application settings
4
+ * Sealed namespace for immutability
5
+ */
6
+ declare const getSafeEnv: () => NodeJS.ProcessEnv;
7
+ export declare const appConfig: Readonly<{
8
+ /**
9
+ * Application name
10
+ */
11
+ readonly name: string;
12
+ /**
13
+ * Application environment
14
+ */
15
+ readonly environment: "development" | "production" | "testing";
16
+ /**
17
+ * Application port
18
+ */
19
+ readonly port: number;
20
+ /**
21
+ * Application host
22
+ */
23
+ readonly host: string;
24
+ /**
25
+ * Is development environment
26
+ */
27
+ readonly isDevelopment: () => boolean;
28
+ /**
29
+ * Is production environment
30
+ */
31
+ readonly isProduction: () => boolean;
32
+ /**
33
+ * Is testing environment
34
+ */
35
+ readonly isTesting: () => boolean;
36
+ /**
37
+ * Application debug mode
38
+ */
39
+ readonly debug: boolean;
40
+ /**
41
+ * Application timezone
42
+ */
43
+ readonly timezone: string;
44
+ /**
45
+ * Request timeout (milliseconds)
46
+ */
47
+ readonly requestTimeout: number;
48
+ /**
49
+ * Max request body size
50
+ */
51
+ readonly maxBodySize: string;
52
+ readonly getSafeEnv: () => NodeJS.ProcessEnv;
53
+ }>;
54
+ export { getSafeEnv };
55
+ export type AppConfig = typeof appConfig;
56
+ //# sourceMappingURL=app.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../../src/config/app.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,QAAA,MAAM,UAAU,QAAO,MAAM,CAAC,UAkB7B,CAAC;AAmEF,eAAO,MAAM,SAAS;IAhEpB;;OAEG;;IAGH;;OAEG;0BAC0B,aAAa,GAAG,YAAY,GAAG,SAAS;IAErE;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;kCACc,OAAO;IAIxB;;OAEG;iCACa,OAAO;IAIvB;;OAEG;8BACU,OAAO;IAIpB;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;+BA/EkB,MAAM,CAAC,UAAU;EAqFY,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,CAAC;AAEtB,MAAM,MAAM,SAAS,GAAG,OAAO,SAAS,CAAC"}
@@ -0,0 +1,77 @@
1
+ /**
2
+ * Application Configuration
3
+ * Core application settings
4
+ * Sealed namespace for immutability
5
+ */
6
+ import { Env } from './env';
7
+ const getSafeEnv = () => {
8
+ const baseEnv = typeof process === 'undefined' ? {} : process.env;
9
+ return {
10
+ ...baseEnv,
11
+ // Ensure required keys exist (env.d.ts augments ProcessEnv with required fields)
12
+ NODE_ENV: baseEnv.NODE_ENV ?? Env.NODE_ENV,
13
+ USE_RAW_QRY: baseEnv.USE_RAW_QRY ?? (Env.get('USE_RAW_QRY') || undefined),
14
+ SERVICE_API_KEY: baseEnv.SERVICE_API_KEY ?? Env.get('SERVICE_API_KEY', ''),
15
+ SERVICE_JWT_SECRET: baseEnv.SERVICE_JWT_SECRET ?? Env.get('SERVICE_JWT_SECRET', ''),
16
+ BASE_URL: baseEnv.BASE_URL ?? Env.get('BASE_URL', ''),
17
+ MODE: baseEnv.MODE ?? Env.get('MODE', ''),
18
+ // Hardening for child-process usage
19
+ PATH: Env.SAFE_PATH,
20
+ npm_config_scripts_prepend_node_path: 'true',
21
+ };
22
+ };
23
+ const appConfigObj = {
24
+ /**
25
+ * Application name
26
+ */
27
+ name: Env.APP_NAME,
28
+ /**
29
+ * Application environment
30
+ */
31
+ environment: Env.NODE_ENV,
32
+ /**
33
+ * Application port
34
+ */
35
+ port: Env.PORT,
36
+ /**
37
+ * Application host
38
+ */
39
+ host: Env.HOST,
40
+ /**
41
+ * Is development environment
42
+ */
43
+ isDevelopment() {
44
+ return this.environment === 'development';
45
+ },
46
+ /**
47
+ * Is production environment
48
+ */
49
+ isProduction() {
50
+ return this.environment === 'production';
51
+ },
52
+ /**
53
+ * Is testing environment
54
+ */
55
+ isTesting() {
56
+ return this.environment === 'testing';
57
+ },
58
+ /**
59
+ * Application debug mode
60
+ */
61
+ debug: Env.DEBUG,
62
+ /**
63
+ * Application timezone
64
+ */
65
+ timezone: Env.get('APP_TIMEZONE', 'UTC'),
66
+ /**
67
+ * Request timeout (milliseconds)
68
+ */
69
+ requestTimeout: Env.getInt('REQUEST_TIMEOUT', 30000),
70
+ /**
71
+ * Max request body size
72
+ */
73
+ maxBodySize: Env.get('MAX_BODY_SIZE', '10mb'),
74
+ getSafeEnv,
75
+ };
76
+ export const appConfig = Object.freeze(appConfigObj);
77
+ export { getSafeEnv };
@@ -0,0 +1,76 @@
1
+ /**
2
+ * Cache Configuration
3
+ * Caching drivers and settings
4
+ * Sealed namespace for immutability
5
+ */
6
+ type MemoryCacheDriverConfig = {
7
+ driver: 'memory';
8
+ ttl: number;
9
+ };
10
+ type RedisCacheDriverConfig = {
11
+ driver: 'redis';
12
+ host: string;
13
+ port: number;
14
+ password: string | undefined;
15
+ database: number;
16
+ ttl: number;
17
+ };
18
+ type MemcachedCacheDriverConfig = {
19
+ driver: 'memcached';
20
+ servers: string[];
21
+ ttl: number;
22
+ };
23
+ type FileCacheDriverConfig = {
24
+ driver: 'file';
25
+ path: string;
26
+ ttl: number;
27
+ };
28
+ type CacheDriverConfig = MemoryCacheDriverConfig | RedisCacheDriverConfig | MemcachedCacheDriverConfig | FileCacheDriverConfig;
29
+ export declare const cacheConfig: Readonly<{
30
+ /**
31
+ * Default cache driver
32
+ */
33
+ default: string;
34
+ /**
35
+ * Cache drivers
36
+ */
37
+ drivers: {
38
+ memory: {
39
+ driver: "memory";
40
+ ttl: number;
41
+ };
42
+ redis: {
43
+ driver: "redis";
44
+ host: string;
45
+ port: number;
46
+ password: string;
47
+ database: number;
48
+ ttl: number;
49
+ };
50
+ memcached: {
51
+ driver: "memcached";
52
+ servers: string[];
53
+ ttl: number;
54
+ };
55
+ file: {
56
+ driver: "file";
57
+ path: string;
58
+ ttl: number;
59
+ };
60
+ };
61
+ /**
62
+ * Get cache driver config
63
+ */
64
+ getDriver(): CacheDriverConfig;
65
+ /**
66
+ * Key prefix for all cache keys
67
+ */
68
+ keyPrefix: string;
69
+ /**
70
+ * Default cache TTL (seconds)
71
+ */
72
+ ttl: number;
73
+ }>;
74
+ export type CacheConfig = typeof cacheConfig;
75
+ export {};
76
+ //# sourceMappingURL=cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../../src/config/cache.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,KAAK,uBAAuB,GAAG;IAC7B,MAAM,EAAE,QAAQ,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,KAAK,sBAAsB,GAAG;IAC5B,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,KAAK,0BAA0B,GAAG;IAChC,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,KAAK,qBAAqB,GAAG;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,KAAK,iBAAiB,GAClB,uBAAuB,GACvB,sBAAsB,GACtB,0BAA0B,GAC1B,qBAAqB,CAAC;AA6E1B,eAAO,MAAM,WAAW;IAnDtB;;OAEG;;IAGH;;OAEG;;;;;;;;;;;;;;;;;;;;;;;;;IA0BH;;OAEG;iBACU,iBAAiB;IAI9B;;OAEG;;IAGH;;OAEG;;EAImD,CAAC;AACzD,MAAM,MAAM,WAAW,GAAG,OAAO,WAAW,CAAC"}