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,56 @@
1
+ import { MockedEndpoint } from "../types";
2
+ import { Mockttp, AbstractMockttp, MockttpOptions, PortRange, SubscribableEvent } from "../mockttp";
3
+ import type { RequestRuleData } from "../rules/requests/request-rule";
4
+ import type { WebSocketRuleData } from '../rules/websockets/websocket-rule';
5
+ import { AdminClientEvent } from './admin-client';
6
+ export interface MockttpClientOptions extends MockttpOptions {
7
+ /**
8
+ * The full URL to use to connect to a Mockttp admin server when using a
9
+ * remote (or local but browser) client.
10
+ *
11
+ * When using a local server, this option is ignored.
12
+ */
13
+ adminServerUrl?: string;
14
+ /**
15
+ * Options to include on all client requests, e.g. to add extra
16
+ * headers for authentication.
17
+ */
18
+ client?: {
19
+ headers?: {
20
+ [key: string]: string;
21
+ };
22
+ };
23
+ }
24
+ export type MockttpClientEvent = `admin-client:${AdminClientEvent}`;
25
+ /**
26
+ * A Mockttp implementation, controlling a remote Mockttp admin server.
27
+ *
28
+ * A MockttpClient supports the exact same Mockttp API as MockttpServer, but rather
29
+ * than directly using Node.js APIs to start a mock server and rewrite traffic, it
30
+ * makes calls to a remote admin server to start a mock server and rewrite traffic
31
+ * there. This is useful to allow proxy configuration from inside browser tests, and
32
+ * to allow creating mock proxies that run on remote machines.
33
+ */
34
+ export declare class MockttpClient extends AbstractMockttp implements Mockttp {
35
+ private mockServerOptions;
36
+ private adminClient;
37
+ private requestBuilder;
38
+ constructor(options?: MockttpClientOptions);
39
+ enableDebug(): Promise<void>;
40
+ reset: () => Promise<void>;
41
+ get url(): string;
42
+ get port(): number;
43
+ start(port?: number | PortRange): Promise<void>;
44
+ stop(): Promise<void>;
45
+ addRequestRules: (...rules: RequestRuleData[]) => Promise<MockedEndpoint[]>;
46
+ setRequestRules: (...rules: RequestRuleData[]) => Promise<MockedEndpoint[]>;
47
+ addWebSocketRules: (...rules: WebSocketRuleData[]) => Promise<MockedEndpoint[]>;
48
+ setWebSocketRules: (...rules: WebSocketRuleData[]) => Promise<MockedEndpoint[]>;
49
+ private _addRequestRules;
50
+ private _addWsRules;
51
+ getMockedEndpoints(): Promise<MockedEndpoint[]>;
52
+ getPendingEndpoints(): Promise<MockedEndpoint[]>;
53
+ getRuleParameterKeys(): Promise<string[]>;
54
+ on(event: SubscribableEvent | MockttpClientEvent, callback: (data: any) => void): Promise<void>;
55
+ }
56
+ //# sourceMappingURL=mockttp-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mockttp-client.d.ts","sourceRoot":"","sources":["../../src/client/mockttp-client.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAE5E,OAAO,EAAe,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAI/D,MAAM,WAAW,oBAAqB,SAAQ,cAAc;IACxD;;;;;OAKG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;OAGG;IACH,MAAM,CAAC,EAAE;QACL,OAAO,CAAC,EAAE;YAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;SAAE,CAAC;KACvC,CAAA;CACJ;AAED,MAAM,MAAM,kBAAkB,GAAG,gBAAgB,gBAAgB,EAAE,CAAC;AAEpE;;;;;;;;GAQG;AACH,qBAAa,aAAc,SAAQ,eAAgB,YAAW,OAAO;IAEjE,OAAO,CAAC,iBAAiB,CAAiB;IAE1C,OAAO,CAAC,WAAW,CAA4C;IAC/D,OAAO,CAAC,cAAc,CAAyC;gBAEnD,OAAO,GAAE,oBAAyB;IAe9C,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5B,KAAK,QAAO,OAAO,CAAC,IAAI,CAAC,CAExB;IAED,IAAI,GAAG,IAAI,MAAM,CAEhB;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAEK,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS;IAWrC,IAAI;IAIG,eAAe,aAAoB,eAAe,EAAE,KAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAEtF;IAEM,eAAe,aAAoB,eAAe,EAAE,KAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAEtF;IAEM,iBAAiB,aAAoB,iBAAiB,EAAE,KAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAE1F;IAEM,iBAAiB,aAAoB,iBAAiB,EAAE,KAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAE1F;IAED,OAAO,CAAC,gBAAgB,CAUvB;IAED,OAAO,CAAC,WAAW,CAWlB;IAEY,kBAAkB;IAQlB,mBAAmB;IAQnB,oBAAoB;IAI1B,EAAE,CAAC,KAAK,EAAE,iBAAiB,GAAG,kBAAkB,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;CAsBzG"}
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MockttpClient = void 0;
4
+ const _ = require("lodash");
5
+ const mockttp_1 = require("../mockttp");
6
+ const admin_client_1 = require("./admin-client");
7
+ const mockttp_admin_request_builder_1 = require("./mockttp-admin-request-builder");
8
+ /**
9
+ * A Mockttp implementation, controlling a remote Mockttp admin server.
10
+ *
11
+ * A MockttpClient supports the exact same Mockttp API as MockttpServer, but rather
12
+ * than directly using Node.js APIs to start a mock server and rewrite traffic, it
13
+ * makes calls to a remote admin server to start a mock server and rewrite traffic
14
+ * there. This is useful to allow proxy configuration from inside browser tests, and
15
+ * to allow creating mock proxies that run on remote machines.
16
+ */
17
+ class MockttpClient extends mockttp_1.AbstractMockttp {
18
+ constructor(options = {}) {
19
+ super(_.defaults(options, {
20
+ // Browser clients generally want cors enabled. For other clients, it doesn't hurt.
21
+ // TODO: Maybe detect whether we're in a browser in future
22
+ cors: true,
23
+ }));
24
+ this.reset = () => {
25
+ return this.adminClient.reset();
26
+ };
27
+ this.addRequestRules = async (...rules) => {
28
+ return this._addRequestRules(rules, false);
29
+ };
30
+ this.setRequestRules = async (...rules) => {
31
+ return this._addRequestRules(rules, true);
32
+ };
33
+ this.addWebSocketRules = async (...rules) => {
34
+ return this._addWsRules(rules, false);
35
+ };
36
+ this.setWebSocketRules = async (...rules) => {
37
+ return this._addWsRules(rules, true);
38
+ };
39
+ this._addRequestRules = async (rules, reset) => {
40
+ if (!this.requestBuilder)
41
+ throw new Error('Cannot add rules before the server is started');
42
+ const { adminStream } = this.adminClient;
43
+ return this.adminClient.sendQuery(this.requestBuilder.buildAddRequestRulesQuery(rules, reset, adminStream));
44
+ };
45
+ this._addWsRules = async (rules, reset) => {
46
+ if (!this.requestBuilder)
47
+ throw new Error('Cannot add rules before the server is started');
48
+ const { adminStream } = this.adminClient;
49
+ return this.adminClient.sendQuery(this.requestBuilder.buildAddWebSocketRulesQuery(rules, reset, adminStream));
50
+ };
51
+ this.mockServerOptions = options;
52
+ this.adminClient = new admin_client_1.AdminClient({
53
+ adminServerUrl: options.adminServerUrl,
54
+ requestOptions: options.client
55
+ });
56
+ }
57
+ enableDebug() {
58
+ return this.adminClient.enableDebug();
59
+ }
60
+ get url() {
61
+ return this.adminClient.metadata.http.mockRoot;
62
+ }
63
+ get port() {
64
+ return this.adminClient.metadata.http.port;
65
+ }
66
+ async start(port) {
67
+ await this.adminClient.start({
68
+ http: {
69
+ port,
70
+ options: this.mockServerOptions
71
+ }
72
+ });
73
+ this.requestBuilder = new mockttp_admin_request_builder_1.MockttpAdminRequestBuilder(this.adminClient.schema);
74
+ }
75
+ stop() {
76
+ return this.adminClient.stop();
77
+ }
78
+ async getMockedEndpoints() {
79
+ if (!this.requestBuilder)
80
+ throw new Error('Cannot query mocked endpoints before the server is started');
81
+ return this.adminClient.sendQuery(this.requestBuilder.buildMockedEndpointsQuery());
82
+ }
83
+ async getPendingEndpoints() {
84
+ if (!this.requestBuilder)
85
+ throw new Error('Cannot query pending endpoints before the server is started');
86
+ return this.adminClient.sendQuery(this.requestBuilder.buildPendingEndpointsQuery());
87
+ }
88
+ async getRuleParameterKeys() {
89
+ return this.adminClient.getRuleParameterKeys();
90
+ }
91
+ on(event, callback) {
92
+ if (event.startsWith('admin-client:')) {
93
+ // All MockttpClient events come from the internal admin-client instance:
94
+ this.adminClient.on(event.slice('admin-client:'.length), callback);
95
+ return Promise.resolve();
96
+ }
97
+ if (!this.requestBuilder)
98
+ throw new Error('Cannot subscribe to Mockttp events before the server is started');
99
+ const subRequest = this.requestBuilder.buildSubscriptionRequest(event);
100
+ if (!subRequest) {
101
+ // We just return an immediately promise if we don't recognize the event, which will quietly
102
+ // succeed but never call the corresponding callback (the same as the server and most event
103
+ // sources in the same kind of situation). This is what happens when the *client* doesn't
104
+ // recognize the event. Subscribe() below handles the unknown-to-server case.
105
+ console.warn(`Ignoring subscription for event unrecognized by Mockttp client: ${event}`);
106
+ return Promise.resolve();
107
+ }
108
+ return this.adminClient.subscribe(subRequest, callback);
109
+ }
110
+ }
111
+ exports.MockttpClient = MockttpClient;
112
+ //# sourceMappingURL=mockttp-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mockttp-client.js","sourceRoot":"","sources":["../../src/client/mockttp-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ export declare class SchemaIntrospector {
2
+ private adminServerSchema;
3
+ constructor(adminServerSchema: any);
4
+ queryTypeDefined(queryType: string): boolean;
5
+ isTypeDefined(typeName: string): boolean;
6
+ typeHasField(typeName: string, fieldName: string): boolean;
7
+ asOptionalField(typeName: string | string[], fieldName: string): string;
8
+ typeHasInputField(typeName: string, fieldName: string): boolean;
9
+ }
10
+ export declare const introspectionQuery = "\n query IntrospectionQuery {\n __schema {\n queryType { name }\n mutationType { name }\n subscriptionType { name }\n types {\n ...FullType\n }\n directives {\n name\n locations\n args {\n ...InputValue\n }\n }\n }\n }\n\n fragment FullType on __Type {\n kind\n name\n fields(includeDeprecated: true) {\n name\n args {\n ...InputValue\n }\n type {\n ...TypeRef\n }\n isDeprecated\n deprecationReason\n }\n inputFields {\n ...InputValue\n }\n interfaces {\n ...TypeRef\n }\n enumValues(includeDeprecated: true) {\n name\n isDeprecated\n deprecationReason\n }\n possibleTypes {\n ...TypeRef\n }\n }\n\n fragment InputValue on __InputValue {\n name\n type { ...TypeRef }\n defaultValue\n }\n\n fragment TypeRef on __Type {\n kind\n name\n ofType {\n kind\n name\n ofType {\n kind\n name\n ofType {\n kind\n name\n ofType {\n kind\n name\n ofType {\n kind\n name\n ofType {\n kind\n name\n ofType {\n kind\n name\n }\n }\n }\n }\n }\n }\n }\n }\n";
11
+ //# sourceMappingURL=schema-introspection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-introspection.d.ts","sourceRoot":"","sources":["../../src/client/schema-introspection.ts"],"names":[],"mappings":"AAEA,qBAAa,kBAAkB;IAGvB,OAAO,CAAC,iBAAiB;gBAAjB,iBAAiB,EAAE,GAAG;IAG3B,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAI5C,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAIxC,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO;IAM1D,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM;IAWvE,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO;CAMzE;AAID,eAAO,MAAM,kBAAkB,06CAuF9B,CAAC"}
@@ -0,0 +1,128 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.introspectionQuery = exports.SchemaIntrospector = void 0;
4
+ const _ = require("lodash");
5
+ class SchemaIntrospector {
6
+ constructor(adminServerSchema) {
7
+ this.adminServerSchema = adminServerSchema;
8
+ }
9
+ queryTypeDefined(queryType) {
10
+ return this.typeHasField('Query', queryType);
11
+ }
12
+ isTypeDefined(typeName) {
13
+ return _.some(this.adminServerSchema.types, { name: typeName });
14
+ }
15
+ typeHasField(typeName, fieldName) {
16
+ const type = _.find(this.adminServerSchema.types, { name: typeName });
17
+ if (!type)
18
+ return false;
19
+ return !!_.find(type.fields, { name: fieldName });
20
+ }
21
+ asOptionalField(typeName, fieldName) {
22
+ const possibleNames = !Array.isArray(typeName) ? [typeName] : typeName;
23
+ const firstAvailableName = possibleNames.find((name) => this.isTypeDefined(name));
24
+ if (!firstAvailableName)
25
+ return '';
26
+ return (this.typeHasField(firstAvailableName, fieldName))
27
+ ? fieldName
28
+ : '';
29
+ }
30
+ typeHasInputField(typeName, fieldName) {
31
+ const type = _.find(this.adminServerSchema.types, { name: typeName });
32
+ if (!type)
33
+ return false;
34
+ return !!_.find(type.inputFields, { name: fieldName });
35
+ }
36
+ }
37
+ exports.SchemaIntrospector = SchemaIntrospector;
38
+ // Taken from src/utilities/introspectionQuery.js in GraphQL-js
39
+ // Copied directly, to avoid bundling the whole thing into frontend code.
40
+ exports.introspectionQuery = `
41
+ query IntrospectionQuery {
42
+ __schema {
43
+ queryType { name }
44
+ mutationType { name }
45
+ subscriptionType { name }
46
+ types {
47
+ ...FullType
48
+ }
49
+ directives {
50
+ name
51
+ locations
52
+ args {
53
+ ...InputValue
54
+ }
55
+ }
56
+ }
57
+ }
58
+
59
+ fragment FullType on __Type {
60
+ kind
61
+ name
62
+ fields(includeDeprecated: true) {
63
+ name
64
+ args {
65
+ ...InputValue
66
+ }
67
+ type {
68
+ ...TypeRef
69
+ }
70
+ isDeprecated
71
+ deprecationReason
72
+ }
73
+ inputFields {
74
+ ...InputValue
75
+ }
76
+ interfaces {
77
+ ...TypeRef
78
+ }
79
+ enumValues(includeDeprecated: true) {
80
+ name
81
+ isDeprecated
82
+ deprecationReason
83
+ }
84
+ possibleTypes {
85
+ ...TypeRef
86
+ }
87
+ }
88
+
89
+ fragment InputValue on __InputValue {
90
+ name
91
+ type { ...TypeRef }
92
+ defaultValue
93
+ }
94
+
95
+ fragment TypeRef on __Type {
96
+ kind
97
+ name
98
+ ofType {
99
+ kind
100
+ name
101
+ ofType {
102
+ kind
103
+ name
104
+ ofType {
105
+ kind
106
+ name
107
+ ofType {
108
+ kind
109
+ name
110
+ ofType {
111
+ kind
112
+ name
113
+ ofType {
114
+ kind
115
+ name
116
+ ofType {
117
+ kind
118
+ name
119
+ }
120
+ }
121
+ }
122
+ }
123
+ }
124
+ }
125
+ }
126
+ }
127
+ `;
128
+ //# sourceMappingURL=schema-introspection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-introspection.js","sourceRoot":"","sources":["../../src/client/schema-introspection.ts"],"names":[],"mappings":";;;AAAA,4BAA4B;AAE5B,MAAa,kBAAkB;IAE3B,YACY,iBAAsB;QAAtB,sBAAiB,GAAjB,iBAAiB,CAAK;IAC/B,CAAC;IAEG,gBAAgB,CAAC,SAAiB;QACrC,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACjD,CAAC;IAEM,aAAa,CAAC,QAAgB;QACjC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IACpE,CAAC;IAEM,YAAY,CAAC,QAAgB,EAAE,SAAiB;QACnD,MAAM,IAAI,GAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC3E,IAAI,CAAC,IAAI;YAAE,OAAO,KAAK,CAAC;QACxB,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;IACtD,CAAC;IAEM,eAAe,CAAC,QAA2B,EAAE,SAAiB;QACjE,MAAM,aAAa,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QAEvE,MAAM,kBAAkB,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;QAClF,IAAI,CAAC,kBAAkB;YAAE,OAAO,EAAE,CAAC;QAEnC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE,SAAS,CAAC,CAAC;YACrD,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,EAAE,CAAC;IACb,CAAC;IAEM,iBAAiB,CAAC,QAAgB,EAAE,SAAiB;QACxD,MAAM,IAAI,GAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC3E,IAAI,CAAC,IAAI;YAAE,OAAO,KAAK,CAAC;QACxB,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;IAC3D,CAAC;CAEJ;AArCD,gDAqCC;AAED,+DAA+D;AAC/D,yEAAyE;AAC5D,QAAA,kBAAkB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuFjC,CAAC"}
@@ -0,0 +1,49 @@
1
+ import { Mockttp, MockttpOptions } from "./mockttp";
2
+ export { Method, RulePriority } from "./types";
3
+ import * as matchers from './rules/matchers';
4
+ import * as requestHandlerDefinitions from './rules/requests/request-handler-definitions';
5
+ import * as webSocketHandlerDefinitions from './rules/websockets/websocket-handler-definitions';
6
+ import * as completionCheckers from './rules/completion-checkers';
7
+ export { matchers, requestHandlerDefinitions, webSocketHandlerDefinitions, completionCheckers };
8
+ export declare const requestHandlers: {
9
+ SimpleHandler: typeof requestHandlerDefinitions.SimpleHandlerDefinition;
10
+ CallbackHandler: typeof requestHandlerDefinitions.CallbackHandlerDefinition;
11
+ StreamHandler: typeof requestHandlerDefinitions.StreamHandlerDefinition;
12
+ FileHandler: typeof requestHandlerDefinitions.FileHandlerDefinition;
13
+ PassThroughHandler: typeof requestHandlerDefinitions.PassThroughHandlerDefinition;
14
+ CloseConnectionHandler: typeof requestHandlerDefinitions.CloseConnectionHandlerDefinition;
15
+ TimeoutHandler: typeof requestHandlerDefinitions.TimeoutHandlerDefinition;
16
+ HandlerLookup: {
17
+ simple: typeof requestHandlerDefinitions.SimpleHandlerDefinition;
18
+ callback: typeof requestHandlerDefinitions.CallbackHandlerDefinition;
19
+ stream: typeof requestHandlerDefinitions.StreamHandlerDefinition;
20
+ file: typeof requestHandlerDefinitions.FileHandlerDefinition;
21
+ passthrough: typeof requestHandlerDefinitions.PassThroughHandlerDefinition;
22
+ 'close-connection': typeof requestHandlerDefinitions.CloseConnectionHandlerDefinition;
23
+ 'reset-connection': typeof requestHandlerDefinitions.ResetConnectionHandlerDefinition;
24
+ timeout: typeof requestHandlerDefinitions.TimeoutHandlerDefinition;
25
+ 'json-rpc-response': typeof requestHandlerDefinitions.JsonRpcResponseHandlerDefinition;
26
+ };
27
+ };
28
+ export declare const webSocketHandlers: {
29
+ PassThroughWebSocketHandler: typeof webSocketHandlerDefinitions.PassThroughWebSocketHandlerDefinition;
30
+ CloseConnectionHandler: typeof requestHandlerDefinitions.CloseConnectionHandlerDefinition;
31
+ TimeoutHandler: typeof requestHandlerDefinitions.TimeoutHandlerDefinition;
32
+ WsHandlerLookup: {
33
+ 'ws-passthrough': typeof webSocketHandlerDefinitions.PassThroughWebSocketHandlerDefinition;
34
+ 'ws-echo': typeof webSocketHandlerDefinitions.EchoWebSocketHandlerDefinition;
35
+ 'ws-listen': typeof webSocketHandlerDefinitions.ListenWebSocketHandlerDefinition;
36
+ 'ws-reject': typeof webSocketHandlerDefinitions.RejectWebSocketHandlerDefinition;
37
+ 'close-connection': typeof requestHandlerDefinitions.CloseConnectionHandlerDefinition;
38
+ 'reset-connection': typeof requestHandlerDefinitions.ResetConnectionHandlerDefinition;
39
+ timeout: typeof requestHandlerDefinitions.TimeoutHandlerDefinition;
40
+ };
41
+ };
42
+ export { MOCKTTP_PARAM_REF } from './rules/rule-parameters';
43
+ export declare function getLocal(options?: MockttpOptions): Mockttp;
44
+ export declare function getRemote(options?: MockttpOptions): Mockttp;
45
+ export declare function getAdminServer(): never;
46
+ export { resetAdminServer } from "./client/admin-client";
47
+ export * as PluggableAdmin from './pluggable-admin-api/pluggable-admin';
48
+ export * as MockttpPluggableAdmin from './pluggable-admin-api/mockttp-pluggable-admin';
49
+ //# sourceMappingURL=main.browser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.browser.d.ts","sourceRoot":"","sources":["../src/main.browser.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAG/C,OAAO,KAAK,QAAQ,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,yBAAyB,MAAM,8CAA8C,CAAC;AAC1F,OAAO,KAAK,2BAA2B,MAAM,kDAAkD,CAAC;AAChG,OAAO,KAAK,kBAAkB,MAAM,6BAA6B,CAAC;AAElE,OAAO,EACH,QAAQ,EACR,yBAAyB,EACzB,2BAA2B,EAC3B,kBAAkB,EACrB,CAAC;AAOF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;CAS3B,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;CAK7B,CAAC;AAEF,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAG5D,wBAAgB,QAAQ,CAAC,OAAO,GAAE,cAAmB,GAAG,OAAO,CAE9D;AAED,wBAAgB,SAAS,CAAC,OAAO,GAAE,cAAmB,GAAG,OAAO,CAE/D;AAED,wBAAgB,cAAc,IAAI,KAAK,CAEtC;AAED,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,OAAO,KAAK,cAAc,MAAM,uCAAuC,CAAC;AACxE,OAAO,KAAK,qBAAqB,MAAM,+CAA+C,CAAC"}
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MockttpPluggableAdmin = exports.PluggableAdmin = exports.resetAdminServer = exports.MOCKTTP_PARAM_REF = exports.webSocketHandlers = exports.requestHandlers = exports.completionCheckers = exports.webSocketHandlerDefinitions = exports.requestHandlerDefinitions = exports.matchers = exports.RulePriority = exports.Method = void 0;
4
+ exports.getLocal = getLocal;
5
+ exports.getRemote = getRemote;
6
+ exports.getAdminServer = getAdminServer;
7
+ const mockttp_client_1 = require("./client/mockttp-client");
8
+ var types_1 = require("./types");
9
+ Object.defineProperty(exports, "Method", { enumerable: true, get: function () { return types_1.Method; } });
10
+ Object.defineProperty(exports, "RulePriority", { enumerable: true, get: function () { return types_1.RulePriority; } });
11
+ // Export rule data builders:
12
+ const matchers = require("./rules/matchers");
13
+ exports.matchers = matchers;
14
+ const requestHandlerDefinitions = require("./rules/requests/request-handler-definitions");
15
+ exports.requestHandlerDefinitions = requestHandlerDefinitions;
16
+ const webSocketHandlerDefinitions = require("./rules/websockets/websocket-handler-definitions");
17
+ exports.webSocketHandlerDefinitions = webSocketHandlerDefinitions;
18
+ const completionCheckers = require("./rules/completion-checkers");
19
+ exports.completionCheckers = completionCheckers;
20
+ // We re-export definitions to pretend they're real handlers in the browser. This should be safe
21
+ // because the missing methods (i.e. handle()) were always unusable in non-Node environments anyway.
22
+ // In practice though, new browser code using this should actively use requestHandlerDefinitions instead.
23
+ // In future, we should probably expose definitions only for both browsers & node, but that's a
24
+ // breaking change.
25
+ exports.requestHandlers = {
26
+ 'SimpleHandler': requestHandlerDefinitions.SimpleHandlerDefinition,
27
+ 'CallbackHandler': requestHandlerDefinitions.CallbackHandlerDefinition,
28
+ 'StreamHandler': requestHandlerDefinitions.StreamHandlerDefinition,
29
+ 'FileHandler': requestHandlerDefinitions.FileHandlerDefinition,
30
+ 'PassThroughHandler': requestHandlerDefinitions.PassThroughHandlerDefinition,
31
+ 'CloseConnectionHandler': requestHandlerDefinitions.CloseConnectionHandlerDefinition,
32
+ 'TimeoutHandler': requestHandlerDefinitions.TimeoutHandlerDefinition,
33
+ 'HandlerLookup': requestHandlerDefinitions.HandlerDefinitionLookup
34
+ };
35
+ exports.webSocketHandlers = {
36
+ 'PassThroughWebSocketHandler': webSocketHandlerDefinitions.PassThroughWebSocketHandlerDefinition,
37
+ 'CloseConnectionHandler': webSocketHandlerDefinitions.CloseConnectionHandlerDefinition,
38
+ 'TimeoutHandler': webSocketHandlerDefinitions.TimeoutHandlerDefinition,
39
+ 'WsHandlerLookup': webSocketHandlerDefinitions.WsHandlerDefinitionLookup
40
+ };
41
+ var rule_parameters_1 = require("./rules/rule-parameters");
42
+ Object.defineProperty(exports, "MOCKTTP_PARAM_REF", { enumerable: true, get: function () { return rule_parameters_1.MOCKTTP_PARAM_REF; } });
43
+ // Export the core API:
44
+ function getLocal(options = {}) {
45
+ return new mockttp_client_1.MockttpClient(options);
46
+ }
47
+ function getRemote(options = {}) {
48
+ return new mockttp_client_1.MockttpClient(options);
49
+ }
50
+ function getAdminServer() {
51
+ throw new Error('Cannot set up an admin server within a browser');
52
+ }
53
+ var admin_client_1 = require("./client/admin-client");
54
+ Object.defineProperty(exports, "resetAdminServer", { enumerable: true, get: function () { return admin_client_1.resetAdminServer; } });
55
+ exports.PluggableAdmin = require("./pluggable-admin-api/pluggable-admin");
56
+ exports.MockttpPluggableAdmin = require("./pluggable-admin-api/mockttp-pluggable-admin");
57
+ //# sourceMappingURL=main.browser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.browser.js","sourceRoot":"","sources":["../src/main.browser.ts"],"names":[],"mappings":";;;AA4CA,4BAEC;AAED,8BAEC;AAED,wCAEC;AAtDD,4DAAwD;AAGxD,iCAA+C;AAAtC,+FAAA,MAAM,OAAA;AAAE,qGAAA,YAAY,OAAA;AAE7B,6BAA6B;AAC7B,6CAA6C;AAMzC,4BAAQ;AALZ,0FAA0F;AAMtF,8DAAyB;AAL7B,gGAAgG;AAM5F,kEAA2B;AAL/B,kEAAkE;AAM9D,gDAAkB;AAGtB,gGAAgG;AAChG,oGAAoG;AACpG,yGAAyG;AACzG,+FAA+F;AAC/F,mBAAmB;AACN,QAAA,eAAe,GAAG;IAC3B,eAAe,EAAE,yBAAyB,CAAC,uBAAuB;IAClE,iBAAiB,EAAE,yBAAyB,CAAC,yBAAyB;IACtE,eAAe,EAAE,yBAAyB,CAAC,uBAAuB;IAClE,aAAa,EAAE,yBAAyB,CAAC,qBAAqB;IAC9D,oBAAoB,EAAE,yBAAyB,CAAC,4BAA4B;IAC5E,wBAAwB,EAAE,yBAAyB,CAAC,gCAAgC;IACpF,gBAAgB,EAAE,yBAAyB,CAAC,wBAAwB;IACpE,eAAe,EAAE,yBAAyB,CAAC,uBAAuB;CACrE,CAAC;AAEW,QAAA,iBAAiB,GAAG;IAC7B,6BAA6B,EAAE,2BAA2B,CAAC,qCAAqC;IAChG,wBAAwB,EAAE,2BAA2B,CAAC,gCAAgC;IACtF,gBAAgB,EAAE,2BAA2B,CAAC,wBAAwB;IACtE,iBAAiB,EAAE,2BAA2B,CAAC,yBAAyB;CAC3E,CAAC;AAEF,2DAA4D;AAAnD,oHAAA,iBAAiB,OAAA;AAE1B,uBAAuB;AACvB,SAAgB,QAAQ,CAAC,UAA0B,EAAE;IACjD,OAAO,IAAI,8BAAa,CAAC,OAAO,CAAC,CAAC;AACtC,CAAC;AAED,SAAgB,SAAS,CAAC,UAA0B,EAAE;IAClD,OAAO,IAAI,8BAAa,CAAC,OAAO,CAAC,CAAC;AACtC,CAAC;AAED,SAAgB,cAAc;IAC1B,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;AACtE,CAAC;AAED,sDAAyD;AAAhD,gHAAA,gBAAgB,OAAA;AAEzB,0EAAwE;AACxE,yFAAuF"}
package/dist/main.d.ts ADDED
@@ -0,0 +1,86 @@
1
+ import { Mockttp, MockttpOptions, MockttpHttpsOptions, SubscribableEvent, PortRange } from "./mockttp";
2
+ import { MockttpServer } from "./server/mockttp-server";
3
+ import { MockttpClientOptions } from "./client/mockttp-client";
4
+ import { MockttpAdminServer, MockttpAdminServerOptions } from "./admin/mockttp-admin-server";
5
+ export * from "./types";
6
+ export type { Mockttp, MockttpServer, MockttpAdminServer, MockttpOptions, MockttpHttpsOptions, MockttpClientOptions, MockttpAdminServerOptions, SubscribableEvent, PortRange };
7
+ export type { TlsHandshakeFailure as TlsRequest } from './types';
8
+ export type { CertDataOptions as HttpsOptions, CertPathOptions as HttpsPathOptions } from './util/tls';
9
+ import * as matchers from './rules/matchers';
10
+ import * as requestHandlers from './rules/requests/request-handlers';
11
+ import * as requestHandlerDefinitions from './rules/requests/request-handler-definitions';
12
+ import * as webSocketHandlers from './rules/websockets/websocket-handlers';
13
+ import * as webSocketHandlerDefinitions from './rules/websockets/websocket-handler-definitions';
14
+ import * as completionCheckers from './rules/completion-checkers';
15
+ export { matchers, requestHandlers, requestHandlerDefinitions, webSocketHandlers, webSocketHandlerDefinitions, completionCheckers };
16
+ import type { RequestRule, RequestRuleData } from './rules/requests/request-rule';
17
+ import type { WebSocketRule, WebSocketRuleData } from './rules/websockets/websocket-rule';
18
+ export type { RequestRule, RequestRuleData, WebSocketRule, WebSocketRuleData };
19
+ export type { ProxyConfig, ProxySetting, ProxySettingSource, ProxySettingCallback, ProxySettingCallbackParams } from './rules/proxy-config';
20
+ export type { CADefinition, ForwardingOptions, PassThroughLookupOptions, PassThroughHandlerConnectionOptions } from './rules/passthrough-handling-definitions';
21
+ export type { RequestRuleBuilder } from "./rules/requests/request-rule-builder";
22
+ export type { WebSocketRuleBuilder } from "./rules/websockets/websocket-rule-builder";
23
+ export { MOCKTTP_PARAM_REF, RuleParameterReference, RuleParameters } from './rules/rule-parameters';
24
+ export type { ServerMockedEndpoint } from "./server/mocked-endpoint";
25
+ export { generateCACertificate, generateSPKIFingerprint } from './util/tls';
26
+ export type { CAOptions, PEM, CertDataOptions, CertPathOptions } from './util/tls';
27
+ export type { CachedDns, DnsLookupFunction } from './util/dns';
28
+ export type { Serialized, SerializedValue } from './serialization/serialization';
29
+ export type { MaybePromise } from './util/type-utils';
30
+ /**
31
+ * Get a Mockttp instance on the local machine.
32
+ *
33
+ * In most simple environments, you can call this method directly and immediately
34
+ * get a Mockttp instance and start mocking servers.
35
+ *
36
+ * In node, the mocked servers will run in process and require no further setup.
37
+ *
38
+ * In browsers this is an alias for getRemote. You'll need to start a Mockttp admin server
39
+ * outside your tests before calling this, which will create and manage your fake servers
40
+ * outside the browser.
41
+ */
42
+ export declare function getLocal(options?: MockttpOptions): Mockttp;
43
+ /**
44
+ * Get a Mockttp instance, controlled through a Mockttp admin server.
45
+ *
46
+ * This connects to a Mockttp admin server, and uses that to start
47
+ * and stop mock servers.
48
+ */
49
+ export declare function getRemote(options?: MockttpClientOptions): Mockttp;
50
+ /**
51
+ * Get a Mockttp admin server, which can be used with a Mockttp remote client to create
52
+ * & manage Mockttp instances either from remote machines or from local environments
53
+ * that lack necessary capabilities, e.g. to use Mockttp from inside a browser.
54
+ *
55
+ * This function exists so you can set up these servers programmatically, but for most
56
+ * usage you can just run your tests via the `mockttp` binary, which will automatically
57
+ * start and stop an admin server for you:
58
+ *
59
+ * ```
60
+ * mockttp -c <your test command>
61
+ * ```
62
+ */
63
+ export declare function getAdminServer(options?: MockttpAdminServerOptions): MockttpAdminServer;
64
+ import { resetAdminServer } from "./client/admin-client";
65
+ export { resetAdminServer };
66
+ /**
67
+ * This API is not yet stable, and is intended for internal use only. It may change in future
68
+ * in minor versions without warning.
69
+ *
70
+ * These generic pluggable admin components allow composing an admin server and client that
71
+ * are capable of managing arbitrary mock protocols, including Mockttp but also others depending
72
+ * on the admin plugins used. To use Mockttp, combine this with the MockttpPluggableAdmin API.
73
+ * @category Internal
74
+ */
75
+ export * as PluggableAdmin from './pluggable-admin-api/pluggable-admin';
76
+ /**
77
+ * This API is not yet stable, and is intended for internal use only. It may change in future
78
+ * in minor versions without warning.
79
+ *
80
+ * These plugin components can be applied to the PluggableAdmin API to create a remotely
81
+ * controlable mock management server that can mock HTTP in addition to protocols from
82
+ * other plugins.
83
+ * @category Internal
84
+ */
85
+ export * as MockttpPluggableAdmin from './pluggable-admin-api/mockttp-pluggable-admin';
86
+ //# sourceMappingURL=main.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}