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

dauria

v2.0.0

Published

Node.js module for Data URI applications. It performs conversions between Node.js Buffers and RFC2397-compliant Data URIs, or vice versa.

Downloads

18,336

Readme

This Node.js module for Data URI applications is called Dauria (after a part of Transbaikal).

Dauria performs conversions between Node.js Buffers and RFC2397-compliant Data URIs, or vice versa.

Dauria is written in JavaScript and requires Node.js to run.

  • Starting from v2.0.0, Dauria requires Node.js version 5.10.0 or newer because it is rewritten in ECMAScript 2015 (ES6) and also uses the Buffer.from method.
  • You may run older versions of Dauria (that precede v2.0.0) with older Node.js versions (0.10.x or 0.12.x). However, those older versions of Node.js are themselves not maintained by their developers after 2016-12-31.

Dauria is tested against Node.js v5, Node.js v6, Node.js v7 and the latest stable version of Node.js.

Installing Dauria

(npm package version) (a histogram of downloads)

  • Latest packaged version: npm install dauria

  • Latest githubbed version: npm install https://github.com/Mithgol/dauria/tarball/master

The npm package does not contain the tests, they're published on GitHub only.

You may visit https://github.com/Mithgol/dauria#readme occasionally to read the latest README because the package's version is not planned to grow after changes when they happen in README only. (And npm publish --force is forbidden nowadays.)

Using Dauria

When you require() the installed module, you get an object that has the following methods:

getBase64DataURI(sourceBuffer, MIME)

Returns a string containing the data:... URI that represent the given source Buffer in the base64-encoded form.

An optional second parameter (MIME) suggests the MIME type of the given Buffer. If the parameter is not given, 'application/octet-stream' is used.

Example:

(screenshot)

parseDataURI(dataURI)

Parses the given Data URI and returns an object with the following properties:

  • MIME — MIME content type in the form type/subtype as explained in RFC2045 Section 5.2. If not given in the URI, MIME becomes 'text/plain' by default (as recommended by RFC2397 in section 2).

  • mediaType — MIME content type with the semicolon-separated list of parameters (if any) in the form parameter=value (some values may appear urlencoded, and Dauria does not decode them). If not given in the URI, mediaType becomes 'text/plain;charset=US-ASCII' by default (as recommended by RFC2397 in section 2).

  • buffer — Node.js Buffer containing the data decoded from the given Data URI. Hexadecimal URL encoding (such as '%20' for a whitespace) and base64 encoding are both supported (the latter must be indicated by the string ';base64' before the first comma in the given Data URI).

  • charset — the value of the first 'charset=...' parameter encountered in mediaType. If mediaType does not contain any charset parameters, charset becomes 'US-ASCII'. However, if MIME does not start with 'text/', then charset becomes null regardless of any parameters.

  • text — a JavaScript string containing the text decoded from buffer using charset. However, if MIME does not start with 'text/', then text becomes null. It also becomes null if the iconv-lite module does not know the encountered charset.

If the given dataURI is not in fact a Data URI (does not start with 'data:' or does not contain a comma), an error is thrown.

Example:

(screenshot)

Testing Dauria

(build testing status)

The tests are not included in the npm package of the module (to keep it small). Use the version from GitHub.

It is necessary to install Mocha and JSHint for testing.

  • You may install Mocha globally (npm install mocha -g) or locally (npm install mocha in the directory of Dauria).

  • You may install JSHint globally (npm install jshint -g) or locally (npm install jshint in the directory of Dauria).

After that you may run npm test (in the directory of Dauria).

License

MIT license (see the LICENSE file), with the following exceptions:

  • The file test/red-dot-5px.png is taken from Wikipedia where it has been released into the public domain by Johan Elisson.

  • The file test/larry.gif is decoded from RFC2397 where it was given as an example. (RFC2397's Full Copyright Statement permits publishing and distribution of derivative works that assist in its implementation.)