Add davidchambers/base64 JS library

This commit is contained in:
Vincent Petry 2015-12-14 17:48:30 +01:00
parent ab9849e72f
commit 595fd9de6e
5 changed files with 108 additions and 1 deletions

View File

@ -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"
}
}

View File

@ -133,3 +133,5 @@ es6-promise/**
!es6-promise/LICENSE
!es6-promise/dist/es6-promise.js
# base64
base64/*min.js

29
core/vendor/base64/.bower.json vendored Normal file
View File

@ -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
}

14
core/vendor/base64/LICENSE vendored Normal file
View File

@ -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.

61
core/vendor/base64/base64.js vendored Normal file
View File

@ -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;
});
}());