Comparing version 1.1.0 to 1.1.1
@@ -20,25 +20,18 @@ export class Base32Encoding { | ||
let result = ""; | ||
const chunkCount = Math.ceil(data.length / 5); | ||
for (let i = 0; i < chunkCount; i++) { | ||
let buffer1 = data[i * 5] << 24; | ||
buffer1 += (data[i * 5 + 1] ?? 0) << 16; | ||
buffer1 += (data[i * 5 + 2] ?? 0) << 8; | ||
buffer1 += data[i * 5 + 3] ?? 0; | ||
for (let j = 0; j < 6; j++) { | ||
const key = (buffer1 >> (27 - 5 * j)) & 0x1f; | ||
result += this.alphabet[key]; | ||
let buffer = 0; | ||
let shift = 0; | ||
for (let i = 0; i < data.length; i++) { | ||
buffer = (buffer << 8) | data[i]; | ||
shift += 8; | ||
while (shift >= 5) { | ||
shift -= 5; | ||
result += this.alphabet[(buffer >> shift) & 0x1f]; | ||
} | ||
const buffer2 = data[i * 5 + 4] ?? 0; | ||
let key = ((buffer1 & 0x03) << 3) + (buffer2 >> 5); | ||
result += this.alphabet[key]; | ||
key = buffer2 & 0x1f; | ||
result += this.alphabet[key]; | ||
} | ||
let padCount = 0; | ||
if (data.length % 5 !== 0) { | ||
padCount = 8 - Math.ceil(((data.length % 5) * 8) / 5); | ||
if (shift > 0) { | ||
result += this.alphabet[(buffer << (5 - shift)) & 0x1f]; | ||
} | ||
result = result.slice(0, result.length - padCount); | ||
const includePadding = options?.includePadding ?? true; | ||
if (includePadding) { | ||
const padCount = (8 - (result.length % 8)) % 8; | ||
for (let i = 0; i < padCount; i++) { | ||
@@ -45,0 +38,0 @@ result += "="; |
@@ -20,19 +20,18 @@ export class Base64Encoding { | ||
let result = ""; | ||
const chunkCount = Math.ceil(data.length / 3); | ||
for (let i = 0; i < chunkCount; i++) { | ||
let buffer = data[i * 3] << 16; | ||
buffer += (data[i * 3 + 1] ?? 0) << 8; | ||
buffer += data[i * 3 + 2] ?? 0; | ||
for (let j = 0; j < 4; j++) { | ||
const key = (buffer >> ((3 - j) * 6)) & 0x3f; | ||
result += this.alphabet[key]; | ||
let buffer = 0; | ||
let shift = 0; | ||
for (let i = 0; i < data.length; i++) { | ||
buffer = (buffer << 8) | data[i]; | ||
shift += 8; | ||
while (shift >= 6) { | ||
shift += -6; | ||
result += this.alphabet[(buffer >> shift) & 0x3f]; | ||
} | ||
} | ||
let padCount = 0; | ||
if (data.length % 3 !== 0) { | ||
padCount = 4 - Math.ceil(((data.length % 3) * 4) / 3); | ||
if (shift > 0) { | ||
result += this.alphabet[(buffer << (6 - shift)) & 0x3f]; | ||
} | ||
result = result.slice(0, result.length - padCount); | ||
const includePadding = options?.includePadding ?? true; | ||
if (includePadding) { | ||
const padCount = (4 - (result.length % 4)) % 4; | ||
for (let i = 0; i < padCount; i++) { | ||
@@ -39,0 +38,0 @@ result += "="; |
{ | ||
"name": "oslo", | ||
"type": "module", | ||
"version": "1.1.0", | ||
"version": "1.1.1", | ||
"description": "A collection of auth-related utilities", | ||
@@ -6,0 +6,0 @@ "main": "dist/index.js", |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
64976
1704