@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,76 +0,0 @@
1
- import { createReadStream } from 'fs';
2
-
3
- import mime from 'mime-types';
4
- import path from 'path';
5
- import fs from 'fs/promises';
6
- import _ from 'lodash';
7
-
8
- import { Endpoint, IRequestContextOutgoing } from '../models';
9
- import config from '../../config';
10
-
11
- export default Endpoint
12
- .build<{ outgoing: string }>()
13
- .bindToHttp(<const>{ method: 'GET', path: '/gui' })
14
- .assignHandler(async (context) => {
15
- if (context.transport !== 'http') {
16
- return context.reply.notFound();
17
- }
18
-
19
- const routes = config.get('routes');
20
- const statics = config.get('statics');
21
-
22
- if (!context.incoming.path.includes(routes.internal.gui)) {
23
- return context.assign({ outgoing: { type: 'plain', status: 404, headers: {} } });
24
- }
25
-
26
- const root = routes.internal.root + routes.internal.gui;
27
- const parsed = path.parse(context.incoming.path.replace(root, ''));
28
-
29
- if (!parsed.dir) {
30
- return context.assign({
31
- outgoing: {
32
- type: 'plain',
33
- status: 301,
34
-
35
- headers: {
36
- Location: `..${root}/`,
37
- },
38
- },
39
- });
40
- }
41
-
42
- if (parsed.dir === '/' && !parsed.ext) {
43
- const outgoing: IRequestContextOutgoing = {
44
- type: 'plain',
45
- status: 200,
46
-
47
- headers: {
48
- 'Content-Type': 'text/html;charset=utf-8',
49
- },
50
- };
51
-
52
- context.response.writeHead(outgoing.status, outgoing.headers);
53
- createReadStream(path.join(statics.public.dir, '/index.html')).pipe(context.response);
54
-
55
- return context.assign({ outgoing }).complete();
56
- }
57
-
58
- const stats = await fs.stat(path.join(statics.public.dir, parsed.dir, parsed.base)).catch(() => null);
59
- if (!stats) {
60
- return context.assign({ outgoing: { type: 'plain', status: 404, headers: {} } });
61
- }
62
-
63
- const outgoing: IRequestContextOutgoing = {
64
- type: 'plain',
65
- status: 200,
66
-
67
- headers: {
68
- 'Content-Type': mime.contentType(parsed.ext) || '',
69
- },
70
- };
71
-
72
- context.response.writeHead(outgoing.status, outgoing.headers);
73
- createReadStream(path.join(statics.public.dir, parsed.dir, parsed.base)).pipe(context.response);
74
-
75
- return context.assign({ outgoing }).complete();
76
- });
@@ -1,10 +0,0 @@
1
- import { Endpoint } from '../models';
2
-
3
- export default Endpoint
4
- .build<{ outgoing: null }>()
5
- .bindToHttp(<const>{ method: 'DELETE', path: '/history' })
6
- .bindToIo(<const>{ path: 'history:delete' })
7
- .assignHandler(({ reply, server }) => {
8
- server.providers.extract().forEach((provider) => provider.storages.history.clear());
9
- reply.ok(null);
10
- });
@@ -1,15 +0,0 @@
1
- import { History, Endpoint } from '../models';
2
-
3
- export default Endpoint
4
- .build<{ outgoing: History['TPlain'][] }>()
5
- .bindToHttp(<const>{ method: 'GET', path: '/history' })
6
- .bindToIo(<const>{ path: 'history:get-list' })
7
- .assignHandler(({ reply, server }) =>
8
- reply.ok(
9
- server.providers
10
- .extract()
11
- .reduce<History[]>((acc, provider) => acc.concat([...provider.storages.history.values()]), [])
12
- .sort((a, b) => b.timestamp - a.timestamp)
13
- .map((history) => history.toPlain())
14
- )
15
- );
@@ -1,18 +0,0 @@
1
- export { default as expectationsGroupUpdate } from './expectations-group.update.endpoint';
2
- export { default as expectationsGetList } from './expectations.get-list.endpoint';
3
- export { default as expectationsCreate } from './expectations.create.endpoint';
4
- export { default as expectationsDelete } from './expectations.delete.endpoint';
5
- export { default as expectationsUpdate } from './expectations.update.endpoint';
6
-
7
- export { default as historyGetList } from './history.get-list.endpoint';
8
- export { default as historyDelete } from './history.delete.endpoint';
9
-
10
- export { default as cacheUsageGet } from './cache.usage.get.endpoint';
11
- export { default as cacheDelete } from './cache.delete.endpoint';
12
-
13
- export { default as configGet } from './config.get.endpoint';
14
-
15
- export { default as metrics } from './metrics.endpoint';
16
- export { default as stats } from './stats.endpoint';
17
- export { default as ping } from './ping.endpoint';
18
- export { default as gui } from './gui.endpoint';
@@ -1,12 +0,0 @@
1
- import { MetricsService } from '../services';
2
- import { Endpoint } from '../models';
3
-
4
- export default Endpoint
5
- .build<{
6
- outgoing: MetricsService['points'];
7
- }>()
8
- .bindToHttp(<const>{ method: 'GET', path: '/metrics' })
9
- .bindToIo(<const>{ path: 'metrics:get' })
10
- .assignHandler(({ reply, server }) =>
11
- reply.ok(server.services.metrics.points)
12
- );
@@ -1,7 +0,0 @@
1
- import { Endpoint } from '../models';
2
-
3
- export default Endpoint
4
- .build<{ outgoing: 'pong' }>()
5
- .bindToHttp(<const>{ method: 'GET', path: '/ping' })
6
- .bindToIo(<const>{ path: 'ping' })
7
- .assignHandler(({ reply }) => reply.ok('pong'));
@@ -1,20 +0,0 @@
1
- import dayjs from 'dayjs';
2
-
3
- import { version } from '../../../package.json';
4
- import { Endpoint } from '../models';
5
-
6
- export default Endpoint
7
- .build<{
8
- outgoing: {
9
- version: string;
10
- uptime: string;
11
- };
12
- }>()
13
- .bindToHttp(<const>{ method: 'GET', path: '/stats' })
14
- .bindToIo(<const>{ path: 'stats' })
15
- .assignHandler((context) =>
16
- context.reply.ok({
17
- version,
18
- uptime: dayjs(context.server.timestamp).fromNow(true),
19
- })
20
- );
@@ -1,182 +0,0 @@
1
- import relativeTimePlugin from 'dayjs/plugin/relativeTime';
2
- import dayjs from 'dayjs';
3
- import _ from 'lodash';
4
-
5
- import { Redis, RedisOptions } from 'ioredis';
6
- import { WebSocketServer } from 'ws';
7
- import { createServer } from 'http';
8
- import { Server } from 'socket.io';
9
-
10
- import { buildSocketIoExchange, ProvidersStorage, Router, Transport, TransportsStorage } from './models';
11
- import { IIoExchangeSchema, IServerContext, TDefaultServerContext } from './types';
12
- import { AnalyticsService, MetricsService } from './services';
13
- import { Logger } from '../logger';
14
- import {
15
- buildHttpListener,
16
- buildWsListener,
17
- HttpTransport,
18
- InternalHttpTransport,
19
- InternalSocketIoTransport,
20
- WsTransport,
21
- } from './transports';
22
-
23
- import config from '../config';
24
-
25
- export * from './transports';
26
- export * from './models';
27
- export * from './types';
28
-
29
- dayjs.extend(relativeTimePlugin);
30
-
31
- const logger = Logger.build('Server');
32
-
33
- export interface IMockServerConfiguration {
34
- port: number;
35
- host: string;
36
-
37
- containers?: {
38
- /** Seconds `default: 1h` */
39
- expiredCleaningInterval?: number;
40
- };
41
-
42
- transports?: Partial<Record<TDefaultServerContext['transport'], Transport>> & Record<string, Transport>;
43
- databases?: {
44
- redis?: RedisOptions;
45
- };
46
- }
47
-
48
- export class MockServer<
49
- TConfiguration extends IMockServerConfiguration = IMockServerConfiguration,
50
- TContext extends IServerContext<any> = IServerContext<{
51
- transport: TDefaultServerContext['transport'] | Extract<keyof TConfiguration['transports'], string>;
52
-
53
- event: TDefaultServerContext['event'] | {
54
- [K in keyof TConfiguration['transports']]: NonNullable<TConfiguration['transports']>[K]['TContext']['event'];
55
- }[keyof TConfiguration['transports']];
56
-
57
- flag: TDefaultServerContext['flag'] | {
58
- [K in keyof TConfiguration['transports']]: NonNullable<TConfiguration['transports']>[K]['TContext']['flag'];
59
- }[keyof TConfiguration['transports']];
60
- }>
61
- > {
62
- public TContext!: TContext;
63
-
64
- public timestamp = Date.now();
65
- public authority = `http://${this.configuration.host}:${this.configuration.port}`;
66
-
67
- public databases = {
68
- redis: this.configuration.databases?.redis
69
- ? new Redis({ keyPrefix: 'mock:', ...this.configuration.databases?.redis })
70
- : null,
71
- };
72
-
73
- public exchanges = {
74
- io: buildSocketIoExchange<IIoExchangeSchema>({ emit: () => false }),
75
- };
76
-
77
- public providers = new ProvidersStorage<TContext>(this);
78
- public transports = new TransportsStorage<TContext>()
79
- .register('http', new HttpTransport())
80
- .register('ws', new WsTransport());
81
-
82
- public router = Router.build<TContext>(this);
83
-
84
- public http = createServer(buildHttpListener(this.router));
85
- public ws = new WebSocketServer({ server: this.http }).on('connection', buildWsListener(this.router));
86
-
87
- public io = new Server(this.http, {
88
- ...(process.env['NODE_ENV'] === 'development' && {
89
- cors: { origin: '*' },
90
- }),
91
- });
92
-
93
- public services = {
94
- analytics: AnalyticsService.build(this),
95
- metrics: MetricsService.build(this),
96
- };
97
-
98
- private internal = {
99
- transports: {
100
- http: new InternalHttpTransport(this),
101
- io: new InternalSocketIoTransport(this),
102
- },
103
- };
104
-
105
- constructor(public configuration: TConfiguration) {
106
- this.databases.redis?.on('reconnecting', () => logger.info('Redis is reconnecting'));
107
- this.databases.redis?.on('connect', () => logger.info('Redis has connected'));
108
- this.databases.redis?.on('close', () => logger.info('Redis has closed'));
109
- this.databases.redis?.on('error', (error) => logger.info('Got redis error', error?.stack ?? error));
110
- }
111
-
112
- public get client() {
113
- return this.providers.default.client;
114
- }
115
-
116
- public unbindExpiredContainers() {
117
- this.providers.extract().forEach((provider) =>
118
- provider.storages.containers.getExpired().forEach((container) => {
119
- container.unbind();
120
- logger.info(`Container [${container.key}] has unbinded by expiration of [${container.ttl}] seconds`);
121
- })
122
- )
123
- }
124
-
125
- static async start<
126
- TConfiguration extends IMockServerConfiguration,
127
- TContext extends MockServer<TConfiguration>['TContext'] = MockServer<TConfiguration>['TContext']
128
- >(configuration: TConfiguration) {
129
- const routes = config.get('routes');
130
- const server = new MockServer<TConfiguration>(configuration);
131
-
132
- await new Promise<void>((resolve) =>
133
- server.http.listen(configuration.port, configuration.host, () => {
134
- logger.info(`Server has started on [${server.authority}]`);
135
- logger.info(`GUI is available on [${server.authority}${routes.internal.root}${routes.internal.gui}/]`);
136
-
137
- resolve();
138
- })
139
- );
140
-
141
- Object
142
- .entries(configuration.transports ?? {})
143
- .forEach(([type, transport]) => server.transports.register(<TContext['transport']>type, transport));
144
-
145
- server.router.register(`${routes.internal.root}/**`, {
146
- provider: server.providers.default,
147
- transports: <Record<TContext['transport'], Transport>>{
148
- http: server.internal.transports.http,
149
- },
150
- });
151
-
152
- setInterval(
153
- () => server.unbindExpiredContainers(),
154
- (configuration.containers?.expiredCleaningInterval ?? 60 * 60) * 1000
155
- );
156
-
157
- setInterval(
158
- () => server.services.metrics.register('memory', { mbs: process.memoryUsage().heapUsed / 1024 / 1024 }),
159
- 5 * 1000
160
- );
161
-
162
- setInterval(
163
- () => server.services.metrics.register('containers', {
164
- count: server.providers.extract().reduce((acc, provider) => acc + provider.storages.containers.size, 0),
165
- }),
166
- 5 * 1000
167
- );
168
-
169
- if (server.databases.redis) {
170
- setInterval(async () => {
171
- const redis = await server.services.analytics.calculateRedisUsage();
172
-
173
- server.services.metrics.register('cache', {
174
- redis_mbs: redis.bytes / 1024 / 1024,
175
- redis_count: redis.count,
176
- });
177
- }, 10 * 60 * 1000);
178
- }
179
-
180
- return server;
181
- }
182
- }
@@ -1,2 +0,0 @@
1
- export * from './storage';
2
- export * from './model';
@@ -1,81 +0,0 @@
1
- import { Container } from './model';
2
-
3
- // Test generated using Keploy
4
- test('should initialize Container with correct properties', () => {
5
- const provided = {
6
- key: 'testKey',
7
- payload: { data: 'testData' },
8
- ttl: 100,
9
- timestamp: Date.now(),
10
- prefix: 'testPrefix',
11
- hooks: {
12
- onBind: jest.fn(),
13
- onUnbind: jest.fn(),
14
- },
15
- };
16
- const container = new Container(provided);
17
- expect(container.key).toBe('testPrefixtestKey');
18
- expect(container.payload).toEqual(provided.payload);
19
- expect(container.ttl).toBe(provided.ttl);
20
- expect(container.expiresAt).toBe(provided.timestamp + provided.ttl * 1000);
21
- });
22
-
23
- // Test generated using Keploy
24
- test('should merge payload correctly', () => {
25
- const provided = {
26
- key: 'testKey',
27
- payload: { data: 'initialData' },
28
- ttl: 100,
29
- timestamp: Date.now(),
30
- };
31
- const container = new Container(provided);
32
- const merged = container.merge({ data: 'newData' });
33
- expect(merged.payload.data).toBe('newData');
34
- });
35
-
36
- // Test generated using Keploy
37
- test('should assign new payload to Container', () => {
38
- const provided = {
39
- key: 'testKey',
40
- payload: { data: 'initialData' },
41
- ttl: 100,
42
- timestamp: Date.now(),
43
- };
44
- const container = new Container(provided);
45
- container.assign({ data: 'updatedData' });
46
- expect(container.payload.data).toBe('updatedData');
47
- });
48
-
49
- // Test generated using Keploy
50
- test('should call onBind hook when binding', () => {
51
- const onBindMock = jest.fn();
52
- const provided = {
53
- key: 'testKey',
54
- payload: {},
55
- ttl: 100,
56
- timestamp: Date.now(),
57
- hooks: {
58
- onBind: onBindMock,
59
- },
60
- };
61
- const container = new Container(provided);
62
- container.bind('testLink');
63
- expect(onBindMock).toHaveBeenCalled();
64
- });
65
-
66
- // Test generated using Keploy
67
- test('should call onUnbind hook when unbinding', () => {
68
- const onUnbindMock = jest.fn();
69
- const provided = {
70
- key: 'testKey',
71
- payload: {},
72
- ttl: 100,
73
- timestamp: Date.now(),
74
- hooks: {
75
- onUnbind: onUnbindMock,
76
- },
77
- };
78
- const container = new Container(provided);
79
- container.unbind();
80
- expect(onUnbindMock).toHaveBeenCalled();
81
- });
@@ -1,79 +0,0 @@
1
- import merge from 'deepmerge';
2
- import rfdc from 'rfdc';
3
- import _ from 'lodash';
4
-
5
- import { PartialDeep, TFunction } from '../../../../types';
6
- import { compileContainerLink } from './utils';
7
-
8
- const clone = rfdc();
9
-
10
- export class Container<TPayload extends object = object> {
11
- public TPlain!: Pick<Container<TPayload>, 'key' | 'prefix' | 'payload' | 'ttl'>;
12
-
13
- public ttl = this.provided.ttl;
14
- public expiresAt = this.provided.timestamp + this.ttl * 1000;
15
-
16
- public payload = this.provided.payload;
17
-
18
- public prefix = this.provided.prefix;
19
- public key = (this.prefix ?? '') + this.provided.key;
20
-
21
- constructor(
22
- public provided: {
23
- key: string;
24
- payload: TPayload;
25
-
26
- /** Seconds */
27
- ttl: number;
28
- timestamp: number;
29
-
30
- prefix?: string;
31
-
32
- hooks?: {
33
- onBind?: TFunction<unknown, [string, Container<any>]>;
34
- onUnbind?: TFunction<unknown, [Container<any>]>;
35
- };
36
- }
37
- ) {}
38
-
39
- public assign(predicate: Partial<TPayload> | TFunction<Partial<TPayload>, [TPayload]>) {
40
- const payload = Object.assign(
41
- this.payload,
42
- typeof predicate === 'function' ? predicate(this.payload) : predicate
43
- );
44
-
45
- return Object.assign(this, { payload });
46
- }
47
-
48
- public merge(predicate: PartialDeep<TPayload> | TFunction<PartialDeep<TPayload>, [TPayload]>) {
49
- const payload = merge(
50
- this.payload,
51
- <TPayload>(typeof predicate === 'function' ? predicate(this.payload) : predicate),
52
- { arrayMerge: (target, source) => source }
53
- );
54
-
55
- return Object.assign(this, { payload });
56
- }
57
-
58
- public bind(key: string | object): this {
59
- this.provided.hooks?.onBind?.(compileContainerLink(key), this);
60
- return this;
61
- }
62
-
63
- public unbind(): this {
64
- this.provided.hooks?.onUnbind?.(this);
65
- return this;
66
- }
67
-
68
- public clone(): Container<TPayload> {
69
- return new Container<TPayload>({ ...this.provided, payload: clone(this.payload) });
70
- }
71
-
72
- public toPlain(): Container<TPayload>['TPlain'] {
73
- return _.pick(this, ['key', 'prefix', 'payload', 'ttl']);
74
- }
75
-
76
- static build<T extends object>(provided: Container<T>['provided']) {
77
- return new Container<T>(provided);
78
- }
79
- }
@@ -1,41 +0,0 @@
1
- import { ContainersStorage } from './storage';
2
-
3
- // Test generated using Keploy
4
- test('register method increases storage size correctly', () => {
5
- const storage = new ContainersStorage();
6
- const config = {
7
- key: 'test-key',
8
- payload: { data: 'test data' },
9
- ttl: 3600,
10
- };
11
- storage.register(config);
12
- expect(storage.size).toBe(1);
13
- });
14
-
15
- // Test generated using Keploy
16
- test('provide method reuses existing container', () => {
17
- const storage = new ContainersStorage();
18
- const config = { key: 'test-key', payload: { data: 'test data' } };
19
- const container1 = storage.provide(config);
20
- const container2 = storage.provide(config);
21
- expect(container1).toBe(container2);
22
- expect(storage.size).toBe(1);
23
- });
24
-
25
- // Test generated using Keploy
26
- test('delete method removes container and decreases size', () => {
27
- const storage = new ContainersStorage();
28
- const config = { key: 'test-key', payload: { data: 'test data' } };
29
- storage.register(config);
30
- expect(storage.size).toBe(1);
31
- storage.delete('test-key');
32
- expect(storage.size).toBe(0);
33
- });
34
-
35
- // Test generated using Keploy
36
- test('getExpired method returns empty array when no containers are expired', () => {
37
- const storage = new ContainersStorage();
38
- const result = storage.getExpired();
39
- expect(result).toEqual([]);
40
- });
41
-
@@ -1,59 +0,0 @@
1
- import { compileContainerLink } from './utils';
2
- import { Container } from './model';
3
-
4
- export interface IContainerConfiguration<T extends object> {
5
- key: string | object;
6
- payload: T;
7
-
8
- /** Seconds */
9
- ttl?: number;
10
- prefix?: string;
11
- }
12
-
13
- export class ContainersStorage<T extends object = object> {
14
- private storage = new Map<string, Container<T>>();
15
-
16
- public get size(): number {
17
- return this.storage.size;
18
- }
19
-
20
- public register(configuration: IContainerConfiguration<T>): Container<T> {
21
- const key = compileContainerLink(configuration.key);
22
- const container = Container.build({
23
- key,
24
- payload: configuration.payload,
25
-
26
- timestamp: Date.now(),
27
- ttl: configuration?.ttl ?? 3600,
28
-
29
- hooks: {
30
- onUnbind: (target) => this.storage.delete(target.key),
31
- onBind: (key, target) => {
32
- const alias = Container.build({ ...target.provided, key });
33
- this.storage.set(alias.key, alias);
34
- },
35
- },
36
- });
37
-
38
- this.storage.set(container.key, container);
39
- return container;
40
- }
41
-
42
- public provide(configuration: IContainerConfiguration<T>): Container<T> {
43
- return this.find(configuration.key) ?? this.register(configuration);
44
- }
45
-
46
- public find(key: string | object): Container<T> | undefined {
47
- return <Container<T>>this.storage.get(compileContainerLink(key));
48
- }
49
-
50
- public delete(key: string | object): this {
51
- this.storage.delete(compileContainerLink(key));
52
- return this;
53
- }
54
-
55
- public getExpired(): Container[] {
56
- const timestamp = Date.now();
57
- return [...this.storage.values()].filter((container) => container.expiresAt < timestamp);
58
- }
59
- }
@@ -1,4 +0,0 @@
1
- import { Value } from '@n1k1t/typebox/value';
2
-
3
- export const compileContainerLink =
4
- (key: string | object) => typeof key === 'object' ? Value.Hash(key).toString() : String(key);