travel/admin/node_modules/js-base64/README.md

124 lines
3.3 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

[![build status](https://secure.travis-ci.org/dankogai/js-base64.png)](http://travis-ci.org/dankogai/js-base64)
# base64.js
Yet another Base64 transcoder
## Usage
### Install
```javascript
$ npm install --save js-base64
```
If you are using it on ES6 transpilers, you may also need:
```javascript
$ npm install --save babel-preset-env
```
Note `js-base64` itself is stand-alone so its `package.json` has no `dependencies`.  However, it is also tested on ES6 environment so `"babel-preset-env": "^1.7.0"` is on `devDependencies`.
### In Browser
* Locally
```html
<script src="base64.js"></script>
```
* Directly from CDN. In which case you don't even need to install.
```html
<!-- the latest -->
<script src="https://cdn.jsdelivr.net/npm/js-base64/base64.min.js">
```
```html
<!-- with version fixed -->
<script src="https://cdn.jsdelivr.net/npm/js-base64@2.6.4/base64.min.js">
```
### node.js
```javascript
var Base64 = require('js-base64').Base64;
```
## es6+
```javascript
import { Base64 } from 'js-base64';
```
## SYNOPSIS
```javascript
Base64.encode('dankogai'); // ZGFua29nYWk=
Base64.btoa( 'dankogai'); // ZGFua29nYWk=
Base64.fromUint8Array( // ZGFua29nYWk=
new Uint8Array([100,97,110,107,111,103,97,105])
);
Base64.fromUint8Array( // ZGFua29nYW which is URI safe
new Uint8Array([100,97,110,107,111,103,97,105]), true
);
Base64.encode( '小飼弾'); // 5bCP6aO85by+
Base64.encodeURI('小飼弾'); // 5bCP6aO85by- which equals to Base64.encode('小飼弾', true)
Base64.btoa( '小飼弾'); // raises exception
```
```javascript
Base64.decode('ZGFua29nYWk='); // dankogai
Base64.atob( 'ZGFua29nYWk='); // dankogai
Base64.toUint8Array( // new Uint8Array([100,97,110,107,111,103,97,105])
'ZGFua29nYWk='
);
Base64.decode('5bCP6aO85by+'); // 小飼弾
// note .decodeURI() is unnecessary since it accepts both flavors
Base64.decode('5bCP6aO85by-'); // 小飼弾
Base64.atob( '5bCP6aO85by+'); // '小飼弾' which is nonsense
```
### String Extension for ES5
```javascript
if (Base64.extendString) {
// you have to explicitly extend String.prototype
Base64.extendString();
// once extended, you can do the following
'dankogai'.toBase64(); // ZGFua29nYWk=
'小飼弾'.toBase64(); // 5bCP6aO85by+
'小飼弾'.toBase64(true); // 5bCP6aO85by-
'小飼弾'.toBase64URI(); // 5bCP6aO85by-
'ZGFua29nYWk='.fromBase64(); // dankogai
'5bCP6aO85by+'.fromBase64(); // 小飼弾
'5bCP6aO85by-'.fromBase64(); // 小飼弾
}
```
### TypeScript
TypeScript 2.0 type definition was added to the [DefinitelyTyped repository](https://github.com/DefinitelyTyped/DefinitelyTyped).
```bash
$ npm install --save @types/js-base64
```
## `.decode()` vs `.atob` (and `.encode()` vs `btoa()`)
Suppose you have:
```
var pngBase64 =
"iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=";
```
Which is a Base64-encoded 1x1 transparent PNG, **DO NOT USE** `Base64.decode(pngBase64)`.  Use `Base64.atob(pngBase64)` instead.  `Base64.decode()` decodes to UTF-8 string while `Base64.atob()` decodes to bytes, which is compatible to browser built-in `atob()` (Which is absent in node.js).  The same rule applies to the opposite direction.
## SEE ALSO
+ http://en.wikipedia.org/wiki/Base64