npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@crvouga/mockingbird-service-s3

v3.2.0

Published

Stateful Amazon S3 emulator with binary objects, listing, copies, multipart uploads, presigned URLs, and canonical XML errors.

Readme

@crvouga/mockingbird-service-s3

Local emulators. Real API contracts. Part of Mockingbird.

Stateful Amazon S3 emulator for AWS SDK v3. It preserves binary objects and the metadata applications read, supports path-style endpoints, multipart uploads, copies, ranges, pagination, presigned URLs, XML errors, namespace isolation, faults, and object notifications without contacting AWS.

Install

npm install -D @crvouga/mockingbird-service-s3

ESM only. Node 22+ or Bun 1.2+.

Usage

Point the SDK endpoint at the emulator and enable path-style addressing. Fixture credentials are validated for presigned requests; the default pair is fixture / fixture.

import { createServer } from "@crvouga/mockingbird-service-s3/server"

const emulator = await createServer()
await fetch(`${emulator.url}/fixtures`, { method: "PUT" })
await fetch(`${emulator.url}/fixtures/result.bin`, {
  method: "PUT",
  body: new Uint8Array([0, 255]),
})

Set an application's S3 endpoint environment variable to the server URL and its region to us-east-1. Supported REST operations are CreateBucket, HeadBucket, PutObject, GetObject, HeadObject, DeleteObject, DeleteObjects, CopyObject, ListObjectsV2, and multipart create/upload/complete/abort. SDK GetObject bodies retain its streaming helpers.

Admin and deterministic controls

  • GET/POST /__admin/objects inspects metadata or seeds an object; GET /__admin/objects/:bucket/:key downloads its bytes.
  • GET /__admin/uploads inspects active uploads and part metadata.
  • Preset faults are slow_down, access_denied, expired_token, and one-shot truncate_stream. Generic faults can fail or reset the next part request.
  • Advance the shared emulator clock through /__admin/clock to expire a presigned URL.
  • Object writes, copies, multipart completion, and deletes publish S3-shaped notifications. Configure HTTP sinks through runtime webhooks options or the shared webhook admin routes; delivery attempts and retries appear under /__admin/webhooks.

The shared runtime also provides health, reset, journal, metrics, timeline, and fault routes. Select isolated state with x-mockingbird-namespace, /__admin/ns/<name>, or a SigV4 access-key mapping.

Deliberately not modelled

Operations outside the surface listed above, object versioning, ACL/IAM policy evaluation, storage classes, checksums beyond ETags, production quotas, AWS dashboards and billing, virtual-host bucket routing, and real SQS delivery are not modelled. SQS consumers can use the same captured notification payload through a configured HTTP sink.

API

  • S3API, S3APIOptions: Fetch handler and configuration.
  • S3Notification, S3Object, S3SeedObject: notification, state, and fixture types.
  • createRuntime, S3Runtime, S3RuntimeOptions: full Mockingbird runtime and webhook hub.
  • S3_NAMESPACE, S3_PRESETS, accessKeyCredential: constants and fault controls.
  • document, operationIds, supportedOperationIds: generated OpenAPI metadata.
  • createServer, S3ServerOptions, DEFAULT_PORT, serveTarget from ./server: Node HTTP adapter and CLI integration.

Official oracle: Amazon S3 API Reference and AWS Signature Version 4 query authentication.