ontimize-web-ngx
Version:
Ontimize Web framework using Angular 15
67 lines • 11.2 kB
JavaScript
export class Base64 {
static decode(s) {
let pads = 0, i, b10, imax = s.length, x = [];
s = String(s);
if (imax === 0) {
return s;
}
if (s.charAt(imax - 1) === this.PADCHAR) {
pads = 1;
if (s.charAt(imax - 2) === this.PADCHAR) {
pads = 2;
}
imax -= 4;
}
for (i = 0; i < imax; i += 4) {
b10 = (this.getByte64(s, i) << 18) | (this.getByte64(s, i + 1) << 12) | (this.getByte64(s, i + 2) << 6) | this.getByte64(s, i + 3);
x.push(String.fromCharCode(b10 >> 16, (b10 >> 8) & 255, b10 & 255));
}
switch (pads) {
case 1:
b10 = (this.getByte64(s, i) << 18) | (this.getByte64(s, i + 1) << 12) | (this.getByte64(s, i + 2) << 6);
x.push(String.fromCharCode(b10 >> 16, (b10 >> 8) & 255));
break;
case 2:
b10 = (this.getByte64(s, i) << 18) | (this.getByte64(s, i + 1) << 12);
x.push(String.fromCharCode(b10 >> 16));
break;
}
return x.join('');
}
static encode(s) {
s = String(s);
let i, b10, x = [], imax = s.length - s.length % 3;
if (s.length === 0) {
return s;
}
for (i = 0; i < imax; i += 3) {
b10 = (this.getByte(s, i) << 16) | (this.getByte(s, i + 1) << 8) | this.getByte(s, i + 2);
x.push(this.ALPHA.charAt(b10 >> 18));
x.push(this.ALPHA.charAt((b10 >> 12) & 63));
x.push(this.ALPHA.charAt((b10 >> 6) & 63));
x.push(this.ALPHA.charAt(b10 & 63));
}
switch (s.length - imax) {
case 1:
b10 = this.getByte(s, i) << 16;
x.push(this.ALPHA.charAt(b10 >> 18) + this.ALPHA.charAt((b10 >> 12) & 63) + this.PADCHAR + this.PADCHAR);
break;
case 2:
b10 = (this.getByte(s, i) << 16) | (this.getByte(s, i + 1) << 8);
x.push(this.ALPHA.charAt(b10 >> 18) + this.ALPHA.charAt((b10 >> 12) & 63) + this.ALPHA.charAt((b10 >> 6) & 63) + this.PADCHAR);
break;
}
return x.join('');
}
static getByte(s, i) {
const x = s.charCodeAt(i);
return x;
}
static getByte64(s, i) {
const idx = this.ALPHA.indexOf(s.charAt(i));
return idx;
}
}
Base64.PADCHAR = '=';
Base64.ALPHA = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZTY0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvb250aW1pemUtd2ViLW5neC9zcmMvbGliL3V0aWwvYmFzZTY0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE1BQU0sT0FBTyxNQUFNO0lBSVYsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFTO1FBQzVCLElBQUksSUFBSSxHQUFHLENBQUMsRUFDVixDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksR0FBRyxDQUFDLENBQUMsTUFBTSxFQUN2QixDQUFDLEdBQUcsRUFBRSxDQUFDO1FBRVQsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVkLElBQUksSUFBSSxLQUFLLENBQUMsRUFBRTtZQUNkLE9BQU8sQ0FBQyxDQUFDO1NBQ1Y7UUFFRCxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDdkMsSUFBSSxHQUFHLENBQUMsQ0FBQztZQUNULElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLE9BQU8sRUFBRTtnQkFDdkMsSUFBSSxHQUFHLENBQUMsQ0FBQzthQUNWO1lBQ0QsSUFBSSxJQUFJLENBQUMsQ0FBQztTQUNYO1FBRUQsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUM1QixHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDbkksQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLEdBQUcsSUFBSSxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLEdBQUcsR0FBRyxFQUFFLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQ3JFO1FBRUQsUUFBUSxJQUFJLEVBQUU7WUFDWixLQUFLLENBQUM7Z0JBQ0osR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7Z0JBQ3hHLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxHQUFHLElBQUksRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7Z0JBQ3pELE1BQU07WUFDUixLQUFLLENBQUM7Z0JBQ0osR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7Z0JBQ3RFLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxHQUFHLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDdkMsTUFBTTtTQUNUO1FBRUQsT0FBTyxD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QixDQUFDO0lBRU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFTLEVBQUUsQ0FBUztRQUN6QyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzFCLE9BQU8sQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVPLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBUyxFQUFFLENBQVM7UUFDM0MsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzVDLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQzs7QUFqRmMsY0FBTyxHQUFXLEdBQUcsQ0FBQztBQUN0QixZQUFLLEdBQVcsa0VBQWtFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJcbmV4cG9ydCBjbGFzcyBCYXNlNjQge1xuICBwcml2YXRlIHN0YXRpYyBQQURDSEFSOiBzdHJpbmcgPSAnPSc7XG4gIHByaXZhdGUgc3RhdGljIEFMUEhBOiBzdHJpbmcgPSAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyc7XG5cbiAgcHVibGljIHN0YXRpYyBkZWNvZGUoczogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBsZXQgcGFkcyA9IDAsXG4gICAgICBpLCBiMTAsIGltYXggPSBzLmxlbmd0aCxcbiAgICAgIHggPSBbXTtcblxuICAgIHMgPSBTdHJpbmcocyk7XG5cbiAgICBpZiAoaW1heCA9PT0gMCkge1xuICAgICAgcmV0dXJuIHM7XG4gICAgfVxuXG4gICAgaWYgKHMuY2hhckF0KGltYXggLSAxKSA9PT0gdGhpcy5QQURDSEFSKSB7XG4gICAgICBwYWRzID0gMTtcbiAgICAgIGlmIChzLmNoYXJBdChpbWF4IC0gMikgPT09IHRoaXMuUEFEQ0hBUikge1xuICAgICAgICBwYWRzID0gMjtcbiAgICAgIH1cbiAgICAgIGltYXggLT0gNDtcbiAgICB9XG5cbiAgICBmb3IgKGkgPSAwOyBpIDwgaW1heDsgaSArPSA0KSB7XG4gICAgICBiMTAgPSAodGhpcy5nZXRCeXRlNjQocywgaSkgPDwgMTgpIHwgKHRoaXMuZ2V0Qnl0ZTY0KHMsIGkgKyAxKSA8PCAxMikgfCAodGhpcy5nZXRCeXRlNjQocywgaSArIDIpIDw8IDYpIHwgdGhpcy5nZXRCeXRlNjQocywgaSArIDMpO1xuICAgICAgeC5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoYjEwID4+IDE2LCAoYjEwID4+IDgpICYgMjU1LCBiMTAgJiAyNTUpKTtcbiAgICB9XG5cbiAgICBzd2l0Y2ggKHBhZHMpIHtcbiAgICAgIGNhc2UgMTpcbiAgICAgICAgYjEwID0gKHRoaXMuZ2V0Qnl0ZTY0KHMsIGkpIDw8IDE4KSB8ICh0aGlzLmdldEJ5dGU2NChzLCBpICsgMSkgPDwgMTIpIHwgKHRoaXMuZ2V0Qnl0ZTY0KHMsIGkgKyAyKSA8PCA2KTtcbiAgICAgICAgeC5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoYjEwID4+IDE2LCAoYjEwID4+IDgpICYgMjU1KSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAyOlxuICAgICAgICBiMTAgPSAodGhpcy5nZXRCeXRlNjQocywgaSkgPDwgMTgpIHwgKHRoaXMuZ2V0Qnl0ZTY0KHMsIGkgKyAxKSA8PCAxMik7XG4gICAgICAgIHgucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKGIxMCA+PiAxNikpO1xuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICByZXR1cm4geC5qb2luKCcnKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZW5jb2RlKHM6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcyA9IFN0cmluZyhzKTtcblxuICAgIGxldCBpLCBiMTAsIHggPSBbXSxcbiAgICAgIGltYXggPSBzLmxlbmd0aCAtIHMubGVuZ3RoICUgMztcblxuICAgIGlmIChzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIHM7XG4gICAgfVxuXG4gICAgZm9yIChpID0gMDsgaSA8IGltYXg7IGkgKz0gMykge1xuICAgICAgYjEwID0gKHRoaXMuZ2V0Qnl0ZShzLCBpKSA8PCAxNikgfCAodGhpcy5nZXRCeXRlKHMsIGkgKyAxKSA8PCA4KSB8IHRoaXMuZ2V0Qnl0ZShzLCBpICsgMik7XG4gICAgICB4LnB1c2godGhpcy5BTFBIQS5jaGFyQXQoYjEwID4+IDE4KSk7XG4gICAgICB4LnB1c2godGhpcy5BTFBIQS5jaGFyQXQoKGIxMCA+PiAxMikgJiA2MykpO1xuICAgICAgeC5wdXNoKHRoaXMuQUxQSEEuY2hhckF0KChiMTAgPj4gNikgJiA2MykpO1xuICAgICAgeC5wdXNoKHRoaXMuQUxQSEEuY2hhckF0KGIxMCAmIDYzKSk7XG4gICAgfVxuXG4gICAgc3dpdGNoIChzLmxlbmd0aCAtIGltYXgpIHtcbiAgICAgIGNhc2UgMTpcbiAgICAgICAgYjEwID0gdGhpcy5nZXRCeXRlKHMsIGkpIDw8IDE2O1xuICAgICAgICB4LnB1c2godGhpcy5BTFBIQS5jaGFyQXQoYjEwID4+IDE4KSArIHRoaXMuQUxQSEEuY2hhckF0KChiMTAgPj4gMTIpICYgNjMpICsgdGhpcy5QQURDSEFSICsgdGhpcy5QQURDSEFSKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDI6XG4gICAgICAgIGIxMCA9ICh0aGlzLmdldEJ5dGUocywgaSkgPDwgMTYpIHwgKHRoaXMuZ2V0Qnl0ZShzLCBpICsgMSkgPDwgOCk7XG4gICAgICAgIHgucHVzaCh0aGlzLkFMUEhBLmNoYXJBdChiMTAgPj4gMTgpICsgdGhpcy5BTFBIQS5jaGFyQXQoKGIxMCA+PiAxMikgJiA2MykgKyB0aGlzLkFMUEhBLmNoYXJBdCgoYjEwID4+IDYpICYgNjMpICsgdGhpcy5QQURDSEFSKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgcmV0dXJuIHguam9pbignJyk7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBnZXRCeXRlKHM6IHN0cmluZywgaTogbnVtYmVyKTogbnVtYmVyIHtcbiAgICBjb25zdCB4ID0gcy5jaGFyQ29kZUF0KGkpO1xuICAgIHJldHVybiB4O1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgZ2V0Qnl0ZTY0KHM6IHN0cmluZywgaTogbnVtYmVyKTogbnVtYmVyIHtcbiAgICBjb25zdCBpZHggPSB0aGlzLkFMUEhBLmluZGV4T2Yocy5jaGFyQXQoaSkpO1xuICAgIHJldHVybiBpZHg7XG4gIH1cblxufVxuIl19