js-base64 2.4.8 → 2.5.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/{test-moment → .attic/test-moment}/dankogai.js +0 -0
- package/{test-moment → .attic/test-moment}/es5.js +0 -0
- package/{test-moment → .attic/test-moment}/es6.js +0 -0
- package/{test-moment → .attic/test-moment}/index.html +0 -0
- package/{test-moment → .attic/test-moment}/large.js +0 -0
- package/{test-moment → .attic/test-moment}/moment.js +0 -0
- package/{test-moment → .attic/test-moment}/yoshinoya.js +0 -0
- package/base64.html +1 -1
- package/base64.js +24 -30
- package/base64.min.js +1 -1
- package/bower.json +1 -1
- package/package.json +2 -2
- package/test/atob.js +46 -0
- package/test/index.html +2 -1
- package/base64_utf8 +0 -217
- package/old/base64-1.7.js +0 -237
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/base64.html
CHANGED
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
</tr>
|
|
23
23
|
<tr><th width="50%">Roundtrip</th><th>iframe w/ data: (no IE)</th></tr>
|
|
24
24
|
<tr>
|
|
25
|
-
<th><textarea id="roundtrip" cols=32" rows="4" disabled></textarea></th>
|
|
25
|
+
<th><textarea id="roundtrip" cols="32" rows="4" disabled></textarea></th>
|
|
26
26
|
<th><iframe id="data" width="80%" height="64"></iframe></th>
|
|
27
27
|
</tr>
|
|
28
28
|
</tbody></table>
|
package/base64.js
CHANGED
|
@@ -20,16 +20,16 @@
|
|
|
20
20
|
), function(global) {
|
|
21
21
|
'use strict';
|
|
22
22
|
// existing version for noConflict()
|
|
23
|
+
global = global || {};
|
|
23
24
|
var _Base64 = global.Base64;
|
|
24
|
-
var version = "2.
|
|
25
|
+
var version = "2.5.2";
|
|
25
26
|
// if node.js and NOT React Native, we use Buffer
|
|
26
27
|
var buffer;
|
|
27
28
|
if (typeof module !== 'undefined' && module.exports) {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
} catch (err) {}
|
|
29
|
+
try {
|
|
30
|
+
buffer = eval("require('buffer').Buffer");
|
|
31
|
+
} catch (err) {
|
|
32
|
+
buffer = undefined;
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
35
|
// constants
|
|
@@ -49,8 +49,8 @@
|
|
|
49
49
|
: cc < 0x800 ? (fromCharCode(0xc0 | (cc >>> 6))
|
|
50
50
|
+ fromCharCode(0x80 | (cc & 0x3f)))
|
|
51
51
|
: (fromCharCode(0xe0 | ((cc >>> 12) & 0x0f))
|
|
52
|
-
|
|
53
|
-
|
|
52
|
+
+ fromCharCode(0x80 | ((cc >>> 6) & 0x3f))
|
|
53
|
+
+ fromCharCode(0x80 | ( cc & 0x3f)));
|
|
54
54
|
} else {
|
|
55
55
|
var cc = 0x10000
|
|
56
56
|
+ (c.charCodeAt(0) - 0xD800) * 0x400
|
|
@@ -83,32 +83,21 @@
|
|
|
83
83
|
} : function(b) {
|
|
84
84
|
return b.replace(/[\s\S]{1,3}/g, cb_encode);
|
|
85
85
|
};
|
|
86
|
-
var _encode =
|
|
87
|
-
|
|
88
|
-
?
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
}
|
|
92
|
-
: function (u) {
|
|
93
|
-
return (u.constructor === buffer.constructor ? u : new buffer(u))
|
|
94
|
-
.toString('base64')
|
|
95
|
-
}
|
|
96
|
-
: function (u) { return btoa(utob(u)) }
|
|
97
|
-
;
|
|
86
|
+
var _encode = function(u) {
|
|
87
|
+
var isUint8Array = Object.prototype.toString.call(u) === '[object Uint8Array]';
|
|
88
|
+
return isUint8Array ? u.toString('base64')
|
|
89
|
+
: btoa(utob(String(u)));
|
|
90
|
+
}
|
|
98
91
|
var encode = function(u, urisafe) {
|
|
99
92
|
return !urisafe
|
|
100
|
-
? _encode(
|
|
93
|
+
? _encode(u)
|
|
101
94
|
: _encode(String(u)).replace(/[+\/]/g, function(m0) {
|
|
102
95
|
return m0 == '+' ? '-' : '_';
|
|
103
96
|
}).replace(/=/g, '');
|
|
104
97
|
};
|
|
105
98
|
var encodeURI = function(u) { return encode(u, true) };
|
|
106
99
|
// decoder stuff
|
|
107
|
-
var re_btou =
|
|
108
|
-
'[\xC0-\xDF][\x80-\xBF]',
|
|
109
|
-
'[\xE0-\xEF][\x80-\xBF]{2}',
|
|
110
|
-
'[\xF0-\xF7][\x80-\xBF]{3}'
|
|
111
|
-
].join('|'), 'g');
|
|
100
|
+
var re_btou = /[\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3}/g;
|
|
112
101
|
var cb_btou = function(cccc) {
|
|
113
102
|
switch(cccc.length) {
|
|
114
103
|
case 4:
|
|
@@ -150,10 +139,13 @@
|
|
|
150
139
|
chars.length -= [0, 0, 2, 1][padlen];
|
|
151
140
|
return chars.join('');
|
|
152
141
|
};
|
|
153
|
-
var
|
|
142
|
+
var _atob = global.atob ? function(a) {
|
|
154
143
|
return global.atob(a);
|
|
155
144
|
} : function(a){
|
|
156
|
-
return a.replace(
|
|
145
|
+
return a.replace(/\S{1,4}/g, cb_decode);
|
|
146
|
+
};
|
|
147
|
+
var atob = function(a) {
|
|
148
|
+
return _atob(String(a).replace(/[^A-Za-z0-9\+\/]/g, ''));
|
|
157
149
|
};
|
|
158
150
|
var _decode = buffer ?
|
|
159
151
|
buffer.from && Uint8Array && buffer.from !== Uint8Array.from
|
|
@@ -165,7 +157,7 @@
|
|
|
165
157
|
return (a.constructor === buffer.constructor
|
|
166
158
|
? a : new buffer(a, 'base64')).toString();
|
|
167
159
|
}
|
|
168
|
-
: function(a) { return btou(
|
|
160
|
+
: function(a) { return btou(_atob(a)) };
|
|
169
161
|
var decode = function(a){
|
|
170
162
|
return _decode(
|
|
171
163
|
String(a).replace(/[-_]/g, function(m0) { return m0 == '-' ? '+' : '/' })
|
|
@@ -189,7 +181,8 @@
|
|
|
189
181
|
encodeURI: encodeURI,
|
|
190
182
|
btou: btou,
|
|
191
183
|
decode: decode,
|
|
192
|
-
noConflict: noConflict
|
|
184
|
+
noConflict: noConflict,
|
|
185
|
+
__buffer__: buffer
|
|
193
186
|
};
|
|
194
187
|
// if ES5 is available, make Base64.extendString() available
|
|
195
188
|
if (typeof Object.defineProperty === 'function') {
|
|
@@ -229,3 +222,4 @@
|
|
|
229
222
|
// that's it!
|
|
230
223
|
return {Base64: global.Base64}
|
|
231
224
|
}));
|
|
225
|
+
|
package/base64.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(global,factory){typeof exports==="object"&&typeof module!=="undefined"?module.exports=factory(global):typeof define==="function"&&define.amd?define(factory):factory(global)})(typeof self!=="undefined"?self:typeof window!=="undefined"?window:typeof global!=="undefined"?global:this,function(global){"use strict";var _Base64=global.Base64;var version="2.
|
|
1
|
+
(function(global,factory){typeof exports==="object"&&typeof module!=="undefined"?module.exports=factory(global):typeof define==="function"&&define.amd?define(factory):factory(global)})(typeof self!=="undefined"?self:typeof window!=="undefined"?window:typeof global!=="undefined"?global:this,function(global){"use strict";global=global||{};var _Base64=global.Base64;var version="2.5.2";var buffer;if(typeof module!=="undefined"&&module.exports){try{buffer=eval("require('buffer').Buffer")}catch(err){buffer=undefined}}var b64chars="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";var b64tab=function(bin){var t={};for(var i=0,l=bin.length;i<l;i++)t[bin.charAt(i)]=i;return t}(b64chars);var fromCharCode=String.fromCharCode;var cb_utob=function(c){if(c.length<2){var cc=c.charCodeAt(0);return cc<128?c:cc<2048?fromCharCode(192|cc>>>6)+fromCharCode(128|cc&63):fromCharCode(224|cc>>>12&15)+fromCharCode(128|cc>>>6&63)+fromCharCode(128|cc&63)}else{var cc=65536+(c.charCodeAt(0)-55296)*1024+(c.charCodeAt(1)-56320);return fromCharCode(240|cc>>>18&7)+fromCharCode(128|cc>>>12&63)+fromCharCode(128|cc>>>6&63)+fromCharCode(128|cc&63)}};var re_utob=/[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g;var utob=function(u){return u.replace(re_utob,cb_utob)};var cb_encode=function(ccc){var padlen=[0,2,1][ccc.length%3],ord=ccc.charCodeAt(0)<<16|(ccc.length>1?ccc.charCodeAt(1):0)<<8|(ccc.length>2?ccc.charCodeAt(2):0),chars=[b64chars.charAt(ord>>>18),b64chars.charAt(ord>>>12&63),padlen>=2?"=":b64chars.charAt(ord>>>6&63),padlen>=1?"=":b64chars.charAt(ord&63)];return chars.join("")};var btoa=global.btoa?function(b){return global.btoa(b)}:function(b){return b.replace(/[\s\S]{1,3}/g,cb_encode)};var _encode=function(u){var isUint8Array=Object.prototype.toString.call(u)==="[object Uint8Array]";return isUint8Array?u.toString("base64"):btoa(utob(String(u)))};var encode=function(u,urisafe){return!urisafe?_encode(u):_encode(String(u)).replace(/[+\/]/g,function(m0){return m0=="+"?"-":"_"}).replace(/=/g,"")};var encodeURI=function(u){return encode(u,true)};var re_btou=/[\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3}/g;var cb_btou=function(cccc){switch(cccc.length){case 4:var cp=(7&cccc.charCodeAt(0))<<18|(63&cccc.charCodeAt(1))<<12|(63&cccc.charCodeAt(2))<<6|63&cccc.charCodeAt(3),offset=cp-65536;return fromCharCode((offset>>>10)+55296)+fromCharCode((offset&1023)+56320);case 3:return fromCharCode((15&cccc.charCodeAt(0))<<12|(63&cccc.charCodeAt(1))<<6|63&cccc.charCodeAt(2));default:return fromCharCode((31&cccc.charCodeAt(0))<<6|63&cccc.charCodeAt(1))}};var btou=function(b){return b.replace(re_btou,cb_btou)};var cb_decode=function(cccc){var len=cccc.length,padlen=len%4,n=(len>0?b64tab[cccc.charAt(0)]<<18:0)|(len>1?b64tab[cccc.charAt(1)]<<12:0)|(len>2?b64tab[cccc.charAt(2)]<<6:0)|(len>3?b64tab[cccc.charAt(3)]:0),chars=[fromCharCode(n>>>16),fromCharCode(n>>>8&255),fromCharCode(n&255)];chars.length-=[0,0,2,1][padlen];return chars.join("")};var _atob=global.atob?function(a){return global.atob(a)}:function(a){return a.replace(/\S{1,4}/g,cb_decode)};var atob=function(a){return _atob(String(a).replace(/[^A-Za-z0-9\+\/]/g,""))};var _decode=buffer?buffer.from&&Uint8Array&&buffer.from!==Uint8Array.from?function(a){return(a.constructor===buffer.constructor?a:buffer.from(a,"base64")).toString()}:function(a){return(a.constructor===buffer.constructor?a:new buffer(a,"base64")).toString()}:function(a){return btou(_atob(a))};var decode=function(a){return _decode(String(a).replace(/[-_]/g,function(m0){return m0=="-"?"+":"/"}).replace(/[^A-Za-z0-9\+\/]/g,""))};var noConflict=function(){var Base64=global.Base64;global.Base64=_Base64;return Base64};global.Base64={VERSION:version,atob:atob,btoa:btoa,fromBase64:decode,toBase64:encode,utob:utob,encode:encode,encodeURI:encodeURI,btou:btou,decode:decode,noConflict:noConflict,__buffer__:buffer};if(typeof Object.defineProperty==="function"){var noEnum=function(v){return{value:v,enumerable:false,writable:true,configurable:true}};global.Base64.extendString=function(){Object.defineProperty(String.prototype,"fromBase64",noEnum(function(){return decode(this)}));Object.defineProperty(String.prototype,"toBase64",noEnum(function(urisafe){return encode(this,urisafe)}));Object.defineProperty(String.prototype,"toBase64URI",noEnum(function(){return encode(this,true)}))}}if(global["Meteor"]){Base64=global.Base64}if(typeof module!=="undefined"&&module.exports){module.exports.Base64=global.Base64}else if(typeof define==="function"&&define.amd){define([],function(){return global.Base64})}return{Base64:global.Base64}});
|
package/bower.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "js-base64",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.5.2",
|
|
4
4
|
"description": "Yet another Base64 transcoder in pure-JS",
|
|
5
5
|
"main": "base64.js",
|
|
6
6
|
"directories": {
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"devDependencies": {
|
|
13
13
|
"babel-preset-env": "^1.7.0",
|
|
14
14
|
"babel-register": "^6.26.0",
|
|
15
|
-
"mocha": "
|
|
15
|
+
"mocha": "5.x.x"
|
|
16
16
|
},
|
|
17
17
|
"repository": {
|
|
18
18
|
"type": "git",
|
package/test/atob.js
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* use mocha to test me
|
|
3
|
+
* http://visionmedia.github.com/mocha/
|
|
4
|
+
*/
|
|
5
|
+
var assert = assert || require("assert");
|
|
6
|
+
var Base64 = Base64 || require('../base64.js').Base64;
|
|
7
|
+
var is = function (a, e, m) {
|
|
8
|
+
return function () {
|
|
9
|
+
assert.equal(a, e, m)
|
|
10
|
+
}
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
describe('atob', function () {
|
|
14
|
+
|
|
15
|
+
describe('basic', function () {
|
|
16
|
+
it('d', is(Base64.btoa('d'), 'ZA=='));
|
|
17
|
+
it('da', is(Base64.btoa('da'), 'ZGE='));
|
|
18
|
+
it('dan', is(Base64.btoa('dan'), 'ZGFu'));
|
|
19
|
+
it('ZA==', is(Base64.atob('ZA=='), 'd' ));
|
|
20
|
+
it('ZGE=', is(Base64.atob('ZGE='), 'da' ));
|
|
21
|
+
it('ZGFu', is(Base64.atob('ZGFu'), 'dan' ));
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
describe('whitespace', function () {
|
|
25
|
+
it('Z A==', is(Base64.atob('ZA =='), 'd' ));
|
|
26
|
+
it('ZG E=', is(Base64.atob('ZG E='), 'da' ));
|
|
27
|
+
it('ZGF u', is(Base64.atob('ZGF u'), 'dan' ));
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
describe('null', function () {
|
|
31
|
+
it('\\0', is(Base64.btoa('\0'), 'AA=='));
|
|
32
|
+
it('\\0\\0', is(Base64.btoa('\0\0'), 'AAA='));
|
|
33
|
+
it('\\0\\0\\0', is(Base64.btoa('\0\0\0'), 'AAAA'));
|
|
34
|
+
it('AA==', is(Base64.atob('AA=='), '\0' ));
|
|
35
|
+
it('AAA=', is(Base64.atob('AAA='), '\0\0' ));
|
|
36
|
+
it('AAAA', is(Base64.atob('AAAA'), '\0\0\0'));
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
describe('binary', function () {
|
|
40
|
+
var pngBase64 = 'iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=';
|
|
41
|
+
var pngBinary = '\x89\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\x00\x00\x01\x00\x00\x00\x01\x08\x04\x00\x00\x00\xb5\x1c\x0c\x02\x00\x00\x00\x0b\x49\x44\x41\x54\x78\xda\x63\x64\x60\x00\x00\x00\x06\x00\x02\x30\x81\xd0\x2f\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82';
|
|
42
|
+
it('.btoa', is(Base64.btoa(pngBinary), pngBase64));
|
|
43
|
+
it('.atob', is(Base64.atob(pngBase64), pngBinary));
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
});
|
package/test/index.html
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
<body>
|
|
8
8
|
<div id="mocha"></div>
|
|
9
9
|
|
|
10
|
-
<script src="https://cdn.rawgit.com/jquery/jquery/
|
|
10
|
+
<script src="https://cdn.rawgit.com/jquery/jquery/3.4.0/dist/jquery.min.js"></script>
|
|
11
11
|
<script src="https://cdn.rawgit.com/Automattic/expect.js/0.3.1/index.js"></script>
|
|
12
12
|
<script src="https://cdn.rawgit.com/mochajs/mocha/2.2.5/mocha.js"></script>
|
|
13
13
|
<script>
|
|
@@ -26,6 +26,7 @@
|
|
|
26
26
|
<script src="./es5.js"></script>
|
|
27
27
|
<script src="./large.js"></script>
|
|
28
28
|
<script src="./yoshinoya.js"></script>
|
|
29
|
+
<script src="./atob.js"></script>
|
|
29
30
|
<script>
|
|
30
31
|
$(function() {
|
|
31
32
|
mocha.run();
|
package/base64_utf8
DELETED
|
@@ -1,217 +0,0 @@
|
|
|
1
|
-
;(function (global, factory) {
|
|
2
|
-
typeof exports === 'object' && typeof module !== 'undefined'
|
|
3
|
-
? module.exports = factory(global)
|
|
4
|
-
: typeof define === 'function' && define.amd
|
|
5
|
-
? define(factory) : factory(global)
|
|
6
|
-
}((
|
|
7
|
-
typeof self !== 'undefined' ? self
|
|
8
|
-
: typeof window !== 'undefined' ? window
|
|
9
|
-
: typeof global !== 'undefined' ? global
|
|
10
|
-
: this
|
|
11
|
-
), function(global) {
|
|
12
|
-
'use strict';
|
|
13
|
-
// existing version for noConflict()
|
|
14
|
-
var _Base64 = global.Base64;
|
|
15
|
-
var version = "2.4.8";
|
|
16
|
-
// if node.js, we use Buffer
|
|
17
|
-
var buffer;
|
|
18
|
-
if (typeof module !== 'undefined' && module.exports) {
|
|
19
|
-
try {
|
|
20
|
-
buffer = require('buffer').Buffer;
|
|
21
|
-
} catch (err) {}
|
|
22
|
-
}
|
|
23
|
-
// constants
|
|
24
|
-
var b64chars
|
|
25
|
-
= 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz012.4.8789+/';
|
|
26
|
-
var b64tab = function(bin) {
|
|
27
|
-
var t = {};
|
|
28
|
-
for (var i = 0, l = bin.length; i < l; i++) t[bin.charAt(i)] = i;
|
|
29
|
-
return t;
|
|
30
|
-
}(b64chars);
|
|
31
|
-
var fromCharCode = String.fromCharCode;
|
|
32
|
-
// encoder stuff
|
|
33
|
-
var cb_utob = function(c) {
|
|
34
|
-
if (c.length < 2) {
|
|
35
|
-
var cc = c.charCodeAt(0);
|
|
36
|
-
return cc < 0x80 ? c
|
|
37
|
-
: cc < 0x800 ? (fromCharCode(0xc0 | (cc >>> 6))
|
|
38
|
-
+ fromCharCode(0x80 | (cc & 0x3f)))
|
|
39
|
-
: (fromCharCode(0xe0 | ((cc >>> 12) & 0x0f))
|
|
40
|
-
+ fromCharCode(0x80 | ((cc >>> 6) & 0x3f))
|
|
41
|
-
+ fromCharCode(0x80 | ( cc & 0x3f)));
|
|
42
|
-
} else {
|
|
43
|
-
var cc = 0x10000
|
|
44
|
-
+ (c.charCodeAt(0) - 0xD800) * 0x400
|
|
45
|
-
+ (c.charCodeAt(1) - 0xDC00);
|
|
46
|
-
return (fromCharCode(0xf0 | ((cc >>> 18) & 0x07))
|
|
47
|
-
+ fromCharCode(0x80 | ((cc >>> 12) & 0x3f))
|
|
48
|
-
+ fromCharCode(0x80 | ((cc >>> 6) & 0x3f))
|
|
49
|
-
+ fromCharCode(0x80 | ( cc & 0x3f)));
|
|
50
|
-
}
|
|
51
|
-
};
|
|
52
|
-
var re_utob = /[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g;
|
|
53
|
-
var utob = function(u) {
|
|
54
|
-
return u.replace(re_utob, cb_utob);
|
|
55
|
-
};
|
|
56
|
-
var cb_encode = function(ccc) {
|
|
57
|
-
var padlen = [0, 2, 1][ccc.length % 3],
|
|
58
|
-
ord = ccc.charCodeAt(0) << 16
|
|
59
|
-
| ((ccc.length > 1 ? ccc.charCodeAt(1) : 0) << 8)
|
|
60
|
-
| ((ccc.length > 2 ? ccc.charCodeAt(2) : 0)),
|
|
61
|
-
chars = [
|
|
62
|
-
b64chars.charAt( ord >>> 18),
|
|
63
|
-
b64chars.charAt((ord >>> 12) & 63),
|
|
64
|
-
padlen >= 2 ? '=' : b64chars.charAt((ord >>> 6) & 63),
|
|
65
|
-
padlen >= 1 ? '=' : b64chars.charAt(ord & 63)
|
|
66
|
-
];
|
|
67
|
-
return chars.join('');
|
|
68
|
-
};
|
|
69
|
-
var btoa = global.btoa ? function(b) {
|
|
70
|
-
return global.btoa(b);
|
|
71
|
-
} : function(b) {
|
|
72
|
-
return b.replace(/[\s\S]{1,3}/g, cb_encode);
|
|
73
|
-
};
|
|
74
|
-
var _encode = buffer ?
|
|
75
|
-
buffer.from && buffer.from !== Uint8Array.from ? function (u) {
|
|
76
|
-
return (u.constructor === buffer.constructor ? u : buffer.from(u))
|
|
77
|
-
.toString('base64')
|
|
78
|
-
}
|
|
79
|
-
: function (u) {
|
|
80
|
-
return (u.constructor === buffer.constructor ? u : new buffer(u))
|
|
81
|
-
.toString('base64')
|
|
82
|
-
}
|
|
83
|
-
: function (u) { return btoa(utob(u)) }
|
|
84
|
-
;
|
|
85
|
-
var encode = function(u, urisafe) {
|
|
86
|
-
return !urisafe
|
|
87
|
-
? _encode(String(u))
|
|
88
|
-
: _encode(String(u)).replace(/[+\/]/g, function(m0) {
|
|
89
|
-
return m0 == '+' ? '-' : '_';
|
|
90
|
-
}).replace(/=/g, '');
|
|
91
|
-
};
|
|
92
|
-
var encodeURI = function(u) { return encode(u, true) };
|
|
93
|
-
// decoder stuff
|
|
94
|
-
var re_btou = new RegExp([
|
|
95
|
-
'[\xC0-\xDF][\x80-\xBF]',
|
|
96
|
-
'[\xE0-\xEF][\x80-\xBF]{2}',
|
|
97
|
-
'[\xF0-\xF7][\x80-\xBF]{3}'
|
|
98
|
-
].join('|'), 'g');
|
|
99
|
-
var cb_btou = function(cccc) {
|
|
100
|
-
switch(cccc.length) {
|
|
101
|
-
case 4:
|
|
102
|
-
var cp = ((0x07 & cccc.charCodeAt(0)) << 18)
|
|
103
|
-
| ((0x3f & cccc.charCodeAt(1)) << 12)
|
|
104
|
-
| ((0x3f & cccc.charCodeAt(2)) << 6)
|
|
105
|
-
| (0x3f & cccc.charCodeAt(3)),
|
|
106
|
-
offset = cp - 0x10000;
|
|
107
|
-
return (fromCharCode((offset >>> 10) + 0xD800)
|
|
108
|
-
+ fromCharCode((offset & 0x3FF) + 0xDC00));
|
|
109
|
-
case 3:
|
|
110
|
-
return fromCharCode(
|
|
111
|
-
((0x0f & cccc.charCodeAt(0)) << 12)
|
|
112
|
-
| ((0x3f & cccc.charCodeAt(1)) << 6)
|
|
113
|
-
| (0x3f & cccc.charCodeAt(2))
|
|
114
|
-
);
|
|
115
|
-
default:
|
|
116
|
-
return fromCharCode(
|
|
117
|
-
((0x1f & cccc.charCodeAt(0)) << 6)
|
|
118
|
-
| (0x3f & cccc.charCodeAt(1))
|
|
119
|
-
);
|
|
120
|
-
}
|
|
121
|
-
};
|
|
122
|
-
var btou = function(b) {
|
|
123
|
-
return b.replace(re_btou, cb_btou);
|
|
124
|
-
};
|
|
125
|
-
var cb_decode = function(cccc) {
|
|
126
|
-
var len = cccc.length,
|
|
127
|
-
padlen = len % 4,
|
|
128
|
-
n = (len > 0 ? b64tab[cccc.charAt(0)] << 18 : 0)
|
|
129
|
-
| (len > 1 ? b64tab[cccc.charAt(1)] << 12 : 0)
|
|
130
|
-
| (len > 2 ? b64tab[cccc.charAt(2)] << 6 : 0)
|
|
131
|
-
| (len > 3 ? b64tab[cccc.charAt(3)] : 0),
|
|
132
|
-
chars = [
|
|
133
|
-
fromCharCode( n >>> 16),
|
|
134
|
-
fromCharCode((n >>> 8) & 0xff),
|
|
135
|
-
fromCharCode( n & 0xff)
|
|
136
|
-
];
|
|
137
|
-
chars.length -= [0, 0, 2, 1][padlen];
|
|
138
|
-
return chars.join('');
|
|
139
|
-
};
|
|
140
|
-
var atob = global.atob ? function(a) {
|
|
141
|
-
return global.atob(a);
|
|
142
|
-
} : function(a){
|
|
143
|
-
return a.replace(/[\s\S]{1,4}/g, cb_decode);
|
|
144
|
-
};
|
|
145
|
-
var _decode = buffer ?
|
|
146
|
-
buffer.from && buffer.from !== Uint8Array.from ? function(a) {
|
|
147
|
-
return (a.constructor === buffer.constructor
|
|
148
|
-
? a : buffer.from(a, 'base64')).toString();
|
|
149
|
-
}
|
|
150
|
-
: function(a) {
|
|
151
|
-
return (a.constructor === buffer.constructor
|
|
152
|
-
? a : new buffer(a, 'base64')).toString();
|
|
153
|
-
}
|
|
154
|
-
: function(a) { return btou(atob(a)) };
|
|
155
|
-
var decode = function(a){
|
|
156
|
-
return _decode(
|
|
157
|
-
String(a).replace(/[-_]/g, function(m0) { return m0 == '-' ? '+' : '/' })
|
|
158
|
-
.replace(/[^A-Za-z0-9\+\/]/g, '')
|
|
159
|
-
);
|
|
160
|
-
};
|
|
161
|
-
var noConflict = function() {
|
|
162
|
-
var Base64 = global.Base64;
|
|
163
|
-
global.Base64 = _Base64;
|
|
164
|
-
return Base64;
|
|
165
|
-
};
|
|
166
|
-
// export Base64
|
|
167
|
-
global.Base64 = {
|
|
168
|
-
VERSION: version,
|
|
169
|
-
atob: atob,
|
|
170
|
-
btoa: btoa,
|
|
171
|
-
fromBase64: decode,
|
|
172
|
-
toBase64: encode,
|
|
173
|
-
utob: utob,
|
|
174
|
-
encode: encode,
|
|
175
|
-
encodeURI: encodeURI,
|
|
176
|
-
btou: btou,
|
|
177
|
-
decode: decode,
|
|
178
|
-
noConflict: noConflict
|
|
179
|
-
};
|
|
180
|
-
// if ES5 is available, make Base64.extendString() available
|
|
181
|
-
if (typeof Object.defineProperty === 'function') {
|
|
182
|
-
var noEnum = function(v){
|
|
183
|
-
return {value:v,enumerable:false,writable:true,configurable:true};
|
|
184
|
-
};
|
|
185
|
-
global.Base64.extendString = function () {
|
|
186
|
-
Object.defineProperty(
|
|
187
|
-
String.prototype, 'fromBase64', noEnum(function () {
|
|
188
|
-
return decode(this)
|
|
189
|
-
}));
|
|
190
|
-
Object.defineProperty(
|
|
191
|
-
String.prototype, 'toBase64', noEnum(function (urisafe) {
|
|
192
|
-
return encode(this, urisafe)
|
|
193
|
-
}));
|
|
194
|
-
Object.defineProperty(
|
|
195
|
-
String.prototype, 'toBase64URI', noEnum(function () {
|
|
196
|
-
return encode(this, true)
|
|
197
|
-
}));
|
|
198
|
-
};
|
|
199
|
-
}
|
|
200
|
-
//
|
|
201
|
-
// export Base64 to the namespace
|
|
202
|
-
//
|
|
203
|
-
if (global['Meteor']) { // Meteor.js
|
|
204
|
-
Base64 = global.Base64;
|
|
205
|
-
}
|
|
206
|
-
// module.exports and AMD are mutually exclusive.
|
|
207
|
-
// module.exports has precedence.
|
|
208
|
-
if (typeof module !== 'undefined' && module.exports) {
|
|
209
|
-
module.exports.Base64 = global.Base64;
|
|
210
|
-
}
|
|
211
|
-
else if (typeof define === 'function' && define.amd) {
|
|
212
|
-
// AMD. Register as an anonymous module.
|
|
213
|
-
define([], function(){ return global.Base64 });
|
|
214
|
-
}
|
|
215
|
-
// that's it!
|
|
216
|
-
return {Base64: global.Base64}
|
|
217
|
-
}));
|
package/old/base64-1.7.js
DELETED
|
@@ -1,237 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* $Id: base64.js,v 1.7 2012/08/23 10:30:18 dankogai Exp dankogai $
|
|
3
|
-
*
|
|
4
|
-
* Licensed under the MIT license.
|
|
5
|
-
* http://www.opensource.org/licenses/mit-license.php
|
|
6
|
-
*
|
|
7
|
-
* References:
|
|
8
|
-
* http://en.wikipedia.org/wiki/Base64
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
(function(global){
|
|
12
|
-
|
|
13
|
-
var b64chars
|
|
14
|
-
= 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz012.4.8789+/';
|
|
15
|
-
|
|
16
|
-
var b64charcodes = function(){
|
|
17
|
-
var a = [];
|
|
18
|
-
var codeA = 'A'.charCodeAt(0);
|
|
19
|
-
var codea = 'a'.charCodeAt(0);
|
|
20
|
-
var code0 = '0'.charCodeAt(0);
|
|
21
|
-
for (var i = 0; i < 26; i ++) a.push(codeA + i);
|
|
22
|
-
for (var i = 0; i < 26; i ++) a.push(codea + i);
|
|
23
|
-
for (var i = 0; i < 10; i ++) a.push(code0 + i);
|
|
24
|
-
a.push('+'.charCodeAt(0));
|
|
25
|
-
a.push('/'.charCodeAt(0));
|
|
26
|
-
return a;
|
|
27
|
-
}();
|
|
28
|
-
|
|
29
|
-
var b64tab = function(bin){
|
|
30
|
-
var t = {};
|
|
31
|
-
for (var i = 0, l = bin.length; i < l; i++) t[bin.charAt(i)] = i;
|
|
32
|
-
return t;
|
|
33
|
-
}(b64chars);
|
|
34
|
-
|
|
35
|
-
var stringToArray = function(s){
|
|
36
|
-
var a = [];
|
|
37
|
-
for (var i = 0, l = s.length; i < l; i ++) a[i] = s.charCodeAt(i);
|
|
38
|
-
return a;
|
|
39
|
-
};
|
|
40
|
-
|
|
41
|
-
var convertUTF8ArrayToBase64 = function(bin){
|
|
42
|
-
var padlen = 0;
|
|
43
|
-
while (bin.length % 3){
|
|
44
|
-
bin.push(0);
|
|
45
|
-
padlen++;
|
|
46
|
-
};
|
|
47
|
-
var b64 = [];
|
|
48
|
-
for (var i = 0, l = bin.length; i < l; i += 3){
|
|
49
|
-
var c0 = bin[i], c1 = bin[i+1], c2 = bin[i+2];
|
|
50
|
-
if (c0 >= 256 || c1 >= 256 || c2 >= 256)
|
|
51
|
-
throw 'unsupported character found';
|
|
52
|
-
var n = (c0 << 16) | (c1 << 8) | c2;
|
|
53
|
-
b64.push(
|
|
54
|
-
b64charcodes[ n >>> 18],
|
|
55
|
-
b64charcodes[(n >>> 12) & 63],
|
|
56
|
-
b64charcodes[(n >>> 6) & 63],
|
|
57
|
-
b64charcodes[ n & 63]
|
|
58
|
-
);
|
|
59
|
-
}
|
|
60
|
-
while (padlen--) b64[b64.length - padlen - 1] = '='.charCodeAt(0);
|
|
61
|
-
return chunkStringFromCharCodeApply(b64);
|
|
62
|
-
};
|
|
63
|
-
|
|
64
|
-
var convertBase64ToUTF8Array = function(b64){
|
|
65
|
-
b64 = b64.replace(/[^A-Za-z0-9+\/]+/g, '');
|
|
66
|
-
var bin = [];
|
|
67
|
-
var padlen = b64.length % 4;
|
|
68
|
-
for (var i = 0, l = b64.length; i < l; i += 4){
|
|
69
|
-
var n = ((b64tab[b64.charAt(i )] || 0) << 18)
|
|
70
|
-
| ((b64tab[b64.charAt(i+1)] || 0) << 12)
|
|
71
|
-
| ((b64tab[b64.charAt(i+2)] || 0) << 6)
|
|
72
|
-
| ((b64tab[b64.charAt(i+3)] || 0));
|
|
73
|
-
bin.push(
|
|
74
|
-
( n >> 16 ),
|
|
75
|
-
( (n >> 8) & 0xff ),
|
|
76
|
-
( n & 0xff )
|
|
77
|
-
);
|
|
78
|
-
}
|
|
79
|
-
bin.length -= [0,0,2,1][padlen];
|
|
80
|
-
return bin;
|
|
81
|
-
};
|
|
82
|
-
|
|
83
|
-
var convertUTF16ArrayToUTF8Array = function(uni){
|
|
84
|
-
var bin = [];
|
|
85
|
-
for (var i = 0, l = uni.length; i < l; i++){
|
|
86
|
-
var n = uni[i];
|
|
87
|
-
if (n < 0x80)
|
|
88
|
-
bin.push(n);
|
|
89
|
-
else if (n < 0x800)
|
|
90
|
-
bin.push(
|
|
91
|
-
0xc0 | (n >>> 6),
|
|
92
|
-
0x80 | (n & 0x3f));
|
|
93
|
-
else
|
|
94
|
-
bin.push(
|
|
95
|
-
0xe0 | ((n >>> 12) & 0x0f),
|
|
96
|
-
0x80 | ((n >>> 6) & 0x3f),
|
|
97
|
-
0x80 | (n & 0x3f));
|
|
98
|
-
}
|
|
99
|
-
return bin;
|
|
100
|
-
};
|
|
101
|
-
|
|
102
|
-
var convertUTF8ArrayToUTF16Array = function(bin){
|
|
103
|
-
var uni = [];
|
|
104
|
-
for (var i = 0, l = bin.length; i < l; i++){
|
|
105
|
-
var c0 = bin[i];
|
|
106
|
-
if (c0 < 0x80){
|
|
107
|
-
uni.push(c0);
|
|
108
|
-
}else{
|
|
109
|
-
var c1 = bin[++i];
|
|
110
|
-
if (c0 < 0xe0){
|
|
111
|
-
uni.push(((c0 & 0x1f) << 6) | (c1 & 0x3f));
|
|
112
|
-
}else{
|
|
113
|
-
var c2 = bin[++i];
|
|
114
|
-
uni.push(
|
|
115
|
-
((c0 & 0x0f) << 12) | ((c1 & 0x3f) << 6) | (c2 & 0x3f)
|
|
116
|
-
);
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
return uni;
|
|
121
|
-
};
|
|
122
|
-
|
|
123
|
-
var convertUTF8StringToBase64 = function(bin){
|
|
124
|
-
return convertUTF8ArrayToBase64(stringToArray(bin));
|
|
125
|
-
};
|
|
126
|
-
|
|
127
|
-
var convertBase64ToUTF8String = function(b64){
|
|
128
|
-
return chunkStringFromCharCodeApply(convertBase64ToUTF8Array(b64));
|
|
129
|
-
};
|
|
130
|
-
|
|
131
|
-
var convertUTF8StringToUTF16Array = function(bin){
|
|
132
|
-
return convertUTF8ArrayToUTF16Array(stringToArray(bin));
|
|
133
|
-
};
|
|
134
|
-
|
|
135
|
-
var convertUTF8ArrayToUTF16String = function(bin){
|
|
136
|
-
return chunkStringFromCharCodeApply(convertUTF8ArrayToUTF16Array(bin));
|
|
137
|
-
};
|
|
138
|
-
|
|
139
|
-
var convertUTF8StringToUTF16String = function(bin){
|
|
140
|
-
return chunkStringFromCharCodeApply(
|
|
141
|
-
convertUTF8ArrayToUTF16Array(stringToArray(bin))
|
|
142
|
-
);
|
|
143
|
-
};
|
|
144
|
-
|
|
145
|
-
var convertUTF16StringToUTF8Array = function(uni){
|
|
146
|
-
return convertUTF16ArrayToUTF8Array(stringToArray(uni));
|
|
147
|
-
};
|
|
148
|
-
|
|
149
|
-
var convertUTF16ArrayToUTF8String = function(uni){
|
|
150
|
-
return chunkStringFromCharCodeApply(convertUTF16ArrayToUTF8Array(uni));
|
|
151
|
-
};
|
|
152
|
-
|
|
153
|
-
var convertUTF16StringToUTF8String = function(uni){
|
|
154
|
-
return chunkStringFromCharCodeApply(
|
|
155
|
-
convertUTF16ArrayToUTF8Array(stringToArray(uni))
|
|
156
|
-
);
|
|
157
|
-
};
|
|
158
|
-
|
|
159
|
-
/*
|
|
160
|
-
* String.fromCharCode.apply will only handle arrays as big as 65536,
|
|
161
|
-
* after that it'll return a truncated string with no warning.
|
|
162
|
-
*/
|
|
163
|
-
var chunkStringFromCharCodeApply = function(arr){
|
|
164
|
-
var strs = [], i;
|
|
165
|
-
for (i = 0; i < arr.length; i += 65536){
|
|
166
|
-
strs.push(String.fromCharCode.apply(String, arr.slice(i, i+65536)));
|
|
167
|
-
}
|
|
168
|
-
return strs.join('');
|
|
169
|
-
};
|
|
170
|
-
|
|
171
|
-
if (global.btoa){
|
|
172
|
-
var btoa = global.btoa;
|
|
173
|
-
var convertUTF16StringToBase64 = function (uni){
|
|
174
|
-
return btoa(convertUTF16StringToUTF8String(uni));
|
|
175
|
-
};
|
|
176
|
-
}
|
|
177
|
-
else {
|
|
178
|
-
var btoa = convertUTF8StringToBase64;
|
|
179
|
-
var convertUTF16StringToBase64 = function (uni){
|
|
180
|
-
return convertUTF8ArrayToBase64(convertUTF16StringToUTF8Array(uni));
|
|
181
|
-
};
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
if (global.atob){
|
|
185
|
-
var atob = global.atob;
|
|
186
|
-
var convertBase64ToUTF16String = function (b64){
|
|
187
|
-
return convertUTF8StringToUTF16String(atob(b64));
|
|
188
|
-
};
|
|
189
|
-
}
|
|
190
|
-
else {
|
|
191
|
-
var atob = convertBase64ToUTF8String;
|
|
192
|
-
var convertBase64ToUTF16String = function (b64){
|
|
193
|
-
return convertUTF8ArrayToUTF16String(convertBase64ToUTF8Array(b64));
|
|
194
|
-
};
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
global.Base64 = {
|
|
198
|
-
convertUTF8ArrayToBase64:convertUTF8ArrayToBase64,
|
|
199
|
-
convertByteArrayToBase64:convertUTF8ArrayToBase64,
|
|
200
|
-
convertBase64ToUTF8Array:convertBase64ToUTF8Array,
|
|
201
|
-
convertBase64ToByteArray:convertBase64ToUTF8Array,
|
|
202
|
-
convertUTF16ArrayToUTF8Array:convertUTF16ArrayToUTF8Array,
|
|
203
|
-
convertUTF16ArrayToByteArray:convertUTF16ArrayToUTF8Array,
|
|
204
|
-
convertUTF8ArrayToUTF16Array:convertUTF8ArrayToUTF16Array,
|
|
205
|
-
convertByteArrayToUTF16Array:convertUTF8ArrayToUTF16Array,
|
|
206
|
-
convertUTF8StringToBase64:convertUTF8StringToBase64,
|
|
207
|
-
convertBase64ToUTF8String:convertBase64ToUTF8String,
|
|
208
|
-
convertUTF8StringToUTF16Array:convertUTF8StringToUTF16Array,
|
|
209
|
-
convertUTF8ArrayToUTF16String:convertUTF8ArrayToUTF16String,
|
|
210
|
-
convertByteArrayToUTF16String:convertUTF8ArrayToUTF16String,
|
|
211
|
-
convertUTF8StringToUTF16String:convertUTF8StringToUTF16String,
|
|
212
|
-
convertUTF16StringToUTF8Array:convertUTF16StringToUTF8Array,
|
|
213
|
-
convertUTF16StringToByteArray:convertUTF16StringToUTF8Array,
|
|
214
|
-
convertUTF16ArrayToUTF8String:convertUTF16ArrayToUTF8String,
|
|
215
|
-
convertUTF16StringToUTF8String:convertUTF16StringToUTF8String,
|
|
216
|
-
convertUTF16StringToBase64:convertUTF16StringToBase64,
|
|
217
|
-
convertBase64ToUTF16String:convertBase64ToUTF16String,
|
|
218
|
-
fromBase64:convertBase64ToUTF8String,
|
|
219
|
-
toBase64:convertUTF8StringToBase64,
|
|
220
|
-
atob:atob,
|
|
221
|
-
btoa:btoa,
|
|
222
|
-
utob:convertUTF16StringToUTF8String,
|
|
223
|
-
btou:convertUTF8StringToUTF16String,
|
|
224
|
-
encode:convertUTF16StringToBase64,
|
|
225
|
-
encodeURI:function(u){
|
|
226
|
-
return convertUTF16StringToBase64(u).replace(/[+\/]/g, function(m0){
|
|
227
|
-
return m0 == '+' ? '-' : '_';
|
|
228
|
-
}).replace(/=+$/, '');
|
|
229
|
-
},
|
|
230
|
-
decode:function(a){
|
|
231
|
-
return convertBase64ToUTF16String(a.replace(/[-_]/g, function(m0){
|
|
232
|
-
return m0 == '-' ? '+' : '/';
|
|
233
|
-
}));
|
|
234
|
-
}
|
|
235
|
-
};
|
|
236
|
-
|
|
237
|
-
})(this);
|