@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
+ import { Env } from '../config/env';
2
+ import { Logger } from '../config/logger';
3
+ import * as crypto from '../node-singletons/crypto';
4
+ /**
5
+ * Trace logger for structured logging
6
+ */
7
+ export const TraceLogger = Object.freeze({
8
+ /**
9
+ * Create a new trace logger instance
10
+ */
11
+ create(traceId, serviceName) {
12
+ return {
13
+ info(message, data) {
14
+ Logger.info(`[${traceId}] ${serviceName} INFO: ${message}`, data ?? '');
15
+ },
16
+ warn(message, data) {
17
+ Logger.warn(`[${traceId}] ${serviceName} WARN: ${message}`, data ?? '');
18
+ },
19
+ error(message, data) {
20
+ Logger.error(`[${traceId}] ${serviceName} ERROR: ${message}`, data ?? '');
21
+ },
22
+ debug(message, data) {
23
+ if (Env.get('DEBUG') !== undefined && Env.get('DEBUG') !== '') {
24
+ Logger.debug(`[${traceId}] ${serviceName} DEBUG: ${message}`, data ?? '');
25
+ }
26
+ },
27
+ };
28
+ },
29
+ });
30
+ /**
31
+ * Generate unique trace ID
32
+ */
33
+ function generateTraceId() {
34
+ return `${Date.now()}-${crypto.randomBytes(8).toString('hex')}`;
35
+ }
36
+ function shouldSampleRequest(samplingRate) {
37
+ if (samplingRate >= 1)
38
+ return true;
39
+ if (samplingRate <= 0)
40
+ return false;
41
+ const scale = 1_000_000;
42
+ const value = crypto.randomInt(0, scale) / scale;
43
+ return value <= samplingRate;
44
+ }
45
+ function createTracingMiddleware(serviceName, enabled, samplingRate) {
46
+ return async (req, res, next) => {
47
+ if (enabled === false || shouldSampleRequest(samplingRate) === false) {
48
+ return next();
49
+ }
50
+ // Check for existing trace ID (from parent service)
51
+ const traceIdHeader = req.getHeader('x-trace-id');
52
+ const traceId = (typeof traceIdHeader === 'string' ? traceIdHeader : '') || generateTraceId();
53
+ const parentServiceIdHeader = req.getHeader('x-parent-service-id');
54
+ const parentServiceId = typeof parentServiceIdHeader === 'string' ? parentServiceIdHeader : undefined;
55
+ const depthHeader = req.getHeader('x-trace-depth');
56
+ const depth = Number.parseInt((typeof depthHeader === 'string' ? depthHeader : '') || '0');
57
+ // Store trace context in request
58
+ const traceContext = {
59
+ traceId,
60
+ parentServiceId,
61
+ depth,
62
+ startTime: Date.now(),
63
+ serviceName,
64
+ };
65
+ req.context = Object.keys(req.context).length > 0 ? req.context : {};
66
+ req.context['trace'] = traceContext;
67
+ req.context['traceLogger'] = TraceLogger.create(traceId, serviceName);
68
+ // Attach trace headers to response
69
+ res.setHeader('x-trace-id', traceId);
70
+ res.setHeader('x-trace-service', serviceName);
71
+ res.setHeader('x-trace-depth', depth.toString());
72
+ // Log request start
73
+ const method = req.getMethod();
74
+ const path = req.getPath();
75
+ Logger.info(`[TRACE ${traceId}] ${serviceName} ${method} ${path} (depth: ${depth}) ` +
76
+ (parentServiceId === undefined ? '' : `(from: ${parentServiceId})`));
77
+ // Track response timing
78
+ const startTime = Date.now();
79
+ const originalJson = res.json.bind(res);
80
+ res.json = function (data) {
81
+ const duration = Date.now() - startTime;
82
+ Logger.info(`[TRACE ${traceId}] ${serviceName} ${method} ${path} ${res.getStatus()} (${duration}ms)`);
83
+ return originalJson(data);
84
+ };
85
+ await next();
86
+ };
87
+ }
88
+ function createInjectHeaders(serviceName) {
89
+ return (headers = {}, traceId) => {
90
+ const depthHeader = headers['x-trace-depth'];
91
+ const newDepth = Number.parseInt(depthHeader ?? '0') + 1;
92
+ return {
93
+ ...headers,
94
+ 'x-trace-id': traceId ?? crypto.randomBytes(8).toString('hex'),
95
+ 'x-parent-service-id': serviceName,
96
+ 'x-trace-depth': newDepth.toString(),
97
+ };
98
+ };
99
+ }
100
+ /**
101
+ * Request Tracing Middleware
102
+ * Enables request tracking across microservices for debugging and observability
103
+ */
104
+ export function RequestTracingMiddlewareFactory() {
105
+ return {
106
+ /**
107
+ * Middleware to add request tracing
108
+ */
109
+ middleware(serviceName, enabled = true, samplingRate = 1) {
110
+ return createTracingMiddleware(serviceName, enabled, samplingRate);
111
+ },
112
+ /**
113
+ * Middleware to inject trace headers into outgoing service calls
114
+ */
115
+ injectHeaders(serviceName, _targetServiceName) {
116
+ return createInjectHeaders(serviceName);
117
+ },
118
+ };
119
+ }
120
+ export const RequestTracingMiddleware = RequestTracingMiddlewareFactory();
121
+ export const middleware = (serviceName, enabled = true, samplingRate = 1) => RequestTracingMiddleware.middleware(serviceName, enabled, samplingRate);
122
+ export default RequestTracingMiddleware;
@@ -0,0 +1,58 @@
1
+ import { IRequest } from '../http/Request';
2
+ import { IResponse } from '../http/Response';
3
+ export type NextFunction = (error?: Error) => void | Promise<void>;
4
+ /**
5
+ * Service-to-service authentication strategies
6
+ */
7
+ export type AuthStrategy = 'api-key' | 'jwt' | 'none' | 'custom';
8
+ export interface AuthContext {
9
+ isServiceCall: boolean;
10
+ serviceName?: string;
11
+ strategy: AuthStrategy;
12
+ authenticated: boolean;
13
+ }
14
+ export interface IApiKeyAuth {
15
+ verify(token: string): boolean;
16
+ generate(): string;
17
+ }
18
+ /**
19
+ * API Key Authentication
20
+ */
21
+ export declare const ApiKeyAuth: Readonly<{
22
+ /**
23
+ * Create a new API key auth instance
24
+ */
25
+ create(apiKey?: string): IApiKeyAuth;
26
+ }>;
27
+ export interface IJwtAuth {
28
+ sign(payload: Record<string, unknown>, expiresIn?: string): string;
29
+ verify(token: string): Record<string, unknown> | null;
30
+ }
31
+ /**
32
+ * JWT Authentication
33
+ */
34
+ export declare const JwtAuth: Readonly<{
35
+ /**
36
+ * Create a new JWT auth instance
37
+ */
38
+ create(secret?: string): IJwtAuth;
39
+ }>;
40
+ export interface ICustomAuth {
41
+ verify(token: string): boolean;
42
+ }
43
+ /**
44
+ * Custom Authentication (developer-defined)
45
+ */
46
+ export declare const CustomAuth: Readonly<{
47
+ /**
48
+ * Create a new custom auth instance
49
+ */
50
+ create(validator: (token: string) => boolean): ICustomAuth;
51
+ }>;
52
+ export interface IServiceAuthMiddleware {
53
+ registerCustomAuth(validator: (token: string) => boolean): void;
54
+ middleware(strategy: AuthStrategy): (req: IRequest, res: IResponse, next: NextFunction) => void | Promise<void>;
55
+ }
56
+ export declare const ServiceAuthMiddleware: Readonly<IServiceAuthMiddleware>;
57
+ export default ServiceAuthMiddleware;
58
+ //# sourceMappingURL=ServiceAuthMiddleware.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ServiceAuthMiddleware.d.ts","sourceRoot":"","sources":["../../../src/microservices/ServiceAuthMiddleware.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAI3C,MAAM,MAAM,YAAY,GAAG,CAAC,KAAK,CAAC,EAAE,KAAK,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAEnE;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,KAAK,GAAG,MAAM,GAAG,QAAQ,CAAC;AAEjE,MAAM,WAAW,WAAW;IAC1B,aAAa,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,YAAY,CAAC;IACvB,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;IAC/B,QAAQ,IAAI,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,eAAO,MAAM,UAAU;IACrB;;OAEG;oBACa,MAAM,GAAG,WAAW;EA6BpC,CAAC;AAEH,MAAM,WAAW,QAAQ;IACvB,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACnE,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CACvD;AAED;;GAEG;AACH,eAAO,MAAM,OAAO;IAClB;;OAEG;oBACa,MAAM,GAAG,QAAQ;EAyDjC,CAAC;AAEH,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CAChC;AAED;;GAEG;AACH,eAAO,MAAM,UAAU;IACrB;;OAEG;sBACe,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,GAAG,WAAW;EAO1D,CAAC;AAEH,MAAM,WAAW,sBAAsB;IACrC,kBAAkB,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,GAAG,IAAI,CAAC;IAChE,UAAU,CACR,QAAQ,EAAE,YAAY,GACrB,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAChF;AAwMD,eAAO,MAAM,qBAAqB,kCAA+C,CAAC;AAElF,eAAe,qBAAqB,CAAC"}
@@ -0,0 +1,240 @@
1
+ import { Env } from '../config/env';
2
+ import { Logger } from '../config/logger';
3
+ import * as crypto from '../node-singletons/crypto';
4
+ /**
5
+ * API Key Authentication
6
+ */
7
+ export const ApiKeyAuth = Object.freeze({
8
+ /**
9
+ * Create a new API key auth instance
10
+ */
11
+ create(apiKey) {
12
+ const generateSecureApiKeyDefault = () => {
13
+ return crypto.randomBytes(32).toString('hex');
14
+ };
15
+ const getApiKey = () => {
16
+ const envKey = Env.get('SERVICE_API_KEY');
17
+ const secureDefault = generateSecureApiKeyDefault();
18
+ if (envKey === undefined || envKey === secureDefault) {
19
+ Logger.warn('⚠️ WARNING: Using generated default API key. Set SERVICE_API_KEY environment variable in production!');
20
+ return secureDefault;
21
+ }
22
+ return envKey;
23
+ };
24
+ const key = apiKey ?? getApiKey();
25
+ return {
26
+ verify(token) {
27
+ return token === key;
28
+ },
29
+ generate() {
30
+ return crypto.randomBytes(32).toString('hex');
31
+ },
32
+ };
33
+ },
34
+ });
35
+ /**
36
+ * JWT Authentication
37
+ */
38
+ export const JwtAuth = Object.freeze({
39
+ /**
40
+ * Create a new JWT auth instance
41
+ */
42
+ create(secret) {
43
+ const generateSecureJwtDefault = () => {
44
+ return crypto.randomBytes(32).toString('hex');
45
+ };
46
+ const getJwtSecret = () => {
47
+ const envSecret = Env.get('SERVICE_JWT_SECRET');
48
+ const secureDefault = generateSecureJwtDefault();
49
+ if (envSecret === undefined || envSecret === secureDefault) {
50
+ Logger.warn('⚠️ WARNING: Using generated default JWT secret. Set SERVICE_JWT_SECRET environment variable in production!');
51
+ return secureDefault;
52
+ }
53
+ return envSecret;
54
+ };
55
+ const jwtSecret = secret ?? getJwtSecret();
56
+ return {
57
+ sign(payload, _expiresIn = '1h') {
58
+ // Simplified JWT (in production, use jsonwebtoken library)
59
+ const header = Buffer.from(JSON.stringify({ alg: 'HS256', typ: 'JWT' })).toString('base64');
60
+ const body = Buffer.from(JSON.stringify({ ...payload, iat: Date.now() })).toString('base64');
61
+ const signature = crypto
62
+ .createHmac('sha256', jwtSecret)
63
+ .update(`${header}.${body}`)
64
+ .digest('base64');
65
+ return `${header}.${body}.${signature}`;
66
+ },
67
+ verify(token) {
68
+ try {
69
+ const parts = token.split('.');
70
+ if (parts.length !== 3)
71
+ return null;
72
+ const [header, body, signature] = parts;
73
+ const expectedSignature = crypto
74
+ .createHmac('sha256', jwtSecret)
75
+ .update(`${header}.${body}`)
76
+ .digest('base64');
77
+ if (signature !== expectedSignature) {
78
+ return null;
79
+ }
80
+ return JSON.parse(Buffer.from(body, 'base64').toString());
81
+ }
82
+ catch (error) {
83
+ Logger.error('JWT verification failed', error);
84
+ return null;
85
+ }
86
+ },
87
+ };
88
+ },
89
+ });
90
+ /**
91
+ * Custom Authentication (developer-defined)
92
+ */
93
+ export const CustomAuth = Object.freeze({
94
+ /**
95
+ * Create a new custom auth instance
96
+ */
97
+ create(validator) {
98
+ return {
99
+ verify(token) {
100
+ return validator(token);
101
+ },
102
+ };
103
+ },
104
+ });
105
+ /**
106
+ * Create initial authentication context
107
+ */
108
+ const createAuthContext = (strategy) => {
109
+ return {
110
+ isServiceCall: false,
111
+ strategy,
112
+ authenticated: strategy === 'none',
113
+ };
114
+ };
115
+ /**
116
+ * Attach context to request and proceed to next middleware
117
+ */
118
+ const attachContextAndNext = (req, context, next) => {
119
+ req.context ??= {};
120
+ req.context['serviceAuth'] = context;
121
+ return next();
122
+ };
123
+ /**
124
+ * Finalize successful service authentication
125
+ */
126
+ const finalizeServiceAuth = (req, context, next) => {
127
+ context.authenticated = true;
128
+ context.isServiceCall = true;
129
+ return attachContextAndNext(req, context, next);
130
+ };
131
+ /**
132
+ * Parse authorization header
133
+ */
134
+ const parseAuthHeader = (req) => {
135
+ const authHeader = req.getHeader('authorization');
136
+ if (authHeader === undefined || typeof authHeader !== 'string') {
137
+ return null;
138
+ }
139
+ const parts = authHeader.split(' ');
140
+ if (parts.length !== 2) {
141
+ return null;
142
+ }
143
+ const scheme = parts[0];
144
+ const token = parts[1];
145
+ if (!scheme || !token) {
146
+ return null;
147
+ }
148
+ return { scheme, token };
149
+ };
150
+ /**
151
+ * Verify API Key strategy
152
+ */
153
+ const verifyApiKeyStrategy = (apiKeyAuth, scheme, token) => {
154
+ if (scheme !== 'Bearer' || apiKeyAuth.verify(token) === false) {
155
+ return { authenticated: false, status: 403, error: 'Invalid API key' };
156
+ }
157
+ return { authenticated: true };
158
+ };
159
+ /**
160
+ * Verify JWT strategy
161
+ */
162
+ const verifyJwtStrategy = (jwtAuth, scheme, token, context) => {
163
+ if (scheme !== 'Bearer') {
164
+ return {
165
+ authenticated: false,
166
+ status: 401,
167
+ error: 'Invalid authorization scheme',
168
+ };
169
+ }
170
+ const payload = jwtAuth.verify(token);
171
+ if (payload === null) {
172
+ return { authenticated: false, status: 403, error: 'Invalid JWT token' };
173
+ }
174
+ const serviceName = payload['serviceName'];
175
+ context.serviceName = typeof serviceName === 'string' ? serviceName : '';
176
+ return { authenticated: true };
177
+ };
178
+ /**
179
+ * Verify Custom strategy
180
+ */
181
+ const verifyCustomStrategy = (customValidator, token) => {
182
+ if (customValidator === null || customValidator(token) === false) {
183
+ return { authenticated: false, status: 403, error: 'Authentication failed' };
184
+ }
185
+ return { authenticated: true };
186
+ };
187
+ /**
188
+ * Verify authentication strategy
189
+ */
190
+ const verifyStrategy = (strategy, auth, context, deps) => {
191
+ switch (strategy) {
192
+ case 'api-key':
193
+ return verifyApiKeyStrategy(deps.apiKeyAuth, auth.scheme, auth.token);
194
+ case 'jwt':
195
+ return verifyJwtStrategy(deps.jwtAuth, auth.scheme, auth.token, context);
196
+ case 'custom':
197
+ return verifyCustomStrategy(deps.customValidator, auth.token);
198
+ default:
199
+ return { authenticated: false, status: 401, error: 'Unsupported strategy' };
200
+ }
201
+ };
202
+ const createServiceAuthMiddleware = () => {
203
+ const defaultApiKeyAuth = ApiKeyAuth.create();
204
+ const defaultJwtAuth = JwtAuth.create();
205
+ let customValidator = null;
206
+ return {
207
+ /**
208
+ * Register custom auth validator
209
+ */
210
+ registerCustomAuth(validator) {
211
+ customValidator = validator;
212
+ },
213
+ /**
214
+ * Middleware to authenticate service-to-service calls
215
+ */
216
+ middleware(strategy) {
217
+ return async (req, res, next) => {
218
+ const context = createAuthContext(strategy);
219
+ if (strategy === 'none') {
220
+ return attachContextAndNext(req, context, next);
221
+ }
222
+ const auth = parseAuthHeader(req);
223
+ if (auth === null) {
224
+ return res.setStatus(401).json({ error: 'Missing or invalid authorization header' });
225
+ }
226
+ const result = verifyStrategy(strategy, auth, context, {
227
+ apiKeyAuth: defaultApiKeyAuth,
228
+ jwtAuth: defaultJwtAuth,
229
+ customValidator,
230
+ });
231
+ if (!result.authenticated) {
232
+ return res.setStatus(result.status ?? 401).json({ error: result.error });
233
+ }
234
+ return finalizeServiceAuth(req, context, next);
235
+ };
236
+ },
237
+ };
238
+ };
239
+ export const ServiceAuthMiddleware = Object.freeze(createServiceAuthMiddleware());
240
+ export default ServiceAuthMiddleware;
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Service Bundler - Creates optimized, independent microservice packages
3
+ * Target: Each service < 1MB for serverless deployment
4
+ */
5
+ export interface BundleConfig {
6
+ serviceName: string;
7
+ domain: string;
8
+ outputDir: string;
9
+ targetSize?: number;
10
+ includeTests?: boolean;
11
+ includeDocs?: boolean;
12
+ }
13
+ export interface BundleResult {
14
+ serviceName: string;
15
+ sizeBytes: number;
16
+ sizeMB: number;
17
+ files: number;
18
+ location: string;
19
+ optimized: boolean;
20
+ }
21
+ export interface IServiceBundler {
22
+ bundleService(config: BundleConfig): Promise<BundleResult>;
23
+ bundleAll(domain: string, services: string[], outputDir?: string): Promise<BundleResult[]>;
24
+ createServiceImage(serviceName: string, domain: string, registry?: string): Promise<string>;
25
+ }
26
+ export interface IServiceBundlerManager {
27
+ getInstance(): IServiceBundler;
28
+ bundleService(config: BundleConfig): Promise<BundleResult>;
29
+ bundleAll(domain: string, services: string[], outputDir?: string): Promise<BundleResult[]>;
30
+ createServiceImage(serviceName: string, domain: string, registry?: string): Promise<string>;
31
+ create(): IServiceBundler;
32
+ }
33
+ /**
34
+ * Service bundler for independent deployment
35
+ */
36
+ export declare const ServiceBundler: IServiceBundlerManager;
37
+ /**
38
+ * CLI command to bundle services
39
+ */
40
+ export declare function bundleServices(domain: string, services: string): Promise<void>;
41
+ export declare const bundleService: (config: BundleConfig) => Promise<BundleResult>;
42
+ export declare const bundleAll: (domain: string, services: string[], outputDir?: string) => Promise<BundleResult[]>;
43
+ export declare const createServiceImage: (serviceName: string, domain: string, registry?: string) => Promise<string>;
44
+ export default ServiceBundler;
45
+ //# sourceMappingURL=ServiceBundler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ServiceBundler.d.ts","sourceRoot":"","sources":["../../../src/microservices/ServiceBundler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,aAAa,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAC3D,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IAC3F,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC7F;AAED,MAAM,WAAW,sBAAsB;IACrC,WAAW,IAAI,eAAe,CAAC;IAC/B,aAAa,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAC3D,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IAC3F,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5F,MAAM,IAAI,eAAe,CAAC;CAC3B;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,wBAiEvB,CAAC;AA+RL;;GAEG;AACH,wBAAsB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAcpF;AAED,eAAO,MAAM,aAAa,GAAU,QAAQ,YAAY,KAAG,OAAO,CAAC,YAAY,CAC3B,CAAC;AACrD,eAAO,MAAM,SAAS,GACpB,QAAQ,MAAM,EACd,UAAU,MAAM,EAAE,EAClB,YAAY,MAAM,KACjB,OAAO,CAAC,YAAY,EAAE,CAAwE,CAAC;AAClG,eAAO,MAAM,kBAAkB,GAC7B,aAAa,MAAM,EACnB,QAAQ,MAAM,EACd,WAAW,MAAM,KAChB,OAAO,CAAC,MAAM,CAC+D,CAAC;AAEjF,eAAe,cAAc,CAAC"}