js-base64 2.3.1 → 2.4.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/.babelrc ADDED
@@ -0,0 +1,3 @@
1
+ {
2
+ "presets": [ "es2015" ]
3
+ }
package/.travis.yml CHANGED
@@ -1,4 +1,5 @@
1
1
  language: node_js
2
2
  node_js:
3
3
  - "node"
4
- - "iojs"
4
+
5
+
package/README.md CHANGED
@@ -18,6 +18,12 @@ Yet another Base64 transcoder
18
18
  var Base64 = require('js-base64').Base64;
19
19
  ```
20
20
 
21
+ ## es6+
22
+
23
+ ```javascript
24
+ import { Base64 } from 'js-base64';
25
+ ```
26
+
21
27
  ### npm
22
28
 
23
29
  ```javascript
package/base64.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*
2
- * $Id: base64.js,v 2.15 2014/04/05 12:58:57 dankogai Exp dankogai $
2
+ * base64.js
3
3
  *
4
4
  * Licensed under the BSD 3-Clause License.
5
5
  * http://opensource.org/licenses/BSD-3-Clause
@@ -7,12 +7,21 @@
7
7
  * References:
8
8
  * http://en.wikipedia.org/wiki/Base64
9
9
  */
10
-
11
- (function(global) {
10
+ ;(function (global, factory) {
11
+ typeof exports === 'object' && typeof module !== 'undefined'
12
+ ? module.exports = factory(global)
13
+ : typeof define === 'function' && define.amd
14
+ ? define(factory) : null
15
+ }((
16
+ typeof self !== 'undefined' ? self
17
+ : typeof window !== 'undefined' ? window
18
+ : typeof global !== 'undefined' ? global
19
+ : this
20
+ ), function(global) {
12
21
  'use strict';
13
22
  // existing version for noConflict()
14
23
  var _Base64 = global.Base64;
15
- var version = "2.3.1";
24
+ var version = "2.4.2";
16
25
  // if node.js, we use Buffer
17
26
  var buffer;
18
27
  if (typeof module !== 'undefined' && module.exports) {
@@ -72,7 +81,7 @@
72
81
  return b.replace(/[\s\S]{1,3}/g, cb_encode);
73
82
  };
74
83
  var _encode = buffer ?
75
- buffer.from ? function (u) {
84
+ buffer.from && buffer.from !== Uint8Array.from ? function (u) {
76
85
  return (u.constructor === buffer.constructor ? u : buffer.from(u))
77
86
  .toString('base64')
78
87
  }
@@ -143,7 +152,7 @@
143
152
  return a.replace(/[\s\S]{1,4}/g, cb_decode);
144
153
  };
145
154
  var _decode = buffer ?
146
- buffer.from ? function(a) {
155
+ buffer.from && buffer.from !== Uint8Array.from ? function(a) {
147
156
  return (a.constructor === buffer.constructor
148
157
  ? a : buffer.from(a, 'base64')).toString();
149
158
  }
@@ -208,13 +217,10 @@
208
217
  if (typeof module !== 'undefined' && module.exports) {
209
218
  module.exports.Base64 = global.Base64;
210
219
  }
211
- else if (typeof define === 'function' && define.amd) {
212
- // AMD. Register as an anonymous module.
220
+ else if (typeof define === 'function' && define.amd) {
221
+ // AMD. Register as an anonymous module.
213
222
  define([], function(){ return global.Base64 });
214
223
  }
215
224
  // that's it!
216
- })( typeof self !== 'undefined' ? self
217
- : typeof window !== 'undefined' ? window
218
- : typeof global !== 'undefined' ? global
219
- : this
220
- );
225
+ return {Base64: global.Base64}
226
+ }));
package/base64.js.bak ADDED
@@ -0,0 +1,226 @@
1
+ /*
2
+ * base64.js
3
+ *
4
+ * Licensed under the BSD 3-Clause License.
5
+ * http://opensource.org/licenses/BSD-3-Clause
6
+ *
7
+ * References:
8
+ * http://en.wikipedia.org/wiki/Base64
9
+ */
10
+ ;(function (global, factory) {
11
+ typeof exports === 'object' && typeof module !== 'undefined'
12
+ ? module.exports = factory(global)
13
+ : typeof define === 'function' && define.amd
14
+ ? define(factory) : null
15
+ }((
16
+ typeof self !== 'undefined' ? self
17
+ : typeof window !== 'undefined' ? window
18
+ : typeof global !== 'undefined' ? global
19
+ : this
20
+ ), function(global) {
21
+ 'use strict';
22
+ // existing version for noConflict()
23
+ var _Base64 = global.Base64;
24
+ var version = "2.4.1";
25
+ // if node.js, we use Buffer
26
+ var buffer;
27
+ if (typeof module !== 'undefined' && module.exports) {
28
+ try {
29
+ buffer = require('buffer').Buffer;
30
+ } catch (err) {}
31
+ }
32
+ // constants
33
+ var b64chars
34
+ = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
35
+ var b64tab = function(bin) {
36
+ var t = {};
37
+ for (var i = 0, l = bin.length; i < l; i++) t[bin.charAt(i)] = i;
38
+ return t;
39
+ }(b64chars);
40
+ var fromCharCode = String.fromCharCode;
41
+ // encoder stuff
42
+ var cb_utob = function(c) {
43
+ if (c.length < 2) {
44
+ var cc = c.charCodeAt(0);
45
+ return cc < 0x80 ? c
46
+ : cc < 0x800 ? (fromCharCode(0xc0 | (cc >>> 6))
47
+ + fromCharCode(0x80 | (cc & 0x3f)))
48
+ : (fromCharCode(0xe0 | ((cc >>> 12) & 0x0f))
49
+ + fromCharCode(0x80 | ((cc >>> 6) & 0x3f))
50
+ + fromCharCode(0x80 | ( cc & 0x3f)));
51
+ } else {
52
+ var cc = 0x10000
53
+ + (c.charCodeAt(0) - 0xD800) * 0x400
54
+ + (c.charCodeAt(1) - 0xDC00);
55
+ return (fromCharCode(0xf0 | ((cc >>> 18) & 0x07))
56
+ + fromCharCode(0x80 | ((cc >>> 12) & 0x3f))
57
+ + fromCharCode(0x80 | ((cc >>> 6) & 0x3f))
58
+ + fromCharCode(0x80 | ( cc & 0x3f)));
59
+ }
60
+ };
61
+ var re_utob = /[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g;
62
+ var utob = function(u) {
63
+ return u.replace(re_utob, cb_utob);
64
+ };
65
+ var cb_encode = function(ccc) {
66
+ var padlen = [0, 2, 1][ccc.length % 3],
67
+ ord = ccc.charCodeAt(0) << 16
68
+ | ((ccc.length > 1 ? ccc.charCodeAt(1) : 0) << 8)
69
+ | ((ccc.length > 2 ? ccc.charCodeAt(2) : 0)),
70
+ chars = [
71
+ b64chars.charAt( ord >>> 18),
72
+ b64chars.charAt((ord >>> 12) & 63),
73
+ padlen >= 2 ? '=' : b64chars.charAt((ord >>> 6) & 63),
74
+ padlen >= 1 ? '=' : b64chars.charAt(ord & 63)
75
+ ];
76
+ return chars.join('');
77
+ };
78
+ var btoa = global.btoa ? function(b) {
79
+ return global.btoa(b);
80
+ } : function(b) {
81
+ return b.replace(/[\s\S]{1,3}/g, cb_encode);
82
+ };
83
+ var _encode = buffer ?
84
+ buffer.from && buffer.from !== Uint8Array.from ? function (u) {
85
+ return (u.constructor === buffer.constructor ? u : buffer.from(u))
86
+ .toString('base64')
87
+ }
88
+ : function (u) {
89
+ return (u.constructor === buffer.constructor ? u : new buffer(u))
90
+ .toString('base64')
91
+ }
92
+ : function (u) { return btoa(utob(u)) }
93
+ ;
94
+ var encode = function(u, urisafe) {
95
+ return !urisafe
96
+ ? _encode(String(u))
97
+ : _encode(String(u)).replace(/[+\/]/g, function(m0) {
98
+ return m0 == '+' ? '-' : '_';
99
+ }).replace(/=/g, '');
100
+ };
101
+ var encodeURI = function(u) { return encode(u, true) };
102
+ // decoder stuff
103
+ var re_btou = new RegExp([
104
+ '[\xC0-\xDF][\x80-\xBF]',
105
+ '[\xE0-\xEF][\x80-\xBF]{2}',
106
+ '[\xF0-\xF7][\x80-\xBF]{3}'
107
+ ].join('|'), 'g');
108
+ var cb_btou = function(cccc) {
109
+ switch(cccc.length) {
110
+ case 4:
111
+ var cp = ((0x07 & cccc.charCodeAt(0)) << 18)
112
+ | ((0x3f & cccc.charCodeAt(1)) << 12)
113
+ | ((0x3f & cccc.charCodeAt(2)) << 6)
114
+ | (0x3f & cccc.charCodeAt(3)),
115
+ offset = cp - 0x10000;
116
+ return (fromCharCode((offset >>> 10) + 0xD800)
117
+ + fromCharCode((offset & 0x3FF) + 0xDC00));
118
+ case 3:
119
+ return fromCharCode(
120
+ ((0x0f & cccc.charCodeAt(0)) << 12)
121
+ | ((0x3f & cccc.charCodeAt(1)) << 6)
122
+ | (0x3f & cccc.charCodeAt(2))
123
+ );
124
+ default:
125
+ return fromCharCode(
126
+ ((0x1f & cccc.charCodeAt(0)) << 6)
127
+ | (0x3f & cccc.charCodeAt(1))
128
+ );
129
+ }
130
+ };
131
+ var btou = function(b) {
132
+ return b.replace(re_btou, cb_btou);
133
+ };
134
+ var cb_decode = function(cccc) {
135
+ var len = cccc.length,
136
+ padlen = len % 4,
137
+ n = (len > 0 ? b64tab[cccc.charAt(0)] << 18 : 0)
138
+ | (len > 1 ? b64tab[cccc.charAt(1)] << 12 : 0)
139
+ | (len > 2 ? b64tab[cccc.charAt(2)] << 6 : 0)
140
+ | (len > 3 ? b64tab[cccc.charAt(3)] : 0),
141
+ chars = [
142
+ fromCharCode( n >>> 16),
143
+ fromCharCode((n >>> 8) & 0xff),
144
+ fromCharCode( n & 0xff)
145
+ ];
146
+ chars.length -= [0, 0, 2, 1][padlen];
147
+ return chars.join('');
148
+ };
149
+ var atob = global.atob ? function(a) {
150
+ return global.atob(a);
151
+ } : function(a){
152
+ return a.replace(/[\s\S]{1,4}/g, cb_decode);
153
+ };
154
+ var _decode = buffer ?
155
+ buffer.from && buffer.from !== Uint8Array.from ? function(a) {
156
+ return (a.constructor === buffer.constructor
157
+ ? a : buffer.from(a, 'base64')).toString();
158
+ }
159
+ : function(a) {
160
+ return (a.constructor === buffer.constructor
161
+ ? a : new buffer(a, 'base64')).toString();
162
+ }
163
+ : function(a) { return btou(atob(a)) };
164
+ var decode = function(a){
165
+ return _decode(
166
+ String(a).replace(/[-_]/g, function(m0) { return m0 == '-' ? '+' : '/' })
167
+ .replace(/[^A-Za-z0-9\+\/]/g, '')
168
+ );
169
+ };
170
+ var noConflict = function() {
171
+ var Base64 = global.Base64;
172
+ global.Base64 = _Base64;
173
+ return Base64;
174
+ };
175
+ // export Base64
176
+ global.Base64 = {
177
+ VERSION: version,
178
+ atob: atob,
179
+ btoa: btoa,
180
+ fromBase64: decode,
181
+ toBase64: encode,
182
+ utob: utob,
183
+ encode: encode,
184
+ encodeURI: encodeURI,
185
+ btou: btou,
186
+ decode: decode,
187
+ noConflict: noConflict
188
+ };
189
+ // if ES5 is available, make Base64.extendString() available
190
+ if (typeof Object.defineProperty === 'function') {
191
+ var noEnum = function(v){
192
+ return {value:v,enumerable:false,writable:true,configurable:true};
193
+ };
194
+ global.Base64.extendString = function () {
195
+ Object.defineProperty(
196
+ String.prototype, 'fromBase64', noEnum(function () {
197
+ return decode(this)
198
+ }));
199
+ Object.defineProperty(
200
+ String.prototype, 'toBase64', noEnum(function (urisafe) {
201
+ return encode(this, urisafe)
202
+ }));
203
+ Object.defineProperty(
204
+ String.prototype, 'toBase64URI', noEnum(function () {
205
+ return encode(this, true)
206
+ }));
207
+ };
208
+ }
209
+ //
210
+ // export Base64 to the namespace
211
+ //
212
+ if (global['Meteor']) { // Meteor.js
213
+ Base64 = global.Base64;
214
+ }
215
+ // module.exports and AMD are mutually exclusive.
216
+ // module.exports has precedence.
217
+ if (typeof module !== 'undefined' && module.exports) {
218
+ module.exports.Base64 = global.Base64;
219
+ }
220
+ else if (typeof define === 'function' && define.amd) {
221
+ // AMD. Register as an anonymous module.
222
+ define([], function(){ return global.Base64 });
223
+ }
224
+ // that's it!
225
+ return {Base64: global.Base64}
226
+ }));
package/base64.min.js CHANGED
@@ -1 +1 @@
1
- (function(global){"use strict";var _Base64=global.Base64;var version="2.3.1";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?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?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})}})(typeof self!=="undefined"?self:typeof window!=="undefined"?window:typeof global!=="undefined"?global:this);
1
+ (function(global,factory){typeof exports==="object"&&typeof module!=="undefined"?module.exports=factory(global):typeof define==="function"&&define.amd?define(factory):null})(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.2";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&&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&&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}});
@@ -0,0 +1 @@
1
+ (function(global,factory){typeof exports==="object"&&typeof module!=="undefined"?module.exports=factory(global):typeof define==="function"&&define.amd?define(factory):null})(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.1";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&&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&&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}});
package/base64_utf8 CHANGED
@@ -1,11 +1,24 @@
1
- (function(global) {
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) : null
6
+ }((
7
+ typeof self !== 'undefined' ? self
8
+ : typeof window !== 'undefined' ? window
9
+ : typeof global !== 'undefined' ? global
10
+ : this
11
+ ), function(global) {
2
12
  'use strict';
3
- if (global.Base64) return;
4
- var version = "2.1.1";
13
+ // existing version for noConflict()
14
+ var _Base64 = global.Base64;
15
+ var version = "2.4.2";
5
16
  // if node.js, we use Buffer
6
17
  var buffer;
7
18
  if (typeof module !== 'undefined' && module.exports) {
8
- buffer = require('buffer').Buffer;
19
+ try {
20
+ buffer = require('buffer').Buffer;
21
+ } catch (err) {}
9
22
  }
10
23
  // constants
11
24
  var b64chars
@@ -53,17 +66,26 @@
53
66
  ];
54
67
  return chars.join('');
55
68
  };
56
- var btoa = global.btoa || function(b) {
69
+ var btoa = global.btoa ? function(b) {
70
+ return global.btoa(b);
71
+ } : function(b) {
57
72
  return b.replace(/[\s\S]{1,3}/g, cb_encode);
58
73
  };
59
- var _encode = buffer
60
- ? function (u) { return _utf8_encode((new buffer(u)).toString('base64')) }
61
- : function (u) { return _utf8_encode(btoa(utob(u))) }
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)) }
62
84
  ;
