@jaredwray/mockhttp 2.1.0 → 3.0.1

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.
@@ -35,7 +35,7 @@
35
35
  </script>
36
36
  <title>MockHTTP - HTTPS and HTTP/2</title>
37
37
  <script type="application/ld+json">
38
- {"@context":"https://schema.org","@type":"TechArticle","headline":"HTTPS and HTTP/2","description":"","url":"https://mockhttp.org/docs/https/","publisher":{"@type":"Organization","name":"MockHTTP"},"dateModified":"2026-10-03","keywords":[]}
38
+ {"@context":"https://schema.org","@type":"TechArticle","headline":"HTTPS and HTTP/2","description":"","url":"https://mockhttp.org/docs/https/","publisher":{"@type":"Organization","name":"MockHTTP"},"dateModified":"2026-10-28","keywords":[]}
39
39
  </script>
40
40
  </head>
41
41
 
@@ -531,7 +531,7 @@
531
531
  <a href="https://docula.org/" target="_blank" rel="noopener noreferrer" class="footer__link" aria-label="Docula">
532
532
  <svg class="footer__bat" xmlns="http://www.w3.org/2000/svg" viewBox="70 110 360 205" fill="currentColor"><path d="M420,173c-16.76-18-72.78-36.65-131.59-30.58A160.15,160.15,0,0,0,269,120.55c-3.78,4.52-11.15,9.45-19,9.45s-15.23-4.93-19-9.45a160.15,160.15,0,0,0-19.4,21.83C152.78,136.31,96.76,154.94,80,173c48.86,5.86,79.5,34.09,79.5,72.06,52.37,0,77,28,90.5,59.94C263.54,273,288.13,245,340.5,245,340.5,207,371.14,178.8,420,173Z"/><circle cx="239.19" cy="145.36" r="3.32" fill="#fff"/><circle cx="260.81" cy="145.36" r="3.32" fill="#fff"/></svg>
533
533
  </a>
534
- <span class="footer__updated">updated: 2026-10-03</span>
534
+ <span class="footer__updated">updated: 2026-10-28</span>
535
535
  </footer>
536
536
  <script src="/css/highlight/highlight.min.js"></script>
537
537
  <script>
@@ -35,7 +35,7 @@
35
35
  </script>
36
36
  <title>MockHTTP - Getting Started</title>
37
37
  <script type="application/ld+json">
38
- {"@context":"https://schema.org","@type":"TechArticle","headline":"Getting Started","description":"","url":"https://mockhttp.org/docs/","publisher":{"@type":"Organization","name":"MockHTTP"},"dateModified":"2026-10-03","keywords":[]}
38
+ {"@context":"https://schema.org","@type":"TechArticle","headline":"Getting Started","description":"","url":"https://mockhttp.org/docs/","publisher":{"@type":"Organization","name":"MockHTTP"},"dateModified":"2026-10-28","keywords":[]}
39
39
  </script>
40
40
  </head>
41
41
 
@@ -375,7 +375,7 @@
375
375
  <a href="https://docula.org/" target="_blank" rel="noopener noreferrer" class="footer__link" aria-label="Docula">
376
376
  <svg class="footer__bat" xmlns="http://www.w3.org/2000/svg" viewBox="70 110 360 205" fill="currentColor"><path d="M420,173c-16.76-18-72.78-36.65-131.59-30.58A160.15,160.15,0,0,0,269,120.55c-3.78,4.52-11.15,9.45-19,9.45s-15.23-4.93-19-9.45a160.15,160.15,0,0,0-19.4,21.83C152.78,136.31,96.76,154.94,80,173c48.86,5.86,79.5,34.09,79.5,72.06,52.37,0,77,28,90.5,59.94C263.54,273,288.13,245,340.5,245,340.5,207,371.14,178.8,420,173Z"/><circle cx="239.19" cy="145.36" r="3.32" fill="#fff"/><circle cx="260.81" cy="145.36" r="3.32" fill="#fff"/></svg>
377
377
  </a>
