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,47 @@
1
+ import { substituteParams } from "../domain/route";
2
+ import { processExpressions } from "./ExpressionEvaluator";
3
+ const flattenObject = (obj, prefix, result) => {
4
+ if (obj === null || obj === undefined) return;
5
+ if (typeof obj === "string") {
6
+ result[prefix] = obj;
7
+ return;
8
+ }
9
+ if (typeof obj === "number" || typeof obj === "boolean") {
10
+ result[prefix] = String(obj);
11
+ return;
12
+ }
13
+ if (Array.isArray(obj)) {
14
+ result[prefix] = JSON.stringify(obj);
15
+ obj.forEach((item, i) => flattenObject(item, `${prefix}.${i}`, result));
16
+ return;
17
+ }
18
+ if (typeof obj === "object") {
19
+ result[prefix] = JSON.stringify(obj);
20
+ for (const [key, val] of Object.entries(obj)) {
21
+ flattenObject(val, `${prefix}.${key}`, result);
22
+ }
23
+ }
24
+ };
25
+ export const flattenRequestContext = ctx => {
26
+ const result = {
27
+ "request.method": ctx.method,
28
+ "request.path": ctx.path
29
+ };
30
+ for (const [key, val] of Object.entries(ctx.headers)) {
31
+ result[`request.headers.${key}`] = val;
32
+ }
33
+ for (const [key, val] of Object.entries(ctx.query)) {
34
+ result[`request.query.${key}`] = val;
35
+ }
36
+ if (ctx.body !== undefined && ctx.body !== null) {
37
+ flattenObject(ctx.body, "request.body", result);
38
+ }
39
+ return result;
40
+ };
41
+ export const applyTemplates = async (ctx, data) => {
42
+ // Step 1: Apply {{key}} substitution
43
+ const substituted = substituteParams(flattenRequestContext(ctx))(data);
44
+ // Step 2: Apply ${expr} JSONata evaluation
45
+ return processExpressions(ctx, substituted);
46
+ };
47
+ //# sourceMappingURL=TemplateEngine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TemplateEngine.js","names":["substituteParams","processExpressions","flattenObject","obj","prefix","result","undefined","String","Array","isArray","JSON","stringify","forEach","item","i","key","val","Object","entries","flattenRequestContext","ctx","method","path","headers","query","body","applyTemplates","data","substituted"],"sources":["../../../src/matching/TemplateEngine.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,gBAAgB,QAAQ,iBAAiB;AAClD,SAASC,kBAAkB,QAAQ,uBAAuB;AAG1D,MAAMC,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;AAED,OAAO,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;AAED,OAAO,MAAMqB,cAAc,GAAG,MAAAA,CAAON,GAAmB,EAAEO,IAAa,KAAsB;EAC3F;EACA,MAAMC,WAAW,GAAG5B,gBAAgB,CAACmB,qBAAqB,CAACC,GAAG,CAAC,CAAC,CAACO,IAAI,CAAC;EACtE;EACA,OAAO1B,kBAAkB,CAACmB,GAAG,EAAEQ,WAAW,CAAC;AAC7C,CAAC","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ {
2
+ "type": "module",
3
+ "sideEffects": []
4
+ }
@@ -0,0 +1,110 @@
1
+ import { Context, Data, Effect, HashMap, Layer, Ref } from "effect";
2
+ import { ImposterNotFoundError } from "../domain/imposter";
3
+ export class StubNotFoundError extends Data.TaggedError("StubNotFoundError") {}
4
+ export class ImposterRepository extends Context.Tag("ImposterRepository")() {}
5
+ export const ImposterRepositoryLive = /*#__PURE__*/Layer.effect(ImposterRepository, /*#__PURE__*/Effect.gen(function* () {
6
+ const storeRef = yield* Ref.make(HashMap.empty());
7
+ const getRecord = id => Ref.get(storeRef).pipe(Effect.flatMap(store => {
8
+ const record = HashMap.get(store, id);
9
+ return record._tag === "Some" ? Effect.succeed(record.value) : Effect.fail(new ImposterNotFoundError({
10
+ id
11
+ }));
12
+ }));
13
+ const create = config => {
14
+ const record = {
15
+ config,
16
+ stubs: []
17
+ };
18
+ return Ref.modify(storeRef, store => [Effect.succeed(record), HashMap.set(store, config.id, record)]).pipe(Effect.flatten);
19
+ };
20
+ const get = id => getRecord(id);
21
+ const getAll = Ref.get(storeRef).pipe(Effect.map(store => Array.from(HashMap.values(store))));
22
+ const update = (id, fn) => Ref.modify(storeRef, store => {
23
+ const existing = HashMap.get(store, id);
24
+ if (existing._tag === "None") {
25
+ return [Effect.fail(new ImposterNotFoundError({
26
+ id
27
+ })), store];
28
+ }
29
+ const updated = fn(existing.value);
30
+ return [Effect.succeed(updated), HashMap.set(store, id, updated)];
31
+ }).pipe(Effect.flatten);
32
+ const remove = id => Ref.modify(storeRef, store => {
33
+ const existing = HashMap.get(store, id);
34
+ if (existing._tag === "None") {
35
+ return [Effect.fail(new ImposterNotFoundError({
36
+ id
37
+ })), store];
38
+ }
39
+ return [Effect.succeed(existing.value), HashMap.remove(store, id)];
40
+ }).pipe(Effect.flatten);
41
+ const addStub = (imposterId, stub) => Ref.modify(storeRef, store => {
42
+ const existing = HashMap.get(store, imposterId);
43
+ if (existing._tag === "None") {
44
+ return [Effect.fail(new ImposterNotFoundError({
45
+ id: imposterId
46
+ })), store];
47
+ }
48
+ const updated = {
49
+ ...existing.value,
50
+ stubs: [...existing.value.stubs, stub]
51
+ };
52
+ return [Effect.succeed(stub), HashMap.set(store, imposterId, updated)];
53
+ }).pipe(Effect.flatten);
54
+ const getStubs = imposterId => getRecord(imposterId).pipe(Effect.map(r => r.stubs));
55
+ const updateStub = (imposterId, stubId, fn) => Ref.modify(storeRef, store => {
56
+ const existing = HashMap.get(store, imposterId);
57
+ if (existing._tag === "None") {
58
+ return [Effect.fail(new ImposterNotFoundError({
59
+ id: imposterId
60
+ })), store];
61
+ }
62
+ const stubIndex = existing.value.stubs.findIndex(s => s.id === stubId);
63
+ if (stubIndex === -1) {
64
+ return [Effect.fail(new StubNotFoundError({
65
+ imposterId,
66
+ stubId
67
+ })), store];
68
+ }
69
+ const updatedStub = fn(existing.value.stubs[stubIndex]);
70
+ const newStubs = [...existing.value.stubs];
71
+ newStubs[stubIndex] = updatedStub;
72
+ const updated = {
73
+ ...existing.value,
74
+ stubs: newStubs
75
+ };
76
+ return [Effect.succeed(updatedStub), HashMap.set(store, imposterId, updated)];
77
+ }).pipe(Effect.flatten);
78
+ const removeStub = (imposterId, stubId) => Ref.modify(storeRef, store => {
79
+ const existing = HashMap.get(store, imposterId);
80
+ if (existing._tag === "None") {
81
+ return [Effect.fail(new ImposterNotFoundError({
82
+ id: imposterId
83
+ })), store];
84
+ }
85
+ const stub = existing.value.stubs.find(s => s.id === stubId);
86
+ if (!stub) {
87
+ return [Effect.fail(new StubNotFoundError({
88
+ imposterId,
89
+ stubId
90
+ })), store];
91
+ }
92
+ const updated = {
93
+ ...existing.value,
94
+ stubs: existing.value.stubs.filter(s => s.id !== stubId)
95
+ };
96
+ return [Effect.succeed(stub), HashMap.set(store, imposterId, updated)];
97
+ }).pipe(Effect.flatten);
98
+ return {
99
+ create,
100
+ get,
101
+ getAll,
102
+ update,
103
+ remove,
104
+ addStub,
105
+ getStubs,
106
+ updateStub,
107
+ removeStub
108
+ };
109
+ }));
110
+ //# sourceMappingURL=ImposterRepository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ImposterRepository.js","names":["Context","Data","Effect","HashMap","Layer","Ref","ImposterNotFoundError","StubNotFoundError","TaggedError","ImposterRepository","Tag","ImposterRepositoryLive","effect","gen","storeRef","make","empty","getRecord","id","get","pipe","flatMap","store","record","_tag","succeed","value","fail","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":"AAAA,SAASA,OAAO,EAAEC,IAAI,EAAEC,MAAM,EAAEC,OAAO,EAAEC,KAAK,EAAEC,GAAG,QAAQ,QAAQ;AAEnE,SAASC,qBAAqB,QAAQ,oBAAoB;AAG1D,OAAM,MAAOC,iBAAkB,SAAQN,IAAI,CAACO,WAAW,CAAC,mBAAmB,CAGzE;AA6BF,OAAM,MAAOC,kBAAmB,SAAQT,OAAO,CAACU,GAAG,CAAC,oBAAoB,CAAC,EAGtE;AAEH,OAAO,MAAMC,sBAAsB,gBAAGP,KAAK,CAACQ,MAAM,CAChDH,kBAAkB,eAClBP,MAAM,CAACW,GAAG,CAAC,aAAS;EAClB,MAAMC,QAAQ,GAAG,OAAOT,GAAG,CAACU,IAAI,CAACZ,OAAO,CAACa,KAAK,EAA0B,CAAC;EAEzE,MAAMC,SAAS,GAAIC,EAAU,IAC3Bb,GAAG,CAACc,GAAG,CAACL,QAAQ,CAAC,CAACM,IAAI,CACpBlB,MAAM,CAACmB,OAAO,CAAEC,KAAK,IAAI;IACvB,MAAMC,MAAM,GAAGpB,OAAO,CAACgB,GAAG,CAACG,KAAK,EAAEJ,EAAE,CAAC;IACrC,OAAOK,MAAM,CAACC,IAAI,KAAK,MAAM,GACzBtB,MAAM,CAACuB,OAAO,CAACF,MAAM,CAACG,KAAK,CAAC,GAC5BxB,MAAM,CAACyB,IAAI,CAAC,IAAIrB,qBAAqB,CAAC;MAAEY;IAAE,CAAE,CAAC,CAAC;EACpD,CAAC,CAAC,CACH;EAQH,MAAMU,MAAM,GAAIC,MAAsB,IAAmC;IACvE,MAAMN,MAAM,GAAmB;MAAEM,MAAM;MAAEC,KAAK,EAAE;IAAE,CAAE;IACpD,OAAOzB,GAAG,CAAC0B,MAAM,CACfjB,QAAQ,EACPQ,KAAK,IAA0C,CAACpB,MAAM,CAACuB,OAAO,CAACF,MAAM,CAAC,EAAEpB,OAAO,CAAC6B,GAAG,CAACV,KAAK,EAAEO,MAAM,CAACX,EAAE,EAAEK,MAAM,CAAC,CAAC,CAChH,CAACH,IAAI,CAAClB,MAAM,CAAC+B,OAAO,CAAC;EACxB,CAAC;EAED,MAAMd,GAAG,GAAID,EAAU,IAAKD,SAAS,CAACC,EAAE,CAAC;EAEzC,MAAMgB,MAAM,GAAiD7B,GAAG,CAACc,GAAG,CAACL,QAAQ,CAAC,CAACM,IAAI,CACjFlB,MAAM,CAACiC,GAAG,CAAEb,KAAK,IAAKc,KAAK,CAACC,IAAI,CAAClC,OAAO,CAACmC,MAAM,CAAChB,KAAK,CAAC,CAAC,CAAC,CACzD;EAED,MAAMiB,MAAM,GAAGA,CAACrB,EAAU,EAAEsB,EAAyC,KACnEnC,GAAG,CAAC0B,MAAM,CAACjB,QAAQ,EAAGQ,KAAK,IAAkB;IAC3C,MAAMmB,QAAQ,GAAGtC,OAAO,CAACgB,GAAG,CAACG,KAAK,EAAEJ,EAAE,CAAC;IACvC,IAAIuB,QAAQ,CAACjB,IAAI,KAAK,MAAM,EAAE;MAC5B,OAAO,CAACtB,MAAM,CAACyB,IAAI,CAAC,IAAIrB,qBAAqB,CAAC;QAAEY;MAAE,CAAE,CAAC,CAAC,EAAEI,KAAK,CAAC;IAChE;IACA,MAAMoB,OAAO,GAAGF,EAAE,CAACC,QAAQ,CAACf,KAAK,CAAC;IAClC,OAAO,CAACxB,MAAM,CAACuB,OAAO,CAACiB,OAAO,CAAC,EAAEvC,OAAO,CAAC6B,GAAG,CAACV,KAAK,EAAEJ,EAAE,EAAEwB,OAAO,CAAC,CAAC;EACnE,CAAC,CAAC,CAACtB,IAAI,CAAClB,MAAM,CAAC+B,OAAO,CAAC;EAEzB,MAAMU,MAAM,GAAIzB,EAAU,IACxBb,GAAG,CAAC0B,MAAM,CAACjB,QAAQ,EAAGQ,KAAK,IAAkB;IAC3C,MAAMmB,QAAQ,GAAGtC,OAAO,CAACgB,GAAG,CAACG,KAAK,EAAEJ,EAAE,CAAC;IACvC,IAAIuB,QAAQ,CAACjB,IAAI,KAAK,MAAM,EAAE;MAC5B,OAAO,CAACtB,MAAM,CAACyB,IAAI,CAAC,IAAIrB,qBAAqB,CAAC;QAAEY;MAAE,CAAE,CAAC,CAAC,EAAEI,KAAK,CAAC;IAChE;IACA,OAAO,CAACpB,MAAM,CAACuB,OAAO,CAACgB,QAAQ,CAACf,KAAK,CAAC,EAAEvB,OAAO,CAACwC,MAAM,CAACrB,KAAK,EAAEJ,EAAE,CAAC,CAAC;EACpE,CAAC,CAAC,CAACE,IAAI,CAAClB,MAAM,CAAC+B,OAAO,CAAC;EAEzB,MAAMW,OAAO,GAAGA,CAACC,UAAkB,EAAEC,IAAU,KAC7CzC,GAAG,CAAC0B,MAAM,CAACjB,QAAQ,EAAGQ,KAAK,IAAgB;IACzC,MAAMmB,QAAQ,GAAGtC,OAAO,CAACgB,GAAG,CAACG,KAAK,EAAEuB,UAAU,CAAC;IAC/C,IAAIJ,QAAQ,CAACjB,IAAI,KAAK,MAAM,EAAE;MAC5B,OAAO,CAACtB,MAAM,CAACyB,IAAI,CAAC,IAAIrB,qBAAqB,CAAC;QAAEY,EAAE,EAAE2B;MAAU,CAAE,CAAC,CAAC,EAAEvB,KAAK,CAAC;IAC5E;IACA,MAAMoB,OAAO,GAAmB;MAAE,GAAGD,QAAQ,CAACf,KAAK;MAAEI,KAAK,EAAE,CAAC,GAAGW,QAAQ,CAACf,KAAK,CAACI,KAAK,EAAEgB,IAAI;IAAC,CAAE;IAC7F,OAAO,CAAC5C,MAAM,CAACuB,OAAO,CAACqB,IAAI,CAAC,EAAE3C,OAAO,CAAC6B,GAAG,CAACV,KAAK,EAAEuB,UAAU,EAAEH,OAAO,CAAC,CAAC;EACxE,CAAC,CAAC,CAACtB,IAAI,CAAClB,MAAM,CAAC+B,OAAO,CAAC;EAEzB,MAAMc,QAAQ,GAAIF,UAAkB,IAAK5B,SAAS,CAAC4B,UAAU,CAAC,CAACzB,IAAI,CAAClB,MAAM,CAACiC,GAAG,CAAEa,CAAC,IAAKA,CAAC,CAAClB,KAAK,CAAC,CAAC;EAE/F,MAAMmB,UAAU,GAAGA,CAACJ,UAAkB,EAAEK,MAAc,EAAEV,EAAqB,KAC3EnC,GAAG,CAAC0B,MAAM,CAACjB,QAAQ,EAAGQ,KAAK,IAAoB;IAC7C,MAAMmB,QAAQ,GAAGtC,OAAO,CAACgB,GAAG,CAACG,KAAK,EAAEuB,UAAU,CAAC;IAC/C,IAAIJ,QAAQ,CAACjB,IAAI,KAAK,MAAM,EAAE;MAC5B,OAAO,CAACtB,MAAM,CAACyB,IAAI,CAAC,IAAIrB,qBAAqB,CAAC;QAAEY,EAAE,EAAE2B;MAAU,CAAE,CAAC,CAAC,EAAEvB,KAAK,CAAC;IAC5E;IACA,MAAM6B,SAAS,GAAGV,QAAQ,CAACf,KAAK,CAACI,KAAK,CAACsB,SAAS,CAAEC,CAAC,IAAKA,CAAC,CAACnC,EAAE,KAAKgC,MAAM,CAAC;IACxE,IAAIC,SAAS,KAAK,CAAC,CAAC,EAAE;MACpB,OAAO,CAACjD,MAAM,CAACyB,IAAI,CAAC,IAAIpB,iBAAiB,CAAC;QAAEsC,UAAU;QAAEK;MAAM,CAAE,CAAC,CAAC,EAAE5B,KAAK,CAAC;IAC5E;IACA,MAAMgC,WAAW,GAAGd,EAAE,CAACC,QAAQ,CAACf,KAAK,CAACI,KAAK,CAACqB,SAAS,CAAE,CAAC;IACxD,MAAMI,QAAQ,GAAG,CAAC,GAAGd,QAAQ,CAACf,KAAK,CAACI,KAAK,CAAC;IAC1CyB,QAAQ,CAACJ,SAAS,CAAC,GAAGG,WAAW;IACjC,MAAMZ,OAAO,GAAmB;MAAE,GAAGD,QAAQ,CAACf,KAAK;MAAEI,KAAK,EAAEyB;IAAQ,CAAE;IACtE,OAAO,CAACrD,MAAM,CAACuB,OAAO,CAAC6B,WAAW,CAAC,EAAEnD,OAAO,CAAC6B,GAAG,CAACV,KAAK,EAAEuB,UAAU,EAAEH,OAAO,CAAC,CAAC;EAC/E,CAAC,CAAC,CAACtB,IAAI,CAAClB,MAAM,CAAC+B,OAAO,CAAC;EAEzB,MAAMuB,UAAU,GAAGA,CAACX,UAAkB,EAAEK,MAAc,KACpD7C,GAAG,CAAC0B,MAAM,CAACjB,QAAQ,EAAGQ,KAAK,IAAoB;IAC7C,MAAMmB,QAAQ,GAAGtC,OAAO,CAACgB,GAAG,CAACG,KAAK,EAAEuB,UAAU,CAAC;IAC/C,IAAIJ,QAAQ,CAACjB,IAAI,KAAK,MAAM,EAAE;MAC5B,OAAO,CAACtB,MAAM,CAACyB,IAAI,CAAC,IAAIrB,qBAAqB,CAAC;QAAEY,EAAE,EAAE2B;MAAU,CAAE,CAAC,CAAC,EAAEvB,KAAK,CAAC;IAC5E;IACA,MAAMwB,IAAI,GAAGL,QAAQ,CAACf,KAAK,CAACI,KAAK,CAAC2B,IAAI,CAAEJ,CAAC,IAAKA,CAAC,CAACnC,EAAE,KAAKgC,MAAM,CAAC;IAC9D,IAAI,CAACJ,IAAI,EAAE;MACT,OAAO,CAAC5C,MAAM,CAACyB,IAAI,CAAC,IAAIpB,iBAAiB,CAAC;QAAEsC,UAAU;QAAEK;MAAM,CAAE,CAAC,CAAC,EAAE5B,KAAK,CAAC;IAC5E;IACA,MAAMoB,OAAO,GAAmB;MAC9B,GAAGD,QAAQ,CAACf,KAAK;MACjBI,KAAK,EAAEW,QAAQ,CAACf,KAAK,CAACI,KAAK,CAAC4B,MAAM,CAAEL,CAAC,IAAKA,CAAC,CAACnC,EAAE,KAAKgC,MAAM;KAC1D;IACD,OAAO,CAAChD,MAAM,CAACuB,OAAO,CAACqB,IAAI,CAAC,EAAE3C,OAAO,CAAC6B,GAAG,CAACV,KAAK,EAAEuB,UAAU,EAAEH,OAAO,CAAC,CAAC;EACxE,CAAC,CAAC,CAACtB,IAAI,CAAClB,MAAM,CAAC+B,OAAO,CAAC;EAEzB,OAAO;IAAEL,MAAM;IAAET,GAAG;IAAEe,MAAM;IAAEK,MAAM;IAAEI,MAAM;IAAEC,OAAO;IAAEG,QAAQ;IAAEE,UAAU;IAAEO;EAAU,CAAE;AAC3F,CAAC,CAAC,CACH","ignoreList":[]}
@@ -0,0 +1,37 @@
1
+ import * as Schema from "effect/Schema";
2
+ import { NonEmptyString, PortNumber } from "./common";
3
+ import { CreateStubRequest, ProxyConfig } from "./StubSchema";
4
+ export const ImposterConfig = /*#__PURE__*/Schema.Struct({
5
+ name: /*#__PURE__*/Schema.optional(NonEmptyString),
6
+ port: PortNumber,
7
+ stubs: /*#__PURE__*/Schema.optionalWith(/*#__PURE__*/Schema.Array(CreateStubRequest), {
8
+ default: () => []
9
+ }),
10
+ proxy: /*#__PURE__*/Schema.optional(ProxyConfig)
11
+ });
12
+ export const AdminConfig = /*#__PURE__*/Schema.Struct({
13
+ port: /*#__PURE__*/Schema.optionalWith(PortNumber, {
14
+ default: () => 2525
15
+ }),
16
+ portRangeMin: /*#__PURE__*/Schema.optionalWith(PortNumber, {
17
+ default: () => 3000
18
+ }),
19
+ portRangeMax: /*#__PURE__*/Schema.optionalWith(PortNumber, {
20
+ default: () => 4000
21
+ }),
22
+ maxImposters: /*#__PURE__*/Schema.optionalWith(/*#__PURE__*/Schema.Number.pipe(/*#__PURE__*/Schema.int(), /*#__PURE__*/Schema.positive()), {
23
+ default: () => 100
24
+ }),
25
+ logLevel: /*#__PURE__*/Schema.optionalWith(/*#__PURE__*/Schema.Literal("debug", "info", "warn", "error"), {
26
+ default: () => "info"
27
+ })
28
+ });
29
+ export const ConfigFile = /*#__PURE__*/Schema.Struct({
30
+ admin: /*#__PURE__*/Schema.optionalWith(AdminConfig, {
31
+ default: () => Schema.decodeSync(AdminConfig)({})
32
+ }),
33
+ imposters: /*#__PURE__*/Schema.optionalWith(/*#__PURE__*/Schema.Array(ImposterConfig), {
34
+ default: () => []
35
+ })
36
+ });
37
+ //# sourceMappingURL=ConfigFileSchema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConfigFileSchema.js","names":["Schema","NonEmptyString","PortNumber","CreateStubRequest","ProxyConfig","ImposterConfig","Struct","name","optional","port","stubs","optionalWith","Array","default","proxy","AdminConfig","portRangeMin","portRangeMax","maxImposters","Number","pipe","int","positive","logLevel","Literal","ConfigFile","admin","decodeSync","imposters"],"sources":["../../../src/schemas/ConfigFileSchema.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAO,KAAKA,MAAM,MAAM,eAAe;AACvC,SAASC,cAAc,EAAEC,UAAU,QAAQ,UAAU;AACrD,SAASC,iBAAiB,EAAEC,WAAW,QAAQ,cAAc;AAE7D,OAAO,MAAMC,cAAc,gBAAGL,MAAM,CAACM,MAAM,CAAC;EAC1CC,IAAI,eAAEP,MAAM,CAACQ,QAAQ,CAACP,cAAc,CAAC;EACrCQ,IAAI,EAAEP,UAAU;EAChBQ,KAAK,eAAEV,MAAM,CAACW,YAAY,cAACX,MAAM,CAACY,KAAK,CAACT,iBAAiB,CAAC,EAAE;IAAEU,OAAO,EAAEA,CAAA,KAAM;EAAE,CAAE,CAAC;EAClFC,KAAK,eAAEd,MAAM,CAACQ,QAAQ,CAACJ,WAAW;CACnC,CAAC;AAGF,OAAO,MAAMW,WAAW,gBAAGf,MAAM,CAACM,MAAM,CAAC;EACvCG,IAAI,eAAET,MAAM,CAACW,YAAY,CAACT,UAAU,EAAE;IAAEW,OAAO,EAAEA,CAAA,KAAM;EAA6C,CAAE,CAAC;EACvGG,YAAY,eAAEhB,MAAM,CAACW,YAAY,CAACT,UAAU,EAAE;IAAEW,OAAO,EAAEA,CAAA,KAAM;EAA6C,CAAE,CAAC;EAC/GI,YAAY,eAAEjB,MAAM,CAACW,YAAY,CAACT,UAAU,EAAE;IAAEW,OAAO,EAAEA,CAAA,KAAM;EAA6C,CAAE,CAAC;EAC/GK,YAAY,eAAElB,MAAM,CAACW,YAAY,cAC/BX,MAAM,CAACmB,MAAM,CAACC,IAAI,cAACpB,MAAM,CAACqB,GAAG,EAAE,eAAErB,MAAM,CAACsB,QAAQ,EAAE,CAAC,EACnD;IAAET,OAAO,EAAEA,CAAA,KAAM;EAAG,CAAE,CACvB;EACDU,QAAQ,eAAEvB,MAAM,CAACW,YAAY,cAC3BX,MAAM,CAACwB,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAChD;IAAEX,OAAO,EAAEA,CAAA,KAAM;EAAe,CAAE;CAErC,CAAC;AAGF,OAAO,MAAMY,UAAU,gBAAGzB,MAAM,CAACM,MAAM,CAAC;EACtCoB,KAAK,eAAE1B,MAAM,CAACW,YAAY,CAACI,WAAW,EAAE;IAAEF,OAAO,EAAEA,CAAA,KAAMb,MAAM,CAAC2B,UAAU,CAACZ,WAAW,CAAC,CAAC,EAAE;EAAC,CAAE,CAAC;EAC9Fa,SAAS,eAAE5B,MAAM,CAACW,YAAY,cAACX,MAAM,CAACY,KAAK,CAACP,cAAc,CAAC,EAAE;IAAEQ,OAAO,EAAEA,CAAA,KAAM;EAAE,CAAE;CACnF,CAAC","ignoreList":[]}
@@ -0,0 +1,195 @@
1
+ import * as Schema from "effect/Schema";
2
+ import { ImposterStatus, NonEmptyString, PaginationMeta, PaginationQuery, PortNumber, Protocol, ProtocolFilter, StatusFilter } from "./common";
3
+ import { ProxyConfig } from "./StubSchema";
4
+ // Create Imposter Request Schema - POST /imposters
5
+ export const CreateImposterRequest = /*#__PURE__*/Schema.Struct({
6
+ name: /*#__PURE__*/Schema.optional(NonEmptyString),
7
+ port: /*#__PURE__*/Schema.optional(PortNumber),
8
+ protocol: /*#__PURE__*/Schema.optionalWith(Protocol, {
9
+ default: () => "HTTP"
10
+ }),
11
+ adminPath: /*#__PURE__*/Schema.optionalWith(/*#__PURE__*/Schema.String.pipe(/*#__PURE__*/Schema.startsWith("/")), {
12
+ default: () => "/_admin"
13
+ }),
14
+ proxy: /*#__PURE__*/Schema.optional(ProxyConfig)
15
+ });
16
+ // Update Imposter Request Schema - PATCH /imposters/{id}
17
+ export const UpdateImposterRequest = /*#__PURE__*/Schema.Struct({
18
+ name: /*#__PURE__*/Schema.optional(NonEmptyString),
19
+ status: /*#__PURE__*/Schema.optional(ImposterStatus),
20
+ port: /*#__PURE__*/Schema.optional(PortNumber),
21
+ adminPath: /*#__PURE__*/Schema.optional(/*#__PURE__*/Schema.String.pipe(/*#__PURE__*/Schema.startsWith("/"))),
22
+ proxy: /*#__PURE__*/Schema.optional(/*#__PURE__*/Schema.NullOr(ProxyConfig))
23
+ });
24
+ // List Imposters Query Schema - GET /imposters query params
25
+ export const ListImpostersQuery = /*#__PURE__*/Schema.Struct({
26
+ ...PaginationQuery.fields,
27
+ status: StatusFilter,
28
+ protocol: ProtocolFilter
29
+ });
30
+ // Route API Schemas
31
+ export const CreateRouteRequest = /*#__PURE__*/Schema.Struct({
32
+ path: /*#__PURE__*/Schema.String.pipe(/*#__PURE__*/Schema.startsWith("/")),
33
+ method: /*#__PURE__*/Schema.optionalWith(/*#__PURE__*/Schema.Literal("GET", "POST", "PUT", "DELETE", "PATCH", "HEAD", "OPTIONS"), {
34
+ default: () => "GET"
35
+ }),
36
+ response: /*#__PURE__*/Schema.Struct({
37
+ status: /*#__PURE__*/Schema.optionalWith(/*#__PURE__*/Schema.Number.pipe(/*#__PURE__*/Schema.int(), /*#__PURE__*/Schema.between(100, 599)), {
38
+ default: () => 200
39
+ }),
40
+ headers: /*#__PURE__*/Schema.optional(/*#__PURE__*/Schema.Record({
41
+ key: Schema.String,
42
+ value: Schema.String
43
+ })),
44
+ body: /*#__PURE__*/Schema.optional(Schema.Unknown)
45
+ }),
46
+ delay: /*#__PURE__*/Schema.optional(/*#__PURE__*/Schema.Number.pipe(/*#__PURE__*/Schema.int(), /*#__PURE__*/Schema.between(0, 60000)))
47
+ });
48
+ export const RouteResponse = /*#__PURE__*/Schema.Struct({
49
+ id: NonEmptyString,
50
+ path: NonEmptyString,
51
+ method: /*#__PURE__*/Schema.Literal("GET", "POST", "PUT", "DELETE", "PATCH", "HEAD", "OPTIONS"),
52
+ response: /*#__PURE__*/Schema.Struct({
53
+ status: /*#__PURE__*/Schema.Number.pipe(/*#__PURE__*/Schema.int(), /*#__PURE__*/Schema.between(100, 599)),
54
+ headers: /*#__PURE__*/Schema.optional(/*#__PURE__*/Schema.Record({
55
+ key: Schema.String,
56
+ value: Schema.String
57
+ })),
58
+ body: /*#__PURE__*/Schema.optional(Schema.Unknown)
59
+ }),
60
+ delay: /*#__PURE__*/Schema.optional(/*#__PURE__*/Schema.Number.pipe(/*#__PURE__*/Schema.int(), /*#__PURE__*/Schema.between(0, 60000))),
61
+ createdAt: Schema.DateTimeUtc
62
+ });
63
+ export const ListRoutesResponse = /*#__PURE__*/Schema.Struct({
64
+ routes: /*#__PURE__*/Schema.Array(RouteResponse),
65
+ pagination: PaginationMeta
66
+ });
67
+ // Endpoint Summary Schema (for imposter responses)
68
+ export const EndpointSummary = /*#__PURE__*/Schema.Struct({
69
+ id: NonEmptyString,
70
+ path: NonEmptyString,
71
+ method: NonEmptyString,
72
+ status: /*#__PURE__*/Schema.Number.pipe(/*#__PURE__*/Schema.int(), /*#__PURE__*/Schema.between(100, 599)),
73
+ hasDelay: Schema.Boolean,
74
+ delayMs: /*#__PURE__*/Schema.optional(/*#__PURE__*/Schema.Number.pipe(/*#__PURE__*/Schema.int(), /*#__PURE__*/Schema.nonNegative()))
75
+ });
76
+ // Statistics Schema
77
+ export const Statistics = /*#__PURE__*/Schema.Struct({
78
+ totalRequests: /*#__PURE__*/Schema.Number.pipe(/*#__PURE__*/Schema.int(), /*#__PURE__*/Schema.nonNegative()),
79
+ requestsPerMinute: /*#__PURE__*/Schema.Number.pipe(/*#__PURE__*/Schema.nonNegative()),
80
+ averageResponseTime: /*#__PURE__*/Schema.Number.pipe(/*#__PURE__*/Schema.nonNegative()),
81
+ errorRate: /*#__PURE__*/Schema.Number.pipe(/*#__PURE__*/Schema.between(0, 1)),
82
+ requestsByMethod: /*#__PURE__*/Schema.optionalWith(/*#__PURE__*/Schema.Record({
83
+ key: Schema.String,
84
+ value: Schema.Number
85
+ }), {
86
+ default: () => ({})
87
+ }),
88
+ requestsByStatusCode: /*#__PURE__*/Schema.optionalWith(/*#__PURE__*/Schema.Record({
89
+ key: Schema.String,
90
+ value: Schema.Number
91
+ }), {
92
+ default: () => ({})
93
+ }),
94
+ lastRequestAt: /*#__PURE__*/Schema.optional(Schema.DateTimeUtc),
95
+ p50ResponseTime: /*#__PURE__*/Schema.optional(Schema.Number),
96
+ p95ResponseTime: /*#__PURE__*/Schema.optional(Schema.Number),
97
+ p99ResponseTime: /*#__PURE__*/Schema.optional(Schema.Number)
98
+ });
99
+ // Core Imposter Response Schema
100
+ export const ImposterResponse = /*#__PURE__*/Schema.Struct({
101
+ id: NonEmptyString,
102
+ name: NonEmptyString,
103
+ port: PortNumber,
104
+ protocol: Protocol,
105
+ status: ImposterStatus,
106
+ endpointCount: /*#__PURE__*/Schema.Number.pipe(/*#__PURE__*/Schema.int(), /*#__PURE__*/Schema.nonNegative()),
107
+ createdAt: Schema.DateTimeUtc,
108
+ adminUrl: NonEmptyString,
109
+ adminPath: NonEmptyString,
110
+ uptime: /*#__PURE__*/Schema.optional(Schema.String),
111
+ // Formatted duration string
112
+ endpoints: /*#__PURE__*/Schema.optional(/*#__PURE__*/Schema.Array(EndpointSummary)),
113
+ statistics: /*#__PURE__*/Schema.optional(Statistics),
114
+ proxy: /*#__PURE__*/Schema.optional(ProxyConfig)
115
+ });
116
+ // List Imposters Response Schema - GET /imposters
117
+ export const ListImpostersResponse = /*#__PURE__*/Schema.Struct({
118
+ imposters: /*#__PURE__*/Schema.Array(ImposterResponse),
119
+ pagination: PaginationMeta
120
+ });
121
+ // Delete Imposter Query Schema - DELETE /imposters/{id}
122
+ export const DeleteImposterQuery = /*#__PURE__*/Schema.Struct({
123
+ force: /*#__PURE__*/Schema.optionalWith(Schema.Boolean, {
124
+ default: () => false
125
+ })
126
+ });
127
+ // Delete Imposter Response Schema
128
+ export const DeleteImposterResponse = /*#__PURE__*/Schema.Struct({
129
+ message: NonEmptyString,
130
+ id: NonEmptyString,
131
+ deletedAt: Schema.DateTimeUtc
132
+ });
133
+ // System Memory Info Schema
134
+ export const MemoryInfo = /*#__PURE__*/Schema.Struct({
135
+ used: NonEmptyString,
136
+ free: NonEmptyString
137
+ });
138
+ // System Imposters Summary Schema
139
+ export const ImpostersSummary = /*#__PURE__*/Schema.Struct({
140
+ total: /*#__PURE__*/Schema.Number.pipe(/*#__PURE__*/Schema.int(), /*#__PURE__*/Schema.nonNegative()),
141
+ running: /*#__PURE__*/Schema.Number.pipe(/*#__PURE__*/Schema.int(), /*#__PURE__*/Schema.nonNegative()),
142
+ stopped: /*#__PURE__*/Schema.Number.pipe(/*#__PURE__*/Schema.int(), /*#__PURE__*/Schema.nonNegative())
143
+ });
144
+ // System Ports Summary Schema
145
+ export const PortsSummary = /*#__PURE__*/Schema.Struct({
146
+ available: /*#__PURE__*/Schema.Number.pipe(/*#__PURE__*/Schema.int(), /*#__PURE__*/Schema.nonNegative()),
147
+ allocated: /*#__PURE__*/Schema.Number.pipe(/*#__PURE__*/Schema.int(), /*#__PURE__*/Schema.nonNegative())
148
+ });
149
+ // System Info Schema (for health endpoint)
150
+ export const SystemInfo = /*#__PURE__*/Schema.Struct({
151
+ memory: MemoryInfo,
152
+ imposters: ImpostersSummary,
153
+ ports: PortsSummary
154
+ });
155
+ // Health Response Schema - GET /health
156
+ export const HealthResponse = /*#__PURE__*/Schema.Struct({
157
+ status: /*#__PURE__*/Schema.Literal("healthy", "unhealthy"),
158
+ timestamp: Schema.DateTimeUtc,
159
+ version: NonEmptyString,
160
+ uptime: Schema.String,
161
+ // Formatted duration
162
+ system: SystemInfo
163
+ });
164
+ // Server Configuration Schema
165
+ export const ServerConfiguration = /*#__PURE__*/Schema.Struct({
166
+ maxImposters: /*#__PURE__*/Schema.Number.pipe(/*#__PURE__*/Schema.int(), /*#__PURE__*/Schema.positive()),
167
+ portRange: /*#__PURE__*/Schema.Struct({
168
+ min: PortNumber,
169
+ max: PortNumber
170
+ }),
171
+ defaultTimeout: /*#__PURE__*/Schema.Number.pipe(/*#__PURE__*/Schema.int(), /*#__PURE__*/Schema.positive()),
172
+ logLevel: /*#__PURE__*/Schema.Literal("debug", "info", "warn", "error")
173
+ });
174
+ // Server Features Schema
175
+ export const ServerFeatures = /*#__PURE__*/Schema.Struct({
176
+ openApiGeneration: Schema.Boolean,
177
+ clientGeneration: Schema.Boolean,
178
+ authentication: Schema.Boolean,
179
+ clustering: Schema.Boolean
180
+ });
181
+ // Server Info Schema
182
+ export const ServerInfo = /*#__PURE__*/Schema.Struct({
183
+ name: NonEmptyString,
184
+ version: NonEmptyString,
185
+ buildTime: Schema.DateTimeUtc,
186
+ platform: NonEmptyString,
187
+ protocols: /*#__PURE__*/Schema.Array(Protocol)
188
+ });
189
+ // Server Info Response Schema - GET /info
190
+ export const ServerInfoResponse = /*#__PURE__*/Schema.Struct({
191
+ server: ServerInfo,
192
+ configuration: ServerConfiguration,
193
+ features: ServerFeatures
194
+ });
195
+ //# sourceMappingURL=ImposterSchema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ImposterSchema.js","names":["Schema","ImposterStatus","NonEmptyString","PaginationMeta","PaginationQuery","PortNumber","Protocol","ProtocolFilter","StatusFilter","ProxyConfig","CreateImposterRequest","Struct","name","optional","port","protocol","optionalWith","default","adminPath","String","pipe","startsWith","proxy","UpdateImposterRequest","status","NullOr","ListImpostersQuery","fields","CreateRouteRequest","path","method","Literal","response","Number","int","between","headers","Record","key","value","body","Unknown","delay","RouteResponse","id","createdAt","DateTimeUtc","ListRoutesResponse","routes","Array","pagination","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":[]}
@@ -0,0 +1,44 @@
1
+ import * as Schema from "effect/Schema";
2
+ import { NonEmptyString } from "./common";
3
+ export const RequestLogEntry = /*#__PURE__*/Schema.Struct({
4
+ id: NonEmptyString,
5
+ imposterId: NonEmptyString,
6
+ timestamp: Schema.DateTimeUtc,
7
+ request: /*#__PURE__*/Schema.Struct({
8
+ method: Schema.String,
9
+ path: Schema.String,
10
+ headers: /*#__PURE__*/Schema.Record({
11
+ key: Schema.String,
12
+ value: Schema.String
13
+ }),
14
+ query: /*#__PURE__*/Schema.Record({
15
+ key: Schema.String,
16
+ value: Schema.String
17
+ }),
18
+ body: /*#__PURE__*/Schema.optional(Schema.Unknown)
19
+ }),
20
+ response: /*#__PURE__*/Schema.Struct({
21
+ status: Schema.Number,
22
+ headers: /*#__PURE__*/Schema.optionalWith(/*#__PURE__*/Schema.Record({
23
+ key: Schema.String,
24
+ value: Schema.String
25
+ }), {
26
+ default: () => ({})
27
+ }),
28
+ body: /*#__PURE__*/Schema.optional(Schema.String),
29
+ matchedStubId: /*#__PURE__*/Schema.optional(NonEmptyString),
30
+ proxied: /*#__PURE__*/Schema.optionalWith(Schema.Boolean, {
31
+ default: () => false
32
+ })
33
+ }),
34
+ duration: Schema.Number
35
+ });
36
+ export const ListRequestsUrlParams = /*#__PURE__*/Schema.Struct({
37
+ limit: /*#__PURE__*/Schema.optionalWith(/*#__PURE__*/Schema.NumberFromString.pipe(/*#__PURE__*/Schema.int(), /*#__PURE__*/Schema.positive()), {
38
+ default: () => 50
39
+ }),
40
+ method: /*#__PURE__*/Schema.optional(Schema.String),
41
+ path: /*#__PURE__*/Schema.optional(Schema.String),
42
+ status: /*#__PURE__*/Schema.optional(Schema.NumberFromString)
43
+ });
44
+ //# sourceMappingURL=RequestLogSchema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RequestLogSchema.js","names":["Schema","NonEmptyString","RequestLogEntry","Struct","id","imposterId","timestamp","DateTimeUtc","request","method","String","path","headers","Record","key","value","query","body","optional","Unknown","response","status","Number","optionalWith","default","matchedStubId","proxied","Boolean","duration","ListRequestsUrlParams","limit","NumberFromString","pipe","int","positive"],"sources":["../../../src/schemas/RequestLogSchema.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAO,KAAKA,MAAM,MAAM,eAAe;AACvC,SAASC,cAAc,QAAQ,UAAU;AAEzC,OAAO,MAAMC,eAAe,gBAAGF,MAAM,CAACG,MAAM,CAAC;EAC3CC,EAAE,EAAEH,cAAc;EAClBI,UAAU,EAAEJ,cAAc;EAC1BK,SAAS,EAAEN,MAAM,CAACO,WAAW;EAC7BC,OAAO,eAAER,MAAM,CAACG,MAAM,CAAC;IACrBM,MAAM,EAAET,MAAM,CAACU,MAAM;IACrBC,IAAI,EAAEX,MAAM,CAACU,MAAM;IACnBE,OAAO,eAAEZ,MAAM,CAACa,MAAM,CAAC;MAAEC,GAAG,EAAEd,MAAM,CAACU,MAAM;MAAEK,KAAK,EAAEf,MAAM,CAACU;IAAM,CAAE,CAAC;IACpEM,KAAK,eAAEhB,MAAM,CAACa,MAAM,CAAC;MAAEC,GAAG,EAAEd,MAAM,CAACU,MAAM;MAAEK,KAAK,EAAEf,MAAM,CAACU;IAAM,CAAE,CAAC;IAClEO,IAAI,eAAEjB,MAAM,CAACkB,QAAQ,CAAClB,MAAM,CAACmB,OAAO;GACrC,CAAC;EACFC,QAAQ,eAAEpB,MAAM,CAACG,MAAM,CAAC;IACtBkB,MAAM,EAAErB,MAAM,CAACsB,MAAM;IACrBV,OAAO,eAAEZ,MAAM,CAACuB,YAAY,cAC1BvB,MAAM,CAACa,MAAM,CAAC;MAAEC,GAAG,EAAEd,MAAM,CAACU,MAAM;MAAEK,KAAK,EAAEf,MAAM,CAACU;IAAM,CAAE,CAAC,EAC3D;MAAEc,OAAO,EAAEA,CAAA,MAAO,EAAE;IAAC,CAAE,CACxB;IACDP,IAAI,eAAEjB,MAAM,CAACkB,QAAQ,CAAClB,MAAM,CAACU,MAAM,CAAC;IACpCe,aAAa,eAAEzB,MAAM,CAACkB,QAAQ,CAACjB,cAAc,CAAC;IAC9CyB,OAAO,eAAE1B,MAAM,CAACuB,YAAY,CAACvB,MAAM,CAAC2B,OAAO,EAAE;MAAEH,OAAO,EAAEA,CAAA,KAAM;IAAK,CAAE;GACtE,CAAC;EACFI,QAAQ,EAAE5B,MAAM,CAACsB;CAClB,CAAC;AAGF,OAAO,MAAMO,qBAAqB,gBAAG7B,MAAM,CAACG,MAAM,CAAC;EACjD2B,KAAK,eAAE9B,MAAM,CAACuB,YAAY,cACxBvB,MAAM,CAAC+B,gBAAgB,CAACC,IAAI,cAAChC,MAAM,CAACiC,GAAG,EAAE,eAAEjC,MAAM,CAACkC,QAAQ,EAAE,CAAC,EAC7D;IAAEV,OAAO,EAAEA,CAAA,KAAM;EAAE,CAAE,CACtB;EACDf,MAAM,eAAET,MAAM,CAACkB,QAAQ,CAAClB,MAAM,CAACU,MAAM,CAAC;EACtCC,IAAI,eAAEX,MAAM,CAACkB,QAAQ,CAAClB,MAAM,CAACU,MAAM,CAAC;EACpCW,MAAM,eAAErB,MAAM,CAACkB,QAAQ,CAAClB,MAAM,CAAC+B,gBAAgB;CAChD,CAAC","ignoreList":[]}
@@ -0,0 +1,77 @@
1
+ import * as Schema from "effect/Schema";
2
+ import { NonEmptyString } from "./common";
3
+ // Proxy Mode
4
+ export const ProxyMode = /*#__PURE__*/Schema.Literal("passthrough", "record");
5
+ // Proxy Configuration
6
+ export const ProxyConfig = /*#__PURE__*/Schema.Struct({
7
+ targetUrl: /*#__PURE__*/Schema.String.pipe(/*#__PURE__*/Schema.pattern(/^https?:\/\//)),
8
+ mode: /*#__PURE__*/Schema.optionalWith(ProxyMode, {
9
+ default: () => "passthrough"
10
+ }),
11
+ addHeaders: /*#__PURE__*/Schema.optional(/*#__PURE__*/Schema.Record({
12
+ key: Schema.String,
13
+ value: Schema.String
14
+ })),
15
+ removeHeaders: /*#__PURE__*/Schema.optionalWith(/*#__PURE__*/Schema.Array(Schema.String), {
16
+ default: () => []
17
+ }),
18
+ followRedirects: /*#__PURE__*/Schema.optionalWith(Schema.Boolean, {
19
+ default: () => true
20
+ }),
21
+ timeout: /*#__PURE__*/Schema.optionalWith(/*#__PURE__*/Schema.Number.pipe(/*#__PURE__*/Schema.int(), /*#__PURE__*/Schema.between(100, 60000)), {
22
+ default: () => 10000
23
+ })
24
+ });
25
+ // Predicate operators for matching incoming requests
26
+ export const PredicateOperator = /*#__PURE__*/Schema.Literal("equals", "contains", "startsWith", "matches", "exists");
27
+ // Which part of the request to match against
28
+ export const PredicateField = /*#__PURE__*/Schema.Literal("method", "path", "headers", "query", "body");
29
+ // A single predicate matcher
30
+ export const Predicate = /*#__PURE__*/Schema.Struct({
31
+ field: PredicateField,
32
+ operator: PredicateOperator,
33
+ value: Schema.Unknown,
34
+ caseSensitive: /*#__PURE__*/Schema.optionalWith(Schema.Boolean, {
35
+ default: () => true
36
+ })
37
+ });
38
+ // How to cycle through responses
39
+ export const ResponseMode = /*#__PURE__*/Schema.Literal("sequential", "random", "repeat");
40
+ // A single response configuration
41
+ export const ResponseConfig = /*#__PURE__*/Schema.Struct({
42
+ status: /*#__PURE__*/Schema.optionalWith(/*#__PURE__*/Schema.Number.pipe(/*#__PURE__*/Schema.int(), /*#__PURE__*/Schema.between(100, 599)), {
43
+ default: () => 200
44
+ }),
45
+ headers: /*#__PURE__*/Schema.optional(/*#__PURE__*/Schema.Record({
46
+ key: Schema.String,
47
+ value: Schema.String
48
+ })),
49
+ body: /*#__PURE__*/Schema.optional(Schema.Unknown),
50
+ delay: /*#__PURE__*/Schema.optional(/*#__PURE__*/Schema.Number.pipe(/*#__PURE__*/Schema.int(), /*#__PURE__*/Schema.between(0, 60000)))
51
+ });
52
+ // A stub: predicates (AND-combined) + responses (cycled)
53
+ export const Stub = /*#__PURE__*/Schema.Struct({
54
+ id: NonEmptyString,
55
+ predicates: /*#__PURE__*/Schema.Array(Predicate),
56
+ responses: /*#__PURE__*/Schema.NonEmptyArray(ResponseConfig),
57
+ responseMode: /*#__PURE__*/Schema.optionalWith(ResponseMode, {
58
+ default: () => "sequential"
59
+ })
60
+ });
61
+ // API request to create a stub (id is auto-generated)
62
+ export const CreateStubRequest = /*#__PURE__*/Schema.Struct({
63
+ predicates: /*#__PURE__*/Schema.optionalWith(/*#__PURE__*/Schema.Array(Predicate), {
64
+ default: () => []
65
+ }),
66
+ responses: /*#__PURE__*/Schema.NonEmptyArray(ResponseConfig),
67
+ responseMode: /*#__PURE__*/Schema.optionalWith(ResponseMode, {
68
+ default: () => "sequential"
69
+ })
70
+ });
71
+ // API request to update a stub
72
+ export const UpdateStubRequest = /*#__PURE__*/Schema.Struct({
73
+ predicates: /*#__PURE__*/Schema.optional(/*#__PURE__*/Schema.Array(Predicate)),
74
+ responses: /*#__PURE__*/Schema.optional(/*#__PURE__*/Schema.NonEmptyArray(ResponseConfig)),
75
+ responseMode: /*#__PURE__*/Schema.optional(ResponseMode)
76
+ });
77
+ //# sourceMappingURL=StubSchema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StubSchema.js","names":["Schema","NonEmptyString","ProxyMode","Literal","ProxyConfig","Struct","targetUrl","String","pipe","pattern","mode","optionalWith","default","addHeaders","optional","Record","key","value","removeHeaders","Array","followRedirects","Boolean","timeout","Number","int","between","PredicateOperator","PredicateField","Predicate","field","operator","Unknown","caseSensitive","ResponseMode","ResponseConfig","status","headers","body","delay","Stub","id","predicates","responses","NonEmptyArray","responseMode","CreateStubRequest","UpdateStubRequest"],"sources":["../../../src/schemas/StubSchema.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}