Giant blob of minor changes
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-prettier / node_modules / js-base64 / README.md
1 [![build status](https://secure.travis-ci.org/dankogai/js-base64.png)](http://travis-ci.org/dankogai/js-base64)
2
3 # base64.js
4
5 Yet another Base64 transcoder
6
7 ## Usage
8
9 ### Install
10
11 ```javascript
12 $ npm install --save js-base64
13 ```
14
15 If you are using it on ES6 transpilers, you may also need:
16
17 ```javascript
18 $ npm install --save babel-preset-env
19 ```
20
21 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`.
22
23
24 ### In Browser
25
26 * Locally
27
28 ```html
29 <script src="base64.js"></script>
30 ```
31
32 * Directly from CDN.  In which case you don't even need to install.
33
34 ```html
35 <!-- the latest -->
36 <script src="https://cdn.jsdelivr.net/npm/js-base64/base64.min.js">
37 ```
38
39 ```html
40 <!-- with version fixed -->
41 <script src="https://cdn.jsdelivr.net/npm/js-base64@2.6.4/base64.min.js">
42 ```
43
44 ### node.js
45
46 ```javascript
47 var Base64 = require('js-base64').Base64;
48 ```
49
50 ## es6+
51
52 ```javascript
53 import { Base64 } from 'js-base64';
54 ```
55
56 ## SYNOPSIS
57
58 ```javascript
59 Base64.encode('dankogai'); // ZGFua29nYWk=
60 Base64.btoa(  'dankogai'); // ZGFua29nYWk=
61 Base64.fromUint8Array(     // ZGFua29nYWk=
62     new Uint8Array([100,97,110,107,111,103,97,105])
63 );
64 Base64.fromUint8Array(     // ZGFua29nYW which is URI safe
65     new Uint8Array([100,97,110,107,111,103,97,105]), true
66 );
67 Base64.encode(   '小飼弾'); // 5bCP6aO85by+
68 Base64.encodeURI('小飼弾'); // 5bCP6aO85by- which equals to Base64.encode('小飼弾', true)
69 Base64.btoa(     '小飼弾'); // raises exception 
70 ```
71
72 ```javascript
73 Base64.decode('ZGFua29nYWk=');  // dankogai
74 Base64.atob(  'ZGFua29nYWk=');  // dankogai
75 Base64.toUint8Array(            // new Uint8Array([100,97,110,107,111,103,97,105])
76     'ZGFua29nYWk='
77 );
78 Base64.decode('5bCP6aO85by+');  // 小飼弾
79 // note .decodeURI() is unnecessary since it accepts both flavors
80 Base64.decode('5bCP6aO85by-');  // 小飼弾
81 Base64.atob(  '5bCP6aO85by+');  // 'å°\8f飼弾' which is nonsense
82 ```
83
84 ### String Extension for ES5
85
86 ```javascript
87 if (Base64.extendString) {
88     // you have to explicitly extend String.prototype
89     Base64.extendString();
90     // once extended, you can do the following
91     'dankogai'.toBase64();        // ZGFua29nYWk=
92     '小飼弾'.toBase64();           // 5bCP6aO85by+
93     '小飼弾'.toBase64(true);       // 5bCP6aO85by-
94     '小飼弾'.toBase64URI();        // 5bCP6aO85by-
95     'ZGFua29nYWk='.fromBase64();  // dankogai
96     '5bCP6aO85by+'.fromBase64();  // 小飼弾
97     '5bCP6aO85by-'.fromBase64();  // 小飼弾
98 }
99 ```
100
101 ### TypeScript
102
103 TypeScript 2.0 type definition was added to the [DefinitelyTyped repository](https://github.com/DefinitelyTyped/DefinitelyTyped).
104
105 ```bash
106 $ npm install --save @types/js-base64
107 ```
108
109 ## `.decode()` vs `.atob` (and `.encode()` vs `btoa()`)
110
111 Suppose you have:
112
113 ```
114 var pngBase64 = 
115   "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=";
116 ```
117
118 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.
119
120
121 ## SEE ALSO
122
123 + http://en.wikipedia.org/wiki/Base64