@n1k1t/mock-server 0.1.61 → 0.1.62

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 (559) hide show
  1. package/lib/package.json +1 -1
  2. package/package.json +1 -1
  3. package/bin/index.ts +0 -33
  4. package/coverage/clover.xml +0 -1372
  5. package/coverage/cobertura-coverage.xml +0 -3466
  6. package/coverage/coverage-final.json +0 -76
  7. package/coverage/lcov-report/base.css +0 -224
  8. package/coverage/lcov-report/block-navigation.js +0 -87
  9. package/coverage/lcov-report/client/errors/connection.error.ts.html +0 -106
  10. package/coverage/lcov-report/client/errors/index.html +0 -161
  11. package/coverage/lcov-report/client/errors/index.ts.html +0 -97
  12. package/coverage/lcov-report/client/errors/internal-server.error.ts.html +0 -115
  13. package/coverage/lcov-report/client/errors/validation.error.ts.html +0 -115
  14. package/coverage/lcov-report/client/helpers/expectations.ts.html +0 -766
  15. package/coverage/lcov-report/client/helpers/index.html +0 -131
  16. package/coverage/lcov-report/client/helpers/index.ts.html +0 -88
  17. package/coverage/lcov-report/client/index.html +0 -161
  18. package/coverage/lcov-report/client/index.ts.html +0 -100
  19. package/coverage/lcov-report/client/methods/expectations-group.update.method.ts.html +0 -193
  20. package/coverage/lcov-report/client/methods/expectations.create.method.ts.html +0 -202
  21. package/coverage/lcov-report/client/methods/expectations.delete.method.ts.html +0 -184
  22. package/coverage/lcov-report/client/methods/expectations.update.method.ts.html +0 -241
  23. package/coverage/lcov-report/client/methods/index.html +0 -191
  24. package/coverage/lcov-report/client/methods/index.ts.html +0 -103
  25. package/coverage/lcov-report/client/methods/ping.method.ts.html +0 -160
  26. package/coverage/lcov-report/client/models/client.ts.html +0 -340
  27. package/coverage/lcov-report/client/models/index.html +0 -146
  28. package/coverage/lcov-report/client/models/index.ts.html +0 -91
  29. package/coverage/lcov-report/client/models/method.ts.html +0 -235
  30. package/coverage/lcov-report/client/onsite.ts.html +0 -172
  31. package/coverage/lcov-report/client/remote.ts.html +0 -187
  32. package/coverage/lcov-report/client/utils.ts.html +0 -211
  33. package/coverage/lcov-report/config/index.html +0 -131
  34. package/coverage/lcov-report/config/index.ts.html +0 -97
  35. package/coverage/lcov-report/config/model.ts.html +0 -226
  36. package/coverage/lcov-report/expectations/__utils__/index.html +0 -116
  37. package/coverage/lcov-report/expectations/__utils__/index.ts.html +0 -268
  38. package/coverage/lcov-report/expectations/index.html +0 -146
  39. package/coverage/lcov-report/expectations/index.ts.html +0 -94
  40. package/coverage/lcov-report/expectations/models/expectation.ts.html +0 -373
  41. package/coverage/lcov-report/expectations/models/index.html +0 -161
  42. package/coverage/lcov-report/expectations/models/index.ts.html +0 -94
  43. package/coverage/lcov-report/expectations/models/operator.ts.html +0 -352
  44. package/coverage/lcov-report/expectations/models/storage.ts.html +0 -211
  45. package/coverage/lcov-report/expectations/operators/and.operator.ts.html +0 -196
  46. package/coverage/lcov-report/expectations/operators/exec.operator.ts.html +0 -160
  47. package/coverage/lcov-report/expectations/operators/has.operator.ts.html +0 -778
  48. package/coverage/lcov-report/expectations/operators/if.operator.ts.html +0 -316
  49. package/coverage/lcov-report/expectations/operators/index.html +0 -281
  50. package/coverage/lcov-report/expectations/operators/index.ts.html +0 -118
  51. package/coverage/lcov-report/expectations/operators/merge.operator.ts.html +0 -379
  52. package/coverage/lcov-report/expectations/operators/not.operator.ts.html +0 -199
  53. package/coverage/lcov-report/expectations/operators/or.operator.ts.html +0 -196
  54. package/coverage/lcov-report/expectations/operators/remove.operator.ts.html +0 -238
  55. package/coverage/lcov-report/expectations/operators/root.operator.ts.html +0 -238
  56. package/coverage/lcov-report/expectations/operators/set.operator.ts.html +0 -436
  57. package/coverage/lcov-report/expectations/operators/switch.operator.ts.html +0 -463
  58. package/coverage/lcov-report/expectations/types.ts.html +0 -766
  59. package/coverage/lcov-report/expectations/utils.ts.html +0 -802
  60. package/coverage/lcov-report/favicon.png +0 -0
  61. package/coverage/lcov-report/index.html +0 -431
  62. package/coverage/lcov-report/logger/index.html +0 -131
  63. package/coverage/lcov-report/logger/index.ts.html +0 -325
  64. package/coverage/lcov-report/logger/utils.ts.html +0 -160
  65. package/coverage/lcov-report/meta/index.html +0 -146
  66. package/coverage/lcov-report/meta/index.ts.html +0 -103
  67. package/coverage/lcov-report/meta/model.ts.html +0 -172
  68. package/coverage/lcov-report/meta/storage.ts.html +0 -145
  69. package/coverage/lcov-report/prettify.css +0 -1
  70. package/coverage/lcov-report/prettify.js +0 -2
  71. package/coverage/lcov-report/server/expectations/__utils__/index.html +0 -116
  72. package/coverage/lcov-report/server/expectations/__utils__/index.ts.html +0 -199
  73. package/coverage/lcov-report/server/expectations/index.html +0 -131
  74. package/coverage/lcov-report/server/expectations/operators/and.operator.ts.html +0 -103
  75. package/coverage/lcov-report/server/expectations/operators/exec.operator.ts.html +0 -139
  76. package/coverage/lcov-report/server/expectations/operators/has.operator.ts.html +0 -358
  77. package/coverage/lcov-report/server/expectations/operators/if.operator.ts.html +0 -130
  78. package/coverage/lcov-report/server/expectations/operators/index.html +0 -266
  79. package/coverage/lcov-report/server/expectations/operators/index.ts.html +0 -112
  80. package/coverage/lcov-report/server/expectations/operators/merge.operator.ts.html +0 -193
  81. package/coverage/lcov-report/server/expectations/operators/not.operator.ts.html +0 -100
  82. package/coverage/lcov-report/server/expectations/operators/or.operator.ts.html +0 -115
  83. package/coverage/lcov-report/server/expectations/operators/remove.operator.ts.html +0 -169
  84. package/coverage/lcov-report/server/expectations/operators/set.operator.ts.html +0 -208
  85. package/coverage/lcov-report/server/expectations/operators/utils.ts.html +0 -346
  86. package/coverage/lcov-report/server/expectations/types.ts.html +0 -517
  87. package/coverage/lcov-report/server/expectations/utils.ts.html +0 -358
  88. package/coverage/lcov-report/server/models/containers/index.html +0 -161
  89. package/coverage/lcov-report/server/models/containers/index.ts.html +0 -91
  90. package/coverage/lcov-report/server/models/containers/model.ts.html +0 -328
  91. package/coverage/lcov-report/server/models/containers/storage.ts.html +0 -256
  92. package/coverage/lcov-report/server/models/containers/utils.ts.html +0 -97
  93. package/coverage/lcov-report/server/models/context/index.html +0 -146
  94. package/coverage/lcov-report/server/models/context/index.ts.html +0 -514
  95. package/coverage/lcov-report/server/models/context/snapshot.ts.html +0 -529
  96. package/coverage/lcov-report/server/models/context/utils.ts.html +0 -382
  97. package/coverage/lcov-report/server/models/endpoint.ts.html +0 -304
  98. package/coverage/lcov-report/server/models/exchanges/index.html +0 -131
  99. package/coverage/lcov-report/server/models/exchanges/index.ts.html +0 -88
  100. package/coverage/lcov-report/server/models/exchanges/socket-io.ts.html +0 -154
  101. package/coverage/lcov-report/server/models/executor/errors/index.html +0 -116
  102. package/coverage/lcov-report/server/models/executor/errors/index.ts.html +0 -130
  103. package/coverage/lcov-report/server/models/executor/index.html +0 -116
  104. package/coverage/lcov-report/server/models/executor/index.ts.html +0 -1018
  105. package/coverage/lcov-report/server/models/history/index.html +0 -146
  106. package/coverage/lcov-report/server/models/history/index.ts.html +0 -91
  107. package/coverage/lcov-report/server/models/history/model.ts.html +0 -331
  108. package/coverage/lcov-report/server/models/history/storage.ts.html +0 -184
  109. package/coverage/lcov-report/server/models/index.html +0 -161
  110. package/coverage/lcov-report/server/models/index.ts.html +0 -115
  111. package/coverage/lcov-report/server/models/providers/index.html +0 -146
  112. package/coverage/lcov-report/server/models/providers/index.ts.html +0 -91
  113. package/coverage/lcov-report/server/models/providers/model.ts.html +0 -211
  114. package/coverage/lcov-report/server/models/providers/storage.ts.html +0 -172
  115. package/coverage/lcov-report/server/models/reply.ts.html +0 -115
  116. package/coverage/lcov-report/server/models/router.ts.html +0 -313
  117. package/coverage/lcov-report/server/models/transports/index.html +0 -146
  118. package/coverage/lcov-report/server/models/transports/index.ts.html +0 -91
  119. package/coverage/lcov-report/server/models/transports/model.ts.html +0 -112
  120. package/coverage/lcov-report/server/models/transports/storage.ts.html +0 -124
  121. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  122. package/coverage/lcov-report/sorter.js +0 -196
  123. package/coverage/lcov-report/utils/common.ts.html +0 -187
  124. package/coverage/lcov-report/utils/index.html +0 -176
  125. package/coverage/lcov-report/utils/index.ts.html +0 -97
  126. package/coverage/lcov-report/utils/json.ts.html +0 -193
  127. package/coverage/lcov-report/utils/regexp.ts.html +0 -97
  128. package/coverage/lcov-report/utils/validation.ts.html +0 -190
  129. package/coverage/lcov.info +0 -3012
  130. package/discardedTests.txt +0 -35606
  131. package/images/preview.png +0 -0
  132. package/images/strategy.png +0 -0
  133. package/keploy.yml +0 -64
  134. package/lib/src/client/errors/connection.error.spec.d.ts +0 -2
  135. package/lib/src/client/errors/connection.error.spec.d.ts.map +0 -1
  136. package/lib/src/client/errors/connection.error.spec.js +0 -12
  137. package/lib/src/client/errors/connection.error.spec.js.map +0 -1
  138. package/lib/src/client/errors/internal-server.error.spec.d.ts +0 -2
  139. package/lib/src/client/errors/internal-server.error.spec.d.ts.map +0 -1
  140. package/lib/src/client/errors/internal-server.error.spec.js +0 -12
  141. package/lib/src/client/errors/internal-server.error.spec.js.map +0 -1
  142. package/lib/src/client/errors/validation.error.spec.d.ts +0 -2
  143. package/lib/src/client/errors/validation.error.spec.d.ts.map +0 -1
  144. package/lib/src/client/errors/validation.error.spec.js +0 -10
  145. package/lib/src/client/errors/validation.error.spec.js.map +0 -1
  146. package/lib/src/client/models/client.spec.d.ts +0 -2
  147. package/lib/src/client/models/client.spec.d.ts.map +0 -1
  148. package/lib/src/client/models/client.spec.js +0 -244
  149. package/lib/src/client/models/client.spec.js.map +0 -1
  150. package/lib/src/client/onsite.spec.d.ts +0 -2
  151. package/lib/src/client/onsite.spec.d.ts.map +0 -1
  152. package/lib/src/client/onsite.spec.js +0 -23
  153. package/lib/src/client/onsite.spec.js.map +0 -1
  154. package/lib/src/client/remote.spec.d.ts +0 -2
  155. package/lib/src/client/remote.spec.d.ts.map +0 -1
  156. package/lib/src/client/remote.spec.js +0 -16
  157. package/lib/src/client/remote.spec.js.map +0 -1
  158. package/lib/src/client/utils.spec.d.ts +0 -2
  159. package/lib/src/client/utils.spec.d.ts.map +0 -1
  160. package/lib/src/client/utils.spec.js +0 -57
  161. package/lib/src/client/utils.spec.js.map +0 -1
  162. package/lib/src/expectations/models/storage.spec.d.ts +0 -2
  163. package/lib/src/expectations/models/storage.spec.d.ts.map +0 -1
  164. package/lib/src/expectations/models/storage.spec.js +0 -57
  165. package/lib/src/expectations/models/storage.spec.js.map +0 -1
  166. package/lib/src/expectations/operators/and.operator.spec.d.ts +0 -2
  167. package/lib/src/expectations/operators/and.operator.spec.d.ts.map +0 -1
  168. package/lib/src/expectations/operators/and.operator.spec.js +0 -83
  169. package/lib/src/expectations/operators/and.operator.spec.js.map +0 -1
  170. package/lib/src/expectations/operators/exec.operator.spec.d.ts +0 -2
  171. package/lib/src/expectations/operators/exec.operator.spec.d.ts.map +0 -1
  172. package/lib/src/expectations/operators/exec.operator.spec.js +0 -68
  173. package/lib/src/expectations/operators/exec.operator.spec.js.map +0 -1
  174. package/lib/src/expectations/operators/has.operator.spec.d.ts +0 -2
  175. package/lib/src/expectations/operators/has.operator.spec.d.ts.map +0 -1
  176. package/lib/src/expectations/operators/has.operator.spec.js +0 -444
  177. package/lib/src/expectations/operators/has.operator.spec.js.map +0 -1
  178. package/lib/src/expectations/operators/if.operator.spec.d.ts +0 -2
  179. package/lib/src/expectations/operators/if.operator.spec.d.ts.map +0 -1
  180. package/lib/src/expectations/operators/if.operator.spec.js +0 -132
  181. package/lib/src/expectations/operators/if.operator.spec.js.map +0 -1
  182. package/lib/src/expectations/operators/merge.operator.spec.d.ts +0 -2
  183. package/lib/src/expectations/operators/merge.operator.spec.d.ts.map +0 -1
  184. package/lib/src/expectations/operators/merge.operator.spec.js +0 -75
  185. package/lib/src/expectations/operators/merge.operator.spec.js.map +0 -1
  186. package/lib/src/expectations/operators/not.operator.spec.d.ts +0 -2
  187. package/lib/src/expectations/operators/not.operator.spec.d.ts.map +0 -1
  188. package/lib/src/expectations/operators/not.operator.spec.js +0 -46
  189. package/lib/src/expectations/operators/not.operator.spec.js.map +0 -1
  190. package/lib/src/expectations/operators/or.operator.spec.d.ts +0 -2
  191. package/lib/src/expectations/operators/or.operator.spec.d.ts.map +0 -1
  192. package/lib/src/expectations/operators/or.operator.spec.js +0 -84
  193. package/lib/src/expectations/operators/or.operator.spec.js.map +0 -1
  194. package/lib/src/expectations/operators/remove.operator.spec.d.ts +0 -2
  195. package/lib/src/expectations/operators/remove.operator.spec.d.ts.map +0 -1
  196. package/lib/src/expectations/operators/remove.operator.spec.js +0 -67
  197. package/lib/src/expectations/operators/remove.operator.spec.js.map +0 -1
  198. package/lib/src/expectations/operators/root.operator.spec.d.ts +0 -2
  199. package/lib/src/expectations/operators/root.operator.spec.d.ts.map +0 -1
  200. package/lib/src/expectations/operators/root.operator.spec.js +0 -29
  201. package/lib/src/expectations/operators/root.operator.spec.js.map +0 -1
  202. package/lib/src/expectations/operators/set.operator.spec.d.ts +0 -2
  203. package/lib/src/expectations/operators/set.operator.spec.d.ts.map +0 -1
  204. package/lib/src/expectations/operators/set.operator.spec.js +0 -111
  205. package/lib/src/expectations/operators/set.operator.spec.js.map +0 -1
  206. package/lib/src/expectations/operators/switch.operator.spec.d.ts +0 -2
  207. package/lib/src/expectations/operators/switch.operator.spec.d.ts.map +0 -1
  208. package/lib/src/expectations/operators/switch.operator.spec.js +0 -139
  209. package/lib/src/expectations/operators/switch.operator.spec.js.map +0 -1
  210. package/lib/src/expectations/utils/location.spec.d.ts +0 -2
  211. package/lib/src/expectations/utils/location.spec.d.ts.map +0 -1
  212. package/lib/src/expectations/utils/location.spec.js +0 -62
  213. package/lib/src/expectations/utils/location.spec.js.map +0 -1
  214. package/lib/src/expectations/utils/schema.spec.d.ts +0 -2
  215. package/lib/src/expectations/utils/schema.spec.d.ts.map +0 -1
  216. package/lib/src/expectations/utils/schema.spec.js +0 -19
  217. package/lib/src/expectations/utils/schema.spec.js.map +0 -1
  218. package/lib/src/meta/model.spec.d.ts +0 -2
  219. package/lib/src/meta/model.spec.d.ts.map +0 -1
  220. package/lib/src/meta/model.spec.js +0 -28
  221. package/lib/src/meta/model.spec.js.map +0 -1
  222. package/lib/src/meta/storage.spec.d.ts +0 -2
  223. package/lib/src/meta/storage.spec.d.ts.map +0 -1
  224. package/lib/src/meta/storage.spec.js +0 -19
  225. package/lib/src/meta/storage.spec.js.map +0 -1
  226. package/lib/src/server/models/containers/model.spec.d.ts +0 -2
  227. package/lib/src/server/models/containers/model.spec.d.ts.map +0 -1
  228. package/lib/src/server/models/containers/model.spec.js +0 -79
  229. package/lib/src/server/models/containers/model.spec.js.map +0 -1
  230. package/lib/src/server/models/containers/storage.spec.d.ts +0 -2
  231. package/lib/src/server/models/containers/storage.spec.d.ts.map +0 -1
  232. package/lib/src/server/models/containers/storage.spec.js +0 -39
  233. package/lib/src/server/models/containers/storage.spec.js.map +0 -1
  234. package/lib/src/server/models/context/index.spec.d.ts +0 -2
  235. package/lib/src/server/models/context/index.spec.d.ts.map +0 -1
  236. package/lib/src/server/models/context/index.spec.js +0 -143
  237. package/lib/src/server/models/context/index.spec.js.map +0 -1
  238. package/lib/src/server/models/context/snapshot.spec.d.ts +0 -2
  239. package/lib/src/server/models/context/snapshot.spec.d.ts.map +0 -1
  240. package/lib/src/server/models/context/snapshot.spec.js +0 -75
  241. package/lib/src/server/models/context/snapshot.spec.js.map +0 -1
  242. package/lib/src/server/models/context/utils.spec.d.ts +0 -2
  243. package/lib/src/server/models/context/utils.spec.d.ts.map +0 -1
  244. package/lib/src/server/models/context/utils.spec.js +0 -69
  245. package/lib/src/server/models/context/utils.spec.js.map +0 -1
  246. package/lib/src/server/models/endpoint.spec.d.ts +0 -2
  247. package/lib/src/server/models/endpoint.spec.d.ts.map +0 -1
  248. package/lib/src/server/models/endpoint.spec.js +0 -28
  249. package/lib/src/server/models/endpoint.spec.js.map +0 -1
  250. package/lib/src/server/models/exchanges/socket-io.spec.d.ts +0 -2
  251. package/lib/src/server/models/exchanges/socket-io.spec.d.ts.map +0 -1
  252. package/lib/src/server/models/exchanges/socket-io.spec.js +0 -12
  253. package/lib/src/server/models/exchanges/socket-io.spec.js.map +0 -1
  254. package/lib/src/server/models/executor/errors/index.spec.d.ts +0 -2
  255. package/lib/src/server/models/executor/errors/index.spec.d.ts.map +0 -1
  256. package/lib/src/server/models/executor/errors/index.spec.js +0 -23
  257. package/lib/src/server/models/executor/errors/index.spec.js.map +0 -1
  258. package/lib/src/server/models/executor/index.spec.d.ts +0 -2
  259. package/lib/src/server/models/executor/index.spec.d.ts.map +0 -1
  260. package/lib/src/server/models/executor/index.spec.js +0 -137
  261. package/lib/src/server/models/executor/index.spec.js.map +0 -1
  262. package/lib/src/server/models/history/model.spec.d.ts +0 -2
  263. package/lib/src/server/models/history/model.spec.d.ts.map +0 -1
  264. package/lib/src/server/models/history/model.spec.js +0 -30
  265. package/lib/src/server/models/history/model.spec.js.map +0 -1
  266. package/lib/src/server/models/history/storage.spec.d.ts +0 -2
  267. package/lib/src/server/models/history/storage.spec.d.ts.map +0 -1
  268. package/lib/src/server/models/history/storage.spec.js +0 -42
  269. package/lib/src/server/models/history/storage.spec.js.map +0 -1
  270. package/lib/src/server/models/providers/model.spec.d.ts +0 -2
  271. package/lib/src/server/models/providers/model.spec.d.ts.map +0 -1
  272. package/lib/src/server/models/providers/model.spec.js +0 -13
  273. package/lib/src/server/models/providers/model.spec.js.map +0 -1
  274. package/lib/src/server/models/providers/storage.spec.d.ts +0 -2
  275. package/lib/src/server/models/providers/storage.spec.d.ts.map +0 -1
  276. package/lib/src/server/models/providers/storage.spec.js +0 -19
  277. package/lib/src/server/models/providers/storage.spec.js.map +0 -1
  278. package/lib/src/server/models/reply.spec.d.ts +0 -2
  279. package/lib/src/server/models/reply.spec.d.ts.map +0 -1
  280. package/lib/src/server/models/reply.spec.js +0 -20
  281. package/lib/src/server/models/reply.spec.js.map +0 -1
  282. package/lib/src/server/models/router.spec.d.ts +0 -2
  283. package/lib/src/server/models/router.spec.d.ts.map +0 -1
  284. package/lib/src/server/models/router.spec.js +0 -46
  285. package/lib/src/server/models/router.spec.js.map +0 -1
  286. package/lib/src/server/models/transports/storage.spec.d.ts +0 -2
  287. package/lib/src/server/models/transports/storage.spec.d.ts.map +0 -1
  288. package/lib/src/server/models/transports/storage.spec.js +0 -13
  289. package/lib/src/server/models/transports/storage.spec.js.map +0 -1
  290. package/lib/src/server/services/analytics.service.spec.d.ts +0 -2
  291. package/lib/src/server/services/analytics.service.spec.d.ts.map +0 -1
  292. package/lib/src/server/services/analytics.service.spec.js +0 -35
  293. package/lib/src/server/services/analytics.service.spec.js.map +0 -1
  294. package/lib/src/server/services/metrics.service.spec.d.ts +0 -2
  295. package/lib/src/server/services/metrics.service.spec.d.ts.map +0 -1
  296. package/lib/src/server/services/metrics.service.spec.js +0 -35
  297. package/lib/src/server/services/metrics.service.spec.js.map +0 -1
  298. package/lib/src/utils/index.spec.d.ts +0 -2
  299. package/lib/src/utils/index.spec.d.ts.map +0 -1
  300. package/lib/src/utils/index.spec.js +0 -30
  301. package/lib/src/utils/index.spec.js.map +0 -1
  302. package/lib/tsconfig.tsbuildinfo +0 -1
  303. package/lib/vite.config.d.ts +0 -3
  304. package/lib/vite.config.d.ts.map +0 -1
  305. package/lib/vite.config.js +0 -57
  306. package/lib/vite.config.js.map +0 -1
  307. package/src/client/errors/connection.error.spec.ts +0 -10
  308. package/src/client/errors/connection.error.ts +0 -7
  309. package/src/client/errors/index.ts +0 -4
  310. package/src/client/errors/internal-server.error.spec.ts +0 -12
  311. package/src/client/errors/internal-server.error.ts +0 -10
  312. package/src/client/errors/types.ts +0 -3
  313. package/src/client/errors/validation.error.spec.ts +0 -9
  314. package/src/client/errors/validation.error.ts +0 -10
  315. package/src/client/helpers/expectations.ts +0 -227
  316. package/src/client/helpers/index.ts +0 -1
  317. package/src/client/index.ts +0 -5
  318. package/src/client/methods/expectations-group.update.method.ts +0 -36
  319. package/src/client/methods/expectations.create.method.ts +0 -39
  320. package/src/client/methods/expectations.delete.method.ts +0 -33
  321. package/src/client/methods/expectations.update.method.ts +0 -58
  322. package/src/client/methods/index.ts +0 -6
  323. package/src/client/methods/ping.method.ts +0 -25
  324. package/src/client/models/__snapshots__/client.spec.ts.snap +0 -1294
  325. package/src/client/models/client.spec.ts +0 -316
  326. package/src/client/models/client.ts +0 -85
  327. package/src/client/models/index.ts +0 -2
  328. package/src/client/models/method.ts +0 -50
  329. package/src/client/onsite.spec.ts +0 -23
  330. package/src/client/onsite.ts +0 -29
  331. package/src/client/remote.spec.ts +0 -15
  332. package/src/client/remote.ts +0 -34
  333. package/src/client/types.ts +0 -31
  334. package/src/client/utils.spec.ts +0 -60
  335. package/src/client/utils.ts +0 -41
  336. package/src/config/index.ts +0 -34
  337. package/src/config/model.ts +0 -24
  338. package/src/expectations/__utils__/index.ts +0 -61
  339. package/src/expectations/errors/index.ts +0 -7
  340. package/src/expectations/index.ts +0 -3
  341. package/src/expectations/models/expectation.ts +0 -96
  342. package/src/expectations/models/index.ts +0 -3
  343. package/src/expectations/models/operator.ts +0 -89
  344. package/src/expectations/models/storage.spec.ts +0 -70
  345. package/src/expectations/models/storage.ts +0 -42
  346. package/src/expectations/operators/and.operator.spec.ts +0 -59
  347. package/src/expectations/operators/and.operator.ts +0 -37
  348. package/src/expectations/operators/exec.operator.spec.ts +0 -47
  349. package/src/expectations/operators/exec.operator.ts +0 -25
  350. package/src/expectations/operators/has.operator.spec.ts +0 -514
  351. package/src/expectations/operators/has.operator.ts +0 -230
  352. package/src/expectations/operators/if.operator.spec.ts +0 -116
  353. package/src/expectations/operators/if.operator.ts +0 -77
  354. package/src/expectations/operators/index.ts +0 -11
  355. package/src/expectations/operators/merge.operator.spec.ts +0 -48
  356. package/src/expectations/operators/merge.operator.ts +0 -97
  357. package/src/expectations/operators/not.operator.spec.ts +0 -12
  358. package/src/expectations/operators/not.operator.ts +0 -38
  359. package/src/expectations/operators/or.operator.spec.ts +0 -60
  360. package/src/expectations/operators/or.operator.ts +0 -37
  361. package/src/expectations/operators/remove.operator.spec.ts +0 -40
  362. package/src/expectations/operators/remove.operator.ts +0 -50
  363. package/src/expectations/operators/root.operator.spec.ts +0 -26
  364. package/src/expectations/operators/root.operator.ts +0 -51
  365. package/src/expectations/operators/set.operator.spec.ts +0 -96
  366. package/src/expectations/operators/set.operator.ts +0 -116
  367. package/src/expectations/operators/switch.operator.spec.ts +0 -157
  368. package/src/expectations/operators/switch.operator.ts +0 -126
  369. package/src/expectations/types.ts +0 -225
  370. package/src/expectations/utils/index.ts +0 -3
  371. package/src/expectations/utils/json.ts +0 -22
  372. package/src/expectations/utils/location.spec.ts +0 -64
  373. package/src/expectations/utils/location.ts +0 -180
  374. package/src/expectations/utils/schema.spec.ts +0 -17
  375. package/src/expectations/utils/schema.ts +0 -60
  376. package/src/gui/app/components/chart.component/index.ts +0 -173
  377. package/src/gui/app/components/chart.component/style.scss +0 -4
  378. package/src/gui/app/components/checkbox-area.component/index.ts +0 -101
  379. package/src/gui/app/components/checkbox-area.component/item.component.ts +0 -72
  380. package/src/gui/app/components/checkbox-area.component/style.scss +0 -19
  381. package/src/gui/app/components/checkbox-area.component/template.hbs +0 -3
  382. package/src/gui/app/components/curtain.component/index.ts +0 -19
  383. package/src/gui/app/components/curtain.component/style.scss +0 -14
  384. package/src/gui/app/components/empty.component/index.ts +0 -10
  385. package/src/gui/app/components/empty.component/style.scss +0 -34
  386. package/src/gui/app/components/empty.component/template.hbs +0 -6
  387. package/src/gui/app/components/expectation.component/index.ts +0 -60
  388. package/src/gui/app/components/expectation.component/style.scss +0 -5
  389. package/src/gui/app/components/expectation.component/template.hbs +0 -5
  390. package/src/gui/app/components/header.component/index.ts +0 -81
  391. package/src/gui/app/components/header.component/style.scss +0 -46
  392. package/src/gui/app/components/header.component/template.hbs +0 -15
  393. package/src/gui/app/components/history.component/index.ts +0 -86
  394. package/src/gui/app/components/history.component/style.scss +0 -5
  395. package/src/gui/app/components/history.component/template.hbs +0 -62
  396. package/src/gui/app/components/index.ts +0 -11
  397. package/src/gui/app/components/loader.component/index.ts +0 -12
  398. package/src/gui/app/components/loader.component/style.scss +0 -39
  399. package/src/gui/app/components/panel.component/index.ts +0 -52
  400. package/src/gui/app/components/panel.component/style.scss +0 -60
  401. package/src/gui/app/components/panel.component/template.hbs +0 -13
  402. package/src/gui/app/components/popups.component/index.ts +0 -26
  403. package/src/gui/app/components/popups.component/style.scss +0 -51
  404. package/src/gui/app/components/popups.component/template.hbs +0 -9
  405. package/src/gui/app/components/search.component/index.ts +0 -67
  406. package/src/gui/app/components/search.component/style.scss +0 -43
  407. package/src/gui/app/components/search.component/template.hbs +0 -7
  408. package/src/gui/app/components/viewer.component/index.ts +0 -28
  409. package/src/gui/app/components/viewer.component/style.scss +0 -38
  410. package/src/gui/app/components/viewer.component/template.hbs +0 -3
  411. package/src/gui/app/context.ts +0 -76
  412. package/src/gui/app/handlebars/helpers.ts +0 -32
  413. package/src/gui/app/handlebars/index.ts +0 -11
  414. package/src/gui/app/handlebars/partials/expectation-meta.hbs +0 -53
  415. package/src/gui/app/handlebars/partials/index.ts +0 -2
  416. package/src/gui/app/handlebars/partials/truncated.hbs +0 -10
  417. package/src/gui/app/handlebars/utils.ts +0 -9
  418. package/src/gui/app/main.ts +0 -38
  419. package/src/gui/app/models/button.ts +0 -41
  420. package/src/gui/app/models/client-storage.ts +0 -21
  421. package/src/gui/app/models/component.ts +0 -79
  422. package/src/gui/app/models/context.ts +0 -14
  423. package/src/gui/app/models/dynamic-storage.ts +0 -36
  424. package/src/gui/app/models/form.ts +0 -75
  425. package/src/gui/app/models/index.ts +0 -7
  426. package/src/gui/app/models/section.ts +0 -82
  427. package/src/gui/app/sections/analytics.section/index.ts +0 -97
  428. package/src/gui/app/sections/analytics.section/style.scss +0 -1
  429. package/src/gui/app/sections/analytics.section/template.hbs +0 -6
  430. package/src/gui/app/sections/expectations.section/index.ts +0 -179
  431. package/src/gui/app/sections/expectations.section/style.scss +0 -1
  432. package/src/gui/app/sections/expectations.section/template.hbs +0 -15
  433. package/src/gui/app/sections/history.section/index.ts +0 -175
  434. package/src/gui/app/sections/history.section/style.scss +0 -10
  435. package/src/gui/app/sections/history.section/templates/actions.hbs +0 -5
  436. package/src/gui/app/sections/history.section/templates/section.hbs +0 -15
  437. package/src/gui/app/sections/index.ts +0 -4
  438. package/src/gui/app/sections/settings.section/index.ts +0 -63
  439. package/src/gui/app/sections/settings.section/style.scss +0 -24
  440. package/src/gui/app/sections/settings.section/templates/cache.hbs +0 -6
  441. package/src/gui/app/sections/settings.section/templates/section.hbs +0 -6
  442. package/src/gui/app/sections/settings.section/templates/stats.hbs +0 -6
  443. package/src/gui/app/setup.ts +0 -7
  444. package/src/gui/app/tsconfig.json +0 -20
  445. package/src/gui/app/types/dev.ts +0 -6
  446. package/src/gui/app/types/index.ts +0 -1
  447. package/src/gui/app/types/window.global.ts +0 -9
  448. package/src/gui/app/utils.ts +0 -15
  449. package/src/gui/assets/fa-all.css +0 -5
  450. package/src/gui/assets/fa-regular-400.woff2 +0 -0
  451. package/src/gui/assets/fa-solid-900.woff2 +0 -0
  452. package/src/gui/assets/favicon.png +0 -0
  453. package/src/gui/index.html +0 -18
  454. package/src/gui/styles/_constants.scss +0 -11
  455. package/src/gui/styles/_elements.scss +0 -216
  456. package/src/gui/styles/_soon.scss +0 -35
  457. package/src/gui/styles/main.scss +0 -245
  458. package/src/index.ts +0 -9
  459. package/src/logger/index.ts +0 -80
  460. package/src/logger/types.ts +0 -4
  461. package/src/logger/utils.ts +0 -25
  462. package/src/meta/index.ts +0 -6
  463. package/src/meta/model.spec.ts +0 -28
  464. package/src/meta/model.ts +0 -29
  465. package/src/meta/storage.spec.ts +0 -18
  466. package/src/meta/storage.ts +0 -20
  467. package/src/server/endpoints/cache.delete.endpoint.ts +0 -54
  468. package/src/server/endpoints/cache.usage.get.endpoint.ts +0 -12
  469. package/src/server/endpoints/config.get.endpoint.ts +0 -10
  470. package/src/server/endpoints/expectations-group.update.endpoint.ts +0 -32
  471. package/src/server/endpoints/expectations.create.endpoint.ts +0 -23
  472. package/src/server/endpoints/expectations.delete.endpoint.ts +0 -12
  473. package/src/server/endpoints/expectations.get-list.endpoint.ts +0 -15
  474. package/src/server/endpoints/expectations.update.endpoint.ts +0 -29
  475. package/src/server/endpoints/gui.endpoint.ts +0 -76
  476. package/src/server/endpoints/history.delete.endpoint.ts +0 -10
  477. package/src/server/endpoints/history.get-list.endpoint.ts +0 -15
  478. package/src/server/endpoints/index.ts +0 -18
  479. package/src/server/endpoints/metrics.endpoint.ts +0 -12
  480. package/src/server/endpoints/ping.endpoint.ts +0 -7
  481. package/src/server/endpoints/stats.endpoint.ts +0 -20
  482. package/src/server/index.ts +0 -182
  483. package/src/server/models/containers/index.ts +0 -2
  484. package/src/server/models/containers/model.spec.ts +0 -81
  485. package/src/server/models/containers/model.ts +0 -79
  486. package/src/server/models/containers/storage.spec.ts +0 -41
  487. package/src/server/models/containers/storage.ts +0 -59
  488. package/src/server/models/containers/utils.ts +0 -4
  489. package/src/server/models/context/index.spec.ts +0 -171
  490. package/src/server/models/context/index.ts +0 -136
  491. package/src/server/models/context/snapshot.spec.ts +0 -84
  492. package/src/server/models/context/snapshot.ts +0 -148
  493. package/src/server/models/context/types.ts +0 -65
  494. package/src/server/models/context/utils.spec.ts +0 -77
  495. package/src/server/models/context/utils.ts +0 -99
  496. package/src/server/models/endpoint.spec.ts +0 -28
  497. package/src/server/models/endpoint.ts +0 -69
  498. package/src/server/models/exchanges/index.ts +0 -1
  499. package/src/server/models/exchanges/socket-io.spec.ts +0 -13
  500. package/src/server/models/exchanges/socket-io.ts +0 -14
  501. package/src/server/models/executor/errors/index.spec.ts +0 -23
  502. package/src/server/models/executor/errors/index.ts +0 -15
  503. package/src/server/models/executor/index.spec.ts +0 -148
  504. package/src/server/models/executor/index.ts +0 -297
  505. package/src/server/models/history/index.ts +0 -2
  506. package/src/server/models/history/model.spec.ts +0 -35
  507. package/src/server/models/history/model.ts +0 -82
  508. package/src/server/models/history/storage.spec.ts +0 -41
  509. package/src/server/models/history/storage.ts +0 -38
  510. package/src/server/models/index.ts +0 -11
  511. package/src/server/models/providers/index.ts +0 -2
  512. package/src/server/models/providers/model.spec.ts +0 -11
  513. package/src/server/models/providers/model.ts +0 -33
  514. package/src/server/models/providers/storage.spec.ts +0 -21
  515. package/src/server/models/providers/storage.ts +0 -34
  516. package/src/server/models/reply.spec.ts +0 -17
  517. package/src/server/models/reply.ts +0 -10
  518. package/src/server/models/router.spec.ts +0 -50
  519. package/src/server/models/router.ts +0 -79
  520. package/src/server/models/service.ts +0 -5
  521. package/src/server/models/transports/index.ts +0 -2
  522. package/src/server/models/transports/model.ts +0 -9
  523. package/src/server/models/transports/storage.spec.ts +0 -14
  524. package/src/server/models/transports/storage.ts +0 -13
  525. package/src/server/services/analytics.service.spec.ts +0 -38
  526. package/src/server/services/analytics.service.ts +0 -58
  527. package/src/server/services/index.ts +0 -2
  528. package/src/server/services/metrics.service.spec.ts +0 -42
  529. package/src/server/services/metrics.service.ts +0 -46
  530. package/src/server/transports/http.transport/context.ts +0 -72
  531. package/src/server/transports/http.transport/executor.ts +0 -156
  532. package/src/server/transports/http.transport/index.ts +0 -53
  533. package/src/server/transports/index.ts +0 -3
  534. package/src/server/transports/internal/http.transport/context.ts +0 -50
  535. package/src/server/transports/internal/http.transport/executor.ts +0 -56
  536. package/src/server/transports/internal/http.transport/index.ts +0 -23
  537. package/src/server/transports/internal/http.transport/reply.ts +0 -82
  538. package/src/server/transports/internal/index.ts +0 -2
  539. package/src/server/transports/internal/io.transport/context.ts +0 -40
  540. package/src/server/transports/internal/io.transport/executor.ts +0 -27
  541. package/src/server/transports/internal/io.transport/index.ts +0 -36
  542. package/src/server/transports/internal/io.transport/reply.ts +0 -26
  543. package/src/server/transports/internal/utils.ts +0 -6
  544. package/src/server/transports/ws.transport/context.ts +0 -90
  545. package/src/server/transports/ws.transport/executor.ts +0 -64
  546. package/src/server/transports/ws.transport/index.ts +0 -105
  547. package/src/server/types/index.ts +0 -32
  548. package/src/server/utils/index.ts +0 -35
  549. package/src/utils/index.spec.ts +0 -31
  550. package/src/utils/index.ts +0 -51
  551. package/test/index.ts +0 -299
  552. package/test/providers/index.ts +0 -2
  553. package/test/providers/root.ts +0 -241
  554. package/test/providers/statics.ts +0 -37
  555. package/tsconfig.json +0 -108
  556. package/tsconfig.tsbuildinfo +0 -1
  557. package/types/common.ts +0 -127
  558. package/types/index.ts +0 -1
  559. package/vite.config.ts +0 -64
