Sourcemaps
Upload build sourcemaps so FastStats can resolve minified stack traces.
FastStats resolves minified JavaScript stack traces using uploaded sourcemaps.
The recommended workflow is the @faststats/sourcemap-uploader-plugin package.
Recommended Setup (Bundler Plugin)
Install the plugin in your frontend project:
npm i -D @faststats/sourcemap-uploader-pluginUse the adapter that matches your bundler:
import { defineConfig } from "vite";
import sourcemapsPlugin from "@faststats/sourcemap-uploader-plugin/vite";
export default defineConfig({
build: { sourcemap: true },
plugins: [
sourcemapsPlugin({
endpoint: "https://sourcemaps.faststats.dev/api/sourcemaps",
authToken: process.env.FASTSTATS_SOURCEMAP_KEY,
deleteAfterUpload: true,
}),
],
});import sourcemapsPlugin from "@faststats/sourcemap-uploader-plugin/rollup";
export default {
output: {
sourcemap: true,
},
plugins: [
sourcemapsPlugin({
endpoint: "https://sourcemaps.faststats.dev/api/sourcemaps",
authToken: process.env.FASTSTATS_SOURCEMAP_KEY,
}),
],
};import sourcemapsPlugin from "@faststats/sourcemap-uploader-plugin/webpack";
export default {
devtool: "source-map",
plugins: [
sourcemapsPlugin({
endpoint: "https://sourcemaps.faststats.dev/api/sourcemaps",
authToken: process.env.FASTSTATS_SOURCEMAP_KEY,
}),
],
};import sourcemapsPlugin from "@faststats/sourcemap-uploader-plugin/rspack";
export default {
devtool: "source-map",
plugins: [
sourcemapsPlugin({
endpoint: "https://sourcemaps.faststats.dev/api/sourcemaps",
authToken: process.env.FASTSTATS_SOURCEMAP_KEY,
}),
],
};import sourcemapsPlugin from "@faststats/sourcemap-uploader-plugin/esbuild";
await require("esbuild").build({
entryPoints: ["src/index.ts"],
bundle: true,
sourcemap: true,
outfile: "dist/app.js",
plugins: [
sourcemapsPlugin({
endpoint: "https://sourcemaps.faststats.dev/api/sourcemaps",
authToken: process.env.FASTSTATS_SOURCEMAP_KEY,
}),
],
});build.sourcemap = true (or bundler equivalent) is required so .map files are generated.
Upload Authentication
Generate a sourcemap API key in FastStats project settings and pass it as bearer auth:
Authorization: Bearer <FASTSTATS_SOURCEMAP_KEY>Payload Shape (Reference)
The uploader sends JSON to /api/sourcemaps:
{
"buildId": "your-build-id",
"bundler": "vite",
"uploadedAt": "2026-03-02T10:15:00.000Z",
"sourcemaps": [
{
"fileName": "assets/app.12345.js.map",
"sourcemap": "{\"version\":3,...}"
}
]
}Useful Options
| Option | Description |
|---|---|
endpoint | Upload API URL (defaults to https://sourcemaps.faststats.dev/api/sourcemaps) |
authToken | Bearer token used for upload authentication |
buildId | Explicit build ID (otherwise auto-generated/native hash is used) |
deleteAfterUpload | Deletes local .map files after successful upload |
failOnError | Throws build error on upload failure (true by default) |
maxUploadBodyBytes | Max request payload size before upload batching (default 50MB) |
enabled | Enable/disable plugin (boolean or callback) |
Self-Hosted Endpoint
sourcemapsPlugin({
endpoint: "https://sourcemaps.your-domain.com/api/sourcemaps",
authToken: process.env.FASTSTATS_SOURCEMAP_KEY,
});