@atproto/crypto 0.2.0 → 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.
@@ -0,0 +1,6 @@
1
+ export declare const P256_DID_PREFIX: Uint8Array;
2
+ export declare const SECP256K1_DID_PREFIX: Uint8Array;
3
+ export declare const BASE58_MULTIBASE_PREFIX = "z";
4
+ export declare const DID_KEY_PREFIX = "did:key:";
5
+ export declare const P256_JWT_ALG = "ES256";
6
+ export declare const SECP256K1_JWT_ALG = "ES256K";
package/dist/did.d.ts CHANGED
@@ -1,6 +1,8 @@
1
- export declare type ParsedDidKey = {
1
+ export declare type ParsedMultikey = {
2
2
  jwtAlg: string;
3
3
  keyBytes: Uint8Array;
4
4
  };
5
- export declare const parseDidKey: (did: string) => ParsedDidKey;
5
+ export declare const parseMultikey: (multikey: string) => ParsedMultikey;
6
+ export declare const formatMultikey: (jwtAlg: string, keyBytes: Uint8Array) => string;
7
+ export declare const parseDidKey: (did: string) => ParsedMultikey;
6
8
  export declare const formatDidKey: (jwtAlg: string, keyBytes: Uint8Array) => string;
package/dist/index.js CHANGED
@@ -26,7 +26,8 @@ var __toCommonJS = (mod2) => __copyProps(__defProp({}, "__esModule", { value: tr
26
26
  // src/index.ts
27
27
  var src_exports2 = {};
28
28
  __export(src_exports2, {
29
- BASE58_DID_PREFIX: () => BASE58_DID_PREFIX,
29
+ BASE58_MULTIBASE_PREFIX: () => BASE58_MULTIBASE_PREFIX,
30
+ DID_KEY_PREFIX: () => DID_KEY_PREFIX,
30
31
  P256Keypair: () => P256Keypair,
31
32
  P256_DID_PREFIX: () => P256_DID_PREFIX,
32
33
  P256_JWT_ALG: () => P256_JWT_ALG,
@@ -35,9 +36,11 @@ __export(src_exports2, {
35
36
  Secp256k1Keypair: () => Secp256k1Keypair,
36
37
  bytesToMultibase: () => bytesToMultibase,
37
38
  formatDidKey: () => formatDidKey,
39
+ formatMultikey: () => formatMultikey,
38
40
  multibaseToBytes: () => multibaseToBytes,
39
41
  p256Plugin: () => p256Plugin,
40
42
  parseDidKey: () => parseDidKey,
43
+ parseMultikey: () => parseMultikey,
41
44
  randomBytes: () => randomBytes2,
42
45
  randomIntFromSeed: () => randomIntFromSeed,
43
46
  randomStr: () => randomStr,
@@ -51,7 +54,8 @@ module.exports = __toCommonJS(src_exports2);
51
54
  // src/const.ts
52
55
  var P256_DID_PREFIX = new Uint8Array([128, 36]);
53
56
  var SECP256K1_DID_PREFIX = new Uint8Array([231, 1]);
54
- var BASE58_DID_PREFIX = "did:key:z";
57
+ var BASE58_MULTIBASE_PREFIX = "z";
58
+ var DID_KEY_PREFIX = "did:key:";
55
59
  var P256_JWT_ALG = "ES256";
56
60
  var SECP256K1_JWT_ALG = "ES256K";
57
61
 
@@ -3085,12 +3089,12 @@ var plugins = [plugin_default, plugin_default2];
3085
3089
  var plugins_default = plugins;
3086
3090
 
3087
3091
  // src/did.ts
3088
- var parseDidKey = (did) => {
3089
- if (!did.startsWith(BASE58_DID_PREFIX)) {
3090
- throw new Error(`Incorrect prefix for did:key: ${did}`);
3092
+ var parseMultikey = (multikey) => {
3093
+ if (!multikey.startsWith(BASE58_MULTIBASE_PREFIX)) {
3094
+ throw new Error(`Incorrect prefix for multikey: ${multikey}`);
3091
3095
  }
3092
3096
  const prefixedBytes = fromString2(
3093
- did.slice(BASE58_DID_PREFIX.length),
3097
+ multikey.slice(BASE58_MULTIBASE_PREFIX.length),
3094
3098
  "base58btc"
3095
3099
  );
3096
3100
  const plugin = plugins_default.find((p) => hasPrefix(prefixedBytes, p.prefix));
@@ -3108,7 +3112,7 @@ var parseDidKey = (did) => {
3108
3112
  keyBytes
3109
3113
  };
3110
3114
  };
3111
- var formatDidKey = (jwtAlg, keyBytes) => {
3115
+ var formatMultikey = (jwtAlg, keyBytes) => {
3112
3116
  const plugin = plugins_default.find((p) => p.jwtAlg === jwtAlg);
3113
3117
  if (!plugin) {
3114
3118
  throw new Error("Unsupported key type");
@@ -3119,7 +3123,16 @@ var formatDidKey = (jwtAlg, keyBytes) => {
3119
3123
  keyBytes = compressPubkey2(keyBytes);
3120
3124
  }
3121
3125
  const prefixedBytes = concat([plugin.prefix, keyBytes]);
3122
- return BASE58_DID_PREFIX + toString2(prefixedBytes, "base58btc");
3126
+ return BASE58_MULTIBASE_PREFIX + toString2(prefixedBytes, "base58btc");
3127
+ };
3128
+ var parseDidKey = (did) => {
3129
+ if (!did.startsWith(DID_KEY_PREFIX)) {
3130
+ throw new Error(`Incorrect prefix for did:key: ${did}`);
3131
+ }
3132
+ return parseMultikey(did.slice(DID_KEY_PREFIX.length));
3133
+ };
3134
+ var formatDidKey = (jwtAlg, keyBytes) => {
3135
+ return DID_KEY_PREFIX + formatMultikey(jwtAlg, keyBytes);
3123
3136
  };
3124
3137
  var hasPrefix = (bytes2, prefix) => {
3125
3138
  return equals(prefix, bytes2.subarray(0, prefix.byteLength));
@@ -3289,7 +3302,8 @@ var Secp256k1Keypair = class {
3289
3302
  };
3290
3303
  // Annotate the CommonJS export names for ESM import in node:
3291
3304
  0 && (module.exports = {
3292
- BASE58_DID_PREFIX,
3305
+ BASE58_MULTIBASE_PREFIX,
3306
+ DID_KEY_PREFIX,
3293
3307
  P256Keypair,
3294
3308
  P256_DID_PREFIX,
3295
3309
  P256_JWT_ALG,
@@ -3298,9 +3312,11 @@ var Secp256k1Keypair = class {
3298
3312
  Secp256k1Keypair,
3299
3313
  bytesToMultibase,
3300
3314
  formatDidKey,
3315
+ formatMultikey,
3301
3316
  multibaseToBytes,
3302
3317
  p256Plugin,
3303
3318
  parseDidKey,
3319
+ parseMultikey,
3304
3320
  randomBytes,
3305
3321
  randomIntFromSeed,
3306
3322
  randomStr,
package/dist/index.js.map CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
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_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", "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 { P256_JWT_ALG, SECP256K1_JWT_ALG, BASE58_DID_PREFIX } from './const'\n\nexport type ParsedDidKey = {\n jwtAlg: string\n keyBytes: Uint8Array\n}\n\nexport const parseDidKey = (did: string): ParsedDidKey => {\n if (!did.startsWith(BASE58_DID_PREFIX)) {\n throw new Error(`Incorrect prefix for did:key: ${did}`)\n }\n const prefixedBytes = uint8arrays.fromString(\n did.slice(BASE58_DID_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 BASE58_DID_PREFIX + uint8arrays.toString(prefixedBytes, 'base58btc')\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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",
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
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
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atproto/crypto",
3
- "version": "0.2.0",
3
+ "version": "0.2.1",
4
4
  "main": "dist/index.js",
5
5
  "license": "MIT",
6
6
  "repository": {
package/src/const.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  export const P256_DID_PREFIX = new Uint8Array([0x80, 0x24])
2
2
  export const SECP256K1_DID_PREFIX = new Uint8Array([0xe7, 0x01])
3
- export const BASE58_DID_PREFIX = 'did:key:z' // z is the multibase prefix for base58btc byte encoding
3
+ export const BASE58_MULTIBASE_PREFIX = 'z'
4
+ export const DID_KEY_PREFIX = 'did:key:'
4
5
 
5
6
  export const P256_JWT_ALG = 'ES256'
6
7
  export const SECP256K1_JWT_ALG = 'ES256K'
package/src/did.ts CHANGED
@@ -2,19 +2,24 @@ import * as uint8arrays from 'uint8arrays'
2
2
  import * as p256 from './p256/encoding'
3
3
  import * as secp from './secp256k1/encoding'
4
4
  import plugins from './plugins'
5
- import { P256_JWT_ALG, SECP256K1_JWT_ALG, BASE58_DID_PREFIX } from './const'
5
+ import {
6
+ BASE58_MULTIBASE_PREFIX,
7
+ DID_KEY_PREFIX,
8
+ P256_JWT_ALG,
9
+ SECP256K1_JWT_ALG,
10
+ } from './const'
6
11
 
7
- export type ParsedDidKey = {
12
+ export type ParsedMultikey = {
8
13
  jwtAlg: string
9
14
  keyBytes: Uint8Array
10
15
  }
11
16
 
12
- export const parseDidKey = (did: string): ParsedDidKey => {
13
- if (!did.startsWith(BASE58_DID_PREFIX)) {
14
- throw new Error(`Incorrect prefix for did:key: ${did}`)
17
+ export const parseMultikey = (multikey: string): ParsedMultikey => {
18
+ if (!multikey.startsWith(BASE58_MULTIBASE_PREFIX)) {
19
+ throw new Error(`Incorrect prefix for multikey: ${multikey}`)
15
20
  }
16
21
  const prefixedBytes = uint8arrays.fromString(
17
- did.slice(BASE58_DID_PREFIX.length),
22
+ multikey.slice(BASE58_MULTIBASE_PREFIX.length),
18
23
  'base58btc',
19
24
  )
20
25
  const plugin = plugins.find((p) => hasPrefix(prefixedBytes, p.prefix))
@@ -33,7 +38,10 @@ export const parseDidKey = (did: string): ParsedDidKey => {
33
38
  }
34
39
  }
35
40
 
36
- export const formatDidKey = (jwtAlg: string, keyBytes: Uint8Array): string => {
41
+ export const formatMultikey = (
42
+ jwtAlg: string,
43
+ keyBytes: Uint8Array,
44
+ ): string => {
37
45
  const plugin = plugins.find((p) => p.jwtAlg === jwtAlg)
38
46
  if (!plugin) {
39
47
  throw new Error('Unsupported key type')
@@ -44,7 +52,20 @@ export const formatDidKey = (jwtAlg: string, keyBytes: Uint8Array): string => {
44
52
  keyBytes = secp.compressPubkey(keyBytes)
45
53
  }
46
54
  const prefixedBytes = uint8arrays.concat([plugin.prefix, keyBytes])
47
- return BASE58_DID_PREFIX + uint8arrays.toString(prefixedBytes, 'base58btc')
55
+ return (
56
+ BASE58_MULTIBASE_PREFIX + uint8arrays.toString(prefixedBytes, 'base58btc')
57
+ )
58
+ }
59
+
60
+ export const parseDidKey = (did: string): ParsedMultikey => {
61
+ if (!did.startsWith(DID_KEY_PREFIX)) {
62
+ throw new Error(`Incorrect prefix for did:key: ${did}`)
63
+ }
64
+ return parseMultikey(did.slice(DID_KEY_PREFIX.length))
65
+ }
66
+
67
+ export const formatDidKey = (jwtAlg: string, keyBytes: Uint8Array): string => {
68
+ return DID_KEY_PREFIX + formatMultikey(jwtAlg, keyBytes)
48
69
  }
49
70
 
50
71
  const hasPrefix = (bytes: Uint8Array, prefix: Uint8Array): boolean => {
@@ -0,0 +1,15 @@
1
+ import { randomIntFromSeed } from '../src'
2
+
3
+ describe('randomIntFromSeed()', () => {
4
+ it('has good distribution for low bucket count.', async () => {
5
+ const counts: [zero: number, one: number] = [0, 0]
6
+ const salt = Math.random()
7
+ for (let i = 0; i < 10000; ++i) {
8
+ const int = await randomIntFromSeed(`${i}${salt}`, 2)
9
+ counts[int]++
10
+ }
11
+ const [zero, one] = counts
12
+ expect(zero + one).toEqual(10000)
13
+ expect(Math.max(zero, one) / Math.min(zero, one)).toBeLessThan(1.05)
14
+ })
15
+ })
@@ -1 +1 @@
1
- {"program":{"fileNames":["../../node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/typescript/lib/lib.es2021.d.ts","../../node_modules/typescript/lib/lib.es2022.d.ts","../../node_modules/typescript/lib/lib.esnext.d.ts","../../node_modules/typescript/lib/lib.dom.d.ts","../../node_modules/typescript/lib/lib.dom.iterable.d.ts","../../node_modules/typescript/lib/lib.webworker.d.ts","../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../node_modules/typescript/lib/lib.esnext.intl.d.ts","./src/const.ts","../../node_modules/uint8arrays/types/src/compare.d.ts","../../node_modules/uint8arrays/types/src/concat.d.ts","../../node_modules/uint8arrays/types/src/equals.d.ts","../../node_modules/multiformats/types/src/bases/interface.d.ts","../../node_modules/multiformats/types/src/bases/base.d.ts","../../node_modules/uint8arrays/types/src/util/bases.d.ts","../../node_modules/uint8arrays/types/src/from-string.d.ts","../../node_modules/uint8arrays/types/src/to-string.d.ts","../../node_modules/uint8arrays/types/src/xor.d.ts","../../node_modules/uint8arrays/types/src/index.d.ts","../../node_modules/@noble/curves/abstract/utils.d.ts","../../node_modules/@noble/curves/abstract/modular.d.ts","../../node_modules/@noble/curves/abstract/curve.d.ts","../../node_modules/@noble/curves/abstract/weierstrass.d.ts","../../node_modules/@noble/curves/abstract/hash-to-curve.d.ts","../../node_modules/@noble/curves/p256.d.ts","./src/p256/encoding.ts","../../node_modules/@noble/curves/secp256k1.d.ts","./src/secp256k1/encoding.ts","../../node_modules/@noble/hashes/utils.d.ts","../../node_modules/@noble/hashes/_sha2.d.ts","../../node_modules/@noble/hashes/sha256.d.ts","./src/p256/operations.ts","./src/types.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","./src/index.ts","../../node_modules/@babel/types/lib/index.d.ts","../../node_modules/@types/babel__generator/index.d.ts","../../node_modules/@babel/parser/typings/babel-parser.d.ts","../../node_modules/@types/babel__template/index.d.ts","../../node_modules/@types/babel__traverse/index.d.ts","../../node_modules/@types/babel__core/index.d.ts","../../node_modules/@types/node/ts4.8/assert.d.ts","../../node_modules/@types/node/ts4.8/assert/strict.d.ts","../../node_modules/@types/node/ts4.8/globals.d.ts","../../node_modules/@types/node/ts4.8/async_hooks.d.ts","../../node_modules/@types/node/ts4.8/buffer.d.ts","../../node_modules/@types/node/ts4.8/child_process.d.ts","../../node_modules/@types/node/ts4.8/cluster.d.ts","../../node_modules/@types/node/ts4.8/console.d.ts","../../node_modules/@types/node/ts4.8/constants.d.ts","../../node_modules/@types/node/ts4.8/crypto.d.ts","../../node_modules/@types/node/ts4.8/dgram.d.ts","../../node_modules/@types/node/ts4.8/diagnostics_channel.d.ts","../../node_modules/@types/node/ts4.8/dns.d.ts","../../node_modules/@types/node/ts4.8/dns/promises.d.ts","../../node_modules/@types/node/ts4.8/domain.d.ts","../../node_modules/@types/node/ts4.8/dom-events.d.ts","../../node_modules/@types/node/ts4.8/events.d.ts","../../node_modules/@types/node/ts4.8/fs.d.ts","../../node_modules/@types/node/ts4.8/fs/promises.d.ts","../../node_modules/@types/node/ts4.8/http.d.ts","../../node_modules/@types/node/ts4.8/http2.d.ts","../../node_modules/@types/node/ts4.8/https.d.ts","../../node_modules/@types/node/ts4.8/inspector.d.ts","../../node_modules/@types/node/ts4.8/module.d.ts","../../node_modules/@types/node/ts4.8/net.d.ts","../../node_modules/@types/node/ts4.8/os.d.ts","../../node_modules/@types/node/ts4.8/path.d.ts","../../node_modules/@types/node/ts4.8/perf_hooks.d.ts","../../node_modules/@types/node/ts4.8/process.d.ts","../../node_modules/@types/node/ts4.8/punycode.d.ts","../../node_modules/@types/node/ts4.8/querystring.d.ts","../../node_modules/@types/node/ts4.8/readline.d.ts","../../node_modules/@types/node/ts4.8/readline/promises.d.ts","../../node_modules/@types/node/ts4.8/repl.d.ts","../../node_modules/@types/node/ts4.8/stream.d.ts","../../node_modules/@types/node/ts4.8/stream/promises.d.ts","../../node_modules/@types/node/ts4.8/stream/consumers.d.ts","../../node_modules/@types/node/ts4.8/stream/web.d.ts","../../node_modules/@types/node/ts4.8/string_decoder.d.ts","../../node_modules/@types/node/ts4.8/test.d.ts","../../node_modules/@types/node/ts4.8/timers.d.ts","../../node_modules/@types/node/ts4.8/timers/promises.d.ts","../../node_modules/@types/node/ts4.8/tls.d.ts","../../node_modules/@types/node/ts4.8/trace_events.d.ts","../../node_modules/@types/node/ts4.8/tty.d.ts","../../node_modules/@types/node/ts4.8/url.d.ts","../../node_modules/@types/node/ts4.8/util.d.ts","../../node_modules/@types/node/ts4.8/v8.d.ts","../../node_modules/@types/node/ts4.8/vm.d.ts","../../node_modules/@types/node/ts4.8/wasi.d.ts","../../node_modules/@types/node/ts4.8/worker_threads.d.ts","../../node_modules/@types/node/ts4.8/zlib.d.ts","../../node_modules/@types/node/ts4.8/globals.global.d.ts","../../node_modules/@types/node/ts4.8/index.d.ts","../../node_modules/@types/bn.js/index.d.ts","../../node_modules/@types/connect/index.d.ts","../../node_modules/@types/body-parser/index.d.ts","../../node_modules/@types/cors/index.d.ts","../../node_modules/@types/elliptic/index.d.ts","../../node_modules/@types/range-parser/index.d.ts","../../node_modules/@types/qs/index.d.ts","../../node_modules/@types/express-serve-static-core/index.d.ts","../../node_modules/@types/mime/mime.d.ts","../../node_modules/@types/mime/index.d.ts","../../node_modules/@types/serve-static/index.d.ts","../../node_modules/@types/express/index.d.ts","../../node_modules/@types/graceful-fs/index.d.ts","../../node_modules/@types/http-errors/index.d.ts","../../node_modules/@types/istanbul-lib-coverage/index.d.ts","../../node_modules/@types/istanbul-lib-report/index.d.ts","../../node_modules/@types/istanbul-reports/index.d.ts","../../node_modules/@jest/expect-utils/build/index.d.ts","../../node_modules/chalk/index.d.ts","../../node_modules/@sinclair/typebox/typebox.d.ts","../../node_modules/@jest/schemas/build/index.d.ts","../../node_modules/pretty-format/build/index.d.ts","../../node_modules/jest-diff/build/index.d.ts","../../node_modules/jest-matcher-utils/build/index.d.ts","../../node_modules/expect/build/index.d.ts","../../node_modules/@types/jest/index.d.ts","../../node_modules/@types/json-schema/index.d.ts","../../node_modules/@types/jsonwebtoken/index.d.ts","../../node_modules/@types/minimatch/index.d.ts","../../node_modules/@types/minimist/index.d.ts","../../node_modules/@types/nodemailer/lib/dkim/index.d.ts","../../node_modules/@types/nodemailer/lib/mailer/mail-message.d.ts","../../node_modules/@types/nodemailer/lib/xoauth2/index.d.ts","../../node_modules/@types/nodemailer/lib/mailer/index.d.ts","../../node_modules/@types/nodemailer/lib/mime-node/index.d.ts","../../node_modules/@types/nodemailer/lib/smtp-connection/index.d.ts","../../node_modules/@types/nodemailer/lib/shared/index.d.ts","../../node_modules/@types/nodemailer/lib/json-transport/index.d.ts","../../node_modules/@types/nodemailer/lib/sendmail-transport/index.d.ts","../../node_modules/@types/nodemailer/lib/ses-transport/index.d.ts","../../node_modules/@types/nodemailer/lib/smtp-pool/index.d.ts","../../node_modules/@types/nodemailer/lib/smtp-transport/index.d.ts","../../node_modules/@types/nodemailer/lib/stream-transport/index.d.ts","../../node_modules/@types/nodemailer/index.d.ts","../../node_modules/@types/normalize-package-data/index.d.ts","../../node_modules/@types/parse-json/index.d.ts","../../node_modules/pg-types/index.d.ts","../../node_modules/pg-protocol/dist/messages.d.ts","../../node_modules/pg-protocol/dist/serializer.d.ts","../../node_modules/pg-protocol/dist/parser.d.ts","../../node_modules/pg-protocol/dist/index.d.ts","../../node_modules/@types/pg/index.d.ts","../../node_modules/@types/prettier/index.d.ts","../../node_modules/@types/sharp/index.d.ts","../../node_modules/@types/stack-utils/index.d.ts","../../node_modules/@types/ws/index.d.ts","../../node_modules/@types/yargs-parser/index.d.ts","../../node_modules/@types/yargs/index.d.ts"],"fileInfos":[{"version":"f20c05dbfe50a208301d2a1da37b9931bce0466eb5a1f4fe240971b4ecc82b67","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","e6b724280c694a9f588847f754198fb96c43d805f065c3a5b28bbc9594541c84","1fc5ab7a764205c68fa10d381b08417795fc73111d6dd16b5b1ed36badb743d9","746d62152361558ea6d6115cf0da4dd10ede041d14882ede3568bce5dc4b4f1f","d11a03592451da2d1065e09e61f4e2a9bf68f780f4f6623c18b57816a9679d17","aea179452def8a6152f98f63b191b84e7cbd69b0e248c91e61fb2e52328abe8c",{"version":"9b087de7268e4efc5f215347a62656663933d63c0b1d7b624913240367b999ea","affectsGlobalScope":true},{"version":"3260e3386d9535b804205bdddb5618a9a27735bd22927f48ad54363abcd23d45","affectsGlobalScope":true},{"version":"adb09ec0a64fc17dbbc4a228b3b18aa5f01db3440a6b0cbb02354df58674d584","affectsGlobalScope":true},{"version":"adb996790133eb33b33aadb9c09f15c2c575e71fb57a62de8bf74dbf59ec7dfb","affectsGlobalScope":true},{"version":"8cc8c5a3bac513368b0157f3d8b31cfdcfe78b56d3724f30f80ed9715e404af8","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true},{"version":"0d5f52b3174bee6edb81260ebcd792692c32c81fd55499d69531496f3f2b25e7","affectsGlobalScope":true},{"version":"55f400eec64d17e888e278f4def2f254b41b89515d3b88ad75d5e05f019daddd","affectsGlobalScope":true},{"version":"181f1784c6c10b751631b24ce60c7f78b20665db4550b335be179217bacc0d5f","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"75ec0bdd727d887f1b79ed6619412ea72ba3c81d92d0787ccb64bab18d261f14","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"81cac4cbc92c0c839c70f8ffb94eb61e2d32dc1c3cf6d95844ca099463cf37ea","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"09aa50414b80c023553090e2f53827f007a301bc34b0495bfb2c3c08ab9ad1eb","affectsGlobalScope":true},{"version":"d7f680a43f8cd12a6b6122c07c54ba40952b0c8aa140dcfcf32eb9e6cb028596","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"775d9c9fd150d5de79e0450f35bc8b8f94ae64e3eb5da12725ff2a649dccc777","affectsGlobalScope":true},{"version":"b248e32ca52e8f5571390a4142558ae4f203ae2f94d5bac38a3084d529ef4e58","affectsGlobalScope":true},{"version":"6c55633c733c8378db65ac3da7a767c3cf2cf3057f0565a9124a16a3a2019e87","affectsGlobalScope":true},{"version":"fb4416144c1bf0323ccbc9afb0ab289c07312214e8820ad17d709498c865a3fe","affectsGlobalScope":true},{"version":"5b0ca94ec819d68d33da516306c15297acec88efeb0ae9e2b39f71dbd9685ef7","affectsGlobalScope":true},{"version":"34c839eaaa6d78c8674ae2c37af2236dee6831b13db7b4ef4df3ec889a04d4f2","affectsGlobalScope":true},{"version":"34478567f8a80171f88f2f30808beb7da15eac0538ae91282dd33dce928d98ed","affectsGlobalScope":true},{"version":"ab7d58e6161a550ff92e5aff755dc37fe896245348332cd5f1e1203479fe0ed1","affectsGlobalScope":true},{"version":"6bda95ea27a59a276e46043b7065b55bd4b316c25e70e29b572958fa77565d43","affectsGlobalScope":true},{"version":"aedb8de1abb2ff1095c153854a6df7deae4a5709c37297f9d6e9948b6806fa66","affectsGlobalScope":true},{"version":"a4da0551fd39b90ca7ce5f68fb55d4dc0c1396d589b612e1902f68ee090aaada","affectsGlobalScope":true},{"version":"11ffe3c281f375fff9ffdde8bbec7669b4dd671905509079f866f2354a788064","affectsGlobalScope":true},{"version":"52d1bb7ab7a3306fd0375c8bff560feed26ed676a5b0457fa8027b563aecb9a4","affectsGlobalScope":true},{"version":"b86a270598e5424a18bffef7ceadb47d90cba86f0c38e9dfe830cee5b3bc86ec","signature":"750c244423f6d5e021a3fd58baa960d16e1d6f3ac17800d5df1ff65077211d7f"},"90cf3b12cd05d01c42193be1cd25af2c8dbef608ae143e5eaacf73cdb99840d2","4e37a214f2cd5a350affba5580d1d7c01ca83da6393ef2c13a66d74fc7b95eac","3157fa89ebde7e5d5499da49d8ae13e523c1de12d5c1285251c17b7672887b1e","930446bf32192f698b78f8ea4b309d8c2cfe02ab5ad78e4db907417405ebf5e7","729b819a6779d842c3a6908ba4ed93d9fe50e2533d989f05f55a4811b3dd9910","e47d9ea931ddade1deee3946884e8dc7aafbf4af74f9ecb85ef77c895100bd39","0841c3aed9354ad025302d5c7cde53916825047646e559d918b62a31500aebe7","7c515715da56f17e695e2c3611cf073d2cebfd417497652b35f9042b7235d5b2","a4942fc385f0368be5a50d7e7280c5c6ad47b082a9eaa0284042c89ce2df9e08","91072b0ddd41ce84a3c85f36cf927f2e7b1724f7ce71accf16715d99bafc113a","1253b8e9b5c56f9d301ebb1370d2bb427f66132a51e8b6716af6f665dc200c07","21920ee9ec85cc0591d16e4f45bffdcfc64b6bd62e59896036730f330e267db3","d0b3609e8e7afed0fd0570152255458407e67249b94f6603afdfd68599423f21","51f039379b8f5c5c68137e8387682982aefd8c3e4bc6d7ddfdb2c4fdd949a87a","0f4154a3ba7d3fc454ca43c94c286ef178eb21cf7e74056fd263811253ba1f6a","0abe52fb9f112becef29400328d7b18267acb82f3189ac79a514a790fc42513c",{"version":"5364d9a8ca9001bd547e6ebdbf8f4669d77fcaa915853c0f18d53b4230bb4890","signature":"2087b9fbce5341ced161726d7e6f14a6240a43e78b084ed4bd45f8d973dbae22"},"7b4d6ac7d8eeb705af896d6a0262e928a9da37853964d6200e582d9c91400dc3",{"version":"f848e2bb3ac9cd397d65b90c6d4f079bea33e9adc5eaef56941f35d83af63305","signature":"2087b9fbce5341ced161726d7e6f14a6240a43e78b084ed4bd45f8d973dbae22"},"3c3ca314a2b01902ef19b499be6e052925a849f14e2d9185afb323df3d3a72b6","1e7146a407bf85762b80681cd4aa3b544000e30c9b24d04685dfa69f82a48fd9","a3c42863fed9b49c35144d60aa0b2865b5fede65ea0050a28f45381af6dae035",{"version":"638435a8fcd108eac7a717fb79ff5a955c9db334a04b518f5722985bcbf5282e","signature":"c56176fd9f9ceeb920252ed7698e9754fae32919abfc945a750da6ce12a6ae79"},{"version":"8748195866b57fd35a9fc67f04a5086ee19e0d46f6ee197d87e77a7d475a85af","signature":"1466fadfb9e1e3a1c21d8d21870ed4fdea206d02203d456013968cd5d9ceb5ae"},{"version":"ec824e6f76dce81ea30941d11a6143a32fdce3d8a82cbf8f889c34c4874a0d0e","signature":"c9b3b9b91dee0f195301e6dd1563f4ef483a54c95aa7c3dc273f8c054d325db7"},{"version":"9f37eb594c8db551dbf57fa50166b0fd4f50dbfd876ee1d60193a238f52eac3e","signature":"c56176fd9f9ceeb920252ed7698e9754fae32919abfc945a750da6ce12a6ae79"},{"version":"d1bdab0aff5ee23ac869abce94c7389f2010f18118e979e2f8e76a38f629faa9","signature":"4ef849b6a5673975905cdb194c38961a540a52ea0e9a6111e76fc8f1301b9830"},{"version":"dba391c789c85b1d249eb24656e6524d1a0b9a203dca53848365db60a7fcc1fa","signature":"ae613f5d0a4e16b557811e7f259385d03b28c4596c38b9529e50e9b24c38f456"},{"version":"c3195a40ae5577d8e1b1ab01691cb5e10ca50b45e04318457ab818a187a92b0d","signature":"e78137a9b4ae7800b6ea6d6ad2ac97b807a4e550a1a54b0100d4652d49a8df9a"},{"version":"023c4d29a969c3d938c1f27b0787ce987a248180642353992730e36af657b555","signature":"643be010f5c402659d40558281e9630f1d6671f9aa3cb4ef847fb8928ba443a9"},{"version":"682f2b8fa18ca664a458af7420142e47330bee4d5ccd8f0b1397a78a64bb42ea","signature":"141aeae79e0cbd52ab21eb807520a442a539f746984d701ddea296bf1b78bb54"},{"version":"786b90eb033e8fa3f1b0d80aa6e260c37a765507f2062eae5fece27d0871b0aa","signature":"34b8ecba53a6ba9a281c2d87bd125e7e59f75f89376f74cbb7650e0f3e4ea589"},{"version":"122603f97b5fdb8e65bc04e368702c742b32366ec01a989e66de2ecf7cec7ef4","signature":"77bba43f2059b5faaa7c66c771a63f723e71655ee75a27f9adcc34291f38d4ad"},{"version":"3e346ae0a52a10eaef90a659f4af82aad13368d3a0e0c2e87711f12211ec31de","signature":"d624e71b4273da5699b7792c596689108bf271e18a4e5a0cace9ab26af23ad00"},{"version":"b9bb7165e222d121e47e79ad83308238b8ddee28fc67039e531453ba3a3e0cd9","signature":"f8a97436f3d4f188620aa3fea437bb4cbc3e2e721de39296153d8fd59222ad59"},{"version":"410dfc003d78ffa9ed87d208f1d3974e55c9260b3dd7b7e602dceca1c13cc3d2","signature":"d663f7dce02181920248634a3845e939614aec67adad586a11f6d03ae2d4c1a7"},"c561efdf5ba0b62619745d4761fe2d9756f23db972e039367d15922fed67fd2f","cc957354aa3c94c9961ebf46282cfde1e81d107fc5785a61f62c67f1dd3ac2eb","7ec238b220ea991b6643e24191b1f552a65956d5f6de4c6144e700b9985265d8","93de1c6dab503f053efe8d304cb522bb3a89feab8c98f307a674a4fae04773e9","dae3d1adc67ac3dbd1cd471889301339ec439837b5df565982345be20c8fca9a","5426e62886b7be7806312d31a00e8f7dccd6fe63ba9bbefe99ee2eab29cc48a3","7e771891adaa85b690266bc37bd6eb43bc57eecc4b54693ead36467e7369952a","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"02873d070f9cb79f50833fbf4a9a27ac578a2edf8ddb8421eba1b37faba83bfb","affectsGlobalScope":true},"21a167fec8f933752fb8157f06d28fab6817af3ad9b0bdb1908a10762391eab9",{"version":"c0db280fa6b09d7b8d6720a19a47f485956a41ee0e6914f1b704033eb69c6058","affectsGlobalScope":true},"0c0cee62cb619aed81133b904f644515ba3064487002a7da83fd8aa07b1b4abd","5a94487653355b56018122d92392beb2e5f4a6c63ba5cef83bbe1c99775ef713",{"version":"d5135ad93b33adcce80b18f8065087934cdc1730d63db58562edcf017e1aad9b","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","afcc1c426b76db7ec80e563d4fb0ba9e6bcc6e63c2d7e9342e649dc56d26347f","bb9c4ffa5e6290c6980b63c815cdd1625876dadb2efaf77edbe82984be93e55e","489532ff54b714f0e0939947a1c560e516d3ae93d51d639ab02e907a0e950114","f30bb836526d930a74593f7b0f5c1c46d10856415a8f69e5e2fc3db80371e362","14b5aa23c5d0ae1907bc696ac7b6915d88f7d85799cc0dc2dcf98fbce2c5a67c","5c439dafdc09abe4d6c260a96b822fa0ba5be7203c71a63ab1f1423cd9e838ea",{"version":"6b526a5ec4a401ca7c26cfe6a48e641d8f30af76673bad3b06a1b4504594a960","affectsGlobalScope":true},{"version":"816ad2e607a96de5bcac7d437f843f5afd8957f1fa5eefa6bba8e4ed7ca8fd84","affectsGlobalScope":true},"cec36af22f514322f870e81d30675c78df82ae8bf4863f5fd4e4424c040c678d","d903fafe96674bc0b2ac38a5be4a8fc07b14c2548d1cdb165a80ea24c44c0c54","b01a80007e448d035a16c74b5c95a5405b2e81b12fabcf18b75aa9eb9ef28990","04eb6578a588d6a46f50299b55f30e3a04ef27d0c5a46c57d8fcc211cd530faa","dbe5aa5a5dd8bd1c6a8d11b1310c3f0cdabaacc78a37b394a8c7b14faeb5fb84","2c828a5405191d006115ab34e191b8474bc6c86ffdc401d1a9864b1b6e088a58",{"version":"e8b18c6385ff784228a6f369694fcf1a6b475355ba89090a88de13587a9391d5","affectsGlobalScope":true},"d4ac44f01d42f541631c5fc88d0ed8efac29a3a3ad9a745d9fd58f8b61ed132e","7c013aa892414a7fdcfd861ae524a668eaa3ede8c7c0acafaf611948122c8d93","b0973c3cbcdc59b37bf477731d468696ecaf442593ec51bab497a613a580fe30",{"version":"4989e92ba5b69b182d2caaea6295af52b7dc73a4f7a2e336a676722884e7139d","affectsGlobalScope":true},{"version":"b3624aed92dab6da8484280d3cb3e2f4130ec3f4ef3f8201c95144ae9e898bb6","affectsGlobalScope":true},"5153a2fd150e46ce57bb3f8db1318d33f6ad3261ed70ceeff92281c0608c74a3","210d54cd652ec0fec8c8916e4af59bb341065576ecda039842f9ffb2e908507c","36b03690b628eab08703d63f04eaa89c5df202e5f1edf3989f13ad389cd2c091","0effadd232a20498b11308058e334d3339cc5bf8c4c858393e38d9d4c0013dcf","25846d43937c672bab7e8195f3d881f93495df712ee901860effc109918938cc","3163f47436da41706c6e2b3c1511f3b7cce9f9f3905b2f3e01246c48b4ba7d14","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff","69ee23dd0d215b09907ad30d23f88b7790c93329d1faf31d7835552a10cf7cbf","44b8b584a338b190a59f4f6929d072431950c7bd92ec2694821c11bce180c8a5","23b89798789dffbd437c0c423f5d02d11f9736aea73d6abf16db4f812ff36eda","213fc4f2b172d8beb74b77d7c1b41488d67348066d185e4263470cbb010cd6e8",{"version":"970a90f76d4d219ad60819d61f5994514087ba94c985647a3474a5a3d12714ed","affectsGlobalScope":true},"664d8f2d59164f2e08c543981453893bc7e003e4dfd29651ce09db13e9457980","4c8525f256873c7ba3135338c647eaf0ca7115a1a2805ae2d0056629461186ce","3c13ef48634e7b5012fcf7e8fce7496352c2d779a7201389ca96a2a81ee4314d","5d0a25ec910fa36595f85a67ac992d7a53dd4064a1ba6aea1c9f14ab73a023f2",{"version":"f0900cd5d00fe1263ff41201fb8073dbeb984397e4af3b8002a5c207a30bdc33","affectsGlobalScope":true},{"version":"f7db71191aa7aac5d6bc927ed6e7075c2763d22c7238227ec0c63c8cf5cb6a8b","affectsGlobalScope":true},"06d7c42d256f0ce6afe1b2b6cfbc97ab391f29dadb00dd0ae8e8f23f5bc916c3","ec4bd1b200670fb567920db572d6701ed42a9641d09c4ff6869768c8f81b404c","e59a892d87e72733e2a9ca21611b9beb52977be2696c7ba4b216cbbb9a48f5aa",{"version":"da26af7362f53d122283bc69fed862b9a9fe27e01bc6a69d1d682e0e5a4df3e6","affectsGlobalScope":true},"8a300fa9b698845a1f9c41ecbe2c5966634582a8e2020d51abcace9b55aa959e",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"652ee9c5103e89102d87bc20d167a02a0e3e5e53665674466c8cfea8a9e418c7","01f7828047b5c6703d3c601473618b448f5506a88fcac852638b0715c3abf4eb","6d829824ead8999f87b6df21200df3c6150391b894b4e80662caa462bd48d073","afc559c1b93df37c25aef6b3dfa2d64325b0e112e887ee18bf7e6f4ec383fc90","6fbd58e4015b9ae31ea977d4d549eb24a1102cc798b57ec5d70868b542c06612","b8a427b9fe88504a6fb092e21adfe272d144394a2ced7f9e4adc3de7efa6e216","16d51f964ec125ad2024cf03f0af444b3bc3ec3614d9345cc54d09bab45c9a4c","ba601641fac98c229ccd4a303f747de376d761babb33229bb7153bed9356c9cc",{"version":"ae3fe461989bbd951344efc1f1fe932360ce7392e6126bdb225a82a1bbaf15ee","affectsGlobalScope":true},"5b9ecf7da4d71cf3832dbb8336150fa924631811f488ad4690c2dfec2b4fb1d7","951c85f75aac041dddbedfedf565886a7b494e29ec1532e2a9b4a6180560b50e","f47887b61c6cf2f48746980390d6cb5b8013518951d912cfb37fe748071942be","15c88bfd1b8dc7231ff828ae8df5d955bae5ebca4cf2bcb417af5821e52299ae","3ebae8c00411116a66fca65b08228ea0cf0b72724701f9b854442100aab55aba","f463d61cf39c3a6a5f96cdf7adfdb72a0b1d663f7b5d5b6dd042adba835430c2","8b06ac3faeacb8484d84ddb44571d8f410697f98d7bfa86c0fda60373a9f5215","7eb06594824ada538b1d8b48c3925a83e7db792f47a081a62cf3e5c4e23cf0ee","f5638f7c2f12a9a1a57b5c41b3c1ea7db3876c003bab68e6a57afd6bcc169af0","763e521cf114b80e0dd0e21ca49b9f8ae62e8999555a5e7bade8ce36b33001c2","0d14fa22c41fdc7277e6f71473b20ebc07f40f00e38875142335d5b63cdfc9d2","3e6bbb0883148627ca0854a9f62d820aaf1a0f1842f5568176721fef156b8f23","ffcc5500e77223169833fc6eb59b3a507944a1f89574e0a1276b0ea7fc22c4a4","22f13de9e2fe5f0f4724797abd3d34a1cdd6e47ef81fc4933fea3b8bf4ad524b","e3ba509d3dce019b3190ceb2f3fc88e2610ab717122dabd91a9efaa37804040d","cda0cb09b995489b7f4c57f168cd31b83dcbaa7aad49612734fb3c9c73f6e4f2","f72f8428f3c1caa22e9c247d046603b85b442c0dae7b77a7a0bc092c18867cb7",{"version":"195f63105abc03e72b6a176e3e34dfb5ac932b55db378fdc7874b1617e24b465","affectsGlobalScope":true},"f3e604694b624fa3f83f6684185452992088f5efb2cf136b62474aa106d6f1b6","bb4ed283cfb3db7ec1d4bb79c37f5e96d39b340f1f4de995c4b0b836c8d5fa05","8841e2aa774b89bd23302dede20663306dc1b9902431ac64b24be8b8d0e3f649","209e814e8e71aec74f69686a9506dd7610b97ab59dcee9446266446f72a76d05","bb654d426b82e0846cd4bd7de91d637039ecdfd63c94447373490178f80846fe","db90f54098b237753ac9c846e39cd49aa538dcad07a2e1c68a138f3c0f8e621d","92ad68795c32309fb43576cacb38bd2677deeed38f5730dcd4a8c5e65463ae15","4b16417aab5a4b276fd4a7db95120a8c7b4d49a6d68ddfe075e9f46dcbf22f00","eecb2ea10a1500dcc6bdeff14be1fb43806f63a9b8562e16e1b4fc8baa8dfa8d","221a6ab66d611349faaf80af49c7a34d95623787610fd153fed4da0811abdcae","f3d84d6f83cf131e4db335dc8100898adbeb01dd4cf4e2fe695ab220eac98be4","6521aaade4e1d23cbc4b665083b004aeaca23f3347ba2422f88d1828968a0056","e79130cf2ba010f2b79747bf43b086252ad041b130768331a1144c0a86185877","e9709ed827c40789c669736fc78e2ab603605e8e81325d1e6d7a5eb451810dd0","dafce7a7b279977940b6b4b50017625e4f922f73094433d2875994bdc0b27e87","6fc76efbb61d3336833ef44ff3f37552667f26c2a73b368f3b4b259f19f2c234","479496e5bb48f2f5e981ef646665bc09fd9ab080e86e9ea882ca4369411604af","6c559dee3c6251c261b67df08e01d4cbc89cbd7a63300150c636705733cebfff","6fa0008bf91a4cc9c8963bace4bba0bd6865cbfa29c3e3ccc461155660fb113a","2b8264b2fefd7367e0f20e2c04eed5d3038831fe00f5efbc110ff0131aab899b","f60e3e3060207ac982da13363181fd7ee4beecc19a7c569f0d6bb034331066c2","17230b34bb564a3a2e36f9d3985372ccab4ad1722df2c43f7c5c2b553f68e5db","87ed0f84f0691d5c724b23159db96342e6b04ac69201b02c65936f4281ce1fbe","13868c5792808236b17dfe2803eafce911ea4d09d3b2fda95391891a494f988f","0dfe35191a04e8f9dc7caeb9f52f2ee07402736563d12cbccd15fb5f31ac877f","eee8abb8503852554eec94e4f77339dbe8927f5f7dfecac41d9479d64bbfc475","93c4fc5b5237c09bc9ed65cb8f0dc1d89034406ab40500b89701341994897142","9adb78bae51a473d33f40da9bdb50c0e491d1cc7a5db776665853effa0cd3374","b0d10e46cfe3f6c476b69af02eaa38e4ccc7430221ce3109ae84bb9fb8282298","77c5c7f8578d139c74102a29384f5f4f0792a12d819ddcdcaf8307185ff2d45d","70e9a18da08294f75bf23e46c7d69e67634c0765d355887b9b41f0d959e1426e","28288f5e5f8b7b895ed2abe6359c1da3e0d14a64b5aef985071285671f347c01"],"options":{"allowSyntheticDefaultImports":true,"composite":true,"declaration":true,"emitDeclarationOnly":true,"emitDecoratorMetadata":true,"esModuleInterop":true,"experimentalDecorators":true,"jsx":1,"module":1,"noImplicitAny":false,"outDir":"./dist","removeComments":true,"rootDir":"./src","skipLibCheck":true,"sourceMap":true,"strict":true,"strictPropertyInitialization":false,"target":7},"fileIdsList":[[94,146],[146],[146,173],[69,146],[68,69,70,146],[68,69,71,72,146],[77,146],[77,78,146],[94,95,96,97,98,146],[94,96,146],[146,153],[119,146,153,155],[119,146,153],[119,146],[146,154],[116,119,146,153,159,160],[146,156,160,161,164],[117,146,153],[146,168],[146,169],[146,175,178],[146,162],[146,163],[100,146],[103,146],[104,109,137,146],[105,116,117,124,134,145,146],[105,106,116,124,146],[107,146],[108,109,117,125,146],[109,134,142,146],[110,112,116,124,146],[111,146],[112,113,146],[116,146],[114,116,146],[116,117,118,134,145,146],[116,117,118,131,134,137,146],[146,150],[119,124,134,145,146],[116,117,119,120,124,134,142,145,146],[119,121,134,142,145,146],[100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152],[116,122,146],[123,145,146],[112,116,124,134,146],[125,146],[126,146],[103,127,146],[128,144,146,150],[129,146],[130,146],[116,131,132,146],[131,133,146,148],[104,116,134,135,136,137,146],[104,134,136,146],[134,135,146],[137,146],[138,146],[116,140,141,146],[140,141,146],[109,124,134,142,146],[143,146],[124,144,146],[104,119,130,145,146],[109,146],[134,146,147],[146,148],[146,149],[104,109,116,118,127,134,145,146,148,150],[134,146,151],[146,153,185,187,191,192,193,194,195,196],[134,146,153],[116,146,153,185,187,188,190,197],[116,124,134,145,146,153,184,185,186,188,189,190,197],[134,146,153,187,188],[134,146,153,187,189],[146,153,185,187,188,190,197],[134,146,153,189],[116,124,134,142,146,153,186,188,190],[116,146,153,185,187,188,189,190,197],[116,134,146,153,185,186,187,188,189,190,197],[116,134,146,153,185,187,188,190,197],[119,134,146,153,190],[116,134,142,146,153,200,201,204,205],[119,146,153,163],[116,119,121,134,142,145,146,151,153],[146,210],[146,171,177],[146,175],[146,172,176],[61,146],[146,153,201,202,203],[134,146,153,201],[146,174],[63,146],[58,59,60,64,65,66,146],[61,62,146],[57,67,74,76,85,146],[57,81,82,84,86,87,88,89,90,91,92,146],[65,67,146],[73,146],[57,63,67,73,79,81,86,146],[57,73,79,86,146],[57,80,81,146],[82,84,146],[65,67,77,88,146],[75,146],[57,63,67,75,79,81,86,146],[57,75,79,86,146],[57,81,83,146],[67,79,146],[67,85,86,146],[57,81,82,84,86,87,88,89,90,91,92],[65],[63,81],[81],[65,77]],"referencedMap":[[96,1],[94,2],[171,2],[174,3],[70,4],[72,5],[69,2],[68,2],[71,5],[73,6],[75,6],[78,7],[79,8],[77,2],[173,2],[99,9],[95,1],[97,10],[98,1],[154,11],[156,12],[155,13],[157,14],[158,15],[161,16],[165,17],[166,18],[167,2],[168,2],[169,19],[170,20],[179,21],[180,2],[181,11],[163,22],[162,23],[182,2],[183,2],[100,24],[101,24],[103,25],[104,26],[105,27],[106,28],[107,29],[108,30],[109,31],[110,32],[111,33],[112,34],[113,34],[115,35],[114,36],[116,35],[117,37],[118,38],[102,39],[152,2],[119,40],[120,41],[121,42],[153,43],[122,44],[123,45],[124,46],[125,47],[126,48],[127,49],[128,50],[129,51],[130,52],[131,53],[132,53],[133,54],[134,55],[136,56],[135,57],[137,58],[138,59],[139,2],[140,60],[141,61],[142,62],[143,63],[144,64],[145,65],[146,66],[147,67],[148,68],[149,69],[150,70],[151,71],[197,72],[184,73],[191,74],[187,75],[185,76],[188,77],[192,78],[193,74],[190,79],[189,80],[194,81],[195,82],[196,83],[186,84],[198,2],[199,2],[205,85],[206,2],[160,2],[159,2],[164,86],[207,73],[208,2],[209,87],[210,2],[211,88],[172,2],[178,89],[176,90],[177,91],[62,92],[61,2],[204,93],[201,11],[203,94],[202,11],[200,2],[175,95],[11,2],[12,2],[15,2],[14,2],[2,2],[16,2],[17,2],[18,2],[19,2],[20,2],[21,2],[22,2],[23,2],[3,2],[4,2],[27,2],[24,2],[25,2],[26,2],[28,2],[29,2],[30,2],[5,2],[31,2],[32,2],[33,2],[34,2],[6,2],[35,2],[36,2],[37,2],[38,2],[7,2],[39,2],[44,2],[45,2],[40,2],[41,2],[42,2],[43,2],[8,2],[49,2],[46,2],[47,2],[48,2],[50,2],[9,2],[51,2],[52,2],[53,2],[54,2],[55,2],[1,2],[10,2],[56,2],[13,2],[58,2],[59,2],[60,2],[64,96],[67,97],[65,96],[63,98],[66,2],[57,2],[86,99],[93,100],[87,101],[74,102],[91,103],[80,104],[82,105],[85,106],[89,107],[76,108],[92,109],[83,110],[84,111],[88,112],[81,2],[90,113]],"exportedModulesMap":[[96,1],[94,2],[171,2],[174,3],[70,4],[72,5],[69,2],[68,2],[71,5],[73,6],[75,6],[78,7],[79,8],[77,2],[173,2],[99,9],[95,1],[97,10],[98,1],[154,11],[156,12],[155,13],[157,14],[158,15],[161,16],[165,17],[166,18],[167,2],[168,2],[169,19],[170,20],[179,21],[180,2],[181,11],[163,22],[162,23],[182,2],[183,2],[100,24],[101,24],[103,25],[104,26],[105,27],[106,28],[107,29],[108,30],[109,31],[110,32],[111,33],[112,34],[113,34],[115,35],[114,36],[116,35],[117,37],[118,38],[102,39],[152,2],[119,40],[120,41],[121,42],[153,43],[122,44],[123,45],[124,46],[125,47],[126,48],[127,49],[128,50],[129,51],[130,52],[131,53],[132,53],[133,54],[134,55],[136,56],[135,57],[137,58],[138,59],[139,2],[140,60],[141,61],[142,62],[143,63],[144,64],[145,65],[146,66],[147,67],[148,68],[149,69],[150,70],[151,71],[197,72],[184,73],[191,74],[187,75],[185,76],[188,77],[192,78],[193,74],[190,79],[189,80],[194,81],[195,82],[196,83],[186,84],[198,2],[199,2],[205,85],[206,2],[160,2],[159,2],[164,86],[207,73],[208,2],[209,87],[210,2],[211,88],[172,2],[178,89],[176,90],[177,91],[62,92],[61,2],[204,93],[201,11],[203,94],[202,11],[200,2],[175,95],[11,2],[12,2],[15,2],[14,2],[2,2],[16,2],[17,2],[18,2],[19,2],[20,2],[21,2],[22,2],[23,2],[3,2],[4,2],[27,2],[24,2],[25,2],[26,2],[28,2],[29,2],[30,2],[5,2],[31,2],[32,2],[33,2],[34,2],[6,2],[35,2],[36,2],[37,2],[38,2],[7,2],[39,2],[44,2],[45,2],[40,2],[41,2],[42,2],[43,2],[8,2],[49,2],[46,2],[47,2],[48,2],[50,2],[9,2],[51,2],[52,2],[53,2],[54,2],[55,2],[1,2],[10,2],[56,2],[13,2],[58,2],[59,2],[60,2],[64,96],[67,97],[65,96],[63,98],[66,2],[93,114],[87,115],[91,116],[82,117],[85,117],[89,118],[92,116],[84,117]],"semanticDiagnosticsPerFile":[96,94,171,174,70,72,69,68,71,73,75,78,79,77,173,99,95,97,98,154,156,155,157,158,161,165,166,167,168,169,170,179,180,181,163,162,182,183,100,101,103,104,105,106,107,108,109,110,111,112,113,115,114,116,117,118,102,152,119,120,121,153,122,123,124,125,126,127,128,129,130,131,132,133,134,136,135,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,197,184,191,187,185,188,192,193,190,189,194,195,196,186,198,199,205,206,160,159,164,207,208,209,210,211,172,178,176,177,62,61,204,201,203,202,200,175,11,12,15,14,2,16,17,18,19,20,21,22,23,3,4,27,24,25,26,28,29,30,5,31,32,33,34,6,35,36,37,38,7,39,44,45,40,41,42,43,8,49,46,47,48,50,9,51,52,53,54,55,1,10,56,13,58,59,60,64,67,65,63,66,57,86,93,87,74,91,80,82,85,89,76,92,83,84,88,81,90],"latestChangedDtsFile":"./dist/random.d.ts"},"version":"4.8.4"}
1
+ {"program":{"fileNames":["../../node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/typescript/lib/lib.es2021.d.ts","../../node_modules/typescript/lib/lib.es2022.d.ts","../../node_modules/typescript/lib/lib.esnext.d.ts","../../node_modules/typescript/lib/lib.dom.d.ts","../../node_modules/typescript/lib/lib.dom.iterable.d.ts","../../node_modules/typescript/lib/lib.webworker.d.ts","../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../node_modules/typescript/lib/lib.esnext.intl.d.ts","./src/const.ts","../../node_modules/uint8arrays/types/src/compare.d.ts","../../node_modules/uint8arrays/types/src/concat.d.ts","../../node_modules/uint8arrays/types/src/equals.d.ts","../../node_modules/multiformats/types/src/bases/interface.d.ts","../../node_modules/multiformats/types/src/bases/base.d.ts","../../node_modules/uint8arrays/types/src/util/bases.d.ts","../../node_modules/uint8arrays/types/src/from-string.d.ts","../../node_modules/uint8arrays/types/src/to-string.d.ts","../../node_modules/uint8arrays/types/src/xor.d.ts","../../node_modules/uint8arrays/types/src/index.d.ts","../../node_modules/@noble/curves/abstract/utils.d.ts","../../node_modules/@noble/curves/abstract/modular.d.ts","../../node_modules/@noble/curves/abstract/curve.d.ts","../../node_modules/@noble/curves/abstract/weierstrass.d.ts","../../node_modules/@noble/curves/abstract/hash-to-curve.d.ts","../../node_modules/@noble/curves/p256.d.ts","./src/p256/encoding.ts","../../node_modules/@noble/curves/secp256k1.d.ts","./src/secp256k1/encoding.ts","../../node_modules/@noble/hashes/utils.d.ts","../../node_modules/@noble/hashes/_sha2.d.ts","../../node_modules/@noble/hashes/sha256.d.ts","./src/p256/operations.ts","./src/types.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","./src/index.ts","../../node_modules/@babel/types/lib/index.d.ts","../../node_modules/@types/babel__generator/index.d.ts","../../node_modules/@babel/parser/typings/babel-parser.d.ts","../../node_modules/@types/babel__template/index.d.ts","../../node_modules/@types/babel__traverse/index.d.ts","../../node_modules/@types/babel__core/index.d.ts","../../node_modules/@types/node/ts4.8/assert.d.ts","../../node_modules/@types/node/ts4.8/assert/strict.d.ts","../../node_modules/@types/node/ts4.8/globals.d.ts","../../node_modules/@types/node/ts4.8/async_hooks.d.ts","../../node_modules/@types/node/ts4.8/buffer.d.ts","../../node_modules/@types/node/ts4.8/child_process.d.ts","../../node_modules/@types/node/ts4.8/cluster.d.ts","../../node_modules/@types/node/ts4.8/console.d.ts","../../node_modules/@types/node/ts4.8/constants.d.ts","../../node_modules/@types/node/ts4.8/crypto.d.ts","../../node_modules/@types/node/ts4.8/dgram.d.ts","../../node_modules/@types/node/ts4.8/diagnostics_channel.d.ts","../../node_modules/@types/node/ts4.8/dns.d.ts","../../node_modules/@types/node/ts4.8/dns/promises.d.ts","../../node_modules/@types/node/ts4.8/domain.d.ts","../../node_modules/@types/node/ts4.8/dom-events.d.ts","../../node_modules/@types/node/ts4.8/events.d.ts","../../node_modules/@types/node/ts4.8/fs.d.ts","../../node_modules/@types/node/ts4.8/fs/promises.d.ts","../../node_modules/@types/node/ts4.8/http.d.ts","../../node_modules/@types/node/ts4.8/http2.d.ts","../../node_modules/@types/node/ts4.8/https.d.ts","../../node_modules/@types/node/ts4.8/inspector.d.ts","../../node_modules/@types/node/ts4.8/module.d.ts","../../node_modules/@types/node/ts4.8/net.d.ts","../../node_modules/@types/node/ts4.8/os.d.ts","../../node_modules/@types/node/ts4.8/path.d.ts","../../node_modules/@types/node/ts4.8/perf_hooks.d.ts","../../node_modules/@types/node/ts4.8/process.d.ts","../../node_modules/@types/node/ts4.8/punycode.d.ts","../../node_modules/@types/node/ts4.8/querystring.d.ts","../../node_modules/@types/node/ts4.8/readline.d.ts","../../node_modules/@types/node/ts4.8/readline/promises.d.ts","../../node_modules/@types/node/ts4.8/repl.d.ts","../../node_modules/@types/node/ts4.8/stream.d.ts","../../node_modules/@types/node/ts4.8/stream/promises.d.ts","../../node_modules/@types/node/ts4.8/stream/consumers.d.ts","../../node_modules/@types/node/ts4.8/stream/web.d.ts","../../node_modules/@types/node/ts4.8/string_decoder.d.ts","../../node_modules/@types/node/ts4.8/test.d.ts","../../node_modules/@types/node/ts4.8/timers.d.ts","../../node_modules/@types/node/ts4.8/timers/promises.d.ts","../../node_modules/@types/node/ts4.8/tls.d.ts","../../node_modules/@types/node/ts4.8/trace_events.d.ts","../../node_modules/@types/node/ts4.8/tty.d.ts","../../node_modules/@types/node/ts4.8/url.d.ts","../../node_modules/@types/node/ts4.8/util.d.ts","../../node_modules/@types/node/ts4.8/v8.d.ts","../../node_modules/@types/node/ts4.8/vm.d.ts","../../node_modules/@types/node/ts4.8/wasi.d.ts","../../node_modules/@types/node/ts4.8/worker_threads.d.ts","../../node_modules/@types/node/ts4.8/zlib.d.ts","../../node_modules/@types/node/ts4.8/globals.global.d.ts","../../node_modules/@types/node/ts4.8/index.d.ts","../../node_modules/@types/bn.js/index.d.ts","../../node_modules/@types/connect/index.d.ts","../../node_modules/@types/body-parser/index.d.ts","../../node_modules/@types/cors/index.d.ts","../../node_modules/@types/elliptic/index.d.ts","../../node_modules/@types/range-parser/index.d.ts","../../node_modules/@types/qs/index.d.ts","../../node_modules/@types/express-serve-static-core/index.d.ts","../../node_modules/@types/mime/mime.d.ts","../../node_modules/@types/mime/index.d.ts","../../node_modules/@types/serve-static/index.d.ts","../../node_modules/@types/express/index.d.ts","../../node_modules/@types/graceful-fs/index.d.ts","../../node_modules/@types/http-errors/index.d.ts","../../node_modules/@types/istanbul-lib-coverage/index.d.ts","../../node_modules/@types/istanbul-lib-report/index.d.ts","../../node_modules/@types/istanbul-reports/index.d.ts","../../node_modules/@jest/expect-utils/build/index.d.ts","../../node_modules/chalk/index.d.ts","../../node_modules/@sinclair/typebox/typebox.d.ts","../../node_modules/@jest/schemas/build/index.d.ts","../../node_modules/pretty-format/build/index.d.ts","../../node_modules/jest-diff/build/index.d.ts","../../node_modules/jest-matcher-utils/build/index.d.ts","../../node_modules/expect/build/index.d.ts","../../node_modules/@types/jest/index.d.ts","../../node_modules/@types/json-schema/index.d.ts","../../node_modules/@types/jsonwebtoken/index.d.ts","../../node_modules/@types/minimatch/index.d.ts","../../node_modules/@types/minimist/index.d.ts","../../node_modules/@types/nodemailer/lib/dkim/index.d.ts","../../node_modules/@types/nodemailer/lib/mailer/mail-message.d.ts","../../node_modules/@types/nodemailer/lib/xoauth2/index.d.ts","../../node_modules/@types/nodemailer/lib/mailer/index.d.ts","../../node_modules/@types/nodemailer/lib/mime-node/index.d.ts","../../node_modules/@types/nodemailer/lib/smtp-connection/index.d.ts","../../node_modules/@types/nodemailer/lib/shared/index.d.ts","../../node_modules/@types/nodemailer/lib/json-transport/index.d.ts","../../node_modules/@types/nodemailer/lib/sendmail-transport/index.d.ts","../../node_modules/@types/nodemailer/lib/ses-transport/index.d.ts","../../node_modules/@types/nodemailer/lib/smtp-pool/index.d.ts","../../node_modules/@types/nodemailer/lib/smtp-transport/index.d.ts","../../node_modules/@types/nodemailer/lib/stream-transport/index.d.ts","../../node_modules/@types/nodemailer/index.d.ts","../../node_modules/@types/normalize-package-data/index.d.ts","../../node_modules/@types/parse-json/index.d.ts","../../node_modules/pg-types/index.d.ts","../../node_modules/pg-protocol/dist/messages.d.ts","../../node_modules/pg-protocol/dist/serializer.d.ts","../../node_modules/pg-protocol/dist/parser.d.ts","../../node_modules/pg-protocol/dist/index.d.ts","../../node_modules/@types/pg/index.d.ts","../../node_modules/@types/prettier/index.d.ts","../../node_modules/@types/sharp/index.d.ts","../../node_modules/@types/stack-utils/index.d.ts","../../node_modules/@types/ws/index.d.ts","../../node_modules/@types/yargs-parser/index.d.ts","../../node_modules/@types/yargs/index.d.ts"],"fileInfos":[{"version":"f20c05dbfe50a208301d2a1da37b9931bce0466eb5a1f4fe240971b4ecc82b67","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","e6b724280c694a9f588847f754198fb96c43d805f065c3a5b28bbc9594541c84","1fc5ab7a764205c68fa10d381b08417795fc73111d6dd16b5b1ed36badb743d9","746d62152361558ea6d6115cf0da4dd10ede041d14882ede3568bce5dc4b4f1f","d11a03592451da2d1065e09e61f4e2a9bf68f780f4f6623c18b57816a9679d17","aea179452def8a6152f98f63b191b84e7cbd69b0e248c91e61fb2e52328abe8c",{"version":"9b087de7268e4efc5f215347a62656663933d63c0b1d7b624913240367b999ea","affectsGlobalScope":true},{"version":"3260e3386d9535b804205bdddb5618a9a27735bd22927f48ad54363abcd23d45","affectsGlobalScope":true},{"version":"adb09ec0a64fc17dbbc4a228b3b18aa5f01db3440a6b0cbb02354df58674d584","affectsGlobalScope":true},{"version":"adb996790133eb33b33aadb9c09f15c2c575e71fb57a62de8bf74dbf59ec7dfb","affectsGlobalScope":true},{"version":"8cc8c5a3bac513368b0157f3d8b31cfdcfe78b56d3724f30f80ed9715e404af8","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true},{"version":"0d5f52b3174bee6edb81260ebcd792692c32c81fd55499d69531496f3f2b25e7","affectsGlobalScope":true},{"version":"55f400eec64d17e888e278f4def2f254b41b89515d3b88ad75d5e05f019daddd","affectsGlobalScope":true},{"version":"181f1784c6c10b751631b24ce60c7f78b20665db4550b335be179217bacc0d5f","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"75ec0bdd727d887f1b79ed6619412ea72ba3c81d92d0787ccb64bab18d261f14","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"81cac4cbc92c0c839c70f8ffb94eb61e2d32dc1c3cf6d95844ca099463cf37ea","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"09aa50414b80c023553090e2f53827f007a301bc34b0495bfb2c3c08ab9ad1eb","affectsGlobalScope":true},{"version":"d7f680a43f8cd12a6b6122c07c54ba40952b0c8aa140dcfcf32eb9e6cb028596","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"775d9c9fd150d5de79e0450f35bc8b8f94ae64e3eb5da12725ff2a649dccc777","affectsGlobalScope":true},{"version":"b248e32ca52e8f5571390a4142558ae4f203ae2f94d5bac38a3084d529ef4e58","affectsGlobalScope":true},{"version":"6c55633c733c8378db65ac3da7a767c3cf2cf3057f0565a9124a16a3a2019e87","affectsGlobalScope":true},{"version":"fb4416144c1bf0323ccbc9afb0ab289c07312214e8820ad17d709498c865a3fe","affectsGlobalScope":true},{"version":"5b0ca94ec819d68d33da516306c15297acec88efeb0ae9e2b39f71dbd9685ef7","affectsGlobalScope":true},{"version":"34c839eaaa6d78c8674ae2c37af2236dee6831b13db7b4ef4df3ec889a04d4f2","affectsGlobalScope":true},{"version":"34478567f8a80171f88f2f30808beb7da15eac0538ae91282dd33dce928d98ed","affectsGlobalScope":true},{"version":"ab7d58e6161a550ff92e5aff755dc37fe896245348332cd5f1e1203479fe0ed1","affectsGlobalScope":true},{"version":"6bda95ea27a59a276e46043b7065b55bd4b316c25e70e29b572958fa77565d43","affectsGlobalScope":true},{"version":"aedb8de1abb2ff1095c153854a6df7deae4a5709c37297f9d6e9948b6806fa66","affectsGlobalScope":true},{"version":"a4da0551fd39b90ca7ce5f68fb55d4dc0c1396d589b612e1902f68ee090aaada","affectsGlobalScope":true},{"version":"11ffe3c281f375fff9ffdde8bbec7669b4dd671905509079f866f2354a788064","affectsGlobalScope":true},{"version":"52d1bb7ab7a3306fd0375c8bff560feed26ed676a5b0457fa8027b563aecb9a4","affectsGlobalScope":true},{"version":"acb3c7420b44f499700c233dbd5daba0acf98088ff6c79c25aeecb440d8df880","signature":"7f4225ba4ef73dfcf404d54f8a0561d497630c40bb19153a54dd4103b221cbbc"},"90cf3b12cd05d01c42193be1cd25af2c8dbef608ae143e5eaacf73cdb99840d2","4e37a214f2cd5a350affba5580d1d7c01ca83da6393ef2c13a66d74fc7b95eac","3157fa89ebde7e5d5499da49d8ae13e523c1de12d5c1285251c17b7672887b1e","930446bf32192f698b78f8ea4b309d8c2cfe02ab5ad78e4db907417405ebf5e7","729b819a6779d842c3a6908ba4ed93d9fe50e2533d989f05f55a4811b3dd9910","e47d9ea931ddade1deee3946884e8dc7aafbf4af74f9ecb85ef77c895100bd39","0841c3aed9354ad025302d5c7cde53916825047646e559d918b62a31500aebe7","7c515715da56f17e695e2c3611cf073d2cebfd417497652b35f9042b7235d5b2","a4942fc385f0368be5a50d7e7280c5c6ad47b082a9eaa0284042c89ce2df9e08","91072b0ddd41ce84a3c85f36cf927f2e7b1724f7ce71accf16715d99bafc113a","1253b8e9b5c56f9d301ebb1370d2bb427f66132a51e8b6716af6f665dc200c07","21920ee9ec85cc0591d16e4f45bffdcfc64b6bd62e59896036730f330e267db3","d0b3609e8e7afed0fd0570152255458407e67249b94f6603afdfd68599423f21","51f039379b8f5c5c68137e8387682982aefd8c3e4bc6d7ddfdb2c4fdd949a87a","0f4154a3ba7d3fc454ca43c94c286ef178eb21cf7e74056fd263811253ba1f6a","0abe52fb9f112becef29400328d7b18267acb82f3189ac79a514a790fc42513c",{"version":"5364d9a8ca9001bd547e6ebdbf8f4669d77fcaa915853c0f18d53b4230bb4890","signature":"2087b9fbce5341ced161726d7e6f14a6240a43e78b084ed4bd45f8d973dbae22"},"7b4d6ac7d8eeb705af896d6a0262e928a9da37853964d6200e582d9c91400dc3",{"version":"f848e2bb3ac9cd397d65b90c6d4f079bea33e9adc5eaef56941f35d83af63305","signature":"2087b9fbce5341ced161726d7e6f14a6240a43e78b084ed4bd45f8d973dbae22"},"3c3ca314a2b01902ef19b499be6e052925a849f14e2d9185afb323df3d3a72b6","1e7146a407bf85762b80681cd4aa3b544000e30c9b24d04685dfa69f82a48fd9","a3c42863fed9b49c35144d60aa0b2865b5fede65ea0050a28f45381af6dae035",{"version":"638435a8fcd108eac7a717fb79ff5a955c9db334a04b518f5722985bcbf5282e","signature":"c56176fd9f9ceeb920252ed7698e9754fae32919abfc945a750da6ce12a6ae79"},{"version":"8748195866b57fd35a9fc67f04a5086ee19e0d46f6ee197d87e77a7d475a85af","signature":"1466fadfb9e1e3a1c21d8d21870ed4fdea206d02203d456013968cd5d9ceb5ae"},{"version":"ec824e6f76dce81ea30941d11a6143a32fdce3d8a82cbf8f889c34c4874a0d0e","signature":"c9b3b9b91dee0f195301e6dd1563f4ef483a54c95aa7c3dc273f8c054d325db7"},{"version":"9f37eb594c8db551dbf57fa50166b0fd4f50dbfd876ee1d60193a238f52eac3e","signature":"c56176fd9f9ceeb920252ed7698e9754fae32919abfc945a750da6ce12a6ae79"},{"version":"d1bdab0aff5ee23ac869abce94c7389f2010f18118e979e2f8e76a38f629faa9","signature":"4ef849b6a5673975905cdb194c38961a540a52ea0e9a6111e76fc8f1301b9830"},{"version":"dba391c789c85b1d249eb24656e6524d1a0b9a203dca53848365db60a7fcc1fa","signature":"ae613f5d0a4e16b557811e7f259385d03b28c4596c38b9529e50e9b24c38f456"},{"version":"413accc9baafd139c0ef9f669294a8741781fca9caa39079ea8961686f9c24f6","signature":"516e19bd1b4cca3c9479f5f8a5ff624605f03bfe65cde232f450f68c16314f72"},{"version":"023c4d29a969c3d938c1f27b0787ce987a248180642353992730e36af657b555","signature":"643be010f5c402659d40558281e9630f1d6671f9aa3cb4ef847fb8928ba443a9"},{"version":"682f2b8fa18ca664a458af7420142e47330bee4d5ccd8f0b1397a78a64bb42ea","signature":"141aeae79e0cbd52ab21eb807520a442a539f746984d701ddea296bf1b78bb54"},{"version":"786b90eb033e8fa3f1b0d80aa6e260c37a765507f2062eae5fece27d0871b0aa","signature":"34b8ecba53a6ba9a281c2d87bd125e7e59f75f89376f74cbb7650e0f3e4ea589"},{"version":"122603f97b5fdb8e65bc04e368702c742b32366ec01a989e66de2ecf7cec7ef4","signature":"77bba43f2059b5faaa7c66c771a63f723e71655ee75a27f9adcc34291f38d4ad"},{"version":"3e346ae0a52a10eaef90a659f4af82aad13368d3a0e0c2e87711f12211ec31de","signature":"d624e71b4273da5699b7792c596689108bf271e18a4e5a0cace9ab26af23ad00"},{"version":"b9bb7165e222d121e47e79ad83308238b8ddee28fc67039e531453ba3a3e0cd9","signature":"f8a97436f3d4f188620aa3fea437bb4cbc3e2e721de39296153d8fd59222ad59"},{"version":"410dfc003d78ffa9ed87d208f1d3974e55c9260b3dd7b7e602dceca1c13cc3d2","signature":"d663f7dce02181920248634a3845e939614aec67adad586a11f6d03ae2d4c1a7"},"c561efdf5ba0b62619745d4761fe2d9756f23db972e039367d15922fed67fd2f","cc957354aa3c94c9961ebf46282cfde1e81d107fc5785a61f62c67f1dd3ac2eb","7ec238b220ea991b6643e24191b1f552a65956d5f6de4c6144e700b9985265d8","93de1c6dab503f053efe8d304cb522bb3a89feab8c98f307a674a4fae04773e9","dae3d1adc67ac3dbd1cd471889301339ec439837b5df565982345be20c8fca9a","5426e62886b7be7806312d31a00e8f7dccd6fe63ba9bbefe99ee2eab29cc48a3","7e771891adaa85b690266bc37bd6eb43bc57eecc4b54693ead36467e7369952a","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"02873d070f9cb79f50833fbf4a9a27ac578a2edf8ddb8421eba1b37faba83bfb","affectsGlobalScope":true},"21a167fec8f933752fb8157f06d28fab6817af3ad9b0bdb1908a10762391eab9",{"version":"c0db280fa6b09d7b8d6720a19a47f485956a41ee0e6914f1b704033eb69c6058","affectsGlobalScope":true},"0c0cee62cb619aed81133b904f644515ba3064487002a7da83fd8aa07b1b4abd","5a94487653355b56018122d92392beb2e5f4a6c63ba5cef83bbe1c99775ef713",{"version":"d5135ad93b33adcce80b18f8065087934cdc1730d63db58562edcf017e1aad9b","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","afcc1c426b76db7ec80e563d4fb0ba9e6bcc6e63c2d7e9342e649dc56d26347f","bb9c4ffa5e6290c6980b63c815cdd1625876dadb2efaf77edbe82984be93e55e","489532ff54b714f0e0939947a1c560e516d3ae93d51d639ab02e907a0e950114","f30bb836526d930a74593f7b0f5c1c46d10856415a8f69e5e2fc3db80371e362","14b5aa23c5d0ae1907bc696ac7b6915d88f7d85799cc0dc2dcf98fbce2c5a67c","5c439dafdc09abe4d6c260a96b822fa0ba5be7203c71a63ab1f1423cd9e838ea",{"version":"6b526a5ec4a401ca7c26cfe6a48e641d8f30af76673bad3b06a1b4504594a960","affectsGlobalScope":true},{"version":"816ad2e607a96de5bcac7d437f843f5afd8957f1fa5eefa6bba8e4ed7ca8fd84","affectsGlobalScope":true},"cec36af22f514322f870e81d30675c78df82ae8bf4863f5fd4e4424c040c678d","d903fafe96674bc0b2ac38a5be4a8fc07b14c2548d1cdb165a80ea24c44c0c54","b01a80007e448d035a16c74b5c95a5405b2e81b12fabcf18b75aa9eb9ef28990","04eb6578a588d6a46f50299b55f30e3a04ef27d0c5a46c57d8fcc211cd530faa","dbe5aa5a5dd8bd1c6a8d11b1310c3f0cdabaacc78a37b394a8c7b14faeb5fb84","2c828a5405191d006115ab34e191b8474bc6c86ffdc401d1a9864b1b6e088a58",{"version":"e8b18c6385ff784228a6f369694fcf1a6b475355ba89090a88de13587a9391d5","affectsGlobalScope":true},"d4ac44f01d42f541631c5fc88d0ed8efac29a3a3ad9a745d9fd58f8b61ed132e","7c013aa892414a7fdcfd861ae524a668eaa3ede8c7c0acafaf611948122c8d93","b0973c3cbcdc59b37bf477731d468696ecaf442593ec51bab497a613a580fe30",{"version":"4989e92ba5b69b182d2caaea6295af52b7dc73a4f7a2e336a676722884e7139d","affectsGlobalScope":true},{"version":"b3624aed92dab6da8484280d3cb3e2f4130ec3f4ef3f8201c95144ae9e898bb6","affectsGlobalScope":true},"5153a2fd150e46ce57bb3f8db1318d33f6ad3261ed70ceeff92281c0608c74a3","210d54cd652ec0fec8c8916e4af59bb341065576ecda039842f9ffb2e908507c","36b03690b628eab08703d63f04eaa89c5df202e5f1edf3989f13ad389cd2c091","0effadd232a20498b11308058e334d3339cc5bf8c4c858393e38d9d4c0013dcf","25846d43937c672bab7e8195f3d881f93495df712ee901860effc109918938cc","3163f47436da41706c6e2b3c1511f3b7cce9f9f3905b2f3e01246c48b4ba7d14","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff","69ee23dd0d215b09907ad30d23f88b7790c93329d1faf31d7835552a10cf7cbf","44b8b584a338b190a59f4f6929d072431950c7bd92ec2694821c11bce180c8a5","23b89798789dffbd437c0c423f5d02d11f9736aea73d6abf16db4f812ff36eda","213fc4f2b172d8beb74b77d7c1b41488d67348066d185e4263470cbb010cd6e8",{"version":"970a90f76d4d219ad60819d61f5994514087ba94c985647a3474a5a3d12714ed","affectsGlobalScope":true},"664d8f2d59164f2e08c543981453893bc7e003e4dfd29651ce09db13e9457980","4c8525f256873c7ba3135338c647eaf0ca7115a1a2805ae2d0056629461186ce","3c13ef48634e7b5012fcf7e8fce7496352c2d779a7201389ca96a2a81ee4314d","5d0a25ec910fa36595f85a67ac992d7a53dd4064a1ba6aea1c9f14ab73a023f2",{"version":"f0900cd5d00fe1263ff41201fb8073dbeb984397e4af3b8002a5c207a30bdc33","affectsGlobalScope":true},{"version":"f7db71191aa7aac5d6bc927ed6e7075c2763d22c7238227ec0c63c8cf5cb6a8b","affectsGlobalScope":true},"06d7c42d256f0ce6afe1b2b6cfbc97ab391f29dadb00dd0ae8e8f23f5bc916c3","ec4bd1b200670fb567920db572d6701ed42a9641d09c4ff6869768c8f81b404c","e59a892d87e72733e2a9ca21611b9beb52977be2696c7ba4b216cbbb9a48f5aa",{"version":"da26af7362f53d122283bc69fed862b9a9fe27e01bc6a69d1d682e0e5a4df3e6","affectsGlobalScope":true},"8a300fa9b698845a1f9c41ecbe2c5966634582a8e2020d51abcace9b55aa959e",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"652ee9c5103e89102d87bc20d167a02a0e3e5e53665674466c8cfea8a9e418c7","01f7828047b5c6703d3c601473618b448f5506a88fcac852638b0715c3abf4eb","6d829824ead8999f87b6df21200df3c6150391b894b4e80662caa462bd48d073","afc559c1b93df37c25aef6b3dfa2d64325b0e112e887ee18bf7e6f4ec383fc90","6fbd58e4015b9ae31ea977d4d549eb24a1102cc798b57ec5d70868b542c06612","b8a427b9fe88504a6fb092e21adfe272d144394a2ced7f9e4adc3de7efa6e216","16d51f964ec125ad2024cf03f0af444b3bc3ec3614d9345cc54d09bab45c9a4c","ba601641fac98c229ccd4a303f747de376d761babb33229bb7153bed9356c9cc",{"version":"ae3fe461989bbd951344efc1f1fe932360ce7392e6126bdb225a82a1bbaf15ee","affectsGlobalScope":true},"5b9ecf7da4d71cf3832dbb8336150fa924631811f488ad4690c2dfec2b4fb1d7","951c85f75aac041dddbedfedf565886a7b494e29ec1532e2a9b4a6180560b50e","f47887b61c6cf2f48746980390d6cb5b8013518951d912cfb37fe748071942be","15c88bfd1b8dc7231ff828ae8df5d955bae5ebca4cf2bcb417af5821e52299ae","3ebae8c00411116a66fca65b08228ea0cf0b72724701f9b854442100aab55aba","f463d61cf39c3a6a5f96cdf7adfdb72a0b1d663f7b5d5b6dd042adba835430c2","8b06ac3faeacb8484d84ddb44571d8f410697f98d7bfa86c0fda60373a9f5215","7eb06594824ada538b1d8b48c3925a83e7db792f47a081a62cf3e5c4e23cf0ee","f5638f7c2f12a9a1a57b5c41b3c1ea7db3876c003bab68e6a57afd6bcc169af0","763e521cf114b80e0dd0e21ca49b9f8ae62e8999555a5e7bade8ce36b33001c2","0d14fa22c41fdc7277e6f71473b20ebc07f40f00e38875142335d5b63cdfc9d2","3e6bbb0883148627ca0854a9f62d820aaf1a0f1842f5568176721fef156b8f23","ffcc5500e77223169833fc6eb59b3a507944a1f89574e0a1276b0ea7fc22c4a4","22f13de9e2fe5f0f4724797abd3d34a1cdd6e47ef81fc4933fea3b8bf4ad524b","e3ba509d3dce019b3190ceb2f3fc88e2610ab717122dabd91a9efaa37804040d","cda0cb09b995489b7f4c57f168cd31b83dcbaa7aad49612734fb3c9c73f6e4f2","f72f8428f3c1caa22e9c247d046603b85b442c0dae7b77a7a0bc092c18867cb7",{"version":"195f63105abc03e72b6a176e3e34dfb5ac932b55db378fdc7874b1617e24b465","affectsGlobalScope":true},"f3e604694b624fa3f83f6684185452992088f5efb2cf136b62474aa106d6f1b6","bb4ed283cfb3db7ec1d4bb79c37f5e96d39b340f1f4de995c4b0b836c8d5fa05","8841e2aa774b89bd23302dede20663306dc1b9902431ac64b24be8b8d0e3f649","209e814e8e71aec74f69686a9506dd7610b97ab59dcee9446266446f72a76d05","bb654d426b82e0846cd4bd7de91d637039ecdfd63c94447373490178f80846fe","db90f54098b237753ac9c846e39cd49aa538dcad07a2e1c68a138f3c0f8e621d","92ad68795c32309fb43576cacb38bd2677deeed38f5730dcd4a8c5e65463ae15","4b16417aab5a4b276fd4a7db95120a8c7b4d49a6d68ddfe075e9f46dcbf22f00","eecb2ea10a1500dcc6bdeff14be1fb43806f63a9b8562e16e1b4fc8baa8dfa8d","221a6ab66d611349faaf80af49c7a34d95623787610fd153fed4da0811abdcae","f3d84d6f83cf131e4db335dc8100898adbeb01dd4cf4e2fe695ab220eac98be4","6521aaade4e1d23cbc4b665083b004aeaca23f3347ba2422f88d1828968a0056","e79130cf2ba010f2b79747bf43b086252ad041b130768331a1144c0a86185877","e9709ed827c40789c669736fc78e2ab603605e8e81325d1e6d7a5eb451810dd0","dafce7a7b279977940b6b4b50017625e4f922f73094433d2875994bdc0b27e87","6fc76efbb61d3336833ef44ff3f37552667f26c2a73b368f3b4b259f19f2c234","479496e5bb48f2f5e981ef646665bc09fd9ab080e86e9ea882ca4369411604af","6c559dee3c6251c261b67df08e01d4cbc89cbd7a63300150c636705733cebfff","6fa0008bf91a4cc9c8963bace4bba0bd6865cbfa29c3e3ccc461155660fb113a","2b8264b2fefd7367e0f20e2c04eed5d3038831fe00f5efbc110ff0131aab899b","f60e3e3060207ac982da13363181fd7ee4beecc19a7c569f0d6bb034331066c2","17230b34bb564a3a2e36f9d3985372ccab4ad1722df2c43f7c5c2b553f68e5db","87ed0f84f0691d5c724b23159db96342e6b04ac69201b02c65936f4281ce1fbe","13868c5792808236b17dfe2803eafce911ea4d09d3b2fda95391891a494f988f","0dfe35191a04e8f9dc7caeb9f52f2ee07402736563d12cbccd15fb5f31ac877f","eee8abb8503852554eec94e4f77339dbe8927f5f7dfecac41d9479d64bbfc475","93c4fc5b5237c09bc9ed65cb8f0dc1d89034406ab40500b89701341994897142","9adb78bae51a473d33f40da9bdb50c0e491d1cc7a5db776665853effa0cd3374","b0d10e46cfe3f6c476b69af02eaa38e4ccc7430221ce3109ae84bb9fb8282298","77c5c7f8578d139c74102a29384f5f4f0792a12d819ddcdcaf8307185ff2d45d","70e9a18da08294f75bf23e46c7d69e67634c0765d355887b9b41f0d959e1426e","28288f5e5f8b7b895ed2abe6359c1da3e0d14a64b5aef985071285671f347c01"],"options":{"allowSyntheticDefaultImports":true,"composite":true,"declaration":true,"emitDeclarationOnly":true,"emitDecoratorMetadata":true,"esModuleInterop":true,"experimentalDecorators":true,"jsx":1,"module":1,"noImplicitAny":false,"outDir":"./dist","removeComments":true,"rootDir":"./src","skipLibCheck":true,"sourceMap":true,"strict":true,"strictPropertyInitialization":false,"target":7},"fileIdsList":[[94,146],[146],[146,173],[69,146],[68,69,70,146],[68,69,71,72,146],[77,146],[77,78,146],[94,95,96,97,98,146],[94,96,146],[146,153],[119,146,153,155],[119,146,153],[119,146],[146,154],[116,119,146,153,159,160],[146,156,160,161,164],[117,146,153],[146,168],[146,169],[146,175,178],[146,162],[146,163],[100,146],[103,146],[104,109,137,146],[105,116,117,124,134,145,146],[105,106,116,124,146],[107,146],[108,109,117,125,146],[109,134,142,146],[110,112,116,124,146],[111,146],[112,113,146],[116,146],[114,116,146],[116,117,118,134,145,146],[116,117,118,131,134,137,146],[146,150],[119,124,134,145,146],[116,117,119,120,124,134,142,145,146],[119,121,134,142,145,146],[100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152],[116,122,146],[123,145,146],[112,116,124,134,146],[125,146],[126,146],[103,127,146],[128,144,146,150],[129,146],[130,146],[116,131,132,146],[131,133,146,148],[104,116,134,135,136,137,146],[104,134,136,146],[134,135,146],[137,146],[138,146],[116,140,141,146],[140,141,146],[109,124,134,142,146],[143,146],[124,144,146],[104,119,130,145,146],[109,146],[134,146,147],[146,148],[146,149],[104,109,116,118,127,134,145,146,148,150],[134,146,151],[146,153,185,187,191,192,193,194,195,196],[134,146,153],[116,146,153,185,187,188,190,197],[116,124,134,145,146,153,184,185,186,188,189,190,197],[134,146,153,187,188],[134,146,153,187,189],[146,153,185,187,188,190,197],[134,146,153,189],[116,124,134,142,146,153,186,188,190],[116,146,153,185,187,188,189,190,197],[116,134,146,153,185,186,187,188,189,190,197],[116,134,146,153,185,187,188,190,197],[119,134,146,153,190],[116,134,142,146,153,200,201,204,205],[119,146,153,163],[116,119,121,134,142,145,146,151,153],[146,210],[146,171,177],[146,175],[146,172,176],[61,146],[146,153,201,202,203],[134,146,153,201],[146,174],[63,146],[58,59,60,64,65,66,146],[61,62,146],[57,67,74,76,85,146],[57,81,82,84,86,87,88,89,90,91,92,146],[65,67,146],[73,146],[57,63,67,73,79,81,86,146],[57,73,79,86,146],[57,80,81,146],[82,84,146],[65,67,77,88,146],[75,146],[57,63,67,75,79,81,86,146],[57,75,79,86,146],[57,81,83,146],[67,79,146],[67,85,86,146],[57,81,82,84,86,87,88,89,90,91,92],[65],[63,81],[81],[65,77]],"referencedMap":[[96,1],[94,2],[171,2],[174,3],[70,4],[72,5],[69,2],[68,2],[71,5],[73,6],[75,6],[78,7],[79,8],[77,2],[173,2],[99,9],[95,1],[97,10],[98,1],[154,11],[156,12],[155,13],[157,14],[158,15],[161,16],[165,17],[166,18],[167,2],[168,2],[169,19],[170,20],[179,21],[180,2],[181,11],[163,22],[162,23],[182,2],[183,2],[100,24],[101,24],[103,25],[104,26],[105,27],[106,28],[107,29],[108,30],[109,31],[110,32],[111,33],[112,34],[113,34],[115,35],[114,36],[116,35],[117,37],[118,38],[102,39],[152,2],[119,40],[120,41],[121,42],[153,43],[122,44],[123,45],[124,46],[125,47],[126,48],[127,49],[128,50],[129,51],[130,52],[131,53],[132,53],[133,54],[134,55],[136,56],[135,57],[137,58],[138,59],[139,2],[140,60],[141,61],[142,62],[143,63],[144,64],[145,65],[146,66],[147,67],[148,68],[149,69],[150,70],[151,71],[197,72],[184,73],[191,74],[187,75],[185,76],[188,77],[192,78],[193,74],[190,79],[189,80],[194,81],[195,82],[196,83],[186,84],[198,2],[199,2],[205,85],[206,2],[160,2],[159,2],[164,86],[207,73],[208,2],[209,87],[210,2],[211,88],[172,2],[178,89],[176,90],[177,91],[62,92],[61,2],[204,93],[201,11],[203,94],[202,11],[200,2],[175,95],[11,2],[12,2],[15,2],[14,2],[2,2],[16,2],[17,2],[18,2],[19,2],[20,2],[21,2],[22,2],[23,2],[3,2],[4,2],[27,2],[24,2],[25,2],[26,2],[28,2],[29,2],[30,2],[5,2],[31,2],[32,2],[33,2],[34,2],[6,2],[35,2],[36,2],[37,2],[38,2],[7,2],[39,2],[44,2],[45,2],[40,2],[41,2],[42,2],[43,2],[8,2],[49,2],[46,2],[47,2],[48,2],[50,2],[9,2],[51,2],[52,2],[53,2],[54,2],[55,2],[1,2],[10,2],[56,2],[13,2],[58,2],[59,2],[60,2],[64,96],[67,97],[65,96],[63,98],[66,2],[57,2],[86,99],[93,100],[87,101],[74,102],[91,103],[80,104],[82,105],[85,106],[89,107],[76,108],[92,109],[83,110],[84,111],[88,112],[81,2],[90,113]],"exportedModulesMap":[[96,1],[94,2],[171,2],[174,3],[70,4],[72,5],[69,2],[68,2],[71,5],[73,6],[75,6],[78,7],[79,8],[77,2],[173,2],[99,9],[95,1],[97,10],[98,1],[154,11],[156,12],[155,13],[157,14],[158,15],[161,16],[165,17],[166,18],[167,2],[168,2],[169,19],[170,20],[179,21],[180,2],[181,11],[163,22],[162,23],[182,2],[183,2],[100,24],[101,24],[103,25],[104,26],[105,27],[106,28],[107,29],[108,30],[109,31],[110,32],[111,33],[112,34],[113,34],[115,35],[114,36],[116,35],[117,37],[118,38],[102,39],[152,2],[119,40],[120,41],[121,42],[153,43],[122,44],[123,45],[124,46],[125,47],[126,48],[127,49],[128,50],[129,51],[130,52],[131,53],[132,53],[133,54],[134,55],[136,56],[135,57],[137,58],[138,59],[139,2],[140,60],[141,61],[142,62],[143,63],[144,64],[145,65],[146,66],[147,67],[148,68],[149,69],[150,70],[151,71],[197,72],[184,73],[191,74],[187,75],[185,76],[188,77],[192,78],[193,74],[190,79],[189,80],[194,81],[195,82],[196,83],[186,84],[198,2],[199,2],[205,85],[206,2],[160,2],[159,2],[164,86],[207,73],[208,2],[209,87],[210,2],[211,88],[172,2],[178,89],[176,90],[177,91],[62,92],[61,2],[204,93],[201,11],[203,94],[202,11],[200,2],[175,95],[11,2],[12,2],[15,2],[14,2],[2,2],[16,2],[17,2],[18,2],[19,2],[20,2],[21,2],[22,2],[23,2],[3,2],[4,2],[27,2],[24,2],[25,2],[26,2],[28,2],[29,2],[30,2],[5,2],[31,2],[32,2],[33,2],[34,2],[6,2],[35,2],[36,2],[37,2],[38,2],[7,2],[39,2],[44,2],[45,2],[40,2],[41,2],[42,2],[43,2],[8,2],[49,2],[46,2],[47,2],[48,2],[50,2],[9,2],[51,2],[52,2],[53,2],[54,2],[55,2],[1,2],[10,2],[56,2],[13,2],[58,2],[59,2],[60,2],[64,96],[67,97],[65,96],[63,98],[66,2],[93,114],[87,115],[91,116],[82,117],[85,117],[89,118],[92,116],[84,117]],"semanticDiagnosticsPerFile":[96,94,171,174,70,72,69,68,71,73,75,78,79,77,173,99,95,97,98,154,156,155,157,158,161,165,166,167,168,169,170,179,180,181,163,162,182,183,100,101,103,104,105,106,107,108,109,110,111,112,113,115,114,116,117,118,102,152,119,120,121,153,122,123,124,125,126,127,128,129,130,131,132,133,134,136,135,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,197,184,191,187,185,188,192,193,190,189,194,195,196,186,198,199,205,206,160,159,164,207,208,209,210,211,172,178,176,177,62,61,204,201,203,202,200,175,11,12,15,14,2,16,17,18,19,20,21,22,23,3,4,27,24,25,26,28,29,30,5,31,32,33,34,6,35,36,37,38,7,39,44,45,40,41,42,43,8,49,46,47,48,50,9,51,52,53,54,55,1,10,56,13,58,59,60,64,67,65,63,66,57,86,93,87,74,91,80,82,85,89,76,92,83,84,88,81,90],"latestChangedDtsFile":"./dist/did.d.ts"},"version":"4.8.4"}