63
85
  var encode = function(u, urisafe) {
64
- return !urisafe
65
- ? _encode(u)
66
- : _encode(u).replace(/[+\/]/g, function(m0) {
86
+ return !urisafe
87
+ ? _encode(String(u))
88
+ : _encode(String(u)).replace(/[+\/]/g, function(m0) {
67
89
  return m0 == '+' ? '-' : '_';
68
90
  }).replace(/=/g, '');
69
91
  };
@@ -97,60 +119,6 @@
97
119
  );
98
120
  }
99
121
  };
100
- var _utf8_encode = function ( string ) {
101
- string = string.replace(/\r\n/g,"\n");
102
- var utftext = "";
103
-
104
- for (var n = 0; n < string.length; n++) {
105
-
106
- var c = string.charCodeAt(n);
107
-
108
- if (c < 128) {
109
- utftext += String.fromCharCode(c);
110
- }
111
- else if((c > 127) && (c < 2048)) {
112
- utftext += String.fromCharCode((c >> 6) | 192);
113
- utftext += String.fromCharCode((c & 63) | 128);
114
- }
115
- else {
116
- utftext += String.fromCharCode((c >> 12) | 224);
117
- utftext += String.fromCharCode(((c >> 6) & 63) | 128);
118
- utftext += String.fromCharCode((c & 63) | 128);
119
- }
120
-
121
- }
122
-
123
- return utftext;
124
- };
125
- var _utf8_decode = function (utftext) {
126
- var string = "";
127
- var i = 0;
128
- var c = c1 = c2 = 0;
129
-
130
- while ( i < utftext.length ) {
131
-
132
- c = utftext.charCodeAt(i);
133
-
134
- if (c < 128) {
135
- string += String.fromCharCode(c);
136
- i++;
137
- }
138
- else if((c > 191) && (c < 224)) {
139
- c2 = utftext.charCodeAt(i+1);
140
- string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
141
- i += 2;
142
- }
143
- else {
144
- c2 = utftext.charCodeAt(i+1);
145
- c3 = utftext.charCodeAt(i+2);
146
- string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
147
- i += 3;
148
- }
149
-
150
- }
151
-
152
- return string;
153
- };
154
122
  var btou = function(b) {
155
123
  return b.replace(re_btou, cb_btou);
156
124
  };
