@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,77 @@
1
+ /**
2
+ * Logger utility - Central logging configuration
3
+ * Sealed namespace pattern - all exports through Logger namespace
4
+ * Replaces console.* calls throughout the codebase
5
+ */
6
+ import { Env } from './env';
7
+ const isDevelopment = Env.NODE_ENV === 'development' || Env.NODE_ENV === undefined;
8
+ const isProduction = Env.NODE_ENV === 'production';
9
+ /**
10
+ * Helper to extract error message from unknown error type
11
+ */
12
+ const getErrorMessage = (error) => {
13
+ if (error === undefined) {
14
+ return '';
15
+ }
16
+ if (error instanceof Error) {
17
+ return error.message;
18
+ }
19
+ return String(error);
20
+ };
21
+ // Private helper functions
22
+ const logDebug = (message, data, category) => {
23
+ String(category);
24
+ if (isDevelopment) {
25
+ console.debug(`[DEBUG] ${message}`, data ?? ''); // eslint-disable-line no-console
26
+ }
27
+ };
28
+ const logInfo = (message, data, category) => {
29
+ String(category);
30
+ console.log(`[INFO] ${message}`, data ?? ''); // eslint-disable-line no-console
31
+ };
32
+ const logWarn = (message, data, category) => {
33
+ String(category);
34
+ console.warn(`[WARN] ${message}`, data ?? ''); // eslint-disable-line no-console
35
+ };
36
+ const logError = (message, error, category) => {
37
+ const errorMessage = getErrorMessage(error);
38
+ String(category);
39
+ console.error(`[ERROR] ${message}`, errorMessage); // eslint-disable-line no-console
40
+ };
41
+ const logFatal = (message, error, category) => {
42
+ const errorMessage = getErrorMessage(error);
43
+ String(category);
44
+ console.error(`[FATAL] ${message}`, errorMessage); // eslint-disable-line no-console
45
+ if (isProduction && typeof process !== 'undefined') {
46
+ process.exit(1);
47
+ }
48
+ };
49
+ const createLoggerScope = (scope) => {
50
+ return {
51
+ debug(message, data) {
52
+ logDebug(`[${scope}] ${message}`, data, scope);
53
+ },
54
+ info(message, data) {
55
+ logInfo(`[${scope}] ${message}`, data, scope);
56
+ },
57
+ warn(message, data) {
58
+ logWarn(`[${scope}] ${message}`, data, scope);
59
+ },
60
+ error(message, error) {
61
+ logError(`[${scope}] ${message}`, error, scope);
62
+ },
63
+ fatal(message, error) {
64
+ logFatal(`[${scope}] ${message}`, error, scope);
65
+ },
66
+ };
67
+ };
68
+ // Sealed namespace with all logger functionality
69
+ export const Logger = Object.freeze({
70
+ debug: logDebug,
71
+ info: logInfo,
72
+ warn: logWarn,
73
+ error: logError,
74
+ fatal: logFatal,
75
+ scope: createLoggerScope,
76
+ });
77
+ export default Logger;
@@ -0,0 +1,88 @@
1
+ /**
2
+ * Microservices Configuration
3
+ * Microservices architecture and service discovery settings
4
+ * Sealed namespace for immutability
5
+ */
6
+ export declare const microservicesConfig: Readonly<{
7
+ /**
8
+ * Enable microservices mode
9
+ */
10
+ readonly enabled: boolean;
11
+ /**
12
+ * Enabled services (comma-separated)
13
+ */
14
+ readonly services: string[];
15
+ /**
16
+ * Service discovery
17
+ */
18
+ readonly discovery: {
19
+ readonly type: "filesystem" | "consul" | "etcd";
20
+ readonly servicesPath: string;
21
+ readonly refreshInterval: number;
22
+ };
23
+ /**
24
+ * Service Registry
25
+ */
26
+ readonly registry: {
27
+ readonly host: string;
28
+ readonly port: number;
29
+ readonly deregisterCriticalServiceAfter: string;
30
+ };
31
+ /**
32
+ * Service Authentication
33
+ */
34
+ readonly auth: {
35
+ readonly strategy: "api-key" | "jwt" | "none" | "custom";
36
+ readonly apiKey: string;
37
+ readonly jwtSecret: string;
38
+ };
39
+ /**
40
+ * Request Tracing
41
+ */
42
+ readonly tracing: {
43
+ readonly enabled: boolean;
44
+ readonly samplingRate: number;
45
+ readonly exportInterval: number;
46
+ readonly jaegerEndpoint: string;
47
+ };
48
+ /**
49
+ * Database Isolation
50
+ */
51
+ readonly database: {
52
+ readonly isolation: "shared" | "isolated";
53
+ readonly schema: string;
54
+ };
55
+ /**
56
+ * Service Health Check
57
+ */
58
+ readonly healthCheck: {
59
+ readonly enabled: boolean;
60
+ readonly interval: number;
61
+ readonly timeout: number;
62
+ readonly unhealthyThreshold: number;
63
+ readonly healthyThreshold: number;
64
+ };
65
+ /**
66
+ * Service Communication
67
+ */
68
+ readonly communication: {
69
+ readonly timeout: number;
70
+ readonly retries: number;
71
+ readonly retryDelay: number;
72
+ readonly circuitBreaker: {
73
+ readonly enabled: boolean;
74
+ readonly threshold: number;
75
+ readonly timeout: number;
76
+ };
77
+ };
78
+ /**
79
+ * Service Mesh (Istio/Linkerd support)
80
+ */
81
+ readonly mesh: {
82
+ readonly enabled: boolean;
83
+ readonly type: "istio" | "linkerd";
84
+ readonly namespace: string;
85
+ };
86
+ }>;
87
+ export type MicroservicesConfig = typeof microservicesConfig;
88
+ //# sourceMappingURL=microservices.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"microservices.d.ts","sourceRoot":"","sources":["../../../src/config/microservices.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAiGH,eAAO,MAAM,mBAAmB;IA5F9B;;OAEG;;IAGH;;OAEG;;IAKH;;OAEG;;uBAEwD,YAAY,GAAG,QAAQ,GAAG,MAAM;;;;IAK3F;;OAEG;;;;;;IAOH;;OAEG;;2BAEqD,SAAS,GAAG,KAAK,GAAG,MAAM,GAAG,QAAQ;;;;IAK7F;;OAEG;;;;;;;IAQH;;OAEG;;4BAEqD,QAAQ,GAAG,UAAU;;;IAI7E;;OAEG;;;;;;;;IASH;;OAEG;;;;;;;;;;;IAYH;;OAEG;;;uBAG8C,OAAO,GAAG,SAAS;;;EAKE,CAAC;AAEzE,MAAM,MAAM,mBAAmB,GAAG,OAAO,mBAAmB,CAAC"}
@@ -0,0 +1,90 @@
1
+ /**
2
+ * Microservices Configuration
3
+ * Microservices architecture and service discovery settings
4
+ * Sealed namespace for immutability
5
+ */
6
+ import { Env } from './env';
7
+ const microservicesConfigObj = {
8
+ /**
9
+ * Enable microservices mode
10
+ */
11
+ enabled: Env.getBool('MICROSERVICES', false),
12
+ /**
13
+ * Enabled services (comma-separated)
14
+ */
15
+ services: Env.get('SERVICES', '')
16
+ .split(',')
17
+ .filter((s) => s.trim()),
18
+ /**
19
+ * Service discovery
20
+ */
21
+ discovery: {
22
+ type: Env.get('SERVICE_DISCOVERY_TYPE', 'filesystem'),
23
+ servicesPath: Env.get('SERVICES_PATH', 'services'),
24
+ refreshInterval: Env.getInt('SERVICE_DISCOVERY_REFRESH_INTERVAL', 30000),
25
+ },
26
+ /**
27
+ * Service Registry
28
+ */
29
+ registry: {
30
+ host: Env.get('SERVICE_REGISTRY_HOST', 'localhost'),
31
+ port: Env.getInt('SERVICE_REGISTRY_PORT', 8500),
32
+ deregisterCriticalServiceAfter: Env.get('SERVICE_DEREGISTER_CRITICAL_AFTER', '30s'),
33
+ },
34
+ /**
35
+ * Service Authentication
36
+ */
37
+ auth: {
38
+ strategy: Env.get('SERVICE_AUTH_STRATEGY', 'none'),
39
+ apiKey: Env.get('SERVICE_API_KEY'),
40
+ jwtSecret: Env.get('SERVICE_JWT_SECRET'),
41
+ },
42
+ /**
43
+ * Request Tracing
44
+ */
45
+ tracing: {
46
+ enabled: Env.getBool('MICROSERVICES_TRACING', false),
47
+ samplingRate: Env.getInt('MICROSERVICES_TRACING_RATE', 100) / 100,
48
+ exportInterval: Env.getInt('TRACING_EXPORT_INTERVAL', 10000),
49
+ jaegerEndpoint: Env.get('JAEGER_AGENT_HOST', 'localhost'),
50
+ },
51
+ /**
52
+ * Database Isolation
53
+ */
54
+ database: {
55
+ isolation: Env.get('DATABASE_ISOLATION', 'shared'),
56
+ schema: Env.get('DATABASE_SCHEMA_PREFIX', 'microservice'),
57
+ },
58
+ /**
59
+ * Service Health Check
60
+ */
61
+ healthCheck: {
62
+ enabled: Env.getBool('SERVICE_HEALTH_CHECK_ENABLED', true),
63
+ interval: Env.getInt('SERVICE_HEALTH_CHECK_INTERVAL', 30000),
64
+ timeout: Env.getInt('SERVICE_HEALTH_CHECK_TIMEOUT', 5000),
65
+ unhealthyThreshold: Env.getInt('SERVICE_UNHEALTHY_THRESHOLD', 3),
66
+ healthyThreshold: Env.getInt('SERVICE_HEALTHY_THRESHOLD', 2),
67
+ },
68
+ /**
69
+ * Service Communication
70
+ */
71
+ communication: {
72
+ timeout: Env.getInt('SERVICE_CALL_TIMEOUT', 30000),
73
+ retries: Env.getInt('SERVICE_CALL_RETRIES', 3),
74
+ retryDelay: Env.getInt('SERVICE_CALL_RETRY_DELAY', 1000),
75
+ circuitBreaker: {
76
+ enabled: Env.getBool('CIRCUIT_BREAKER_ENABLED', true),
77
+ threshold: Env.getInt('CIRCUIT_BREAKER_THRESHOLD', 5),
78
+ timeout: Env.getInt('CIRCUIT_BREAKER_TIMEOUT', 60000),
79
+ },
80
+ },
81
+ /**
82
+ * Service Mesh (Istio/Linkerd support)
83
+ */
84
+ mesh: {
85
+ enabled: Env.getBool('SERVICE_MESH_ENABLED', false),
86
+ type: Env.get('SERVICE_MESH_TYPE', 'istio'),
87
+ namespace: Env.get('SERVICE_MESH_NAMESPACE', 'default'),
88
+ },
89
+ };
90
+ export const microservicesConfig = Object.freeze(microservicesConfigObj);
@@ -0,0 +1,107 @@
1
+ /**
2
+ * Queue Configuration
3
+ * Background job and message queue settings
4
+ * Sealed namespace for immutability
5
+ */
6
+ type QueueDriverName = 'sync' | 'database' | 'redis' | 'rabbitmq' | 'sqs';
7
+ type SyncQueueDriverConfig = {
8
+ driver: 'sync';
9
+ };
10
+ type DatabaseQueueDriverConfig = {
11
+ driver: 'database';
12
+ table: string;
13
+ connection: string;
14
+ };
15
+ type RedisQueueDriverConfig = {
16
+ driver: 'redis';
17
+ host: string;
18
+ port: number;
19
+ password?: string;
20
+ database: number;
21
+ };
22
+ type RabbitMqQueueDriverConfig = {
23
+ driver: 'rabbitmq';
24
+ host: string;
25
+ port: number;
26
+ username: string;
27
+ password: string;
28
+ vhost: string;
29
+ };
30
+ type SqsQueueDriverConfig = {
31
+ driver: 'sqs';
32
+ key?: string;
33
+ secret?: string;
34
+ region: string;
35
+ queueUrl?: string;
36
+ };
37
+ type QueueDriversConfig = {
38
+ sync: SyncQueueDriverConfig;
39
+ database: DatabaseQueueDriverConfig;
40
+ redis: RedisQueueDriverConfig;
41
+ rabbitmq: RabbitMqQueueDriverConfig;
42
+ sqs: SqsQueueDriverConfig;
43
+ };
44
+ export declare const queueConfig: Readonly<{
45
+ /**
46
+ * Default queue driver
47
+ */
48
+ default: QueueDriverName;
49
+ /**
50
+ * Queue drivers
51
+ */
52
+ drivers: {
53
+ sync: {
54
+ driver: "sync";
55
+ };
56
+ database: {
57
+ driver: "database";
58
+ table: string;
59
+ connection: string;
60
+ };
61
+ redis: {
62
+ driver: "redis";
63
+ host: string;
64
+ port: number;
65
+ password: string;
66
+ database: number;
67
+ };
68
+ rabbitmq: {
69
+ driver: "rabbitmq";
70
+ host: string;
71
+ port: number;
72
+ username: string;
73
+ password: string;
74
+ vhost: string;
75
+ };
76
+ sqs: {
77
+ driver: "sqs";
78
+ key: string;
79
+ secret: string;
80
+ region: string;
81
+ queueUrl: string;
82
+ };
83
+ };
84
+ /**
85
+ * Get queue driver config
86
+ */
87
+ getDriver(): QueueDriversConfig[QueueDriverName];
88
+ /**
89
+ * Failed jobs table
90
+ */
91
+ failed: {
92
+ database: string;
93
+ table: string;
94
+ };
95
+ /**
96
+ * Job processing
97
+ */
98
+ processing: {
99
+ timeout: number;
100
+ retries: number;
101
+ backoff: number;
102
+ workers: number;
103
+ };
104
+ }>;
105
+ export type QueueConfig = typeof queueConfig;
106
+ export {};
107
+ //# sourceMappingURL=queue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../../../src/config/queue.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,KAAK,eAAe,GAAG,MAAM,GAAG,UAAU,GAAG,OAAO,GAAG,UAAU,GAAG,KAAK,CAAC;AAE1E,KAAK,qBAAqB,GAAG;IAC3B,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,KAAK,yBAAyB,GAAG;IAC/B,MAAM,EAAE,UAAU,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,KAAK,sBAAsB,GAAG;IAC5B,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,KAAK,yBAAyB,GAAG;IAC/B,MAAM,EAAE,UAAU,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,KAAK,oBAAoB,GAAG;IAC1B,MAAM,EAAE,KAAK,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,KAAK,kBAAkB,GAAG;IACxB,IAAI,EAAE,qBAAqB,CAAC;IAC5B,QAAQ,EAAE,yBAAyB,CAAC;IACpC,KAAK,EAAE,sBAAsB,CAAC;IAC9B,QAAQ,EAAE,yBAAyB,CAAC;IACpC,GAAG,EAAE,oBAAoB,CAAC;CAC3B,CAAC;AAgFF,eAAO,MAAM,WAAW;IAnEtB;;OAEG;aACyC,eAAe;IAE3D;;OAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAkCH;;OAEG;iBACU,kBAAkB,CAAC,eAAe,CAAC;IAIhD;;OAEG;;;;;IAMH;;OAEG;;;;;;;EASmD,CAAC;AAEzD,MAAM,MAAM,WAAW,GAAG,OAAO,WAAW,CAAC"}
@@ -0,0 +1,74 @@
1
+ /**
2
+ * Queue Configuration
3
+ * Background job and message queue settings
4
+ * Sealed namespace for immutability
5
+ */
6
+ import { Env } from './env';
7
+ const getQueueDriver = (config) => {
8
+ const driverName = config.default;
9
+ return config.drivers[driverName];
10
+ };
11
+ const queueConfigObj = {
12
+ /**
13
+ * Default queue driver
14
+ */
15
+ default: Env.get('QUEUE_DRIVER', 'sync'),
16
+ /**
17
+ * Queue drivers
18
+ */
19
+ drivers: {
20
+ sync: {
21
+ driver: 'sync',
22
+ },
23
+ database: {
24
+ driver: 'database',
25
+ table: Env.get('QUEUE_TABLE', 'jobs'),
26
+ connection: Env.get('QUEUE_DB_CONNECTION', 'default'),
27
+ },
28
+ redis: {
29
+ driver: 'redis',
30
+ host: Env.get('REDIS_HOST', 'localhost'),
31
+ port: Env.getInt('REDIS_PORT', 6379),
32
+ password: Env.get('REDIS_PASSWORD'),
33
+ database: Env.getInt('REDIS_QUEUE_DB', 1),
34
+ },
35
+ rabbitmq: {
36
+ driver: 'rabbitmq',
37
+ host: Env.get('RABBITMQ_HOST', 'localhost'),
38
+ port: Env.getInt('RABBITMQ_PORT', 5672),
39
+ username: Env.get('RABBITMQ_USER', 'guest'),
40
+ password: Env.get('RABBITMQ_PASSWORD', 'guest'),
41
+ vhost: Env.get('RABBITMQ_VHOST', '/'),
42
+ },
43
+ sqs: {
44
+ driver: 'sqs',
45
+ key: Env.get('AWS_ACCESS_KEY_ID'),
46
+ secret: Env.get('AWS_SECRET_ACCESS_KEY'),
47
+ region: Env.AWS_REGION,
48
+ queueUrl: Env.get('AWS_SQS_QUEUE_URL'),
49
+ },
50
+ },
51
+ /**
52
+ * Get queue driver config
53
+ */
54
+ getDriver() {
55
+ return getQueueDriver(this);
56
+ },
57
+ /**
58
+ * Failed jobs table
59
+ */
60
+ failed: {
61
+ database: Env.get('FAILED_JOBS_DB_CONNECTION', 'default'),
62
+ table: Env.get('FAILED_JOBS_TABLE', 'failed_jobs'),
63
+ },
64
+ /**
65
+ * Job processing
66
+ */
67
+ processing: {
68
+ timeout: Env.getInt('QUEUE_JOB_TIMEOUT', 60),
69
+ retries: Env.getInt('QUEUE_JOB_RETRIES', 3),
70
+ backoff: Env.getInt('QUEUE_JOB_BACKOFF', 0),
71
+ workers: Env.getInt('QUEUE_WORKERS', 1),
72
+ },
73
+ };
74
+ export const queueConfig = Object.freeze(queueConfigObj);
@@ -0,0 +1,108 @@
1
+ /**
2
+ * Security Configuration
3
+ * JWT, CSRF, encryption and other security settings
4
+ * Sealed namespace for immutability
5
+ */
6
+ export declare const securityConfig: Readonly<{
7
+ /**
8
+ * JWT Configuration
9
+ */
10
+ readonly jwt: {
11
+ readonly enabled: boolean;
12
+ readonly secret: string;
13
+ readonly algorithm: "HS256" | "HS512" | "RS256";
14
+ readonly expiresIn: string;
15
+ readonly refreshExpiresIn: string;
16
+ readonly issuer: string;
17
+ readonly audience: string;
18
+ };
19
+ /**
20
+ * CSRF Protection
21
+ */
22
+ readonly csrf: {
23
+ readonly enabled: boolean;
24
+ readonly headerName: string;
25
+ readonly tokenName: string;
26
+ readonly cookieName: string;
27
+ readonly cookieHttpOnly: boolean;
28
+ readonly cookieSecure: boolean;
29
+ readonly cookieSameSite: "strict" | "lax" | "none";
30
+ };
31
+ /**
32
+ * Encryption
33
+ */
34
+ readonly encryption: {
35
+ readonly algorithm: string;
36
+ readonly key: string;
37
+ };
38
+ /**
39
+ * API Key Authentication
40
+ */
41
+ readonly apiKey: {
42
+ readonly enabled: boolean;
43
+ readonly headerName: string;
44
+ readonly secret: string;
45
+ };
46
+ /**
47
+ * CORS Configuration
48
+ */
49
+ readonly cors: {
50
+ readonly enabled: boolean;
51
+ readonly origins: string[];
52
+ readonly methods: string[];
53
+ readonly allowedHeaders: string[];
54
+ readonly exposedHeaders: string[];
55
+ readonly credentials: boolean;
56
+ readonly maxAge: number;
57
+ };
58
+ /**
59
+ * Rate Limiting
60
+ */
61
+ readonly rateLimit: {
62
+ readonly enabled: boolean;
63
+ readonly windowMs: number;
64
+ readonly maxRequests: number;
65
+ readonly message: string;
66
+ };
67
+ /**
68
+ * XSS Protection
69
+ */
70
+ readonly xss: {
71
+ readonly enabled: boolean;
72
+ readonly reportUri: string;
73
+ };
74
+ /**
75
+ * Helmet Security Headers
76
+ */
77
+ readonly helmet: {
78
+ readonly enabled: boolean;
79
+ readonly contentSecurityPolicy: boolean;
80
+ readonly hsts: {
81
+ readonly enabled: boolean;
82
+ readonly maxAge: number;
83
+ readonly includeSubDomains: boolean;
84
+ };
85
+ };
86
+ /**
87
+ * Session Configuration
88
+ */
89
+ readonly session: {
90
+ readonly name: string;
91
+ readonly secret: string;
92
+ readonly expiresIn: number;
93
+ readonly secure: boolean;
94
+ readonly httpOnly: boolean;
95
+ readonly sameSite: "strict" | "lax" | "none";
96
+ };
97
+ /**
98
+ * Password settings
99
+ */
100
+ readonly password: {
101
+ readonly minLength: number;
102
+ readonly requireUppercase: boolean;
103
+ readonly requireNumbers: boolean;
104
+ readonly requireSpecialChars: boolean;
105
+ readonly bcryptRounds: number;
106
+ };
107
+ }>;
108
+ //# sourceMappingURL=security.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"security.d.ts","sourceRoot":"","sources":["../../../src/config/security.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAgJH,eAAO,MAAM,cAAc;IAtHzB;;OAEG;;;yBAGa,MAAM;4BAQ4B,OAAO,GAAG,OAAO,GAAG,OAAO;;;;;;IAO7E;;OAEG;;;;;;;;iCAQ6D,QAAQ,GAAG,KAAK,GAAG,MAAM;;IAGzF;;OAEG;;;;;IAMH;;OAEG;;;;;;IAOH;;OAEG;;;;;;;;;;IAWH;;OAEG;;;;;;;IAQH;;OAEG;;;;;IAMH;;OAEG;;;;;;;;;;IAWH;;OAEG;;;;;;;2BAOmD,QAAQ,GAAG,KAAK,GAAG,MAAM;;IAG/E;;OAEG;;;;;;;;EAUyD,CAAC"}
@@ -0,0 +1,134 @@
1
+ /**
2
+ * Security Configuration
3
+ * JWT, CSRF, encryption and other security settings
4
+ * Sealed namespace for immutability
5
+ */
6
+ import { Env } from './env';
7
+ import { Logger } from './logger';
8
+ import { ErrorFactory } from '../exceptions/ZintrustError';
9
+ /**
10
+ * Helper to warn about missing secrets
11
+ */
12
+ function warnMissingSecret(secretName) {
13
+ Logger.error(`❌ CRITICAL: ${secretName} environment variable is not set!`);
14
+ Logger.error('⚠️ Application may not function correctly. Set this in production immediately.');
15
+ const nodeEnv = Env.get('NODE_ENV', 'development');
16
+ if (nodeEnv === 'production') {
17
+ throw ErrorFactory.createConfigError(`Missing required secret: ${secretName}`, { secretName });
18
+ }
19
+ // In non-production environments, allow the app/CLI to start while still warning loudly.
20
+ // This is intentionally predictable for local development and test tooling.
21
+ return 'dev-unsafe-jwt-secret';
22
+ }
23
+ let cachedJwtSecret;
24
+ const securityConfigObj = {
25
+ /**
26
+ * JWT Configuration
27
+ */
28
+ jwt: {
29
+ enabled: Env.getBool('JWT_ENABLED', true),
30
+ get secret() {
31
+ if (cachedJwtSecret !== undefined)
32
+ return cachedJwtSecret;
33
+ const isEnabled = Env.getBool('JWT_ENABLED', true);
34
+ cachedJwtSecret = isEnabled
35
+ ? Env.get('JWT_SECRET') || warnMissingSecret('JWT_SECRET')
36
+ : Env.get('JWT_SECRET') || '';
37
+ return cachedJwtSecret;
38
+ },
39
+ algorithm: Env.get('JWT_ALGORITHM', 'HS256'),
40
+ expiresIn: Env.get('JWT_EXPIRES_IN', '1h'),
41
+ refreshExpiresIn: Env.get('JWT_REFRESH_EXPIRES_IN', '7d'),
42
+ issuer: Env.get('JWT_ISSUER', 'zintrust'),
43
+ audience: Env.get('JWT_AUDIENCE', 'zintrust-api'),
44
+ },
45
+ /**
46
+ * CSRF Protection
47
+ */
48
+ csrf: {
49
+ enabled: Env.getBool('CSRF_ENABLED', true),
50
+ headerName: Env.get('CSRF_HEADER_NAME', 'x-csrf-token'),
51
+ tokenName: Env.get('CSRF_TOKEN_NAME', '_csrf'),
52
+ cookieName: Env.get('CSRF_COOKIE_NAME', 'XSRF-TOKEN'),
53
+ cookieHttpOnly: Env.getBool('CSRF_COOKIE_HTTP_ONLY', true),
54
+ cookieSecure: Env.getBool('CSRF_COOKIE_SECURE', true),
55
+ cookieSameSite: Env.get('CSRF_COOKIE_SAME_SITE', 'strict'),
56
+ },
57
+ /**
58
+ * Encryption
59
+ */
60
+ encryption: {
61
+ algorithm: Env.get('ENCRYPTION_ALGORITHM', 'aes-256-cbc'),
62
+ key: Env.get('ENCRYPTION_KEY', 'your-encryption-key'),
63
+ },
64
+ /**
65
+ * API Key Authentication
66
+ */
67
+ apiKey: {
68
+ enabled: Env.getBool('API_KEY_ENABLED', true),
69
+ headerName: Env.get('API_KEY_HEADER', 'x-api-key'),
70
+ secret: Env.get('API_KEY_SECRET'),
71
+ },
72
+ /**
73
+ * CORS Configuration
74
+ */
75
+ cors: {
76
+ enabled: Env.getBool('CORS_ENABLED', true),
77
+ origins: Env.get('CORS_ORIGINS', '*').split(','),
78
+ methods: Env.get('CORS_METHODS', 'GET,POST,PUT,PATCH,DELETE').split(','),
79
+ allowedHeaders: Env.get('CORS_ALLOWED_HEADERS', 'Content-Type,Authorization').split(','),
80
+ exposedHeaders: Env.get('CORS_EXPOSED_HEADERS', '').split(','),
81
+ credentials: Env.getBool('CORS_CREDENTIALS', false),
82
+ maxAge: Env.getInt('CORS_MAX_AGE', 86400),
83
+ },
84
+ /**
85
+ * Rate Limiting
86
+ */
87
+ rateLimit: {
88
+ enabled: Env.getBool('RATE_LIMIT_ENABLED', true),
89
+ windowMs: Env.getInt('RATE_LIMIT_WINDOW_MS', 900000), // 15 minutes
90
+ maxRequests: Env.getInt('RATE_LIMIT_MAX_REQUESTS', 100),
91
+ message: Env.get('RATE_LIMIT_MESSAGE', 'Too many requests, please try again later'),
92
+ },
93
+ /**
94
+ * XSS Protection
95
+ */
96
+ xss: {
97
+ enabled: Env.getBool('XSS_ENABLED', true),
98
+ reportUri: Env.get('XSS_REPORT_URI'),
99
+ },
100
+ /**
101
+ * Helmet Security Headers
102
+ */
103
+ helmet: {
104
+ enabled: Env.getBool('HELMET_ENABLED', true),
105
+ contentSecurityPolicy: Env.getBool('CSP_ENABLED', true),
106
+ hsts: {
107
+ enabled: Env.getBool('HSTS_ENABLED', true),
108
+ maxAge: Env.getInt('HSTS_MAX_AGE', 31536000),
109
+ includeSubDomains: Env.getBool('HSTS_INCLUDE_SUBDOMAINS', true),
110
+ },
111
+ },
112
+ /**
113
+ * Session Configuration
114
+ */
115
+ session: {
116
+ name: Env.get('SESSION_NAME', 'zintrust_session'),
117
+ secret: Env.get('SESSION_SECRET', 'your-session-secret'),
118
+ expiresIn: Env.getInt('SESSION_EXPIRES_IN', 1800000), // 30 minutes
119
+ secure: Env.getBool('SESSION_SECURE', true),
120
+ httpOnly: Env.getBool('SESSION_HTTP_ONLY', true),
121
+ sameSite: Env.get('SESSION_SAME_SITE', 'strict'),
122
+ },
123
+ /**
124
+ * Password settings
125
+ */
126
+ password: {
127
+ minLength: Env.getInt('PASSWORD_MIN_LENGTH', 8),
128
+ requireUppercase: Env.getBool('PASSWORD_REQUIRE_UPPERCASE', true),
129
+ requireNumbers: Env.getBool('PASSWORD_REQUIRE_NUMBERS', true),
130
+ requireSpecialChars: Env.getBool('PASSWORD_REQUIRE_SPECIAL_CHARS', true),
131
+ bcryptRounds: Env.getInt('BCRYPT_ROUNDS', 10),
132
+ },
133
+ };
134
+ export const securityConfig = Object.freeze(securityConfigObj);