@scure/base
Advanced tools
Comparing version 1.1.5 to 1.1.6
19
index.ts
@@ -352,2 +352,7 @@ /*! scure-base - MIT License (c) 2022 Paul Miller (paulmillr.com) */ | ||
); | ||
export const base64nopad: BytesCoder = /* @__PURE__ */ chain( | ||
radix2(6), | ||
alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'), | ||
join('') | ||
); | ||
export const base64url: BytesCoder = /* @__PURE__ */ chain( | ||
@@ -486,2 +491,3 @@ radix2(6), | ||
throw new Error(`bech32.encode words should be array of numbers, not ${typeof words}`); | ||
if (prefix.length === 0) throw new TypeError(`Invalid prefix length ${prefix.length}`); | ||
const actualLength = prefix.length + 7 + words.length; | ||
@@ -509,12 +515,11 @@ if (limit !== false && actualLength > limit) | ||
throw new Error(`String must be lowercase or uppercase`); | ||
str = lowered; | ||
const sepIndex = str.lastIndexOf('1'); | ||
const sepIndex = lowered.lastIndexOf('1'); | ||
if (sepIndex === 0 || sepIndex === -1) | ||
throw new Error(`Letter "1" must be present between prefix and data only`); | ||
const prefix = str.slice(0, sepIndex); | ||
const _words = str.slice(sepIndex + 1); | ||
if (_words.length < 6) throw new Error('Data must be at least 6 characters long'); | ||
const words = BECH_ALPHABET.decode(_words).slice(0, -6); | ||
const prefix = lowered.slice(0, sepIndex); | ||
const data = lowered.slice(sepIndex + 1); | ||
if (data.length < 6) throw new Error('Data must be at least 6 characters long'); | ||
const words = BECH_ALPHABET.decode(data).slice(0, -6); | ||
const sum = bechChecksum(prefix, words, ENCODING_CONST); | ||
if (!_words.endsWith(sum)) throw new Error(`Invalid checksum in ${str}: expected "${sum}"`); | ||
if (!data.endsWith(sum)) throw new Error(`Invalid checksum in ${str}: expected "${sum}"`); | ||
return { prefix, words }; | ||
@@ -521,0 +526,0 @@ } |
@@ -313,2 +313,3 @@ /*! scure-base - MIT License (c) 2022 Paul Miller (paulmillr.com) */ | ||
export const base64 = /* @__PURE__ */ chain(radix2(6), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'), padding(6), join('')); | ||
export const base64nopad = /* @__PURE__ */ chain(radix2(6), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'), join('')); | ||
export const base64url = /* @__PURE__ */ chain(radix2(6), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_'), padding(6), join('')); | ||
@@ -403,2 +404,4 @@ export const base64urlnopad = /* @__PURE__ */ chain(radix2(6), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_'), join('')); | ||
throw new Error(`bech32.encode words should be array of numbers, not ${typeof words}`); | ||
if (prefix.length === 0) | ||
throw new TypeError(`Invalid prefix length ${prefix.length}`); | ||
const actualLength = prefix.length + 7 + words.length; | ||
@@ -420,13 +423,12 @@ if (limit !== false && actualLength > limit) | ||
throw new Error(`String must be lowercase or uppercase`); | ||
str = lowered; | ||
const sepIndex = str.lastIndexOf('1'); | ||
const sepIndex = lowered.lastIndexOf('1'); | ||
if (sepIndex === 0 || sepIndex === -1) | ||
throw new Error(`Letter "1" must be present between prefix and data only`); | ||
const prefix = str.slice(0, sepIndex); | ||
const _words = str.slice(sepIndex + 1); | ||
if (_words.length < 6) | ||
const prefix = lowered.slice(0, sepIndex); | ||
const data = lowered.slice(sepIndex + 1); | ||
if (data.length < 6) | ||
throw new Error('Data must be at least 6 characters long'); | ||
const words = BECH_ALPHABET.decode(_words).slice(0, -6); | ||
const words = BECH_ALPHABET.decode(data).slice(0, -6); | ||
const sum = bechChecksum(prefix, words, ENCODING_CONST); | ||
if (!_words.endsWith(sum)) | ||
if (!data.endsWith(sum)) | ||
throw new Error(`Invalid checksum in ${str}: expected "${sum}"`); | ||
@@ -474,1 +476,2 @@ return { prefix, words }; | ||
export const bytes = stringToBytes; | ||
//# sourceMappingURL=index.js.map |
@@ -82,2 +82,3 @@ /*! scure-base - MIT License (c) 2022 Paul Miller (paulmillr.com) */ | ||
export declare const base64: BytesCoder; | ||
export declare const base64nopad: BytesCoder; | ||
export declare const base64url: BytesCoder; | ||
@@ -84,0 +85,0 @@ export declare const base64urlnopad: BytesCoder; |
"use strict"; | ||
/*! scure-base - MIT License (c) 2022 Paul Miller (paulmillr.com) */ | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.bytes = exports.stringToBytes = exports.str = exports.bytesToString = exports.hex = exports.utf8 = exports.bech32m = exports.bech32 = exports.base58check = exports.createBase58check = exports.base58xmr = exports.base58xrp = exports.base58flickr = exports.base58 = exports.base64urlnopad = exports.base64url = exports.base64 = exports.base32crockford = exports.base32hex = exports.base32 = exports.base16 = exports.utils = exports.assertNumber = void 0; | ||
exports.bytes = exports.stringToBytes = exports.str = exports.bytesToString = exports.hex = exports.utf8 = exports.bech32m = exports.bech32 = exports.base58check = exports.createBase58check = exports.base58xmr = exports.base58xrp = exports.base58flickr = exports.base58 = exports.base64urlnopad = exports.base64url = exports.base64nopad = exports.base64 = exports.base32crockford = exports.base32hex = exports.base32 = exports.base16 = exports.utils = exports.assertNumber = void 0; | ||
// Utilities | ||
@@ -317,2 +317,3 @@ /** | ||
exports.base64 = chain(radix2(6), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'), padding(6), join('')); | ||
exports.base64nopad = chain(radix2(6), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'), join('')); | ||
exports.base64url = chain(radix2(6), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_'), padding(6), join('')); | ||
@@ -408,2 +409,4 @@ exports.base64urlnopad = chain(radix2(6), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_'), join('')); | ||
throw new Error(`bech32.encode words should be array of numbers, not ${typeof words}`); | ||
if (prefix.length === 0) | ||
throw new TypeError(`Invalid prefix length ${prefix.length}`); | ||
const actualLength = prefix.length + 7 + words.length; | ||
@@ -425,13 +428,12 @@ if (limit !== false && actualLength > limit) | ||
throw new Error(`String must be lowercase or uppercase`); | ||
str = lowered; | ||
const sepIndex = str.lastIndexOf('1'); | ||
const sepIndex = lowered.lastIndexOf('1'); | ||
if (sepIndex === 0 || sepIndex === -1) | ||
throw new Error(`Letter "1" must be present between prefix and data only`); | ||
const prefix = str.slice(0, sepIndex); | ||
const _words = str.slice(sepIndex + 1); | ||
if (_words.length < 6) | ||
const prefix = lowered.slice(0, sepIndex); | ||
const data = lowered.slice(sepIndex + 1); | ||
if (data.length < 6) | ||
throw new Error('Data must be at least 6 characters long'); | ||
const words = BECH_ALPHABET.decode(_words).slice(0, -6); | ||
const words = BECH_ALPHABET.decode(data).slice(0, -6); | ||
const sum = bechChecksum(prefix, words, ENCODING_CONST); | ||
if (!_words.endsWith(sum)) | ||
if (!data.endsWith(sum)) | ||
throw new Error(`Invalid checksum in ${str}: expected "${sum}"`); | ||
@@ -481,1 +483,2 @@ return { prefix, words }; | ||
exports.bytes = exports.stringToBytes; | ||
//# sourceMappingURL=index.js.map |
{ | ||
"name": "@scure/base", | ||
"version": "1.1.5", | ||
"version": "1.1.6", | ||
"description": "Secure, audited & 0-dep implementation of base64, bech32, base58, base32 & base16", | ||
@@ -40,2 +40,3 @@ "files": [ | ||
"devDependencies": { | ||
"@paulmillr/jsbt": "0.1.0", | ||
"micro-should": "0.4.0", | ||
@@ -42,0 +43,0 @@ "prettier": "3.1.1", |
@@ -46,2 +46,3 @@ # scure-base | ||
base32crockford, | ||
base64nopad, | ||
base64url, | ||
@@ -48,0 +49,0 @@ base64urlnopad, |
Sorry, the diff of this file is not supported yet
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
80359
1629
211
4