@@ -169,19 +137,32 @@
169
137
  chars.length -= [0, 0, 2, 1][padlen];
170
138
  return chars.join('');
171
139
  };
172
- var atob = global.atob || function(a){
140
+ var atob = global.atob ? function(a) {
141
+ return global.atob(a);
142
+ } : function(a){
173
143
  return a.replace(/[\s\S]{1,4}/g, cb_decode);
174
144
  };
175
- var _decode = buffer
176
- ? function(a) { return (new buffer(a, 'base64')).toString() }
177
- : function(a) { return btou(atob(a)) };
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)) };
178
155
  var decode = function(a){
179
- a = _utf8_decode( a );
180
156
  return _decode(
181
- a.replace(/[-_]/g, function(m0) { return m0 == '-' ? '+' : '/' })
157
+ String(a).replace(/[-_]/g, function(m0) { return m0 == '-' ? '+' : '/' })
182
158
  .replace(/[^A-Za-z0-9\+\/]/g, '')
183
159
  );
184
160
  };
161
+ var noConflict = function() {
162
+ var Base64 = global.Base64;
163
+ global.Base64 = _Base64;
164
+ return Base64;
165
+ };
185
166
  // export Base64
186
167
  global.Base64 = {
187
168
  VERSION: version,
@@ -193,7 +174,8 @@
193
174
  encode: encode,
194
175
  encodeURI: encodeURI,
195
176
  btou: btou,
196
- decode: decode
177
+ decode: decode,
178
+ noConflict: noConflict
197
179
  };
