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 🙏

© 2024 – Pkg Stats / Ryan Hefner

sentry-sourcemaps-alt

v0.2.6

Published

Upload your Javascript source maps to Sentry from a specified directory

Downloads

10

Readme

sentry-sourcemaps

Build Status codecov.io js-standard-style

Sentry 8 comes with a brand new Releases API that finally enables us to upload JavaScript Source Maps directly to Sentry, and avoid the costly and fragile remote fetching of the source maps from our application servers.

This tool is intended to do just that: upload your application's source maps to Sentry along with every release.

It does that seamlessly by downloading your application's package from the NPM registry (even private ones, of course), looking at the source maps within it, and gracefully uploading them to your Sentry instance.

Fork notice

This is forked off the sentry-sourcemaps project.

The core differences:

  • Retooled to work against a local directory instead of pulling a package from NPM to find sourcemaps to upload
  • upload map via registry removed (if you want that, use the original project instead)
  • exposed upload API for use in your node code.
  • adds a url path prefix option
  • Uses Auth Bearer token instead of legacy API key (see here) for auth
const uploader = require('sentry-sourcemaps-alt')

// see src/uploader.js for more info
uploader(dirPath, pkgVersion, appUrl, orgToken, sentryProject, mapFilePattern, stripPrefix, sentryUrl, sentryOrganization, mapUrlPrefix)

How it works

Here is a sample CLI usage:

$ npm install -g sentry-sourcemaps
$ sentry-sourcemaps-alt --sentry-url https://my.sentry.url . 1.0.0 https://foobar.org TOKEN PROJECT_NAME

As you can see, there are 5 mandatory parameters:

  • Your application's root directory;
  • The desired release version;
  • The URL onto which your application is deployed;
  • The Sentry Token needed to push to the Sentry API.
  • The name under which your project is named within Sentry.

The application will create a release and upload every MAP file for your app onto the designed Sentry server.

Usage

Typical command line:

sentry-sourcemaps-alt [OPTIONS] <PATH> <VERSION> <APP_URL> <ORG_TOKEN> <PROJECT_NAME>

Parameters

PATH

is the root of your application project.

VERSION

is the target version of that package.

APP_URL

is the URL of the deployed application, that is linked with Sentry.

ORG_TOKEN

is the Sentry API Organization-wide token.

Options

--sentry-url

The URL to your Sentry server. Defaults to 'https://app.getsentry.com'

--sentry-organization

The organization to which the project belongs. Defaults to 'sentry'

--pattern

The MAP files search pattern. Defaults to '**/*.map'

--strip-prefix

The prefix to the MAP files in your NPM package, defaults to 'dist'.

For instance, if your MAP files look like './built-app/dist/libraries/js/foo.map' and the MAP file itself is hosted at '<APP_URL>/libraries/js/foo.map', then the appropriate prefix would be 'built-app/dist'.

--map-url-prefix

prepend a prefix to access your MAP files.

For instance, if your map is hosted at '<APP_URL>/static/js/foo.map' instead of '<APP_URL>/libraries/js/foo.map' after using --strip-prefix to remove './built-app/dist/libraries', you use this option to add the 'static' path

Docker Image

A docker image is available, which enables its use without Node installed.

Testing

Run the tests with:

npm test

Run coverage tests with:

npm run cover

Contributing

At this stage, any PR is welcome !

Especially, there's room for improvement with our Promisify/Asyncawait approach, the rejection clauses of many promises are not clearly validated yet.

Contributors

Victor Perron

License

MIT