@atproto/crypto 0.1.1 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js.map CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../node_modules/big-integer/BigInteger.js", "../src/index.ts", "../../../node_modules/one-webcrypto/node.mjs", "../../../node_modules/uint8arrays/esm/src/concat.js", "../../../node_modules/uint8arrays/esm/src/equals.js", "../../../node_modules/multiformats/esm/src/bases/identity.js", "../../../node_modules/multiformats/esm/vendor/base-x.js", "../../../node_modules/multiformats/esm/src/bytes.js", "../../../node_modules/multiformats/esm/src/bases/base.js", "../../../node_modules/multiformats/esm/src/bases/base2.js", "../../../node_modules/multiformats/esm/src/bases/base8.js", "../../../node_modules/multiformats/esm/src/bases/base10.js", "../../../node_modules/multiformats/esm/src/bases/base16.js", "../../../node_modules/multiformats/esm/src/bases/base32.js", "../../../node_modules/multiformats/esm/src/bases/base36.js", "../../../node_modules/multiformats/esm/src/bases/base58.js", "../../../node_modules/multiformats/esm/src/bases/base64.js", "../../../node_modules/multiformats/esm/src/bases/base256emoji.js", "../../../node_modules/multiformats/esm/src/hashes/sha2.js", "../../../node_modules/multiformats/esm/vendor/varint.js", "../../../node_modules/multiformats/esm/src/varint.js", "../../../node_modules/multiformats/esm/src/hashes/digest.js", "../../../node_modules/multiformats/esm/src/hashes/hasher.js", "../../../node_modules/multiformats/esm/src/hashes/identity.js", "../../../node_modules/multiformats/esm/src/codecs/json.js", "../../../node_modules/multiformats/esm/src/cid.js", "../../../node_modules/multiformats/esm/src/basics.js", "../../../node_modules/uint8arrays/esm/src/util/bases.js", "../../../node_modules/uint8arrays/esm/src/from-string.js", "../../../node_modules/uint8arrays/esm/src/to-string.js", "../src/random.ts", "../src/aes.ts", "../src/const.ts", "../src/p256/encoding.ts", "../../../node_modules/@noble/secp256k1/lib/esm/index.js", "../src/secp256k1/encoding.ts", "../src/p256/operations.ts", "../src/p256/plugin.ts", "../src/secp256k1/operations.ts", "../src/secp256k1/plugin.ts", "../src/plugins.ts", "../src/did.ts", "../src/multibase.ts", "../src/sha.ts", "../src/verify.ts", "../src/p256/keypair.ts", "../src/secp256k1/keypair.ts"],
4
- "sourcesContent": ["var bigInt = (function (undefined) {\r\n \"use strict\";\r\n\r\n var BASE = 1e7,\r\n LOG_BASE = 7,\r\n MAX_INT = 9007199254740992,\r\n MAX_INT_ARR = smallToArray(MAX_INT),\r\n DEFAULT_ALPHABET = \"0123456789abcdefghijklmnopqrstuvwxyz\";\r\n\r\n var supportsNativeBigInt = typeof BigInt === \"function\";\r\n\r\n function Integer(v, radix, alphabet, caseSensitive) {\r\n if (typeof v === \"undefined\") return Integer[0];\r\n if (typeof radix !== \"undefined\") return +radix === 10 && !alphabet ? parseValue(v) : parseBase(v, radix, alphabet, caseSensitive);\r\n return parseValue(v);\r\n }\r\n\r\n function BigInteger(value, sign) {\r\n this.value = value;\r\n this.sign = sign;\r\n this.isSmall = false;\r\n }\r\n BigInteger.prototype = Object.create(Integer.prototype);\r\n\r\n function SmallInteger(value) {\r\n this.value = value;\r\n this.sign = value < 0;\r\n this.isSmall = true;\r\n }\r\n SmallInteger.prototype = Object.create(Integer.prototype);\r\n\r\n function NativeBigInt(value) {\r\n this.value = value;\r\n }\r\n NativeBigInt.prototype = Object.create(Integer.prototype);\r\n\r\n function isPrecise(n) {\r\n return -MAX_INT < n && n < MAX_INT;\r\n }\r\n\r\n function smallToArray(n) { // For performance reasons doesn't reference BASE, need to change this function if BASE changes\r\n if (n < 1e7)\r\n return [n];\r\n if (n < 1e14)\r\n return [n % 1e7, Math.floor(n / 1e7)];\r\n return [n % 1e7, Math.floor(n / 1e7) % 1e7, Math.floor(n / 1e14)];\r\n }\r\n\r\n function arrayToSmall(arr) { // If BASE changes this function may need to change\r\n trim(arr);\r\n var length = arr.length;\r\n if (length < 4 && compareAbs(arr, MAX_INT_ARR) < 0) {\r\n switch (length) {\r\n case 0: return 0;\r\n case 1: return arr[0];\r\n case 2: return arr[0] + arr[1] * BASE;\r\n default: return arr[0] + (arr[1] + arr[2] * BASE) * BASE;\r\n }\r\n }\r\n return arr;\r\n }\r\n\r\n function trim(v) {\r\n var i = v.length;\r\n while (v[--i] === 0);\r\n v.length = i + 1;\r\n }\r\n\r\n function createArray(length) { // function shamelessly stolen from Yaffle's library https://github.com/Yaffle/BigInteger\r\n var x = new Array(length);\r\n var i = -1;\r\n while (++i < length) {\r\n x[i] = 0;\r\n }\r\n return x;\r\n }\r\n\r\n function truncate(n) {\r\n if (n > 0) return Math.floor(n);\r\n return Math.ceil(n);\r\n }\r\n\r\n function add(a, b) { // assumes a and b are arrays with a.length >= b.length\r\n var l_a = a.length,\r\n l_b = b.length,\r\n r = new Array(l_a),\r\n carry = 0,\r\n base = BASE,\r\n sum, i;\r\n for (i = 0; i < l_b; i++) {\r\n sum = a[i] + b[i] + carry;\r\n carry = sum >= base ? 1 : 0;\r\n r[i] = sum - carry * base;\r\n }\r\n while (i < l_a) {\r\n sum = a[i] + carry;\r\n carry = sum === base ? 1 : 0;\r\n r[i++] = sum - carry * base;\r\n }\r\n if (carry > 0) r.push(carry);\r\n return r;\r\n }\r\n\r\n function addAny(a, b) {\r\n if (a.length >= b.length) return add(a, b);\r\n return add(b, a);\r\n }\r\n\r\n function addSmall(a, carry) { // assumes a is array, carry is number with 0 <= carry < MAX_INT\r\n var l = a.length,\r\n r = new Array(l),\r\n base = BASE,\r\n sum, i;\r\n for (i = 0; i < l; i++) {\r\n sum = a[i] - base + carry;\r\n carry = Math.floor(sum / base);\r\n r[i] = sum - carry * base;\r\n carry += 1;\r\n }\r\n while (carry > 0) {\r\n r[i++] = carry % base;\r\n carry = Math.floor(carry / base);\r\n }\r\n return r;\r\n }\r\n\r\n BigInteger.prototype.add = function (v) {\r\n var n = parseValue(v);\r\n if (this.sign !== n.sign) {\r\n return this.subtract(n.negate());\r\n }\r\n var a = this.value, b = n.value;\r\n if (n.isSmall) {\r\n return new BigInteger(addSmall(a, Math.abs(b)), this.sign);\r\n }\r\n return new BigInteger(addAny(a, b), this.sign);\r\n };\r\n BigInteger.prototype.plus = BigInteger.prototype.add;\r\n\r\n SmallInteger.prototype.add = function (v) {\r\n var n = parseValue(v);\r\n var a = this.value;\r\n if (a < 0 !== n.sign) {\r\n return this.subtract(n.negate());\r\n }\r\n var b = n.value;\r\n if (n.isSmall) {\r\n if (isPrecise(a + b)) return new SmallInteger(a + b);\r\n b = smallToArray(Math.abs(b));\r\n }\r\n return new BigInteger(addSmall(b, Math.abs(a)), a < 0);\r\n };\r\n SmallInteger.prototype.plus = SmallInteger.prototype.add;\r\n\r\n NativeBigInt.prototype.add = function (v) {\r\n return new NativeBigInt(this.value + parseValue(v).value);\r\n }\r\n NativeBigInt.prototype.plus = NativeBigInt.prototype.add;\r\n\r\n function subtract(a, b) { // assumes a and b are arrays with a >= b\r\n var a_l = a.length,\r\n b_l = b.length,\r\n r = new Array(a_l),\r\n borrow = 0,\r\n base = BASE,\r\n i, difference;\r\n for (i = 0; i < b_l; i++) {\r\n difference = a[i] - borrow - b[i];\r\n if (difference < 0) {\r\n difference += base;\r\n borrow = 1;\r\n } else borrow = 0;\r\n r[i] = difference;\r\n }\r\n for (i = b_l; i < a_l; i++) {\r\n difference = a[i] - borrow;\r\n if (difference < 0) difference += base;\r\n else {\r\n r[i++] = difference;\r\n break;\r\n }\r\n r[i] = difference;\r\n }\r\n for (; i < a_l; i++) {\r\n r[i] = a[i];\r\n }\r\n trim(r);\r\n return r;\r\n }\r\n\r\n function subtractAny(a, b, sign) {\r\n var value;\r\n if (compareAbs(a, b) >= 0) {\r\n value = subtract(a, b);\r\n } else {\r\n value = subtract(b, a);\r\n sign = !sign;\r\n }\r\n value = arrayToSmall(value);\r\n if (typeof value === \"number\") {\r\n if (sign) value = -value;\r\n return new SmallInteger(value);\r\n }\r\n return new BigInteger(value, sign);\r\n }\r\n\r\n function subtractSmall(a, b, sign) { // assumes a is array, b is number with 0 <= b < MAX_INT\r\n var l = a.length,\r\n r = new Array(l),\r\n carry = -b,\r\n base = BASE,\r\n i, difference;\r\n for (i = 0; i < l; i++) {\r\n difference = a[i] + carry;\r\n carry = Math.floor(difference / base);\r\n difference %= base;\r\n r[i] = difference < 0 ? difference + base : difference;\r\n }\r\n r = arrayToSmall(r);\r\n if (typeof r === \"number\") {\r\n if (sign) r = -r;\r\n return new SmallInteger(r);\r\n } return new BigInteger(r, sign);\r\n }\r\n\r\n BigInteger.prototype.subtract = function (v) {\r\n var n = parseValue(v);\r\n if (this.sign !== n.sign) {\r\n return this.add(n.negate());\r\n }\r\n var a = this.value, b = n.value;\r\n if (n.isSmall)\r\n return subtractSmall(a, Math.abs(b), this.sign);\r\n return subtractAny(a, b, this.sign);\r\n };\r\n BigInteger.prototype.minus = BigInteger.prototype.subtract;\r\n\r\n SmallInteger.prototype.subtract = function (v) {\r\n var n = parseValue(v);\r\n var a = this.value;\r\n if (a < 0 !== n.sign) {\r\n return this.add(n.negate());\r\n }\r\n var b = n.value;\r\n if (n.isSmall) {\r\n return new SmallInteger(a - b);\r\n }\r\n return subtractSmall(b, Math.abs(a), a >= 0);\r\n };\r\n SmallInteger.prototype.minus = SmallInteger.prototype.subtract;\r\n\r\n NativeBigInt.prototype.subtract = function (v) {\r\n return new NativeBigInt(this.value - parseValue(v).value);\r\n }\r\n NativeBigInt.prototype.minus = NativeBigInt.prototype.subtract;\r\n\r\n BigInteger.prototype.negate = function () {\r\n return new BigInteger(this.value, !this.sign);\r\n };\r\n SmallInteger.prototype.negate = function () {\r\n var sign = this.sign;\r\n var small = new SmallInteger(-this.value);\r\n small.sign = !sign;\r\n return small;\r\n };\r\n NativeBigInt.prototype.negate = function () {\r\n return new NativeBigInt(-this.value);\r\n }\r\n\r\n BigInteger.prototype.abs = function () {\r\n return new BigInteger(this.value, false);\r\n };\r\n SmallInteger.prototype.abs = function () {\r\n return new SmallInteger(Math.abs(this.value));\r\n };\r\n NativeBigInt.prototype.abs = function () {\r\n return new NativeBigInt(this.value >= 0 ? this.value : -this.value);\r\n }\r\n\r\n\r\n function multiplyLong(a, b) {\r\n var a_l = a.length,\r\n b_l = b.length,\r\n l = a_l + b_l,\r\n r = createArray(l),\r\n base = BASE,\r\n product, carry, i, a_i, b_j;\r\n for (i = 0; i < a_l; ++i) {\r\n a_i = a[i];\r\n for (var j = 0; j < b_l; ++j) {\r\n b_j = b[j];\r\n product = a_i * b_j + r[i + j];\r\n carry = Math.floor(product / base);\r\n r[i + j] = product - carry * base;\r\n r[i + j + 1] += carry;\r\n }\r\n }\r\n trim(r);\r\n return r;\r\n }\r\n\r\n function multiplySmall(a, b) { // assumes a is array, b is number with |b| < BASE\r\n var l = a.length,\r\n r = new Array(l),\r\n base = BASE,\r\n carry = 0,\r\n product, i;\r\n for (i = 0; i < l; i++) {\r\n product = a[i] * b + carry;\r\n carry = Math.floor(product / base);\r\n r[i] = product - carry * base;\r\n }\r\n while (carry > 0) {\r\n r[i++] = carry % base;\r\n carry = Math.floor(carry / base);\r\n }\r\n return r;\r\n }\r\n\r\n function shiftLeft(x, n) {\r\n var r = [];\r\n while (n-- > 0) r.push(0);\r\n return r.concat(x);\r\n }\r\n\r\n function multiplyKaratsuba(x, y) {\r\n var n = Math.max(x.length, y.length);\r\n\r\n if (n <= 30) return multiplyLong(x, y);\r\n n = Math.ceil(n / 2);\r\n\r\n var b = x.slice(n),\r\n a = x.slice(0, n),\r\n d = y.slice(n),\r\n c = y.slice(0, n);\r\n\r\n var ac = multiplyKaratsuba(a, c),\r\n bd = multiplyKaratsuba(b, d),\r\n abcd = multiplyKaratsuba(addAny(a, b), addAny(c, d));\r\n\r\n var product = addAny(addAny(ac, shiftLeft(subtract(subtract(abcd, ac), bd), n)), shiftLeft(bd, 2 * n));\r\n trim(product);\r\n return product;\r\n }\r\n\r\n // The following function is derived from a surface fit of a graph plotting the performance difference\r\n // between long multiplication and karatsuba multiplication versus the lengths of the two arrays.\r\n function useKaratsuba(l1, l2) {\r\n return -0.012 * l1 - 0.012 * l2 + 0.000015 * l1 * l2 > 0;\r\n }\r\n\r\n BigInteger.prototype.multiply = function (v) {\r\n var n = parseValue(v),\r\n a = this.value, b = n.value,\r\n sign = this.sign !== n.sign,\r\n abs;\r\n if (n.isSmall) {\r\n if (b === 0) return Integer[0];\r\n if (b === 1) return this;\r\n if (b === -1) return this.negate();\r\n abs = Math.abs(b);\r\n if (abs < BASE) {\r\n return new BigInteger(multiplySmall(a, abs), sign);\r\n }\r\n b = smallToArray(abs);\r\n }\r\n if (useKaratsuba(a.length, b.length)) // Karatsuba is only faster for certain array sizes\r\n return new BigInteger(multiplyKaratsuba(a, b), sign);\r\n return new BigInteger(multiplyLong(a, b), sign);\r\n };\r\n\r\n BigInteger.prototype.times = BigInteger.prototype.multiply;\r\n\r\n function multiplySmallAndArray(a, b, sign) { // a >= 0\r\n if (a < BASE) {\r\n return new BigInteger(multiplySmall(b, a), sign);\r\n }\r\n return new BigInteger(multiplyLong(b, smallToArray(a)), sign);\r\n }\r\n SmallInteger.prototype._multiplyBySmall = function (a) {\r\n if (isPrecise(a.value * this.value)) {\r\n return new SmallInteger(a.value * this.value);\r\n }\r\n return multiplySmallAndArray(Math.abs(a.value), smallToArray(Math.abs(this.value)), this.sign !== a.sign);\r\n };\r\n BigInteger.prototype._multiplyBySmall = function (a) {\r\n if (a.value === 0) return Integer[0];\r\n if (a.value === 1) return this;\r\n if (a.value === -1) return this.negate();\r\n return multiplySmallAndArray(Math.abs(a.value), this.value, this.sign !== a.sign);\r\n };\r\n SmallInteger.prototype.multiply = function (v) {\r\n return parseValue(v)._multiplyBySmall(this);\r\n };\r\n SmallInteger.prototype.times = SmallInteger.prototype.multiply;\r\n\r\n NativeBigInt.prototype.multiply = function (v) {\r\n return new NativeBigInt(this.value * parseValue(v).value);\r\n }\r\n NativeBigInt.prototype.times = NativeBigInt.prototype.multiply;\r\n\r\n function square(a) {\r\n //console.assert(2 * BASE * BASE < MAX_INT);\r\n var l = a.length,\r\n r = createArray(l + l),\r\n base = BASE,\r\n product, carry, i, a_i, a_j;\r\n for (i = 0; i < l; i++) {\r\n a_i = a[i];\r\n carry = 0 - a_i * a_i;\r\n for (var j = i; j < l; j++) {\r\n a_j = a[j];\r\n product = 2 * (a_i * a_j) + r[i + j] + carry;\r\n carry = Math.floor(product / base);\r\n r[i + j] = product - carry * base;\r\n }\r\n r[i + l] = carry;\r\n }\r\n trim(r);\r\n return r;\r\n }\r\n\r\n BigInteger.prototype.square = function () {\r\n return new BigInteger(square(this.value), false);\r\n };\r\n\r\n SmallInteger.prototype.square = function () {\r\n var value = this.value * this.value;\r\n if (isPrecise(value)) return new SmallInteger(value);\r\n return new BigInteger(square(smallToArray(Math.abs(this.value))), false);\r\n };\r\n\r\n NativeBigInt.prototype.square = function (v) {\r\n return new NativeBigInt(this.value * this.value);\r\n }\r\n\r\n function divMod1(a, b) { // Left over from previous version. Performs faster than divMod2 on smaller input sizes.\r\n var a_l = a.length,\r\n b_l = b.length,\r\n base = BASE,\r\n result = createArray(b.length),\r\n divisorMostSignificantDigit = b[b_l - 1],\r\n // normalization\r\n lambda = Math.ceil(base / (2 * divisorMostSignificantDigit)),\r\n remainder = multiplySmall(a, lambda),\r\n divisor = multiplySmall(b, lambda),\r\n quotientDigit, shift, carry, borrow, i, l, q;\r\n if (remainder.length <= a_l) remainder.push(0);\r\n divisor.push(0);\r\n divisorMostSignificantDigit = divisor[b_l - 1];\r\n for (shift = a_l - b_l; shift >= 0; shift--) {\r\n quotientDigit = base - 1;\r\n if (remainder[shift + b_l] !== divisorMostSignificantDigit) {\r\n quotientDigit = Math.floor((remainder[shift + b_l] * base + remainder[shift + b_l - 1]) / divisorMostSignificantDigit);\r\n }\r\n // quotientDigit <= base - 1\r\n carry = 0;\r\n borrow = 0;\r\n l = divisor.length;\r\n for (i = 0; i < l; i++) {\r\n carry += quotientDigit * divisor[i];\r\n q = Math.floor(carry / base);\r\n borrow += remainder[shift + i] - (carry - q * base);\r\n carry = q;\r\n if (borrow < 0) {\r\n remainder[shift + i] = borrow + base;\r\n borrow = -1;\r\n } else {\r\n remainder[shift + i] = borrow;\r\n borrow = 0;\r\n }\r\n }\r\n while (borrow !== 0) {\r\n quotientDigit -= 1;\r\n carry = 0;\r\n for (i = 0; i < l; i++) {\r\n carry += remainder[shift + i] - base + divisor[i];\r\n if (carry < 0) {\r\n remainder[shift + i] = carry + base;\r\n carry = 0;\r\n } else {\r\n remainder[shift + i] = carry;\r\n carry = 1;\r\n }\r\n }\r\n borrow += carry;\r\n }\r\n result[shift] = quotientDigit;\r\n }\r\n // denormalization\r\n remainder = divModSmall(remainder, lambda)[0];\r\n return [arrayToSmall(result), arrayToSmall(remainder)];\r\n }\r\n\r\n function divMod2(a, b) { // Implementation idea shamelessly stolen from Silent Matt's library http://silentmatt.com/biginteger/\r\n // Performs faster than divMod1 on larger input sizes.\r\n var a_l = a.length,\r\n b_l = b.length,\r\n result = [],\r\n part = [],\r\n base = BASE,\r\n guess, xlen, highx, highy, check;\r\n while (a_l) {\r\n part.unshift(a[--a_l]);\r\n trim(part);\r\n if (compareAbs(part, b) < 0) {\r\n result.push(0);\r\n continue;\r\n }\r\n xlen = part.length;\r\n highx = part[xlen - 1] * base + part[xlen - 2];\r\n highy = b[b_l - 1] * base + b[b_l - 2];\r\n if (xlen > b_l) {\r\n highx = (highx + 1) * base;\r\n }\r\n guess = Math.ceil(highx / highy);\r\n do {\r\n check = multiplySmall(b, guess);\r\n if (compareAbs(check, part) <= 0) break;\r\n guess--;\r\n } while (guess);\r\n result.push(guess);\r\n part = subtract(part, check);\r\n }\r\n result.reverse();\r\n return [arrayToSmall(result), arrayToSmall(part)];\r\n }\r\n\r\n function divModSmall(value, lambda) {\r\n var length = value.length,\r\n quotient = createArray(length),\r\n base = BASE,\r\n i, q, remainder, divisor;\r\n remainder = 0;\r\n for (i = length - 1; i >= 0; --i) {\r\n divisor = remainder * base + value[i];\r\n q = truncate(divisor / lambda);\r\n remainder = divisor - q * lambda;\r\n quotient[i] = q | 0;\r\n }\r\n return [quotient, remainder | 0];\r\n }\r\n\r\n function divModAny(self, v) {\r\n var value, n = parseValue(v);\r\n if (supportsNativeBigInt) {\r\n return [new NativeBigInt(self.value / n.value), new NativeBigInt(self.value % n.value)];\r\n }\r\n var a = self.value, b = n.value;\r\n var quotient;\r\n if (b === 0) throw new Error(\"Cannot divide by zero\");\r\n if (self.isSmall) {\r\n if (n.isSmall) {\r\n return [new SmallInteger(truncate(a / b)), new SmallInteger(a % b)];\r\n }\r\n return [Integer[0], self];\r\n }\r\n if (n.isSmall) {\r\n if (b === 1) return [self, Integer[0]];\r\n if (b == -1) return [self.negate(), Integer[0]];\r\n var abs = Math.abs(b);\r\n if (abs < BASE) {\r\n value = divModSmall(a, abs);\r\n quotient = arrayToSmall(value[0]);\r\n var remainder = value[1];\r\n if (self.sign) remainder = -remainder;\r\n if (typeof quotient === \"number\") {\r\n if (self.sign !== n.sign) quotient = -quotient;\r\n return [new SmallInteger(quotient), new SmallInteger(remainder)];\r\n }\r\n return [new BigInteger(quotient, self.sign !== n.sign), new SmallInteger(remainder)];\r\n }\r\n b = smallToArray(abs);\r\n }\r\n var comparison = compareAbs(a, b);\r\n if (comparison === -1) return [Integer[0], self];\r\n if (comparison === 0) return [Integer[self.sign === n.sign ? 1 : -1], Integer[0]];\r\n\r\n // divMod1 is faster on smaller input sizes\r\n if (a.length + b.length <= 200)\r\n value = divMod1(a, b);\r\n else value = divMod2(a, b);\r\n\r\n quotient = value[0];\r\n var qSign = self.sign !== n.sign,\r\n mod = value[1],\r\n mSign = self.sign;\r\n if (typeof quotient === \"number\") {\r\n if (qSign) quotient = -quotient;\r\n quotient = new SmallInteger(quotient);\r\n } else quotient = new BigInteger(quotient, qSign);\r\n if (typeof mod === \"number\") {\r\n if (mSign) mod = -mod;\r\n mod = new SmallInteger(mod);\r\n } else mod = new BigInteger(mod, mSign);\r\n return [quotient, mod];\r\n }\r\n\r\n BigInteger.prototype.divmod = function (v) {\r\n var result = divModAny(this, v);\r\n return {\r\n quotient: result[0],\r\n remainder: result[1]\r\n };\r\n };\r\n NativeBigInt.prototype.divmod = SmallInteger.prototype.divmod = BigInteger.prototype.divmod;\r\n\r\n\r\n BigInteger.prototype.divide = function (v) {\r\n return divModAny(this, v)[0];\r\n };\r\n NativeBigInt.prototype.over = NativeBigInt.prototype.divide = function (v) {\r\n return new NativeBigInt(this.value / parseValue(v).value);\r\n };\r\n SmallInteger.prototype.over = SmallInteger.prototype.divide = BigInteger.prototype.over = BigInteger.prototype.divide;\r\n\r\n BigInteger.prototype.mod = function (v) {\r\n return divModAny(this, v)[1];\r\n };\r\n NativeBigInt.prototype.mod = NativeBigInt.prototype.remainder = function (v) {\r\n return new NativeBigInt(this.value % parseValue(v).value);\r\n };\r\n SmallInteger.prototype.remainder = SmallInteger.prototype.mod = BigInteger.prototype.remainder = BigInteger.prototype.mod;\r\n\r\n BigInteger.prototype.pow = function (v) {\r\n var n = parseValue(v),\r\n a = this.value,\r\n b = n.value,\r\n value, x, y;\r\n if (b === 0) return Integer[1];\r\n if (a === 0) return Integer[0];\r\n if (a === 1) return Integer[1];\r\n if (a === -1) return n.isEven() ? Integer[1] : Integer[-1];\r\n if (n.sign) {\r\n return Integer[0];\r\n }\r\n if (!n.isSmall) throw new Error(\"The exponent \" + n.toString() + \" is too large.\");\r\n if (this.isSmall) {\r\n if (isPrecise(value = Math.pow(a, b)))\r\n return new SmallInteger(truncate(value));\r\n }\r\n x = this;\r\n y = Integer[1];\r\n while (true) {\r\n if (b & 1 === 1) {\r\n y = y.times(x);\r\n --b;\r\n }\r\n if (b === 0) break;\r\n b /= 2;\r\n x = x.square();\r\n }\r\n return y;\r\n };\r\n SmallInteger.prototype.pow = BigInteger.prototype.pow;\r\n\r\n NativeBigInt.prototype.pow = function (v) {\r\n var n = parseValue(v);\r\n var a = this.value, b = n.value;\r\n var _0 = BigInt(0), _1 = BigInt(1), _2 = BigInt(2);\r\n if (b === _0) return Integer[1];\r\n if (a === _0) return Integer[0];\r\n if (a === _1) return Integer[1];\r\n if (a === BigInt(-1)) return n.isEven() ? Integer[1] : Integer[-1];\r\n if (n.isNegative()) return new NativeBigInt(_0);\r\n var x = this;\r\n var y = Integer[1];\r\n while (true) {\r\n if ((b & _1) === _1) {\r\n y = y.times(x);\r\n --b;\r\n }\r\n if (b === _0) break;\r\n b /= _2;\r\n x = x.square();\r\n }\r\n return y;\r\n }\r\n\r\n BigInteger.prototype.modPow = function (exp, mod) {\r\n exp = parseValue(exp);\r\n mod = parseValue(mod);\r\n if (mod.isZero()) throw new Error(\"Cannot take modPow with modulus 0\");\r\n var r = Integer[1],\r\n base = this.mod(mod);\r\n if (exp.isNegative()) {\r\n exp = exp.multiply(Integer[-1]);\r\n base = base.modInv(mod);\r\n }\r\n while (exp.isPositive()) {\r\n if (base.isZero()) return Integer[0];\r\n if (exp.isOdd()) r = r.multiply(base).mod(mod);\r\n exp = exp.divide(2);\r\n base = base.square().mod(mod);\r\n }\r\n return r;\r\n };\r\n NativeBigInt.prototype.modPow = SmallInteger.prototype.modPow = BigInteger.prototype.modPow;\r\n\r\n function compareAbs(a, b) {\r\n if (a.length !== b.length) {\r\n return a.length > b.length ? 1 : -1;\r\n }\r\n for (var i = a.length - 1; i >= 0; i--) {\r\n if (a[i] !== b[i]) return a[i] > b[i] ? 1 : -1;\r\n }\r\n return 0;\r\n }\r\n\r\n BigInteger.prototype.compareAbs = function (v) {\r\n var n = parseValue(v),\r\n a = this.value,\r\n b = n.value;\r\n if (n.isSmall) return 1;\r\n return compareAbs(a, b);\r\n };\r\n SmallInteger.prototype.compareAbs = function (v) {\r\n var n = parseValue(v),\r\n a = Math.abs(this.value),\r\n b = n.value;\r\n if (n.isSmall) {\r\n b = Math.abs(b);\r\n return a === b ? 0 : a > b ? 1 : -1;\r\n }\r\n return -1;\r\n };\r\n NativeBigInt.prototype.compareAbs = function (v) {\r\n var a = this.value;\r\n var b = parseValue(v).value;\r\n a = a >= 0 ? a : -a;\r\n b = b >= 0 ? b : -b;\r\n return a === b ? 0 : a > b ? 1 : -1;\r\n }\r\n\r\n BigInteger.prototype.compare = function (v) {\r\n // See discussion about comparison with Infinity:\r\n // https://github.com/peterolson/BigInteger.js/issues/61\r\n if (v === Infinity) {\r\n return -1;\r\n }\r\n if (v === -Infinity) {\r\n return 1;\r\n }\r\n\r\n var n = parseValue(v),\r\n a = this.value,\r\n b = n.value;\r\n if (this.sign !== n.sign) {\r\n return n.sign ? 1 : -1;\r\n }\r\n if (n.isSmall) {\r\n return this.sign ? -1 : 1;\r\n }\r\n return compareAbs(a, b) * (this.sign ? -1 : 1);\r\n };\r\n BigInteger.prototype.compareTo = BigInteger.prototype.compare;\r\n\r\n SmallInteger.prototype.compare = function (v) {\r\n if (v === Infinity) {\r\n return -1;\r\n }\r\n if (v === -Infinity) {\r\n return 1;\r\n }\r\n\r\n var n = parseValue(v),\r\n a = this.value,\r\n b = n.value;\r\n if (n.isSmall) {\r\n return a == b ? 0 : a > b ? 1 : -1;\r\n }\r\n if (a < 0 !== n.sign) {\r\n return a < 0 ? -1 : 1;\r\n }\r\n return a < 0 ? 1 : -1;\r\n };\r\n SmallInteger.prototype.compareTo = SmallInteger.prototype.compare;\r\n\r\n NativeBigInt.prototype.compare = function (v) {\r\n if (v === Infinity) {\r\n return -1;\r\n }\r\n if (v === -Infinity) {\r\n return 1;\r\n }\r\n var a = this.value;\r\n var b = parseValue(v).value;\r\n return a === b ? 0 : a > b ? 1 : -1;\r\n }\r\n NativeBigInt.prototype.compareTo = NativeBigInt.prototype.compare;\r\n\r\n BigInteger.prototype.equals = function (v) {\r\n return this.compare(v) === 0;\r\n };\r\n NativeBigInt.prototype.eq = NativeBigInt.prototype.equals = SmallInteger.prototype.eq = SmallInteger.prototype.equals = BigInteger.prototype.eq = BigInteger.prototype.equals;\r\n\r\n BigInteger.prototype.notEquals = function (v) {\r\n return this.compare(v) !== 0;\r\n };\r\n NativeBigInt.prototype.neq = NativeBigInt.prototype.notEquals = SmallInteger.prototype.neq = SmallInteger.prototype.notEquals = BigInteger.prototype.neq = BigInteger.prototype.notEquals;\r\n\r\n BigInteger.prototype.greater = function (v) {\r\n return this.compare(v) > 0;\r\n };\r\n NativeBigInt.prototype.gt = NativeBigInt.prototype.greater = SmallInteger.prototype.gt = SmallInteger.prototype.greater = BigInteger.prototype.gt = BigInteger.prototype.greater;\r\n\r\n BigInteger.prototype.lesser = function (v) {\r\n return this.compare(v) < 0;\r\n };\r\n NativeBigInt.prototype.lt = NativeBigInt.prototype.lesser = SmallInteger.prototype.lt = SmallInteger.prototype.lesser = BigInteger.prototype.lt = BigInteger.prototype.lesser;\r\n\r\n BigInteger.prototype.greaterOrEquals = function (v) {\r\n return this.compare(v) >= 0;\r\n };\r\n NativeBigInt.prototype.geq = NativeBigInt.prototype.greaterOrEquals = SmallInteger.prototype.geq = SmallInteger.prototype.greaterOrEquals = BigInteger.prototype.geq = BigInteger.prototype.greaterOrEquals;\r\n\r\n BigInteger.prototype.lesserOrEquals = function (v) {\r\n return this.compare(v) <= 0;\r\n };\r\n NativeBigInt.prototype.leq = NativeBigInt.prototype.lesserOrEquals = SmallInteger.prototype.leq = SmallInteger.prototype.lesserOrEquals = BigInteger.prototype.leq = BigInteger.prototype.lesserOrEquals;\r\n\r\n BigInteger.prototype.isEven = function () {\r\n return (this.value[0] & 1) === 0;\r\n };\r\n SmallInteger.prototype.isEven = function () {\r\n return (this.value & 1) === 0;\r\n };\r\n NativeBigInt.prototype.isEven = function () {\r\n return (this.value & BigInt(1)) === BigInt(0);\r\n }\r\n\r\n BigInteger.prototype.isOdd = function () {\r\n return (this.value[0] & 1) === 1;\r\n };\r\n SmallInteger.prototype.isOdd = function () {\r\n return (this.value & 1) === 1;\r\n };\r\n NativeBigInt.prototype.isOdd = function () {\r\n return (this.value & BigInt(1)) === BigInt(1);\r\n }\r\n\r\n BigInteger.prototype.isPositive = function () {\r\n return !this.sign;\r\n };\r\n SmallInteger.prototype.isPositive = function () {\r\n return this.value > 0;\r\n };\r\n NativeBigInt.prototype.isPositive = SmallInteger.prototype.isPositive;\r\n\r\n BigInteger.prototype.isNegative = function () {\r\n return this.sign;\r\n };\r\n SmallInteger.prototype.isNegative = function () {\r\n return this.value < 0;\r\n };\r\n NativeBigInt.prototype.isNegative = SmallInteger.prototype.isNegative;\r\n\r\n BigInteger.prototype.isUnit = function () {\r\n return false;\r\n };\r\n SmallInteger.prototype.isUnit = function () {\r\n return Math.abs(this.value) === 1;\r\n };\r\n NativeBigInt.prototype.isUnit = function () {\r\n return this.abs().value === BigInt(1);\r\n }\r\n\r\n BigInteger.prototype.isZero = function () {\r\n return false;\r\n };\r\n SmallInteger.prototype.isZero = function () {\r\n return this.value === 0;\r\n };\r\n NativeBigInt.prototype.isZero = function () {\r\n return this.value === BigInt(0);\r\n }\r\n\r\n BigInteger.prototype.isDivisibleBy = function (v) {\r\n var n = parseValue(v);\r\n if (n.isZero()) return false;\r\n if (n.isUnit()) return true;\r\n if (n.compareAbs(2) === 0) return this.isEven();\r\n return this.mod(n).isZero();\r\n };\r\n NativeBigInt.prototype.isDivisibleBy = SmallInteger.prototype.isDivisibleBy = BigInteger.prototype.isDivisibleBy;\r\n\r\n function isBasicPrime(v) {\r\n var n = v.abs();\r\n if (n.isUnit()) return false;\r\n if (n.equals(2) || n.equals(3) || n.equals(5)) return true;\r\n if (n.isEven() || n.isDivisibleBy(3) || n.isDivisibleBy(5)) return false;\r\n if (n.lesser(49)) return true;\r\n // we don't know if it's prime: let the other functions figure it out\r\n }\r\n\r\n function millerRabinTest(n, a) {\r\n var nPrev = n.prev(),\r\n b = nPrev,\r\n r = 0,\r\n d, t, i, x;\r\n while (b.isEven()) b = b.divide(2), r++;\r\n next: for (i = 0; i < a.length; i++) {\r\n if (n.lesser(a[i])) continue;\r\n x = bigInt(a[i]).modPow(b, n);\r\n if (x.isUnit() || x.equals(nPrev)) continue;\r\n for (d = r - 1; d != 0; d--) {\r\n x = x.square().mod(n);\r\n if (x.isUnit()) return false;\r\n if (x.equals(nPrev)) continue next;\r\n }\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n // Set \"strict\" to true to force GRH-supported lower bound of 2*log(N)^2\r\n BigInteger.prototype.isPrime = function (strict) {\r\n var isPrime = isBasicPrime(this);\r\n if (isPrime !== undefined) return isPrime;\r\n var n = this.abs();\r\n var bits = n.bitLength();\r\n if (bits <= 64)\r\n return millerRabinTest(n, [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37]);\r\n var logN = Math.log(2) * bits.toJSNumber();\r\n var t = Math.ceil((strict === true) ? (2 * Math.pow(logN, 2)) : logN);\r\n for (var a = [], i = 0; i < t; i++) {\r\n a.push(bigInt(i + 2));\r\n }\r\n return millerRabinTest(n, a);\r\n };\r\n NativeBigInt.prototype.isPrime = SmallInteger.prototype.isPrime = BigInteger.prototype.isPrime;\r\n\r\n BigInteger.prototype.isProbablePrime = function (iterations, rng) {\r\n var isPrime = isBasicPrime(this);\r\n if (isPrime !== undefined) return isPrime;\r\n var n = this.abs();\r\n var t = iterations === undefined ? 5 : iterations;\r\n for (var a = [], i = 0; i < t; i++) {\r\n a.push(bigInt.randBetween(2, n.minus(2), rng));\r\n }\r\n return millerRabinTest(n, a);\r\n };\r\n NativeBigInt.prototype.isProbablePrime = SmallInteger.prototype.isProbablePrime = BigInteger.prototype.isProbablePrime;\r\n\r\n BigInteger.prototype.modInv = function (n) {\r\n var t = bigInt.zero, newT = bigInt.one, r = parseValue(n), newR = this.abs(), q, lastT, lastR;\r\n while (!newR.isZero()) {\r\n q = r.divide(newR);\r\n lastT = t;\r\n lastR = r;\r\n t = newT;\r\n r = newR;\r\n newT = lastT.subtract(q.multiply(newT));\r\n newR = lastR.subtract(q.multiply(newR));\r\n }\r\n if (!r.isUnit()) throw new Error(this.toString() + \" and \" + n.toString() + \" are not co-prime\");\r\n if (t.compare(0) === -1) {\r\n t = t.add(n);\r\n }\r\n if (this.isNegative()) {\r\n return t.negate();\r\n }\r\n return t;\r\n };\r\n\r\n NativeBigInt.prototype.modInv = SmallInteger.prototype.modInv = BigInteger.prototype.modInv;\r\n\r\n BigInteger.prototype.next = function () {\r\n var value = this.value;\r\n if (this.sign) {\r\n return subtractSmall(value, 1, this.sign);\r\n }\r\n return new BigInteger(addSmall(value, 1), this.sign);\r\n };\r\n SmallInteger.prototype.next = function () {\r\n var value = this.value;\r\n if (value + 1 < MAX_INT) return new SmallInteger(value + 1);\r\n return new BigInteger(MAX_INT_ARR, false);\r\n };\r\n NativeBigInt.prototype.next = function () {\r\n return new NativeBigInt(this.value + BigInt(1));\r\n }\r\n\r\n BigInteger.prototype.prev = function () {\r\n var value = this.value;\r\n if (this.sign) {\r\n return new BigInteger(addSmall(value, 1), true);\r\n }\r\n return subtractSmall(value, 1, this.sign);\r\n };\r\n SmallInteger.prototype.prev = function () {\r\n var value = this.value;\r\n if (value - 1 > -MAX_INT) return new SmallInteger(value - 1);\r\n return new BigInteger(MAX_INT_ARR, true);\r\n };\r\n NativeBigInt.prototype.prev = function () {\r\n return new NativeBigInt(this.value - BigInt(1));\r\n }\r\n\r\n var powersOfTwo = [1];\r\n while (2 * powersOfTwo[powersOfTwo.length - 1] <= BASE) powersOfTwo.push(2 * powersOfTwo[powersOfTwo.length - 1]);\r\n var powers2Length = powersOfTwo.length, highestPower2 = powersOfTwo[powers2Length - 1];\r\n\r\n function shift_isSmall(n) {\r\n return Math.abs(n) <= BASE;\r\n }\r\n\r\n BigInteger.prototype.shiftLeft = function (v) {\r\n var n = parseValue(v).toJSNumber();\r\n if (!shift_isSmall(n)) {\r\n throw new Error(String(n) + \" is too large for shifting.\");\r\n }\r\n if (n < 0) return this.shiftRight(-n);\r\n var result = this;\r\n if (result.isZero()) return result;\r\n while (n >= powers2Length) {\r\n result = result.multiply(highestPower2);\r\n n -= powers2Length - 1;\r\n }\r\n return result.multiply(powersOfTwo[n]);\r\n };\r\n NativeBigInt.prototype.shiftLeft = SmallInteger.prototype.shiftLeft = BigInteger.prototype.shiftLeft;\r\n\r\n BigInteger.prototype.shiftRight = function (v) {\r\n var remQuo;\r\n var n = parseValue(v).toJSNumber();\r\n if (!shift_isSmall(n)) {\r\n throw new Error(String(n) + \" is too large for shifting.\");\r\n }\r\n if (n < 0) return this.shiftLeft(-n);\r\n var result = this;\r\n while (n >= powers2Length) {\r\n if (result.isZero() || (result.isNegative() && result.isUnit())) return result;\r\n remQuo = divModAny(result, highestPower2);\r\n result = remQuo[1].isNegative() ? remQuo[0].prev() : remQuo[0];\r\n n -= powers2Length - 1;\r\n }\r\n remQuo = divModAny(result, powersOfTwo[n]);\r\n return remQuo[1].isNegative() ? remQuo[0].prev() : remQuo[0];\r\n };\r\n NativeBigInt.prototype.shiftRight = SmallInteger.prototype.shiftRight = BigInteger.prototype.shiftRight;\r\n\r\n function bitwise(x, y, fn) {\r\n y = parseValue(y);\r\n var xSign = x.isNegative(), ySign = y.isNegative();\r\n var xRem = xSign ? x.not() : x,\r\n yRem = ySign ? y.not() : y;\r\n var xDigit = 0, yDigit = 0;\r\n var xDivMod = null, yDivMod = null;\r\n var result = [];\r\n while (!xRem.isZero() || !yRem.isZero()) {\r\n xDivMod = divModAny(xRem, highestPower2);\r\n xDigit = xDivMod[1].toJSNumber();\r\n if (xSign) {\r\n xDigit = highestPower2 - 1 - xDigit; // two's complement for negative numbers\r\n }\r\n\r\n yDivMod = divModAny(yRem, highestPower2);\r\n yDigit = yDivMod[1].toJSNumber();\r\n if (ySign) {\r\n yDigit = highestPower2 - 1 - yDigit; // two's complement for negative numbers\r\n }\r\n\r\n xRem = xDivMod[0];\r\n yRem = yDivMod[0];\r\n result.push(fn(xDigit, yDigit));\r\n }\r\n var sum = fn(xSign ? 1 : 0, ySign ? 1 : 0) !== 0 ? bigInt(-1) : bigInt(0);\r\n for (var i = result.length - 1; i >= 0; i -= 1) {\r\n sum = sum.multiply(highestPower2).add(bigInt(result[i]));\r\n }\r\n return sum;\r\n }\r\n\r\n BigInteger.prototype.not = function () {\r\n return this.negate().prev();\r\n };\r\n NativeBigInt.prototype.not = SmallInteger.prototype.not = BigInteger.prototype.not;\r\n\r\n BigInteger.prototype.and = function (n) {\r\n return bitwise(this, n, function (a, b) { return a & b; });\r\n };\r\n NativeBigInt.prototype.and = SmallInteger.prototype.and = BigInteger.prototype.and;\r\n\r\n BigInteger.prototype.or = function (n) {\r\n return bitwise(this, n, function (a, b) { return a | b; });\r\n };\r\n NativeBigInt.prototype.or = SmallInteger.prototype.or = BigInteger.prototype.or;\r\n\r\n BigInteger.prototype.xor = function (n) {\r\n return bitwise(this, n, function (a, b) { return a ^ b; });\r\n };\r\n NativeBigInt.prototype.xor = SmallInteger.prototype.xor = BigInteger.prototype.xor;\r\n\r\n var LOBMASK_I = 1 << 30, LOBMASK_BI = (BASE & -BASE) * (BASE & -BASE) | LOBMASK_I;\r\n function roughLOB(n) { // get lowestOneBit (rough)\r\n // SmallInteger: return Min(lowestOneBit(n), 1 << 30)\r\n // BigInteger: return Min(lowestOneBit(n), 1 << 14) [BASE=1e7]\r\n var v = n.value,\r\n x = typeof v === \"number\" ? v | LOBMASK_I :\r\n typeof v === \"bigint\" ? v | BigInt(LOBMASK_I) :\r\n v[0] + v[1] * BASE | LOBMASK_BI;\r\n return x & -x;\r\n }\r\n\r\n function integerLogarithm(value, base) {\r\n if (base.compareTo(value) <= 0) {\r\n var tmp = integerLogarithm(value, base.square(base));\r\n var p = tmp.p;\r\n var e = tmp.e;\r\n var t = p.multiply(base);\r\n return t.compareTo(value) <= 0 ? { p: t, e: e * 2 + 1 } : { p: p, e: e * 2 };\r\n }\r\n return { p: bigInt(1), e: 0 };\r\n }\r\n\r\n BigInteger.prototype.bitLength = function () {\r\n var n = this;\r\n if (n.compareTo(bigInt(0)) < 0) {\r\n n = n.negate().subtract(bigInt(1));\r\n }\r\n if (n.compareTo(bigInt(0)) === 0) {\r\n return bigInt(0);\r\n }\r\n return bigInt(integerLogarithm(n, bigInt(2)).e).add(bigInt(1));\r\n }\r\n NativeBigInt.prototype.bitLength = SmallInteger.prototype.bitLength = BigInteger.prototype.bitLength;\r\n\r\n function max(a, b) {\r\n a = parseValue(a);\r\n b = parseValue(b);\r\n return a.greater(b) ? a : b;\r\n }\r\n function min(a, b) {\r\n a = parseValue(a);\r\n b = parseValue(b);\r\n return a.lesser(b) ? a : b;\r\n }\r\n function gcd(a, b) {\r\n a = parseValue(a).abs();\r\n b = parseValue(b).abs();\r\n if (a.equals(b)) return a;\r\n if (a.isZero()) return b;\r\n if (b.isZero()) return a;\r\n var c = Integer[1], d, t;\r\n while (a.isEven() && b.isEven()) {\r\n d = min(roughLOB(a), roughLOB(b));\r\n a = a.divide(d);\r\n b = b.divide(d);\r\n c = c.multiply(d);\r\n }\r\n while (a.isEven()) {\r\n a = a.divide(roughLOB(a));\r\n }\r\n do {\r\n while (b.isEven()) {\r\n b = b.divide(roughLOB(b));\r\n }\r\n if (a.greater(b)) {\r\n t = b; b = a; a = t;\r\n }\r\n b = b.subtract(a);\r\n } while (!b.isZero());\r\n return c.isUnit() ? a : a.multiply(c);\r\n }\r\n function lcm(a, b) {\r\n a = parseValue(a).abs();\r\n b = parseValue(b).abs();\r\n return a.divide(gcd(a, b)).multiply(b);\r\n }\r\n function randBetween(a, b, rng) {\r\n a = parseValue(a);\r\n b = parseValue(b);\r\n var usedRNG = rng || Math.random;\r\n var low = min(a, b), high = max(a, b);\r\n var range = high.subtract(low).add(1);\r\n if (range.isSmall) return low.add(Math.floor(usedRNG() * range));\r\n var digits = toBase(range, BASE).value;\r\n var result = [], restricted = true;\r\n for (var i = 0; i < digits.length; i++) {\r\n var top = restricted ? digits[i] + (i + 1 < digits.length ? digits[i + 1] / BASE : 0) : BASE;\r\n var digit = truncate(usedRNG() * top);\r\n result.push(digit);\r\n if (digit < digits[i]) restricted = false;\r\n }\r\n return low.add(Integer.fromArray(result, BASE, false));\r\n }\r\n\r\n var parseBase = function (text, base, alphabet, caseSensitive) {\r\n alphabet = alphabet || DEFAULT_ALPHABET;\r\n text = String(text);\r\n if (!caseSensitive) {\r\n text = text.toLowerCase();\r\n alphabet = alphabet.toLowerCase();\r\n }\r\n var length = text.length;\r\n var i;\r\n var absBase = Math.abs(base);\r\n var alphabetValues = {};\r\n for (i = 0; i < alphabet.length; i++) {\r\n alphabetValues[alphabet[i]] = i;\r\n }\r\n for (i = 0; i < length; i++) {\r\n var c = text[i];\r\n if (c === \"-\") continue;\r\n if (c in alphabetValues) {\r\n if (alphabetValues[c] >= absBase) {\r\n if (c === \"1\" && absBase === 1) continue;\r\n throw new Error(c + \" is not a valid digit in base \" + base + \".\");\r\n }\r\n }\r\n }\r\n base = parseValue(base);\r\n var digits = [];\r\n var isNegative = text[0] === \"-\";\r\n for (i = isNegative ? 1 : 0; i < text.length; i++) {\r\n var c = text[i];\r\n if (c in alphabetValues) digits.push(parseValue(alphabetValues[c]));\r\n else if (c === \"<\") {\r\n var start = i;\r\n do { i++; } while (text[i] !== \">\" && i < text.length);\r\n digits.push(parseValue(text.slice(start + 1, i)));\r\n }\r\n else throw new Error(c + \" is not a valid character\");\r\n }\r\n return parseBaseFromArray(digits, base, isNegative);\r\n };\r\n\r\n function parseBaseFromArray(digits, base, isNegative) {\r\n var val = Integer[0], pow = Integer[1], i;\r\n for (i = digits.length - 1; i >= 0; i--) {\r\n val = val.add(digits[i].times(pow));\r\n pow = pow.times(base);\r\n }\r\n return isNegative ? val.negate() : val;\r\n }\r\n\r\n function stringify(digit, alphabet) {\r\n alphabet = alphabet || DEFAULT_ALPHABET;\r\n if (digit < alphabet.length) {\r\n return alphabet[digit];\r\n }\r\n return \"<\" + digit + \">\";\r\n }\r\n\r\n function toBase(n, base) {\r\n base = bigInt(base);\r\n if (base.isZero()) {\r\n if (n.isZero()) return { value: [0], isNegative: false };\r\n throw new Error(\"Cannot convert nonzero numbers to base 0.\");\r\n }\r\n if (base.equals(-1)) {\r\n if (n.isZero()) return { value: [0], isNegative: false };\r\n if (n.isNegative())\r\n return {\r\n value: [].concat.apply([], Array.apply(null, Array(-n.toJSNumber()))\r\n .map(Array.prototype.valueOf, [1, 0])\r\n ),\r\n isNegative: false\r\n };\r\n\r\n var arr = Array.apply(null, Array(n.toJSNumber() - 1))\r\n .map(Array.prototype.valueOf, [0, 1]);\r\n arr.unshift([1]);\r\n return {\r\n value: [].concat.apply([], arr),\r\n isNegative: false\r\n };\r\n }\r\n\r\n var neg = false;\r\n if (n.isNegative() && base.isPositive()) {\r\n neg = true;\r\n n = n.abs();\r\n }\r\n if (base.isUnit()) {\r\n if (n.isZero()) return { value: [0], isNegative: false };\r\n\r\n return {\r\n value: Array.apply(null, Array(n.toJSNumber()))\r\n .map(Number.prototype.valueOf, 1),\r\n isNegative: neg\r\n };\r\n }\r\n var out = [];\r\n var left = n, divmod;\r\n while (left.isNegative() || left.compareAbs(base) >= 0) {\r\n divmod = left.divmod(base);\r\n left = divmod.quotient;\r\n var digit = divmod.remainder;\r\n if (digit.isNegative()) {\r\n digit = base.minus(digit).abs();\r\n left = left.next();\r\n }\r\n out.push(digit.toJSNumber());\r\n }\r\n out.push(left.toJSNumber());\r\n return { value: out.reverse(), isNegative: neg };\r\n }\r\n\r\n function toBaseString(n, base, alphabet) {\r\n var arr = toBase(n, base);\r\n return (arr.isNegative ? \"-\" : \"\") + arr.value.map(function (x) {\r\n return stringify(x, alphabet);\r\n }).join('');\r\n }\r\n\r\n BigInteger.prototype.toArray = function (radix) {\r\n return toBase(this, radix);\r\n };\r\n\r\n SmallInteger.prototype.toArray = function (radix) {\r\n return toBase(this, radix);\r\n };\r\n\r\n NativeBigInt.prototype.toArray = function (radix) {\r\n return toBase(this, radix);\r\n };\r\n\r\n BigInteger.prototype.toString = function (radix, alphabet) {\r\n if (radix === undefined) radix = 10;\r\n if (radix !== 10) return toBaseString(this, radix, alphabet);\r\n var v = this.value, l = v.length, str = String(v[--l]), zeros = \"0000000\", digit;\r\n while (--l >= 0) {\r\n digit = String(v[l]);\r\n str += zeros.slice(digit.length) + digit;\r\n }\r\n var sign = this.sign ? \"-\" : \"\";\r\n return sign + str;\r\n };\r\n\r\n SmallInteger.prototype.toString = function (radix, alphabet) {\r\n if (radix === undefined) radix = 10;\r\n if (radix != 10) return toBaseString(this, radix, alphabet);\r\n return String(this.value);\r\n };\r\n\r\n NativeBigInt.prototype.toString = SmallInteger.prototype.toString;\r\n\r\n NativeBigInt.prototype.toJSON = BigInteger.prototype.toJSON = SmallInteger.prototype.toJSON = function () { return this.toString(); }\r\n\r\n BigInteger.prototype.valueOf = function () {\r\n return parseInt(this.toString(), 10);\r\n };\r\n BigInteger.prototype.toJSNumber = BigInteger.prototype.valueOf;\r\n\r\n SmallInteger.prototype.valueOf = function () {\r\n return this.value;\r\n };\r\n SmallInteger.prototype.toJSNumber = SmallInteger.prototype.valueOf;\r\n NativeBigInt.prototype.valueOf = NativeBigInt.prototype.toJSNumber = function () {\r\n return parseInt(this.toString(), 10);\r\n }\r\n\r\n function parseStringValue(v) {\r\n if (isPrecise(+v)) {\r\n var x = +v;\r\n if (x === truncate(x))\r\n return supportsNativeBigInt ? new NativeBigInt(BigInt(x)) : new SmallInteger(x);\r\n throw new Error(\"Invalid integer: \" + v);\r\n }\r\n var sign = v[0] === \"-\";\r\n if (sign) v = v.slice(1);\r\n var split = v.split(/e/i);\r\n if (split.length > 2) throw new Error(\"Invalid integer: \" + split.join(\"e\"));\r\n if (split.length === 2) {\r\n var exp = split[1];\r\n if (exp[0] === \"+\") exp = exp.slice(1);\r\n exp = +exp;\r\n if (exp !== truncate(exp) || !isPrecise(exp)) throw new Error(\"Invalid integer: \" + exp + \" is not a valid exponent.\");\r\n var text = split[0];\r\n var decimalPlace = text.indexOf(\".\");\r\n if (decimalPlace >= 0) {\r\n exp -= text.length - decimalPlace - 1;\r\n text = text.slice(0, decimalPlace) + text.slice(decimalPlace + 1);\r\n }\r\n if (exp < 0) throw new Error(\"Cannot include negative exponent part for integers\");\r\n text += (new Array(exp + 1)).join(\"0\");\r\n v = text;\r\n }\r\n var isValid = /^([0-9][0-9]*)$/.test(v);\r\n if (!isValid) throw new Error(\"Invalid integer: \" + v);\r\n if (supportsNativeBigInt) {\r\n return new NativeBigInt(BigInt(sign ? \"-\" + v : v));\r\n }\r\n var r = [], max = v.length, l = LOG_BASE, min = max - l;\r\n while (max > 0) {\r\n r.push(+v.slice(min, max));\r\n min -= l;\r\n if (min < 0) min = 0;\r\n max -= l;\r\n }\r\n trim(r);\r\n return new BigInteger(r, sign);\r\n }\r\n\r\n function parseNumberValue(v) {\r\n if (supportsNativeBigInt) {\r\n return new NativeBigInt(BigInt(v));\r\n }\r\n if (isPrecise(v)) {\r\n if (v !== truncate(v)) throw new Error(v + \" is not an integer.\");\r\n return new SmallInteger(v);\r\n }\r\n return parseStringValue(v.toString());\r\n }\r\n\r\n function parseValue(v) {\r\n if (typeof v === \"number\") {\r\n return parseNumberValue(v);\r\n }\r\n if (typeof v === \"string\") {\r\n return parseStringValue(v);\r\n }\r\n if (typeof v === \"bigint\") {\r\n return new NativeBigInt(v);\r\n }\r\n return v;\r\n }\r\n // Pre-define numbers in range [-999,999]\r\n for (var i = 0; i < 1000; i++) {\r\n Integer[i] = parseValue(i);\r\n if (i > 0) Integer[-i] = parseValue(-i);\r\n }\r\n // Backwards compatibility\r\n Integer.one = Integer[1];\r\n Integer.zero = Integer[0];\r\n Integer.minusOne = Integer[-1];\r\n Integer.max = max;\r\n Integer.min = min;\r\n Integer.gcd = gcd;\r\n Integer.lcm = lcm;\r\n Integer.isInstance = function (x) { return x instanceof BigInteger || x instanceof SmallInteger || x instanceof NativeBigInt; };\r\n Integer.randBetween = randBetween;\r\n\r\n Integer.fromArray = function (digits, base, isNegative) {\r\n return parseBaseFromArray(digits.map(parseValue), parseValue(base || 10), isNegative);\r\n };\r\n\r\n return Integer;\r\n})();\r\n\r\n// Node.js check\r\nif (typeof module !== \"undefined\" && module.hasOwnProperty(\"exports\")) {\r\n module.exports = bigInt;\r\n}\r\n\r\n//amd check\r\nif (typeof define === \"function\" && define.amd) {\r\n define( function () {\r\n return bigInt;\r\n });\r\n}\r\n", "export * from './aes'\nexport * from './const'\nexport * from './did'\nexport * from './multibase'\nexport * from './random'\nexport * from './sha'\nexport * from './types'\nexport * from './verify'\n\nexport * from './p256/keypair'\nexport * from './p256/plugin'\n\nexport * from './secp256k1/keypair'\nexport * from './secp256k1/plugin'\n", "import crypto from \"crypto\"\n\nexport const webcrypto = crypto.webcrypto\n", "export function concat(arrays, length) {\n if (!length) {\n length = arrays.reduce((acc, curr) => acc + curr.length, 0);\n }\n const output = new Uint8Array(length);\n let offset = 0;\n for (const arr of arrays) {\n output.set(arr, offset);\n offset += arr.length;\n }\n return output;\n}", "export function equals(a, b) {\n if (a === b) {\n return true;\n }\n if (a.byteLength !== b.byteLength) {\n return false;\n }\n for (let i = 0; i < a.byteLength; i++) {\n if (a[i] !== b[i]) {\n return false;\n }\n }\n return true;\n}", "import { from } from './base.js';\nimport {\n fromString,\n toString\n} from '../bytes.js';\nexport const identity = from({\n prefix: '\\0',\n name: 'identity',\n encode: buf => toString(buf),\n decode: str => fromString(str)\n});", "function base(ALPHABET, name) {\n if (ALPHABET.length >= 255) {\n throw new TypeError('Alphabet too long');\n }\n var BASE_MAP = new Uint8Array(256);\n for (var j = 0; j < BASE_MAP.length; j++) {\n BASE_MAP[j] = 255;\n }\n for (var i = 0; i < ALPHABET.length; i++) {\n var x = ALPHABET.charAt(i);\n var xc = x.charCodeAt(0);\n if (BASE_MAP[xc] !== 255) {\n throw new TypeError(x + ' is ambiguous');\n }\n BASE_MAP[xc] = i;\n }\n var BASE = ALPHABET.length;\n var LEADER = ALPHABET.charAt(0);\n var FACTOR = Math.log(BASE) / Math.log(256);\n var iFACTOR = Math.log(256) / Math.log(BASE);\n function encode(source) {\n if (source instanceof Uint8Array);\n else if (ArrayBuffer.isView(source)) {\n source = new Uint8Array(source.buffer, source.byteOffset, source.byteLength);\n } else if (Array.isArray(source)) {\n source = Uint8Array.from(source);\n }\n if (!(source instanceof Uint8Array)) {\n throw new TypeError('Expected Uint8Array');\n }\n if (source.length === 0) {\n return '';\n }\n var zeroes = 0;\n var length = 0;\n var pbegin = 0;\n var pend = source.length;\n while (pbegin !== pend && source[pbegin] === 0) {\n pbegin++;\n zeroes++;\n }\n var size = (pend - pbegin) * iFACTOR + 1 >>> 0;\n var b58 = new Uint8Array(size);\n while (pbegin !== pend) {\n var carry = source[pbegin];\n var i = 0;\n for (var it1 = size - 1; (carry !== 0 || i < length) && it1 !== -1; it1--, i++) {\n carry += 256 * b58[it1] >>> 0;\n b58[it1] = carry % BASE >>> 0;\n carry = carry / BASE >>> 0;\n }\n if (carry !== 0) {\n throw new Error('Non-zero carry');\n }\n length = i;\n pbegin++;\n }\n var it2 = size - length;\n while (it2 !== size && b58[it2] === 0) {\n it2++;\n }\n var str = LEADER.repeat(zeroes);\n for (; it2 < size; ++it2) {\n str += ALPHABET.charAt(b58[it2]);\n }\n return str;\n }\n function decodeUnsafe(source) {\n if (typeof source !== 'string') {\n throw new TypeError('Expected String');\n }\n if (source.length === 0) {\n return new Uint8Array();\n }\n var psz = 0;\n if (source[psz] === ' ') {\n return;\n }\n var zeroes = 0;\n var length = 0;\n while (source[psz] === LEADER) {\n zeroes++;\n psz++;\n }\n var size = (source.length - psz) * FACTOR + 1 >>> 0;\n var b256 = new Uint8Array(size);\n while (source[psz]) {\n var carry = BASE_MAP[source.charCodeAt(psz)];\n if (carry === 255) {\n return;\n }\n var i = 0;\n for (var it3 = size - 1; (carry !== 0 || i < length) && it3 !== -1; it3--, i++) {\n carry += BASE * b256[it3] >>> 0;\n b256[it3] = carry % 256 >>> 0;\n carry = carry / 256 >>> 0;\n }\n if (carry !== 0) {\n throw new Error('Non-zero carry');\n }\n length = i;\n psz++;\n }\n if (source[psz] === ' ') {\n return;\n }\n var it4 = size - length;\n while (it4 !== size && b256[it4] === 0) {\n it4++;\n }\n var vch = new Uint8Array(zeroes + (size - it4));\n var j = zeroes;\n while (it4 !== size) {\n vch[j++] = b256[it4++];\n }\n return vch;\n }\n function decode(string) {\n var buffer = decodeUnsafe(string);\n if (buffer) {\n return buffer;\n }\n throw new Error(`Non-${ name } character`);\n }\n return {\n encode: encode,\n decodeUnsafe: decodeUnsafe,\n decode: decode\n };\n}\nvar src = base;\nvar _brrp__multiformats_scope_baseX = src;\nexport default _brrp__multiformats_scope_baseX;", "const empty = new Uint8Array(0);\nconst toHex = d => d.reduce((hex, byte) => hex + byte.toString(16).padStart(2, '0'), '');\nconst fromHex = hex => {\n const hexes = hex.match(/../g);\n return hexes ? new Uint8Array(hexes.map(b => parseInt(b, 16))) : empty;\n};\nconst equals = (aa, bb) => {\n if (aa === bb)\n return true;\n if (aa.byteLength !== bb.byteLength) {\n return false;\n }\n for (let ii = 0; ii < aa.byteLength; ii++) {\n if (aa[ii] !== bb[ii]) {\n return false;\n }\n }\n return true;\n};\nconst coerce = o => {\n if (o instanceof Uint8Array && o.constructor.name === 'Uint8Array')\n return o;\n if (o instanceof ArrayBuffer)\n return new Uint8Array(o);\n if (ArrayBuffer.isView(o)) {\n return new Uint8Array(o.buffer, o.byteOffset, o.byteLength);\n }\n throw new Error('Unknown type, must be binary type');\n};\nconst isBinary = o => o instanceof ArrayBuffer || ArrayBuffer.isView(o);\nconst fromString = str => new TextEncoder().encode(str);\nconst toString = b => new TextDecoder().decode(b);\nexport {\n equals,\n coerce,\n isBinary,\n fromHex,\n toHex,\n fromString,\n toString,\n empty\n};", "import basex from '../../vendor/base-x.js';\nimport { coerce } from '../bytes.js';\nclass Encoder {\n constructor(name, prefix, baseEncode) {\n this.name = name;\n this.prefix = prefix;\n this.baseEncode = baseEncode;\n }\n encode(bytes) {\n if (bytes instanceof Uint8Array) {\n return `${ this.prefix }${ this.baseEncode(bytes) }`;\n } else {\n throw Error('Unknown type, must be binary type');\n }\n }\n}\nclass Decoder {\n constructor(name, prefix, baseDecode) {\n this.name = name;\n this.prefix = prefix;\n if (prefix.codePointAt(0) === undefined) {\n throw new Error('Invalid prefix character');\n }\n this.prefixCodePoint = prefix.codePointAt(0);\n this.baseDecode = baseDecode;\n }\n decode(text) {\n if (typeof text === 'string') {\n if (text.codePointAt(0) !== this.prefixCodePoint) {\n throw Error(`Unable to decode multibase string ${ JSON.stringify(text) }, ${ this.name } decoder only supports inputs prefixed with ${ this.prefix }`);\n }\n return this.baseDecode(text.slice(this.prefix.length));\n } else {\n throw Error('Can only multibase decode strings');\n }\n }\n or(decoder) {\n return or(this, decoder);\n }\n}\nclass ComposedDecoder {\n constructor(decoders) {\n this.decoders = decoders;\n }\n or(decoder) {\n return or(this, decoder);\n }\n decode(input) {\n const prefix = input[0];\n const decoder = this.decoders[prefix];\n if (decoder) {\n return decoder.decode(input);\n } else {\n throw RangeError(`Unable to decode multibase string ${ JSON.stringify(input) }, only inputs prefixed with ${ Object.keys(this.decoders) } are supported`);\n }\n }\n}\nexport const or = (left, right) => new ComposedDecoder({\n ...left.decoders || { [left.prefix]: left },\n ...right.decoders || { [right.prefix]: right }\n});\nexport class Codec {\n constructor(name, prefix, baseEncode, baseDecode) {\n this.name = name;\n this.prefix = prefix;\n this.baseEncode = baseEncode;\n this.baseDecode = baseDecode;\n this.encoder = new Encoder(name, prefix, baseEncode);\n this.decoder = new Decoder(name, prefix, baseDecode);\n }\n encode(input) {\n return this.encoder.encode(input);\n }\n decode(input) {\n return this.decoder.decode(input);\n }\n}\nexport const from = ({name, prefix, encode, decode}) => new Codec(name, prefix, encode, decode);\nexport const baseX = ({prefix, name, alphabet}) => {\n const {encode, decode} = basex(alphabet, name);\n return from({\n prefix,\n name,\n encode,\n decode: text => coerce(decode(text))\n });\n};\nconst decode = (string, alphabet, bitsPerChar, name) => {\n const codes = {};\n for (let i = 0; i < alphabet.length; ++i) {\n codes[alphabet[i]] = i;\n }\n let end = string.length;\n while (string[end - 1] === '=') {\n --end;\n }\n const out = new Uint8Array(end * bitsPerChar / 8 | 0);\n let bits = 0;\n let buffer = 0;\n let written = 0;\n for (let i = 0; i < end; ++i) {\n const value = codes[string[i]];\n if (value === undefined) {\n throw new SyntaxError(`Non-${ name } character`);\n }\n buffer = buffer << bitsPerChar | value;\n bits += bitsPerChar;\n if (bits >= 8) {\n bits -= 8;\n out[written++] = 255 & buffer >> bits;\n }\n }\n if (bits >= bitsPerChar || 255 & buffer << 8 - bits) {\n throw new SyntaxError('Unexpected end of data');\n }\n return out;\n};\nconst encode = (data, alphabet, bitsPerChar) => {\n const pad = alphabet[alphabet.length - 1] === '=';\n const mask = (1 << bitsPerChar) - 1;\n let out = '';\n let bits = 0;\n let buffer = 0;\n for (let i = 0; i < data.length; ++i) {\n buffer = buffer << 8 | data[i];\n bits += 8;\n while (bits > bitsPerChar) {\n bits -= bitsPerChar;\n out += alphabet[mask & buffer >> bits];\n }\n }\n if (bits) {\n out += alphabet[mask & buffer << bitsPerChar - bits];\n }\n if (pad) {\n while (out.length * bitsPerChar & 7) {\n out += '=';\n }\n }\n return out;\n};\nexport const rfc4648 = ({name, prefix, bitsPerChar, alphabet}) => {\n return from({\n prefix,\n name,\n encode(input) {\n return encode(input, alphabet, bitsPerChar);\n },\n decode(input) {\n return decode(input, alphabet, bitsPerChar, name);\n }\n });\n};", "import { rfc4648 } from './base.js';\nexport const base2 = rfc4648({\n prefix: '0',\n name: 'base2',\n alphabet: '01',\n bitsPerChar: 1\n});", "import { rfc4648 } from './base.js';\nexport const base8 = rfc4648({\n prefix: '7',\n name: 'base8',\n alphabet: '01234567',\n bitsPerChar: 3\n});", "import { baseX } from './base.js';\nexport const base10 = baseX({\n prefix: '9',\n name: 'base10',\n alphabet: '0123456789'\n});", "import { rfc4648 } from './base.js';\nexport const base16 = rfc4648({\n prefix: 'f',\n name: 'base16',\n alphabet: '0123456789abcdef',\n bitsPerChar: 4\n});\nexport const base16upper = rfc4648({\n prefix: 'F',\n name: 'base16upper',\n alphabet: '0123456789ABCDEF',\n bitsPerChar: 4\n});", "import { rfc4648 } from './base.js';\nexport const base32 = rfc4648({\n prefix: 'b',\n name: 'base32',\n alphabet: 'abcdefghijklmnopqrstuvwxyz234567',\n bitsPerChar: 5\n});\nexport const base32upper = rfc4648({\n prefix: 'B',\n name: 'base32upper',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567',\n bitsPerChar: 5\n});\nexport const base32pad = rfc4648({\n prefix: 'c',\n name: 'base32pad',\n alphabet: 'abcdefghijklmnopqrstuvwxyz234567=',\n bitsPerChar: 5\n});\nexport const base32padupper = rfc4648({\n prefix: 'C',\n name: 'base32padupper',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=',\n bitsPerChar: 5\n});\nexport const base32hex = rfc4648({\n prefix: 'v',\n name: 'base32hex',\n alphabet: '0123456789abcdefghijklmnopqrstuv',\n bitsPerChar: 5\n});\nexport const base32hexupper = rfc4648({\n prefix: 'V',\n name: 'base32hexupper',\n alphabet: '0123456789ABCDEFGHIJKLMNOPQRSTUV',\n bitsPerChar: 5\n});\nexport const base32hexpad = rfc4648({\n prefix: 't',\n name: 'base32hexpad',\n alphabet: '0123456789abcdefghijklmnopqrstuv=',\n bitsPerChar: 5\n});\nexport const base32hexpadupper = rfc4648({\n prefix: 'T',\n name: 'base32hexpadupper',\n alphabet: '0123456789ABCDEFGHIJKLMNOPQRSTUV=',\n bitsPerChar: 5\n});\nexport const base32z = rfc4648({\n prefix: 'h',\n name: 'base32z',\n alphabet: 'ybndrfg8ejkmcpqxot1uwisza345h769',\n bitsPerChar: 5\n});", "import { baseX } from './base.js';\nexport const base36 = baseX({\n prefix: 'k',\n name: 'base36',\n alphabet: '0123456789abcdefghijklmnopqrstuvwxyz'\n});\nexport const base36upper = baseX({\n prefix: 'K',\n name: 'base36upper',\n alphabet: '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'\n});", "import { baseX } from './base.js';\nexport const base58btc = baseX({\n name: 'base58btc',\n prefix: 'z',\n alphabet: '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'\n});\nexport const base58flickr = baseX({\n name: 'base58flickr',\n prefix: 'Z',\n alphabet: '123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ'\n});", "import { rfc4648 } from './base.js';\nexport const base64 = rfc4648({\n prefix: 'm',\n name: 'base64',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',\n bitsPerChar: 6\n});\nexport const base64pad = rfc4648({\n prefix: 'M',\n name: 'base64pad',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=',\n bitsPerChar: 6\n});\nexport const base64url = rfc4648({\n prefix: 'u',\n name: 'base64url',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_',\n bitsPerChar: 6\n});\nexport const base64urlpad = rfc4648({\n prefix: 'U',\n name: 'base64urlpad',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=',\n bitsPerChar: 6\n});", "import { from } from './base.js';\nconst alphabet = Array.from('\\uD83D\\uDE80\\uD83E\\uDE90\\u2604\\uD83D\\uDEF0\\uD83C\\uDF0C\\uD83C\\uDF11\\uD83C\\uDF12\\uD83C\\uDF13\\uD83C\\uDF14\\uD83C\\uDF15\\uD83C\\uDF16\\uD83C\\uDF17\\uD83C\\uDF18\\uD83C\\uDF0D\\uD83C\\uDF0F\\uD83C\\uDF0E\\uD83D\\uDC09\\u2600\\uD83D\\uDCBB\\uD83D\\uDDA5\\uD83D\\uDCBE\\uD83D\\uDCBF\\uD83D\\uDE02\\u2764\\uD83D\\uDE0D\\uD83E\\uDD23\\uD83D\\uDE0A\\uD83D\\uDE4F\\uD83D\\uDC95\\uD83D\\uDE2D\\uD83D\\uDE18\\uD83D\\uDC4D\\uD83D\\uDE05\\uD83D\\uDC4F\\uD83D\\uDE01\\uD83D\\uDD25\\uD83E\\uDD70\\uD83D\\uDC94\\uD83D\\uDC96\\uD83D\\uDC99\\uD83D\\uDE22\\uD83E\\uDD14\\uD83D\\uDE06\\uD83D\\uDE44\\uD83D\\uDCAA\\uD83D\\uDE09\\u263A\\uD83D\\uDC4C\\uD83E\\uDD17\\uD83D\\uDC9C\\uD83D\\uDE14\\uD83D\\uDE0E\\uD83D\\uDE07\\uD83C\\uDF39\\uD83E\\uDD26\\uD83C\\uDF89\\uD83D\\uDC9E\\u270C\\u2728\\uD83E\\uDD37\\uD83D\\uDE31\\uD83D\\uDE0C\\uD83C\\uDF38\\uD83D\\uDE4C\\uD83D\\uDE0B\\uD83D\\uDC97\\uD83D\\uDC9A\\uD83D\\uDE0F\\uD83D\\uDC9B\\uD83D\\uDE42\\uD83D\\uDC93\\uD83E\\uDD29\\uD83D\\uDE04\\uD83D\\uDE00\\uD83D\\uDDA4\\uD83D\\uDE03\\uD83D\\uDCAF\\uD83D\\uDE48\\uD83D\\uDC47\\uD83C\\uDFB6\\uD83D\\uDE12\\uD83E\\uDD2D\\u2763\\uD83D\\uDE1C\\uD83D\\uDC8B\\uD83D\\uDC40\\uD83D\\uDE2A\\uD83D\\uDE11\\uD83D\\uDCA5\\uD83D\\uDE4B\\uD83D\\uDE1E\\uD83D\\uDE29\\uD83D\\uDE21\\uD83E\\uDD2A\\uD83D\\uDC4A\\uD83E\\uDD73\\uD83D\\uDE25\\uD83E\\uDD24\\uD83D\\uDC49\\uD83D\\uDC83\\uD83D\\uDE33\\u270B\\uD83D\\uDE1A\\uD83D\\uDE1D\\uD83D\\uDE34\\uD83C\\uDF1F\\uD83D\\uDE2C\\uD83D\\uDE43\\uD83C\\uDF40\\uD83C\\uDF37\\uD83D\\uDE3B\\uD83D\\uDE13\\u2B50\\u2705\\uD83E\\uDD7A\\uD83C\\uDF08\\uD83D\\uDE08\\uD83E\\uDD18\\uD83D\\uDCA6\\u2714\\uD83D\\uDE23\\uD83C\\uDFC3\\uD83D\\uDC90\\u2639\\uD83C\\uDF8A\\uD83D\\uDC98\\uD83D\\uDE20\\u261D\\uD83D\\uDE15\\uD83C\\uDF3A\\uD83C\\uDF82\\uD83C\\uDF3B\\uD83D\\uDE10\\uD83D\\uDD95\\uD83D\\uDC9D\\uD83D\\uDE4A\\uD83D\\uDE39\\uD83D\\uDDE3\\uD83D\\uDCAB\\uD83D\\uDC80\\uD83D\\uDC51\\uD83C\\uDFB5\\uD83E\\uDD1E\\uD83D\\uDE1B\\uD83D\\uDD34\\uD83D\\uDE24\\uD83C\\uDF3C\\uD83D\\uDE2B\\u26BD\\uD83E\\uDD19\\u2615\\uD83C\\uDFC6\\uD83E\\uDD2B\\uD83D\\uDC48\\uD83D\\uDE2E\\uD83D\\uDE46\\uD83C\\uDF7B\\uD83C\\uDF43\\uD83D\\uDC36\\uD83D\\uDC81\\uD83D\\uDE32\\uD83C\\uDF3F\\uD83E\\uDDE1\\uD83C\\uDF81\\u26A1\\uD83C\\uDF1E\\uD83C\\uDF88\\u274C\\u270A\\uD83D\\uDC4B\\uD83D\\uDE30\\uD83E\\uDD28\\uD83D\\uDE36\\uD83E\\uDD1D\\uD83D\\uDEB6\\uD83D\\uDCB0\\uD83C\\uDF53\\uD83D\\uDCA2\\uD83E\\uDD1F\\uD83D\\uDE41\\uD83D\\uDEA8\\uD83D\\uDCA8\\uD83E\\uDD2C\\u2708\\uD83C\\uDF80\\uD83C\\uDF7A\\uD83E\\uDD13\\uD83D\\uDE19\\uD83D\\uDC9F\\uD83C\\uDF31\\uD83D\\uDE16\\uD83D\\uDC76\\uD83E\\uDD74\\u25B6\\u27A1\\u2753\\uD83D\\uDC8E\\uD83D\\uDCB8\\u2B07\\uD83D\\uDE28\\uD83C\\uDF1A\\uD83E\\uDD8B\\uD83D\\uDE37\\uD83D\\uDD7A\\u26A0\\uD83D\\uDE45\\uD83D\\uDE1F\\uD83D\\uDE35\\uD83D\\uDC4E\\uD83E\\uDD32\\uD83E\\uDD20\\uD83E\\uDD27\\uD83D\\uDCCC\\uD83D\\uDD35\\uD83D\\uDC85\\uD83E\\uDDD0\\uD83D\\uDC3E\\uD83C\\uDF52\\uD83D\\uDE17\\uD83E\\uDD11\\uD83C\\uDF0A\\uD83E\\uDD2F\\uD83D\\uDC37\\u260E\\uD83D\\uDCA7\\uD83D\\uDE2F\\uD83D\\uDC86\\uD83D\\uDC46\\uD83C\\uDFA4\\uD83D\\uDE47\\uD83C\\uDF51\\u2744\\uD83C\\uDF34\\uD83D\\uDCA3\\uD83D\\uDC38\\uD83D\\uDC8C\\uD83D\\uDCCD\\uD83E\\uDD40\\uD83E\\uDD22\\uD83D\\uDC45\\uD83D\\uDCA1\\uD83D\\uDCA9\\uD83D\\uDC50\\uD83D\\uDCF8\\uD83D\\uDC7B\\uD83E\\uDD10\\uD83E\\uDD2E\\uD83C\\uDFBC\\uD83E\\uDD75\\uD83D\\uDEA9\\uD83C\\uDF4E\\uD83C\\uDF4A\\uD83D\\uDC7C\\uD83D\\uDC8D\\uD83D\\uDCE3\\uD83E\\uDD42');\nconst alphabetBytesToChars = alphabet.reduce((p, c, i) => {\n p[i] = c;\n return p;\n}, []);\nconst alphabetCharsToBytes = alphabet.reduce((p, c, i) => {\n p[c.codePointAt(0)] = i;\n return p;\n}, []);\nfunction encode(data) {\n return data.reduce((p, c) => {\n p += alphabetBytesToChars[c];\n return p;\n }, '');\n}\nfunction decode(str) {\n const byts = [];\n for (const char of str) {\n const byt = alphabetCharsToBytes[char.codePointAt(0)];\n if (byt === undefined) {\n throw new Error(`Non-base256emoji character: ${ char }`);\n }\n byts.push(byt);\n }\n return new Uint8Array(byts);\n}\nexport const base256emoji = from({\n prefix: '\\uD83D\\uDE80',\n name: 'base256emoji',\n encode,\n decode\n});", "import crypto from 'crypto';\nimport { from } from './hasher.js';\nimport { coerce } from '../bytes.js';\nexport const sha256 = from({\n name: 'sha2-256',\n code: 18,\n encode: input => coerce(crypto.createHash('sha256').update(input).digest())\n});\nexport const sha512 = from({\n name: 'sha2-512',\n code: 19,\n encode: input => coerce(crypto.createHash('sha512').update(input).digest())\n});", "var encode_1 = encode;\nvar MSB = 128, REST = 127, MSBALL = ~REST, INT = Math.pow(2, 31);\nfunction encode(num, out, offset) {\n out = out || [];\n offset = offset || 0;\n var oldOffset = offset;\n while (num >= INT) {\n out[offset++] = num & 255 | MSB;\n num /= 128;\n }\n while (num & MSBALL) {\n out[offset++] = num & 255 | MSB;\n num >>>= 7;\n }\n out[offset] = num | 0;\n encode.bytes = offset - oldOffset + 1;\n return out;\n}\nvar decode = read;\nvar MSB$1 = 128, REST$1 = 127;\nfunction read(buf, offset) {\n var res = 0, offset = offset || 0, shift = 0, counter = offset, b, l = buf.length;\n do {\n if (counter >= l) {\n read.bytes = 0;\n throw new RangeError('Could not decode varint');\n }\n b = buf[counter++];\n res += shift < 28 ? (b & REST$1) << shift : (b & REST$1) * Math.pow(2, shift);\n shift += 7;\n } while (b >= MSB$1);\n read.bytes = counter - offset;\n return res;\n}\nvar N1 = Math.pow(2, 7);\nvar N2 = Math.pow(2, 14);\nvar N3 = Math.pow(2, 21);\nvar N4 = Math.pow(2, 28);\nvar N5 = Math.pow(2, 35);\nvar N6 = Math.pow(2, 42);\nvar N7 = Math.pow(2, 49);\nvar N8 = Math.pow(2, 56);\nvar N9 = Math.pow(2, 63);\nvar length = function (value) {\n return value < N1 ? 1 : value < N2 ? 2 : value < N3 ? 3 : value < N4 ? 4 : value < N5 ? 5 : value < N6 ? 6 : value < N7 ? 7 : value < N8 ? 8 : value < N9 ? 9 : 10;\n};\nvar varint = {\n encode: encode_1,\n decode: decode,\n encodingLength: length\n};\nvar _brrp_varint = varint;\nexport default _brrp_varint;", "import varint from '../vendor/varint.js';\nexport const decode = (data, offset = 0) => {\n const code = varint.decode(data, offset);\n return [\n code,\n varint.decode.bytes\n ];\n};\nexport const encodeTo = (int, target, offset = 0) => {\n varint.encode(int, target, offset);\n return target;\n};\nexport const encodingLength = int => {\n return varint.encodingLength(int);\n};", "import {\n coerce,\n equals as equalBytes\n} from '../bytes.js';\nimport * as varint from '../varint.js';\nexport const create = (code, digest) => {\n const size = digest.byteLength;\n const sizeOffset = varint.encodingLength(code);\n const digestOffset = sizeOffset + varint.encodingLength(size);\n const bytes = new Uint8Array(digestOffset + size);\n varint.encodeTo(code, bytes, 0);\n varint.encodeTo(size, bytes, sizeOffset);\n bytes.set(digest, digestOffset);\n return new Digest(code, size, digest, bytes);\n};\nexport const decode = multihash => {\n const bytes = coerce(multihash);\n const [code, sizeOffset] = varint.decode(bytes);\n const [size, digestOffset] = varint.decode(bytes.subarray(sizeOffset));\n const digest = bytes.subarray(sizeOffset + digestOffset);\n if (digest.byteLength !== size) {\n throw new Error('Incorrect length');\n }\n return new Digest(code, size, digest, bytes);\n};\nexport const equals = (a, b) => {\n if (a === b) {\n return true;\n } else {\n return a.code === b.code && a.size === b.size && equalBytes(a.bytes, b.bytes);\n }\n};\nexport class Digest {\n constructor(code, size, digest, bytes) {\n this.code = code;\n this.size = size;\n this.digest = digest;\n this.bytes = bytes;\n }\n}", "import * as Digest from './digest.js';\nexport const from = ({name, code, encode}) => new Hasher(name, code, encode);\nexport class Hasher {\n constructor(name, code, encode) {\n this.name = name;\n this.code = code;\n this.encode = encode;\n }\n digest(input) {\n if (input instanceof Uint8Array) {\n const result = this.encode(input);\n return result instanceof Uint8Array ? Digest.create(this.code, result) : result.then(digest => Digest.create(this.code, digest));\n } else {\n throw Error('Unknown type, must be binary type');\n }\n }\n}", "import { coerce } from '../bytes.js';\nimport * as Digest from './digest.js';\nconst code = 0;\nconst name = 'identity';\nconst encode = coerce;\nconst digest = input => Digest.create(code, encode(input));\nexport const identity = {\n code,\n name,\n encode,\n digest\n};", "const textEncoder = new TextEncoder();\nconst textDecoder = new TextDecoder();\nexport const name = 'json';\nexport const code = 512;\nexport const encode = node => textEncoder.encode(JSON.stringify(node));\nexport const decode = data => JSON.parse(textDecoder.decode(data));", "import * as varint from './varint.js';\nimport * as Digest from './hashes/digest.js';\nimport { base58btc } from './bases/base58.js';\nimport { base32 } from './bases/base32.js';\nimport { coerce } from './bytes.js';\nexport class CID {\n constructor(version, code, multihash, bytes) {\n this.code = code;\n this.version = version;\n this.multihash = multihash;\n this.bytes = bytes;\n this.byteOffset = bytes.byteOffset;\n this.byteLength = bytes.byteLength;\n this.asCID = this;\n this._baseCache = new Map();\n Object.defineProperties(this, {\n byteOffset: hidden,\n byteLength: hidden,\n code: readonly,\n version: readonly,\n multihash: readonly,\n bytes: readonly,\n _baseCache: hidden,\n asCID: hidden\n });\n }\n toV0() {\n switch (this.version) {\n case 0: {\n return this;\n }\n default: {\n const {code, multihash} = this;\n if (code !== DAG_PB_CODE) {\n throw new Error('Cannot convert a non dag-pb CID to CIDv0');\n }\n if (multihash.code !== SHA_256_CODE) {\n throw new Error('Cannot convert non sha2-256 multihash CID to CIDv0');\n }\n return CID.createV0(multihash);\n }\n }\n }\n toV1() {\n switch (this.version) {\n case 0: {\n const {code, digest} = this.multihash;\n const multihash = Digest.create(code, digest);\n return CID.createV1(this.code, multihash);\n }\n case 1: {\n return this;\n }\n default: {\n throw Error(`Can not convert CID version ${ this.version } to version 0. This is a bug please report`);\n }\n }\n }\n equals(other) {\n return other && this.code === other.code && this.version === other.version && Digest.equals(this.multihash, other.multihash);\n }\n toString(base) {\n const {bytes, version, _baseCache} = this;\n switch (version) {\n case 0:\n return toStringV0(bytes, _baseCache, base || base58btc.encoder);\n default:\n return toStringV1(bytes, _baseCache, base || base32.encoder);\n }\n }\n toJSON() {\n return {\n code: this.code,\n version: this.version,\n hash: this.multihash.bytes\n };\n }\n get [Symbol.toStringTag]() {\n return 'CID';\n }\n [Symbol.for('nodejs.util.inspect.custom')]() {\n return 'CID(' + this.toString() + ')';\n }\n static isCID(value) {\n deprecate(/^0\\.0/, IS_CID_DEPRECATION);\n return !!(value && (value[cidSymbol] || value.asCID === value));\n }\n get toBaseEncodedString() {\n throw new Error('Deprecated, use .toString()');\n }\n get codec() {\n throw new Error('\"codec\" property is deprecated, use integer \"code\" property instead');\n }\n get buffer() {\n throw new Error('Deprecated .buffer property, use .bytes to get Uint8Array instead');\n }\n get multibaseName() {\n throw new Error('\"multibaseName\" property is deprecated');\n }\n get prefix() {\n throw new Error('\"prefix\" property is deprecated');\n }\n static asCID(value) {\n if (value instanceof CID) {\n return value;\n } else if (value != null && value.asCID === value) {\n const {version, code, multihash, bytes} = value;\n return new CID(version, code, multihash, bytes || encodeCID(version, code, multihash.bytes));\n } else if (value != null && value[cidSymbol] === true) {\n const {version, multihash, code} = value;\n const digest = Digest.decode(multihash);\n return CID.create(version, code, digest);\n } else {\n return null;\n }\n }\n static create(version, code, digest) {\n if (typeof code !== 'number') {\n throw new Error('String codecs are no longer supported');\n }\n switch (version) {\n case 0: {\n if (code !== DAG_PB_CODE) {\n throw new Error(`Version 0 CID must use dag-pb (code: ${ DAG_PB_CODE }) block encoding`);\n } else {\n return new CID(version, code, digest, digest.bytes);\n }\n }\n case 1: {\n const bytes = encodeCID(version, code, digest.bytes);\n return new CID(version, code, digest, bytes);\n }\n default: {\n throw new Error('Invalid version');\n }\n }\n }\n static createV0(digest) {\n return CID.create(0, DAG_PB_CODE, digest);\n }\n static createV1(code, digest) {\n return CID.create(1, code, digest);\n }\n static decode(bytes) {\n const [cid, remainder] = CID.decodeFirst(bytes);\n if (remainder.length) {\n throw new Error('Incorrect length');\n }\n return cid;\n }\n static decodeFirst(bytes) {\n const specs = CID.inspectBytes(bytes);\n const prefixSize = specs.size - specs.multihashSize;\n const multihashBytes = coerce(bytes.subarray(prefixSize, prefixSize + specs.multihashSize));\n if (multihashBytes.byteLength !== specs.multihashSize) {\n throw new Error('Incorrect length');\n }\n const digestBytes = multihashBytes.subarray(specs.multihashSize - specs.digestSize);\n const digest = new Digest.Digest(specs.multihashCode, specs.digestSize, digestBytes, multihashBytes);\n const cid = specs.version === 0 ? CID.createV0(digest) : CID.createV1(specs.codec, digest);\n return [\n cid,\n bytes.subarray(specs.size)\n ];\n }\n static inspectBytes(initialBytes) {\n let offset = 0;\n const next = () => {\n const [i, length] = varint.decode(initialBytes.subarray(offset));\n offset += length;\n return i;\n };\n let version = next();\n let codec = DAG_PB_CODE;\n if (version === 18) {\n version = 0;\n offset = 0;\n } else if (version === 1) {\n codec = next();\n }\n if (version !== 0 && version !== 1) {\n throw new RangeError(`Invalid CID version ${ version }`);\n }\n const prefixSize = offset;\n const multihashCode = next();\n const digestSize = next();\n const size = offset + digestSize;\n const multihashSize = size - prefixSize;\n return {\n version,\n codec,\n multihashCode,\n digestSize,\n multihashSize,\n size\n };\n }\n static parse(source, base) {\n const [prefix, bytes] = parseCIDtoBytes(source, base);\n const cid = CID.decode(bytes);\n cid._baseCache.set(prefix, source);\n return cid;\n }\n}\nconst parseCIDtoBytes = (source, base) => {\n switch (source[0]) {\n case 'Q': {\n const decoder = base || base58btc;\n return [\n base58btc.prefix,\n decoder.decode(`${ base58btc.prefix }${ source }`)\n ];\n }\n case base58btc.prefix: {\n const decoder = base || base58btc;\n return [\n base58btc.prefix,\n decoder.decode(source)\n ];\n }\n case base32.prefix: {\n const decoder = base || base32;\n return [\n base32.prefix,\n decoder.decode(source)\n ];\n }\n default: {\n if (base == null) {\n throw Error('To parse non base32 or base58btc encoded CID multibase decoder must be provided');\n }\n return [\n source[0],\n base.decode(source)\n ];\n }\n }\n};\nconst toStringV0 = (bytes, cache, base) => {\n const {prefix} = base;\n if (prefix !== base58btc.prefix) {\n throw Error(`Cannot string encode V0 in ${ base.name } encoding`);\n }\n const cid = cache.get(prefix);\n if (cid == null) {\n const cid = base.encode(bytes).slice(1);\n cache.set(prefix, cid);\n return cid;\n } else {\n return cid;\n }\n};\nconst toStringV1 = (bytes, cache, base) => {\n const {prefix} = base;\n const cid = cache.get(prefix);\n if (cid == null) {\n const cid = base.encode(bytes);\n cache.set(prefix, cid);\n return cid;\n } else {\n return cid;\n }\n};\nconst DAG_PB_CODE = 112;\nconst SHA_256_CODE = 18;\nconst encodeCID = (version, code, multihash) => {\n const codeOffset = varint.encodingLength(version);\n const hashOffset = codeOffset + varint.encodingLength(code);\n const bytes = new Uint8Array(hashOffset + multihash.byteLength);\n varint.encodeTo(version, bytes, 0);\n varint.encodeTo(code, bytes, codeOffset);\n bytes.set(multihash, hashOffset);\n return bytes;\n};\nconst cidSymbol = Symbol.for('@ipld/js-cid/CID');\nconst readonly = {\n writable: false,\n configurable: false,\n enumerable: true\n};\nconst hidden = {\n writable: false,\n enumerable: false,\n configurable: false\n};\nconst version = '0.0.0-dev';\nconst deprecate = (range, message) => {\n if (range.test(version)) {\n console.warn(message);\n } else {\n throw new Error(message);\n }\n};\nconst IS_CID_DEPRECATION = `CID.isCID(v) is deprecated and will be removed in the next major release.\nFollowing code pattern:\n\nif (CID.isCID(value)) {\n doSomethingWithCID(value)\n}\n\nIs replaced with:\n\nconst cid = CID.asCID(value)\nif (cid) {\n // Make sure to use cid instead of value\n doSomethingWithCID(cid)\n}\n`;", "import * as identityBase from './bases/identity.js';\nimport * as base2 from './bases/base2.js';\nimport * as base8 from './bases/base8.js';\nimport * as base10 from './bases/base10.js';\nimport * as base16 from './bases/base16.js';\nimport * as base32 from './bases/base32.js';\nimport * as base36 from './bases/base36.js';\nimport * as base58 from './bases/base58.js';\nimport * as base64 from './bases/base64.js';\nimport * as base256emoji from './bases/base256emoji.js';\nimport * as sha2 from './hashes/sha2.js';\nimport * as identity from './hashes/identity.js';\nimport * as raw from './codecs/raw.js';\nimport * as json from './codecs/json.js';\nimport {\n CID,\n hasher,\n digest,\n varint,\n bytes\n} from './index.js';\nconst bases = {\n ...identityBase,\n ...base2,\n ...base8,\n ...base10,\n ...base16,\n ...base32,\n ...base36,\n ...base58,\n ...base64,\n ...base256emoji\n};\nconst hashes = {\n ...sha2,\n ...identity\n};\nconst codecs = {\n raw,\n json\n};\nexport {\n CID,\n hasher,\n digest,\n varint,\n bytes,\n hashes,\n bases,\n codecs\n};", "import { bases } from 'multiformats/basics';\nfunction createCodec(name, prefix, encode, decode) {\n return {\n name,\n prefix,\n encoder: {\n name,\n prefix,\n encode\n },\n decoder: { decode }\n };\n}\nconst string = createCodec('utf8', 'u', buf => {\n const decoder = new TextDecoder('utf8');\n return 'u' + decoder.decode(buf);\n}, str => {\n const encoder = new TextEncoder();\n return encoder.encode(str.substring(1));\n});\nconst ascii = createCodec('ascii', 'a', buf => {\n let string = 'a';\n for (let i = 0; i < buf.length; i++) {\n string += String.fromCharCode(buf[i]);\n }\n return string;\n}, str => {\n str = str.substring(1);\n const buf = new Uint8Array(str.length);\n for (let i = 0; i < str.length; i++) {\n buf[i] = str.charCodeAt(i);\n }\n return buf;\n});\nconst BASES = {\n utf8: string,\n 'utf-8': string,\n hex: bases.base16,\n latin1: ascii,\n ascii: ascii,\n binary: ascii,\n ...bases\n};\nexport default BASES;", "import bases from './util/bases.js';\nexport function fromString(string, encoding = 'utf8') {\n const base = bases[encoding];\n if (!base) {\n throw new Error(`Unsupported encoding \"${ encoding }\"`);\n }\n return base.decoder.decode(`${ base.prefix }${ string }`);\n}", "import bases from './util/bases.js';\nexport function toString(array, encoding = 'utf8') {\n const base = bases[encoding];\n if (!base) {\n throw new Error(`Unsupported encoding \"${ encoding }\"`);\n }\n return base.encoder.encode(array).substring(1);\n}", "import * as uint8arrays from 'uint8arrays'\nimport { webcrypto } from 'one-webcrypto'\nimport { SupportedEncodings } from 'uint8arrays/to-string'\n\nexport const randomBytes = (length: number): Uint8Array => {\n return webcrypto.getRandomValues(new Uint8Array(length))\n}\n\nexport const randomIV = (): Uint8Array => {\n return randomBytes(12)\n}\n\nexport const randomStr = (\n byteLength: number,\n encoding: SupportedEncodings,\n): string => {\n const bytes = randomBytes(byteLength)\n return uint8arrays.toString(bytes, encoding)\n}\n", "import { webcrypto } from 'one-webcrypto'\nimport * as uint8arrays from 'uint8arrays'\n\nimport * as random from './random'\n\nexport class AesKey {\n private key: CryptoKey\n constructor(key: CryptoKey) {\n this.key = key\n }\n\n static async create(): Promise<AesKey> {\n const key = await webcrypto.subtle.generateKey(\n {\n name: 'AES-GCM',\n length: 256,\n },\n true,\n ['encrypt', 'decrypt'],\n )\n return new AesKey(key)\n }\n\n // utf8 data -> base64pad cipher\n // returns base64 encrypted data with iv prepended\n async encrypt(data: string): Promise<string> {\n const iv = random.randomIV()\n const dataBytes = uint8arrays.fromString(data, 'utf8')\n const buf = await webcrypto.subtle.encrypt(\n {\n name: 'AES-GCM',\n iv,\n },\n this.key,\n dataBytes,\n )\n const encryptedBytes = new Uint8Array(buf)\n const encrypted = uint8arrays.toString(\n uint8arrays.concat([iv, encryptedBytes]),\n 'base64pad',\n )\n return encrypted\n }\n\n // base64pad cipher -> utf8 data\n // expects base64 encrypted data with iv prepended\n async decrypt(data: string): Promise<string> {\n const dataBytes = uint8arrays.fromString(data, 'base64pad')\n const iv = dataBytes.slice(0, 12)\n const encrypted = dataBytes.slice(12)\n const buf = await webcrypto.subtle.decrypt(\n {\n name: 'AES-GCM',\n iv,\n },\n this.key,\n encrypted,\n )\n const decryptedBytes = new Uint8Array(buf)\n return uint8arrays.toString(decryptedBytes, 'utf8')\n }\n}\n\nexport default AesKey\n", "export const P256_DID_PREFIX = new Uint8Array([0x80, 0x24])\nexport const SECP256K1_DID_PREFIX = new Uint8Array([0xe7, 0x01])\nexport const BASE58_DID_PREFIX = 'did:key:z' // z is the multibase prefix for base58btc byte encoding\n\nexport const P256_JWT_ALG = 'ES256'\nexport const SECP256K1_JWT_ALG = 'ES256K'\n", "import bigInt from 'big-integer'\nimport * as uint8arrays from 'uint8arrays'\n\n// PUBLIC KEY COMPRESSION\n// ------------------------\n\n// Compression & Decompression algos from:\n// https://stackoverflow.com/questions/48521840/biginteger-to-a-uint8array-of-bytes\n\n// Public key compression for NIST P-256\nexport const compressPubkey = (pubkeyBytes: Uint8Array): Uint8Array => {\n if (pubkeyBytes.length !== 65) {\n throw new Error('Expected 65 byte pubkey')\n } else if (pubkeyBytes[0] !== 0x04) {\n throw new Error('Expected first byte to be 0x04')\n }\n // first byte is a prefix\n const x = pubkeyBytes.slice(1, 33)\n const y = pubkeyBytes.slice(33, 65)\n const out = new Uint8Array(x.length + 1)\n\n out[0] = 2 + (y[y.length - 1] & 1)\n out.set(x, 1)\n\n return out\n}\n\n// Public key decompression for NIST P-256\nexport const decompressPubkey = (compressed: Uint8Array): Uint8Array => {\n if (compressed.length !== 33) {\n throw new Error('Expected 33 byte compress pubkey')\n } else if (compressed[0] !== 0x02 && compressed[0] !== 0x03) {\n throw new Error('Expected first byte to be 0x02 or 0x03')\n }\n // Consts for P256 curve\n const two = bigInt(2)\n // 115792089210356248762697446949407573530086143415290314195533631308867097853951\n const prime = two\n .pow(256)\n .subtract(two.pow(224))\n .add(two.pow(192))\n .add(two.pow(96))\n .subtract(1)\n const b = bigInt(\n '41058363725152142129326129780047268409114441015993725554835256314039467401291',\n )\n\n // Pre-computed value, or literal\n const pIdent = prime.add(1).divide(4) // 28948022302589062190674361737351893382521535853822578548883407827216774463488\n\n // This value must be 2 or 3. 4 indicates an uncompressed key, and anything else is invalid.\n const signY = bigInt(compressed[0] - 2)\n const x = compressed.slice(1)\n const xBig = bigInt(uint8arrays.toString(x, 'base10'))\n\n // y^2 = x^3 - 3x + b\n const maybeY = xBig\n .pow(3)\n .subtract(xBig.multiply(3))\n .add(b)\n .modPow(pIdent, prime)\n\n let yBig\n // If the parity matches, we found our root, otherwise it's the other root\n if (maybeY.mod(2).equals(signY)) {\n yBig = maybeY\n } else {\n // y = prime - y\n yBig = prime.subtract(maybeY)\n }\n const y = uint8arrays.fromString(yBig.toString(10), 'base10')\n\n // left-pad for smaller than 32 byte y\n const offset = 32 - y.length\n const yPadded = new Uint8Array(32)\n yPadded.set(y, offset)\n\n // concat coords & prepend P-256 prefix\n const publicKey = uint8arrays.concat([[0x04], x, yPadded])\n return publicKey\n}\n", "/*! noble-secp256k1 - MIT License (c) 2019 Paul Miller (paulmillr.com) */\nimport * as nodeCrypto from 'crypto';\nconst _0n = BigInt(0);\nconst _1n = BigInt(1);\nconst _2n = BigInt(2);\nconst _3n = BigInt(3);\nconst _8n = BigInt(8);\nconst CURVE = Object.freeze({\n a: _0n,\n b: BigInt(7),\n P: BigInt('0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f'),\n n: BigInt('0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141'),\n h: _1n,\n Gx: BigInt('55066263022277343669578718895168534326250603453777594175500187360389116729240'),\n Gy: BigInt('32670510020758816978083085130507043184471273380659243275938904335757337482424'),\n beta: BigInt('0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee'),\n});\nexport { CURVE };\nfunction weistrass(x) {\n const { a, b } = CURVE;\n const x2 = mod(x * x);\n const x3 = mod(x2 * x);\n return mod(x3 + a * x + b);\n}\nconst USE_ENDOMORPHISM = CURVE.a === _0n;\nclass ShaError extends Error {\n constructor(message) {\n super(message);\n }\n}\nclass JacobianPoint {\n constructor(x, y, z) {\n this.x = x;\n this.y = y;\n this.z = z;\n }\n static fromAffine(p) {\n if (!(p instanceof Point)) {\n throw new TypeError('JacobianPoint#fromAffine: expected Point');\n }\n return new JacobianPoint(p.x, p.y, _1n);\n }\n static toAffineBatch(points) {\n const toInv = invertBatch(points.map((p) => p.z));\n return points.map((p, i) => p.toAffine(toInv[i]));\n }\n static normalizeZ(points) {\n return JacobianPoint.toAffineBatch(points).map(JacobianPoint.fromAffine);\n }\n equals(other) {\n if (!(other instanceof JacobianPoint))\n throw new TypeError('JacobianPoint expected');\n const { x: X1, y: Y1, z: Z1 } = this;\n const { x: X2, y: Y2, z: Z2 } = other;\n const Z1Z1 = mod(Z1 * Z1);\n const Z2Z2 = mod(Z2 * Z2);\n const U1 = mod(X1 * Z2Z2);\n const U2 = mod(X2 * Z1Z1);\n const S1 = mod(mod(Y1 * Z2) * Z2Z2);\n const S2 = mod(mod(Y2 * Z1) * Z1Z1);\n return U1 === U2 && S1 === S2;\n }\n negate() {\n return new JacobianPoint(this.x, mod(-this.y), this.z);\n }\n double() {\n const { x: X1, y: Y1, z: Z1 } = this;\n const A = mod(X1 * X1);\n const B = mod(Y1 * Y1);\n const C = mod(B * B);\n const x1b = X1 + B;\n const D = mod(_2n * (mod(x1b * x1b) - A - C));\n const E = mod(_3n * A);\n const F = mod(E * E);\n const X3 = mod(F - _2n * D);\n const Y3 = mod(E * (D - X3) - _8n * C);\n const Z3 = mod(_2n * Y1 * Z1);\n return new JacobianPoint(X3, Y3, Z3);\n }\n add(other) {\n if (!(other instanceof JacobianPoint))\n throw new TypeError('JacobianPoint expected');\n const { x: X1, y: Y1, z: Z1 } = this;\n const { x: X2, y: Y2, z: Z2 } = other;\n if (X2 === _0n || Y2 === _0n)\n return this;\n if (X1 === _0n || Y1 === _0n)\n return other;\n const Z1Z1 = mod(Z1 * Z1);\n const Z2Z2 = mod(Z2 * Z2);\n const U1 = mod(X1 * Z2Z2);\n const U2 = mod(X2 * Z1Z1);\n const S1 = mod(mod(Y1 * Z2) * Z2Z2);\n const S2 = mod(mod(Y2 * Z1) * Z1Z1);\n const H = mod(U2 - U1);\n const r = mod(S2 - S1);\n if (H === _0n) {\n if (r === _0n) {\n return this.double();\n }\n else {\n return JacobianPoint.ZERO;\n }\n }\n const HH = mod(H * H);\n const HHH = mod(H * HH);\n const V = mod(U1 * HH);\n const X3 = mod(r * r - HHH - _2n * V);\n const Y3 = mod(r * (V - X3) - S1 * HHH);\n const Z3 = mod(Z1 * Z2 * H);\n return new JacobianPoint(X3, Y3, Z3);\n }\n subtract(other) {\n return this.add(other.negate());\n }\n multiplyUnsafe(scalar) {\n const P0 = JacobianPoint.ZERO;\n if (typeof scalar === 'bigint' && scalar === _0n)\n return P0;\n let n = normalizeScalar(scalar);\n if (n === _1n)\n return this;\n if (!USE_ENDOMORPHISM) {\n let p = P0;\n let d = this;\n while (n > _0n) {\n if (n & _1n)\n p = p.add(d);\n d = d.double();\n n >>= _1n;\n }\n return p;\n }\n let { k1neg, k1, k2neg, k2 } = splitScalarEndo(n);\n let k1p = P0;\n let k2p = P0;\n let d = this;\n while (k1 > _0n || k2 > _0n) {\n if (k1 & _1n)\n k1p = k1p.add(d);\n if (k2 & _1n)\n k2p = k2p.add(d);\n d = d.double();\n k1 >>= _1n;\n k2 >>= _1n;\n }\n if (k1neg)\n k1p = k1p.negate();\n if (k2neg)\n k2p = k2p.negate();\n k2p = new JacobianPoint(mod(k2p.x * CURVE.beta), k2p.y, k2p.z);\n return k1p.add(k2p);\n }\n precomputeWindow(W) {\n const windows = USE_ENDOMORPHISM ? 128 / W + 1 : 256 / W + 1;\n const points = [];\n let p = this;\n let base = p;\n for (let window = 0; window < windows; window++) {\n base = p;\n points.push(base);\n for (let i = 1; i < 2 ** (W - 1); i++) {\n base = base.add(p);\n points.push(base);\n }\n p = base.double();\n }\n return points;\n }\n wNAF(n, affinePoint) {\n if (!affinePoint && this.equals(JacobianPoint.BASE))\n affinePoint = Point.BASE;\n const W = (affinePoint && affinePoint._WINDOW_SIZE) || 1;\n if (256 % W) {\n throw new Error('Point#wNAF: Invalid precomputation window, must be power of 2');\n }\n let precomputes = affinePoint && pointPrecomputes.get(affinePoint);\n if (!precomputes) {\n precomputes = this.precomputeWindow(W);\n if (affinePoint && W !== 1) {\n precomputes = JacobianPoint.normalizeZ(precomputes);\n pointPrecomputes.set(affinePoint, precomputes);\n }\n }\n let p = JacobianPoint.ZERO;\n let f = JacobianPoint.ZERO;\n const windows = 1 + (USE_ENDOMORPHISM ? 128 / W : 256 / W);\n const windowSize = 2 ** (W - 1);\n const mask = BigInt(2 ** W - 1);\n const maxNumber = 2 ** W;\n const shiftBy = BigInt(W);\n for (let window = 0; window < windows; window++) {\n const offset = window * windowSize;\n let wbits = Number(n & mask);\n n >>= shiftBy;\n if (wbits > windowSize) {\n wbits -= maxNumber;\n n += _1n;\n }\n if (wbits === 0) {\n let pr = precomputes[offset];\n if (window % 2)\n pr = pr.negate();\n f = f.add(pr);\n }\n else {\n let cached = precomputes[offset + Math.abs(wbits) - 1];\n if (wbits < 0)\n cached = cached.negate();\n p = p.add(cached);\n }\n }\n return { p, f };\n }\n multiply(scalar, affinePoint) {\n let n = normalizeScalar(scalar);\n let point;\n let fake;\n if (USE_ENDOMORPHISM) {\n const { k1neg, k1, k2neg, k2 } = splitScalarEndo(n);\n let { p: k1p, f: f1p } = this.wNAF(k1, affinePoint);\n let { p: k2p, f: f2p } = this.wNAF(k2, affinePoint);\n if (k1neg)\n k1p = k1p.negate();\n if (k2neg)\n k2p = k2p.negate();\n k2p = new JacobianPoint(mod(k2p.x * CURVE.beta), k2p.y, k2p.z);\n point = k1p.add(k2p);\n fake = f1p.add(f2p);\n }\n else {\n const { p, f } = this.wNAF(n, affinePoint);\n point = p;\n fake = f;\n }\n return JacobianPoint.normalizeZ([point, fake])[0];\n }\n toAffine(invZ = invert(this.z)) {\n const { x, y, z } = this;\n const iz1 = invZ;\n const iz2 = mod(iz1 * iz1);\n const iz3 = mod(iz2 * iz1);\n const ax = mod(x * iz2);\n const ay = mod(y * iz3);\n const zz = mod(z * iz1);\n if (zz !== _1n)\n throw new Error('invZ was invalid');\n return new Point(ax, ay);\n }\n}\nJacobianPoint.BASE = new JacobianPoint(CURVE.Gx, CURVE.Gy, _1n);\nJacobianPoint.ZERO = new JacobianPoint(_0n, _1n, _0n);\nconst pointPrecomputes = new WeakMap();\nexport class Point {\n constructor(x, y) {\n this.x = x;\n this.y = y;\n }\n _setWindowSize(windowSize) {\n this._WINDOW_SIZE = windowSize;\n pointPrecomputes.delete(this);\n }\n hasEvenY() {\n return this.y % _2n === _0n;\n }\n static fromCompressedHex(bytes) {\n const isShort = bytes.length === 32;\n const x = bytesToNumber(isShort ? bytes : bytes.subarray(1));\n if (!isValidFieldElement(x))\n throw new Error('Point is not on curve');\n const y2 = weistrass(x);\n let y = sqrtMod(y2);\n const isYOdd = (y & _1n) === _1n;\n if (isShort) {\n if (isYOdd)\n y = mod(-y);\n }\n else {\n const isFirstByteOdd = (bytes[0] & 1) === 1;\n if (isFirstByteOdd !== isYOdd)\n y = mod(-y);\n }\n const point = new Point(x, y);\n point.assertValidity();\n return point;\n }\n static fromUncompressedHex(bytes) {\n const x = bytesToNumber(bytes.subarray(1, 33));\n const y = bytesToNumber(bytes.subarray(33, 65));\n const point = new Point(x, y);\n point.assertValidity();\n return point;\n }\n static fromHex(hex) {\n const bytes = ensureBytes(hex);\n const len = bytes.length;\n const header = bytes[0];\n if (len === 32 || (len === 33 && (header === 0x02 || header === 0x03))) {\n return this.fromCompressedHex(bytes);\n }\n if (len === 65 && header === 0x04)\n return this.fromUncompressedHex(bytes);\n throw new Error(`Point.fromHex: received invalid point. Expected 32-33 compressed bytes or 65 uncompressed bytes, not ${len}`);\n }\n static fromPrivateKey(privateKey) {\n return Point.BASE.multiply(normalizePrivateKey(privateKey));\n }\n static fromSignature(msgHash, signature, recovery) {\n msgHash = ensureBytes(msgHash);\n const h = truncateHash(msgHash);\n const { r, s } = normalizeSignature(signature);\n if (recovery !== 0 && recovery !== 1) {\n throw new Error('Cannot recover signature: invalid recovery bit');\n }\n const prefix = recovery & 1 ? '03' : '02';\n const R = Point.fromHex(prefix + numTo32bStr(r));\n const { n } = CURVE;\n const rinv = invert(r, n);\n const u1 = mod(-h * rinv, n);\n const u2 = mod(s * rinv, n);\n const Q = Point.BASE.multiplyAndAddUnsafe(R, u1, u2);\n if (!Q)\n throw new Error('Cannot recover signature: point at infinify');\n Q.assertValidity();\n return Q;\n }\n toRawBytes(isCompressed = false) {\n return hexToBytes(this.toHex(isCompressed));\n }\n toHex(isCompressed = false) {\n const x = numTo32bStr(this.x);\n if (isCompressed) {\n const prefix = this.hasEvenY() ? '02' : '03';\n return `${prefix}${x}`;\n }\n else {\n return `04${x}${numTo32bStr(this.y)}`;\n }\n }\n toHexX() {\n return this.toHex(true).slice(2);\n }\n toRawX() {\n return this.toRawBytes(true).slice(1);\n }\n assertValidity() {\n const msg = 'Point is not on elliptic curve';\n const { x, y } = this;\n if (!isValidFieldElement(x) || !isValidFieldElement(y))\n throw new Error(msg);\n const left = mod(y * y);\n const right = weistrass(x);\n if (mod(left - right) !== _0n)\n throw new Error(msg);\n }\n equals(other) {\n return this.x === other.x && this.y === other.y;\n }\n negate() {\n return new Point(this.x, mod(-this.y));\n }\n double() {\n return JacobianPoint.fromAffine(this).double().toAffine();\n }\n add(other) {\n return JacobianPoint.fromAffine(this).add(JacobianPoint.fromAffine(other)).toAffine();\n }\n subtract(other) {\n return this.add(other.negate());\n }\n multiply(scalar) {\n return JacobianPoint.fromAffine(this).multiply(scalar, this).toAffine();\n }\n multiplyAndAddUnsafe(Q, a, b) {\n const P = JacobianPoint.fromAffine(this);\n const aP = a === _0n || a === _1n || this !== Point.BASE ? P.multiplyUnsafe(a) : P.multiply(a);\n const bQ = JacobianPoint.fromAffine(Q).multiplyUnsafe(b);\n const sum = aP.add(bQ);\n return sum.equals(JacobianPoint.ZERO) ? undefined : sum.toAffine();\n }\n}\nPoint.BASE = new Point(CURVE.Gx, CURVE.Gy);\nPoint.ZERO = new Point(_0n, _0n);\nfunction sliceDER(s) {\n return Number.parseInt(s[0], 16) >= 8 ? '00' + s : s;\n}\nfunction parseDERInt(data) {\n if (data.length < 2 || data[0] !== 0x02) {\n throw new Error(`Invalid signature integer tag: ${bytesToHex(data)}`);\n }\n const len = data[1];\n const res = data.subarray(2, len + 2);\n if (!len || res.length !== len) {\n throw new Error(`Invalid signature integer: wrong length`);\n }\n if (res[0] === 0x00 && res[1] <= 0x7f) {\n throw new Error('Invalid signature integer: trailing length');\n }\n return { data: bytesToNumber(res), left: data.subarray(len + 2) };\n}\nfunction parseDERSignature(data) {\n if (data.length < 2 || data[0] != 0x30) {\n throw new Error(`Invalid signature tag: ${bytesToHex(data)}`);\n }\n if (data[1] !== data.length - 2) {\n throw new Error('Invalid signature: incorrect length');\n }\n const { data: r, left: sBytes } = parseDERInt(data.subarray(2));\n const { data: s, left: rBytesLeft } = parseDERInt(sBytes);\n if (rBytesLeft.length) {\n throw new Error(`Invalid signature: left bytes after parsing: ${bytesToHex(rBytesLeft)}`);\n }\n return { r, s };\n}\nexport class Signature {\n constructor(r, s) {\n this.r = r;\n this.s = s;\n this.assertValidity();\n }\n static fromCompact(hex) {\n const arr = hex instanceof Uint8Array;\n const name = 'Signature.fromCompact';\n if (typeof hex !== 'string' && !arr)\n throw new TypeError(`${name}: Expected string or Uint8Array`);\n const str = arr ? bytesToHex(hex) : hex;\n if (str.length !== 128)\n throw new Error(`${name}: Expected 64-byte hex`);\n return new Signature(hexToNumber(str.slice(0, 64)), hexToNumber(str.slice(64, 128)));\n }\n static fromDER(hex) {\n const arr = hex instanceof Uint8Array;\n if (typeof hex !== 'string' && !arr)\n throw new TypeError(`Signature.fromDER: Expected string or Uint8Array`);\n const { r, s } = parseDERSignature(arr ? hex : hexToBytes(hex));\n return new Signature(r, s);\n }\n static fromHex(hex) {\n return this.fromDER(hex);\n }\n assertValidity() {\n const { r, s } = this;\n if (!isWithinCurveOrder(r))\n throw new Error('Invalid Signature: r must be 0 < r < n');\n if (!isWithinCurveOrder(s))\n throw new Error('Invalid Signature: s must be 0 < s < n');\n }\n hasHighS() {\n const HALF = CURVE.n >> _1n;\n return this.s > HALF;\n }\n normalizeS() {\n return this.hasHighS() ? new Signature(this.r, CURVE.n - this.s) : this;\n }\n toDERRawBytes(isCompressed = false) {\n return hexToBytes(this.toDERHex(isCompressed));\n }\n toDERHex(isCompressed = false) {\n const sHex = sliceDER(numberToHexUnpadded(this.s));\n if (isCompressed)\n return sHex;\n const rHex = sliceDER(numberToHexUnpadded(this.r));\n const rLen = numberToHexUnpadded(rHex.length / 2);\n const sLen = numberToHexUnpadded(sHex.length / 2);\n const length = numberToHexUnpadded(rHex.length / 2 + sHex.length / 2 + 4);\n return `30${length}02${rLen}${rHex}02${sLen}${sHex}`;\n }\n toRawBytes() {\n return this.toDERRawBytes();\n }\n toHex() {\n return this.toDERHex();\n }\n toCompactRawBytes() {\n return hexToBytes(this.toCompactHex());\n }\n toCompactHex() {\n return numTo32bStr(this.r) + numTo32bStr(this.s);\n }\n}\nfunction concatBytes(...arrays) {\n if (!arrays.every((b) => b instanceof Uint8Array))\n throw new Error('Uint8Array list expected');\n if (arrays.length === 1)\n return arrays[0];\n const length = arrays.reduce((a, arr) => a + arr.length, 0);\n const result = new Uint8Array(length);\n for (let i = 0, pad = 0; i < arrays.length; i++) {\n const arr = arrays[i];\n result.set(arr, pad);\n pad += arr.length;\n }\n return result;\n}\nconst hexes = Array.from({ length: 256 }, (v, i) => i.toString(16).padStart(2, '0'));\nfunction bytesToHex(uint8a) {\n if (!(uint8a instanceof Uint8Array))\n throw new Error('Expected Uint8Array');\n let hex = '';\n for (let i = 0; i < uint8a.length; i++) {\n hex += hexes[uint8a[i]];\n }\n return hex;\n}\nconst POW_2_256 = BigInt('0x10000000000000000000000000000000000000000000000000000000000000000');\nfunction numTo32bStr(num) {\n if (typeof num !== 'bigint')\n throw new Error('Expected bigint');\n if (!(_0n <= num && num < POW_2_256))\n throw new Error('Expected number < 2^256');\n return num.toString(16).padStart(64, '0');\n}\nfunction numTo32b(num) {\n const b = hexToBytes(numTo32bStr(num));\n if (b.length !== 32)\n throw new Error('Error: expected 32 bytes');\n return b;\n}\nfunction numberToHexUnpadded(num) {\n const hex = num.toString(16);\n return hex.length & 1 ? `0${hex}` : hex;\n}\nfunction hexToNumber(hex) {\n if (typeof hex !== 'string') {\n throw new TypeError('hexToNumber: expected string, got ' + typeof hex);\n }\n return BigInt(`0x${hex}`);\n}\nfunction hexToBytes(hex) {\n if (typeof hex !== 'string') {\n throw new TypeError('hexToBytes: expected string, got ' + typeof hex);\n }\n if (hex.length % 2)\n throw new Error('hexToBytes: received invalid unpadded hex' + hex.length);\n const array = new Uint8Array(hex.length / 2);\n for (let i = 0; i < array.length; i++) {\n const j = i * 2;\n const hexByte = hex.slice(j, j + 2);\n const byte = Number.parseInt(hexByte, 16);\n if (Number.isNaN(byte) || byte < 0)\n throw new Error('Invalid byte sequence');\n array[i] = byte;\n }\n return array;\n}\nfunction bytesToNumber(bytes) {\n return hexToNumber(bytesToHex(bytes));\n}\nfunction ensureBytes(hex) {\n return hex instanceof Uint8Array ? Uint8Array.from(hex) : hexToBytes(hex);\n}\nfunction normalizeScalar(num) {\n if (typeof num === 'number' && Number.isSafeInteger(num) && num > 0)\n return BigInt(num);\n if (typeof num === 'bigint' && isWithinCurveOrder(num))\n return num;\n throw new TypeError('Expected valid private scalar: 0 < scalar < curve.n');\n}\nfunction mod(a, b = CURVE.P) {\n const result = a % b;\n return result >= _0n ? result : b + result;\n}\nfunction pow2(x, power) {\n const { P } = CURVE;\n let res = x;\n while (power-- > _0n) {\n res *= res;\n res %= P;\n }\n return res;\n}\nfunction sqrtMod(x) {\n const { P } = CURVE;\n const _6n = BigInt(6);\n const _11n = BigInt(11);\n const _22n = BigInt(22);\n const _23n = BigInt(23);\n const _44n = BigInt(44);\n const _88n = BigInt(88);\n const b2 = (x * x * x) % P;\n const b3 = (b2 * b2 * x) % P;\n const b6 = (pow2(b3, _3n) * b3) % P;\n const b9 = (pow2(b6, _3n) * b3) % P;\n const b11 = (pow2(b9, _2n) * b2) % P;\n const b22 = (pow2(b11, _11n) * b11) % P;\n const b44 = (pow2(b22, _22n) * b22) % P;\n const b88 = (pow2(b44, _44n) * b44) % P;\n const b176 = (pow2(b88, _88n) * b88) % P;\n const b220 = (pow2(b176, _44n) * b44) % P;\n const b223 = (pow2(b220, _3n) * b3) % P;\n const t1 = (pow2(b223, _23n) * b22) % P;\n const t2 = (pow2(t1, _6n) * b2) % P;\n return pow2(t2, _2n);\n}\nfunction invert(number, modulo = CURVE.P) {\n if (number === _0n || modulo <= _0n) {\n throw new Error(`invert: expected positive integers, got n=${number} mod=${modulo}`);\n }\n let a = mod(number, modulo);\n let b = modulo;\n let x = _0n, y = _1n, u = _1n, v = _0n;\n while (a !== _0n) {\n const q = b / a;\n const r = b % a;\n const m = x - u * q;\n const n = y - v * q;\n b = a, a = r, x = u, y = v, u = m, v = n;\n }\n const gcd = b;\n if (gcd !== _1n)\n throw new Error('invert: does not exist');\n return mod(x, modulo);\n}\nfunction invertBatch(nums, p = CURVE.P) {\n const scratch = new Array(nums.length);\n const lastMultiplied = nums.reduce((acc, num, i) => {\n if (num === _0n)\n return acc;\n scratch[i] = acc;\n return mod(acc * num, p);\n }, _1n);\n const inverted = invert(lastMultiplied, p);\n nums.reduceRight((acc, num, i) => {\n if (num === _0n)\n return acc;\n scratch[i] = mod(acc * scratch[i], p);\n return mod(acc * num, p);\n }, inverted);\n return scratch;\n}\nconst divNearest = (a, b) => (a + b / _2n) / b;\nconst ENDO = {\n a1: BigInt('0x3086d221a7d46bcde86c90e49284eb15'),\n b1: -_1n * BigInt('0xe4437ed6010e88286f547fa90abfe4c3'),\n a2: BigInt('0x114ca50f7a8e2f3f657c1108d9d44cfd8'),\n b2: BigInt('0x3086d221a7d46bcde86c90e49284eb15'),\n POW_2_128: BigInt('0x100000000000000000000000000000000'),\n};\nfunction splitScalarEndo(k) {\n const { n } = CURVE;\n const { a1, b1, a2, b2, POW_2_128 } = ENDO;\n const c1 = divNearest(b2 * k, n);\n const c2 = divNearest(-b1 * k, n);\n let k1 = mod(k - c1 * a1 - c2 * a2, n);\n let k2 = mod(-c1 * b1 - c2 * b2, n);\n const k1neg = k1 > POW_2_128;\n const k2neg = k2 > POW_2_128;\n if (k1neg)\n k1 = n - k1;\n if (k2neg)\n k2 = n - k2;\n if (k1 > POW_2_128 || k2 > POW_2_128) {\n throw new Error('splitScalarEndo: Endomorphism failed, k=' + k);\n }\n return { k1neg, k1, k2neg, k2 };\n}\nfunction truncateHash(hash) {\n const { n } = CURVE;\n const byteLength = hash.length;\n const delta = byteLength * 8 - 256;\n let h = bytesToNumber(hash);\n if (delta > 0)\n h = h >> BigInt(delta);\n if (h >= n)\n h -= n;\n return h;\n}\nlet _sha256Sync;\nlet _hmacSha256Sync;\nclass HmacDrbg {\n constructor() {\n this.v = new Uint8Array(32).fill(1);\n this.k = new Uint8Array(32).fill(0);\n this.counter = 0;\n }\n hmac(...values) {\n return utils.hmacSha256(this.k, ...values);\n }\n hmacSync(...values) {\n return _hmacSha256Sync(this.k, ...values);\n }\n checkSync() {\n if (typeof _hmacSha256Sync !== 'function')\n throw new ShaError('hmacSha256Sync needs to be set');\n }\n incr() {\n if (this.counter >= 1000)\n throw new Error('Tried 1,000 k values for sign(), all were invalid');\n this.counter += 1;\n }\n async reseed(seed = new Uint8Array()) {\n this.k = await this.hmac(this.v, Uint8Array.from([0x00]), seed);\n this.v = await this.hmac(this.v);\n if (seed.length === 0)\n return;\n this.k = await this.hmac(this.v, Uint8Array.from([0x01]), seed);\n this.v = await this.hmac(this.v);\n }\n reseedSync(seed = new Uint8Array()) {\n this.checkSync();\n this.k = this.hmacSync(this.v, Uint8Array.from([0x00]), seed);\n this.v = this.hmacSync(this.v);\n if (seed.length === 0)\n return;\n this.k = this.hmacSync(this.v, Uint8Array.from([0x01]), seed);\n this.v = this.hmacSync(this.v);\n }\n async generate() {\n this.incr();\n this.v = await this.hmac(this.v);\n return this.v;\n }\n generateSync() {\n this.checkSync();\n this.incr();\n this.v = this.hmacSync(this.v);\n return this.v;\n }\n}\nfunction isWithinCurveOrder(num) {\n return _0n < num && num < CURVE.n;\n}\nfunction isValidFieldElement(num) {\n return _0n < num && num < CURVE.P;\n}\nfunction kmdToSig(kBytes, m, d) {\n const k = bytesToNumber(kBytes);\n if (!isWithinCurveOrder(k))\n return;\n const { n } = CURVE;\n const q = Point.BASE.multiply(k);\n const r = mod(q.x, n);\n if (r === _0n)\n return;\n const s = mod(invert(k, n) * mod(m + d * r, n), n);\n if (s === _0n)\n return;\n const sig = new Signature(r, s);\n const recovery = (q.x === sig.r ? 0 : 2) | Number(q.y & _1n);\n return { sig, recovery };\n}\nfunction normalizePrivateKey(key) {\n let num;\n if (typeof key === 'bigint') {\n num = key;\n }\n else if (typeof key === 'number' && Number.isSafeInteger(key) && key > 0) {\n num = BigInt(key);\n }\n else if (typeof key === 'string') {\n if (key.length !== 64)\n throw new Error('Expected 32 bytes of private key');\n num = hexToNumber(key);\n }\n else if (key instanceof Uint8Array) {\n if (key.length !== 32)\n throw new Error('Expected 32 bytes of private key');\n num = bytesToNumber(key);\n }\n else {\n throw new TypeError('Expected valid private key');\n }\n if (!isWithinCurveOrder(num))\n throw new Error('Expected private key: 0 < key < n');\n return num;\n}\nfunction normalizePublicKey(publicKey) {\n if (publicKey instanceof Point) {\n publicKey.assertValidity();\n return publicKey;\n }\n else {\n return Point.fromHex(publicKey);\n }\n}\nfunction normalizeSignature(signature) {\n if (signature instanceof Signature) {\n signature.assertValidity();\n return signature;\n }\n try {\n return Signature.fromDER(signature);\n }\n catch (error) {\n return Signature.fromCompact(signature);\n }\n}\nexport function getPublicKey(privateKey, isCompressed = false) {\n return Point.fromPrivateKey(privateKey).toRawBytes(isCompressed);\n}\nexport function recoverPublicKey(msgHash, signature, recovery, isCompressed = false) {\n return Point.fromSignature(msgHash, signature, recovery).toRawBytes(isCompressed);\n}\nfunction isProbPub(item) {\n const arr = item instanceof Uint8Array;\n const str = typeof item === 'string';\n const len = (arr || str) && item.length;\n if (arr)\n return len === 33 || len === 65;\n if (str)\n return len === 66 || len === 130;\n if (item instanceof Point)\n return true;\n return false;\n}\nexport function getSharedSecret(privateA, publicB, isCompressed = false) {\n if (isProbPub(privateA))\n throw new TypeError('getSharedSecret: first arg must be private key');\n if (!isProbPub(publicB))\n throw new TypeError('getSharedSecret: second arg must be public key');\n const b = normalizePublicKey(publicB);\n b.assertValidity();\n return b.multiply(normalizePrivateKey(privateA)).toRawBytes(isCompressed);\n}\nfunction bits2int(bytes) {\n const slice = bytes.length > 32 ? bytes.slice(0, 32) : bytes;\n return bytesToNumber(slice);\n}\nfunction bits2octets(bytes) {\n const z1 = bits2int(bytes);\n const z2 = mod(z1, CURVE.n);\n return int2octets(z2 < _0n ? z1 : z2);\n}\nfunction int2octets(num) {\n return numTo32b(num);\n}\nfunction initSigArgs(msgHash, privateKey, extraEntropy) {\n if (msgHash == null)\n throw new Error(`sign: expected valid message hash, not \"${msgHash}\"`);\n const h1 = ensureBytes(msgHash);\n const d = normalizePrivateKey(privateKey);\n const seedArgs = [int2octets(d), bits2octets(h1)];\n if (extraEntropy != null) {\n if (extraEntropy === true)\n extraEntropy = utils.randomBytes(32);\n const e = ensureBytes(extraEntropy);\n if (e.length !== 32)\n throw new Error('sign: Expected 32 bytes of extra data');\n seedArgs.push(e);\n }\n const seed = concatBytes(...seedArgs);\n const m = bits2int(h1);\n return { seed, m, d };\n}\nfunction finalizeSig(recSig, opts) {\n let { sig, recovery } = recSig;\n const { canonical, der, recovered } = Object.assign({ canonical: true, der: true }, opts);\n if (canonical && sig.hasHighS()) {\n sig = sig.normalizeS();\n recovery ^= 1;\n }\n const hashed = der ? sig.toDERRawBytes() : sig.toCompactRawBytes();\n return recovered ? [hashed, recovery] : hashed;\n}\nasync function sign(msgHash, privKey, opts = {}) {\n const { seed, m, d } = initSigArgs(msgHash, privKey, opts.extraEntropy);\n let sig;\n const drbg = new HmacDrbg();\n await drbg.reseed(seed);\n while (!(sig = kmdToSig(await drbg.generate(), m, d)))\n await drbg.reseed();\n return finalizeSig(sig, opts);\n}\nfunction signSync(msgHash, privKey, opts = {}) {\n const { seed, m, d } = initSigArgs(msgHash, privKey, opts.extraEntropy);\n let sig;\n const drbg = new HmacDrbg();\n drbg.reseedSync(seed);\n while (!(sig = kmdToSig(drbg.generateSync(), m, d)))\n drbg.reseedSync();\n return finalizeSig(sig, opts);\n}\nexport { sign, signSync };\nconst vopts = { strict: true };\nexport function verify(signature, msgHash, publicKey, opts = vopts) {\n let sig;\n try {\n sig = normalizeSignature(signature);\n msgHash = ensureBytes(msgHash);\n }\n catch (error) {\n return false;\n }\n const { r, s } = sig;\n if (opts.strict && sig.hasHighS())\n return false;\n const h = truncateHash(msgHash);\n let P;\n try {\n P = normalizePublicKey(publicKey);\n }\n catch (error) {\n return false;\n }\n const { n } = CURVE;\n const sinv = invert(s, n);\n const u1 = mod(h * sinv, n);\n const u2 = mod(r * sinv, n);\n const R = Point.BASE.multiplyAndAddUnsafe(P, u1, u2);\n if (!R)\n return false;\n const v = mod(R.x, n);\n return v === r;\n}\nfunction schnorrChallengeFinalize(ch) {\n return mod(bytesToNumber(ch), CURVE.n);\n}\nclass SchnorrSignature {\n constructor(r, s) {\n this.r = r;\n this.s = s;\n this.assertValidity();\n }\n static fromHex(hex) {\n const bytes = ensureBytes(hex);\n if (bytes.length !== 64)\n throw new TypeError(`SchnorrSignature.fromHex: expected 64 bytes, not ${bytes.length}`);\n const r = bytesToNumber(bytes.subarray(0, 32));\n const s = bytesToNumber(bytes.subarray(32, 64));\n return new SchnorrSignature(r, s);\n }\n assertValidity() {\n const { r, s } = this;\n if (!isValidFieldElement(r) || !isWithinCurveOrder(s))\n throw new Error('Invalid signature');\n }\n toHex() {\n return numTo32bStr(this.r) + numTo32bStr(this.s);\n }\n toRawBytes() {\n return hexToBytes(this.toHex());\n }\n}\nfunction schnorrGetPublicKey(privateKey) {\n return Point.fromPrivateKey(privateKey).toRawX();\n}\nclass InternalSchnorrSignature {\n constructor(message, privateKey, auxRand = utils.randomBytes()) {\n if (message == null)\n throw new TypeError(`sign: Expected valid message, not \"${message}\"`);\n this.m = ensureBytes(message);\n const { x, scalar } = this.getScalar(normalizePrivateKey(privateKey));\n this.px = x;\n this.d = scalar;\n this.rand = ensureBytes(auxRand);\n if (this.rand.length !== 32)\n throw new TypeError('sign: Expected 32 bytes of aux randomness');\n }\n getScalar(priv) {\n const point = Point.fromPrivateKey(priv);\n const scalar = point.hasEvenY() ? priv : CURVE.n - priv;\n return { point, scalar, x: point.toRawX() };\n }\n initNonce(d, t0h) {\n return numTo32b(d ^ bytesToNumber(t0h));\n }\n finalizeNonce(k0h) {\n const k0 = mod(bytesToNumber(k0h), CURVE.n);\n if (k0 === _0n)\n throw new Error('sign: Creation of signature failed. k is zero');\n const { point: R, x: rx, scalar: k } = this.getScalar(k0);\n return { R, rx, k };\n }\n finalizeSig(R, k, e, d) {\n return new SchnorrSignature(R.x, mod(k + e * d, CURVE.n)).toRawBytes();\n }\n error() {\n throw new Error('sign: Invalid signature produced');\n }\n async calc() {\n const { m, d, px, rand } = this;\n const tag = utils.taggedHash;\n const t = this.initNonce(d, await tag(TAGS.aux, rand));\n const { R, rx, k } = this.finalizeNonce(await tag(TAGS.nonce, t, px, m));\n const e = schnorrChallengeFinalize(await tag(TAGS.challenge, rx, px, m));\n const sig = this.finalizeSig(R, k, e, d);\n if (!(await schnorrVerify(sig, m, px)))\n this.error();\n return sig;\n }\n calcSync() {\n const { m, d, px, rand } = this;\n const tag = utils.taggedHashSync;\n const t = this.initNonce(d, tag(TAGS.aux, rand));\n const { R, rx, k } = this.finalizeNonce(tag(TAGS.nonce, t, px, m));\n const e = schnorrChallengeFinalize(tag(TAGS.challenge, rx, px, m));\n const sig = this.finalizeSig(R, k, e, d);\n if (!schnorrVerifySync(sig, m, px))\n this.error();\n return sig;\n }\n}\nasync function schnorrSign(msg, privKey, auxRand) {\n return new InternalSchnorrSignature(msg, privKey, auxRand).calc();\n}\nfunction schnorrSignSync(msg, privKey, auxRand) {\n return new InternalSchnorrSignature(msg, privKey, auxRand).calcSync();\n}\nfunction initSchnorrVerify(signature, message, publicKey) {\n const raw = signature instanceof SchnorrSignature;\n const sig = raw ? signature : SchnorrSignature.fromHex(signature);\n if (raw)\n sig.assertValidity();\n return {\n ...sig,\n m: ensureBytes(message),\n P: normalizePublicKey(publicKey),\n };\n}\nfunction finalizeSchnorrVerify(r, P, s, e) {\n const R = Point.BASE.multiplyAndAddUnsafe(P, normalizePrivateKey(s), mod(-e, CURVE.n));\n if (!R || !R.hasEvenY() || R.x !== r)\n return false;\n return true;\n}\nasync function schnorrVerify(signature, message, publicKey) {\n try {\n const { r, s, m, P } = initSchnorrVerify(signature, message, publicKey);\n const e = schnorrChallengeFinalize(await utils.taggedHash(TAGS.challenge, numTo32b(r), P.toRawX(), m));\n return finalizeSchnorrVerify(r, P, s, e);\n }\n catch (error) {\n return false;\n }\n}\nfunction schnorrVerifySync(signature, message, publicKey) {\n try {\n const { r, s, m, P } = initSchnorrVerify(signature, message, publicKey);\n const e = schnorrChallengeFinalize(utils.taggedHashSync(TAGS.challenge, numTo32b(r), P.toRawX(), m));\n return finalizeSchnorrVerify(r, P, s, e);\n }\n catch (error) {\n if (error instanceof ShaError)\n throw error;\n return false;\n }\n}\nexport const schnorr = {\n Signature: SchnorrSignature,\n getPublicKey: schnorrGetPublicKey,\n sign: schnorrSign,\n verify: schnorrVerify,\n signSync: schnorrSignSync,\n verifySync: schnorrVerifySync,\n};\nPoint.BASE._setWindowSize(8);\nconst crypto = {\n node: nodeCrypto,\n web: typeof self === 'object' && 'crypto' in self ? self.crypto : undefined,\n};\nconst TAGS = {\n challenge: 'BIP0340/challenge',\n aux: 'BIP0340/aux',\n nonce: 'BIP0340/nonce',\n};\nconst TAGGED_HASH_PREFIXES = {};\nexport const utils = {\n bytesToHex,\n hexToBytes,\n concatBytes,\n mod,\n invert,\n isValidPrivateKey(privateKey) {\n try {\n normalizePrivateKey(privateKey);\n return true;\n }\n catch (error) {\n return false;\n }\n },\n _bigintTo32Bytes: numTo32b,\n _normalizePrivateKey: normalizePrivateKey,\n hashToPrivateKey: (hash) => {\n hash = ensureBytes(hash);\n if (hash.length < 40 || hash.length > 1024)\n throw new Error('Expected 40-1024 bytes of private key as per FIPS 186');\n const num = mod(bytesToNumber(hash), CURVE.n - _1n) + _1n;\n return numTo32b(num);\n },\n randomBytes: (bytesLength = 32) => {\n if (crypto.web) {\n return crypto.web.getRandomValues(new Uint8Array(bytesLength));\n }\n else if (crypto.node) {\n const { randomBytes } = crypto.node;\n return Uint8Array.from(randomBytes(bytesLength));\n }\n else {\n throw new Error(\"The environment doesn't have randomBytes function\");\n }\n },\n randomPrivateKey: () => {\n return utils.hashToPrivateKey(utils.randomBytes(40));\n },\n sha256: async (...messages) => {\n if (crypto.web) {\n const buffer = await crypto.web.subtle.digest('SHA-256', concatBytes(...messages));\n return new Uint8Array(buffer);\n }\n else if (crypto.node) {\n const { createHash } = crypto.node;\n const hash = createHash('sha256');\n messages.forEach((m) => hash.update(m));\n return Uint8Array.from(hash.digest());\n }\n else {\n throw new Error(\"The environment doesn't have sha256 function\");\n }\n },\n hmacSha256: async (key, ...messages) => {\n if (crypto.web) {\n const ckey = await crypto.web.subtle.importKey('raw', key, { name: 'HMAC', hash: { name: 'SHA-256' } }, false, ['sign']);\n const message = concatBytes(...messages);\n const buffer = await crypto.web.subtle.sign('HMAC', ckey, message);\n return new Uint8Array(buffer);\n }\n else if (crypto.node) {\n const { createHmac } = crypto.node;\n const hash = createHmac('sha256', key);\n messages.forEach((m) => hash.update(m));\n return Uint8Array.from(hash.digest());\n }\n else {\n throw new Error(\"The environment doesn't have hmac-sha256 function\");\n }\n },\n sha256Sync: undefined,\n hmacSha256Sync: undefined,\n taggedHash: async (tag, ...messages) => {\n let tagP = TAGGED_HASH_PREFIXES[tag];\n if (tagP === undefined) {\n const tagH = await utils.sha256(Uint8Array.from(tag, (c) => c.charCodeAt(0)));\n tagP = concatBytes(tagH, tagH);\n TAGGED_HASH_PREFIXES[tag] = tagP;\n }\n return utils.sha256(tagP, ...messages);\n },\n taggedHashSync: (tag, ...messages) => {\n if (typeof _sha256Sync !== 'function')\n throw new ShaError('sha256Sync is undefined, you need to set it');\n let tagP = TAGGED_HASH_PREFIXES[tag];\n if (tagP === undefined) {\n const tagH = _sha256Sync(Uint8Array.from(tag, (c) => c.charCodeAt(0)));\n tagP = concatBytes(tagH, tagH);\n TAGGED_HASH_PREFIXES[tag] = tagP;\n }\n return _sha256Sync(tagP, ...messages);\n },\n precompute(windowSize = 8, point = Point.BASE) {\n const cached = point === Point.BASE ? point : new Point(point.x, point.y);\n cached._setWindowSize(windowSize);\n cached.multiply(_3n);\n return cached;\n },\n};\nObject.defineProperties(utils, {\n sha256Sync: {\n configurable: false,\n get() {\n return _sha256Sync;\n },\n set(val) {\n if (!_sha256Sync)\n _sha256Sync = val;\n },\n },\n hmacSha256Sync: {\n configurable: false,\n get() {\n return _hmacSha256Sync;\n },\n set(val) {\n if (!_hmacSha256Sync)\n _hmacSha256Sync = val;\n },\n },\n});\n", "import * as secp from '@noble/secp256k1'\n\nexport const compressPubkey = (pubkeyBytes: Uint8Array): Uint8Array => {\n const hex = secp.utils.bytesToHex(pubkeyBytes)\n const point = secp.Point.fromHex(hex)\n return point.toRawBytes(true)\n}\n\nexport const decompressPubkey = (compressed: Uint8Array): Uint8Array => {\n if (compressed.length !== 33) {\n throw new Error('Expected 33 byte compress pubkey')\n }\n const hex = secp.utils.bytesToHex(compressed)\n const point = secp.Point.fromHex(hex)\n return point.toRawBytes(false)\n}\n", "import { webcrypto } from 'one-webcrypto'\nimport { P256_JWT_ALG } from '../const'\nimport { parseDidKey } from '../did'\n\nexport const importKeypairJwk = async (\n jwk: JsonWebKey,\n exportable = false,\n): Promise<CryptoKeyPair> => {\n const privateKey = await webcrypto.subtle.importKey(\n 'jwk',\n jwk,\n { name: 'ECDSA', namedCurve: 'P-256' },\n exportable,\n ['sign'],\n )\n const { kty, crv, x, y } = jwk\n const pubKeyJwk = { kty, crv, x, y }\n const publicKey = await webcrypto.subtle.importKey(\n 'jwk',\n pubKeyJwk,\n { name: 'ECDSA', namedCurve: 'P-256' },\n true,\n ['verify'],\n )\n return { privateKey, publicKey }\n}\n\nexport const verifyDidSig = async (\n did: string,\n data: Uint8Array,\n sig: Uint8Array,\n): Promise<boolean> => {\n const { jwtAlg, keyBytes } = parseDidKey(did)\n if (jwtAlg !== P256_JWT_ALG) {\n throw new Error(`Not a P-256 did:key: ${did}`)\n }\n return verify(keyBytes, data, sig)\n}\n\nexport const verify = async (\n publicKey: Uint8Array,\n data: Uint8Array,\n sig: Uint8Array,\n): Promise<boolean> => {\n const importedKey = await importEcdsaPublicKey(publicKey)\n return webcrypto.subtle.verify(\n { name: 'ECDSA', hash: { name: 'SHA-256' } },\n importedKey,\n sig,\n data,\n )\n}\n\nexport const importEcdsaPublicKey = async (\n keyBytes: Uint8Array,\n): Promise<CryptoKey> => {\n return webcrypto.subtle.importKey(\n 'raw',\n keyBytes,\n { name: 'ECDSA', namedCurve: 'P-256' },\n true,\n ['verify'],\n )\n}\n", "import * as operations from './operations'\nimport { DidKeyPlugin } from '../types'\nimport { P256_DID_PREFIX, P256_JWT_ALG } from '../const'\n\nexport const p256Plugin: DidKeyPlugin = {\n prefix: P256_DID_PREFIX,\n jwtAlg: P256_JWT_ALG,\n verifySignature: operations.verifyDidSig,\n}\n\nexport default p256Plugin\n", "import * as secp from '@noble/secp256k1'\nimport { SECP256K1_JWT_ALG } from '../const'\nimport { parseDidKey } from '../did'\n\nexport const verifyDidSig = async (\n did: string,\n data: Uint8Array,\n sig: Uint8Array,\n): Promise<boolean> => {\n const { jwtAlg, keyBytes } = parseDidKey(did)\n if (jwtAlg !== SECP256K1_JWT_ALG) {\n throw new Error(`Not a secp256k1 did:key: ${did}`)\n }\n const msgHash = await secp.utils.sha256(data)\n return secp.verify(sig, msgHash, keyBytes)\n}\n", "import * as operations from './operations'\nimport { DidKeyPlugin } from '../types'\nimport { SECP256K1_DID_PREFIX, SECP256K1_JWT_ALG } from '../const'\n\nexport const secp256k1Plugin: DidKeyPlugin = {\n prefix: SECP256K1_DID_PREFIX,\n jwtAlg: SECP256K1_JWT_ALG,\n verifySignature: operations.verifyDidSig,\n}\n\nexport default secp256k1Plugin\n", "import p256Plugin from './p256/plugin'\nimport secp256k1Plugin from './secp256k1/plugin'\n\nexport const plugins = [p256Plugin, secp256k1Plugin]\n\nexport default plugins\n", "import * as uint8arrays from 'uint8arrays'\nimport * as p256 from './p256/encoding'\nimport * as secp from './secp256k1/encoding'\nimport plugins from './plugins'\nimport { P256_JWT_ALG, SECP256K1_JWT_ALG } from './const'\n\nexport const DID_KEY_BASE58_PREFIX = 'did:key:z'\n\nexport type ParsedDidKey = {\n jwtAlg: string\n keyBytes: Uint8Array\n}\n\nexport const parseDidKey = (did: string): ParsedDidKey => {\n if (!did.startsWith(DID_KEY_BASE58_PREFIX)) {\n throw new Error(`Incorrect prefix for did:key: ${did}`)\n }\n const prefixedBytes = uint8arrays.fromString(\n did.slice(DID_KEY_BASE58_PREFIX.length),\n 'base58btc',\n )\n const plugin = plugins.find((p) => hasPrefix(prefixedBytes, p.prefix))\n if (!plugin) {\n throw new Error('Unsupported key type')\n }\n let keyBytes = prefixedBytes.slice(plugin.prefix.length)\n if (plugin.jwtAlg === P256_JWT_ALG) {\n keyBytes = p256.decompressPubkey(keyBytes)\n } else if (plugin.jwtAlg === SECP256K1_JWT_ALG) {\n keyBytes = secp.decompressPubkey(keyBytes)\n }\n return {\n jwtAlg: plugin.jwtAlg,\n keyBytes,\n }\n}\n\nexport const formatDidKey = (jwtAlg: string, keyBytes: Uint8Array): string => {\n const plugin = plugins.find((p) => p.jwtAlg === jwtAlg)\n if (!plugin) {\n throw new Error('Unsupported key type')\n }\n if (jwtAlg === P256_JWT_ALG) {\n keyBytes = p256.compressPubkey(keyBytes)\n } else if (jwtAlg === SECP256K1_JWT_ALG) {\n keyBytes = secp.compressPubkey(keyBytes)\n }\n const prefixedBytes = uint8arrays.concat([plugin.prefix, keyBytes])\n return (\n DID_KEY_BASE58_PREFIX + uint8arrays.toString(prefixedBytes, 'base58btc')\n )\n}\n\nconst hasPrefix = (bytes: Uint8Array, prefix: Uint8Array): boolean => {\n return uint8arrays.equals(prefix, bytes.subarray(0, prefix.byteLength))\n}\n", "import * as uint8arrays from 'uint8arrays'\n\nexport const multibaseToBytes = (mb: string): Uint8Array => {\n const base = mb[0]\n const key = mb.slice(1)\n switch (base) {\n case 'f':\n return uint8arrays.fromString(key, 'base16')\n case 'F':\n return uint8arrays.fromString(key, 'base16upper')\n case 'b':\n return uint8arrays.fromString(key, 'base32')\n case 'B':\n return uint8arrays.fromString(key, 'base32upper')\n case 'z':\n return uint8arrays.fromString(key, 'base58btc')\n case 'm':\n return uint8arrays.fromString(key, 'base64')\n case 'u':\n return uint8arrays.fromString(key, 'base64url')\n case 'U':\n return uint8arrays.fromString(key, 'base64urlpad')\n default:\n throw new Error(`Unsupported multibase: :${mb}`)\n }\n}\n", "import * as mf from 'multiformats/hashes/sha2'\nimport * as uint8arrays from 'uint8arrays'\nimport crypto from 'crypto'\nimport { Readable } from 'stream'\n\n// takes either bytes of utf8 input\nexport const sha256 = async (\n input: Uint8Array | string,\n): Promise<Uint8Array> => {\n const bytes =\n typeof input === 'string' ? uint8arrays.fromString(input, 'utf8') : input\n const hash = await mf.sha256.digest(bytes)\n return hash.digest\n}\n\nexport const sha256Stream = async (stream: Readable): Promise<Uint8Array> => {\n const hash = crypto.createHash('sha256')\n try {\n for await (const chunk of stream) {\n hash.write(chunk)\n }\n } catch (err) {\n hash.end()\n throw err\n }\n hash.end()\n return hash.read()\n}\n", "import * as uint8arrays from 'uint8arrays'\nimport { parseDidKey } from './did'\nimport plugins from './plugins'\n\nexport const verifySignature = (\n didKey: string,\n data: Uint8Array,\n sig: Uint8Array,\n): Promise<boolean> => {\n const parsed = parseDidKey(didKey)\n const plugin = plugins.find((p) => p.jwtAlg === parsed.jwtAlg)\n if (!plugin) {\n throw new Error(`Unsupported signature alg: :${parsed.jwtAlg}`)\n }\n return plugin.verifySignature(didKey, data, sig)\n}\n\nexport const verifySignatureUtf8 = async (\n didKey: string,\n data: string,\n sig: string,\n): Promise<boolean> => {\n const dataBytes = uint8arrays.fromString(data, 'utf8')\n const sigBytes = uint8arrays.fromString(sig, 'base64url')\n return verifySignature(didKey, dataBytes, sigBytes)\n}\n", "import { webcrypto } from 'one-webcrypto'\nimport * as uint8arrays from 'uint8arrays'\nimport { SupportedEncodings } from 'uint8arrays/util/bases'\nimport * as did from '../did'\nimport * as operations from './operations'\nimport { P256_JWT_ALG } from '../const'\nimport { Keypair } from '../types'\n\nexport type EcdsaKeypairOptions = {\n exportable: boolean\n}\n\nexport class EcdsaKeypair implements Keypair {\n jwtAlg = P256_JWT_ALG\n private publicKey: Uint8Array\n private keypair: CryptoKeyPair\n private exportable: boolean\n\n constructor(\n keypair: CryptoKeyPair,\n publicKey: Uint8Array,\n exportable: boolean,\n ) {\n this.keypair = keypair\n this.publicKey = publicKey\n this.exportable = exportable\n }\n\n static async create(\n opts?: Partial<EcdsaKeypairOptions>,\n ): Promise<EcdsaKeypair> {\n const { exportable = false } = opts || {}\n const keypair = await webcrypto.subtle.generateKey(\n { name: 'ECDSA', namedCurve: 'P-256' },\n exportable,\n ['sign', 'verify'],\n )\n const pubkeyBuf = await webcrypto.subtle.exportKey('raw', keypair.publicKey)\n const pubkeyBytes = new Uint8Array(pubkeyBuf)\n return new EcdsaKeypair(keypair, pubkeyBytes, exportable)\n }\n\n static async import(\n jwk: JsonWebKey,\n opts?: Partial<EcdsaKeypairOptions>,\n ): Promise<EcdsaKeypair> {\n const { exportable = false } = opts || {}\n const keypair = await operations.importKeypairJwk(jwk, exportable)\n const pubkeyBuf = await webcrypto.subtle.exportKey('raw', keypair.publicKey)\n const pubkeyBytes = new Uint8Array(pubkeyBuf)\n return new EcdsaKeypair(keypair, pubkeyBytes, exportable)\n }\n\n publicKeyBytes(): Uint8Array {\n return this.publicKey\n }\n\n publicKeyStr(encoding: SupportedEncodings = 'base64pad'): string {\n return uint8arrays.toString(this.publicKey, encoding)\n }\n\n did(): string {\n return did.formatDidKey(this.jwtAlg, this.publicKey)\n }\n\n async sign(msg: Uint8Array): Promise<Uint8Array> {\n const buf = await webcrypto.subtle.sign(\n { name: 'ECDSA', hash: { name: 'SHA-256' } },\n this.keypair.privateKey,\n msg.buffer,\n )\n return new Uint8Array(buf)\n }\n\n async export(): Promise<JsonWebKey> {\n if (!this.exportable) {\n throw new Error('Private key is not exportable')\n }\n const jwk = await webcrypto.subtle.exportKey('jwk', this.keypair.privateKey)\n return jwk\n }\n}\n\nexport default EcdsaKeypair\n", "import * as secp from '@noble/secp256k1'\nimport * as uint8arrays from 'uint8arrays'\nimport { SupportedEncodings } from 'uint8arrays/util/bases'\nimport * as did from '../did'\nimport { SECP256K1_JWT_ALG } from '../const'\nimport { Keypair } from '../types'\n\nexport type Secp256k1KeypairOptions = {\n exportable: boolean\n}\n\nexport class Secp256k1Keypair implements Keypair {\n jwtAlg = SECP256K1_JWT_ALG\n private publicKey: Uint8Array\n\n constructor(private privateKey: Uint8Array, private exportable: boolean) {\n this.publicKey = secp.getPublicKey(privateKey)\n }\n\n static async create(\n opts?: Partial<Secp256k1KeypairOptions>,\n ): Promise<Secp256k1Keypair> {\n const { exportable = false } = opts || {}\n const privKey = secp.utils.randomPrivateKey()\n return new Secp256k1Keypair(privKey, exportable)\n }\n\n static async import(\n privKey: Uint8Array | string,\n opts?: Partial<Secp256k1KeypairOptions>,\n ): Promise<Secp256k1Keypair> {\n const { exportable = false } = opts || {}\n const privKeyBytes =\n typeof privKey === 'string'\n ? uint8arrays.fromString(privKey, 'hex')\n : privKey\n return new Secp256k1Keypair(privKeyBytes, exportable)\n }\n\n publicKeyBytes(): Uint8Array {\n return this.publicKey\n }\n\n publicKeyStr(encoding: SupportedEncodings = 'base64pad'): string {\n return uint8arrays.toString(this.publicKey, encoding)\n }\n\n did(): string {\n return did.formatDidKey(this.jwtAlg, this.publicKey)\n }\n\n async sign(msg: Uint8Array): Promise<Uint8Array> {\n const msgHash = await secp.utils.sha256(msg)\n // return raw 64 byte sig not DER-encoded\n return secp.sign(msgHash, this.privateKey, { der: false })\n }\n\n async export(): Promise<Uint8Array> {\n if (!this.exportable) {\n throw new Error('Private key is not exportable')\n }\n return this.privateKey\n }\n}\n\nexport default Secp256k1Keypair\n"],
5
- "mappings": "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",
6
- "names": ["module", "bigInt", "undefined", "alphabet", "sign", "length", "i", "base", "self", "mod", "max", "min", "src_exports", "sha256", "crypto", "length", "name", "encode", "length", "i", "j", "decode", "string", "equals", "name", "encode", "decode", "alphabet", "string", "encode", "decode", "import_crypto", "encode", "decode", "decode", "code", "code", "digest", "decode", "equals", "from", "name", "code", "encode", "digest", "from", "crypto", "identity_exports", "identity", "encode", "identity", "version", "code", "digest", "equals", "base", "decode", "length", "cid", "identity_exports", "name", "encode", "decode", "string", "fromString", "string", "base", "toString", "base", "length", "toString", "fromString", "toString", "bigInt", "toString", "fromString", "d", "base", "name", "length", "crypto", "crypto", "randomBytes", "compressPubkey", "decompressPubkey", "verify", "verifyDidSig", "verifyDidSig", "plugin_default", "plugin_default", "fromString", "decompressPubkey", "compressPubkey", "toString", "base", "fromString", "import_crypto", "sha256", "fromString", "crypto", "fromString", "toString", "fromString", "toString"]
3
+ "sources": ["../src/index.ts", "../src/const.ts", "../../../node_modules/uint8arrays/esm/src/concat.js", "../../../node_modules/uint8arrays/esm/src/equals.js", "../../../node_modules/multiformats/esm/src/bases/identity.js", "../../../node_modules/multiformats/esm/vendor/base-x.js", "../../../node_modules/multiformats/esm/src/bytes.js", "../../../node_modules/multiformats/esm/src/bases/base.js", "../../../node_modules/multiformats/esm/src/bases/base2.js", "../../../node_modules/multiformats/esm/src/bases/base8.js", "../../../node_modules/multiformats/esm/src/bases/base10.js", "../../../node_modules/multiformats/esm/src/bases/base16.js", "../../../node_modules/multiformats/esm/src/bases/base32.js", "../../../node_modules/multiformats/esm/src/bases/base36.js", "../../../node_modules/multiformats/esm/src/bases/base58.js", "../../../node_modules/multiformats/esm/src/bases/base64.js", "../../../node_modules/multiformats/esm/src/bases/base256emoji.js", "../../../node_modules/multiformats/esm/src/hashes/sha2.js", "../../../node_modules/multiformats/esm/vendor/varint.js", "../../../node_modules/multiformats/esm/src/varint.js", "../../../node_modules/multiformats/esm/src/hashes/digest.js", "../../../node_modules/multiformats/esm/src/hashes/hasher.js", "../../../node_modules/multiformats/esm/src/hashes/identity.js", "../../../node_modules/multiformats/esm/src/codecs/json.js", "../../../node_modules/multiformats/esm/src/cid.js", "../../../node_modules/multiformats/esm/src/basics.js", "../../../node_modules/uint8arrays/esm/src/util/bases.js", "../../../node_modules/uint8arrays/esm/src/from-string.js", "../../../node_modules/uint8arrays/esm/src/to-string.js", "../../../node_modules/@noble/hashes/src/_assert.ts", "../../../node_modules/@noble/hashes/src/cryptoNode.ts", "../../../node_modules/@noble/hashes/src/utils.ts", "../../../node_modules/@noble/hashes/src/hmac.ts", "../../../node_modules/@noble/curves/src/abstract/utils.ts", "../../../node_modules/@noble/curves/src/abstract/modular.ts", "../../../node_modules/@noble/curves/src/abstract/curve.ts", "../../../node_modules/@noble/curves/src/abstract/weierstrass.ts", "../../../node_modules/@noble/curves/src/_shortw_utils.ts", "../../../node_modules/@noble/hashes/src/_sha2.ts", "../../../node_modules/@noble/hashes/src/sha256.ts", "../../../node_modules/@noble/curves/src/p256.ts", "../src/p256/encoding.ts", "../../../node_modules/@noble/curves/src/secp256k1.ts", "../src/secp256k1/encoding.ts", "../src/p256/operations.ts", "../src/p256/plugin.ts", "../src/secp256k1/operations.ts", "../src/secp256k1/plugin.ts", "../src/plugins.ts", "../src/did.ts", "../src/multibase.ts", "../src/sha.ts", "../src/random.ts", "../src/verify.ts", "../src/p256/keypair.ts", "../src/secp256k1/keypair.ts"],
4
+ "sourcesContent": ["export * from './const'\nexport * from './did'\nexport * from './multibase'\nexport * from './random'\nexport * from './sha'\nexport * from './types'\nexport * from './verify'\n\nexport * from './p256/keypair'\nexport * from './p256/plugin'\n\nexport * from './secp256k1/keypair'\nexport * from './secp256k1/plugin'\n", "export const P256_DID_PREFIX = new Uint8Array([0x80, 0x24])\nexport const SECP256K1_DID_PREFIX = new Uint8Array([0xe7, 0x01])\nexport const BASE58_MULTIBASE_PREFIX = 'z'\nexport const DID_KEY_PREFIX = 'did:key:'\n\nexport const P256_JWT_ALG = 'ES256'\nexport const SECP256K1_JWT_ALG = 'ES256K'\n", "export function concat(arrays, length) {\n if (!length) {\n length = arrays.reduce((acc, curr) => acc + curr.length, 0);\n }\n const output = new Uint8Array(length);\n let offset = 0;\n for (const arr of arrays) {\n output.set(arr, offset);\n offset += arr.length;\n }\n return output;\n}", "export function equals(a, b) {\n if (a === b) {\n return true;\n }\n if (a.byteLength !== b.byteLength) {\n return false;\n }\n for (let i = 0; i < a.byteLength; i++) {\n if (a[i] !== b[i]) {\n return false;\n }\n }\n return true;\n}", "import { from } from './base.js';\nimport {\n fromString,\n toString\n} from '../bytes.js';\nexport const identity = from({\n prefix: '\\0',\n name: 'identity',\n encode: buf => toString(buf),\n decode: str => fromString(str)\n});", "function base(ALPHABET, name) {\n if (ALPHABET.length >= 255) {\n throw new TypeError('Alphabet too long');\n }\n var BASE_MAP = new Uint8Array(256);\n for (var j = 0; j < BASE_MAP.length; j++) {\n BASE_MAP[j] = 255;\n }\n for (var i = 0; i < ALPHABET.length; i++) {\n var x = ALPHABET.charAt(i);\n var xc = x.charCodeAt(0);\n if (BASE_MAP[xc] !== 255) {\n throw new TypeError(x + ' is ambiguous');\n }\n BASE_MAP[xc] = i;\n }\n var BASE = ALPHABET.length;\n var LEADER = ALPHABET.charAt(0);\n var FACTOR = Math.log(BASE) / Math.log(256);\n var iFACTOR = Math.log(256) / Math.log(BASE);\n function encode(source) {\n if (source instanceof Uint8Array);\n else if (ArrayBuffer.isView(source)) {\n source = new Uint8Array(source.buffer, source.byteOffset, source.byteLength);\n } else if (Array.isArray(source)) {\n source = Uint8Array.from(source);\n }\n if (!(source instanceof Uint8Array)) {\n throw new TypeError('Expected Uint8Array');\n }\n if (source.length === 0) {\n return '';\n }\n var zeroes = 0;\n var length = 0;\n var pbegin = 0;\n var pend = source.length;\n while (pbegin !== pend && source[pbegin] === 0) {\n pbegin++;\n zeroes++;\n }\n var size = (pend - pbegin) * iFACTOR + 1 >>> 0;\n var b58 = new Uint8Array(size);\n while (pbegin !== pend) {\n var carry = source[pbegin];\n var i = 0;\n for (var it1 = size - 1; (carry !== 0 || i < length) && it1 !== -1; it1--, i++) {\n carry += 256 * b58[it1] >>> 0;\n b58[it1] = carry % BASE >>> 0;\n carry = carry / BASE >>> 0;\n }\n if (carry !== 0) {\n throw new Error('Non-zero carry');\n }\n length = i;\n pbegin++;\n }\n var it2 = size - length;\n while (it2 !== size && b58[it2] === 0) {\n it2++;\n }\n var str = LEADER.repeat(zeroes);\n for (; it2 < size; ++it2) {\n str += ALPHABET.charAt(b58[it2]);\n }\n return str;\n }\n function decodeUnsafe(source) {\n if (typeof source !== 'string') {\n throw new TypeError('Expected String');\n }\n if (source.length === 0) {\n return new Uint8Array();\n }\n var psz = 0;\n if (source[psz] === ' ') {\n return;\n }\n var zeroes = 0;\n var length = 0;\n while (source[psz] === LEADER) {\n zeroes++;\n psz++;\n }\n var size = (source.length - psz) * FACTOR + 1 >>> 0;\n var b256 = new Uint8Array(size);\n while (source[psz]) {\n var carry = BASE_MAP[source.charCodeAt(psz)];\n if (carry === 255) {\n return;\n }\n var i = 0;\n for (var it3 = size - 1; (carry !== 0 || i < length) && it3 !== -1; it3--, i++) {\n carry += BASE * b256[it3] >>> 0;\n b256[it3] = carry % 256 >>> 0;\n carry = carry / 256 >>> 0;\n }\n if (carry !== 0) {\n throw new Error('Non-zero carry');\n }\n length = i;\n psz++;\n }\n if (source[psz] === ' ') {\n return;\n }\n var it4 = size - length;\n while (it4 !== size && b256[it4] === 0) {\n it4++;\n }\n var vch = new Uint8Array(zeroes + (size - it4));\n var j = zeroes;\n while (it4 !== size) {\n vch[j++] = b256[it4++];\n }\n return vch;\n }\n function decode(string) {\n var buffer = decodeUnsafe(string);\n if (buffer) {\n return buffer;\n }\n throw new Error(`Non-${ name } character`);\n }\n return {\n encode: encode,\n decodeUnsafe: decodeUnsafe,\n decode: decode\n };\n}\nvar src = base;\nvar _brrp__multiformats_scope_baseX = src;\nexport default _brrp__multiformats_scope_baseX;", "const empty = new Uint8Array(0);\nconst toHex = d => d.reduce((hex, byte) => hex + byte.toString(16).padStart(2, '0'), '');\nconst fromHex = hex => {\n const hexes = hex.match(/../g);\n return hexes ? new Uint8Array(hexes.map(b => parseInt(b, 16))) : empty;\n};\nconst equals = (aa, bb) => {\n if (aa === bb)\n return true;\n if (aa.byteLength !== bb.byteLength) {\n return false;\n }\n for (let ii = 0; ii < aa.byteLength; ii++) {\n if (aa[ii] !== bb[ii]) {\n return false;\n }\n }\n return true;\n};\nconst coerce = o => {\n if (o instanceof Uint8Array && o.constructor.name === 'Uint8Array')\n return o;\n if (o instanceof ArrayBuffer)\n return new Uint8Array(o);\n if (ArrayBuffer.isView(o)) {\n return new Uint8Array(o.buffer, o.byteOffset, o.byteLength);\n }\n throw new Error('Unknown type, must be binary type');\n};\nconst isBinary = o => o instanceof ArrayBuffer || ArrayBuffer.isView(o);\nconst fromString = str => new TextEncoder().encode(str);\nconst toString = b => new TextDecoder().decode(b);\nexport {\n equals,\n coerce,\n isBinary,\n fromHex,\n toHex,\n fromString,\n toString,\n empty\n};", "import basex from '../../vendor/base-x.js';\nimport { coerce } from '../bytes.js';\nclass Encoder {\n constructor(name, prefix, baseEncode) {\n this.name = name;\n this.prefix = prefix;\n this.baseEncode = baseEncode;\n }\n encode(bytes) {\n if (bytes instanceof Uint8Array) {\n return `${ this.prefix }${ this.baseEncode(bytes) }`;\n } else {\n throw Error('Unknown type, must be binary type');\n }\n }\n}\nclass Decoder {\n constructor(name, prefix, baseDecode) {\n this.name = name;\n this.prefix = prefix;\n if (prefix.codePointAt(0) === undefined) {\n throw new Error('Invalid prefix character');\n }\n this.prefixCodePoint = prefix.codePointAt(0);\n this.baseDecode = baseDecode;\n }\n decode(text) {\n if (typeof text === 'string') {\n if (text.codePointAt(0) !== this.prefixCodePoint) {\n throw Error(`Unable to decode multibase string ${ JSON.stringify(text) }, ${ this.name } decoder only supports inputs prefixed with ${ this.prefix }`);\n }\n return this.baseDecode(text.slice(this.prefix.length));\n } else {\n throw Error('Can only multibase decode strings');\n }\n }\n or(decoder) {\n return or(this, decoder);\n }\n}\nclass ComposedDecoder {\n constructor(decoders) {\n this.decoders = decoders;\n }\n or(decoder) {\n return or(this, decoder);\n }\n decode(input) {\n const prefix = input[0];\n const decoder = this.decoders[prefix];\n if (decoder) {\n return decoder.decode(input);\n } else {\n throw RangeError(`Unable to decode multibase string ${ JSON.stringify(input) }, only inputs prefixed with ${ Object.keys(this.decoders) } are supported`);\n }\n }\n}\nexport const or = (left, right) => new ComposedDecoder({\n ...left.decoders || { [left.prefix]: left },\n ...right.decoders || { [right.prefix]: right }\n});\nexport class Codec {\n constructor(name, prefix, baseEncode, baseDecode) {\n this.name = name;\n this.prefix = prefix;\n this.baseEncode = baseEncode;\n this.baseDecode = baseDecode;\n this.encoder = new Encoder(name, prefix, baseEncode);\n this.decoder = new Decoder(name, prefix, baseDecode);\n }\n encode(input) {\n return this.encoder.encode(input);\n }\n decode(input) {\n return this.decoder.decode(input);\n }\n}\nexport const from = ({name, prefix, encode, decode}) => new Codec(name, prefix, encode, decode);\nexport const baseX = ({prefix, name, alphabet}) => {\n const {encode, decode} = basex(alphabet, name);\n return from({\n prefix,\n name,\n encode,\n decode: text => coerce(decode(text))\n });\n};\nconst decode = (string, alphabet, bitsPerChar, name) => {\n const codes = {};\n for (let i = 0; i < alphabet.length; ++i) {\n codes[alphabet[i]] = i;\n }\n let end = string.length;\n while (string[end - 1] === '=') {\n --end;\n }\n const out = new Uint8Array(end * bitsPerChar / 8 | 0);\n let bits = 0;\n let buffer = 0;\n let written = 0;\n for (let i = 0; i < end; ++i) {\n const value = codes[string[i]];\n if (value === undefined) {\n throw new SyntaxError(`Non-${ name } character`);\n }\n buffer = buffer << bitsPerChar | value;\n bits += bitsPerChar;\n if (bits >= 8) {\n bits -= 8;\n out[written++] = 255 & buffer >> bits;\n }\n }\n if (bits >= bitsPerChar || 255 & buffer << 8 - bits) {\n throw new SyntaxError('Unexpected end of data');\n }\n return out;\n};\nconst encode = (data, alphabet, bitsPerChar) => {\n const pad = alphabet[alphabet.length - 1] === '=';\n const mask = (1 << bitsPerChar) - 1;\n let out = '';\n let bits = 0;\n let buffer = 0;\n for (let i = 0; i < data.length; ++i) {\n buffer = buffer << 8 | data[i];\n bits += 8;\n while (bits > bitsPerChar) {\n bits -= bitsPerChar;\n out += alphabet[mask & buffer >> bits];\n }\n }\n if (bits) {\n out += alphabet[mask & buffer << bitsPerChar - bits];\n }\n if (pad) {\n while (out.length * bitsPerChar & 7) {\n out += '=';\n }\n }\n return out;\n};\nexport const rfc4648 = ({name, prefix, bitsPerChar, alphabet}) => {\n return from({\n prefix,\n name,\n encode(input) {\n return encode(input, alphabet, bitsPerChar);\n },\n decode(input) {\n return decode(input, alphabet, bitsPerChar, name);\n }\n });\n};", "import { rfc4648 } from './base.js';\nexport const base2 = rfc4648({\n prefix: '0',\n name: 'base2',\n alphabet: '01',\n bitsPerChar: 1\n});", "import { rfc4648 } from './base.js';\nexport const base8 = rfc4648({\n prefix: '7',\n name: 'base8',\n alphabet: '01234567',\n bitsPerChar: 3\n});", "import { baseX } from './base.js';\nexport const base10 = baseX({\n prefix: '9',\n name: 'base10',\n alphabet: '0123456789'\n});", "import { rfc4648 } from './base.js';\nexport const base16 = rfc4648({\n prefix: 'f',\n name: 'base16',\n alphabet: '0123456789abcdef',\n bitsPerChar: 4\n});\nexport const base16upper = rfc4648({\n prefix: 'F',\n name: 'base16upper',\n alphabet: '0123456789ABCDEF',\n bitsPerChar: 4\n});", "import { rfc4648 } from './base.js';\nexport const base32 = rfc4648({\n prefix: 'b',\n name: 'base32',\n alphabet: 'abcdefghijklmnopqrstuvwxyz234567',\n bitsPerChar: 5\n});\nexport const base32upper = rfc4648({\n prefix: 'B',\n name: 'base32upper',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567',\n bitsPerChar: 5\n});\nexport const base32pad = rfc4648({\n prefix: 'c',\n name: 'base32pad',\n alphabet: 'abcdefghijklmnopqrstuvwxyz234567=',\n bitsPerChar: 5\n});\nexport const base32padupper = rfc4648({\n prefix: 'C',\n name: 'base32padupper',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=',\n bitsPerChar: 5\n});\nexport const base32hex = rfc4648({\n prefix: 'v',\n name: 'base32hex',\n alphabet: '0123456789abcdefghijklmnopqrstuv',\n bitsPerChar: 5\n});\nexport const base32hexupper = rfc4648({\n prefix: 'V',\n name: 'base32hexupper',\n alphabet: '0123456789ABCDEFGHIJKLMNOPQRSTUV',\n bitsPerChar: 5\n});\nexport const base32hexpad = rfc4648({\n prefix: 't',\n name: 'base32hexpad',\n alphabet: '0123456789abcdefghijklmnopqrstuv=',\n bitsPerChar: 5\n});\nexport const base32hexpadupper = rfc4648({\n prefix: 'T',\n name: 'base32hexpadupper',\n alphabet: '0123456789ABCDEFGHIJKLMNOPQRSTUV=',\n bitsPerChar: 5\n});\nexport const base32z = rfc4648({\n prefix: 'h',\n name: 'base32z',\n alphabet: 'ybndrfg8ejkmcpqxot1uwisza345h769',\n bitsPerChar: 5\n});", "import { baseX } from './base.js';\nexport const base36 = baseX({\n prefix: 'k',\n name: 'base36',\n alphabet: '0123456789abcdefghijklmnopqrstuvwxyz'\n});\nexport const base36upper = baseX({\n prefix: 'K',\n name: 'base36upper',\n alphabet: '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'\n});", "import { baseX } from './base.js';\nexport const base58btc = baseX({\n name: 'base58btc',\n prefix: 'z',\n alphabet: '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'\n});\nexport const base58flickr = baseX({\n name: 'base58flickr',\n prefix: 'Z',\n alphabet: '123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ'\n});", "import { rfc4648 } from './base.js';\nexport const base64 = rfc4648({\n prefix: 'm',\n name: 'base64',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',\n bitsPerChar: 6\n});\nexport const base64pad = rfc4648({\n prefix: 'M',\n name: 'base64pad',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=',\n bitsPerChar: 6\n});\nexport const base64url = rfc4648({\n prefix: 'u',\n name: 'base64url',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_',\n bitsPerChar: 6\n});\nexport const base64urlpad = rfc4648({\n prefix: 'U',\n name: 'base64urlpad',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=',\n bitsPerChar: 6\n});", "import { from } from './base.js';\nconst alphabet = Array.from('\\uD83D\\uDE80\\uD83E\\uDE90\\u2604\\uD83D\\uDEF0\\uD83C\\uDF0C\\uD83C\\uDF11\\uD83C\\uDF12\\uD83C\\uDF13\\uD83C\\uDF14\\uD83C\\uDF15\\uD83C\\uDF16\\uD83C\\uDF17\\uD83C\\uDF18\\uD83C\\uDF0D\\uD83C\\uDF0F\\uD83C\\uDF0E\\uD83D\\uDC09\\u2600\\uD83D\\uDCBB\\uD83D\\uDDA5\\uD83D\\uDCBE\\uD83D\\uDCBF\\uD83D\\uDE02\\u2764\\uD83D\\uDE0D\\uD83E\\uDD23\\uD83D\\uDE0A\\uD83D\\uDE4F\\uD83D\\uDC95\\uD83D\\uDE2D\\uD83D\\uDE18\\uD83D\\uDC4D\\uD83D\\uDE05\\uD83D\\uDC4F\\uD83D\\uDE01\\uD83D\\uDD25\\uD83E\\uDD70\\uD83D\\uDC94\\uD83D\\uDC96\\uD83D\\uDC99\\uD83D\\uDE22\\uD83E\\uDD14\\uD83D\\uDE06\\uD83D\\uDE44\\uD83D\\uDCAA\\uD83D\\uDE09\\u263A\\uD83D\\uDC4C\\uD83E\\uDD17\\uD83D\\uDC9C\\uD83D\\uDE14\\uD83D\\uDE0E\\uD83D\\uDE07\\uD83C\\uDF39\\uD83E\\uDD26\\uD83C\\uDF89\\uD83D\\uDC9E\\u270C\\u2728\\uD83E\\uDD37\\uD83D\\uDE31\\uD83D\\uDE0C\\uD83C\\uDF38\\uD83D\\uDE4C\\uD83D\\uDE0B\\uD83D\\uDC97\\uD83D\\uDC9A\\uD83D\\uDE0F\\uD83D\\uDC9B\\uD83D\\uDE42\\uD83D\\uDC93\\uD83E\\uDD29\\uD83D\\uDE04\\uD83D\\uDE00\\uD83D\\uDDA4\\uD83D\\uDE03\\uD83D\\uDCAF\\uD83D\\uDE48\\uD83D\\uDC47\\uD83C\\uDFB6\\uD83D\\uDE12\\uD83E\\uDD2D\\u2763\\uD83D\\uDE1C\\uD83D\\uDC8B\\uD83D\\uDC40\\uD83D\\uDE2A\\uD83D\\uDE11\\uD83D\\uDCA5\\uD83D\\uDE4B\\uD83D\\uDE1E\\uD83D\\uDE29\\uD83D\\uDE21\\uD83E\\uDD2A\\uD83D\\uDC4A\\uD83E\\uDD73\\uD83D\\uDE25\\uD83E\\uDD24\\uD83D\\uDC49\\uD83D\\uDC83\\uD83D\\uDE33\\u270B\\uD83D\\uDE1A\\uD83D\\uDE1D\\uD83D\\uDE34\\uD83C\\uDF1F\\uD83D\\uDE2C\\uD83D\\uDE43\\uD83C\\uDF40\\uD83C\\uDF37\\uD83D\\uDE3B\\uD83D\\uDE13\\u2B50\\u2705\\uD83E\\uDD7A\\uD83C\\uDF08\\uD83D\\uDE08\\uD83E\\uDD18\\uD83D\\uDCA6\\u2714\\uD83D\\uDE23\\uD83C\\uDFC3\\uD83D\\uDC90\\u2639\\uD83C\\uDF8A\\uD83D\\uDC98\\uD83D\\uDE20\\u261D\\uD83D\\uDE15\\uD83C\\uDF3A\\uD83C\\uDF82\\uD83C\\uDF3B\\uD83D\\uDE10\\uD83D\\uDD95\\uD83D\\uDC9D\\uD83D\\uDE4A\\uD83D\\uDE39\\uD83D\\uDDE3\\uD83D\\uDCAB\\uD83D\\uDC80\\uD83D\\uDC51\\uD83C\\uDFB5\\uD83E\\uDD1E\\uD83D\\uDE1B\\uD83D\\uDD34\\uD83D\\uDE24\\uD83C\\uDF3C\\uD83D\\uDE2B\\u26BD\\uD83E\\uDD19\\u2615\\uD83C\\uDFC6\\uD83E\\uDD2B\\uD83D\\uDC48\\uD83D\\uDE2E\\uD83D\\uDE46\\uD83C\\uDF7B\\uD83C\\uDF43\\uD83D\\uDC36\\uD83D\\uDC81\\uD83D\\uDE32\\uD83C\\uDF3F\\uD83E\\uDDE1\\uD83C\\uDF81\\u26A1\\uD83C\\uDF1E\\uD83C\\uDF88\\u274C\\u270A\\uD83D\\uDC4B\\uD83D\\uDE30\\uD83E\\uDD28\\uD83D\\uDE36\\uD83E\\uDD1D\\uD83D\\uDEB6\\uD83D\\uDCB0\\uD83C\\uDF53\\uD83D\\uDCA2\\uD83E\\uDD1F\\uD83D\\uDE41\\uD83D\\uDEA8\\uD83D\\uDCA8\\uD83E\\uDD2C\\u2708\\uD83C\\uDF80\\uD83C\\uDF7A\\uD83E\\uDD13\\uD83D\\uDE19\\uD83D\\uDC9F\\uD83C\\uDF31\\uD83D\\uDE16\\uD83D\\uDC76\\uD83E\\uDD74\\u25B6\\u27A1\\u2753\\uD83D\\uDC8E\\uD83D\\uDCB8\\u2B07\\uD83D\\uDE28\\uD83C\\uDF1A\\uD83E\\uDD8B\\uD83D\\uDE37\\uD83D\\uDD7A\\u26A0\\uD83D\\uDE45\\uD83D\\uDE1F\\uD83D\\uDE35\\uD83D\\uDC4E\\uD83E\\uDD32\\uD83E\\uDD20\\uD83E\\uDD27\\uD83D\\uDCCC\\uD83D\\uDD35\\uD83D\\uDC85\\uD83E\\uDDD0\\uD83D\\uDC3E\\uD83C\\uDF52\\uD83D\\uDE17\\uD83E\\uDD11\\uD83C\\uDF0A\\uD83E\\uDD2F\\uD83D\\uDC37\\u260E\\uD83D\\uDCA7\\uD83D\\uDE2F\\uD83D\\uDC86\\uD83D\\uDC46\\uD83C\\uDFA4\\uD83D\\uDE47\\uD83C\\uDF51\\u2744\\uD83C\\uDF34\\uD83D\\uDCA3\\uD83D\\uDC38\\uD83D\\uDC8C\\uD83D\\uDCCD\\uD83E\\uDD40\\uD83E\\uDD22\\uD83D\\uDC45\\uD83D\\uDCA1\\uD83D\\uDCA9\\uD83D\\uDC50\\uD83D\\uDCF8\\uD83D\\uDC7B\\uD83E\\uDD10\\uD83E\\uDD2E\\uD83C\\uDFBC\\uD83E\\uDD75\\uD83D\\uDEA9\\uD83C\\uDF4E\\uD83C\\uDF4A\\uD83D\\uDC7C\\uD83D\\uDC8D\\uD83D\\uDCE3\\uD83E\\uDD42');\nconst alphabetBytesToChars = alphabet.reduce((p, c, i) => {\n p[i] = c;\n return p;\n}, []);\nconst alphabetCharsToBytes = alphabet.reduce((p, c, i) => {\n p[c.codePointAt(0)] = i;\n return p;\n}, []);\nfunction encode(data) {\n return data.reduce((p, c) => {\n p += alphabetBytesToChars[c];\n return p;\n }, '');\n}\nfunction decode(str) {\n const byts = [];\n for (const char of str) {\n const byt = alphabetCharsToBytes[char.codePointAt(0)];\n if (byt === undefined) {\n throw new Error(`Non-base256emoji character: ${ char }`);\n }\n byts.push(byt);\n }\n return new Uint8Array(byts);\n}\nexport const base256emoji = from({\n prefix: '\\uD83D\\uDE80',\n name: 'base256emoji',\n encode,\n decode\n});", "import crypto from 'crypto';\nimport { from } from './hasher.js';\nimport { coerce } from '../bytes.js';\nexport const sha256 = from({\n name: 'sha2-256',\n code: 18,\n encode: input => coerce(crypto.createHash('sha256').update(input).digest())\n});\nexport const sha512 = from({\n name: 'sha2-512',\n code: 19,\n encode: input => coerce(crypto.createHash('sha512').update(input).digest())\n});", "var encode_1 = encode;\nvar MSB = 128, REST = 127, MSBALL = ~REST, INT = Math.pow(2, 31);\nfunction encode(num, out, offset) {\n out = out || [];\n offset = offset || 0;\n var oldOffset = offset;\n while (num >= INT) {\n out[offset++] = num & 255 | MSB;\n num /= 128;\n }\n while (num & MSBALL) {\n out[offset++] = num & 255 | MSB;\n num >>>= 7;\n }\n out[offset] = num | 0;\n encode.bytes = offset - oldOffset + 1;\n return out;\n}\nvar decode = read;\nvar MSB$1 = 128, REST$1 = 127;\nfunction read(buf, offset) {\n var res = 0, offset = offset || 0, shift = 0, counter = offset, b, l = buf.length;\n do {\n if (counter >= l) {\n read.bytes = 0;\n throw new RangeError('Could not decode varint');\n }\n b = buf[counter++];\n res += shift < 28 ? (b & REST$1) << shift : (b & REST$1) * Math.pow(2, shift);\n shift += 7;\n } while (b >= MSB$1);\n read.bytes = counter - offset;\n return res;\n}\nvar N1 = Math.pow(2, 7);\nvar N2 = Math.pow(2, 14);\nvar N3 = Math.pow(2, 21);\nvar N4 = Math.pow(2, 28);\nvar N5 = Math.pow(2, 35);\nvar N6 = Math.pow(2, 42);\nvar N7 = Math.pow(2, 49);\nvar N8 = Math.pow(2, 56);\nvar N9 = Math.pow(2, 63);\nvar length = function (value) {\n return value < N1 ? 1 : value < N2 ? 2 : value < N3 ? 3 : value < N4 ? 4 : value < N5 ? 5 : value < N6 ? 6 : value < N7 ? 7 : value < N8 ? 8 : value < N9 ? 9 : 10;\n};\nvar varint = {\n encode: encode_1,\n decode: decode,\n encodingLength: length\n};\nvar _brrp_varint = varint;\nexport default _brrp_varint;", "import varint from '../vendor/varint.js';\nexport const decode = (data, offset = 0) => {\n const code = varint.decode(data, offset);\n return [\n code,\n varint.decode.bytes\n ];\n};\nexport const encodeTo = (int, target, offset = 0) => {\n varint.encode(int, target, offset);\n return target;\n};\nexport const encodingLength = int => {\n return varint.encodingLength(int);\n};", "import {\n coerce,\n equals as equalBytes\n} from '../bytes.js';\nimport * as varint from '../varint.js';\nexport const create = (code, digest) => {\n const size = digest.byteLength;\n const sizeOffset = varint.encodingLength(code);\n const digestOffset = sizeOffset + varint.encodingLength(size);\n const bytes = new Uint8Array(digestOffset + size);\n varint.encodeTo(code, bytes, 0);\n varint.encodeTo(size, bytes, sizeOffset);\n bytes.set(digest, digestOffset);\n return new Digest(code, size, digest, bytes);\n};\nexport const decode = multihash => {\n const bytes = coerce(multihash);\n const [code, sizeOffset] = varint.decode(bytes);\n const [size, digestOffset] = varint.decode(bytes.subarray(sizeOffset));\n const digest = bytes.subarray(sizeOffset + digestOffset);\n if (digest.byteLength !== size) {\n throw new Error('Incorrect length');\n }\n return new Digest(code, size, digest, bytes);\n};\nexport const equals = (a, b) => {\n if (a === b) {\n return true;\n } else {\n return a.code === b.code && a.size === b.size && equalBytes(a.bytes, b.bytes);\n }\n};\nexport class Digest {\n constructor(code, size, digest, bytes) {\n this.code = code;\n this.size = size;\n this.digest = digest;\n this.bytes = bytes;\n }\n}", "import * as Digest from './digest.js';\nexport const from = ({name, code, encode}) => new Hasher(name, code, encode);\nexport class Hasher {\n constructor(name, code, encode) {\n this.name = name;\n this.code = code;\n this.encode = encode;\n }\n digest(input) {\n if (input instanceof Uint8Array) {\n const result = this.encode(input);\n return result instanceof Uint8Array ? Digest.create(this.code, result) : result.then(digest => Digest.create(this.code, digest));\n } else {\n throw Error('Unknown type, must be binary type');\n }\n }\n}", "import { coerce } from '../bytes.js';\nimport * as Digest from './digest.js';\nconst code = 0;\nconst name = 'identity';\nconst encode = coerce;\nconst digest = input => Digest.create(code, encode(input));\nexport const identity = {\n code,\n name,\n encode,\n digest\n};", "const textEncoder = new TextEncoder();\nconst textDecoder = new TextDecoder();\nexport const name = 'json';\nexport const code = 512;\nexport const encode = node => textEncoder.encode(JSON.stringify(node));\nexport const decode = data => JSON.parse(textDecoder.decode(data));", "import * as varint from './varint.js';\nimport * as Digest from './hashes/digest.js';\nimport { base58btc } from './bases/base58.js';\nimport { base32 } from './bases/base32.js';\nimport { coerce } from './bytes.js';\nexport class CID {\n constructor(version, code, multihash, bytes) {\n this.code = code;\n this.version = version;\n this.multihash = multihash;\n this.bytes = bytes;\n this.byteOffset = bytes.byteOffset;\n this.byteLength = bytes.byteLength;\n this.asCID = this;\n this._baseCache = new Map();\n Object.defineProperties(this, {\n byteOffset: hidden,\n byteLength: hidden,\n code: readonly,\n version: readonly,\n multihash: readonly,\n bytes: readonly,\n _baseCache: hidden,\n asCID: hidden\n });\n }\n toV0() {\n switch (this.version) {\n case 0: {\n return this;\n }\n default: {\n const {code, multihash} = this;\n if (code !== DAG_PB_CODE) {\n throw new Error('Cannot convert a non dag-pb CID to CIDv0');\n }\n if (multihash.code !== SHA_256_CODE) {\n throw new Error('Cannot convert non sha2-256 multihash CID to CIDv0');\n }\n return CID.createV0(multihash);\n }\n }\n }\n toV1() {\n switch (this.version) {\n case 0: {\n const {code, digest} = this.multihash;\n const multihash = Digest.create(code, digest);\n return CID.createV1(this.code, multihash);\n }\n case 1: {\n return this;\n }\n default: {\n throw Error(`Can not convert CID version ${ this.version } to version 0. This is a bug please report`);\n }\n }\n }\n equals(other) {\n return other && this.code === other.code && this.version === other.version && Digest.equals(this.multihash, other.multihash);\n }\n toString(base) {\n const {bytes, version, _baseCache} = this;\n switch (version) {\n case 0:\n return toStringV0(bytes, _baseCache, base || base58btc.encoder);\n default:\n return toStringV1(bytes, _baseCache, base || base32.encoder);\n }\n }\n toJSON() {\n return {\n code: this.code,\n version: this.version,\n hash: this.multihash.bytes\n };\n }\n get [Symbol.toStringTag]() {\n return 'CID';\n }\n [Symbol.for('nodejs.util.inspect.custom')]() {\n return 'CID(' + this.toString() + ')';\n }\n static isCID(value) {\n deprecate(/^0\\.0/, IS_CID_DEPRECATION);\n return !!(value && (value[cidSymbol] || value.asCID === value));\n }\n get toBaseEncodedString() {\n throw new Error('Deprecated, use .toString()');\n }\n get codec() {\n throw new Error('\"codec\" property is deprecated, use integer \"code\" property instead');\n }\n get buffer() {\n throw new Error('Deprecated .buffer property, use .bytes to get Uint8Array instead');\n }\n get multibaseName() {\n throw new Error('\"multibaseName\" property is deprecated');\n }\n get prefix() {\n throw new Error('\"prefix\" property is deprecated');\n }\n static asCID(value) {\n if (value instanceof CID) {\n return value;\n } else if (value != null && value.asCID === value) {\n const {version, code, multihash, bytes} = value;\n return new CID(version, code, multihash, bytes || encodeCID(version, code, multihash.bytes));\n } else if (value != null && value[cidSymbol] === true) {\n const {version, multihash, code} = value;\n const digest = Digest.decode(multihash);\n return CID.create(version, code, digest);\n } else {\n return null;\n }\n }\n static create(version, code, digest) {\n if (typeof code !== 'number') {\n throw new Error('String codecs are no longer supported');\n }\n switch (version) {\n case 0: {\n if (code !== DAG_PB_CODE) {\n throw new Error(`Version 0 CID must use dag-pb (code: ${ DAG_PB_CODE }) block encoding`);\n } else {\n return new CID(version, code, digest, digest.bytes);\n }\n }\n case 1: {\n const bytes = encodeCID(version, code, digest.bytes);\n return new CID(version, code, digest, bytes);\n }\n default: {\n throw new Error('Invalid version');\n }\n }\n }\n static createV0(digest) {\n return CID.create(0, DAG_PB_CODE, digest);\n }\n static createV1(code, digest) {\n return CID.create(1, code, digest);\n }\n static decode(bytes) {\n const [cid, remainder] = CID.decodeFirst(bytes);\n if (remainder.length) {\n throw new Error('Incorrect length');\n }\n return cid;\n }\n static decodeFirst(bytes) {\n const specs = CID.inspectBytes(bytes);\n const prefixSize = specs.size - specs.multihashSize;\n const multihashBytes = coerce(bytes.subarray(prefixSize, prefixSize + specs.multihashSize));\n if (multihashBytes.byteLength !== specs.multihashSize) {\n throw new Error('Incorrect length');\n }\n const digestBytes = multihashBytes.subarray(specs.multihashSize - specs.digestSize);\n const digest = new Digest.Digest(specs.multihashCode, specs.digestSize, digestBytes, multihashBytes);\n const cid = specs.version === 0 ? CID.createV0(digest) : CID.createV1(specs.codec, digest);\n return [\n cid,\n bytes.subarray(specs.size)\n ];\n }\n static inspectBytes(initialBytes) {\n let offset = 0;\n const next = () => {\n const [i, length] = varint.decode(initialBytes.subarray(offset));\n offset += length;\n return i;\n };\n let version = next();\n let codec = DAG_PB_CODE;\n if (version === 18) {\n version = 0;\n offset = 0;\n } else if (version === 1) {\n codec = next();\n }\n if (version !== 0 && version !== 1) {\n throw new RangeError(`Invalid CID version ${ version }`);\n }\n const prefixSize = offset;\n const multihashCode = next();\n const digestSize = next();\n const size = offset + digestSize;\n const multihashSize = size - prefixSize;\n return {\n version,\n codec,\n multihashCode,\n digestSize,\n multihashSize,\n size\n };\n }\n static parse(source, base) {\n const [prefix, bytes] = parseCIDtoBytes(source, base);\n const cid = CID.decode(bytes);\n cid._baseCache.set(prefix, source);\n return cid;\n }\n}\nconst parseCIDtoBytes = (source, base) => {\n switch (source[0]) {\n case 'Q': {\n const decoder = base || base58btc;\n return [\n base58btc.prefix,\n decoder.decode(`${ base58btc.prefix }${ source }`)\n ];\n }\n case base58btc.prefix: {\n const decoder = base || base58btc;\n return [\n base58btc.prefix,\n decoder.decode(source)\n ];\n }\n case base32.prefix: {\n const decoder = base || base32;\n return [\n base32.prefix,\n decoder.decode(source)\n ];\n }\n default: {\n if (base == null) {\n throw Error('To parse non base32 or base58btc encoded CID multibase decoder must be provided');\n }\n return [\n source[0],\n base.decode(source)\n ];\n }\n }\n};\nconst toStringV0 = (bytes, cache, base) => {\n const {prefix} = base;\n if (prefix !== base58btc.prefix) {\n throw Error(`Cannot string encode V0 in ${ base.name } encoding`);\n }\n const cid = cache.get(prefix);\n if (cid == null) {\n const cid = base.encode(bytes).slice(1);\n cache.set(prefix, cid);\n return cid;\n } else {\n return cid;\n }\n};\nconst toStringV1 = (bytes, cache, base) => {\n const {prefix} = base;\n const cid = cache.get(prefix);\n if (cid == null) {\n const cid = base.encode(bytes);\n cache.set(prefix, cid);\n return cid;\n } else {\n return cid;\n }\n};\nconst DAG_PB_CODE = 112;\nconst SHA_256_CODE = 18;\nconst encodeCID = (version, code, multihash) => {\n const codeOffset = varint.encodingLength(version);\n const hashOffset = codeOffset + varint.encodingLength(code);\n const bytes = new Uint8Array(hashOffset + multihash.byteLength);\n varint.encodeTo(version, bytes, 0);\n varint.encodeTo(code, bytes, codeOffset);\n bytes.set(multihash, hashOffset);\n return bytes;\n};\nconst cidSymbol = Symbol.for('@ipld/js-cid/CID');\nconst readonly = {\n writable: false,\n configurable: false,\n enumerable: true\n};\nconst hidden = {\n writable: false,\n enumerable: false,\n configurable: false\n};\nconst version = '0.0.0-dev';\nconst deprecate = (range, message) => {\n if (range.test(version)) {\n console.warn(message);\n } else {\n throw new Error(message);\n }\n};\nconst IS_CID_DEPRECATION = `CID.isCID(v) is deprecated and will be removed in the next major release.\nFollowing code pattern:\n\nif (CID.isCID(value)) {\n doSomethingWithCID(value)\n}\n\nIs replaced with:\n\nconst cid = CID.asCID(value)\nif (cid) {\n // Make sure to use cid instead of value\n doSomethingWithCID(cid)\n}\n`;", "import * as identityBase from './bases/identity.js';\nimport * as base2 from './bases/base2.js';\nimport * as base8 from './bases/base8.js';\nimport * as base10 from './bases/base10.js';\nimport * as base16 from './bases/base16.js';\nimport * as base32 from './bases/base32.js';\nimport * as base36 from './bases/base36.js';\nimport * as base58 from './bases/base58.js';\nimport * as base64 from './bases/base64.js';\nimport * as base256emoji from './bases/base256emoji.js';\nimport * as sha2 from './hashes/sha2.js';\nimport * as identity from './hashes/identity.js';\nimport * as raw from './codecs/raw.js';\nimport * as json from './codecs/json.js';\nimport {\n CID,\n hasher,\n digest,\n varint,\n bytes\n} from './index.js';\nconst bases = {\n ...identityBase,\n ...base2,\n ...base8,\n ...base10,\n ...base16,\n ...base32,\n ...base36,\n ...base58,\n ...base64,\n ...base256emoji\n};\nconst hashes = {\n ...sha2,\n ...identity\n};\nconst codecs = {\n raw,\n json\n};\nexport {\n CID,\n hasher,\n digest,\n varint,\n bytes,\n hashes,\n bases,\n codecs\n};", "import { bases } from 'multiformats/basics';\nfunction createCodec(name, prefix, encode, decode) {\n return {\n name,\n prefix,\n encoder: {\n name,\n prefix,\n encode\n },\n decoder: { decode }\n };\n}\nconst string = createCodec('utf8', 'u', buf => {\n const decoder = new TextDecoder('utf8');\n return 'u' + decoder.decode(buf);\n}, str => {\n const encoder = new TextEncoder();\n return encoder.encode(str.substring(1));\n});\nconst ascii = createCodec('ascii', 'a', buf => {\n let string = 'a';\n for (let i = 0; i < buf.length; i++) {\n string += String.fromCharCode(buf[i]);\n }\n return string;\n}, str => {\n str = str.substring(1);\n const buf = new Uint8Array(str.length);\n for (let i = 0; i < str.length; i++) {\n buf[i] = str.charCodeAt(i);\n }\n return buf;\n});\nconst BASES = {\n utf8: string,\n 'utf-8': string,\n hex: bases.base16,\n latin1: ascii,\n ascii: ascii,\n binary: ascii,\n ...bases\n};\nexport default BASES;", "import bases from './util/bases.js';\nexport function fromString(string, encoding = 'utf8') {\n const base = bases[encoding];\n if (!base) {\n throw new Error(`Unsupported encoding \"${ encoding }\"`);\n }\n return base.decoder.decode(`${ base.prefix }${ string }`);\n}", "import bases from './util/bases.js';\nexport function toString(array, encoding = 'utf8') {\n const base = bases[encoding];\n if (!base) {\n throw new Error(`Unsupported encoding \"${ encoding }\"`);\n }\n return base.encoder.encode(array).substring(1);\n}", null, null, null, null, null, null, null, null, null, null, null, null, "import { p256 } from '@noble/curves/p256'\n\nexport const compressPubkey = (pubkeyBytes: Uint8Array): Uint8Array => {\n const point = p256.ProjectivePoint.fromHex(pubkeyBytes)\n return point.toRawBytes(true)\n}\n\nexport const decompressPubkey = (compressed: Uint8Array): Uint8Array => {\n if (compressed.length !== 33) {\n throw new Error('Expected 33 byte compress pubkey')\n }\n const point = p256.ProjectivePoint.fromHex(compressed)\n return point.toRawBytes(false)\n}\n", null, "import { secp256k1 as k256 } from '@noble/curves/secp256k1'\n\nexport const compressPubkey = (pubkeyBytes: Uint8Array): Uint8Array => {\n const point = k256.ProjectivePoint.fromHex(pubkeyBytes)\n return point.toRawBytes(true)\n}\n\nexport const decompressPubkey = (compressed: Uint8Array): Uint8Array => {\n if (compressed.length !== 33) {\n throw new Error('Expected 33 byte compress pubkey')\n }\n const point = k256.ProjectivePoint.fromHex(compressed)\n return point.toRawBytes(false)\n}\n", "import { p256 } from '@noble/curves/p256'\nimport { sha256 } from '@noble/hashes/sha256'\nimport { P256_JWT_ALG } from '../const'\nimport { parseDidKey } from '../did'\n\nexport const verifyDidSig = async (\n did: string,\n data: Uint8Array,\n sig: Uint8Array,\n): Promise<boolean> => {\n const { jwtAlg, keyBytes } = parseDidKey(did)\n if (jwtAlg !== P256_JWT_ALG) {\n throw new Error(`Not a P-256 did:key: ${did}`)\n }\n return verifySig(keyBytes, data, sig)\n}\n\nexport const verifySig = async (\n publicKey: Uint8Array,\n data: Uint8Array,\n sig: Uint8Array,\n): Promise<boolean> => {\n const msgHash = await sha256(data)\n return p256.verify(sig, msgHash, publicKey, { lowS: true })\n}\n", "import * as operations from './operations'\nimport { DidKeyPlugin } from '../types'\nimport { P256_DID_PREFIX, P256_JWT_ALG } from '../const'\n\nexport const p256Plugin: DidKeyPlugin = {\n prefix: P256_DID_PREFIX,\n jwtAlg: P256_JWT_ALG,\n verifySignature: operations.verifyDidSig,\n}\n\nexport default p256Plugin\n", "import { secp256k1 as k256 } from '@noble/curves/secp256k1'\nimport { sha256 } from '@noble/hashes/sha256'\nimport { SECP256K1_JWT_ALG } from '../const'\nimport { parseDidKey } from '../did'\n\nexport const verifyDidSig = async (\n did: string,\n data: Uint8Array,\n sig: Uint8Array,\n): Promise<boolean> => {\n const { jwtAlg, keyBytes } = parseDidKey(did)\n if (jwtAlg !== SECP256K1_JWT_ALG) {\n throw new Error(`Not a secp256k1 did:key: ${did}`)\n }\n return verifySig(keyBytes, data, sig)\n}\n\nexport const verifySig = async (\n publicKey: Uint8Array,\n data: Uint8Array,\n sig: Uint8Array,\n): Promise<boolean> => {\n const msgHash = await sha256(data)\n return k256.verify(sig, msgHash, publicKey, { lowS: true })\n}\n", "import * as operations from './operations'\nimport { DidKeyPlugin } from '../types'\nimport { SECP256K1_DID_PREFIX, SECP256K1_JWT_ALG } from '../const'\n\nexport const secp256k1Plugin: DidKeyPlugin = {\n prefix: SECP256K1_DID_PREFIX,\n jwtAlg: SECP256K1_JWT_ALG,\n verifySignature: operations.verifyDidSig,\n}\n\nexport default secp256k1Plugin\n", "import p256Plugin from './p256/plugin'\nimport secp256k1Plugin from './secp256k1/plugin'\n\nexport const plugins = [p256Plugin, secp256k1Plugin]\n\nexport default plugins\n", "import * as uint8arrays from 'uint8arrays'\nimport * as p256 from './p256/encoding'\nimport * as secp from './secp256k1/encoding'\nimport plugins from './plugins'\nimport {\n BASE58_MULTIBASE_PREFIX,\n DID_KEY_PREFIX,\n P256_JWT_ALG,\n SECP256K1_JWT_ALG,\n} from './const'\n\nexport type ParsedMultikey = {\n jwtAlg: string\n keyBytes: Uint8Array\n}\n\nexport const parseMultikey = (multikey: string): ParsedMultikey => {\n if (!multikey.startsWith(BASE58_MULTIBASE_PREFIX)) {\n throw new Error(`Incorrect prefix for multikey: ${multikey}`)\n }\n const prefixedBytes = uint8arrays.fromString(\n multikey.slice(BASE58_MULTIBASE_PREFIX.length),\n 'base58btc',\n )\n const plugin = plugins.find((p) => hasPrefix(prefixedBytes, p.prefix))\n if (!plugin) {\n throw new Error('Unsupported key type')\n }\n let keyBytes = prefixedBytes.slice(plugin.prefix.length)\n if (plugin.jwtAlg === P256_JWT_ALG) {\n keyBytes = p256.decompressPubkey(keyBytes)\n } else if (plugin.jwtAlg === SECP256K1_JWT_ALG) {\n keyBytes = secp.decompressPubkey(keyBytes)\n }\n return {\n jwtAlg: plugin.jwtAlg,\n keyBytes,\n }\n}\n\nexport const formatMultikey = (\n jwtAlg: string,\n keyBytes: Uint8Array,\n): string => {\n const plugin = plugins.find((p) => p.jwtAlg === jwtAlg)\n if (!plugin) {\n throw new Error('Unsupported key type')\n }\n if (jwtAlg === P256_JWT_ALG) {\n keyBytes = p256.compressPubkey(keyBytes)\n } else if (jwtAlg === SECP256K1_JWT_ALG) {\n keyBytes = secp.compressPubkey(keyBytes)\n }\n const prefixedBytes = uint8arrays.concat([plugin.prefix, keyBytes])\n return (\n BASE58_MULTIBASE_PREFIX + uint8arrays.toString(prefixedBytes, 'base58btc')\n )\n}\n\nexport const parseDidKey = (did: string): ParsedMultikey => {\n if (!did.startsWith(DID_KEY_PREFIX)) {\n throw new Error(`Incorrect prefix for did:key: ${did}`)\n }\n return parseMultikey(did.slice(DID_KEY_PREFIX.length))\n}\n\nexport const formatDidKey = (jwtAlg: string, keyBytes: Uint8Array): string => {\n return DID_KEY_PREFIX + formatMultikey(jwtAlg, keyBytes)\n}\n\nconst hasPrefix = (bytes: Uint8Array, prefix: Uint8Array): boolean => {\n return uint8arrays.equals(prefix, bytes.subarray(0, prefix.byteLength))\n}\n", "import * as uint8arrays from 'uint8arrays'\nimport { SupportedEncodings } from 'uint8arrays/to-string'\n\nexport const multibaseToBytes = (mb: string): Uint8Array => {\n const base = mb[0]\n const key = mb.slice(1)\n switch (base) {\n case 'f':\n return uint8arrays.fromString(key, 'base16')\n case 'F':\n return uint8arrays.fromString(key, 'base16upper')\n case 'b':\n return uint8arrays.fromString(key, 'base32')\n case 'B':\n return uint8arrays.fromString(key, 'base32upper')\n case 'z':\n return uint8arrays.fromString(key, 'base58btc')\n case 'm':\n return uint8arrays.fromString(key, 'base64')\n case 'u':\n return uint8arrays.fromString(key, 'base64url')\n case 'U':\n return uint8arrays.fromString(key, 'base64urlpad')\n default:\n throw new Error(`Unsupported multibase: :${mb}`)\n }\n}\n\nexport const bytesToMultibase = (\n mb: Uint8Array,\n encoding: SupportedEncodings,\n): string => {\n switch (encoding) {\n case 'base16':\n return 'f' + uint8arrays.toString(mb, encoding)\n case 'base16upper':\n return 'F' + uint8arrays.toString(mb, encoding)\n case 'base32':\n return 'b' + uint8arrays.toString(mb, encoding)\n case 'base32upper':\n return 'B' + uint8arrays.toString(mb, encoding)\n case 'base58btc':\n return 'z' + uint8arrays.toString(mb, encoding)\n case 'base64':\n return 'm' + uint8arrays.toString(mb, encoding)\n case 'base64url':\n return 'u' + uint8arrays.toString(mb, encoding)\n case 'base64urlpad':\n return 'U' + uint8arrays.toString(mb, encoding)\n default:\n throw new Error(`Unsupported multibase: :${mb}`)\n }\n}\n", "import * as noble from '@noble/hashes/sha256'\nimport * as uint8arrays from 'uint8arrays'\n\n// takes either bytes of utf8 input\nexport const sha256 = async (\n input: Uint8Array | string,\n): Promise<Uint8Array> => {\n const bytes =\n typeof input === 'string' ? uint8arrays.fromString(input, 'utf8') : input\n return noble.sha256(bytes)\n}\n", "import * as noble from '@noble/hashes/utils'\nimport * as uint8arrays from 'uint8arrays'\nimport { SupportedEncodings } from 'uint8arrays/to-string'\nimport { sha256 } from './sha'\n\nexport const randomBytes = noble.randomBytes\n\nexport const randomStr = (\n byteLength: number,\n encoding: SupportedEncodings,\n): string => {\n const bytes = randomBytes(byteLength)\n return uint8arrays.toString(bytes, encoding)\n}\n\nexport const randomIntFromSeed = async (\n seed: string,\n high: number,\n low = 0,\n): Promise<number> => {\n const hash = await sha256(seed)\n const number = Buffer.from(hash).readUintBE(0, 6)\n const range = high - low\n const normalized = number % range\n return normalized + low\n}\n", "import * as uint8arrays from 'uint8arrays'\nimport { parseDidKey } from './did'\nimport plugins from './plugins'\n\nexport const verifySignature = (\n didKey: string,\n data: Uint8Array,\n sig: Uint8Array,\n): Promise<boolean> => {\n const parsed = parseDidKey(didKey)\n const plugin = plugins.find((p) => p.jwtAlg === parsed.jwtAlg)\n if (!plugin) {\n throw new Error(`Unsupported signature alg: :${parsed.jwtAlg}`)\n }\n return plugin.verifySignature(didKey, data, sig)\n}\n\nexport const verifySignatureUtf8 = async (\n didKey: string,\n data: string,\n sig: string,\n): Promise<boolean> => {\n const dataBytes = uint8arrays.fromString(data, 'utf8')\n const sigBytes = uint8arrays.fromString(sig, 'base64url')\n return verifySignature(didKey, dataBytes, sigBytes)\n}\n", "import { p256 } from '@noble/curves/p256'\nimport { sha256 } from '@noble/hashes/sha256'\nimport * as uint8arrays from 'uint8arrays'\nimport { SupportedEncodings } from 'uint8arrays/util/bases'\nimport * as did from '../did'\nimport { P256_JWT_ALG } from '../const'\nimport { Keypair } from '../types'\n\nexport type P256KeypairOptions = {\n exportable: boolean\n}\n\nexport class P256Keypair implements Keypair {\n jwtAlg = P256_JWT_ALG\n private publicKey: Uint8Array\n\n constructor(private privateKey: Uint8Array, private exportable: boolean) {\n this.publicKey = p256.getPublicKey(privateKey)\n }\n\n static async create(\n opts?: Partial<P256KeypairOptions>,\n ): Promise<P256Keypair> {\n const { exportable = false } = opts || {}\n const privKey = p256.utils.randomPrivateKey()\n return new P256Keypair(privKey, exportable)\n }\n\n static async import(\n privKey: Uint8Array | string,\n opts?: Partial<P256KeypairOptions>,\n ): Promise<P256Keypair> {\n const { exportable = false } = opts || {}\n const privKeyBytes =\n typeof privKey === 'string'\n ? uint8arrays.fromString(privKey, 'hex')\n : privKey\n return new P256Keypair(privKeyBytes, exportable)\n }\n\n publicKeyBytes(): Uint8Array {\n return this.publicKey\n }\n\n publicKeyStr(encoding: SupportedEncodings = 'base64pad'): string {\n return uint8arrays.toString(this.publicKey, encoding)\n }\n\n did(): string {\n return did.formatDidKey(this.jwtAlg, this.publicKey)\n }\n\n async sign(msg: Uint8Array): Promise<Uint8Array> {\n const msgHash = await sha256(msg)\n // return raw 64 byte sig not DER-encoded\n const sig = await p256.sign(msgHash, this.privateKey, { lowS: true })\n return sig.toCompactRawBytes()\n }\n\n async export(): Promise<Uint8Array> {\n if (!this.exportable) {\n throw new Error('Private key is not exportable')\n }\n return this.privateKey\n }\n}\n\nexport default P256Keypair\n", "import { secp256k1 as k256 } from '@noble/curves/secp256k1'\nimport { sha256 } from '@noble/hashes/sha256'\nimport * as uint8arrays from 'uint8arrays'\nimport { SupportedEncodings } from 'uint8arrays/util/bases'\nimport * as did from '../did'\nimport { SECP256K1_JWT_ALG } from '../const'\nimport { Keypair } from '../types'\n\nexport type Secp256k1KeypairOptions = {\n exportable: boolean\n}\n\nexport class Secp256k1Keypair implements Keypair {\n jwtAlg = SECP256K1_JWT_ALG\n private publicKey: Uint8Array\n\n constructor(private privateKey: Uint8Array, private exportable: boolean) {\n this.publicKey = k256.getPublicKey(privateKey)\n }\n\n static async create(\n opts?: Partial<Secp256k1KeypairOptions>,\n ): Promise<Secp256k1Keypair> {\n const { exportable = false } = opts || {}\n const privKey = k256.utils.randomPrivateKey()\n return new Secp256k1Keypair(privKey, exportable)\n }\n\n static async import(\n privKey: Uint8Array | string,\n opts?: Partial<Secp256k1KeypairOptions>,\n ): Promise<Secp256k1Keypair> {\n const { exportable = false } = opts || {}\n const privKeyBytes =\n typeof privKey === 'string'\n ? uint8arrays.fromString(privKey, 'hex')\n : privKey\n return new Secp256k1Keypair(privKeyBytes, exportable)\n }\n\n publicKeyBytes(): Uint8Array {\n return this.publicKey\n }\n\n publicKeyStr(encoding: SupportedEncodings = 'base64pad'): string {\n return uint8arrays.toString(this.publicKey, encoding)\n }\n\n did(): string {\n return did.formatDidKey(this.jwtAlg, this.publicKey)\n }\n\n async sign(msg: Uint8Array): Promise<Uint8Array> {\n const msgHash = await sha256(msg)\n // return raw 64 byte sig not DER-encoded\n const sig = await k256.sign(msgHash, this.privateKey, { lowS: true })\n return sig.toCompactRawBytes()\n }\n\n async export(): Promise<Uint8Array> {\n if (!this.exportable) {\n throw new Error('Private key is not exportable')\n }\n return this.privateKey\n }\n}\n\nexport default Secp256k1Keypair\n"],
5
+ "mappings": "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",
6
+ "names": ["src_exports", "randomBytes", "sha256", "length", "output", "name", "encode", "length", "i", "j", "decode", "string", "equals", "name", "bytes", "encode", "decode", "alphabet", "string", "encode", "decode", "encode", "decode", "decode", "code", "code", "digest", "bytes", "decode", "equals", "from", "name", "code", "encode", "digest", "from", "crypto", "identity_exports", "identity", "encode", "identity", "version", "code", "bytes", "digest", "equals", "base", "decode", "length", "cid", "identity_exports", "name", "encode", "decode", "string", "fromString", "string", "base", "toString", "base", "hash", "crypto", "crypto", "hash", "concatBytes", "utf8ToBytes", "u8a", "hexes", "bytes", "_0n", "_1n", "_2n", "number", "Fp", "_0n", "_1n", "bitLen", "isLE", "_0n", "_1n", "bytes", "hash", "isLE", "_1n", "_0n", "_1n", "base", "Fp", "s", "_0n", "_1n", "_2n", "_3n", "_4n", "toBytes", "concatBytes", "bytes", "Point", "a", "number", "from", "hash", "randomBytes", "r", "hash", "create", "isLE", "length", "sha256", "sha256", "_1n", "_2n", "_3n", "Fp", "sha256", "_0n", "compressPubkey", "decompressPubkey", "sha256", "verifyDidSig", "verifySig", "sha256", "verifyDidSig", "plugin_default", "plugin_default", "fromString", "decompressPubkey", "compressPubkey", "toString", "bytes", "base", "fromString", "toString", "sha256", "bytes", "fromString", "randomBytes", "bytes", "toString", "hash", "sha256", "number", "fromString", "fromString", "toString", "sha256", "fromString", "toString", "sha256"]
7
7
  }