198
180
  // if ES5 is available, make Base64.extendString() available
199
181
  if (typeof Object.defineProperty === 'function') {
@@ -215,5 +197,21 @@
215
197
  }));
216
198
  };
217
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
+ }
218
215
  // that's it!
219
- })(this);
216
+ return {Base64: global.Base64}
217
+ }));
@@ -0,0 +1,217 @@
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) : null
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.1";
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/bower.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "js-base64",
3
- "version": "2.3.1",
4
- "license": "BSD 3-Clause",
3
+ "version": "2.4.2",
4
+ "license": "BSD-3-Clause",
5
5
  "main": [
6
6
  "./base64.js"
7
7
  ],
package/bower.json.bak ADDED
@@ -0,0 +1,18 @@
1
+ {
2
+ "name": "js-base64",
3
+ "version": "2.4.1",
4
+ "license": "BSD-3-Clause",
5
+ "main": [
6
+ "./base64.js"
7
+ ],
8
+ "ignore": [
9
+ "old",
10
+ "test",
11
+ ".gitignore",
12
+ ".travis.yml",
13
+ "base64.html",
14
+ "package.json"
15
+ ],
16
+ "dependencies": {
17
+ }
18
+ }
package/package.json CHANGED
@@ -1,15 +1,17 @@
1
1
  {
2
2
  "name": "js-base64",
3
- "version": "2.3.1",
3
+ "version": "2.4.2",
4
4
  "description": "Yet another Base64 transcoder in pure-JS",
5
5
  "main": "base64.js",
6
6
  "directories": {
7
7
  "test": "test"
8
8
  },
9
9
  "scripts": {
10
- "test": "mocha"
10
+ "test": "mocha --compilers js:babel-register"
11
11
  },
12
12
  "devDependencies": {
13
+ "babel-preset-es2015": "^6.24.1",
14
+ "babel-register": "^6.26.0",
13
15
  "mocha": "*"
14
16
  },
15
17
  "repository": {
@@ -20,7 +22,7 @@
20
22
  "base64"
21
23
  ],
22
24
  "author": "Dan Kogai",
23
- "license": "BSD 3-Clause",
25
+ "license": "BSD-3-Clause",
24
26
  "readmeFilename": "README.md",
25
27
  "gitHead": "8bfa436f733bec60c95c720e1d720c28b43ae0b2"
26
28
  }
