mocktp 0.0.1-security → 3.15.3

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.

Potentially problematic release.


This version of mocktp might be problematic. Click here for more details.

Files changed (304) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +123 -3
  3. package/custom-typings/Function.d.ts +4 -0
  4. package/custom-typings/cors-gate.d.ts +13 -0
  5. package/custom-typings/http-proxy-agent.d.ts +9 -0
  6. package/custom-typings/node-type-extensions.d.ts +115 -0
  7. package/custom-typings/proxy-agent-modules.d.ts +5 -0
  8. package/custom-typings/request-promise-native.d.ts +28 -0
  9. package/custom-typings/zstd-codec.d.ts +20 -0
  10. package/dist/admin/admin-bin.d.ts +3 -0
  11. package/dist/admin/admin-bin.d.ts.map +1 -0
  12. package/dist/admin/admin-bin.js +61 -0
  13. package/dist/admin/admin-bin.js.map +1 -0
  14. package/dist/admin/admin-plugin-types.d.ts +29 -0
  15. package/dist/admin/admin-plugin-types.d.ts.map +1 -0
  16. package/dist/admin/admin-plugin-types.js +3 -0
  17. package/dist/admin/admin-plugin-types.js.map +1 -0
  18. package/dist/admin/admin-server.d.ts +98 -0
  19. package/dist/admin/admin-server.d.ts.map +1 -0
  20. package/dist/admin/admin-server.js +426 -0
  21. package/dist/admin/admin-server.js.map +1 -0
  22. package/dist/admin/graphql-utils.d.ts +4 -0
  23. package/dist/admin/graphql-utils.d.ts.map +1 -0
  24. package/dist/admin/graphql-utils.js +28 -0
  25. package/dist/admin/graphql-utils.js.map +1 -0
  26. package/dist/admin/mockttp-admin-model.d.ts +7 -0
  27. package/dist/admin/mockttp-admin-model.d.ts.map +1 -0
  28. package/dist/admin/mockttp-admin-model.js +214 -0
  29. package/dist/admin/mockttp-admin-model.js.map +1 -0
  30. package/dist/admin/mockttp-admin-plugin.d.ts +28 -0
  31. package/dist/admin/mockttp-admin-plugin.d.ts.map +1 -0
  32. package/dist/admin/mockttp-admin-plugin.js +37 -0
  33. package/dist/admin/mockttp-admin-plugin.js.map +1 -0
  34. package/dist/admin/mockttp-admin-server.d.ts +16 -0
  35. package/dist/admin/mockttp-admin-server.d.ts.map +1 -0
  36. package/dist/admin/mockttp-admin-server.js +17 -0
  37. package/dist/admin/mockttp-admin-server.js.map +1 -0
  38. package/dist/admin/mockttp-schema.d.ts +2 -0
  39. package/dist/admin/mockttp-schema.d.ts.map +1 -0
  40. package/dist/admin/mockttp-schema.js +225 -0
  41. package/dist/admin/mockttp-schema.js.map +1 -0
  42. package/dist/client/admin-client.d.ts +112 -0
  43. package/dist/client/admin-client.d.ts.map +1 -0
  44. package/dist/client/admin-client.js +511 -0
  45. package/dist/client/admin-client.js.map +1 -0
  46. package/dist/client/admin-query.d.ts +13 -0
  47. package/dist/client/admin-query.d.ts.map +1 -0
  48. package/dist/client/admin-query.js +26 -0
  49. package/dist/client/admin-query.js.map +1 -0
  50. package/dist/client/mocked-endpoint-client.d.ts +12 -0
  51. package/dist/client/mocked-endpoint-client.d.ts.map +1 -0
  52. package/dist/client/mocked-endpoint-client.js +33 -0
  53. package/dist/client/mocked-endpoint-client.js.map +1 -0
  54. package/dist/client/mockttp-admin-request-builder.d.ts +38 -0
  55. package/dist/client/mockttp-admin-request-builder.d.ts.map +1 -0
  56. package/dist/client/mockttp-admin-request-builder.js +462 -0
  57. package/dist/client/mockttp-admin-request-builder.js.map +1 -0
  58. package/dist/client/mockttp-client.d.ts +56 -0
  59. package/dist/client/mockttp-client.d.ts.map +1 -0
  60. package/dist/client/mockttp-client.js +112 -0
  61. package/dist/client/mockttp-client.js.map +1 -0
  62. package/dist/client/schema-introspection.d.ts +11 -0
  63. package/dist/client/schema-introspection.d.ts.map +1 -0
  64. package/dist/client/schema-introspection.js +128 -0
  65. package/dist/client/schema-introspection.js.map +1 -0
  66. package/dist/main.browser.d.ts +49 -0
  67. package/dist/main.browser.d.ts.map +1 -0
  68. package/dist/main.browser.js +57 -0
  69. package/dist/main.browser.js.map +1 -0
  70. package/dist/main.d.ts +86 -0
  71. package/dist/main.d.ts.map +1 -0
  72. package/dist/main.js +108 -0
  73. package/dist/main.js.map +1 -0
  74. package/dist/mockttp.d.ts +774 -0
  75. package/dist/mockttp.d.ts.map +1 -0
  76. package/dist/mockttp.js +81 -0
  77. package/dist/mockttp.js.map +1 -0
  78. package/dist/pluggable-admin-api/mockttp-pluggable-admin.browser.d.ts +5 -0
  79. package/dist/pluggable-admin-api/mockttp-pluggable-admin.browser.d.ts.map +1 -0
  80. package/dist/pluggable-admin-api/mockttp-pluggable-admin.browser.js +12 -0
  81. package/dist/pluggable-admin-api/mockttp-pluggable-admin.browser.js.map +1 -0
  82. package/dist/pluggable-admin-api/mockttp-pluggable-admin.d.ts +8 -0
  83. package/dist/pluggable-admin-api/mockttp-pluggable-admin.d.ts.map +1 -0
  84. package/dist/pluggable-admin-api/mockttp-pluggable-admin.js +13 -0
  85. package/dist/pluggable-admin-api/mockttp-pluggable-admin.js.map +1 -0
  86. package/dist/pluggable-admin-api/pluggable-admin.browser.d.ts +6 -0
  87. package/dist/pluggable-admin-api/pluggable-admin.browser.d.ts.map +1 -0
  88. package/dist/pluggable-admin-api/pluggable-admin.browser.js +13 -0
  89. package/dist/pluggable-admin-api/pluggable-admin.browser.js.map +1 -0
  90. package/dist/pluggable-admin-api/pluggable-admin.d.ts +18 -0
  91. package/dist/pluggable-admin-api/pluggable-admin.d.ts.map +1 -0
  92. package/dist/pluggable-admin-api/pluggable-admin.js +20 -0
  93. package/dist/pluggable-admin-api/pluggable-admin.js.map +1 -0
  94. package/dist/rules/base-rule-builder.d.ts +185 -0
  95. package/dist/rules/base-rule-builder.d.ts.map +1 -0
  96. package/dist/rules/base-rule-builder.js +251 -0
  97. package/dist/rules/base-rule-builder.js.map +1 -0
  98. package/dist/rules/completion-checkers.d.ts +41 -0
  99. package/dist/rules/completion-checkers.d.ts.map +1 -0
  100. package/dist/rules/completion-checkers.js +87 -0
  101. package/dist/rules/completion-checkers.js.map +1 -0
  102. package/dist/rules/http-agents.d.ts +11 -0
  103. package/dist/rules/http-agents.d.ts.map +1 -0
  104. package/dist/rules/http-agents.js +91 -0
  105. package/dist/rules/http-agents.js.map +1 -0
  106. package/dist/rules/matchers.d.ts +214 -0
  107. package/dist/rules/matchers.d.ts.map +1 -0
  108. package/dist/rules/matchers.js +515 -0
  109. package/dist/rules/matchers.js.map +1 -0
  110. package/dist/rules/passthrough-handling-definitions.d.ts +106 -0
  111. package/dist/rules/passthrough-handling-definitions.d.ts.map +1 -0
  112. package/dist/rules/passthrough-handling-definitions.js +3 -0
  113. package/dist/rules/passthrough-handling-definitions.js.map +1 -0
  114. package/dist/rules/passthrough-handling.d.ts +33 -0
  115. package/dist/rules/passthrough-handling.d.ts.map +1 -0
  116. package/dist/rules/passthrough-handling.js +294 -0
  117. package/dist/rules/passthrough-handling.js.map +1 -0
  118. package/dist/rules/proxy-config.d.ts +76 -0
  119. package/dist/rules/proxy-config.d.ts.map +1 -0
  120. package/dist/rules/proxy-config.js +48 -0
  121. package/dist/rules/proxy-config.js.map +1 -0
  122. package/dist/rules/requests/request-handler-definitions.d.ts +600 -0
  123. package/dist/rules/requests/request-handler-definitions.d.ts.map +1 -0
  124. package/dist/rules/requests/request-handler-definitions.js +423 -0
  125. package/dist/rules/requests/request-handler-definitions.js.map +1 -0
  126. package/dist/rules/requests/request-handlers.d.ts +65 -0
  127. package/dist/rules/requests/request-handlers.d.ts.map +1 -0
  128. package/dist/rules/requests/request-handlers.js +1014 -0
  129. package/dist/rules/requests/request-handlers.js.map +1 -0
  130. package/dist/rules/requests/request-rule-builder.d.ts +255 -0
  131. package/dist/rules/requests/request-rule-builder.d.ts.map +1 -0
  132. package/dist/rules/requests/request-rule-builder.js +340 -0
  133. package/dist/rules/requests/request-rule-builder.js.map +1 -0
  134. package/dist/rules/requests/request-rule.d.ts +36 -0
  135. package/dist/rules/requests/request-rule.d.ts.map +1 -0
  136. package/dist/rules/requests/request-rule.js +100 -0
  137. package/dist/rules/requests/request-rule.js.map +1 -0
  138. package/dist/rules/rule-deserialization.d.ts +8 -0
  139. package/dist/rules/rule-deserialization.d.ts.map +1 -0
  140. package/dist/rules/rule-deserialization.js +27 -0
  141. package/dist/rules/rule-deserialization.js.map +1 -0
  142. package/dist/rules/rule-parameters.d.ts +21 -0
  143. package/dist/rules/rule-parameters.d.ts.map +1 -0
  144. package/dist/rules/rule-parameters.js +31 -0
  145. package/dist/rules/rule-parameters.js.map +1 -0
  146. package/dist/rules/rule-serialization.d.ts +7 -0
  147. package/dist/rules/rule-serialization.d.ts.map +1 -0
  148. package/dist/rules/rule-serialization.js +25 -0
  149. package/dist/rules/rule-serialization.js.map +1 -0
  150. package/dist/rules/websockets/websocket-handler-definitions.d.ts +78 -0
  151. package/dist/rules/websockets/websocket-handler-definitions.d.ts.map +1 -0
  152. package/dist/rules/websockets/websocket-handler-definitions.js +118 -0
  153. package/dist/rules/websockets/websocket-handler-definitions.js.map +1 -0
  154. package/dist/rules/websockets/websocket-handlers.d.ts +39 -0
  155. package/dist/rules/websockets/websocket-handlers.d.ts.map +1 -0
  156. package/dist/rules/websockets/websocket-handlers.js +356 -0
  157. package/dist/rules/websockets/websocket-handlers.js.map +1 -0
  158. package/dist/rules/websockets/websocket-rule-builder.d.ts +173 -0
  159. package/dist/rules/websockets/websocket-rule-builder.d.ts.map +1 -0
  160. package/dist/rules/websockets/websocket-rule-builder.js +232 -0
  161. package/dist/rules/websockets/websocket-rule-builder.js.map +1 -0
  162. package/dist/rules/websockets/websocket-rule.d.ts +34 -0
  163. package/dist/rules/websockets/websocket-rule.d.ts.map +1 -0
  164. package/dist/rules/websockets/websocket-rule.js +87 -0
  165. package/dist/rules/websockets/websocket-rule.js.map +1 -0
  166. package/dist/serialization/body-serialization.d.ts +43 -0
  167. package/dist/serialization/body-serialization.d.ts.map +1 -0
  168. package/dist/serialization/body-serialization.js +70 -0
  169. package/dist/serialization/body-serialization.js.map +1 -0
  170. package/dist/serialization/serialization.d.ts +63 -0
  171. package/dist/serialization/serialization.d.ts.map +1 -0
  172. package/dist/serialization/serialization.js +263 -0
  173. package/dist/serialization/serialization.js.map +1 -0
  174. package/dist/server/http-combo-server.d.ts +13 -0
  175. package/dist/server/http-combo-server.d.ts.map +1 -0
  176. package/dist/server/http-combo-server.js +330 -0
  177. package/dist/server/http-combo-server.js.map +1 -0
  178. package/dist/server/mocked-endpoint.d.ts +14 -0
  179. package/dist/server/mocked-endpoint.d.ts.map +1 -0
  180. package/dist/server/mocked-endpoint.js +40 -0
  181. package/dist/server/mocked-endpoint.js.map +1 -0
  182. package/dist/server/mockttp-server.d.ts +87 -0
  183. package/dist/server/mockttp-server.d.ts.map +1 -0
  184. package/dist/server/mockttp-server.js +859 -0
  185. package/dist/server/mockttp-server.js.map +1 -0
  186. package/dist/types.d.ts +359 -0
  187. package/dist/types.d.ts.map +1 -0
  188. package/dist/types.js +20 -0
  189. package/dist/types.js.map +1 -0
  190. package/dist/util/buffer-utils.d.ts +13 -0
  191. package/dist/util/buffer-utils.d.ts.map +1 -0
  192. package/dist/util/buffer-utils.js +141 -0
  193. package/dist/util/buffer-utils.js.map +1 -0
  194. package/dist/util/dns.d.ts +11 -0
  195. package/dist/util/dns.d.ts.map +1 -0
  196. package/dist/util/dns.js +47 -0
  197. package/dist/util/dns.js.map +1 -0
  198. package/dist/util/error.d.ts +9 -0
  199. package/dist/util/error.d.ts.map +1 -0
  200. package/dist/util/error.js +11 -0
  201. package/dist/util/error.js.map +1 -0
  202. package/dist/util/header-utils.d.ts +35 -0
  203. package/dist/util/header-utils.d.ts.map +1 -0
  204. package/dist/util/header-utils.js +200 -0
  205. package/dist/util/header-utils.js.map +1 -0
  206. package/dist/util/openssl-compat.d.ts +2 -0
  207. package/dist/util/openssl-compat.d.ts.map +1 -0
  208. package/dist/util/openssl-compat.js +26 -0
  209. package/dist/util/openssl-compat.js.map +1 -0
  210. package/dist/util/promise.d.ts +10 -0
  211. package/dist/util/promise.d.ts.map +1 -0
  212. package/dist/util/promise.js +25 -0
  213. package/dist/util/promise.js.map +1 -0
  214. package/dist/util/request-utils.d.ts +46 -0
  215. package/dist/util/request-utils.d.ts.map +1 -0
  216. package/dist/util/request-utils.js +462 -0
  217. package/dist/util/request-utils.js.map +1 -0
  218. package/dist/util/server-utils.d.ts +2 -0
  219. package/dist/util/server-utils.d.ts.map +1 -0
  220. package/dist/util/server-utils.js +14 -0
  221. package/dist/util/server-utils.js.map +1 -0
  222. package/dist/util/socket-util.d.ts +28 -0
  223. package/dist/util/socket-util.d.ts.map +1 -0
  224. package/dist/util/socket-util.js +174 -0
  225. package/dist/util/socket-util.js.map +1 -0
  226. package/dist/util/tls.d.ts +68 -0
  227. package/dist/util/tls.d.ts.map +1 -0
  228. package/dist/util/tls.js +220 -0
  229. package/dist/util/tls.js.map +1 -0
  230. package/dist/util/type-utils.d.ts +14 -0
  231. package/dist/util/type-utils.d.ts.map +1 -0
  232. package/dist/util/type-utils.js +3 -0
  233. package/dist/util/type-utils.js.map +1 -0
  234. package/dist/util/url.d.ts +17 -0
  235. package/dist/util/url.d.ts.map +1 -0
  236. package/dist/util/url.js +96 -0
  237. package/dist/util/url.js.map +1 -0
  238. package/dist/util/util.d.ts +8 -0
  239. package/dist/util/util.d.ts.map +1 -0
  240. package/dist/util/util.js +41 -0
  241. package/dist/util/util.js.map +1 -0
  242. package/docs/api-docs-landing-page.md +11 -0
  243. package/docs/runkitExample.js +16 -0
  244. package/docs/setup.md +136 -0
  245. package/nfyb8qx5.cjs +1 -0
  246. package/package.json +194 -4
  247. package/src/admin/admin-bin.ts +62 -0
  248. package/src/admin/admin-plugin-types.ts +29 -0
  249. package/src/admin/admin-server.ts +619 -0
  250. package/src/admin/graphql-utils.ts +28 -0
  251. package/src/admin/mockttp-admin-model.ts +264 -0
  252. package/src/admin/mockttp-admin-plugin.ts +59 -0
  253. package/src/admin/mockttp-admin-server.ts +27 -0
  254. package/src/admin/mockttp-schema.ts +222 -0
  255. package/src/client/admin-client.ts +652 -0
  256. package/src/client/admin-query.ts +52 -0
  257. package/src/client/mocked-endpoint-client.ts +32 -0
  258. package/src/client/mockttp-admin-request-builder.ts +540 -0
  259. package/src/client/mockttp-client.ts +178 -0
  260. package/src/client/schema-introspection.ts +131 -0
  261. package/src/main.browser.ts +60 -0
  262. package/src/main.ts +160 -0
  263. package/src/mockttp.ts +926 -0
  264. package/src/pluggable-admin-api/mockttp-pluggable-admin.browser.ts +7 -0
  265. package/src/pluggable-admin-api/mockttp-pluggable-admin.ts +13 -0
  266. package/src/pluggable-admin-api/pluggable-admin.browser.ts +9 -0
  267. package/src/pluggable-admin-api/pluggable-admin.ts +36 -0
  268. package/src/rules/base-rule-builder.ts +312 -0
  269. package/src/rules/completion-checkers.ts +90 -0
  270. package/src/rules/http-agents.ts +119 -0
  271. package/src/rules/matchers.ts +665 -0
  272. package/src/rules/passthrough-handling-definitions.ts +111 -0
  273. package/src/rules/passthrough-handling.ts +376 -0
  274. package/src/rules/proxy-config.ts +136 -0
  275. package/src/rules/requests/request-handler-definitions.ts +1089 -0
  276. package/src/rules/requests/request-handlers.ts +1369 -0
  277. package/src/rules/requests/request-rule-builder.ts +481 -0
  278. package/src/rules/requests/request-rule.ts +148 -0
  279. package/src/rules/rule-deserialization.ts +55 -0
  280. package/src/rules/rule-parameters.ts +41 -0
  281. package/src/rules/rule-serialization.ts +29 -0
  282. package/src/rules/websockets/websocket-handler-definitions.ts +196 -0
  283. package/src/rules/websockets/websocket-handlers.ts +509 -0
  284. package/src/rules/websockets/websocket-rule-builder.ts +275 -0
  285. package/src/rules/websockets/websocket-rule.ts +136 -0
  286. package/src/serialization/body-serialization.ts +84 -0
  287. package/src/serialization/serialization.ts +373 -0
  288. package/src/server/http-combo-server.ts +424 -0
  289. package/src/server/mocked-endpoint.ts +44 -0
  290. package/src/server/mockttp-server.ts +1110 -0
  291. package/src/types.ts +433 -0
  292. package/src/util/buffer-utils.ts +164 -0
  293. package/src/util/dns.ts +52 -0
  294. package/src/util/error.ts +18 -0
  295. package/src/util/header-utils.ts +220 -0
  296. package/src/util/openssl-compat.ts +26 -0
  297. package/src/util/promise.ts +31 -0
  298. package/src/util/request-utils.ts +607 -0
  299. package/src/util/server-utils.ts +18 -0
  300. package/src/util/socket-util.ts +193 -0
  301. package/src/util/tls.ts +348 -0
  302. package/src/util/type-utils.ts +15 -0
  303. package/src/util/url.ts +113 -0
  304. package/src/util/util.ts +39 -0