378
- <span class="footer__updated">updated: 2026-10-03</span>
378
+ <span class="footer__updated">updated: 2026-10-28</span>
379
379
  </footer>
380
380
  <script src="/css/highlight/highlight.min.js"></script>
381
381
  <script>
@@ -35,7 +35,7 @@
35
35
  </script>
36
36
  <title>MockHTTP - Library API</title>
37
37
  <script type="application/ld+json">
38
- {"@context":"https://schema.org","@type":"TechArticle","headline":"Library API","description":"","url":"https://mockhttp.org/docs/library/","publisher":{"@type":"Organization","name":"MockHTTP"},"dateModified":"2026-10-03","keywords":[]}
38
+ {"@context":"https://schema.org","@type":"TechArticle","headline":"Library API","description":"","url":"https://mockhttp.org/docs/library/","publisher":{"@type":"Organization","name":"MockHTTP"},"dateModified":"2026-10-28","keywords":[]}
39
39
  </script>
40
40
  </head>
41
41
 
@@ -333,7 +333,6 @@
333
333
  <li><a href="#binsgetrequestbinid-reqid"><code>bins.getRequest(binId, reqId)</code></a></li>
334
334
  <li><a href="#binsclearrequestsbinid"><code>bins.clearRequests(binId)</code></a></li>
335
335
  <li><a href="#binsrecordrequestbinid-raw"><code>bins.recordRequest(binId, raw)</code></a></li>
336
- <li><a href="#binsstart--binsstop"><code>bins.start()</code> / <code>bins.stop()</code></a></li>
337
336
  <li><a href="#binsmaxbodysize--binsmaxrequestsperbin--binsdefaultttlms"><code>bins.maxBodySize</code> / <code>bins.maxRequestsPerBin</code> / <code>bins.defaultTtlMs</code></a></li>
338
337
  </ul>
339
338
  </li>
@@ -368,7 +367,6 @@
368
367
  <li><code>logging?</code>: boolean - Enable logging (default: true)</li>
369
368
  <li><code>staticFiles?</code>: boolean - Serve files from the package <code>public/</code> directory (default: true)</li>