@@ -0,0 +1,28 @@
1
+ {
2
+ "name": "js-base64",
3
+ "version": "2.4.1",
4
+ "description": "Yet another Base64 transcoder in pure-JS",
5
+ "main": "base64.js",
6
+ "directories": {
7
+ "test": "test"
8
+ },
9
+ "scripts": {
10
+ "test": "mocha --compilers js:babel-register"
11
+ },
12
+ "devDependencies": {
13
+ "babel-preset-es2015": "^6.24.1",
14
+ "babel-register": "^6.26.0",
15
+ "mocha": "*"
16
+ },
17
+ "repository": {
18
+ "type": "git",
19
+ "url": "git://github.com/dankogai/js-base64.git"
20
+ },
21
+ "keywords": [
22
+ "base64"
23
+ ],
24
+ "author": "Dan Kogai",
25
+ "license": "BSD-3-Clause",
26
+ "readmeFilename": "README.md",
27
+ "gitHead": "8bfa436f733bec60c95c720e1d720c28b43ae0b2"
28
+ }
@@ -0,0 +1,44 @@
1
+ /*
2
+ * $Id: dankogai.js,v 0.4 2012/08/24 05:23:18 dankogai Exp dankogai $
3
+ *
4
+ * use mocha to test me
5
+ * http://visionmedia.github.com/mocha/
6
+ */
7
+ var assert = assert || require("assert");
8
+ var Base64 = Base64 || require('../base64.js').Base64;
9
+ var is = function (a, e, m) {
10
+ return function () {
11
+ assert.equal(a, e, m)
12
+ }
13
+ };
14
+
15
+ describe('basic', function () {
16
+ it('d', is(Base64.encode('d'), 'ZA=='));
17
+ it('da', is(Base64.encode('da'), 'ZGE='));
18
+ it('dan', is(Base64.encode('dan'), 'ZGFu'));
19
+ it('ZA==', is(Base64.decode('ZA=='), 'd' ));
20
+ it('ZGE=', is(Base64.decode('ZGE='), 'da' ));
21
+ it('ZGFu', is(Base64.decode('ZGFu'), 'dan' ));
22
+ });
23
+
24
+ describe('whitespace', function () {
25
+ it('Z A==', is(Base64.decode('ZA =='), 'd' ));
26
+ it('ZG E=', is(Base64.decode('ZG E='), 'da' ));
27
+ it('ZGF u', is(Base64.decode('ZGF u'), 'dan' ));
28
+ });
29
+
30
+ describe('null', function () {
31
+ it('\\0', is(Base64.encode('\0'), 'AA=='));
32
+ it('\\0\\0', is(Base64.encode('\0\0'), 'AAA='));
33
+ it('\\0\\0\\0', is(Base64.encode('\0\0\0'), 'AAAA'));
34
+ it('AA==', is(Base64.decode('AA=='), '\0' ));
35
+ it('AAA=', is(Base64.decode('AAA='), '\0\0' ));
36
+ it('AAAA', is(Base64.decode('AAAA'), '\0\0\0'));
37
+ });
38
+
39
+ describe('Base64', function () {
40
+ it('.encode', is(Base64.encode('小飼弾'), '5bCP6aO85by+'));
41
+ it('.encodeURI', is(Base64.encodeURI('小飼弾'), '5bCP6aO85by-'));
42
+ it('.decode', is(Base64.decode('5bCP6aO85by+'), '小飼弾'));
43
+ it('.decode', is(Base64.decode('5bCP6aO85by-'), '小飼弾'));
44
+ });
package/test/es5.js ADDED
@@ -0,0 +1,24 @@
1
+ /*
2
+ * $Id: es5.js,v 0.1 2012/08/23 19:43:17 dankogai Exp dankogai $
3
+ *
4
+ * use mocha to test me
5
+ * http://visionmedia.github.com/mocha/
6
+ */
7
+ var assert = assert || require("assert");
8
+ var Base64 = Base64 || require('../base64.js').Base64;
9
+ var is = function (a, e, m) {
10
+ return function () {
11
+ assert.equal(a, e, m)
12
+ }
13
+ };
14
+
15
+ if ('extendString' in Base64){
16
+ Base64.extendString();
17
+ describe('String', function () {
18
+ it('.toBase64', is('小飼弾'.toBase64(), '5bCP6aO85by+'));
19
+ it('.toBase64', is('小飼弾'.toBase64(true), '5bCP6aO85by-'));
20
+ it('.toBase64URI', is('小飼弾'.toBase64URI(), '5bCP6aO85by-'));
21
+ it('.fromBase64', is('5bCP6aO85by+'.fromBase64(), '小飼弾'));
22
+ it('.fromBase64', is('5bCP6aO85by-'.fromBase64(), '小飼弾'));
23
+ });
24
+ }
package/test/es6.js ADDED
@@ -0,0 +1,25 @@
1
+ /*
2
+ * $Id: es6.js,v 0.1 2017/11/29 21:43:17 ufolux Exp ufolux $
3
+ *
4
+ * use mocha to test me
5
+ * http://visionmedia.github.com/mocha/
6
+ */
7
+ import {Base64} from '../base64'
8
+
9
+ var assert = assert || require("assert");
10
+ var is = function (a, e, m) {
11
+ return function () {
12
+ assert.equal(a, e, m)
13
+ }
14
+ };
15
+
16
+ if ('extendString' in Base64){
17
+ Base64.extendString();
18
+ describe('String', function () {
19
+ it('.toBase64', is('小飼弾'.toBase64(), '5bCP6aO85by+'));
20
+ it('.toBase64', is('小飼弾'.toBase64(true), '5bCP6aO85by-'));
21
+ it('.toBase64URI', is('小飼弾'.toBase64URI(), '5bCP6aO85by-'));
22
+ it('.fromBase64', is('5bCP6aO85by+'.fromBase64(), '小飼弾'));
23
+ it('.fromBase64', is('5bCP6aO85by-'.fromBase64(), '小飼弾'));
24
+ });
25
+ }
@@ -0,0 +1,39 @@
1
+ <html>
2
+ <head>
3
+ <meta charset="utf-8">
4
+ <title>Mocha Tests</title>
5
+ <link href="https://cdn.rawgit.com/mochajs/mocha/2.2.5/mocha.css" rel="stylesheet" />
6
+ </head>
7
+ <body>
8
+ <div id="mocha"></div>
9
+
10
+ <script src="https://cdn.rawgit.com/jquery/jquery/2.1.4/dist/jquery.min.js"></script>
11
+ <script src="https://cdn.rawgit.com/Automattic/expect.js/0.3.1/index.js"></script>
12
+ <script src="https://cdn.rawgit.com/mochajs/mocha/2.2.5/mocha.js"></script>
13
+ <script>
14
+ mocha.setup('bdd');
15
+ </script>
16
+ <script src="../base64.min.js"></script>
17
+ <script>
18
+ var assert = function(expr, msg) {
19
+ if (!expr) throw new Error(msg || 'failed');
20
+ };
21
+ assert.equal = function(a, b, msg) {
22
+ if (a !== b) throw new Error(msg || ('failed : '+a+','+b));
23
+ };
24
+ </script>
25
+ <script src="./dankogai.js"></script>
26
+ <script src="./es5.js"></script>
27
+ <script src="./large.js"></script>
28
+ <script src="./yoshinoya.js"></script>
29
+ <script>
30
+ $(function() {
31
+ mocha.run();
32
+ });
33
+ </script>
34
+ </head>
35
+ <body>
36
+ $Id: index.html,v 0.3 2017/09/11 08:43:43 dankogai Exp dankogai $
37
+ <div id="mocha"></div>
38
+ </body>
39
+ </html>
package/test/large.js ADDED
@@ -0,0 +1,25 @@
1
+ /*
2
+ * $Id: large.js,v 0.3 2012/08/23 19:14:37 dankogai Exp dankogai $
3
+ *
4
+ * use mocha to test me
5
+ * http://visionmedia.github.com/mocha/
6
+ */
7
+ var assert = assert || require("assert");
8
+ var Base64 = Base64 || require('../base64.js').Base64;
9
+ var is = function (a, e, m) {
10
+ return function () {
11
+ assert.equal(a, e, m)
12
+ }
13
+ };
14
+ var seed = function () {
15
+ var a, i;
16
+ for (a = [], i = 0; i < 256; i++) {
17
+ a.push(String.fromCharCode(i));
18
+ }
19
+ return a.join('');
20
+ }();
21
+ describe('Base64', function () {
22
+ for (var i = 0, str = seed; i < 16; str += str, i++) {
23
+ it(''+str.length, is(Base64.decode(Base64.encode(str)), str));
24
+ }
25
+ });
@@ -0,0 +1,19 @@
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('Yoshinoya', function () {
14
+ it('.encode', is(Base64.encode('𠮷野家'), '8KCut+mHjuWutg=='));
15
+ it('.encodeURI', is(Base64.encodeURI('𠮷野家'), '8KCut-mHjuWutg'));
16
+ it('.decode', is(Base64.decode('8KCut+mHjuWutg=='), '𠮷野家'));
17
+ it('.decode', is(Base64.decode('8KCut-mHjuWutg'), '𠮷野家'));
18
+ /* it('.decode', is(Base64.decode('7aGC7b636YeO5a62'), '𠮷野家')); */
19
+ });