Add davidchambers/base64 JS library
This commit is contained in:
parent
ab9849e72f
commit
595fd9de6e
|
@ -29,6 +29,7 @@
|
|||
"bootstrap": "~3.3.6",
|
||||
"backbone": "~1.2.3",
|
||||
"davclient.js": "https://github.com/evert/davclient.js.git",
|
||||
"es6-promise": "https://github.com/jakearchibald/es6-promise.git#~2.3.0"
|
||||
"es6-promise": "https://github.com/jakearchibald/es6-promise.git#~2.3.0",
|
||||
"base64": "~0.3.0"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -133,3 +133,5 @@ es6-promise/**
|
|||
!es6-promise/LICENSE
|
||||
!es6-promise/dist/es6-promise.js
|
||||
|
||||
# base64
|
||||
base64/*min.js
|
||||
|
|
|
@ -0,0 +1,29 @@
|
|||
{
|
||||
"name": "base64",
|
||||
"version": "0.3.0",
|
||||
"description": "Base64 encoding and decoding",
|
||||
"main": "./base64.js",
|
||||
"license": "WTFPL",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git://github.com/davidchambers/Base64.js.git"
|
||||
},
|
||||
"ignore": [
|
||||
"**/.*",
|
||||
"Makefile",
|
||||
"coverage/",
|
||||
"scripts/",
|
||||
"test/"
|
||||
],
|
||||
"homepage": "https://github.com/davidchambers/Base64.js",
|
||||
"_release": "0.3.0",
|
||||
"_resolution": {
|
||||
"type": "version",
|
||||
"tag": "0.3.0",
|
||||
"commit": "772df096a5ffe983f40202684ad45eed1e0e2d59"
|
||||
},
|
||||
"_source": "git://github.com/davidchambers/Base64.js.git",
|
||||
"_target": "~0.3.0",
|
||||
"_originalSource": "base64",
|
||||
"_direct": true
|
||||
}
|
|
@ -0,0 +1,14 @@
|
|||
|
||||
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
||||
Version 2, December 2004
|
||||
|
||||
Copyright (c) 2011..2012 David Chambers <dc@hashify.me>
|
||||
|
||||
Everyone is permitted to copy and distribute verbatim or modified
|
||||
copies of this license document, and changing it is allowed as long
|
||||
as the name is changed.
|
||||
|
||||
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. You just DO WHAT THE FUCK YOU WANT TO.
|
|
@ -0,0 +1,61 @@
|
|||
;(function () {
|
||||
|
||||
var object = typeof exports != 'undefined' ? exports : this; // #8: web workers
|
||||
var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
|
||||
|
||||
function InvalidCharacterError(message) {
|
||||
this.message = message;
|
||||
}
|
||||
InvalidCharacterError.prototype = new Error;
|
||||
InvalidCharacterError.prototype.name = 'InvalidCharacterError';
|
||||
|
||||
// encoder
|
||||
// [https://gist.github.com/999166] by [https://github.com/nignag]
|
||||
object.btoa || (
|
||||
object.btoa = function (input) {
|
||||
var str = String(input);
|
||||
for (
|
||||
// initialize result and counter
|
||||
var block, charCode, idx = 0, map = chars, output = '';
|
||||
// if the next str index does not exist:
|
||||
// change the mapping table to "="
|
||||
// check if d has no fractional digits
|
||||
str.charAt(idx | 0) || (map = '=', idx % 1);
|
||||
// "8 - idx % 1 * 8" generates the sequence 2, 4, 6, 8
|
||||
output += map.charAt(63 & block >> 8 - idx % 1 * 8)
|
||||
) {
|
||||
charCode = str.charCodeAt(idx += 3/4);
|
||||
if (charCode > 0xFF) {
|
||||
throw new InvalidCharacterError("'btoa' failed: The string to be encoded contains characters outside of the Latin1 range.");
|
||||
}
|
||||
block = block << 8 | charCode;
|
||||
}
|
||||
return output;
|
||||
});
|
||||
|
||||
// decoder
|
||||
// [https://gist.github.com/1020396] by [https://github.com/atk]
|
||||
object.atob || (
|
||||
object.atob = function (input) {
|
||||
var str = String(input).replace(/=+$/, '');
|
||||
if (str.length % 4 == 1) {
|
||||
throw new InvalidCharacterError("'atob' failed: The string to be decoded is not correctly encoded.");
|
||||
}
|
||||
for (
|
||||
// initialize result and counters
|
||||
var bc = 0, bs, buffer, idx = 0, output = '';
|
||||
// get next character
|
||||
buffer = str.charAt(idx++);
|
||||
// character found in table? initialize bit storage and add its ascii value;
|
||||
~buffer && (bs = bc % 4 ? bs * 64 + buffer : buffer,
|
||||
// and if not first of each 4 characters,
|
||||
// convert the first 8 bits to one ascii character
|
||||
bc++ % 4) ? output += String.fromCharCode(255 & bs >> (-2 * bc & 6)) : 0
|
||||
) {
|
||||
// try to find character in table (0-63, not found => -1)
|
||||
buffer = chars.indexOf(buffer);
|
||||
}
|
||||
return output;
|
||||
});
|
||||
|
||||
}());
|
Loading…
Reference in New Issue