@@ -1,50 +0,0 @@
1
- import { Router } from './router';
2
-
3
- // Test generated using Keploy
4
- test('should set default transports when no transports are provided', () => {
5
- const mockServer = {
6
- providers: {
7
- register: jest.fn(),
8
- default: {} // mocked default provider
9
- },
10
- transports: new Map([['default', {}]]) // mocked transports
11
- };
12
-
13
- const router = new Router(<any>mockServer);
14
- const pattern = 'route-pattern';
15
- const configuration = { provider: {} }; // mocked provider
16
-
17
- const result = router.register(pattern, <any>configuration);
18
-
19
- expect(mockServer.providers.register).toHaveBeenCalledWith(configuration.provider);
20
- expect(result.get(pattern)).toEqual({
21
- provider: configuration.provider,
22
- transports: { default: {} } // default transport set
23
- });
24
- });
25
-
26
- // Test generated using Keploy
27
- test('match should yield default provider and transport for non-matching pattern', () => {
28
- const mockServer = {
29
- providers: {
30
- register: jest.fn(),
31
- default: {} // mocked default provider
32
- },
33
- transports: new Map([['transport2', {}]]) // mocked transports
34
- };
35
- const router = new Router(<any>mockServer);
36
- const pattern = 'route/*';
37
- const configuration = {
38
- provider: {},
39
- transports: ['transport1']
40
- };
41
- router.register(pattern, <any>configuration);
42
-
43
- const result = Array.from(router.match('transport2', 'random/path'));
44
- expect(result).toHaveLength(1);
45
- expect(result[0]).toEqual({
46
- provider: mockServer.providers.default,
47
- transport: {}
48
- });
49
- });
50
-
@@ -1,79 +0,0 @@
1
- import minimatch from 'minimatch';
2
- import _ from 'lodash';
3
-
4
- import type { MockServer, TDefaultServerContext } from '../index';
5
- import type { IServerContext } from '../types';
6
- import type { Transport } from './transports';
7
- import type { Provider } from './providers';
8
-
9
- export interface IRouteContext<TTransportType extends string> {
10
- transports: Partial<Record<TTransportType, Transport>>;
11
- provider: Provider<any>;
12
- }
13
-
14
- export interface IRouteMatchResult<
15
- K extends string,
16
- T extends Transport = Transport
17
- > extends Pick<IRouteContext<K>, 'provider'> {
18
- transport: T;
19
- }
20
-
21
- export class Router<TContext extends IServerContext<any>> extends Map<string, IRouteContext<TContext['transport']>> {
22
- constructor(private server: MockServer) {
23
- super();
24
- }
25
-
26
- public register(
27
- pattern: string,
28
- configuration: {
29
- provider: Provider<any>;
30
- transports?: TContext['transport'][] | Partial<Record<TContext['transport'], Transport>>;
31
- }
32
- ): this {
33
- this.server.providers.register(configuration.provider);
34
-
35
- const types = Array.isArray(configuration.transports)
36
- ? configuration.transports
37
- : configuration.transports
38
- ? <TContext['transport'][]>Object.keys(configuration.transports)
39
- : [...this.server.transports.keys()];
40
-
41
- return this.set(pattern, {
42
- provider: configuration.provider,
43
-
44
- transports: types.reduce<IRouteContext<TContext['transport']>['transports']>(
45
- (acc, type) => _.set(
46
- acc,
47
- type,
48
- Array.isArray(configuration.transports)
49
- ? this.server.transports.get(type)
50
- : configuration.transports?.[type] ?? this.server.transports.get(type)
51
- ),
52
- {}
53
- ),
54
- });
55
- }
56
-
57
- public *match<T extends Transport>(
58
- transport: TContext['transport'],
59
- path: string
60
- ): Generator<IRouteMatchResult<TContext['transport'], T>> {
61
- for (const [pattern, route] of this.entries()) {
62
- if (minimatch(path, pattern)) {
63
- yield {
64
- provider: route.provider,
65
- transport: <T>route.transports[transport],
66
- };
67
- }
68
- }
69
-
70
- yield {
71
- provider: this.server.providers.default,
72
- transport: <T>this.server.transports.get(transport),
73
- };
74
- }
75
-
76
- static build<TContext extends IServerContext<any> = TDefaultServerContext>(server: MockServer): Router<TContext> {
77
- return new Router<TContext>(server);
78
- }
79
- }
@@ -1,5 +0,0 @@
1
- import type { MockServer } from '../index';
2
-
3
- export abstract class Service {
4
- constructor(protected server: MockServer<any, any>) {}
5
- }
@@ -1,2 +0,0 @@
1
- export * from './storage';
2
- export * from './model';
@@ -1,9 +0,0 @@
1
- import type { Executor } from '../executor';
2
- import type { Provider } from '../providers';
3
-
4
- export abstract class Transport<TExecutor extends Executor = Executor> {
5
- public TContext!: TExecutor['TContext'];
6
-
7
- public abstract executor: TExecutor;
8
- public abstract compileContext(provider: Provider<any>, ...args: unknown[]): Promise<TExecutor['TRequestContext']>;
9
- }
@@ -1,14 +0,0 @@
1
- import { TransportsStorage } from './storage';
2
- import { Transport } from './model';
3
-
4
- // Test generated using Keploy
5
- it('should store the transport and return the instance', () => {
6
- const storage = new TransportsStorage();
7
- const transportType = 'http';
8
- const transport = <Transport><unknown>{ id: 'transport1' }; // Assume Transport has an id field
9
-
10
- const result = storage.register(transportType, transport);
11
-
12
- expect(storage.get(transportType)).toBe(transport);
13
- expect(result).toBe(storage);
14
- });
@@ -1,13 +0,0 @@
1
- import type { IServerContext } from '../../types';
2
- import type { Transport } from './model';
3
-
4
- import { Logger } from '../../../logger';
5
-
6
- const logger = Logger.build('Server.Models.TransportsStorage');
7
-
8
- export class TransportsStorage<TContext extends IServerContext<any>> extends Map<TContext['transport'], Transport> {
9
- public register(type: TContext['transport'], transport: Transport): this {
10
- logger.info(`Transport [${type}] has registered`);
11
- return this.set(type, transport);
12
- }
13
- }
@@ -1,38 +0,0 @@
1
- import { AnalyticsService } from './analytics.service';
2
-
3
- // Test generated using Keploy
4
- test("calculateRedisUsage_noRedisConfig_returnsZeroUsage", async () => {
5
- const mockServer = { databases: { redis: null } };
6
- const analyticsService = new AnalyticsService(<any>mockServer);
7
-
8
- const result = await analyticsService.calculateRedisUsage();
9
-
10
- expect(result).toEqual({ count: 0, bytes: 0 });
11
- });
12
-
13
- // Test generated using Keploy
14
- test("calculateRedisUsage_errorDuringScan_rejectsWithError", async () => {
15
- const mockStream = {
16
- once: jest.fn((event, handler) => {
17
- if (event === 'error') handler(new Error('Scan Error'));
18
- }),
19
- on: jest.fn(),
20
- pause: jest.fn(),
21
- resume: jest.fn(),
22
- close: jest.fn(),
23
- };
24
- const mockServer = {
25
- databases: {
26
- redis: {
27
- scanStream: jest.fn(() => mockStream),
28
- options: { keyPrefix: '' }
29
- }
30
- }
31
- };
32
- const analyticsService = new AnalyticsService(<any>mockServer);
33
-
34
- await expect(analyticsService.calculateRedisUsage()).rejects.toThrow('Scan Error');
35
- expect(mockStream.close).toHaveBeenCalled();
36
- });
37
-
38
-
@@ -1,58 +0,0 @@
1
- import _ from 'lodash';
2
-
3
- import { Service } from '../models';
4
- import { Logger } from '../../logger';
5
-
6
- export interface IRedisUsage {
7
- count: number;
8
- bytes: number;
9
- }
10
-
11
- const logger = Logger.build('Services.Analytics');
12
-
13
- export class AnalyticsService extends Service {
14
- public async calculateRedisUsage(prefix?: string): Promise<IRedisUsage> {
15
- if (!this.server.databases.redis) {
16
- return { count: 0, bytes: 0 };
17
- }
18
-
19
- return new Promise<IRedisUsage>((resolve, reject) => {
20
- const match = `${this.server.databases.redis!.options.keyPrefix ?? ''}${prefix ?? ''}*`;
21
- const stream = this.server.databases.redis!.scanStream({ match });
22
-
23
- const result: IRedisUsage = { count: 0, bytes: 0 };
24
-
25
- stream.once('end', () => resolve(result));
26
- stream.once('error', (error) => {
27
- logger.error('Got error while scan execution', error?.stack ?? error);
28
- stream.close();
29
-
30
- reject(error);
31
- });
32
-
33
- stream.on('data', async (keys: string[]) => {
34
- stream.pause();
35
-
36
- result.count += keys.length;
37
-
38
- const usage = await Promise
39
- .all(keys.map(async (key) => this.server.databases.redis!.call('MEMORY', 'USAGE', key)))
40
- .catch((error) => {
41
- logger.error('Got error while fetching memory usage', error?.stack ?? error);
42
- stream.close();
43
-
44
- reject(error);
45
- return [];
46
- });
47
-
48
- usage.forEach((bytes) => result.bytes += Number(bytes));
49
-
50
- stream.resume();
51
- });
52
- });
53
- }
54
-
55
- static build(server: Service['server']) {
56
- return new AnalyticsService(server);
57
- }
58
- }
@@ -1,2 +0,0 @@
1
- export * from './analytics.service';
2
- export * from './metrics.service';
@@ -1,42 +0,0 @@
1
- import { MetricsService } from './metrics.service';
2
- import { Service } from '../models';
3
-
4
- // Test generated using Keploy
5
- class MockService {
6
- exchanges = { io: { publish: jest.fn() }};
7
- }
8
-
9
- test('should register a valid containers metric point and maintain correct limit', () => {
10
- const mockServer = new MockService();
11
- const service = new MetricsService(<any>mockServer, { limit: 2 });
12
-
13
- service.register('containers', { count: 1 });
14
- service.register('containers', { count: 2 });
15
- service.register('containers', { count: 3 });
16
-
17
- expect(service.points.containers.length).toBe(2); // Should only keep the last 2 entries
18
- expect(service.points.containers[0].values.count).toBe(2);
19
- expect(service.points.containers[1].values.count).toBe(3);
20
- expect(mockServer.exchanges.io.publish).toHaveBeenCalledTimes(3);
21
- expect(mockServer.exchanges.io.publish).toHaveBeenCalledWith('metric:registered', expect.objectContaining({ name: 'containers' }));
22
- });
23
-
24
- // Test generated using Keploy
25
- test('should throw an error for invalid metric name', () => {
26
- const mockServer = new MockService();
27
- const service = new MetricsService(<any>mockServer);
28
-
29
- expect(() => service.register<any>('invalidName', { count: 1 })).toThrow('Invalid metric name');
30
- });
31
-
32
-
33
- // Test generated using Keploy
34
- test('build method should initialize MetricsService correctly', () => {
35
- const mockServer = new MockService();
36
- const service = MetricsService.build(<any>mockServer, { limit: 5 });
37
-
38
- expect(service).toBeInstanceOf(MetricsService);
39
- expect(service['options']?.limit).toBe(5);
40
- });
41
-
42
-
@@ -1,46 +0,0 @@
1
- import _ from 'lodash';
2
-
3
- import { Service } from '../models';
4
- import { cast } from '../../utils';
5
-
6
- export type TMetricPoint<K extends string = string> = {
7
- timestamp: number;
8
- values: Record<K, number>;
9
- }
10
-
11
- export class MetricsService extends Service {
12
- private limit = this.options?.limit ?? 300;
13
-
14
- public points = {
15
- containers: cast<TMetricPoint<'count'>[]>([]),
16
- memory: cast<TMetricPoint<'mbs'>[]>([]),
17
- cache: cast<TMetricPoint<'redis_mbs' | 'redis_count'>[]>([]),
18
- rate: cast<TMetricPoint<'count'>[]>([]),
19
- };
20
-
21
- constructor(server: Service['server'], private options?: { limit?: number }) {
22
- super(server);
23
- }
24
-
25
- public register<K extends keyof MetricsService['points']>(
26
- name: K,
27
- values: MetricsService['points'][K][0]['values'],
28
- ): this {
29
- if (!this.points[name]) {
30
- throw new Error('Invalid metric name');
31
- }
32
-
33
- const group: TMetricPoint[] = this.points[name];
34
- const point: TMetricPoint = { timestamp: Date.now(), values };
35
-
36
- group.push(point);
37
- group.splice(0, _.clamp(group.length - this.limit, 0, Infinity));
38
-
39
- this.server.exchanges.io.publish('metric:registered', { name, point });
40
- return this;
41
- }
42
-
43
- static build(server: Service['server'], options?: MetricsService['options']) {
44
- return new MetricsService(server, options);
45
- }
46
- }
@@ -1,72 +0,0 @@
1
- import { IncomingMessage, ServerResponse } from 'http';
2
- import _ from 'lodash';
3
-
4
- import { IServerContext } from '../../types';
5
- import { metaStorage } from '../../../meta';
6
- import { Logger } from '../../../logger';
7
- import {
8
- extractHttpIncommingContext,
9
- IRequestContextIncoming,
10
- Provider,
11
- RequestContext,
12
- RequestContextSnapshot,
13
- } from '../../models';
14
-
15
- const logger = Logger.build('Server.Transports.Http.Context');
16
-
17
- export class HttpRequestContext extends RequestContext<IServerContext<{
18
- transport: 'http';
19
- event: 'connection';
20
- }>> {
21
- public snapshot = this.compileSnapshot();
22
- public history = this.compileHistory();
23
-
24
- public meta = metaStorage.generate({
25
- ...(this.incoming.headers['x-request-id'] && { requestId: String(this.incoming.headers['x-request-id']) }),
26
- });
27
-
28
- constructor(
29
- public provider: Provider,
30
- public incoming: IRequestContextIncoming,
31
- public request: IncomingMessage,
32
- public response: ServerResponse
33
- ) {
34
- super(provider, { transport: 'http', event: 'connection' });
35
- }
36
-
37
- public handle(): this {
38
- logger.info('Incoming HTTP request', `[${this.incoming.method} ${this.incoming.path}]`);
39
- return super.handle();
40
- }
41
-
42
- public complete(): this {
43
- logger.info(
44
- `Incoming HTTP request [${this.incoming.method} ${this.incoming.path}] has finished`,
45
- `with status [${this.outgoing?.status ?? 200}] in [${Date.now() - this.timestamp}ms]`
46
- );
47
-
48
- return super.complete();
49
- }
50
-
51
- public compileSnapshot(): RequestContextSnapshot {
52
- const snapshot = super.compileSnapshot();
53
-
54
- snapshot.outgoing.status = 200;
55
- snapshot.incoming.headers = _.omit(snapshot.incoming.headers, ['transfer-encoding']);
56
-
57
- return snapshot.assign({
58
- ...(this.incoming.headers['x-use-mock-seed'] && {
59
- seed: Number(this.incoming.headers['x-use-mock-seed']),
60
- }),
61
-
62
- ...(this.incoming.headers['x-use-mock-state'] && {
63
- state: JSON.parse(Buffer.from(String(this.incoming.headers['x-use-mock-state']), 'base64').toString()),
64
- }),
65
- });
66
- };
67
-
68
- static async build(provider: Provider, request: IncomingMessage, response: ServerResponse) {
69
- const incoming = await extractHttpIncommingContext(request);
70
- return new HttpRequestContext(provider, incoming, request, response);
71
- }
72
- }
@@ -1,156 +0,0 @@
1
- import axios, { AxiosError, AxiosRequestConfig } from 'axios';
2
- import { HttpsProxyAgent } from 'https-proxy-agent';
3
- import _ from 'lodash';
4
-
5
- import type { Expectation, IExpectationSchemaForward } from '../../../expectations';
6
- import type { HttpRequestContext } from './context';
7
-
8
- import { Logger } from '../../../logger';
9
- import {
10
- extractPayloadType,
11
- parsePayload,
12
- Executor,
13
- ExecutorManualError,
14
- IRequestContextOutgoing,
15
- IRequestContextIncoming,
16
- IExecutorExecOptions,
17
- } from '../../models';
18
-
19
- const logger = Logger.build('Server.Transports.Http.Executor');
20
-
21
- export class HttpExecutor extends Executor<HttpRequestContext> {
22
- public async exec(context: HttpRequestContext, options?: IExecutorExecOptions) {
23
- await super.exec(context, options).catch((error) => {
24
- if (error instanceof ExecutorManualError) {
25
- return null;
26
- }
27
-
28
- logger.error('Got unexpected error while execution', error?.stack ?? error);
29
- });
30
-
31
- return context.complete();
32
- }
33
-
34
- public async match(context: HttpRequestContext): Promise<Expectation<any> | null> {
35
- const expectation = context.provider.storages.expectations.match(context.snapshot);
36
-
37
- if (!expectation && context.hasStatuses(['handling'])) {
38
- context.assign({
39
- outgoing: await this.reply(context, {
40
- type: 'plain',
41
- status: 404,
42
-
43
- dataRaw: Buffer.from('Expectation was not found'),
44
- headers: {},
45
- }),
46
- });
47
-
48
- return null;
49
- }
50
-
51
- return expectation;
52
- }
53
-
54
- public async forward(
55
- context: HttpRequestContext,
56
- incoming: IRequestContextIncoming,
57
- configuration: IExpectationSchemaForward
58
- ) {
59
- const options = await this
60
- .compileForwardingConfiguration(context, incoming, configuration)
61
- .catch((error) => {
62
- context.snapshot.assign({
63
- error: { code: 'UNKNOWN', message: error?.message ?? 'Unknown' },
64
- outgoing: { type: 'plain', status: 502, headers: {} },
65
- });
66
-
67
- logger.error('Got error while execution [compileForwardingConfiguration] method', error?.stack ?? error);
68
- throw error;
69
- });
70
-
71
- const response = await axios
72
- .request<Buffer>(options)
73
- .catch((error: AxiosError<Buffer>) => {
74
- if (!error.response) {
75
- context.snapshot.assign({
76
- error: _.pick(error, ['message', 'code']),
77
- outgoing: { type: 'plain', status: 502, headers: {} },
78
- });
79
-
80
- logger.error('Got error while forwaring', error?.stack ?? error);
81
- throw error;
82
- }
83
-
84
- return error.response;
85
- });
86
-
87
- const type = extractPayloadType(response.headers) ?? 'plain';
88
- const data = parsePayload(type, response.data);
89
-
90
- return {
91
- incoming,
92
- outgoing: {
93
- type: type,
94
-
95
- status: response.status,
96
- headers: response.headers,
97
-
98
- data,
99
- dataRaw: response.data,
100
- },
101
- };
102
- }
103
-
104
- public async reply(context: HttpRequestContext, outgoing: IRequestContextOutgoing) {
105
- outgoing.headers = _.omitBy(
106
- Object.assign(_.omit(outgoing.headers, ['transfer-encoding']), {
107
- 'content-type': outgoing.headers['content-type'] ?? (
108
- outgoing.type === 'json' ? 'application/json' : outgoing.type === 'xml' ? 'application/xml' : undefined
109
- ),
110
-
111
- ...(outgoing.dataRaw && { 'content-length': String(outgoing.dataRaw.length) }),
112
- }),
113
- _.isNil
114
- );
115
-
116
- context.response.writeHead(outgoing.status, outgoing.headers);
117
- context.response.write(outgoing.dataRaw ?? '');
118
- context.response.end();
119
-
120
- return outgoing;
121
- }
122
-
123
- /** Compiles Axios request configuration to forward */
124
- protected async compileForwardingConfiguration(
125
- context: HttpRequestContext,
126
- incoming: IRequestContextIncoming,
127
- configuration: IExpectationSchemaForward
128
- ): Promise<AxiosRequestConfig> {
129
- const url = new URL(configuration.url ?? incoming.path, configuration.baseUrl);
130
- const isSecured = url.protocol.includes('https');
131
-
132
- return {
133
- timeout: configuration.timeout ?? 30000,
134
-
135
- method: incoming.method,
136
- headers: Object.assign(incoming.headers, {
137
- connection: 'close',
138
-
139
- ...(configuration.options?.overrideHost !== false && { host: url.host }),
140
- ...(incoming.dataRaw && { 'content-length': String(incoming.dataRaw.length) }),
141
- }),
142
-
143
- ...(configuration.url && { url: configuration.url }),
144
- ...(configuration.baseUrl && { baseURL: configuration.baseUrl, url: incoming.path }),
145
-
146
- data: incoming.dataRaw,
147
- params: context.incoming.query,
148
- responseType: 'arraybuffer',
149
-
150
- ...((configuration.proxy && !isSecured) && { proxy: configuration.proxy }),
151
- ...((configuration.proxy && isSecured) && {
152
- httpsAgent: new HttpsProxyAgent(`http://${configuration.proxy.host}:${configuration.proxy.port}`),
153
- }),
154
- };
155
- }
156
- }
@@ -1,53 +0,0 @@
1
- import { IncomingMessage, ServerResponse } from 'http';
2
-
3
- import { Provider, Router, Transport } from '../../models';
4
- import { HttpRequestContext } from './context';
5
- import { HttpExecutor } from './executor';
6
- import { metaStorage } from '../../../meta';
7
- import { Logger } from '../../../logger';
8
-
9
- export * from './executor';
10
- export * from './context';
11
-
12
- const logger = Logger.build('Server.Transports.Http');
13
-
14
- export const buildHttpListener = (router: Router<HttpRequestContext['TContext']>) =>
15
- async (request: IncomingMessage, response: ServerResponse) => {
16
- for (const { provider, transport } of router.match<HttpTransport>('http', request.url ?? '')) {
17
- const context = await transport
18
- .compileContext(provider, request, response)
19
- .catch((error) => logger.error('Got error while context compilation', error?.stack ?? error));
20
-
21
- if (!context) {
22
- return response.destroy();
23
- }
24
- if (!context.hasStatuses(['registered', 'handling'])) {
25
- break;
26
- }
27
-
28
- const expectation = await metaStorage
29
- .wrap(context.meta, () => transport.executor.match(context))
30
- .catch((error) => logger.error('Got error while expectation matching', error?.stack ?? error));
31
-
32
- if (!context.hasStatuses(['registered', 'handling'])) {
33
- break;
34
- }
35
- if (!expectation) {
36
- continue;
37
- }
38
-
39
- await metaStorage
40
- .wrap(context.meta, () => transport.executor.exec(context.handle(), { expectation }))
41
- .catch((error) => logger.error('Got error while execution', error?.stack ?? error));
42
-
43
- break;
44
- }
45
- }
46
-
47
- export class HttpTransport extends Transport<HttpExecutor> {
48
- public executor = new HttpExecutor();
49
-
50
- public compileContext(provider: Provider, request: IncomingMessage, response: ServerResponse) {
51
- return HttpRequestContext.build(provider, request, response);
52
- }
53
- }
@@ -1,3 +0,0 @@
1
- export * from './http.transport';
2
- export * from './ws.transport';
3
- export * from './internal';