js-base64 2.4.6 → 2.5.0

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.
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -655,7 +655,7 @@ var matchSigned = /[+-]?\d+/; // -inf - inf
655
655
  var matchOffset = /Z|[+-]\d\d:?\d\d/gi; // +00:00 -00:00 +0000 -0000 or Z
656
656
  var matchShortOffset = /Z|[+-]\d\d(?::?\d\d)?/gi; // +00 -00 +00:00 -00:00 +0000 -0000 or Z
657
657
 
658
- var matchTimestamp = /[+-]?\d+(\.\d{1,3})?/; // 123456789 123456789.123
658
+ var matchTimestamp = /[+-]?\d+(\.\d{1,3})?/; // 12.4.8789 123456789.123
659
659
 
660
660
  // any word (or two) characters or numbers including two/three word month in arabic.
661
661
  // includes scottish gaelic two word and hyphenated months
File without changes
package/README.md CHANGED
@@ -13,10 +13,10 @@ $ npm install --save js-base64
13
13
  If you are using it on ES6 transpilers, you may also need:
14
14
 
15
15
  ```javascript
16
- $ npm install --save babel-preset-es2015
16
+ $ npm install --save babel-preset-env
17
17
  ```
18
18
 
19
- 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-es2015": "^6.24.1"` is on `devDependencies`.
19
+ 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`.
20
20
 
21
21
 
22
22
  ## Usage
package/base64.js CHANGED
@@ -21,13 +21,15 @@
21
21
  'use strict';
22
22
  // existing version for noConflict()
23
23
  var _Base64 = global.Base64;
24
- var version = "2.4.6";
25
- // if node.js, we use Buffer
24
+ var version = "2.5.0";
25
+ // if node.js and NOT React Native, we use Buffer
26
26
  var buffer;
27
27
  if (typeof module !== 'undefined' && module.exports) {
28
28
  try {
29
- buffer = require('buffer').Buffer;
30
- } catch (err) {}
29
+ buffer = eval("require('buffer').Buffer");
30
+ } catch (err) {
31
+ buffer = undefined;
32
+ }
31
33
  }
32
34
  // constants
33
35
  var b64chars
@@ -147,10 +149,13 @@
147
149
  chars.length -= [0, 0, 2, 1][padlen];
148
150
  return chars.join('');
149
151
  };
150
- var atob = global.atob ? function(a) {
152
+ var _atob = global.atob ? function(a) {
151
153
  return global.atob(a);
152
154
  } : function(a){
153
- return a.replace(/[\s\S]{1,4}/g, cb_decode);
155
+ return a.replace(/\S{1,4}/g, cb_decode);
156
+ };
157
+ var atob = function(a) {
158
+ return _atob(String(a).replace(/[^A-Za-z0-9\+\/]/g, ''));
154
159
  };
155
160
  var _decode = buffer ?
156
161
  buffer.from && Uint8Array && buffer.from !== Uint8Array.from
@@ -162,7 +167,7 @@
162
167
  return (a.constructor === buffer.constructor
163
168
  ? a : new buffer(a, 'base64')).toString();
164
169
  }
165
- : function(a) { return btou(atob(a)) };
170
+ : function(a) { return btou(_atob(a)) };
166
171
  var decode = function(a){
167
172
  return _decode(
168
173
  String(a).replace(/[-_]/g, function(m0) { return m0 == '-' ? '+' : '/' })
@@ -186,7 +191,8 @@
186
191
  encodeURI: encodeURI,
187
192
  btou: btou,
188
193
  decode: decode,
189
- noConflict: noConflict
194
+ noConflict: noConflict,
195
+ __buffer__: buffer
190
196
  };
191
197
  // if ES5 is available, make Base64.extendString() available
192
198
  if (typeof Object.defineProperty === 'function') {
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.4.6";var buffer;if(typeof module!=="undefined"&&module.exports){try{buffer=require("buffer").Buffer}catch(err){}}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=buffer?buffer.from&&Uint8Array&&buffer.from!==Uint8Array.from?function(u){return(u.constructor===buffer.constructor?u:buffer.from(u)).toString("base64")}:function(u){return(u.constructor===buffer.constructor?u:new buffer(u)).toString("base64")}:function(u){return btoa(utob(u))};var encode=function(u,urisafe){return!urisafe?_encode(String(u)):_encode(String(u)).replace(/[+\/]/g,function(m0){return m0=="+"?"-":"_"}).replace(/=/g,"")};var encodeURI=function(u){return encode(u,true)};var re_btou=new RegExp(["[À-ß][€-¿]","[à-ï][€-¿]{2}","[ð-÷][€-¿]{3}"].join("|"),"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\S]{1,4}/g,cb_decode)};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};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}});
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.5.0";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=buffer?buffer.from&&Uint8Array&&buffer.from!==Uint8Array.from?function(u){return(u.constructor===buffer.constructor?u:buffer.from(u)).toString("base64")}:function(u){return(u.constructor===buffer.constructor?u:new buffer(u)).toString("base64")}:function(u){return btoa(utob(u))};var encode=function(u,urisafe){return!urisafe?_encode(String(u)):_encode(String(u)).replace(/[+\/]/g,function(m0){return m0=="+"?"-":"_"}).replace(/=/g,"")};var encodeURI=function(u){return encode(u,true)};var re_btou=new RegExp(["[À-ß][€-¿]","[à-ï][€-¿]{2}","[ð-÷][€-¿]{3}"].join("|"),"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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "js-base64",
3
- "version": "2.4.6",
3
+ "version": "2.5.0",
4
4
  "license": "BSD-3-Clause",
5
5
  "main": [
6
6
  "./base64.js"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "js-base64",
3
- "version": "2.4.6",
3
+ "version": "2.5.0",
4
4
  "description": "Yet another Base64 transcoder in pure-JS",
5
5
  "main": "base64.js",
6
6
  "directories": {
@@ -10,7 +10,7 @@
10
10
  "test": "mocha --compilers js:babel-register"
11
11
  },
12
12
  "devDependencies": {
13
- "babel-preset-es2015": "^6.24.1",
13
+ "babel-preset-env": "^1.7.0",
14
14
  "babel-register": "^6.26.0",
15
15
  "mocha": "*"
16
16
  },
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
@@ -13,7 +13,7 @@
13
13
  <script>
14
14
  mocha.setup('bdd');
15
15
  </script>
16
- <script src="../base64.min.js"></script>
16
+ <script src="../base64.js"></script>
17
17
  <script>
18
18
  var assert = function(expr, msg) {
19
19
  if (!expr) throw new Error(msg || 'failed');
@@ -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.6";
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
- = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
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
- = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
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);