imposters 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 (426) hide show
  1. package/LICENSE +21 -0
  2. package/Program/package.json +6 -0
  3. package/README.md +365 -0
  4. package/api/AdminApi/package.json +6 -0
  5. package/api/ApiErrors/package.json +6 -0
  6. package/api/ApiSchemas/package.json +6 -0
  7. package/api/Conversions/package.json +6 -0
  8. package/api/ImpostersGroup/package.json +6 -0
  9. package/api/ImpostersHandlers/package.json +6 -0
  10. package/api/SystemGroup/package.json +6 -0
  11. package/api/SystemHandlers/package.json +6 -0
  12. package/bin/imposters +47 -0
  13. package/cli/Commands/package.json +6 -0
  14. package/cli/ConfigLoader/package.json +6 -0
  15. package/client/HandlerHttpClient/package.json +6 -0
  16. package/client/ImpostersClient/package.json +6 -0
  17. package/client/testing/package.json +6 -0
  18. package/dist/cjs/Program.js +4 -0
  19. package/dist/cjs/Program.js.map +1 -0
  20. package/dist/cjs/api/AdminApi.js +11 -0
  21. package/dist/cjs/api/AdminApi.js.map +1 -0
  22. package/dist/cjs/api/ApiErrors.js +30 -0
  23. package/dist/cjs/api/ApiErrors.js.map +1 -0
  24. package/dist/cjs/api/ApiSchemas.js +36 -0
  25. package/dist/cjs/api/ApiSchemas.js.map +1 -0
  26. package/dist/cjs/api/Conversions.js +41 -0
  27. package/dist/cjs/api/Conversions.js.map +1 -0
  28. package/dist/cjs/api/ImpostersGroup.js +37 -0
  29. package/dist/cjs/api/ImpostersGroup.js.map +1 -0
  30. package/dist/cjs/api/ImpostersHandlers.js +361 -0
  31. package/dist/cjs/api/ImpostersHandlers.js.map +1 -0
  32. package/dist/cjs/api/SystemGroup.js +12 -0
  33. package/dist/cjs/api/SystemGroup.js.map +1 -0
  34. package/dist/cjs/api/SystemHandlers.js +74 -0
  35. package/dist/cjs/api/SystemHandlers.js.map +1 -0
  36. package/dist/cjs/cli/Commands.js +104 -0
  37. package/dist/cjs/cli/Commands.js.map +1 -0
  38. package/dist/cjs/cli/ConfigLoader.js +34 -0
  39. package/dist/cjs/cli/ConfigLoader.js.map +1 -0
  40. package/dist/cjs/client/HandlerHttpClient.js +50 -0
  41. package/dist/cjs/client/HandlerHttpClient.js.map +1 -0
  42. package/dist/cjs/client/ImpostersClient.js +20 -0
  43. package/dist/cjs/client/ImpostersClient.js.map +1 -0
  44. package/dist/cjs/client/index.js +57 -0
  45. package/dist/cjs/client/index.js.map +1 -0
  46. package/dist/cjs/client/testing.js +94 -0
  47. package/dist/cjs/client/testing.js.map +1 -0
  48. package/dist/cjs/domain/imposter.js +125 -0
  49. package/dist/cjs/domain/imposter.js.map +1 -0
  50. package/dist/cjs/domain/route.js +185 -0
  51. package/dist/cjs/domain/route.js.map +1 -0
  52. package/dist/cjs/index.js +106 -0
  53. package/dist/cjs/index.js.map +1 -0
  54. package/dist/cjs/layers/ApiLayer.js +18 -0
  55. package/dist/cjs/layers/ApiLayer.js.map +1 -0
  56. package/dist/cjs/layers/MainLayer.js +27 -0
  57. package/dist/cjs/layers/MainLayer.js.map +1 -0
  58. package/dist/cjs/matching/ExpressionEvaluator.js +103 -0
  59. package/dist/cjs/matching/ExpressionEvaluator.js.map +1 -0
  60. package/dist/cjs/matching/RequestMatcher.js +145 -0
  61. package/dist/cjs/matching/RequestMatcher.js.map +1 -0
  62. package/dist/cjs/matching/ResponseGenerator.js +80 -0
  63. package/dist/cjs/matching/ResponseGenerator.js.map +1 -0
  64. package/dist/cjs/matching/TemplateEngine.js +55 -0
  65. package/dist/cjs/matching/TemplateEngine.js.map +1 -0
  66. package/dist/cjs/repositories/ImposterRepository.js +118 -0
  67. package/dist/cjs/repositories/ImposterRepository.js.map +1 -0
  68. package/dist/cjs/schemas/ConfigFileSchema.js +44 -0
  69. package/dist/cjs/schemas/ConfigFileSchema.js.map +1 -0
  70. package/dist/cjs/schemas/ImposterSchema.js +202 -0
  71. package/dist/cjs/schemas/ImposterSchema.js.map +1 -0
  72. package/dist/cjs/schemas/RequestLogSchema.js +51 -0
  73. package/dist/cjs/schemas/RequestLogSchema.js.map +1 -0
  74. package/dist/cjs/schemas/StubSchema.js +84 -0
  75. package/dist/cjs/schemas/StubSchema.js.map +1 -0
  76. package/dist/cjs/schemas/common.js +67 -0
  77. package/dist/cjs/schemas/common.js.map +1 -0
  78. package/dist/cjs/server/AdminServer.js +36 -0
  79. package/dist/cjs/server/AdminServer.js.map +1 -0
  80. package/dist/cjs/server/BunServer.js +13 -0
  81. package/dist/cjs/server/BunServer.js.map +1 -0
  82. package/dist/cjs/server/FiberManager.js +21 -0
  83. package/dist/cjs/server/FiberManager.js.map +1 -0
  84. package/dist/cjs/server/ImposterServer.js +234 -0
  85. package/dist/cjs/server/ImposterServer.js.map +1 -0
  86. package/dist/cjs/services/AppConfig.js +18 -0
  87. package/dist/cjs/services/AppConfig.js.map +1 -0
  88. package/dist/cjs/services/MetricsService.js +113 -0
  89. package/dist/cjs/services/MetricsService.js.map +1 -0
  90. package/dist/cjs/services/PortAllocator.js +50 -0
  91. package/dist/cjs/services/PortAllocator.js.map +1 -0
  92. package/dist/cjs/services/ProxyService.js +109 -0
  93. package/dist/cjs/services/ProxyService.js.map +1 -0
  94. package/dist/cjs/services/RequestLogger.js +60 -0
  95. package/dist/cjs/services/RequestLogger.js.map +1 -0
  96. package/dist/cjs/services/Uuid.js +10 -0
  97. package/dist/cjs/services/Uuid.js.map +1 -0
  98. package/dist/cjs/services/UuidLive.js +16 -0
  99. package/dist/cjs/services/UuidLive.js.map +1 -0
  100. package/dist/cjs/ui/UiRouter.js +242 -0
  101. package/dist/cjs/ui/UiRouter.js.map +1 -0
  102. package/dist/cjs/ui/admin/AdminLayout.js +36 -0
  103. package/dist/cjs/ui/admin/AdminLayout.js.map +1 -0
  104. package/dist/cjs/ui/admin/AdminUiRouter.js +155 -0
  105. package/dist/cjs/ui/admin/AdminUiRouter.js.map +1 -0
  106. package/dist/cjs/ui/admin/pages/AdminDashboard.js +55 -0
  107. package/dist/cjs/ui/admin/pages/AdminDashboard.js.map +1 -0
  108. package/dist/cjs/ui/admin/partials.js +64 -0
  109. package/dist/cjs/ui/admin/partials.js.map +1 -0
  110. package/dist/cjs/ui/html.js +42 -0
  111. package/dist/cjs/ui/html.js.map +1 -0
  112. package/dist/cjs/ui/layout.js +39 -0
  113. package/dist/cjs/ui/layout.js.map +1 -0
  114. package/dist/cjs/ui/pages/dashboard.js +51 -0
  115. package/dist/cjs/ui/pages/dashboard.js.map +1 -0
  116. package/dist/cjs/ui/pages/request-detail.js +119 -0
  117. package/dist/cjs/ui/pages/request-detail.js.map +1 -0
  118. package/dist/cjs/ui/pages/requests.js +120 -0
  119. package/dist/cjs/ui/pages/requests.js.map +1 -0
  120. package/dist/cjs/ui/pages/stubs.js +46 -0
  121. package/dist/cjs/ui/pages/stubs.js.map +1 -0
  122. package/dist/cjs/ui/partials.js +104 -0
  123. package/dist/cjs/ui/partials.js.map +1 -0
  124. package/dist/dts/Program.d.ts +2 -0
  125. package/dist/dts/Program.d.ts.map +1 -0
  126. package/dist/dts/api/AdminApi.d.ts +490 -0
  127. package/dist/dts/api/AdminApi.d.ts.map +1 -0
  128. package/dist/dts/api/ApiErrors.d.ts +26 -0
  129. package/dist/dts/api/ApiErrors.d.ts.map +1 -0
  130. package/dist/dts/api/ApiSchemas.d.ts +36 -0
  131. package/dist/dts/api/ApiSchemas.d.ts.map +1 -0
  132. package/dist/dts/api/Conversions.d.ts +7 -0
  133. package/dist/dts/api/Conversions.d.ts.map +1 -0
  134. package/dist/dts/api/ImpostersGroup.d.ts +448 -0
  135. package/dist/dts/api/ImpostersGroup.d.ts.map +1 -0
  136. package/dist/dts/api/ImpostersHandlers.d.ts +9 -0
  137. package/dist/dts/api/ImpostersHandlers.d.ts.map +1 -0
  138. package/dist/dts/api/SystemGroup.d.ts +46 -0
  139. package/dist/dts/api/SystemGroup.d.ts.map +1 -0
  140. package/dist/dts/api/SystemHandlers.d.ts +4 -0
  141. package/dist/dts/api/SystemHandlers.d.ts.map +1 -0
  142. package/dist/dts/cli/Commands.d.ts +4 -0
  143. package/dist/dts/cli/Commands.d.ts.map +1 -0
  144. package/dist/dts/cli/ConfigLoader.d.ts +13 -0
  145. package/dist/dts/cli/ConfigLoader.d.ts.map +1 -0
  146. package/dist/dts/client/HandlerHttpClient.d.ts +5 -0
  147. package/dist/dts/client/HandlerHttpClient.d.ts.map +1 -0
  148. package/dist/dts/client/ImpostersClient.d.ts +1868 -0
  149. package/dist/dts/client/ImpostersClient.d.ts.map +1 -0
  150. package/dist/dts/client/index.d.ts +6 -0
  151. package/dist/dts/client/index.d.ts.map +1 -0
  152. package/dist/dts/client/testing.d.ts +35 -0
  153. package/dist/dts/client/testing.d.ts.map +1 -0
  154. package/dist/dts/domain/imposter.d.ts +123 -0
  155. package/dist/dts/domain/imposter.d.ts.map +1 -0
  156. package/dist/dts/domain/route.d.ts +128 -0
  157. package/dist/dts/domain/route.d.ts.map +1 -0
  158. package/dist/dts/index.d.ts +60 -0
  159. package/dist/dts/index.d.ts.map +1 -0
  160. package/dist/dts/layers/ApiLayer.d.ts +3 -0
  161. package/dist/dts/layers/ApiLayer.d.ts.map +1 -0
  162. package/dist/dts/layers/MainLayer.d.ts +3 -0
  163. package/dist/dts/layers/MainLayer.d.ts.map +1 -0
  164. package/dist/dts/matching/ExpressionEvaluator.d.ts +11 -0
  165. package/dist/dts/matching/ExpressionEvaluator.d.ts.map +1 -0
  166. package/dist/dts/matching/RequestMatcher.d.ts +13 -0
  167. package/dist/dts/matching/RequestMatcher.d.ts.map +1 -0
  168. package/dist/dts/matching/ResponseGenerator.d.ts +9 -0
  169. package/dist/dts/matching/ResponseGenerator.d.ts.map +1 -0
  170. package/dist/dts/matching/TemplateEngine.d.ts +4 -0
  171. package/dist/dts/matching/TemplateEngine.d.ts.map +1 -0
  172. package/dist/dts/repositories/ImposterRepository.d.ts +33 -0
  173. package/dist/dts/repositories/ImposterRepository.d.ts.map +1 -0
  174. package/dist/dts/schemas/ConfigFileSchema.d.ts +142 -0
  175. package/dist/dts/schemas/ConfigFileSchema.d.ts.map +1 -0
  176. package/dist/dts/schemas/ImposterSchema.d.ts +368 -0
  177. package/dist/dts/schemas/ImposterSchema.d.ts.map +1 -0
  178. package/dist/dts/schemas/RequestLogSchema.d.ts +36 -0
  179. package/dist/dts/schemas/RequestLogSchema.d.ts.map +1 -0
  180. package/dist/dts/schemas/StubSchema.d.ts +112 -0
  181. package/dist/dts/schemas/StubSchema.d.ts.map +1 -0
  182. package/dist/dts/schemas/common.d.ts +56 -0
  183. package/dist/dts/schemas/common.d.ts.map +1 -0
  184. package/dist/dts/server/AdminServer.d.ts +11 -0
  185. package/dist/dts/server/AdminServer.d.ts.map +1 -0
  186. package/dist/dts/server/BunServer.d.ts +17 -0
  187. package/dist/dts/server/BunServer.d.ts.map +1 -0
  188. package/dist/dts/server/FiberManager.d.ts +12 -0
  189. package/dist/dts/server/FiberManager.d.ts.map +1 -0
  190. package/dist/dts/server/ImposterServer.d.ts +29 -0
  191. package/dist/dts/server/ImposterServer.d.ts.map +1 -0
  192. package/dist/dts/services/AppConfig.d.ts +14 -0
  193. package/dist/dts/services/AppConfig.d.ts.map +1 -0
  194. package/dist/dts/services/MetricsService.d.ts +26 -0
  195. package/dist/dts/services/MetricsService.d.ts.map +1 -0
  196. package/dist/dts/services/PortAllocator.d.ts +29 -0
  197. package/dist/dts/services/PortAllocator.d.ts.map +1 -0
  198. package/dist/dts/services/ProxyService.d.ts +24 -0
  199. package/dist/dts/services/ProxyService.d.ts.map +1 -0
  200. package/dist/dts/services/RequestLogger.d.ts +23 -0
  201. package/dist/dts/services/RequestLogger.d.ts.map +1 -0
  202. package/dist/dts/services/Uuid.d.ts +9 -0
  203. package/dist/dts/services/Uuid.d.ts.map +1 -0
  204. package/dist/dts/services/UuidLive.d.ts +4 -0
  205. package/dist/dts/services/UuidLive.d.ts.map +1 -0
  206. package/dist/dts/ui/UiRouter.d.ts +15 -0
  207. package/dist/dts/ui/UiRouter.d.ts.map +1 -0
  208. package/dist/dts/ui/admin/AdminLayout.d.ts +7 -0
  209. package/dist/dts/ui/admin/AdminLayout.d.ts.map +1 -0
  210. package/dist/dts/ui/admin/AdminUiRouter.d.ts +6 -0
  211. package/dist/dts/ui/admin/AdminUiRouter.d.ts.map +1 -0
  212. package/dist/dts/ui/admin/pages/AdminDashboard.d.ts +7 -0
  213. package/dist/dts/ui/admin/pages/AdminDashboard.d.ts.map +1 -0
  214. package/dist/dts/ui/admin/partials.d.ts +14 -0
  215. package/dist/dts/ui/admin/partials.d.ts.map +1 -0
  216. package/dist/dts/ui/html.d.ts +12 -0
  217. package/dist/dts/ui/html.d.ts.map +1 -0
  218. package/dist/dts/ui/layout.d.ts +9 -0
  219. package/dist/dts/ui/layout.d.ts.map +1 -0
  220. package/dist/dts/ui/pages/dashboard.d.ts +10 -0
  221. package/dist/dts/ui/pages/dashboard.d.ts.map +1 -0
  222. package/dist/dts/ui/pages/request-detail.d.ts +11 -0
  223. package/dist/dts/ui/pages/request-detail.d.ts.map +1 -0
  224. package/dist/dts/ui/pages/requests.d.ts +15 -0
  225. package/dist/dts/ui/pages/requests.d.ts.map +1 -0
  226. package/dist/dts/ui/pages/stubs.d.ts +8 -0
  227. package/dist/dts/ui/pages/stubs.d.ts.map +1 -0
  228. package/dist/dts/ui/partials.d.ts +13 -0
  229. package/dist/dts/ui/partials.d.ts.map +1 -0
  230. package/dist/esm/Program.js +2 -0
  231. package/dist/esm/Program.js.map +1 -0
  232. package/dist/esm/api/AdminApi.js +5 -0
  233. package/dist/esm/api/AdminApi.js.map +1 -0
  234. package/dist/esm/api/ApiErrors.js +20 -0
  235. package/dist/esm/api/ApiErrors.js.map +1 -0
  236. package/dist/esm/api/ApiSchemas.js +29 -0
  237. package/dist/esm/api/ApiSchemas.js.map +1 -0
  238. package/dist/esm/api/Conversions.js +32 -0
  239. package/dist/esm/api/Conversions.js.map +1 -0
  240. package/dist/esm/api/ImpostersGroup.js +30 -0
  241. package/dist/esm/api/ImpostersGroup.js.map +1 -0
  242. package/dist/esm/api/ImpostersHandlers.js +354 -0
  243. package/dist/esm/api/ImpostersHandlers.js.map +1 -0
  244. package/dist/esm/api/SystemGroup.js +6 -0
  245. package/dist/esm/api/SystemGroup.js.map +1 -0
  246. package/dist/esm/api/SystemHandlers.js +67 -0
  247. package/dist/esm/api/SystemHandlers.js.map +1 -0
  248. package/dist/esm/cli/Commands.js +98 -0
  249. package/dist/esm/cli/Commands.js.map +1 -0
  250. package/dist/esm/cli/ConfigLoader.js +25 -0
  251. package/dist/esm/cli/ConfigLoader.js.map +1 -0
  252. package/dist/esm/client/HandlerHttpClient.js +42 -0
  253. package/dist/esm/client/HandlerHttpClient.js.map +1 -0
  254. package/dist/esm/client/ImpostersClient.js +10 -0
  255. package/dist/esm/client/ImpostersClient.js.map +1 -0
  256. package/dist/esm/client/index.js +4 -0
  257. package/dist/esm/client/index.js.map +1 -0
  258. package/dist/esm/client/testing.js +86 -0
  259. package/dist/esm/client/testing.js.map +1 -0
  260. package/dist/esm/domain/imposter.js +103 -0
  261. package/dist/esm/domain/imposter.js.map +1 -0
  262. package/dist/esm/domain/route.js +164 -0
  263. package/dist/esm/domain/route.js.map +1 -0
  264. package/dist/esm/index.js +60 -0
  265. package/dist/esm/index.js.map +1 -0
  266. package/dist/esm/layers/ApiLayer.js +11 -0
  267. package/dist/esm/layers/ApiLayer.js.map +1 -0
  268. package/dist/esm/layers/MainLayer.js +20 -0
  269. package/dist/esm/layers/MainLayer.js.map +1 -0
  270. package/dist/esm/matching/ExpressionEvaluator.js +94 -0
  271. package/dist/esm/matching/ExpressionEvaluator.js.map +1 -0
  272. package/dist/esm/matching/RequestMatcher.js +135 -0
  273. package/dist/esm/matching/RequestMatcher.js.map +1 -0
  274. package/dist/esm/matching/ResponseGenerator.js +71 -0
  275. package/dist/esm/matching/ResponseGenerator.js.map +1 -0
  276. package/dist/esm/matching/TemplateEngine.js +47 -0
  277. package/dist/esm/matching/TemplateEngine.js.map +1 -0
  278. package/dist/esm/package.json +4 -0
  279. package/dist/esm/repositories/ImposterRepository.js +110 -0
  280. package/dist/esm/repositories/ImposterRepository.js.map +1 -0
  281. package/dist/esm/schemas/ConfigFileSchema.js +37 -0
  282. package/dist/esm/schemas/ConfigFileSchema.js.map +1 -0
  283. package/dist/esm/schemas/ImposterSchema.js +195 -0
  284. package/dist/esm/schemas/ImposterSchema.js.map +1 -0
  285. package/dist/esm/schemas/RequestLogSchema.js +44 -0
  286. package/dist/esm/schemas/RequestLogSchema.js.map +1 -0
  287. package/dist/esm/schemas/StubSchema.js +77 -0
  288. package/dist/esm/schemas/StubSchema.js.map +1 -0
  289. package/dist/esm/schemas/common.js +59 -0
  290. package/dist/esm/schemas/common.js.map +1 -0
  291. package/dist/esm/server/AdminServer.js +27 -0
  292. package/dist/esm/server/AdminServer.js.map +1 -0
  293. package/dist/esm/server/BunServer.js +6 -0
  294. package/dist/esm/server/BunServer.js.map +1 -0
  295. package/dist/esm/server/FiberManager.js +14 -0
  296. package/dist/esm/server/FiberManager.js.map +1 -0
  297. package/dist/esm/server/ImposterServer.js +225 -0
  298. package/dist/esm/server/ImposterServer.js.map +1 -0
  299. package/dist/esm/services/AppConfig.js +11 -0
  300. package/dist/esm/services/AppConfig.js.map +1 -0
  301. package/dist/esm/services/MetricsService.js +105 -0
  302. package/dist/esm/services/MetricsService.js.map +1 -0
  303. package/dist/esm/services/PortAllocator.js +41 -0
  304. package/dist/esm/services/PortAllocator.js.map +1 -0
  305. package/dist/esm/services/ProxyService.js +101 -0
  306. package/dist/esm/services/ProxyService.js.map +1 -0
  307. package/dist/esm/services/RequestLogger.js +53 -0
  308. package/dist/esm/services/RequestLogger.js.map +1 -0
  309. package/dist/esm/services/Uuid.js +3 -0
  310. package/dist/esm/services/Uuid.js.map +1 -0
  311. package/dist/esm/services/UuidLive.js +9 -0
  312. package/dist/esm/services/UuidLive.js.map +1 -0
  313. package/dist/esm/ui/UiRouter.js +235 -0
  314. package/dist/esm/ui/UiRouter.js.map +1 -0
  315. package/dist/esm/ui/admin/AdminLayout.js +29 -0
  316. package/dist/esm/ui/admin/AdminLayout.js.map +1 -0
  317. package/dist/esm/ui/admin/AdminUiRouter.js +148 -0
  318. package/dist/esm/ui/admin/AdminUiRouter.js.map +1 -0
  319. package/dist/esm/ui/admin/pages/AdminDashboard.js +48 -0
  320. package/dist/esm/ui/admin/pages/AdminDashboard.js.map +1 -0
  321. package/dist/esm/ui/admin/partials.js +54 -0
  322. package/dist/esm/ui/admin/partials.js.map +1 -0
  323. package/dist/esm/ui/html.js +32 -0
  324. package/dist/esm/ui/html.js.map +1 -0
  325. package/dist/esm/ui/layout.js +32 -0
  326. package/dist/esm/ui/layout.js.map +1 -0
  327. package/dist/esm/ui/pages/dashboard.js +44 -0
  328. package/dist/esm/ui/pages/dashboard.js.map +1 -0
  329. package/dist/esm/ui/pages/request-detail.js +112 -0
  330. package/dist/esm/ui/pages/request-detail.js.map +1 -0
  331. package/dist/esm/ui/pages/requests.js +112 -0
  332. package/dist/esm/ui/pages/requests.js.map +1 -0
  333. package/dist/esm/ui/pages/stubs.js +39 -0
  334. package/dist/esm/ui/pages/stubs.js.map +1 -0
  335. package/dist/esm/ui/partials.js +91 -0
  336. package/dist/esm/ui/partials.js.map +1 -0
  337. package/domain/imposter/package.json +6 -0
  338. package/domain/route/package.json +6 -0
  339. package/layers/ApiLayer/package.json +6 -0
  340. package/layers/MainLayer/package.json +6 -0
  341. package/matching/ExpressionEvaluator/package.json +6 -0
  342. package/matching/RequestMatcher/package.json +6 -0
  343. package/matching/ResponseGenerator/package.json +6 -0
  344. package/matching/TemplateEngine/package.json +6 -0
  345. package/package.json +435 -0
  346. package/repositories/ImposterRepository/package.json +6 -0
  347. package/schemas/ConfigFileSchema/package.json +6 -0
  348. package/schemas/ImposterSchema/package.json +6 -0
  349. package/schemas/RequestLogSchema/package.json +6 -0
  350. package/schemas/StubSchema/package.json +6 -0
  351. package/schemas/common/package.json +6 -0
  352. package/server/AdminServer/package.json +6 -0
  353. package/server/BunServer/package.json +6 -0
  354. package/server/FiberManager/package.json +6 -0
  355. package/server/ImposterServer/package.json +6 -0
  356. package/services/AppConfig/package.json +6 -0
  357. package/services/MetricsService/package.json +6 -0
  358. package/services/PortAllocator/package.json +6 -0
  359. package/services/ProxyService/package.json +6 -0
  360. package/services/RequestLogger/package.json +6 -0
  361. package/services/Uuid/package.json +6 -0
  362. package/services/UuidLive/package.json +6 -0
  363. package/src/Program.ts +1 -0
  364. package/src/api/AdminApi.ts +7 -0
  365. package/src/api/ApiErrors.ts +20 -0
  366. package/src/api/ApiSchemas.ts +36 -0
  367. package/src/api/Conversions.ts +34 -0
  368. package/src/api/ImpostersGroup.ts +103 -0
  369. package/src/api/ImpostersHandlers.ts +387 -0
  370. package/src/api/SystemGroup.ts +12 -0
  371. package/src/api/SystemHandlers.ts +76 -0
  372. package/src/cli/Commands.ts +119 -0
  373. package/src/cli/ConfigLoader.ts +41 -0
  374. package/src/client/HandlerHttpClient.ts +50 -0
  375. package/src/client/ImpostersClient.ts +21 -0
  376. package/src/client/index.ts +9 -0
  377. package/src/client/testing.ts +105 -0
  378. package/src/domain/imposter.ts +186 -0
  379. package/src/domain/route.ts +255 -0
  380. package/src/index.ts +153 -0
  381. package/src/layers/ApiLayer.ts +21 -0
  382. package/src/layers/MainLayer.ts +43 -0
  383. package/src/matching/ExpressionEvaluator.ts +102 -0
  384. package/src/matching/RequestMatcher.ts +162 -0
  385. package/src/matching/ResponseGenerator.ts +86 -0
  386. package/src/matching/TemplateEngine.ts +54 -0
  387. package/src/repositories/ImposterRepository.ts +145 -0
  388. package/src/schemas/ConfigFileSchema.ts +32 -0
  389. package/src/schemas/ImposterSchema.ts +232 -0
  390. package/src/schemas/RequestLogSchema.ts +38 -0
  391. package/src/schemas/StubSchema.ts +90 -0
  392. package/src/schemas/common.ts +95 -0
  393. package/src/server/AdminServer.ts +22 -0
  394. package/src/server/BunServer.ts +19 -0
  395. package/src/server/FiberManager.ts +25 -0
  396. package/src/server/ImposterServer.ts +244 -0
  397. package/src/services/AppConfig.ts +22 -0
  398. package/src/services/MetricsService.ts +157 -0
  399. package/src/services/PortAllocator.ts +68 -0
  400. package/src/services/ProxyService.ts +139 -0
  401. package/src/services/RequestLogger.ts +87 -0
  402. package/src/services/Uuid.ts +9 -0
  403. package/src/services/UuidLive.ts +9 -0
  404. package/src/types/bun.d.ts +6 -0
  405. package/src/ui/UiRouter.ts +278 -0
  406. package/src/ui/admin/AdminLayout.ts +36 -0
  407. package/src/ui/admin/AdminUiRouter.ts +170 -0
  408. package/src/ui/admin/pages/AdminDashboard.ts +54 -0
  409. package/src/ui/admin/partials.ts +83 -0
  410. package/src/ui/html.ts +37 -0
  411. package/src/ui/layout.ts +44 -0
  412. package/src/ui/pages/dashboard.ts +64 -0
  413. package/src/ui/pages/request-detail.ts +142 -0
  414. package/src/ui/pages/requests.ts +141 -0
  415. package/src/ui/pages/stubs.ts +52 -0
  416. package/src/ui/partials.ts +133 -0
  417. package/ui/UiRouter/package.json +6 -0
  418. package/ui/admin/AdminLayout/package.json +6 -0
  419. package/ui/admin/AdminUiRouter/package.json +6 -0
  420. package/ui/admin/pages/AdminDashboard/package.json +6 -0
  421. package/ui/admin/partials/package.json +6 -0
  422. package/ui/html/package.json +6 -0
  423. package/ui/layout/package.json +6 -0
  424. package/ui/pages/dashboard/package.json +6 -0
  425. package/ui/pages/requests/package.json +6 -0
  426. package/ui/pages/stubs/package.json +6 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RequestMatcher.js","names":["extractRequestContext","request","url","URL","method","toUpperCase","path","pathname","headers","forEach","value","key","toLowerCase","query","searchParams","body","contentType","get","text","includes","JSON","parse","undefined","exports","normalize","s","caseSensitive","matchString","actual","expected","operator","a","e","startsWith","flags","RegExp","test","matchObject","Object","keys","every","entries","val","actualKey","find","k","actualVal","deepSubsetMatch","Array","isArray","i","length","matchBody","stringify","pattern","evaluatePredicate","ctx","predicate","field","evaluatePredicates","predicates","p","findMatchingStub","stubs","stub"],"sources":["../../../src/matching/RequestMatcher.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.makeResponseState = exports.buildResponse = void 0;
