base64.min.js 6.4 KB

1
  1. (function(global,factory){typeof exports==="object"&&typeof module!=="undefined"?module.exports=factory():typeof define==="function"&&define.amd?define(factory):function(){var _Base64=global.Base64;var gBase64=factory();gBase64.noConflict=function(){global.Base64=_Base64;return gBase64};if(global.Meteor){Base64=gBase64}global.Base64=gBase64}()})(typeof self!=="undefined"?self:typeof window!=="undefined"?window:typeof global!=="undefined"?global:this,function(){"use strict";var version="3.7.2";var VERSION=version;var _hasatob=typeof atob==="function";var _hasbtoa=typeof btoa==="function";var _hasBuffer=typeof Buffer==="function";var _TD=typeof TextDecoder==="function"?new TextDecoder:undefined;var _TE=typeof TextEncoder==="function"?new TextEncoder:undefined;var b64ch="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";var b64chs=Array.prototype.slice.call(b64ch);var b64tab=function(a){var tab={};a.forEach(function(c,i){return tab[c]=i});return tab}(b64chs);var b64re=/^(?:[A-Za-z\d+\/]{4})*?(?:[A-Za-z\d+\/]{2}(?:==)?|[A-Za-z\d+\/]{3}=?)?$/;var _fromCC=String.fromCharCode.bind(String);var _U8Afrom=typeof Uint8Array.from==="function"?Uint8Array.from.bind(Uint8Array):function(it,fn){if(fn===void 0){fn=function(x){return x}}return new Uint8Array(Array.prototype.slice.call(it,0).map(fn))};var _mkUriSafe=function(src){return src.replace(/=/g,"").replace(/[+\/]/g,function(m0){return m0=="+"?"-":"_"})};var _tidyB64=function(s){return s.replace(/[^A-Za-z0-9\+\/]/g,"")};var btoaPolyfill=function(bin){var u32,c0,c1,c2,asc="";var pad=bin.length%3;for(var i=0;i<bin.length;){if((c0=bin.charCodeAt(i++))>255||(c1=bin.charCodeAt(i++))>255||(c2=bin.charCodeAt(i++))>255)throw new TypeError("invalid character found");u32=c0<<16|c1<<8|c2;asc+=b64chs[u32>>18&63]+b64chs[u32>>12&63]+b64chs[u32>>6&63]+b64chs[u32&63]}return pad?asc.slice(0,pad-3)+"===".substring(pad):asc};var _btoa=_hasbtoa?function(bin){return btoa(bin)}:_hasBuffer?function(bin){return Buffer.from(bin,"binary").toString("base64")}:btoaPolyfill;var _fromUint8Array=_hasBuffer?function(u8a){return Buffer.from(u8a).toString("base64")}:function(u8a){var maxargs=4096;var strs=[];for(var i=0,l=u8a.length;i<l;i+=maxargs){strs.push(_fromCC.apply(null,u8a.subarray(i,i+maxargs)))}return _btoa(strs.join(""))};var fromUint8Array=function(u8a,urlsafe){if(urlsafe===void 0){urlsafe=false}return urlsafe?_mkUriSafe(_fromUint8Array(u8a)):_fromUint8Array(u8a)};var cb_utob=function(c){if(c.length<2){var cc=c.charCodeAt(0);return cc<128?c:cc<2048?_fromCC(192|cc>>>6)+_fromCC(128|cc&63):_fromCC(224|cc>>>12&15)+_fromCC(128|cc>>>6&63)+_fromCC(128|cc&63)}else{var cc=65536+(c.charCodeAt(0)-55296)*1024+(c.charCodeAt(1)-56320);return _fromCC(240|cc>>>18&7)+_fromCC(128|cc>>>12&63)+_fromCC(128|cc>>>6&63)+_fromCC(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 _encode=_hasBuffer?function(s){return Buffer.from(s,"utf8").toString("base64")}:_TE?function(s){return _fromUint8Array(_TE.encode(s))}:function(s){return _btoa(utob(s))};var encode=function(src,urlsafe){if(urlsafe===void 0){urlsafe=false}return urlsafe?_mkUriSafe(_encode(src)):_encode(src)};var encodeURI=function(src){return encode(src,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 _fromCC((offset>>>10)+55296)+_fromCC((offset&1023)+56320);case 3:return _fromCC((15&cccc.charCodeAt(0))<<12|(63&cccc.charCodeAt(1))<<6|63&cccc.charCodeAt(2));default:return _fromCC((31&cccc.charCodeAt(0))<<6|63&cccc.charCodeAt(1))}};var btou=function(b){return b.replace(re_btou,cb_btou)};var atobPolyfill=function(asc){asc=asc.replace(/\s+/g,"");if(!b64re.test(asc))throw new TypeError("malformed base64.");asc+="==".slice(2-(asc.length&3));var u24,bin="",r1,r2;for(var i=0;i<asc.length;){u24=b64tab[asc.charAt(i++)]<<18|b64tab[asc.charAt(i++)]<<12|(r1=b64tab[asc.charAt(i++)])<<6|(r2=b64tab[asc.charAt(i++)]);bin+=r1===64?_fromCC(u24>>16&255):r2===64?_fromCC(u24>>16&255,u24>>8&255):_fromCC(u24>>16&255,u24>>8&255,u24&255)}return bin};var _atob=_hasatob?function(asc){return atob(_tidyB64(asc))}:_hasBuffer?function(asc){return Buffer.from(asc,"base64").toString("binary")}:atobPolyfill;var _toUint8Array=_hasBuffer?function(a){return _U8Afrom(Buffer.from(a,"base64"))}:function(a){return _U8Afrom(_atob(a),function(c){return c.charCodeAt(0)})};var toUint8Array=function(a){return _toUint8Array(_unURI(a))};var _decode=_hasBuffer?function(a){return Buffer.from(a,"base64").toString("utf8")}:_TD?function(a){return _TD.decode(_toUint8Array(a))}:function(a){return btou(_atob(a))};var _unURI=function(a){return _tidyB64(a.replace(/[-_]/g,function(m0){return m0=="-"?"+":"/"}))};var decode=function(src){return _decode(_unURI(src))};var isValid=function(src){if(typeof src!=="string")return false;var s=src.replace(/\s+/g,"").replace(/={0,2}$/,"");return!/[^\s0-9a-zA-Z\+/]/.test(s)||!/[^\s0-9a-zA-Z\-_]/.test(s)};var _noEnum=function(v){return{value:v,enumerable:false,writable:true,configurable:true}};var extendString=function(){var _add=function(name,body){return Object.defineProperty(String.prototype,name,_noEnum(body))};_add("fromBase64",function(){return decode(this)});_add("toBase64",function(urlsafe){return encode(this,urlsafe)});_add("toBase64URI",function(){return encode(this,true)});_add("toBase64URL",function(){return encode(this,true)});_add("toUint8Array",function(){return toUint8Array(this)})};var extendUint8Array=function(){var _add=function(name,body){return Object.defineProperty(Uint8Array.prototype,name,_noEnum(body))};_add("toBase64",function(urlsafe){return fromUint8Array(this,urlsafe)});_add("toBase64URI",function(){return fromUint8Array(this,true)});_add("toBase64URL",function(){return fromUint8Array(this,true)})};var extendBuiltins=function(){extendString();extendUint8Array()};var gBase64={version:version,VERSION:VERSION,atob:_atob,atobPolyfill:atobPolyfill,btoa:_btoa,btoaPolyfill:btoaPolyfill,fromBase64:decode,toBase64:encode,encode:encode,encodeURI:encodeURI,encodeURL:encodeURI,utob:utob,btou:btou,decode:decode,isValid:isValid,fromUint8Array:fromUint8Array,toUint8Array:toUint8Array,extendString:extendString,extendUint8Array:extendUint8Array,extendBuiltins:extendBuiltins};gBase64.Base64={};Object.keys(gBase64).forEach(function(k){return gBase64.Base64[k]=gBase64[k]});return gBase64});