@mbtest/mountebank 2.9.2-beta.9050

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (207) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +94 -0
  3. package/bin/mb +136 -0
  4. package/package.json +71 -0
  5. package/releases.json +52 -0
  6. package/src/cli/api.js +112 -0
  7. package/src/cli/cli.js +420 -0
  8. package/src/controllers/configController.js +64 -0
  9. package/src/controllers/feedController.js +115 -0
  10. package/src/controllers/homeController.js +58 -0
  11. package/src/controllers/imposterController.js +328 -0
  12. package/src/controllers/impostersController.js +215 -0
  13. package/src/controllers/logsController.js +52 -0
  14. package/src/models/behaviors.js +553 -0
  15. package/src/models/behaviorsValidator.js +186 -0
  16. package/src/models/compatibility.js +133 -0
  17. package/src/models/dryRunValidator.js +261 -0
  18. package/src/models/filesystemBackedImpostersRepository.js +908 -0
  19. package/src/models/http/baseHttpServer.js +207 -0
  20. package/src/models/http/headersMap.js +87 -0
  21. package/src/models/http/httpProxy.js +230 -0
  22. package/src/models/http/httpRequest.js +82 -0
  23. package/src/models/http/httpServer.js +18 -0
  24. package/src/models/http/index.js +18 -0
  25. package/src/models/https/cert/mb-cert.pem +20 -0
  26. package/src/models/https/cert/mb-csr.pem +16 -0
  27. package/src/models/https/cert/mb-key.pem +27 -0
  28. package/src/models/https/httpsServer.js +42 -0
  29. package/src/models/https/index.js +18 -0
  30. package/src/models/imposter.js +243 -0
  31. package/src/models/imposterPrinter.js +120 -0
  32. package/src/models/impostersRepository.js +49 -0
  33. package/src/models/inMemoryImpostersRepository.js +418 -0
  34. package/src/models/jsonpath.js +44 -0
  35. package/src/models/mbConnection.js +107 -0
  36. package/src/models/predicates.js +438 -0
  37. package/src/models/protocols.js +242 -0
  38. package/src/models/responseResolver.js +398 -0
  39. package/src/models/smtp/index.js +16 -0
  40. package/src/models/smtp/smtpRequest.js +60 -0
  41. package/src/models/smtp/smtpServer.js +109 -0
  42. package/src/models/tcp/index.js +18 -0
  43. package/src/models/tcp/tcpProxy.js +110 -0
  44. package/src/models/tcp/tcpRequest.js +23 -0
  45. package/src/models/tcp/tcpServer.js +156 -0
  46. package/src/models/tcp/tcpValidator.js +19 -0
  47. package/src/models/xpath.js +95 -0
  48. package/src/mountebank.js +245 -0
  49. package/src/public/images/arrow_down.png +0 -0
  50. package/src/public/images/arrow_up.png +0 -0
  51. package/src/public/images/book.jpg +0 -0
  52. package/src/public/images/dataflow.png +0 -0
  53. package/src/public/images/favicon.ico +0 -0
  54. package/src/public/images/forkme_right_orange_ff7600.png +0 -0
  55. package/src/public/images/mountebank.png +0 -0
  56. package/src/public/images/overview.gif +0 -0
  57. package/src/public/images/quote.png +0 -0
  58. package/src/public/images/tw-logo.png +0 -0
  59. package/src/public/scripts/jquery/jquery-3.6.1.min.js +2 -0
  60. package/src/public/scripts/urlHashHandler.js +31 -0
  61. package/src/public/stylesheets/application.css +424 -0
  62. package/src/public/stylesheets/ie.css +14 -0
  63. package/src/public/stylesheets/imposters.css +121 -0
  64. package/src/public/stylesheets/jqueryui/1.10.4/themes/smoothness/jquery-ui.css +1178 -0
  65. package/src/util/combinators.js +68 -0
  66. package/src/util/date.js +51 -0
  67. package/src/util/errors.js +55 -0
  68. package/src/util/helpers.js +131 -0
  69. package/src/util/inherit.js +28 -0
  70. package/src/util/ip.js +54 -0
  71. package/src/util/logger.js +83 -0
  72. package/src/util/middleware.js +256 -0
  73. package/src/util/scopedLogger.js +47 -0
  74. package/src/views/_footer.ejs +20 -0
  75. package/src/views/_header.ejs +113 -0
  76. package/src/views/_imposter.ejs +8 -0
  77. package/src/views/config.ejs +71 -0
  78. package/src/views/docs/api/behaviors/copy.ejs +427 -0
  79. package/src/views/docs/api/behaviors/decorate.ejs +182 -0
  80. package/src/views/docs/api/behaviors/lookup.ejs +220 -0
  81. package/src/views/docs/api/behaviors/shellTransform.ejs +153 -0
  82. package/src/views/docs/api/behaviors/wait.ejs +121 -0
  83. package/src/views/docs/api/behaviors.ejs +141 -0
  84. package/src/views/docs/api/contracts/addStub-description.ejs +10 -0
  85. package/src/views/docs/api/contracts/addStub.ejs +10 -0
  86. package/src/views/docs/api/contracts/config-description.ejs +32 -0
  87. package/src/views/docs/api/contracts/config.ejs +23 -0
  88. package/src/views/docs/api/contracts/home-description.ejs +18 -0
  89. package/src/views/docs/api/contracts/home.ejs +13 -0
  90. package/src/views/docs/api/contracts/imposter-description.ejs +439 -0
  91. package/src/views/docs/api/contracts/imposter.ejs +182 -0
  92. package/src/views/docs/api/contracts/imposters-description.ejs +13 -0
  93. package/src/views/docs/api/contracts/imposters.ejs +13 -0
  94. package/src/views/docs/api/contracts/logs-description.ejs +3 -0
  95. package/src/views/docs/api/contracts/logs.ejs +14 -0
  96. package/src/views/docs/api/contracts/stub-description.ejs +4 -0
  97. package/src/views/docs/api/contracts/stub.ejs +7 -0
  98. package/src/views/docs/api/contracts/stubs-description.ejs +4 -0
  99. package/src/views/docs/api/contracts/stubs.ejs +11 -0
  100. package/src/views/docs/api/contracts.ejs +133 -0
  101. package/src/views/docs/api/errors.ejs +64 -0
  102. package/src/views/docs/api/fault/connectionReset.ejs +31 -0
  103. package/src/views/docs/api/fault/randomDataThenClose.ejs +31 -0
  104. package/src/views/docs/api/faults.ejs +57 -0
  105. package/src/views/docs/api/injection.ejs +426 -0
  106. package/src/views/docs/api/json.ejs +205 -0
  107. package/src/views/docs/api/jsonpath.ejs +210 -0
  108. package/src/views/docs/api/mocks.ejs +130 -0
  109. package/src/views/docs/api/overview.ejs +968 -0
  110. package/src/views/docs/api/predicates/and.ejs +62 -0
  111. package/src/views/docs/api/predicates/contains.ejs +64 -0
  112. package/src/views/docs/api/predicates/deepEquals.ejs +114 -0
  113. package/src/views/docs/api/predicates/endsWith.ejs +66 -0
  114. package/src/views/docs/api/predicates/equals.ejs +125 -0
  115. package/src/views/docs/api/predicates/exists.ejs +118 -0
  116. package/src/views/docs/api/predicates/inject.ejs +67 -0
  117. package/src/views/docs/api/predicates/matches.ejs +66 -0
  118. package/src/views/docs/api/predicates/not.ejs +52 -0
  119. package/src/views/docs/api/predicates/or.ejs +79 -0
  120. package/src/views/docs/api/predicates/startsWith.ejs +62 -0
  121. package/src/views/docs/api/predicates.ejs +382 -0
  122. package/src/views/docs/api/proxies.ejs +191 -0
  123. package/src/views/docs/api/proxy/addDecorateBehavior.ejs +115 -0
  124. package/src/views/docs/api/proxy/addWaitBehavior.ejs +96 -0
  125. package/src/views/docs/api/proxy/injectHeaders.ejs +91 -0
  126. package/src/views/docs/api/proxy/predicateGenerators.ejs +600 -0
  127. package/src/views/docs/api/proxy/proxyModes.ejs +495 -0
  128. package/src/views/docs/api/stubs.ejs +391 -0
  129. package/src/views/docs/api/xpath.ejs +281 -0
  130. package/src/views/docs/cli/configFiles.ejs +133 -0
  131. package/src/views/docs/cli/customFormatters.ejs +53 -0
  132. package/src/views/docs/cli/help.ejs +6 -0
  133. package/src/views/docs/cli/replay.ejs +42 -0
  134. package/src/views/docs/cli/restart.ejs +10 -0
  135. package/src/views/docs/cli/save.ejs +68 -0
  136. package/src/views/docs/cli/start.ejs +234 -0
  137. package/src/views/docs/cli/stop.ejs +32 -0
  138. package/src/views/docs/commandLine.ejs +93 -0
  139. package/src/views/docs/communityExtensions.ejs +233 -0
  140. package/src/views/docs/gettingStarted.ejs +146 -0
  141. package/src/views/docs/mentalModel.ejs +51 -0
  142. package/src/views/docs/protocols/custom.ejs +231 -0
  143. package/src/views/docs/protocols/http.ejs +238 -0
  144. package/src/views/docs/protocols/https.ejs +246 -0
  145. package/src/views/docs/protocols/smtp.ejs +142 -0
  146. package/src/views/docs/protocols/tcp.ejs +431 -0
  147. package/src/views/docs/security.ejs +38 -0
  148. package/src/views/faqs.ejs +65 -0
  149. package/src/views/feed.ejs +33 -0
  150. package/src/views/imposter.ejs +22 -0
  151. package/src/views/imposters.ejs +33 -0
  152. package/src/views/index.ejs +89 -0
  153. package/src/views/license.ejs +30 -0
  154. package/src/views/logs.ejs +77 -0
  155. package/src/views/releases/v1.1.0.ejs +55 -0
  156. package/src/views/releases/v1.1.36.ejs +84 -0
  157. package/src/views/releases/v1.1.72.ejs +92 -0
  158. package/src/views/releases/v1.10.0.ejs +108 -0
  159. package/src/views/releases/v1.11.0.ejs +109 -0
  160. package/src/views/releases/v1.12.0.ejs +96 -0
  161. package/src/views/releases/v1.13.0.ejs +118 -0
  162. package/src/views/releases/v1.14.0.ejs +107 -0
  163. package/src/views/releases/v1.14.1.ejs +94 -0
  164. package/src/views/releases/v1.15.0.ejs +113 -0
  165. package/src/views/releases/v1.16.0.ejs +104 -0
  166. package/src/views/releases/v1.2.0.ejs +78 -0
  167. package/src/views/releases/v1.2.103.ejs +86 -0
  168. package/src/views/releases/v1.2.122.ejs +86 -0
  169. package/src/views/releases/v1.2.30.ejs +84 -0
  170. package/src/views/releases/v1.2.45.ejs +84 -0
  171. package/src/views/releases/v1.2.56.ejs +79 -0
  172. package/src/views/releases/v1.3.0.ejs +86 -0
  173. package/src/views/releases/v1.3.1.ejs +100 -0
  174. package/src/views/releases/v1.4.0.ejs +96 -0
  175. package/src/views/releases/v1.4.1.ejs +103 -0
  176. package/src/views/releases/v1.4.2.ejs +100 -0
  177. package/src/views/releases/v1.4.3.ejs +113 -0
  178. package/src/views/releases/v1.5.0.ejs +104 -0
  179. package/src/views/releases/v1.5.1.ejs +91 -0
  180. package/src/views/releases/v1.6.0.ejs +109 -0
  181. package/src/views/releases/v1.7.0.ejs +113 -0
  182. package/src/views/releases/v1.7.1.ejs +90 -0
  183. package/src/views/releases/v1.7.2.ejs +96 -0
  184. package/src/views/releases/v1.8.0.ejs +121 -0
  185. package/src/views/releases/v1.9.0.ejs +111 -0
  186. package/src/views/releases/v2.0.0.ejs +159 -0
  187. package/src/views/releases/v2.1.0.ejs +121 -0
  188. package/src/views/releases/v2.1.1.ejs +106 -0
  189. package/src/views/releases/v2.1.2.ejs +84 -0
  190. package/src/views/releases/v2.2.0.ejs +115 -0
  191. package/src/views/releases/v2.2.1.ejs +102 -0
  192. package/src/views/releases/v2.3.0.ejs +121 -0
  193. package/src/views/releases/v2.3.1.ejs +100 -0
  194. package/src/views/releases/v2.3.2.ejs +102 -0
  195. package/src/views/releases/v2.3.3.ejs +97 -0
  196. package/src/views/releases/v2.4.0.ejs +114 -0
  197. package/src/views/releases/v2.5.0.ejs +51 -0
  198. package/src/views/releases/v2.6.0.ejs +35 -0
  199. package/src/views/releases/v2.7.0.ejs +32 -0
  200. package/src/views/releases/v2.8.0.ejs +36 -0
  201. package/src/views/releases/v2.8.1.ejs +7 -0
  202. package/src/views/releases/v2.8.2.ejs +26 -0
  203. package/src/views/releases/v2.9.0.ejs +32 -0
  204. package/src/views/releases/v2.9.1.ejs +10 -0
  205. package/src/views/releases.ejs +26 -0
  206. package/src/views/sitemap.ejs +36 -0
  207. package/src/views/support.ejs +14 -0