370
369
  <li><code>pluginTimeout?</code>: number - Fastify plugin boot timeout in milliseconds; <code>0</code> disables it (default: Fastify's timeout)</li>
371
- <li><code>startBins?</code>: boolean - Start the request-bin cleanup timer during <code>initialize()</code> (default: true)</li>
372
370
  <li><code>httpBin?</code>: HttpBinOptions - Configure which httpbin routes to enable
373
371
  <ul>
374
372
  <li><code>httpMethods?</code>: boolean - Enable HTTP method routes (default: true)</li>
@@ -402,7 +400,6 @@
402
400
  <li><code>logging</code>: boolean - Get/set logging enabled state</li>
403
401
  <li><code>staticFiles</code>: boolean - Get/set whether files from <code>public/</code> are served</li>
404
402
  <li><code>pluginTimeout</code>: number | undefined - Get/set Fastify plugin boot timeout</li>
405
- <li><code>startBins</code>: boolean - Get/set whether bin cleanup starts during <code>initialize()</code></li>
406
403
  <li><code>rateLimit</code>: RateLimitPluginOptions | undefined - Get/set rate limiting options</li>
407
404
  <li><code>httpBin</code>: HttpBinOptions - Get/set httpbin route options</li>
408
405
  <li><code>https</code>: HttpsOptions | undefined - Get/set HTTPS configuration</li>
@@ -411,7 +408,7 @@
411
408
  <li><code>http1</code>: boolean - Get/set HTTP/1.1 fallback for HTTP/2 with HTTPS</li>
412
409
  <li><code>server</code>: FastifyInstance - Get/set the Fastify server instance</li>
413
410
  <li><code>taps</code>: TapManager - Get/set the TapManager instance</li>
414
- <li><code>bins</code>: BinManager - Get/set the BinManager instance for request bins</li>
411
+ <li><code>bins</code>: MockHttpBins - Get or set the request bins</li>
415
412
  </ul>
416
413
  <h3 id="methods">Methods</h3>
417
414
  <h4 id="async-initialize"><code>async initialize()</code></h4>
@@ -450,34 +447,33 @@
450
447
  <h4 id="async-registerimageroutesfastifyinstance"><code>async registerImageRoutes(fastifyInstance?)</code></h4>
451
448
  <p>Register image routes (jpeg, png, svg, webp) with content negotiation support.</p>
452
449
  <h4 id="async-registerbinroutesfastifyinstance"><code>async registerBinRoutes(fastifyInstance?)</code></h4>
453
- <p>Register the request bin routes — management at <code>/bins</code> and capture at <code>/b/:id</code>.</p>
450
+ <p>Register the request bin routes. Management is at <code>/bins</code> and capture is at <code>/b/:id</code>. <code>GET /healthz</code> reports whether bin storage is reachable.</p>
454
451
  <h2 id="bins-request-capture">Bins (Request Capture)</h2>
455
- <p>Access the BinManager via <code>mockHttp.bins</code> to manage request bins programmatically. See <a href="#request-bins">Request Bins</a> for usage examples.</p>
452
+ <p>Use <code>mockHttp.bins</code> to control request bins. See <a href="#request-bins">Request Bins</a> for usage examples.</p>
456
453
  <h3 id="binscreatebin"><code>bins.createBin()</code></h3>
457
- <p>Create a new bin with the configured TTL.</p>
458
- <p><strong>Returns:</strong> <code>Bin</code> — <code>{ id, createdAt, expiresAt, requestCount }</code></p>
454
+ <p>Create a new bin with the configured TTL. Throws when Keyv does not store the bin.</p>
455
+ <p><strong>Returns:</strong> <code>Promise&#x3C;Bin></code> — <code>{ id, createdAt, expiresAt, requestCount }</code></p>
459
456
  <h3 id="binsgetbinid"><code>bins.getBin(id)</code></h3>
460
- <p>Look up a bin by id. Returns <code>undefined</code> if the bin does not exist or has expired (and lazily removes the expired entry).</p>
461
- <p><strong>Returns:</strong> <code>Bin | undefined</code></p>
457
+ <p>Look up a bin by id. Returns <code>undefined</code> if the bin does not exist or Keyv has expired it. When the Keyv instance has an <code>error</code> listener, a failed read also returns <code>undefined</code>.</p>
458
+ <p><strong>Returns:</strong> <code>Promise&#x3C;Bin | undefined></code></p>
462
459
  <h3 id="binslistbins"><code>bins.listBins()</code></h3>
463
- <p>List all non-expired bins.</p>
464
- <p><strong>Returns:</strong> <code>Bin[]</code></p>
460
+ <p>List the bins that Keyv still holds.</p>
461
+ <p><strong>Returns:</strong> <code>Promise&#x3C;Bin[]></code></p>
465
462
  <h3 id="binsdeletebinid"><code>bins.deleteBin(id)</code></h3>
466
- <p>Delete a bin and all its captured requests.</p>
467
- <p><strong>Returns:</strong> <code>boolean</code> — <code>true</code> if the bin existed</p>
463
+ <p>Delete a bin and all its captured requests. The delete waits for captures already queued for that bin.</p>
464
+ <p><strong>Returns:</strong> <code>Promise&#x3C;boolean></code> — <code>true</code> when the bin existed</p>
468
465
  <h3 id="binsgetrequestsbinid"><code>bins.getRequests(binId)</code></h3>
469
466
  <p>List captured requests for a bin, newest first.</p>
470
- <p><strong>Returns:</strong> <code>CapturedRequest[]</code></p>
467
+ <p><strong>Returns:</strong> <code>Promise&#x3C;CapturedRequest[]></code></p>
471
468
  <h3 id="binsgetrequestbinid-reqid"><code>bins.getRequest(binId, reqId)</code></h3>
472
469
  <p>Look up a single captured request.</p>
473
- <p><strong>Returns:</strong> <code>CapturedRequest | undefined</code></p>
470
+ <p><strong>Returns:</strong> <code>Promise&#x3C;CapturedRequest | undefined></code></p>
474
471
  <h3 id="binsclearrequestsbinid"><code>bins.clearRequests(binId)</code></h3>
475
- <p>Clear all captured requests in a bin (the bin itself is preserved).</p>
472
+ <p>Clear all captured requests in a bin. The bin stays. Throws when Keyv does not store the change.</p>
473
+ <p><strong>Returns:</strong> <code>Promise&#x3C;boolean></code> — <code>false</code> when the bin does not exist</p>
476
474
  <h3 id="binsrecordrequestbinid-raw"><code>bins.recordRequest(binId, raw)</code></h3>
477
- <p>Manually record a captured request. Returns <code>undefined</code> if the bin does not exist or is expired. Normally invoked by the capture route, but available for programmatic use.</p>
478
- <p><strong>Returns:</strong> <code>CapturedRequest | undefined</code></p>
479
- <h3 id="binsstart--binsstop"><code>bins.start()</code> / <code>bins.stop()</code></h3>
480
- <p>Start or stop the periodic cleanup of expired bins. <code>MockHttp.start()</code> and <code>MockHttp.close()</code> call these automatically. The interval is <code>unref()</code>'d so it never keeps the Node process alive.</p>
475
+ <p>Manually record a captured request. Returns <code>undefined</code> if the bin does not exist. Throws when Keyv does not store the capture. Normally invoked by the capture route, but available for programmatic use.</p>
476
+ <p><strong>Returns:</strong> <code>Promise&#x3C;CapturedRequest | undefined></code></p>
481
477
  <h3 id="binsmaxbodysize--binsmaxrequestsperbin--binsdefaultttlms"><code>bins.maxBodySize</code> / <code>bins.maxRequestsPerBin</code> / <code>bins.defaultTtlMs</code></h3>
482
478
  <p>Read-only getters for the currently-configured limits.</p>
483
479
  <h2 id="taps-response-injection">Taps (Response Injection)</h2>
@@ -553,7 +549,7 @@
553
549
  <a href="https://docula.org/" target="_blank" rel="noopener noreferrer" class="footer__link" aria-label="Docula">
554
550
  <svg class="footer__bat" xmlns="http://www.w3.org/2000/svg" viewBox="70 110 360 205" fill="currentColor"><path d="M420,173c-16.76-18-72.78-36.65-131.59-30.58A160.15,160.15,0,0,0,269,120.55c-3.78,4.52-11.15,9.45-19,9.45s-15.23-4.93-19-9.45a160.15,160.15,0,0,0-19.4,21.83C152.78,136.31,96.76,154.94,80,173c48.86,5.86,79.5,34.09,79.5,72.06,52.37,0,77,28,90.5,59.94C263.54,273,288.13,245,340.5,245,340.5,207,371.14,178.8,420,173Z"/><circle cx="239.19" cy="145.36" r="3.32" fill="#fff"/><circle cx="260.81" cy="145.36" r="3.32" fill="#fff"/></svg>
555
551
  </a>
556
- <span class="footer__updated">updated: 2026-10-03</span>
552
+ <span class="footer__updated">updated: 2026-10-28</span>
557
553
  </footer>
558
554
  <script src="/css/highlight/highlight.min.js"></script>
559
555
  <script>
@@ -35,7 +35,7 @@
35
35
  </script>
36
36
  <title>MockHTTP - Taps</title>
37
37
  <script type="application/ld+json">
38
- {"@context":"https://schema.org","@type":"TechArticle","headline":"Taps","description":"","url":"https://mockhttp.org/docs/taps/","publisher":{"@type":"Organization","name":"MockHTTP"},"dateModified":"2026-10-03","keywords":[]}
38
+ {"@context":"https://schema.org","@type":"TechArticle","headline":"Taps","description":"","url":"https://mockhttp.org/docs/taps/","publisher":{"@type":"Organization","name":"MockHTTP"},"dateModified":"2026-10-28","keywords":[]}
39
39
  </script>
40
40
  </head>
41
41
 
@@ -481,7 +481,7 @@ mock.<span class="hljs-property">taps</span>.<span class="hljs-title function_">
481
481
  <a href="https://docula.org/" target="_blank" rel="noopener noreferrer" class="footer__link" aria-label="Docula">
482
482
  <svg class="footer__bat" xmlns="http://www.w3.org/2000/svg" viewBox="70 110 360 205" fill="currentColor"><path d="M420,173c-16.76-18-72.78-36.65-131.59-30.58A160.15,160.15,0,0,0,269,120.55c-3.78,4.52-11.15,9.45-19,9.45s-15.23-4.93-19-9.45a160.15,160.15,0,0,0-19.4,21.83C152.78,136.31,96.76,154.94,80,173c48.86,5.86,79.5,34.09,79.5,72.06,52.37,0,77,28,90.5,59.94C263.54,273,288.13,245,340.5,245,340.5,207,371.14,178.8,420,173Z"/><circle cx="239.19" cy="145.36" r="3.32" fill="#fff"/><circle cx="260.81" cy="145.36" r="3.32" fill="#fff"/></svg>
483
483
  </a>
484
- <span class="footer__updated">updated: 2026-10-03</span>
484
+ <span class="footer__updated">updated: 2026-10-28</span>
485
485
  </footer>
486
486
  <script src="/css/highlight/highlight.min.js"></script>
487
487
  <script>
@@ -1 +1 @@
1
- <?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>MockHTTP</title><link>https://mockhttp.org/</link><description>HTTP mock server and httpbin replacement for API testing. Run it at mockhttp.org, in Docker, or in Node.js.</description><lastBuildDate>Sat, 03 Oct 2026 22:17:09 GMT</lastBuildDate><atom:link href="https://mockhttp.org/feed.xml" rel="self" type="application/rss+xml" /><item><title>Getting Started</title><link>https://mockhttp.org/docs/</link><guid isPermaLink="true">https://mockhttp.org/docs/</guid><description>tests GitHub license codecov npm npm Docker Pulls mockhttp.org A simple HTTP server for mocking responses in tests. Inspired by httpbin and built with Node.js and Fastify. Run it at mockhttp.org, with Docker (jaredwray/mockhttp), or in Node...</description></item><item><title>HTTPS and HTTP/2</title><link>https://mockhttp.org/docs/https/</link><guid isPermaLink="true">https://mockhttp.org/docs/https/</guid><description>MockHttp supports HTTPS with auto-generated self-signed certificates or your own custom certificates. No external dependencies are required — certificate generation uses only Node.js built-in crypto. The simplest way to enable HTTPS is to p...</description></item><item><title>Taps</title><link>https://mockhttp.org/docs/taps/</link><guid isPermaLink="true">https://mockhttp.org/docs/taps/</guid><description>The injection/tap feature allows you to &quot;tap into&quot; the request flow and inject custom responses for specific requests. This is particularly useful for: Offline testing - Mock external API responses without network access Testing edge cases...</description></item><item><title>Bins</title><link>https://mockhttp.org/docs/bins/</link><guid isPermaLink="true">https://mockhttp.org/docs/bins/</guid><description>Bins are ephemeral URL endpoints that capture incoming HTTP requests so you can inspect them later. They&apos;re the inverse of Taps: instead of injecting a response, they record everything they receive. Useful for: Debugging webhooks — point St...</description></item><item><title>Configuration</title><link>https://mockhttp.org/docs/configuration/</link><guid isPermaLink="true">https://mockhttp.org/docs/configuration/</guid><description>MockHttp supports rate limiting using @fastify/rate-limit. Rate limiting is enabled by default at 1000 requests per minute with localhost (127.0.0.1 and ::1) excluded from rate limiting. By default, MockHttp applies the following rate limit...</description></item><item><title>Library API</title><link>https://mockhttp.org/docs/library/</link><guid isPermaLink="true">https://mockhttp.org/docs/library/</guid><description>Parameters: options? (MockHttpOptions): port?: number - The port to listen on (default: 3000) host?: string - The host to listen on (default: &apos;0.0.0.0&apos;) autoDetectPort?: boolean - Auto-detect next available port if in use (default: true) he...</description></item><item><title>MockHttp.org Live</title><link>https://mockhttp.org/docs/hosted/</link><guid isPermaLink="true">https://mockhttp.org/docs/hosted/</guid><description>mockhttp.org is a free hosted instance of this codebase for testing. It runs on a Cloudflare Worker (no containers): documentation is served from Workers Assets, and mock APIs such as /get and /post run in the Worker. The service is globall...</description></item><item><title>Cloudflare</title><link>https://mockhttp.org/docs/how-to-deploy/cloudflare/</link><guid isPermaLink="true">https://mockhttp.org/docs/how-to-deploy/cloudflare/</guid><description>Deploy MockHTTP as a Cloudflare Worker. Workers Assets serve the docs site, and the Worker handles mock API routes.</description></item><item><title>Docker</title><link>https://mockhttp.org/docs/how-to-deploy/docker/</link><guid isPermaLink="true">https://mockhttp.org/docs/how-to-deploy/docker/</guid><description>Run MockHTTP from the jaredwray/mockhttp image, with Docker Compose, or by building the image from this repository.</description></item><item><title>Wasmer</title><link>https://mockhttp.org/docs/how-to-deploy/wasmer/</link><guid isPermaLink="true">https://mockhttp.org/docs/how-to-deploy/wasmer/</guid><description>Deploy the MockHTTP Node.js server to Wasmer Edge with app.yaml, Anybuild, and wasmer deploy.</description></item></channel></rss>
1
+ <?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>MockHTTP</title><link>https://mockhttp.org/</link><description>HTTP mock server and httpbin replacement for API testing. Run it at mockhttp.org, in Docker, or in Node.js.</description><lastBuildDate>Wed, 28 Oct 2026 19:24:18 GMT</lastBuildDate><atom:link href="https://mockhttp.org/feed.xml" rel="self" type="application/rss+xml" /><item><title>Getting Started</title><link>https://mockhttp.org/docs/</link><guid isPermaLink="true">https://mockhttp.org/docs/</guid><description>tests GitHub license codecov npm npm Docker Pulls mockhttp.org A simple HTTP server for mocking responses in tests. Inspired by httpbin and built with Node.js and Fastify. Run it at mockhttp.org, with Docker (jaredwray/mockhttp), or in Node...</description></item><item><title>HTTPS and HTTP/2</title><link>https://mockhttp.org/docs/https/</link><guid isPermaLink="true">https://mockhttp.org/docs/https/</guid><description>MockHttp supports HTTPS with auto-generated self-signed certificates or your own custom certificates. No external dependencies are required — certificate generation uses only Node.js built-in crypto. The simplest way to enable HTTPS is to p...</description></item><item><title>Taps</title><link>https://mockhttp.org/docs/taps/</link><guid isPermaLink="true">https://mockhttp.org/docs/taps/</guid><description>The injection/tap feature allows you to &quot;tap into&quot; the request flow and inject custom responses for specific requests. This is particularly useful for: Offline testing - Mock external API responses without network access Testing edge cases...</description></item><item><title>Bins</title><link>https://mockhttp.org/docs/bins/</link><guid isPermaLink="true">https://mockhttp.org/docs/bins/</guid><description>Bins are ephemeral URL endpoints that capture incoming HTTP requests so you can inspect them later. They&apos;re the inverse of Taps: instead of injecting a response, they record everything they receive. Useful for: Debugging webhooks — point St...</description></item><item><title>Configuration</title><link>https://mockhttp.org/docs/configuration/</link><guid isPermaLink="true">https://mockhttp.org/docs/configuration/</guid><description>MockHttp supports rate limiting using @fastify/rate-limit. Rate limiting is enabled by default at 1000 requests per minute with localhost (127.0.0.1 and ::1) excluded from rate limiting. By default, MockHttp applies the following rate limit...</description></item><item><title>Library API</title><link>https://mockhttp.org/docs/library/</link><guid isPermaLink="true">https://mockhttp.org/docs/library/</guid><description>Parameters: options? (MockHttpOptions): port?: number - The port to listen on (default: 3000) host?: string - The host to listen on (default: &apos;0.0.0.0&apos;) autoDetectPort?: boolean - Auto-detect next available port if in use (default: true) he...</description></item><item><title>MockHttp.org Live</title><link>https://mockhttp.org/docs/hosted/</link><guid isPermaLink="true">https://mockhttp.org/docs/hosted/</guid><description>mockhttp.org is a free hosted instance of this codebase for testing. It runs on a Cloudflare Worker (no containers): documentation is served from Workers Assets, and mock APIs such as /get and /post run in the Worker. The service is globall...</description></item><item><title>Cloudflare</title><link>https://mockhttp.org/docs/how-to-deploy/cloudflare/</link><guid isPermaLink="true">https://mockhttp.org/docs/how-to-deploy/cloudflare/</guid><description>Deploy MockHTTP as a Cloudflare Worker. Workers Assets serve the docs site, and the Worker handles mock API routes.</description></item><item><title>Docker</title><link>https://mockhttp.org/docs/how-to-deploy/docker/</link><guid isPermaLink="true">https://mockhttp.org/docs/how-to-deploy/docker/</guid><description>Run MockHTTP from the jaredwray/mockhttp image, with Docker Compose, or by building the image from this repository.</description></item><item><title>Wasmer</title><link>https://mockhttp.org/docs/how-to-deploy/wasmer/</link><guid isPermaLink="true">https://mockhttp.org/docs/how-to-deploy/wasmer/</guid><description>Deploy the MockHTTP Node.js server to Wasmer Edge with app.yaml, Anybuild, and wasmer deploy.</description></item></channel></rss>
@@ -35,7 +35,7 @@
35
35
  </script>
36
36
  <title>MockHTTP - Getting Started</title>
37
37
  <script type="application/ld+json">
38
- {"@context":"https://schema.org","@type":"TechArticle","headline":"Getting Started","description":"","url":"https://mockhttp.org/","publisher":{"@type":"Organization","name":"MockHTTP"},"dateModified":"2026-10-03","keywords":[]}
38
+ {"@context":"https://schema.org","@type":"TechArticle","headline":"Getting Started","description":"","url":"https://mockhttp.org/","publisher":{"@type":"Organization","name":"MockHTTP"},"dateModified":"2026-10-28","keywords":[]}
39
39
  </script>
40
40
  </head>
41
41
 
@@ -375,7 +375,7 @@
375
375
  <a href="https://docula.org/" target="_blank" rel="noopener noreferrer" class="footer__link" aria-label="Docula">
376
376
  <svg class="footer__bat" xmlns="http://www.w3.org/2000/svg" viewBox="70 110 360 205" fill="currentColor"><path d="M420,173c-16.76-18-72.78-36.65-131.59-30.58A160.15,160.15,0,0,0,269,120.55c-3.78,4.52-11.15,9.45-19,9.45s-15.23-4.93-19-9.45a160.15,160.15,0,0,0-19.4,21.83C152.78,136.31,96.76,154.94,80,173c48.86,5.86,79.5,34.09,79.5,72.06,52.37,0,77,28,90.5,59.94C263.54,273,288.13,245,340.5,245,340.5,207,371.14,178.8,420,173Z"/><circle cx="239.19" cy="145.36" r="3.32" fill="#fff"/><circle cx="260.81" cy="145.36" r="3.32" fill="#fff"/></svg>
377
377
  </a>
378
- <span class="footer__updated">updated: 2026-10-03</span>
378
+ <span class="footer__updated">updated: 2026-10-28</span>
379
379
  </footer>
380
380
  <script src="/css/highlight/highlight.min.js"></script>
381
381
  <script>