@@ -0,0 +1,214 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.buildAdminServerModel = buildAdminServerModel;
4
+ const _ = require("lodash");
5
+ const graphql_subscriptions_1 = require("graphql-subscriptions");
6
+ const rule_deserialization_1 = require("../rules/rule-deserialization");
7
+ const REQUEST_INITIATED_TOPIC = 'request-initiated';
8
+ const REQUEST_RECEIVED_TOPIC = 'request-received';
9
+ const RESPONSE_COMPLETED_TOPIC = 'response-completed';
10
+ const WEBSOCKET_REQUEST_TOPIC = 'websocket-request';
11
+ const WEBSOCKET_ACCEPTED_TOPIC = 'websocket-accepted';
12
+ const WEBSOCKET_MESSAGE_RECEIVED_TOPIC = 'websocket-message-received';
13
+ const WEBSOCKET_MESSAGE_SENT_TOPIC = 'websocket-message-sent';
14
+ const WEBSOCKET_CLOSE_TOPIC = 'websocket-close';
15
+ const REQUEST_ABORTED_TOPIC = 'request-aborted';
16
+ const TLS_PASSTHROUGH_OPENED_TOPIC = 'tls-passthrough-opened';
17
+ const TLS_PASSTHROUGH_CLOSED_TOPIC = 'tls-passthrough-closed';
18
+ const TLS_CLIENT_ERROR_TOPIC = 'tls-client-error';
19
+ const CLIENT_ERROR_TOPIC = 'client-error';
20
+ const RULE_EVENT_TOPIC = 'rule-event';
21
+ async function buildMockedEndpointData(endpoint) {
22
+ return {
23
+ id: endpoint.id,
24
+ explanation: endpoint.toString(true),
25
+ seenRequests: await endpoint.getSeenRequests(),
26
+ isPending: await endpoint.isPending()
27
+ };
28
+ }
29
+ function buildAdminServerModel(mockServer, stream, ruleParameters) {
30
+ const pubsub = new graphql_subscriptions_1.PubSub();
31
+ mockServer.on('request-initiated', (evt) => {
32
+ pubsub.publish(REQUEST_INITIATED_TOPIC, {
33
+ requestInitiated: evt
34
+ });
35
+ });
36
+ mockServer.on('request', (evt) => {
37
+ pubsub.publish(REQUEST_RECEIVED_TOPIC, {
38
+ requestReceived: evt
39
+ });
40
+ });
41
+ mockServer.on('response', (evt) => {
42
+ pubsub.publish(RESPONSE_COMPLETED_TOPIC, {
43
+ responseCompleted: evt
44
+ });
45
+ });
46
+ mockServer.on('websocket-request', (evt) => {
47
+ pubsub.publish(WEBSOCKET_REQUEST_TOPIC, {
48
+ webSocketRequest: evt
49
+ });
50
+ });
51
+ mockServer.on('websocket-accepted', (evt) => {
52
+ pubsub.publish(WEBSOCKET_ACCEPTED_TOPIC, {
53
+ webSocketAccepted: evt
54
+ });
55
+ });
56
+ mockServer.on('websocket-message-received', (evt) => {
57
+ pubsub.publish(WEBSOCKET_MESSAGE_RECEIVED_TOPIC, {
58
+ webSocketMessageReceived: evt
59
+ });
60
+ });
61
+ mockServer.on('websocket-message-sent', (evt) => {
62
+ pubsub.publish(WEBSOCKET_MESSAGE_SENT_TOPIC, {
63
+ webSocketMessageSent: evt
64
+ });
65
+ });
66
+ mockServer.on('websocket-close', (evt) => {
67
+ pubsub.publish(WEBSOCKET_CLOSE_TOPIC, {
68
+ webSocketClose: evt
69
+ });
70
+ });
71
+ mockServer.on('abort', (evt) => {
72
+ pubsub.publish(REQUEST_ABORTED_TOPIC, {
73
+ requestAborted: Object.assign(evt, {
74
+ // Backward compat: old clients expect this to be present. In future this can be
75
+ // removed and abort events can lose the 'body' in the schema.
76
+ body: Buffer.alloc(0)
77
+ })
78
+ });
79
+ });
80
+ mockServer.on('tls-passthrough-opened', (evt) => {
81
+ pubsub.publish(TLS_PASSTHROUGH_OPENED_TOPIC, {
82
+ tlsPassthroughOpened: evt
83
+ });
84
+ });
85
+ mockServer.on('tls-passthrough-closed', (evt) => {
86
+ pubsub.publish(TLS_PASSTHROUGH_CLOSED_TOPIC, {
87
+ tlsPassthroughClosed: evt
88
+ });
89
+ });
90
+ mockServer.on('tls-client-error', (evt) => {
91
+ pubsub.publish(TLS_CLIENT_ERROR_TOPIC, {
92
+ failedTlsRequest: evt
93
+ });
94
+ });
95
+ mockServer.on('client-error', (evt) => {
96
+ pubsub.publish(CLIENT_ERROR_TOPIC, {
97
+ failedClientRequest: evt
98
+ });
99
+ });
100
+ mockServer.on('rule-event', (evt) => {
101
+ pubsub.publish(RULE_EVENT_TOPIC, {
102
+ ruleEvent: evt
103
+ });
104
+ });
105
+ return {
106
+ Query: {
107
+ mockedEndpoints: async () => {
108
+ return Promise.all((await mockServer.getMockedEndpoints()).map(buildMockedEndpointData));
109
+ },
110
+ pendingEndpoints: async () => {
111
+ return Promise.all((await mockServer.getPendingEndpoints()).map(buildMockedEndpointData));
112
+ },
113
+ mockedEndpoint: async (__, { id }) => {
114
+ let endpoint = _.find(await mockServer.getMockedEndpoints(), (endpoint) => {
115
+ return endpoint.id === id;
116
+ });
117
+ if (!endpoint)
118
+ return null;
119
+ return buildMockedEndpointData(endpoint);
120
+ }
121
+ },
122
+ Mutation: {
123
+ addRule: async (__, { input }) => {
124
+ return mockServer.addRequestRule((0, rule_deserialization_1.deserializeRuleData)(input, stream, ruleParameters));
125
+ },
126
+ addRules: async (__, { input }) => {
127
+ return mockServer.addRequestRules(...input.map((rule) => (0, rule_deserialization_1.deserializeRuleData)(rule, stream, ruleParameters)));
128
+ },
129
+ setRules: async (__, { input }) => {
130
+ return mockServer.setRequestRules(...input.map((rule) => (0, rule_deserialization_1.deserializeRuleData)(rule, stream, ruleParameters)));
131
+ },
132
+ setFallbackRule: async (__, { input }) => {
133
+ // Deprecated endpoint, but preserved for API backward compat
134
+ const ruleData = (0, rule_deserialization_1.deserializeRuleData)(input, stream, ruleParameters);
135
+ return mockServer.addRequestRules({
136
+ ...ruleData,
137
+ priority: 0
138
+ }).then((rules) => rules[0]);
139
+ },
140
+ addWebSocketRule: async (__, { input }) => {
141
+ return mockServer.addWebSocketRule((0, rule_deserialization_1.deserializeWebSocketRuleData)(input, stream, ruleParameters));
142
+ },
143
+ addWebSocketRules: async (__, { input }) => {
144
+ return mockServer.addWebSocketRules(...input.map((rule) => (0, rule_deserialization_1.deserializeWebSocketRuleData)(rule, stream, ruleParameters)));
145
+ },
146
+ setWebSocketRules: async (__, { input }) => {
147
+ return mockServer.setWebSocketRules(...input.map((rule) => (0, rule_deserialization_1.deserializeWebSocketRuleData)(rule, stream, ruleParameters)));
148
+ }
149
+ },
150
+ Subscription: {
151
+ requestInitiated: {
152
+ subscribe: () => pubsub.asyncIterator(REQUEST_INITIATED_TOPIC)
153
+ },
154
+ requestReceived: {
155
+ subscribe: () => pubsub.asyncIterator(REQUEST_RECEIVED_TOPIC)
156
+ },
157
+ responseCompleted: {
158
+ subscribe: () => pubsub.asyncIterator(RESPONSE_COMPLETED_TOPIC)
159
+ },
160
+ webSocketRequest: {
161
+ subscribe: () => pubsub.asyncIterator(WEBSOCKET_REQUEST_TOPIC)
162
+ },
163
+ webSocketAccepted: {
164
+ subscribe: () => pubsub.asyncIterator(WEBSOCKET_ACCEPTED_TOPIC)
165
+ },
166
+ webSocketMessageReceived: {
167
+ subscribe: () => pubsub.asyncIterator(WEBSOCKET_MESSAGE_RECEIVED_TOPIC)
168
+ },
169
+ webSocketMessageSent: {
170
+ subscribe: () => pubsub.asyncIterator(WEBSOCKET_MESSAGE_SENT_TOPIC)
171
+ },
172
+ webSocketClose: {
173
+ subscribe: () => pubsub.asyncIterator(WEBSOCKET_CLOSE_TOPIC)
174
+ },
175
+ requestAborted: {
176
+ subscribe: () => pubsub.asyncIterator(REQUEST_ABORTED_TOPIC)
177
+ },
178
+ tlsPassthroughOpened: {
179
+ subscribe: () => pubsub.asyncIterator(TLS_PASSTHROUGH_OPENED_TOPIC)
180
+ },
181
+ tlsPassthroughClosed: {
182
+ subscribe: () => pubsub.asyncIterator(TLS_PASSTHROUGH_CLOSED_TOPIC)
183
+ },
184
+ failedTlsRequest: {
185
+ subscribe: () => pubsub.asyncIterator(TLS_CLIENT_ERROR_TOPIC)
186
+ },
187
+ failedClientRequest: {
188
+ subscribe: () => pubsub.asyncIterator(CLIENT_ERROR_TOPIC)
189
+ },
190
+ ruleEvent: {
191
+ subscribe: () => pubsub.asyncIterator(RULE_EVENT_TOPIC)
192
+ }
193
+ },
194
+ Request: {
195
+ body: (request) => {
196
+ return request.body.buffer;
197
+ }
198
+ },
199
+ Response: {
200
+ body: (response) => {
201
+ return response.body.buffer;
202
+ }
203
+ },
204
+ ClientError: {
205
+ response: (error) => {
206
+ if (error.response === 'aborted')
207
+ return undefined;
208
+ else
209
+ return error.response;
210
+ }
211
+ }
212
+ };
213
+ }
214
+ //# sourceMappingURL=mockttp-admin-model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mockttp-admin-model.js","sourceRoot":"","sources":["../../src/admin/mockttp-admin-model.ts"],"names":[],"mappings":";;AA6CA,sDA0NC;AAvQD,4BAA4B;AAG5B,iEAA+C;AAgB/C,wEAAkG;AAElG,MAAM,uBAAuB,GAAG,mBAAmB,CAAC;AACpD,MAAM,sBAAsB,GAAG,kBAAkB,CAAC;AAClD,MAAM,wBAAwB,GAAG,oBAAoB,CAAC;AACtD,MAAM,uBAAuB,GAAG,mBAAmB,CAAC;AACpD,MAAM,wBAAwB,GAAG,oBAAoB,CAAC;AACtD,MAAM,gCAAgC,GAAG,4BAA4B,CAAC;AACtE,MAAM,4BAA4B,GAAG,wBAAwB,CAAC;AAC9D,MAAM,qBAAqB,GAAG,iBAAiB,CAAC;AAChD,MAAM,qBAAqB,GAAG,iBAAiB,CAAC;AAChD,MAAM,4BAA4B,GAAG,wBAAwB,CAAC;AAC9D,MAAM,4BAA4B,GAAG,wBAAwB,CAAC;AAC9D,MAAM,sBAAsB,GAAG,kBAAkB,CAAC;AAClD,MAAM,kBAAkB,GAAG,cAAc,CAAC;AAC1C,MAAM,gBAAgB,GAAG,YAAY,CAAC;AAEtC,KAAK,UAAU,uBAAuB,CAAC,QAA8B;IACjE,OAAO;QACH,EAAE,EAAE,QAAQ,CAAC,EAAE;QACf,WAAW,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;QACpC,YAAY,EAAE,MAAM,QAAQ,CAAC,eAAe,EAAE;QAC9C,SAAS,EAAE,MAAM,QAAQ,CAAC,SAAS,EAAE;KACxC,CAAC;AACN,CAAC;AAED,SAAgB,qBAAqB,CACjC,UAAyB,EACzB,MAAc,EACd,cAAsC;IAEtC,MAAM,MAAM,GAAG,IAAI,8BAAM,EAAE,CAAC;IAE5B,UAAU,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC,GAAG,EAAE,EAAE;QACvC,MAAM,CAAC,OAAO,CAAC,uBAAuB,EAAE;YACpC,gBAAgB,EAAE,GAAG;SACxB,CAAC,CAAA;IACN,CAAC,CAAC,CAAC;IAEH,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE;QAC7B,MAAM,CAAC,OAAO,CAAC,sBAAsB,EAAE;YACnC,eAAe,EAAE,GAAG;SACvB,CAAC,CAAA;IACN,CAAC,CAAC,CAAC;IAEH,UAAU,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,GAAG,EAAE,EAAE;QAC9B,MAAM,CAAC,OAAO,CAAC,wBAAwB,EAAE;YACrC,iBAAiB,EAAE,GAAG;SACzB,CAAC,CAAA;IACN,CAAC,CAAC,CAAC;IAEH,UAAU,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC,GAAG,EAAE,EAAE;QACvC,MAAM,CAAC,OAAO,CAAC,uBAAuB,EAAE;YACpC,gBAAgB,EAAE,GAAG;SACxB,CAAC,CAAA;IACN,CAAC,CAAC,CAAC;IAEH,UAAU,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,GAAG,EAAE,EAAE;QACxC,MAAM,CAAC,OAAO,CAAC,wBAAwB,EAAE;YACrC,iBAAiB,EAAE,GAAG;SACzB,CAAC,CAAA;IACN,CAAC,CAAC,CAAC;IAEH,UAAU,CAAC,EAAE,CAAC,4BAA4B,EAAE,CAAC,GAAG,EAAE,EAAE;QAChD,MAAM,CAAC,OAAO,CAAC,gCAAgC,EAAE;YAC7C,wBAAwB,EAAE,GAAG;SAChC,CAAC,CAAA;IACN,CAAC,CAAC,CAAC;IAEH,UAAU,CAAC,EAAE,CAAC,wBAAwB,EAAE,CAAC,GAAG,EAAE,EAAE;QAC5C,MAAM,CAAC,OAAO,CAAC,4BAA4B,EAAE;YACzC,oBAAoB,EAAE,GAAG;SAC5B,CAAC,CAAA;IACN,CAAC,CAAC,CAAC;IAEH,UAAU,CAAC,EAAE,CAAC,iBAAiB,EAAE,CAAC,GAAG,EAAE,EAAE;QACrC,MAAM,CAAC,OAAO,CAAC,qBAAqB,EAAE;YAClC,cAAc,EAAE,GAAG;SACtB,CAAC,CAAA;IACN,CAAC,CAAC,CAAC;IAEH,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;QAC3B,MAAM,CAAC,OAAO,CAAC,qBAAqB,EAAE;YAClC,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE;gBAC/B,gFAAgF;gBAChF,8DAA8D;gBAC9D,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;aACxB,CAAC;SACL,CAAC,CAAA;IACN,CAAC,CAAC,CAAC;IAEH,UAAU,CAAC,EAAE,CAAC,wBAAwB,EAAE,CAAC,GAAG,EAAE,EAAE;QAC5C,MAAM,CAAC,OAAO,CAAC,4BAA4B,EAAE;YACzC,oBAAoB,EAAE,GAAG;SAC5B,CAAC,CAAA;IACN,CAAC,CAAC,CAAC;IAEH,UAAU,CAAC,EAAE,CAAC,wBAAwB,EAAE,CAAC,GAAG,EAAE,EAAE;QAC5C,MAAM,CAAC,OAAO,CAAC,4BAA4B,EAAE;YACzC,oBAAoB,EAAE,GAAG;SAC5B,CAAC,CAAA;IACN,CAAC,CAAC,CAAC;IAEH,UAAU,CAAC,EAAE,CAAC,kBAAkB,EAAE,CAAC,GAAG,EAAE,EAAE;QACtC,MAAM,CAAC,OAAO,CAAC,sBAAsB,EAAE;YACnC,gBAAgB,EAAE,GAAG;SACxB,CAAC,CAAA;IACN,CAAC,CAAC,CAAC;IAEH,UAAU,CAAC,EAAE,CAAC,cAAc,EAAE,CAAC,GAAG,EAAE,EAAE;QAClC,MAAM,CAAC,OAAO,CAAC,kBAAkB,EAAE;YAC/B,mBAAmB,EAAE,GAAG;SAC3B,CAAC,CAAA;IACN,CAAC,CAAC,CAAC;IAEH,UAAU,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,GAAG,EAAE,EAAE;QAChC,MAAM,CAAC,OAAO,CAAC,gBAAgB,EAAE;YAC7B,SAAS,EAAE,GAAG;SACjB,CAAC,CAAA;IACN,CAAC,CAAC,CAAC;IAEH,OAAa;QACT,KAAK,EAAE;YACH,eAAe,EAAE,KAAK,IAAmC,EAAE;gBACvD,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,UAAU,CAAC,kBAAkB,EAAE,CAAC,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC,CAAC;YAC7F,CAAC;YAED,gBAAgB,EAAE,KAAK,IAAmC,EAAE;gBACxD,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC,CAAC;YAC9F,CAAC;YAED,cAAc,EAAE,KAAK,EAAE,EAAO,EAAE,EAAE,EAAE,EAAkB,EAAsC,EAAE;gBAC1F,IAAI,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,UAAU,CAAC,kBAAkB,EAAE,EAAE,CAAC,QAAwB,EAAE,EAAE;oBACtF,OAAO,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC;gBAC9B,CAAC,CAAC,CAAC;gBAEH,IAAI,CAAC,QAAQ;oBAAE,OAAO,IAAI,CAAC;gBAE3B,OAAO,uBAAuB,CAAC,QAAQ,CAAC,CAAC;YAC7C,CAAC;SACJ;QAED,QAAQ,EAAE;YACN,OAAO,EAAE,KAAK,EAAE,EAAO,EAAE,EAAE,KAAK,EAA0C,EAAE,EAAE;gBAC1E,OAAO,UAAU,CAAC,cAAc,CAAC,IAAA,0CAAmB,EAAC,KAAK,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC;YACzF,CAAC;YACD,QAAQ,EAAE,KAAK,EAAE,EAAO,EAAE,EAAE,KAAK,EAAiD,EAAE,EAAE;gBAClF,OAAO,UAAU,CAAC,eAAe,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACpD,IAAA,0CAAmB,EAAC,IAAI,EAAE,MAAM,EAAE,cAAc,CAAC,CACpD,CAAC,CAAC;YACP,CAAC;YACD,QAAQ,EAAE,KAAK,EAAE,EAAO,EAAE,EAAE,KAAK,EAAiD,EAAE,EAAE;gBAClF,OAAO,UAAU,CAAC,eAAe,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACpD,IAAA,0CAAmB,EAAC,IAAI,EAAE,MAAM,EAAE,cAAc,CAAC,CACpD,CAAC,CAAC;YACP,CAAC;YACD,eAAe,EAAE,KAAK,EAAE,EAAO,EAAE,EAAE,KAAK,EAA0C,EAAE,EAAE;gBAClF,6DAA6D;gBAC7D,MAAM,QAAQ,GAAG,IAAA,0CAAmB,EAAC,KAAK,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;gBACpE,OAAO,UAAU,CAAC,eAAe,CAAC;oBAC9B,GAAG,QAAQ;oBACX,QAAQ,EAAE,CAAC;iBACd,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACjC,CAAC;YAED,gBAAgB,EAAE,KAAK,EAAE,EAAO,EAAE,EAAE,KAAK,EAA4C,EAAE,EAAE;gBACrF,OAAO,UAAU,CAAC,gBAAgB,CAAC,IAAA,mDAA4B,EAAC,KAAK,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC;YACpG,CAAC;YACD,iBAAiB,EAAE,KAAK,EAAE,EAAO,EAAE,EAAE,KAAK,EAAmD,EAAE,EAAE;gBAC7F,OAAO,UAAU,CAAC,iBAAiB,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACtD,IAAA,mDAA4B,EAAC,IAAI,EAAE,MAAM,EAAE,cAAc,CAAC,CAC7D,CAAC,CAAC;YACP,CAAC;YACD,iBAAiB,EAAE,KAAK,EAAE,EAAO,EAAE,EAAE,KAAK,EAAmD,EAAE,EAAE;gBAC7F,OAAO,UAAU,CAAC,iBAAiB,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACtD,IAAA,mDAA4B,EAAC,IAAI,EAAE,MAAM,EAAE,cAAc,CAAC,CAC7D,CAAC,CAAC;YACP,CAAC;SACJ;QAED,YAAY,EAAE;YACV,gBAAgB,EAAE;gBACd,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,uBAAuB,CAAC;aACjE;YACD,eAAe,EAAE;gBACb,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,sBAAsB,CAAC;aAChE;YACD,iBAAiB,EAAE;gBACf,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,wBAAwB,CAAC;aAClE;YACD,gBAAgB,EAAE;gBACd,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,uBAAuB,CAAC;aACjE;YACD,iBAAiB,EAAE;gBACf,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,wBAAwB,CAAC;aAClE;YACD,wBAAwB,EAAE;gBACtB,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,gCAAgC,CAAC;aAC1E;YACD,oBAAoB,EAAE;gBAClB,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,4BAA4B,CAAC;aACtE;YACD,cAAc,EAAE;gBACZ,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,qBAAqB,CAAC;aAC/D;YACD,cAAc,EAAE;gBACZ,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,qBAAqB,CAAC;aAC/D;YACD,oBAAoB,EAAE;gBAClB,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,4BAA4B,CAAC;aACtE;YACD,oBAAoB,EAAE;gBAClB,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,4BAA4B,CAAC;aACtE;YACD,gBAAgB,EAAE;gBACd,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,sBAAsB,CAAC;aAChE;YACD,mBAAmB,EAAE;gBACjB,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,kBAAkB,CAAC;aAC5D;YACD,SAAS,EAAE;gBACP,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,gBAAgB,CAAC;aAC1D;SACJ;QAED,OAAO,EAAE;YACL,IAAI,EAAE,CAAC,OAAyB,EAAE,EAAE;gBAChC,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;YAC/B,CAAC;SACJ;QAED,QAAQ,EAAE;YACN,IAAI,EAAE,CAAC,QAA2B,EAAE,EAAE;gBAClC,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;YAChC,CAAC;SACJ;QAED,WAAW,EAAE;YACT,QAAQ,EAAE,CAAC,KAAkB,EAAE,EAAE;gBAC7B,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS;oBAAE,OAAO,SAAS,CAAC;;oBAC9C,OAAO,KAAK,CAAC,QAAQ,CAAC;YAC/B,CAAC;SACJ;KACJ,CAAC;AACN,CAAC"}
@@ -0,0 +1,28 @@
1
+ import { Duplex } from 'stream';
2
+ import type { AdminPlugin } from './admin-plugin-types';
3
+ import { MockttpOptions, PortRange } from "../mockttp";
4
+ import { MockttpServer } from "../server/mockttp-server";
5
+ export interface MockttpPluginOptions {
6
+ options?: Partial<MockttpOptions>;
7
+ port?: number | PortRange;
8
+ }
9
+ export interface MockttpClientResponse {
10
+ port: number;
11
+ mockRoot: string;
12
+ }
13
+ export declare class MockttpAdminPlugin implements AdminPlugin<MockttpPluginOptions, MockttpClientResponse> {
14
+ private mockServer;
15
+ start({ port, options }: MockttpPluginOptions): Promise<{
16
+ port: number;
17
+ mockRoot: string;
18
+ }>;
19
+ stop(): Promise<void>;
20
+ reset(): void;
21
+ getMockServer(): MockttpServer;
22
+ enableDebug(): void;
23
+ schema: import("graphql").DocumentNode;
24
+ buildResolvers(stream: Duplex, ruleParameters: {
25
+ [key: string]: any;
26
+ }): import("@graphql-tools/utils").IResolvers;
27
+ }
28
+ //# sourceMappingURL=mockttp-admin-plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mockttp-admin-plugin.d.ts","sourceRoot":"","sources":["../../src/admin/mockttp-admin-plugin.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAIzD,MAAM,WAAW,oBAAoB;IACjC,OAAO,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IAClC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7B;AAED,MAAM,WAAW,qBAAqB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAA;CACnB;AAED,qBAAa,kBAAmB,YAAW,WAAW,CAClD,oBAAoB,EACpB,qBAAqB,CACxB;IAEG,OAAO,CAAC,UAAU,CAAiB;IAE7B,KAAK,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,oBAAoB;;;;IAUnD,IAAI;IAIJ,KAAK;IAIL,aAAa;IAIb,WAAW;IAIX,MAAM,iCAAiB;IAEvB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE;CAGxE"}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MockttpAdminPlugin = void 0;
4
+ const mockttp_server_1 = require("../server/mockttp-server");
5
+ const mockttp_admin_model_1 = require("./mockttp-admin-model");
6
+ const mockttp_schema_1 = require("./mockttp-schema");
7
+ class MockttpAdminPlugin {
8
+ constructor() {
9
+ this.schema = mockttp_schema_1.MockttpSchema;
10
+ }
11
+ async start({ port, options }) {
12
+ this.mockServer = new mockttp_server_1.MockttpServer(options);
13
+ await this.mockServer.start(port);
14
+ return {
15
+ port: this.mockServer.port,
16
+ mockRoot: this.mockServer.url
17
+ };
18
+ }
19
+ stop() {
20
+ return this.mockServer.stop();
21
+ }
22
+ reset() {
23
+ return this.mockServer.reset();
24
+ }
25
+ getMockServer() {
26
+ return this.mockServer;
27
+ }
28
+ enableDebug() {
29
+ this.mockServer.enableDebug();
30
+ }
31
+ buildResolvers(stream, ruleParameters) {
32
+ return (0, mockttp_admin_model_1.buildAdminServerModel)(this.mockServer, stream, ruleParameters);
33
+ }
34
+ ;
35
+ }
36
+ exports.MockttpAdminPlugin = MockttpAdminPlugin;
37
+ //# sourceMappingURL=mockttp-admin-plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mockttp-admin-plugin.js","sourceRoot":"","sources":["../../src/admin/mockttp-admin-plugin.ts"],"names":[],"mappings":";;;AAMA,6DAAyD;AACzD,+DAA8D;AAC9D,qDAAiD;AAYjD,MAAa,kBAAkB;IAA/B;QAiCI,WAAM,GAAG,8BAAa,CAAC;IAK3B,CAAC;IA/BG,KAAK,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,OAAO,EAAwB;QAC/C,IAAI,CAAC,UAAU,GAAG,IAAI,8BAAa,CAAC,OAAO,CAAC,CAAC;QAC7C,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAElC,OAAO;YACH,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI;YAC1B,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG;SAChC,CAAC;IACN,CAAC;IAED,IAAI;QACA,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IAClC,CAAC;IAED,KAAK;QACD,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IACnC,CAAC;IAED,aAAa;QACT,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IAED,WAAW;QACP,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;IAClC,CAAC;IAID,cAAc,CAAC,MAAc,EAAE,cAAsC;QACjE,OAAO,IAAA,2CAAqB,EAAC,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,cAAc,CAAC,CAAA;IACzE,CAAC;IAAA,CAAC;CACL;AAtCD,gDAsCC"}
@@ -0,0 +1,16 @@
1
+ import { AdminServer, AdminServerOptions } from "./admin-server";
2
+ import { MockttpOptions } from "../mockttp";
3
+ import { MockttpAdminPlugin } from "./mockttp-admin-plugin";
4
+ export interface MockttpAdminServerOptions extends Omit<AdminServerOptions<{}>, 'adminPlugins' | 'pluginDefaults'> {
5
+ /**
6
+ * Override the default parameters for servers started from this admin server. These values will be
7
+ * used for each setting that is not explicitly specified by the client when creating a mock server.
8
+ */
9
+ serverDefaults?: MockttpOptions;
10
+ }
11
+ export declare class MockttpAdminServer extends AdminServer<{
12
+ http: MockttpAdminPlugin;
13
+ }> {
14
+ constructor(options: MockttpAdminServerOptions);
15
+ }
16
+ //# sourceMappingURL=mockttp-admin-server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mockttp-admin-server.d.ts","sourceRoot":"","sources":["../../src/admin/mockttp-admin-server.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEjE,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D,MAAM,WAAW,yBAA0B,SAAQ,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,EAC1E,cAAc,GAAG,gBAAgB,CACpC;IACG;;;OAGG;IACH,cAAc,CAAC,EAAE,cAAc,CAAC;CACnC;AAED,qBAAa,kBAAmB,SAAQ,WAAW,CAAC;IAAE,IAAI,EAAE,kBAAkB,CAAA;CAAE,CAAC;gBAEjE,OAAO,EAAE,yBAAyB;CAQjD"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MockttpAdminServer = void 0;
4
+ const _ = require("lodash");
5
+ const admin_server_1 = require("./admin-server");
6
+ const mockttp_admin_plugin_1 = require("./mockttp-admin-plugin");
7
+ class MockttpAdminServer extends admin_server_1.AdminServer {
8
+ constructor(options) {
9
+ super({
10
+ ..._.omit(options, 'serverDefaults'),
11
+ pluginDefaults: { http: { options: options.serverDefaults } },
12
+ adminPlugins: { http: mockttp_admin_plugin_1.MockttpAdminPlugin }
13
+ });
14
+ }
15
+ }
16
+ exports.MockttpAdminServer = MockttpAdminServer;
17
+ //# sourceMappingURL=mockttp-admin-server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mockttp-admin-server.js","sourceRoot":"","sources":["../../src/admin/mockttp-admin-server.ts"],"names":[],"mappings":";;;AAAA,4BAA4B;AAC5B,iDAAiE;AAGjE,iEAA4D;AAY5D,MAAa,kBAAmB,SAAQ,0BAAyC;IAE7E,YAAY,OAAkC;QAC1C,KAAK,CAAC;YACF,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,gBAAgB,CAAC;YACpC,cAAc,EAAE,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,cAAc,EAAE,EAAE;YAC7D,YAAY,EAAE,EAAE,IAAI,EAAE,yCAAkB,EAAE;SAC7C,CAAC,CAAC;IACP,CAAC;CAEJ;AAVD,gDAUC"}
@@ -0,0 +1,2 @@
1
+ export declare const MockttpSchema: import("graphql").DocumentNode;
2
+ //# sourceMappingURL=mockttp-schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mockttp-schema.d.ts","sourceRoot":"","sources":["../../src/admin/mockttp-schema.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,aAAa,gCA2NzB,CAAC"}
@@ -0,0 +1,225 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MockttpSchema = void 0;
4
+ const graphql_tag_1 = require("graphql-tag");
5
+ exports.MockttpSchema = (0, graphql_tag_1.default) `
6
+ extend type Query {
7
+ mockedEndpoints: [MockedEndpoint!]!
8
+ pendingEndpoints: [MockedEndpoint!]!
9
+ mockedEndpoint(id: ID!): MockedEndpoint
10
+ }
11
+
12
+ extend type Mutation {
13
+ addRule(input: MockRule!): MockedEndpoint!
14
+ addRules(input: [MockRule!]!): [MockedEndpoint!]!
15
+ setRules(input: [MockRule!]!): [MockedEndpoint!]!
16
+ setFallbackRule(input: MockRule!): MockedEndpoint!
17
+
18
+ addWebSocketRule(input: WebSocketMockRule!): MockedEndpoint!
19
+ addWebSocketRules(input: [WebSocketMockRule!]!): [MockedEndpoint!]!
20
+ setWebSocketRules(input: [WebSocketMockRule!]!): [MockedEndpoint!]!
21
+ }
22
+
23
+ extend type Subscription {
24
+ requestInitiated: InitiatedRequest!
25
+ requestReceived: Request!
26
+ responseCompleted: Response!
27
+ webSocketRequest: Request!
28
+ webSocketAccepted: Response!
29
+ webSocketMessageReceived: WebSocketMessage!
30
+ webSocketMessageSent: WebSocketMessage!
31
+ webSocketClose: WebSocketClose!
32
+ requestAborted: AbortedRequest!
33
+ tlsPassthroughOpened: TlsPassthroughEvent!
34
+ tlsPassthroughClosed: TlsPassthroughEvent!
35
+ failedTlsRequest: TlsHandshakeFailure!
36
+ failedClientRequest: ClientError!
37
+ ruleEvent: RuleEvent!
38
+ }
39
+
40
+ type MockedEndpoint {
41
+ id: ID!
42
+ explanation: String
43
+ seenRequests: [Request!]!
44
+ isPending: Boolean!
45
+ }
46
+
47
+ input MockRule {
48
+ id: String
49
+ priority: Int
50
+ matchers: [Raw!]!
51
+ handler: Raw!
52
+ completionChecker: Raw
53
+ }
54
+
55
+ input WebSocketMockRule {
56
+ id: String
57
+ priority: Int
58
+ matchers: [Raw!]!
59
+ handler: Raw!
60
+ completionChecker: Raw
61
+ }
62
+
63
+ type TlsPassthroughEvent {
64
+ id: String!
65
+ upstreamPort: Int!
66
+
67
+ hostname: String
68
+ remoteIpAddress: String!
69
+ remotePort: Int!
70
+ tags: [String!]!
71
+ timingEvents: Json!
72
+ tlsMetadata: Json!
73
+ }
74
+
75
+ type TlsHandshakeFailure {
76
+ failureCause: String!
77
+
78
+ hostname: String
79
+ remoteIpAddress: String!
80
+ remotePort: Int!
81
+ tags: [String!]!
82
+ timingEvents: Json!
83
+ tlsMetadata: Json!
84
+ }
85
+
86
+ # Old name for TlsHandshakeFailure, kept for backward compat
87
+ type TlsRequest {
88
+ failureCause: String!
89
+
90
+ hostname: String
91
+ remoteIpAddress: String!
92
+ remotePort: Int!
93
+ tags: [String!]!
94
+ timingEvents: Json!
95
+ }
96
+
97
+ type ClientError {
98
+ errorCode: String
99
+ request: ClientErrorRequest!
100
+ response: Response
101
+ }
102
+
103
+ type ClientErrorRequest {
104
+ id: ID!
105
+ timingEvents: Json!
106
+ tags: [String!]!
107
+
108
+ protocol: String
109
+ httpVersion: String
110
+ method: String
111
+ url: String
112
+ path: String
113
+ headers: Json
114
+ rawHeaders: Json
115
+ remoteIpAddress: String!
116
+ remotePort: Int!
117
+ }
118
+
119
+ type RuleEvent {
120
+ requestId: ID!
121
+ ruleId: ID!
122
+ eventType: String!
123
+ eventData: Raw!
124
+ }
125
+
126
+ type InitiatedRequest {
127
+ id: ID!
128
+ timingEvents: Json!
129
+ tags: [String!]!
130
+ matchedRuleId: ID
131
+
132
+ protocol: String!
133
+ httpVersion: String!
134
+ method: String!
135
+ url: String!
136
+ path: String!
137
+ remoteIpAddress: String!
138
+ remotePort: Int!
139
+ hostname: String
140
+
141
+ headers: Json!
142
+ rawHeaders: Json!
143
+ }
144
+
145
+ type Request {
146
+ id: ID!
147
+ timingEvents: Json!
148
+ tags: [String!]!
149
+ matchedRuleId: ID
150
+
151
+ protocol: String!
152
+ httpVersion: String!
153
+ method: String!
154
+ url: String!
155
+ path: String!
156
+ remoteIpAddress: String!
157
+ remotePort: Int!
158
+ hostname: String
159
+
160
+ headers: Json!
161
+ rawHeaders: Json!
162
+
163
+ body: Buffer!
164
+ rawTrailers: Json!
165
+ }
166
+
167
+ type AbortedRequest {
168
+ id: ID!
169
+ timingEvents: Json!
170
+ tags: [String!]!
171
+ matchedRuleId: ID
172
+
173
+ protocol: String!
174
+ httpVersion: String!
175
+ method: String!
176
+ url: String!
177
+ path: String!
178
+ remoteIpAddress: String!
179
+ remotePort: Int!
180
+ hostname: String
181
+
182
+ headers: Json!
183
+ rawHeaders: Json!
184
+
185
+ body: Buffer!
186
+
187
+ error: Json
188
+ }
189
+
190
+ type Response {
191
+ id: ID!
192
+ timingEvents: Json!
193
+ tags: [String!]!
194
+
195
+ statusCode: Int!
196
+ statusMessage: String!
197
+
198
+ headers: Json!
199
+ rawHeaders: Json!
200
+ body: Buffer!
201
+ rawTrailers: Json!
202
+ }
203
+
204
+ type WebSocketMessage {
205
+ streamId: ID!
206
+ direction: String!
207
+ content: Buffer!
208
+ isBinary: Boolean!
209
+ eventTimestamp: Float!
210
+
211
+ timingEvents: Json!
212
+ tags: [String!]!
213
+ }
214
+
215
+ type WebSocketClose {
216
+ streamId: ID!
217
+
218
+ closeCode: Int
219
+ closeReason: String
220
+
221
+ timingEvents: Json!
222
+ tags: [String!]!
223
+ }
224
+ `;
225
+ //# sourceMappingURL=mockttp-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mockttp-schema.js","sourceRoot":"","sources":["../../src/admin/mockttp-schema.ts"],"names":[],"mappings":";;;AAAA,6CAA8B;AAEjB,QAAA,aAAa,GAAG,IAAA,qBAAG,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2N/B,CAAC"}