@@ -0,0 +1,96 @@
1
+ <h1>v<%= releaseVersion %></h1>
2
+
3
+ <p class='info-icon'>Be sure to keep up with the latest releases by subscribing to the
4
+ <a href='http://www.mbtest.dev/feed'>ATOM feed</a>.</p>
5
+
6
+ <p class='warning-icon'>mountebank v1.7 no longer supports node v0.10 or v0.12. This
7
+ corresponds to the node community's <a href='https://github.com/nodejs/LTS#lts-schedule'>LTS schedule</a>.</p>
8
+
9
+ <h2>Bug Fixes</h2>
10
+ <ul class='bullet-list'>
11
+ <li>Fixed a <a href='https://github.com/mountebank-testing/mountebank/issues/173'>bug</a> allowing state changes to the
12
+ "is" response after creation. This was first noticed when using the <code>decorate</code> behavior - the
13
+ second and subsequent calls incorrectly returned whatever the first call used</li>
14
+ <li>Correctly show the number of requests on the <a href='http://<%= host %>/imposters'>imposters</a> page</li>
15
+ <li>Prevent using functions for the <code>wait</code> behavior unless the <code>--allowInjection</code>
16
+ flag is passed in.</li>
17
+ <li>Fixed some documentation, especially around the behaviors</li>
18
+ </ul>
19
+
20
+ <p>Many thanks to the following kind folks for help with this release:</p>
21
+
22
+ <ul class='bullet-list'>
23
+ <li>nottyo</li>
24
+ </ul>
25
+
26
+ <h2>Install</h2>
27
+
28
+ <pre><code>npm install -g mountebank@<%= releaseVersion %></code></pre>
29
+
30
+ <p>or:</p>
31
+
32
+ <table>
33
+ <tr>
34
+ <th>Option</th>
35
+ <th>node.js required?</th>
36
+ <th>sudo required?</th>
37
+ <th>links</th>
38
+ <th>Description</th>
39
+ </tr>
40
+ <tr>
41
+ <td>Self-contained archives</td>
42
+ <td>No</td>
43
+ <td>No</td>
44
+ <td style="min-width: 5em;">
45
+ <ul>
46
+ <li><a href="https://s3.amazonaws.com/mountebank/v<%= releaseMajorMinor %>/mountebank-v<%= releaseVersion %>-darwin-x64.tar.gz">osx</a></li>
47
+ <li><a href="https://s3.amazonaws.com/mountebank/v<%= releaseMajorMinor %>/mountebank-v<%= releaseVersion %>-linux-x86.tar.gz">linux x86</a></li>
48
+ <li><a href="https://s3.amazonaws.com/mountebank/v<%= releaseMajorMinor %>/mountebank-v<%= releaseVersion %>-linux-x64.tar.gz">linux x64</a></li>
49
+ <li><a href="https://s3.amazonaws.com/mountebank/v<%= releaseMajorMinor %>/mountebank-v<%= releaseVersion %>-win-x86.zip">win x86<sup>*</sup></a></li>
50
+ <li><a href="https://s3.amazonaws.com/mountebank/v<%= releaseMajorMinor %>/mountebank-v<%= releaseVersion %>-win-x64.zip">win x64<sup>*</sup></a></li>
51
+ </ul>
52
+ </td>
53
+ <td>Simply unpack and run <code>mb</code> from inside</td>
54
+ </tr>
55
+ <tr>
56
+ <td>OS-specific packages</td>
57
+ <td>No</td>
58
+ <td>Yes</td>
59
+ <td>
60
+ <ul>
61
+ <li><a href="https://s3.amazonaws.com/mountebank/v<%= releaseMajorMinor %>/mountebank-v<%= releaseVersion %>.pkg">pkg</a></li>
62
+ <li><a href="https://s3.amazonaws.com/mountebank/v<%= releaseMajorMinor %>/mountebank-<%= releaseVersion %>-1.x86_64.rpm">rpm</a></li>
63
+ <li><a href="https://s3.amazonaws.com/mountebank/v<%= releaseMajorMinor %>/mountebank_<%= releaseVersion %>_amd64.deb">deb</a></li>
64
+ </ul>
65
+ </td>
66
+ <td>Puts <code>mb</code> at <code>/usr/local/bin</code>, which is generally in the <code>PATH</code>.</td>
67
+ </tr>
68
+ <tr>
69
+ <td>source tarball</td>
70
+ <td>Yes</td>
71
+ <td>No</td>
72
+ <td>
73
+ <ul>
74
+ <li><a href="https://s3.amazonaws.com/mountebank/v<%= releaseMajorMinor %>/mountebank-v<%= releaseVersion %>-npm.tar.gz">mb</a></li>
75
+ </ul>
76
+ </td>
77
+ <td>source tarball if you roll that way.</td>
78
+ </tr>
79
+ </table>
80
+
81
+ <h2 id='windows-path-limitations'>Windows path limitations</h2>
82
+
83
+ <p><sup>*</sup>mountebank wishes very much for your Windows experience to be hassle-free, but he is simply not qualified to address
84
+ a particular constraint of Windows Explorer. For legacy reasons, some Windows applications, including most notably Windows Explorer,
85
+ have a maximum number of characters allowed in a path of 260 characters. As mountebank writes these words, the longest path he
86
+ includes in the zip files is around 175 characters. The zip file name, which is likely to represent itself as <i>two</i>
87
+ nested directories if you use the defaults to unzip it, will be around 25 characters. That gives you very little wiggle room.
88
+ If you unzip the file in your users directory, you may very likely get an error because of this constraint.</p>
89
+
90
+ <p>The following solutions will all work:</p>
91
+
92
+ <ul class='bullet-list'>
93
+ <li>Unzip to the root of your C: drive (or a similar small path)</li>
94
+ <li>Use <a href='http://www.7-zip.org/'>7zip</a> to unzip the file instead of Windows Explorer</li>
95
+ <li>Use <code>npm</code> to install mountebank instead of the zip file</li>
96
+ </ul>
@@ -0,0 +1,121 @@
1
+ <h1>v<%= releaseVersion %></h1>
2
+
3
+ <p>v1.8 is the most important release of mountebank in a very long time. Thanks
4
+ to the many people who helped make it happen.</p>
5
+
6
+ <p class='info-icon'>Be sure to keep up with the latest releases by subscribing to the
7
+ <a href='http://www.mbtest.dev/feed'>ATOM feed</a>.</p>
8
+
9
+ <h2>New Features</h2>
10
+ <ul class='bullet-list'>
11
+ <li>Added a new <a href='http://<%= host %>/docs/api/behaviors'><code>shellTransform</code></a>
12
+ behavior that allows you to change the response through a shell application. This makes
13
+ mountebank infinitely extensible in any language of your choice</li>
14
+ <li>Added a new <a href='http://<%= host %>/docs/api/behaviors'><code>copy</code></a>
15
+ behavior that allows you to copy a value from the request to the response, using either
16
+ regular expressions, xpath, or jsonpath</li>
17
+ <li>Added a new <a href='http://<%= host %>/docs/security'>security page</a> documenting
18
+ security tips when using the <code>--allowInjection</code> command line flag, including
19
+ using a new <a href='http://<%= host %>/docs/commandLine'><code>--localOnly</code></a> flag
20
+ and a new <a href='http://<%= host %>/docs/commandLine'><code>--ipWhitelist</code></a> flag</li>
21
+ </ul>
22
+
23
+ <h2>Bug Fixes</h2>
24
+ <ul class='bullet-list'>
25
+ <li>Config files now allow <a href='https://github.com/mountebank-testing/mountebank/issues/183'>nested
26
+ <code>stringify</code> functions</a></li>
27
+ <li>Now possible to install mountebank behind a <a href='https://github.com/mountebank-testing/mountebank/issues/141'>
28
+ repository manager</a></li>
29
+ <li>Fixed <a href='https://github.com/mountebank-testing/mountebank/issues/176'>command line defaults</a>
30
+ when using a command</li>
31
+ <li>Fixed documentation explaining behavior of <a href='https://github.com/mountebank-testing/mountebank/issues/181'>
32
+ <code>mb stop</code> and <code>mb restart</code></a></li>
33
+ <li>Fixed problem running the build due to missing dependencies</li>
34
+ </ul>
35
+
36
+ <p>Many thanks to the following kind folks for help with this release, either through bug reports,
37
+ suggestions, or direct code contributions:</p>
38
+
39
+ <ul class='bullet-list'>
40
+ <li>Stephen Tkac and team, for the suggestion and initial implementation of the <code>copy</code> behavior</li>
41
+ <li><a href='http://paulhammant.com/'>Paul Hammant</a>, for initially pointing out some of the security
42
+ concerns with injection and suggesting the <code>--localOnly</code> flag</li>
43
+ <li>Israel Azcuna, for finding the bug around nested <code>stringify</code> functions</li>
44
+ <li><a href='https://github.com/markhu'>markhu</a>, for exposing the missing docs around
45
+ <code>mb stop</code> and <code>mb restart</code></li>
46
+ <li>francois-montmasson-efg, for both finding
47
+ the bug around installing mountebank behind a repository manager and for suggesting the solution</li>
48
+ <li>Nikolaus Piccolotto, for finding missing dependencies in package.json</li>
49
+ </ul>
50
+
51
+ <h2>Install</h2>
52
+
53
+ <pre><code>npm install -g mountebank@<%= releaseVersion %></code></pre>
54
+
55
+ <p>or:</p>
56
+
57
+ <table>
58
+ <tr>
59
+ <th>Option</th>
60
+ <th>node.js required?</th>
61
+ <th>sudo required?</th>
62
+ <th>links</th>
63
+ <th>Description</th>
64
+ </tr>
65
+ <tr>
66
+ <td>Self-contained archives</td>
67
+ <td>No</td>
68
+ <td>No</td>
69
+ <td style="min-width: 5em;">
70
+ <ul>
71
+ <li><a href="https://s3.amazonaws.com/mountebank/v<%= releaseMajorMinor %>/mountebank-v<%= releaseVersion %>-darwin-x64.tar.gz">osx</a></li>
72
+ <li><a href="https://s3.amazonaws.com/mountebank/v<%= releaseMajorMinor %>/mountebank-v<%= releaseVersion %>-linux-x86.tar.gz">linux x86</a></li>
73
+ <li><a href="https://s3.amazonaws.com/mountebank/v<%= releaseMajorMinor %>/mountebank-v<%= releaseVersion %>-linux-x64.tar.gz">linux x64</a></li>
74
+ <li><a href="https://s3.amazonaws.com/mountebank/v<%= releaseMajorMinor %>/mountebank-v<%= releaseVersion %>-win-x86.zip">win x86<sup>*</sup></a></li>
75
+ <li><a href="https://s3.amazonaws.com/mountebank/v<%= releaseMajorMinor %>/mountebank-v<%= releaseVersion %>-win-x64.zip">win x64<sup>*</sup></a></li>
76
+ </ul>
77
+ </td>
78
+ <td>Simply unpack and run <code>mb</code> from inside</td>
79
+ </tr>
80
+ <tr>
81
+ <td>OS-specific packages</td>
82
+ <td>No</td>
83
+ <td>Yes</td>
84
+ <td>
85
+ <ul>
86
+ <li><a href="https://s3.amazonaws.com/mountebank/v<%= releaseMajorMinor %>/mountebank-v<%= releaseVersion %>.pkg">pkg</a></li>
87
+ <li><a href="https://s3.amazonaws.com/mountebank/v<%= releaseMajorMinor %>/mountebank-<%= releaseVersion %>-1.x86_64.rpm">rpm</a></li>
88
+ <li><a href="https://s3.amazonaws.com/mountebank/v<%= releaseMajorMinor %>/mountebank_<%= releaseVersion %>_amd64.deb">deb</a></li>
89
+ </ul>
90
+ </td>
91
+ <td>Puts <code>mb</code> at <code>/usr/local/bin</code>, which is generally in the <code>PATH</code>.</td>
92
+ </tr>
93
+ <tr>
94
+ <td>source tarball</td>
95
+ <td>Yes</td>
96
+ <td>No</td>
97
+ <td>
98
+ <ul>
99
+ <li><a href="https://s3.amazonaws.com/mountebank/v<%= releaseMajorMinor %>/mountebank-v<%= releaseVersion %>-npm.tar.gz">mb</a></li>
100
+ </ul>
101
+ </td>
102
+ <td>source tarball if you roll that way.</td>
103
+ </tr>
104
+ </table>
105
+
106
+ <h2 id='windows-path-limitations'>Windows path limitations</h2>
107
+
108
+ <p><sup>*</sup>mountebank wishes very much for your Windows experience to be hassle-free, but he is simply not qualified to address
109
+ a particular constraint of Windows Explorer. For legacy reasons, some Windows applications, including most notably Windows Explorer,
110
+ have a maximum number of characters allowed in a path of 260 characters. As mountebank writes these words, the longest path he
111
+ includes in the zip files is around 175 characters. The zip file name, which is likely to represent itself as <i>two</i>
112
+ nested directories if you use the defaults to unzip it, will be around 25 characters. That gives you very little wiggle room.
113
+ If you unzip the file in your users directory, you may very likely get an error because of this constraint.</p>
114
+
115
+ <p>The following solutions will all work:</p>
116
+
117
+ <ul class='bullet-list'>
118
+ <li>Unzip to the root of your C: drive (or a similar small path)</li>
119
+ <li>Use <a href='http://www.7-zip.org/'>7zip</a> to unzip the file instead of Windows Explorer</li>
120
+ <li>Use <code>npm</code> to install mountebank instead of the zip file</li>
121
+ </ul>
@@ -0,0 +1,111 @@
1
+ <h1>v<%= releaseVersion %></h1>
2
+
3
+ <p>v1.9 adds some really nice features and fixes important bugs. Thanks for all the help
4
+ getting it across the line.</p>
5
+
6
+ <p class='info-icon'>Be sure to keep up with the latest releases by subscribing to the
7
+ <a href='http://www.mbtest.dev/feed'>ATOM feed</a>.</p>
8
+
9
+ <h2>New Features</h2>
10
+ <ul class='bullet-list'>
11
+ <li>Added a new <a href='http://<%= host %>/docs/api/behaviors'><code>lookup</code></a>
12
+ behavior that allows you to add data in the response that comes from an external data source.
13
+ Initially, a CSV file is the only data source supported.</li>
14
+ <li>Added an ability to add a decorator to the newly created response saved through
15
+ a <a href='http://<%= host %>/docs/api/proxies'><code>proxy</code></a> response type with
16
+ the <code>addDecorate</code> field.</li>
17
+ <li>Support for stateful predicate injections based on response injections changing state.
18
+ An <code>imposterState</code> parameter has been added to each injection function.</li>
19
+ <li>A few new FAQs based on common queries around npm shrinkwrap, CORS pre-flight requests,
20
+ and preventing proxies from compressing data.</li>
21
+ </ul>
22
+
23
+ <h2>Bug Fixes</h2>
24
+ <ul class='bullet-list'>
25
+ <li>The default self-signed certificate for https imposters is no longer expired</li>
26
+ <li>Fixed content-length issues with binary data coming from proxied results</li>
27
+ <li>Fixed a bug preventing you from seeing the _links field in your imposter body when
28
+ getting the imposter state through the API</li>
29
+ </ul>
30
+
31
+ <p>Many thanks to the following kind folks for help with this release, either through bug reports,
32
+ suggestions, or direct code contributions:</p>
33
+
34
+ <ul class='bullet-list'>
35
+ <li>Stephen Tkac and team, for the suggestion and initial implementation of the <code>lookup</code> behavior</li>
36
+ <li>Kevin Pouget for adding support to decorate saved responses from proxies</li>
37
+ <li>Gabriel Kohen for adding support for stateful injections to use in predicates</li>
38
+ <li>Adam Kalman for helping </li>
39
+ </ul>
40
+
41
+ <h2>Install</h2>
42
+
43
+ <pre><code>npm install -g mountebank@<%= releaseVersion %></code></pre>
44
+
45
+ <p>or:</p>
46
+
47
+ <table>
48
+ <tr>
49
+ <th>Option</th>
50
+ <th>node.js required?</th>
51
+ <th>sudo required?</th>
52
+ <th>links</th>
53
+ <th>Description</th>
54
+ </tr>
55
+ <tr>
56
+ <td>Self-contained archives</td>
57
+ <td>No</td>
58
+ <td>No</td>
59
+ <td style="min-width: 5em;">
60
+ <ul>
61
+ <li><a href="https://s3.amazonaws.com/mountebank/v<%= releaseMajorMinor %>/mountebank-v<%= releaseVersion %>-darwin-x64.tar.gz">osx</a></li>
62
+ <li><a href="https://s3.amazonaws.com/mountebank/v<%= releaseMajorMinor %>/mountebank-v<%= releaseVersion %>-linux-x86.tar.gz">linux x86</a></li>
63
+ <li><a href="https://s3.amazonaws.com/mountebank/v<%= releaseMajorMinor %>/mountebank-v<%= releaseVersion %>-linux-x64.tar.gz">linux x64</a></li>
64
+ <li><a href="https://s3.amazonaws.com/mountebank/v<%= releaseMajorMinor %>/mountebank-v<%= releaseVersion %>-win-x86.zip">win x86<sup>*</sup></a></li>
65
+ <li><a href="https://s3.amazonaws.com/mountebank/v<%= releaseMajorMinor %>/mountebank-v<%= releaseVersion %>-win-x64.zip">win x64<sup>*</sup></a></li>
66
+ </ul>
67
+ </td>
68
+ <td>Simply unpack and run <code>mb</code> from inside</td>
69
+ </tr>
70
+ <tr>
71
+ <td>OS-specific packages</td>
72
+ <td>No</td>
73
+ <td>Yes</td>
74
+ <td>
75
+ <ul>
76
+ <li><a href="https://s3.amazonaws.com/mountebank/v<%= releaseMajorMinor %>/mountebank-v<%= releaseVersion %>.pkg">pkg</a></li>
77
+ <li><a href="https://s3.amazonaws.com/mountebank/v<%= releaseMajorMinor %>/mountebank-<%= releaseVersion %>-1.x86_64.rpm">rpm</a></li>
78
+ <li><a href="https://s3.amazonaws.com/mountebank/v<%= releaseMajorMinor %>/mountebank_<%= releaseVersion %>_amd64.deb">deb</a></li>
79
+ </ul>
80
+ </td>
81
+ <td>Puts <code>mb</code> at <code>/usr/local/bin</code>, which is generally in the <code>PATH</code>.</td>
82
+ </tr>
83
+ <tr>
84
+ <td>source tarball</td>
85
+ <td>Yes</td>
86
+ <td>No</td>
87
+ <td>
88
+ <ul>
89
+ <li><a href="https://s3.amazonaws.com/mountebank/v<%= releaseMajorMinor %>/mountebank-v<%= releaseVersion %>-npm.tar.gz">mb</a></li>
90
+ </ul>
91
+ </td>
92
+ <td>source tarball if you roll that way.</td>
93
+ </tr>
94
+ </table>
95
+
96
+ <h2 id='windows-path-limitations'>Windows path limitations</h2>
97
+
98
+ <p><sup>*</sup>mountebank wishes very much for your Windows experience to be hassle-free, but he is simply not qualified to address
99
+ a particular constraint of Windows Explorer. For legacy reasons, some Windows applications, including most notably Windows Explorer,
100
+ have a maximum number of characters allowed in a path of 260 characters. As mountebank writes these words, the longest path he
101
+ includes in the zip files is around 175 characters. The zip file name, which is likely to represent itself as <i>two</i>
102
+ nested directories if you use the defaults to unzip it, will be around 25 characters. That gives you very little wiggle room.
103
+ If you unzip the file in your users directory, you may very likely get an error because of this constraint.</p>
104
+
105
+ <p>The following solutions will all work:</p>
106
+
107
+ <ul class='bullet-list'>
108
+ <li>Unzip to the root of your C: drive (or a similar small path)</li>
109
+ <li>Use <a href='http://www.7-zip.org/'>7zip</a> to unzip the file instead of Windows Explorer</li>
110
+ <li>Use <code>npm</code> to install mountebank instead of the zip file</li>
111
+ </ul>
@@ -0,0 +1,159 @@
1
+ <h1>v<%= releaseVersion %></h1>
2
+
3
+ <p><em>I'm sorry. Did you say <strong>v2</strong>?</em></p>
4
+
5
+ <h2>Yes. v2! (It's been five years, after all)</h2>
6
+
7
+ <p><em>Oh dear. How much time is it going to take me to "upgrade" my code?</em></p>
8
+
9
+ <h2>None. v2 is 100% backwards compatible with v1</h2>
10
+
11
+ <p><em>Wait, what? Then why did you bump the major version?</em></p>
12
+
13
+ <h2>Because v2 is Yuge!</h2>
14
+
15
+ <p>This release opens all kinds of exciting doors.</p>
16
+
17
+ <p>See below for details, but there are three major reasons to upgrade.</p>
18
+
19
+ <ul class='bullet-list'>
20
+ <li>You can now create custom protocol implementations in any language of your choice.</li>
21
+ <li>The injection interface changed <em style='font-size: smaller'>(don't worry, you can
22
+ still use the old interface if you like. I'm not rude, after all).</em></li>
23
+ <li>I fixed an embarrassing security flaw in all v1 versions using
24
+ <code>--localOnly</code> and <code>--ipWhitelist</code> CLI flags.</li>
25
+ </ul>
26
+
27
+ <p class='info-icon'>Be sure to keep up with the latest releases by subscribing to the
28
+ <a href='http://www.mbtest.dev/feed'>ATOM feed</a>.</p>
29
+
30
+ <h2>New Features</h2>
31
+ <ul class='bullet-list'>
32
+ <li>The biggest change is how protocol implementations work. In all v1 versions, they worked, but
33
+ adding a new one was difficult because of some unfortunate early design decisions. Those decisions
34
+ have been painstakingly reversed. You can now add a
35
+ <a href='//<%= host %>/docs/protocols/custom'>custom protocol</a> in any language with a very
36
+ simply API to talk back to the mountebank server. The protocol implementation will show in the logs
37
+ no differently than a built-in protocol implementation like <code>http</code>, but will be out
38
+ of process to mountebank itself. You tell mountebnak about your custom implementation with the
39
+ new <a href='//<%= host %>/docs/commandLine'><code>--protofile</code></a> command line flag.
40
+
41
+ This is Yuge!
42
+ </li>
43
+ <li>Over time, the <a href='//<%= host %>/docs/api/injection'>injection functions</a> took on new parameters.
44
+ This was unfortunate because it became
45
+ difficult to remember the order of the parameters and because there were actually two different types
46
+ of <code>state</code> parameters passed into the response injection function (I never documented one. The
47
+ documented one did not share state with predicates; the undocumented one did). While you can continue
48
+ to use the old interface, the new interface is much cleaner, accepting a single JSON parameter that
49
+ contains all relevant information. That interface now cleanly shares state between predicate and response
50
+ injection and allows for much easier evolution of injection functions (including adding async capability
51
+ to predicate injection and <a href='//<%= host %>/docs/api/behaviors#behavior-decorate'>decorate behaviors</a>).</li>
52
+
53
+ </ul>
54
+
55
+ <h2>Bug Fixes</h2>
56
+ <ul class='bullet-list'>
57
+ <li>Injection is useful but <a href='//<%= host %>/docs/security'>dangerous</a>, and you should ALWAYS take steps
58
+ to secure yourself from attackers using an injection-enabled mountebank. The easiest way to do that is with
59
+ the <a href='//<%= host %>/docs/commandLine'><code>--localOnly</code></a> CLI flag, which limits all connections
60
+ to the loopback interface (e.g., localhost). You should ALWAYS do that when running mountebank directly on your
61
+ developer machine, and use the <code>--ipWhitelist</code> flag in other scenarios.
62
+
63
+ Unfortunately, neither of these flags worked in v1. I'm sorry. That's an embarrassing security vulnerability.
64
+ They are both verified by a series of automated tests now, and verified to work with both the mountebank server itself
65
+ and all imposter sockets.
66
+ </li>
67
+ <li>The result from <code>GET /imposters/:port?replayable=true</code> now returns the value of
68
+ <code>recordRequests</code>.</li>
69
+ <li>Setting the <code>--mock</code> CLI flag no longer changes the imposter-level value of <code>recordRequests</code></li>
70
+ <li>The <code>--host</code> command line flag wasn't being reflected in the logs or mountebank URLs, and it
71
+ wasn't applying to imposters.</li>
72
+ <li>The <a href='//<%= host %>/docs/protocols/tcp'>tcp protocol page</a> took way too long to load due to page weight
73
+ (there is an embedded test on the page that required the page weight). That has been fixed.</li>
74
+ <li>The TCP proxy now respects the <a href='//<%= host %>/docs/protocols/tcp'><code>endOfRequestResolver</code></a></li>
75
+ <li>HTTP/S servers no longer time out if a <code>wait</code> behavior was set to more than about 2 minutes</li>
76
+ <li>JSON bodies with <code>nulls</code> now work with <code>copy</code> behaviors</li>
77
+ <li>SMTP now works with an empty <code>text</code> field</li>
78
+ </ul>
79
+
80
+ <h2>Contributors</h2>
81
+ <p>Many thanks to the following kind folks for help with this release, either through bug reports,
82
+ suggestions, or direct code contributions:</p>
83
+
84
+ <ul class='bullet-list'>
85
+ <li>Aleksandar "Bearclaw" Serifimoski</li>
86
+ <li>Santiago Vasquez</li>
87
+ </ul>
88
+
89
+ <h2>Install</h2>
90
+
91
+ <pre><code>npm install -g mountebank@<%= releaseVersion %></code></pre>
92
+
93
+ <p>or:</p>
94
+
95
+ <table>
96
+ <tr>
97
+ <th>Option</th>
98
+ <th>node.js required?</th>
99
+ <th>sudo required?</th>
100
+ <th>links</th>
101
+ <th>Description</th>
102
+ </tr>
103
+ <tr>
104
+ <td>Self-contained archives</td>
105
+ <td>No</td>
106
+ <td>No</td>
107
+ <td style="min-width: 5em;">
108
+ <ul>
109
+ <li><a href="https://s3.amazonaws.com/mountebank/v<%= releaseMajorMinor %>/mountebank-v<%= releaseVersion %>-darwin-x64.tar.gz">osx</a></li>
110
+ <li><a href="https://s3.amazonaws.com/mountebank/v<%= releaseMajorMinor %>/mountebank-v<%= releaseVersion %>-linux-x86.tar.gz">linux x86</a></li>
111
+ <li><a href="https://s3.amazonaws.com/mountebank/v<%= releaseMajorMinor %>/mountebank-v<%= releaseVersion %>-linux-x64.tar.gz">linux x64</a></li>
112
+ <li><a href="https://s3.amazonaws.com/mountebank/v<%= releaseMajorMinor %>/mountebank-v<%= releaseVersion %>-win-x86.zip">win x86<sup>*</sup></a></li>
113
+ <li><a href="https://s3.amazonaws.com/mountebank/v<%= releaseMajorMinor %>/mountebank-v<%= releaseVersion %>-win-x64.zip">win x64<sup>*</sup></a></li>
114
+ </ul>
115
+ </td>
116
+ <td>Simply unpack and run <code>mb</code> from inside</td>
117
+ </tr>
118
+ <tr>
119
+ <td>OS-specific packages</td>
120
+ <td>No</td>
121
+ <td>Yes</td>
122
+ <td>
123
+ <ul>
124
+ <li><a href="https://s3.amazonaws.com/mountebank/v<%= releaseMajorMinor %>/mountebank-v<%= releaseVersion %>.pkg">pkg</a></li>
125
+ <li><a href="https://s3.amazonaws.com/mountebank/v<%= releaseMajorMinor %>/mountebank-<%= releaseVersion %>-1.x86_64.rpm">rpm</a></li>
126
+ <li><a href="https://s3.amazonaws.com/mountebank/v<%= releaseMajorMinor %>/mountebank_<%= releaseVersion %>_amd64.deb">deb</a></li>
127
+ </ul>
128
+ </td>
129
+ <td>Puts <code>mb</code> at <code>/usr/local/bin</code>, which is generally in the <code>PATH</code>.</td>
130
+ </tr>
131
+ <tr>
132
+ <td>source tarball</td>
133
+ <td>Yes</td>
134
+ <td>No</td>
135
+ <td>
136
+ <ul>
137
+ <li><a href="https://s3.amazonaws.com/mountebank/v<%= releaseMajorMinor %>/mountebank-v<%= releaseVersion %>-npm.tar.gz">mb</a></li>
138
+ </ul>
139
+ </td>
140
+ <td>source tarball if you roll that way.</td>
141
+ </tr>
142
+ </table>
143
+
144
+ <h2 id='windows-path-limitations'>Windows path limitations</h2>
145
+
146
+ <p><sup>*</sup>mountebank wishes very much for your Windows experience to be hassle-free, but he is simply not qualified to address
147
+ a particular constraint of Windows Explorer. For legacy reasons, some Windows applications, including most notably Windows Explorer,
148
+ have a maximum number of characters allowed in a path of 260 characters. As mountebank writes these words, the longest path he
149
+ includes in the zip files is around 175 characters. The zip file name, which is likely to represent itself as <i>two</i>
150
+ nested directories if you use the defaults to unzip it, will be around 25 characters. That gives you very little wiggle room.
151
+ If you unzip the file in your users directory, you may very likely get an error because of this constraint.</p>
152
+
153
+ <p>The following solutions will all work:</p>
154
+
155
+ <ul class='bullet-list'>
156
+ <li>Unzip to the root of your C: drive (or a similar small path)</li>
157
+ <li>Use <a href='http://www.7-zip.org/'>7zip</a> to unzip the file instead of Windows Explorer</li>
158
+ <li>Use <code>npm</code> to install mountebank instead of the zip file</li>
159
+ </ul>
@@ -0,0 +1,121 @@
1
+ <h1>v<%= releaseVersion %></h1>
2
+
3
+ <p class='info-icon'>Be sure to keep up with the latest releases by subscribing to the
4
+ <a href='http://www.mbtest.dev/feed'>ATOM feed</a>.</p>
5
+
6
+ <h2>New Features</h2>
7
+ <ul class='bullet-list'>
8
+ <li>Support mutating stubs without restarting the imposter. See the
9
+ <a href='//<%= host %>/docs/api/overview'>API overview page</a> for details on the new
10
+ API calls.</li>
11
+ <li>Support using <a href='//<%= host %>/docs/api/proxies#proxy-predicate-generators'>injection to generate predicates</a>
12
+ during proxying.</li>
13
+ <li>Support adding a passphrase when proxying to HTTPS servers.
14
+ See the <a href='//<%= host %>/docs/api/contracts?type=imposter'><code>passphrase</code></a> field
15
+ in the updated contract</li>
16
+ <li>Support selecting the TLS protocol to use for legacy integrations when proxying to HTTPS servers.
17
+ See the <a href='//<%= host %>/docs/api/contracts?type=imposter'><code>secureProtocol</code></a> field
18
+ in the updated contract</li>
19
+ </ul>
20
+
21
+ <h2>Bug Fixes</h2>
22
+ <ul class='bullet-list'>
23
+ <li>Inner quotes were not correctly escaped on <code>shellTransform</code> behaviors. Passing the request
24
+ and response JSON on the command line proved to be difficult in a cross-platform way. The interface now
25
+ passes environment variables instead. The old interface is maintained for backwards compatibility, but only
26
+ the environment variables guarantee correct quoting. See the
27
+ <a href='//<%= host %>/docs/api/behaviors#behavior-shellTransform'>updated docs</a>.</li>
28
+ <li>Fix improper mangling on binary HTTP request bodies.</li>
29
+ <li>No longer rewrites empty query params without a value during proxying (previously,
30
+ https://server.example.com/service?WSDL was rewritten to https://server.example.com/service?WSDL=)</li>
31
+ <li>Removed a dependency with a restrictive EUPL license (changed mailparser to mailparser2 for a more
32
+ permissive license)</li>
33
+ <li>Fix parsing application/x-www-form-urlencoded request body when its content-type header name is in lowercase</li>
34
+ <li>Preventing "except" parameter from modifying "matches" predicate pattern</li>
35
+ </ul>
36
+
37
+ <h2>Contributors</h2>
38
+ <p>Many thanks to the following kind folks for help with this release, either through bug reports,
39
+ suggestions, or direct code contributions:</p>
40
+
41
+ <ul class='bullet-list'>
42
+ <li>Connor Worley</li>
43
+ <li>Pavel Yaschenko</li>
44
+ <li>Colin Schoen</li>
45
+ <li>O</li>
46
+ <li>Authapon Kongkaew</li>
47
+ <li>Colin Newell</li>
48
+ <li>Scott Bloch-Wehba-Seaward</li>
49
+ </ul>
50
+
51
+ <h2>Install</h2>
52
+
53
+ <pre><code>npm install -g mountebank@<%= releaseVersion %></code></pre>
54
+
55
+ <p>or:</p>
56
+
57
+ <table>
58
+ <tr>
59
+ <th>Option</th>
60
+ <th>node.js required?</th>
61
+ <th>sudo required?</th>
62
+ <th>links</th>
63
+ <th>Description</th>
64
+ </tr>
65
+ <tr>
66
+ <td>Self-contained archives</td>
67
+ <td>No</td>
68
+ <td>No</td>
69
+ <td style="min-width: 5em;">
70
+ <ul>
71
+ <li><a href="https://s3.amazonaws.com/mountebank/v<%= releaseMajorMinor %>/mountebank-v<%= releaseVersion %>-darwin-x64.tar.gz">osx</a></li>
72
+ <li><a href="https://s3.amazonaws.com/mountebank/v<%= releaseMajorMinor %>/mountebank-v<%= releaseVersion %>-linux-x86.tar.gz">linux x86</a></li>
73
+ <li><a href="https://s3.amazonaws.com/mountebank/v<%= releaseMajorMinor %>/mountebank-v<%= releaseVersion %>-linux-x64.tar.gz">linux x64</a></li>
74
+ <li><a href="https://s3.amazonaws.com/mountebank/v<%= releaseMajorMinor %>/mountebank-v<%= releaseVersion %>-win-x86.zip">win x86<sup>*</sup></a></li>
75
+ <li><a href="https://s3.amazonaws.com/mountebank/v<%= releaseMajorMinor %>/mountebank-v<%= releaseVersion %>-win-x64.zip">win x64<sup>*</sup></a></li>
76
+ </ul>
77
+ </td>
78
+ <td>Simply unpack and run <code>mb</code> from inside</td>
79
+ </tr>
80
+ <tr>
81
+ <td>OS-specific packages</td>
82
+ <td>No</td>
83
+ <td>Yes</td>
84
+ <td>
85
+ <ul>
86
+ <li><a href="https://s3.amazonaws.com/mountebank/v<%= releaseMajorMinor %>/mountebank-v<%= releaseVersion %>.pkg">pkg</a></li>
87
+ <li><a href="https://s3.amazonaws.com/mountebank/v<%= releaseMajorMinor %>/mountebank-<%= releaseVersion %>-1.x86_64.rpm">rpm</a></li>
88
+ <li><a href="https://s3.amazonaws.com/mountebank/v<%= releaseMajorMinor %>/mountebank_<%= releaseVersion %>_amd64.deb">deb</a></li>
89
+ </ul>
90
+ </td>
91
+ <td>Puts <code>mb</code> at <code>/usr/local/bin</code>, which is generally in the <code>PATH</code>.</td>
92
+ </tr>
93
+ <tr>
94
+ <td>source tarball</td>
95
+ <td>Yes</td>
96
+ <td>No</td>
97
+ <td>
98
+ <ul>
99
+ <li><a href="https://s3.amazonaws.com/mountebank/v<%= releaseMajorMinor %>/mountebank-v<%= releaseVersion %>-npm.tar.gz">mb</a></li>
100
+ </ul>
101
+ </td>
102
+ <td>source tarball if you roll that way.</td>
103
+ </tr>
104
+ </table>
105
+
106
+ <h2 id='windows-path-limitations'>Windows path limitations</h2>
107
+
108
+ <p><sup>*</sup>mountebank wishes very much for your Windows experience to be hassle-free, but he is simply not qualified to address
109
+ a particular constraint of Windows Explorer. For legacy reasons, some Windows applications, including most notably Windows Explorer,
110
+ have a maximum number of characters allowed in a path of 260 characters. As mountebank writes these words, the longest path he
111
+ includes in the zip files is around 175 characters. The zip file name, which is likely to represent itself as <i>two</i>
112
+ nested directories if you use the defaults to unzip it, will be around 25 characters. That gives you very little wiggle room.
113
+ If you unzip the file in your users directory, you may very likely get an error because of this constraint.</p>
114
+
115
+ <p>The following solutions will all work:</p>
116
+
117
+ <ul class='bullet-list'>
118
+ <li>Unzip to the root of your C: drive (or a similar small path)</li>
119
+ <li>Use <a href='http://www.7-zip.org/'>7zip</a> to unzip the file instead of Windows Explorer</li>
120
+ <li>Use <code>npm</code> to install mountebank instead of the zip file</li>
121
+ </ul>