7
+ var Effect = _interopRequireWildcard(require("effect/Effect"));
8
+ var HashMap = _interopRequireWildcard(require("effect/HashMap"));
9
+ var Ref = _interopRequireWildcard(require("effect/Ref"));
10
+ var _TemplateEngine = require("./TemplateEngine");
11
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
12
+ const makeResponseState = () => Effect.gen(function* () {
13
+ const countersRef = yield* Ref.make(HashMap.empty());
14
+ const getNextIndex = (imposterId, stubId, count, mode) => {
15
+ const key = `${imposterId}:${stubId}`;
16
+ return Ref.modify(countersRef, counters => {
17
+ const current = HashMap.get(counters, key);
18
+ const index = current._tag === "Some" ? current.value : 0;
19
+ let result;
20
+ switch (mode) {
21
+ case "sequential":
22
+ result = index % count;
23
+ break;
24
+ case "random":
25
+ result = Math.floor(Math.random() * count);
26
+ break;
27
+ case "repeat":
28
+ result = Math.min(index, count - 1);
29
+ break;
30
+ }
31
+ const nextIndex = mode === "random" ? index : index + 1;
32
+ return [Effect.succeed(result), HashMap.set(counters, key, nextIndex)];
33
+ }).pipe(Effect.flatten);
34
+ };
35
+ const reset = imposterId => Ref.update(countersRef, counters => {
36
+ let updated = counters;
37
+ for (const key of HashMap.keys(counters)) {
38
+ if (key.startsWith(`${imposterId}:`)) {
39
+ updated = HashMap.remove(updated, key);
40
+ }
41
+ }
42
+ return updated;
43
+ });
44
+ return {
45
+ getNextIndex,
46
+ reset
47
+ };
48
+ });
49
+ exports.makeResponseState = makeResponseState;
50
+ const buildResponse = async (config, ctx) => {
51
+ const headers = new Headers();
52
+ const responseHeaders = config.headers;
53
+ if (responseHeaders !== undefined) {
54
+ for (const [key, val] of Object.entries(responseHeaders)) {
55
+ const templated = await (0, _TemplateEngine.applyTemplates)(ctx, val);
56
+ headers.set(key, typeof templated === "string" ? templated : String(templated));
57
+ }
58
+ }
59
+ let bodyStr = null;
60
+ if (config.body !== undefined) {
61
+ const templated = await (0, _TemplateEngine.applyTemplates)(ctx, config.body);
62
+ if (typeof templated === "string") {
63
+ bodyStr = templated;
64
+ if (!headers.has("content-type")) {
65
+ headers.set("content-type", "text/plain");
66
+ }
67
+ } else {
68
+ bodyStr = JSON.stringify(templated);
69
+ if (!headers.has("content-type")) {
70
+ headers.set("content-type", "application/json");
71
+ }
72
+ }
73
+ }
74
+ return new Response(bodyStr, {
75
+ status: config.status,
76
+ headers
77
+ });
78
+ };
79
+ exports.buildResponse = buildResponse;
80
+ //# sourceMappingURL=ResponseGenerator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResponseGenerator.js","names":["Effect","_interopRequireWildcard","require","HashMap","Ref","_TemplateEngine","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","makeResponseState","gen","countersRef","make","empty","getNextIndex","imposterId","stubId","count","mode","key","modify","counters","current","index","_tag","value","result","Math","floor","random","min","nextIndex","succeed","pipe","flatten","reset","update","updated","keys","startsWith","remove","exports","buildResponse","config","ctx","headers","Headers","responseHeaders","undefined","val","entries","templated","applyTemplates","String","bodyStr","body","JSON","stringify","Response","status"],"sources":["../../../src/matching/ResponseGenerator.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.flattenRequestContext = exports.applyTemplates = void 0;
7
+ var _route = require("../domain/route");
8
+ var _ExpressionEvaluator = require("./ExpressionEvaluator");
9
+ const flattenObject = (obj, prefix, result) => {
10
+ if (obj === null || obj === undefined) return;
11
+ if (typeof obj === "string") {
12
+ result[prefix] = obj;
13
+ return;
14
+ }
15
+ if (typeof obj === "number" || typeof obj === "boolean") {
16
+ result[prefix] = String(obj);
17
+ return;
18
+ }
19
+ if (Array.isArray(obj)) {
20
+ result[prefix] = JSON.stringify(obj);
21
+ obj.forEach((item, i) => flattenObject(item, `${prefix}.${i}`, result));
22
+ return;
23
+ }
24
+ if (typeof obj === "object") {
25
+ result[prefix] = JSON.stringify(obj);
26
+ for (const [key, val] of Object.entries(obj)) {
27
+ flattenObject(val, `${prefix}.${key}`, result);
28
+ }
29
+ }
30
+ };
31
+ const flattenRequestContext = ctx => {
32
+ const result = {
33
+ "request.method": ctx.method,
34
+ "request.path": ctx.path
35
+ };
36
+ for (const [key, val] of Object.entries(ctx.headers)) {
37
+ result[`request.headers.${key}`] = val;
38
+ }
39
+ for (const [key, val] of Object.entries(ctx.query)) {
40
+ result[`request.query.${key}`] = val;
41
+ }
42
+ if (ctx.body !== undefined && ctx.body !== null) {
43
+ flattenObject(ctx.body, "request.body", result);
44
+ }
45
+ return result;
46
+ };
47
+ exports.flattenRequestContext = flattenRequestContext;
48
+ const applyTemplates = async (ctx, data) => {
49
+ // Step 1: Apply {{key}} substitution
50
+ const substituted = (0, _route.substituteParams)(flattenRequestContext(ctx))(data);
51
+ // Step 2: Apply ${expr} JSONata evaluation
52
+ return (0, _ExpressionEvaluator.processExpressions)(ctx, substituted);
53
+ };
54
+ exports.applyTemplates = applyTemplates;
55
+ //# sourceMappingURL=TemplateEngine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TemplateEngine.js","names":["_route","require","_ExpressionEvaluator","flattenObject","obj","prefix","result","undefined","String","Array","isArray","JSON","stringify","forEach","item","i","key","val","Object","entries","flattenRequestContext","ctx","method","path","headers","query","body","exports","applyTemplates","data","substituted","substituteParams","processExpressions"],"sources":["../../../src/matching/TemplateEngine.ts"],"sourcesContent":[null],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,oBAAA,GAAAD,OAAA;AAGA,MAAME,aAAa,GAAGA,CAACC,GAAY,EAAEC,MAAc,EAAEC,MAA8B,KAAU;EAC3F,IAAIF,GAAG,KAAK,IAAI,IAAIA,GAAG,KAAKG,SAAS,EAAE;EACvC,IAAI,OAAOH,GAAG,KAAK,QAAQ,EAAE;IAC3BE,MAAM,CAACD,MAAM,CAAC,GAAGD,GAAG;IACpB;EACF;EACA,IAAI,OAAOA,GAAG,KAAK,QAAQ,IAAI,OAAOA,GAAG,KAAK,SAAS,EAAE;IACvDE,MAAM,CAACD,MAAM,CAAC,GAAGG,MAAM,CAACJ,GAAG,CAAC;IAC5B;EACF;EACA,IAAIK,KAAK,CAACC,OAAO,CAACN,GAAG,CAAC,EAAE;IACtBE,MAAM,CAACD,MAAM,CAAC,GAAGM,IAAI,CAACC,SAAS,CAACR,GAAG,CAAC;IACpCA,GAAG,CAACS,OAAO,CAAC,CAACC,IAAI,EAAEC,CAAC,KAAKZ,aAAa,CAACW,IAAI,EAAE,GAAGT,MAAM,IAAIU,CAAC,EAAE,EAAET,MAAM,CAAC,CAAC;IACvE;EACF;EACA,IAAI,OAAOF,GAAG,KAAK,QAAQ,EAAE;IAC3BE,MAAM,CAACD,MAAM,CAAC,GAAGM,IAAI,CAACC,SAAS,CAACR,GAAG,CAAC;IACpC,KAAK,MAAM,CAACY,GAAG,EAAEC,GAAG,CAAC,IAAIC,MAAM,CAACC,OAAO,CAACf,GAA8B,CAAC,EAAE;MACvED,aAAa,CAACc,GAAG,EAAE,GAAGZ,MAAM,IAAIW,GAAG,EAAE,EAAEV,MAAM,CAAC;IAChD;EACF;AACF,CAAC;AAEM,MAAMc,qBAAqB,GAAIC,GAAmB,IAA4B;EACnF,MAAMf,MAAM,GAA2B;IACrC,gBAAgB,EAAEe,GAAG,CAACC,MAAM;IAC5B,cAAc,EAAED,GAAG,CAACE;GACrB;EAED,KAAK,MAAM,CAACP,GAAG,EAAEC,GAAG,CAAC,IAAIC,MAAM,CAACC,OAAO,CAACE,GAAG,CAACG,OAAO,CAAC,EAAE;IACpDlB,MAAM,CAAC,mBAAmBU,GAAG,EAAE,CAAC,GAAGC,GAAG;EACxC;EAEA,KAAK,MAAM,CAACD,GAAG,EAAEC,GAAG,CAAC,IAAIC,MAAM,CAACC,OAAO,CAACE,GAAG,CAACI,KAAK,CAAC,EAAE;IAClDnB,MAAM,CAAC,iBAAiBU,GAAG,EAAE,CAAC,GAAGC,GAAG;EACtC;EAEA,IAAII,GAAG,CAACK,IAAI,KAAKnB,SAAS,IAAIc,GAAG,CAACK,IAAI,KAAK,IAAI,EAAE;IAC/CvB,aAAa,CAACkB,GAAG,CAACK,IAAI,EAAE,cAAc,EAAEpB,MAAM,CAAC;EACjD;EAEA,OAAOA,MAAM;AACf,CAAC;AAAAqB,OAAA,CAAAP,qBAAA,GAAAA,qBAAA;AAEM,MAAMQ,cAAc,GAAG,MAAAA,CAAOP,GAAmB,EAAEQ,IAAa,KAAsB;EAC3F;EACA,MAAMC,WAAW,GAAG,IAAAC,uBAAgB,EAACX,qBAAqB,CAACC,GAAG,CAAC,CAAC,CAACQ,IAAI,CAAC;EACtE;EACA,OAAO,IAAAG,uCAAkB,EAACX,GAAG,EAAES,WAAW,CAAC;AAC7C,CAAC;AAAAH,OAAA,CAAAC,cAAA,GAAAA,cAAA","ignoreList":[]}
@@ -0,0 +1,118 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.StubNotFoundError = exports.ImposterRepositoryLive = exports.ImposterRepository = void 0;
7
+ var _effect = require("effect");
8
+ var _imposter = require("../domain/imposter");
9
+ class StubNotFoundError extends _effect.Data.TaggedError("StubNotFoundError") {}
10
+ exports.StubNotFoundError = StubNotFoundError;
11
+ class ImposterRepository extends _effect.Context.Tag("ImposterRepository")() {}
12
+ exports.ImposterRepository = ImposterRepository;
13
+ const ImposterRepositoryLive = exports.ImposterRepositoryLive = /*#__PURE__*/_effect.Layer.effect(ImposterRepository, /*#__PURE__*/_effect.Effect.gen(function* () {
14
+ const storeRef = yield* _effect.Ref.make(_effect.HashMap.empty());
15
+ const getRecord = id => _effect.Ref.get(storeRef).pipe(_effect.Effect.flatMap(store => {
16
+ const record = _effect.HashMap.get(store, id);
17
+ return record._tag === "Some" ? _effect.Effect.succeed(record.value) : _effect.Effect.fail(new _imposter.ImposterNotFoundError({
18
+ id
19
+ }));
20
+ }));
21
+ const create = config => {
22
+ const record = {
23
+ config,
24
+ stubs: []
25
+ };
26
+ return _effect.Ref.modify(storeRef, store => [_effect.Effect.succeed(record), _effect.HashMap.set(store, config.id, record)]).pipe(_effect.Effect.flatten);
27
+ };
28
+ const get = id => getRecord(id);
29
+ const getAll = _effect.Ref.get(storeRef).pipe(_effect.Effect.map(store => Array.from(_effect.HashMap.values(store))));
30
+ const update = (id, fn) => _effect.Ref.modify(storeRef, store => {
31
+ const existing = _effect.HashMap.get(store, id);
32
+ if (existing._tag === "None") {
33
+ return [_effect.Effect.fail(new _imposter.ImposterNotFoundError({
34
+ id
35
+ })), store];
36
+ }
37
+ const updated = fn(existing.value);
38
+ return [_effect.Effect.succeed(updated), _effect.HashMap.set(store, id, updated)];
39
+ }).pipe(_effect.Effect.flatten);
40
+ const remove = id => _effect.Ref.modify(storeRef, store => {
41
+ const existing = _effect.HashMap.get(store, id);
42
+ if (existing._tag === "None") {
43
+ return [_effect.Effect.fail(new _imposter.ImposterNotFoundError({
44
+ id
45
+ })), store];
46
+ }
47
+ return [_effect.Effect.succeed(existing.value), _effect.HashMap.remove(store, id)];
48
+ }).pipe(_effect.Effect.flatten);
49
+ const addStub = (imposterId, stub) => _effect.Ref.modify(storeRef, store => {
50
+ const existing = _effect.HashMap.get(store, imposterId);
51
+ if (existing._tag === "None") {
52
+ return [_effect.Effect.fail(new _imposter.ImposterNotFoundError({
53
+ id: imposterId
54
+ })), store];
55
+ }
56
+ const updated = {
57
+ ...existing.value,
58
+ stubs: [...existing.value.stubs, stub]
59
+ };
60
+ return [_effect.Effect.succeed(stub), _effect.HashMap.set(store, imposterId, updated)];
61
+ }).pipe(_effect.Effect.flatten);
62
+ const getStubs = imposterId => getRecord(imposterId).pipe(_effect.Effect.map(r => r.stubs));
63
+ const updateStub = (imposterId, stubId, fn) => _effect.Ref.modify(storeRef, store => {
64
+ const existing = _effect.HashMap.get(store, imposterId);
65
+ if (existing._tag === "None") {
66
+ return [_effect.Effect.fail(new _imposter.ImposterNotFoundError({
67
+ id: imposterId
68
+ })), store];
69
+ }
70
+ const stubIndex = existing.value.stubs.findIndex(s => s.id === stubId);
71
+ if (stubIndex === -1) {
72
+ return [_effect.Effect.fail(new StubNotFoundError({
73
+ imposterId,
74
+ stubId
75
+ })), store];
76
+ }
77
+ const updatedStub = fn(existing.value.stubs[stubIndex]);
78
+ const newStubs = [...existing.value.stubs];
79
+ newStubs[stubIndex] = updatedStub;
80
+ const updated = {
81
+ ...existing.value,
82
+ stubs: newStubs
83
+ };
84
+ return [_effect.Effect.succeed(updatedStub), _effect.HashMap.set(store, imposterId, updated)];
85
+ }).pipe(_effect.Effect.flatten);
86
+ const removeStub = (imposterId, stubId) => _effect.Ref.modify(storeRef, store => {
87
+ const existing = _effect.HashMap.get(store, imposterId);
88
+ if (existing._tag === "None") {
89
+ return [_effect.Effect.fail(new _imposter.ImposterNotFoundError({
90
+ id: imposterId
91
+ })), store];
92
+ }
93
+ const stub = existing.value.stubs.find(s => s.id === stubId);
94
+ if (!stub) {
95
+ return [_effect.Effect.fail(new StubNotFoundError({
96
+ imposterId,
97
+ stubId
98
+ })), store];
99
+ }
100
+ const updated = {
101
+ ...existing.value,
102
+ stubs: existing.value.stubs.filter(s => s.id !== stubId)
103
+ };
104
+ return [_effect.Effect.succeed(stub), _effect.HashMap.set(store, imposterId, updated)];
105
+ }).pipe(_effect.Effect.flatten);
106
+ return {
107
+ create,
108
+ get,
109
+ getAll,
110
+ update,
111
+ remove,
112
+ addStub,
113
+ getStubs,
114
+ updateStub,
115
+ removeStub
116
+ };
117
+ }));
118
+ //# sourceMappingURL=ImposterRepository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ImposterRepository.js","names":["_effect","require","_imposter","StubNotFoundError","Data","TaggedError","exports","ImposterRepository","Context","Tag","ImposterRepositoryLive","Layer","effect","Effect","gen","storeRef","Ref","make","HashMap","empty","getRecord","id","get","pipe","flatMap","store","record","_tag","succeed","value","fail","ImposterNotFoundError","create","config","stubs","modify","set","flatten","getAll","map","Array","from","values","update","fn","existing","updated","remove","addStub","imposterId","stub","getStubs","r","updateStub","stubId","stubIndex","findIndex","s","updatedStub","newStubs","removeStub","find","filter"],"sources":["../../../src/repositories/ImposterRepository.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.ImposterConfig = exports.ConfigFile = exports.AdminConfig = void 0;
7
+ var Schema = _interopRequireWildcard(require("effect/Schema"));
8
+ var _common = require("./common");
9
+ var _StubSchema = require("./StubSchema");
10
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
11
+ const ImposterConfig = exports.ImposterConfig = /*#__PURE__*/Schema.Struct({
12
+ name: /*#__PURE__*/Schema.optional(_common.NonEmptyString),
13
+ port: _common.PortNumber,
14
+ stubs: /*#__PURE__*/Schema.optionalWith(/*#__PURE__*/Schema.Array(_StubSchema.CreateStubRequest), {
15
+ default: () => []
16
+ }),
17
+ proxy: /*#__PURE__*/Schema.optional(_StubSchema.ProxyConfig)
18
+ });
19
+ const AdminConfig = exports.AdminConfig = /*#__PURE__*/Schema.Struct({
20
+ port: /*#__PURE__*/Schema.optionalWith(_common.PortNumber, {
21
+ default: () => 2525
22
+ }),
23
+ portRangeMin: /*#__PURE__*/Schema.optionalWith(_common.PortNumber, {
24
+ default: () => 3000
25
+ }),
26
+ portRangeMax: /*#__PURE__*/Schema.optionalWith(_common.PortNumber, {
27
+ default: () => 4000
28
+ }),
29
+ maxImposters: /*#__PURE__*/Schema.optionalWith(/*#__PURE__*/Schema.Number.pipe(/*#__PURE__*/Schema.int(), /*#__PURE__*/Schema.positive()), {
30
+ default: () => 100
31
+ }),
32
+ logLevel: /*#__PURE__*/Schema.optionalWith(/*#__PURE__*/Schema.Literal("debug", "info", "warn", "error"), {
33
+ default: () => "info"
34
+ })
35
+ });
36
+ const ConfigFile = exports.ConfigFile = /*#__PURE__*/Schema.Struct({
37
+ admin: /*#__PURE__*/Schema.optionalWith(AdminConfig, {
38
+ default: () => Schema.decodeSync(AdminConfig)({})
39
+ }),
40
+ imposters: /*#__PURE__*/Schema.optionalWith(/*#__PURE__*/Schema.Array(ImposterConfig), {
41
+ default: () => []
42
+ })
43
+ });
44
+ //# sourceMappingURL=ConfigFileSchema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConfigFileSchema.js","names":["Schema","_interopRequireWildcard","require","_common","_StubSchema","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ImposterConfig","exports","Struct","name","optional","NonEmptyString","port","PortNumber","stubs","optionalWith","Array","CreateStubRequest","proxy","ProxyConfig","AdminConfig","portRangeMin","portRangeMax","maxImposters","Number","pipe","int","positive","logLevel","Literal","ConfigFile","admin","decodeSync","imposters"],"sources":["../../../src/schemas/ConfigFileSchema.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,202 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.UpdateImposterRequest = exports.SystemInfo = exports.Statistics = exports.ServerInfoResponse = exports.ServerInfo = exports.ServerFeatures = exports.ServerConfiguration = exports.RouteResponse = exports.PortsSummary = exports.MemoryInfo = exports.ListRoutesResponse = exports.ListImpostersResponse = exports.ListImpostersQuery = exports.ImpostersSummary = exports.ImposterResponse = exports.HealthResponse = exports.EndpointSummary = exports.DeleteImposterResponse = exports.DeleteImposterQuery = exports.CreateRouteRequest = exports.CreateImposterRequest = void 0;
7
+ var Schema = _interopRequireWildcard(require("effect/Schema"));
8
+ var _common = require("./common");
9
+ var _StubSchema = require("./StubSchema");
10
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
11
+ // Create Imposter Request Schema - POST /imposters
12
+ const CreateImposterRequest = exports.CreateImposterRequest = /*#__PURE__*/Schema.Struct({
13
+ name: /*#__PURE__*/Schema.optional(_common.NonEmptyString),
14
+ port: /*#__PURE__*/Schema.optional(_common.PortNumber),
15
+ protocol: /*#__PURE__*/Schema.optionalWith(_common.Protocol, {
16
+ default: () => "HTTP"
17
+ }),
18
+ adminPath: /*#__PURE__*/Schema.optionalWith(/*#__PURE__*/Schema.String.pipe(/*#__PURE__*/Schema.startsWith("/")), {
19
+ default: () => "/_admin"
20
+ }),
21
+ proxy: /*#__PURE__*/Schema.optional(_StubSchema.ProxyConfig)
22
+ });
23
+ // Update Imposter Request Schema - PATCH /imposters/{id}
24
+ const UpdateImposterRequest = exports.UpdateImposterRequest = /*#__PURE__*/Schema.Struct({
25
+ name: /*#__PURE__*/Schema.optional(_common.NonEmptyString),
26
+ status: /*#__PURE__*/Schema.optional(_common.ImposterStatus),
27
+ port: /*#__PURE__*/Schema.optional(_common.PortNumber),
28
+ adminPath: /*#__PURE__*/Schema.optional(/*#__PURE__*/Schema.String.pipe(/*#__PURE__*/Schema.startsWith("/"))),
29
+ proxy: /*#__PURE__*/Schema.optional(/*#__PURE__*/Schema.NullOr(_StubSchema.ProxyConfig))
30
+ });
31
+ // List Imposters Query Schema - GET /imposters query params
32
+ const ListImpostersQuery = exports.ListImpostersQuery = /*#__PURE__*/Schema.Struct({
33
+ ..._common.PaginationQuery.fields,
34
+ status: _common.StatusFilter,
35
+ protocol: _common.ProtocolFilter
36
+ });
37
+ // Route API Schemas
38
+ const CreateRouteRequest = exports.CreateRouteRequest = /*#__PURE__*/Schema.Struct({
39
+ path: /*#__PURE__*/Schema.String.pipe(/*#__PURE__*/Schema.startsWith("/")),
40
+ method: /*#__PURE__*/Schema.optionalWith(/*#__PURE__*/Schema.Literal("GET", "POST", "PUT", "DELETE", "PATCH", "HEAD", "OPTIONS"), {
41
+ default: () => "GET"
42
+ }),
43
+ response: /*#__PURE__*/Schema.Struct({
44
+ status: /*#__PURE__*/Schema.optionalWith(/*#__PURE__*/Schema.Number.pipe(/*#__PURE__*/Schema.int(), /*#__PURE__*/Schema.between(100, 599)), {
45
+ default: () => 200
46
+ }),
47
+ headers: /*#__PURE__*/Schema.optional(/*#__PURE__*/Schema.Record({
48
+ key: Schema.String,
49
+ value: Schema.String
50
+ })),
51
+ body: /*#__PURE__*/Schema.optional(Schema.Unknown)
52
+ }),
53
+ delay: /*#__PURE__*/Schema.optional(/*#__PURE__*/Schema.Number.pipe(/*#__PURE__*/Schema.int(), /*#__PURE__*/Schema.between(0, 60000)))
54
+ });
55
+ const RouteResponse = exports.RouteResponse = /*#__PURE__*/Schema.Struct({
56
+ id: _common.NonEmptyString,
57
+ path: _common.NonEmptyString,
58
+ method: /*#__PURE__*/Schema.Literal("GET", "POST", "PUT", "DELETE", "PATCH", "HEAD", "OPTIONS"),
59
+ response: /*#__PURE__*/Schema.Struct({
60
+ status: /*#__PURE__*/Schema.Number.pipe(/*#__PURE__*/Schema.int(), /*#__PURE__*/Schema.between(100, 599)),
61
+ headers: /*#__PURE__*/Schema.optional(/*#__PURE__*/Schema.Record({
62
+ key: Schema.String,
63
+ value: Schema.String
64
+ })),
65
+ body: /*#__PURE__*/Schema.optional(Schema.Unknown)
66
+ }),
67
+ delay: /*#__PURE__*/Schema.optional(/*#__PURE__*/Schema.Number.pipe(/*#__PURE__*/Schema.int(), /*#__PURE__*/Schema.between(0, 60000))),
68
+ createdAt: Schema.DateTimeUtc
69
+ });
70
+ const ListRoutesResponse = exports.ListRoutesResponse = /*#__PURE__*/Schema.Struct({
71
+ routes: /*#__PURE__*/Schema.Array(RouteResponse),
72
+ pagination: _common.PaginationMeta
73
+ });
74
+ // Endpoint Summary Schema (for imposter responses)
75
+ const EndpointSummary = exports.EndpointSummary = /*#__PURE__*/Schema.Struct({
76
+ id: _common.NonEmptyString,
77
+ path: _common.NonEmptyString,
78
+ method: _common.NonEmptyString,
79
+ status: /*#__PURE__*/Schema.Number.pipe(/*#__PURE__*/Schema.int(), /*#__PURE__*/Schema.between(100, 599)),
80
+ hasDelay: Schema.Boolean,
81
+ delayMs: /*#__PURE__*/Schema.optional(/*#__PURE__*/Schema.Number.pipe(/*#__PURE__*/Schema.int(), /*#__PURE__*/Schema.nonNegative()))
82
+ });
83
+ // Statistics Schema
84
+ const Statistics = exports.Statistics = /*#__PURE__*/Schema.Struct({
85
+ totalRequests: /*#__PURE__*/Schema.Number.pipe(/*#__PURE__*/Schema.int(), /*#__PURE__*/Schema.nonNegative()),
86
+ requestsPerMinute: /*#__PURE__*/Schema.Number.pipe(/*#__PURE__*/Schema.nonNegative()),
87
+ averageResponseTime: /*#__PURE__*/Schema.Number.pipe(/*#__PURE__*/Schema.nonNegative()),
88
+ errorRate: /*#__PURE__*/Schema.Number.pipe(/*#__PURE__*/Schema.between(0, 1)),
89
+ requestsByMethod: /*#__PURE__*/Schema.optionalWith(/*#__PURE__*/Schema.Record({
90
+ key: Schema.String,
91
+ value: Schema.Number
92
+ }), {
93
+ default: () => ({})
94
+ }),
95
+ requestsByStatusCode: /*#__PURE__*/Schema.optionalWith(/*#__PURE__*/Schema.Record({
96
+ key: Schema.String,
97
+ value: Schema.Number
98
+ }), {
99
+ default: () => ({})
100
+ }),
101
+ lastRequestAt: /*#__PURE__*/Schema.optional(Schema.DateTimeUtc),
102
+ p50ResponseTime: /*#__PURE__*/Schema.optional(Schema.Number),
103
+ p95ResponseTime: /*#__PURE__*/Schema.optional(Schema.Number),
104
+ p99ResponseTime: /*#__PURE__*/Schema.optional(Schema.Number)
105
+ });
106
+ // Core Imposter Response Schema
107
+ const ImposterResponse = exports.ImposterResponse = /*#__PURE__*/Schema.Struct({
108
+ id: _common.NonEmptyString,
109
+ name: _common.NonEmptyString,
110
+ port: _common.PortNumber,
111
+ protocol: _common.Protocol,
112
+ status: _common.ImposterStatus,
113
+ endpointCount: /*#__PURE__*/Schema.Number.pipe(/*#__PURE__*/Schema.int(), /*#__PURE__*/Schema.nonNegative()),
114
+ createdAt: Schema.DateTimeUtc,
115
+ adminUrl: _common.NonEmptyString,
116
+ adminPath: _common.NonEmptyString,
117
+ uptime: /*#__PURE__*/Schema.optional(Schema.String),
118
+ // Formatted duration string
119
+ endpoints: /*#__PURE__*/Schema.optional(/*#__PURE__*/Schema.Array(EndpointSummary)),
120
+ statistics: /*#__PURE__*/Schema.optional(Statistics),
121
+ proxy: /*#__PURE__*/Schema.optional(_StubSchema.ProxyConfig)
122
+ });
123
+ // List Imposters Response Schema - GET /imposters
124
+ const ListImpostersResponse = exports.ListImpostersResponse = /*#__PURE__*/Schema.Struct({
125
+ imposters: /*#__PURE__*/Schema.Array(ImposterResponse),
126
+ pagination: _common.PaginationMeta
127
+ });
128
+ // Delete Imposter Query Schema - DELETE /imposters/{id}
129
+ const DeleteImposterQuery = exports.DeleteImposterQuery = /*#__PURE__*/Schema.Struct({
130
+ force: /*#__PURE__*/Schema.optionalWith(Schema.Boolean, {
131
+ default: () => false
132
+ })
133
+ });
134
+ // Delete Imposter Response Schema
135
+ const DeleteImposterResponse = exports.DeleteImposterResponse = /*#__PURE__*/Schema.Struct({
136
+ message: _common.NonEmptyString,
137
+ id: _common.NonEmptyString,
138
+ deletedAt: Schema.DateTimeUtc
139
+ });
140
+ // System Memory Info Schema
141
+ const MemoryInfo = exports.MemoryInfo = /*#__PURE__*/Schema.Struct({
142
+ used: _common.NonEmptyString,
143
+ free: _common.NonEmptyString
144
+ });
145
+ // System Imposters Summary Schema
146
+ const ImpostersSummary = exports.ImpostersSummary = /*#__PURE__*/Schema.Struct({
147
+ total: /*#__PURE__*/Schema.Number.pipe(/*#__PURE__*/Schema.int(), /*#__PURE__*/Schema.nonNegative()),
148
+ running: /*#__PURE__*/Schema.Number.pipe(/*#__PURE__*/Schema.int(), /*#__PURE__*/Schema.nonNegative()),
149
+ stopped: /*#__PURE__*/Schema.Number.pipe(/*#__PURE__*/Schema.int(), /*#__PURE__*/Schema.nonNegative())
150
+ });
151
+ // System Ports Summary Schema
152
+ const PortsSummary = exports.PortsSummary = /*#__PURE__*/Schema.Struct({
153
+ available: /*#__PURE__*/Schema.Number.pipe(/*#__PURE__*/Schema.int(), /*#__PURE__*/Schema.nonNegative()),
154
+ allocated: /*#__PURE__*/Schema.Number.pipe(/*#__PURE__*/Schema.int(), /*#__PURE__*/Schema.nonNegative())
155
+ });
156
+ // System Info Schema (for health endpoint)
157
+ const SystemInfo = exports.SystemInfo = /*#__PURE__*/Schema.Struct({
158
+ memory: MemoryInfo,
159
+ imposters: ImpostersSummary,
160
+ ports: PortsSummary
161
+ });
162
+ // Health Response Schema - GET /health
163
+ const HealthResponse = exports.HealthResponse = /*#__PURE__*/Schema.Struct({
164
+ status: /*#__PURE__*/Schema.Literal("healthy", "unhealthy"),
165
+ timestamp: Schema.DateTimeUtc,
166
+ version: _common.NonEmptyString,
167
+ uptime: Schema.String,
168
+ // Formatted duration
169
+ system: SystemInfo
170
+ });
171
+ // Server Configuration Schema
172
+ const ServerConfiguration = exports.ServerConfiguration = /*#__PURE__*/Schema.Struct({
173
+ maxImposters: /*#__PURE__*/Schema.Number.pipe(/*#__PURE__*/Schema.int(), /*#__PURE__*/Schema.positive()),
174
+ portRange: /*#__PURE__*/Schema.Struct({
175
+ min: _common.PortNumber,
176
+ max: _common.PortNumber
177
+ }),
178
+ defaultTimeout: /*#__PURE__*/Schema.Number.pipe(/*#__PURE__*/Schema.int(), /*#__PURE__*/Schema.positive()),
179
+ logLevel: /*#__PURE__*/Schema.Literal("debug", "info", "warn", "error")
180
+ });
181
+ // Server Features Schema
182
+ const ServerFeatures = exports.ServerFeatures = /*#__PURE__*/Schema.Struct({
183
+ openApiGeneration: Schema.Boolean,
184
+ clientGeneration: Schema.Boolean,
185
+ authentication: Schema.Boolean,
186
+ clustering: Schema.Boolean
187
+ });
188
+ // Server Info Schema
189
+ const ServerInfo = exports.ServerInfo = /*#__PURE__*/Schema.Struct({
190
+ name: _common.NonEmptyString,
191
+ version: _common.NonEmptyString,
192
+ buildTime: Schema.DateTimeUtc,
193
+ platform: _common.NonEmptyString,
194
+ protocols: /*#__PURE__*/Schema.Array(_common.Protocol)
195
+ });
196
+ // Server Info Response Schema - GET /info
197
+ const ServerInfoResponse = exports.ServerInfoResponse = /*#__PURE__*/Schema.Struct({
198
+ server: ServerInfo,
199
+ configuration: ServerConfiguration,
200
+ features: ServerFeatures
201
+ });
202
+ //# sourceMappingURL=ImposterSchema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ImposterSchema.js","names":["Schema","_interopRequireWildcard","require","_common","_StubSchema","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","CreateImposterRequest","exports","Struct","name","optional","NonEmptyString","port","PortNumber","protocol","optionalWith","Protocol","adminPath","String","pipe","startsWith","proxy","ProxyConfig","UpdateImposterRequest","status","ImposterStatus","NullOr","ListImpostersQuery","PaginationQuery","fields","StatusFilter","ProtocolFilter","CreateRouteRequest","path","method","Literal","response","Number","int","between","headers","Record","key","value","body","Unknown","delay","RouteResponse","id","createdAt","DateTimeUtc","ListRoutesResponse","routes","Array","pagination","PaginationMeta","EndpointSummary","hasDelay","Boolean","delayMs","nonNegative","Statistics","totalRequests","requestsPerMinute","averageResponseTime","errorRate","requestsByMethod","requestsByStatusCode","lastRequestAt","p50ResponseTime","p95ResponseTime","p99ResponseTime","ImposterResponse","endpointCount","adminUrl","uptime","endpoints","statistics","ListImpostersResponse","imposters","DeleteImposterQuery","force","DeleteImposterResponse","message","deletedAt","MemoryInfo","used","free","ImpostersSummary","total","running","stopped","PortsSummary","available","allocated","SystemInfo","memory","ports","HealthResponse","timestamp","version","system","ServerConfiguration","maxImposters","positive","portRange","min","max","defaultTimeout","logLevel","ServerFeatures","openApiGeneration","clientGeneration","authentication","clustering","ServerInfo","buildTime","platform","protocols","ServerInfoResponse","server","configuration","features"],"sources":["../../../src/schemas/ImposterSchema.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}