PHP WebShell
Текущая директория: /usr/lib/node_modules/bitgo/node_modules/scale-ts/dist
Просмотр файла: scale-ts.mjs.map
{
"version": 3,
"sources": ["../src/internal/toInternalBytes.ts", "../src/internal/mergeUint8.ts", "../src/internal/mapObject.ts", "../src/utils.ts", "../src/codecs/fixed-width-ints.ts", "../src/codecs/bool.ts", "../src/codecs/compact.ts", "../src/codecs/str.ts", "../src/codecs/void.ts", "../src/codecs/Bytes.ts", "../src/codecs/Enum.ts", "../src/codecs/Option.ts", "../src/codecs/Result.ts", "../src/codecs/Tuple.ts", "../src/codecs/Struct.ts", "../src/codecs/Vector.ts"],
"sourcesContent": ["import { Decoder } from \"../types\"\n\n// https://jsben.ch/URe1X\nconst HEX_MAP: Record<string, number> = {\n 0: 0,\n 1: 1,\n 2: 2,\n 3: 3,\n 4: 4,\n 5: 5,\n 6: 6,\n 7: 7,\n 8: 8,\n 9: 9,\n a: 10,\n b: 11,\n c: 12,\n d: 13,\n e: 14,\n f: 15,\n A: 10,\n B: 11,\n C: 12,\n D: 13,\n E: 14,\n F: 15,\n}\nexport function fromHex(hexString: string): Uint8Array {\n const isOdd = hexString.length % 2\n /* istanbul ignore next */\n const base = (hexString[1] === \"x\" ? 2 : 0) + isOdd\n const nBytes = (hexString.length - base) / 2 + isOdd\n const bytes = new Uint8Array(nBytes)\n\n if (isOdd) bytes[0] = 0 | HEX_MAP[hexString[2]]\n\n for (let i = 0; i < nBytes; ) {\n const idx = base + i * 2\n const a = HEX_MAP[hexString[idx]]\n const b = HEX_MAP[hexString[idx + 1]]\n bytes[isOdd + i++] = (a << 4) | b\n }\n\n return bytes\n}\n\nclass InternalUint8Array extends Uint8Array {\n i: number = 0\n v: DataView\n\n constructor(buffer: ArrayBuffer) {\n super(buffer)\n this.v = new DataView(buffer)\n }\n}\n\nexport const toInternalBytes =\n <T>(fn: (input: InternalUint8Array) => T): Decoder<T> =>\n (buffer: string | ArrayBuffer | Uint8Array | InternalUint8Array) =>\n fn(\n buffer instanceof InternalUint8Array\n ? buffer\n : new InternalUint8Array(\n buffer instanceof Uint8Array\n ? buffer.buffer\n : typeof buffer === \"string\"\n ? fromHex(buffer).buffer\n : buffer,\n ),\n )\n", "export const mergeUint8 = (inputs: Array<Uint8Array>): Uint8Array => {\n const len = inputs.length\n let totalLen = 0\n for (let i = 0; i < len; i++) totalLen += inputs[i].length\n const result = new Uint8Array(totalLen)\n\n for (let idx = 0, at = 0; idx < len; idx++) {\n const current = inputs[idx]\n result.set(current, at)\n at += current.byteLength\n }\n\n return result\n}\n", "export function mapObject<K extends string | number | symbol, I, O>(\n input: Record<K, I>,\n mapper: (i: I, k: K) => O,\n): Record<K, O>\n\nexport function mapObject<K extends string | number | symbol, I, O>(\n input: Record<K, I>,\n mapper: (i: I, k?: K) => O,\n): Record<K, O> {\n const keys = Object.keys(input) as Array<K>\n const len = keys.length\n\n const result: Record<K, O> = {} as any\n for (let i = 0; i < len; i++) {\n const key = keys[i]\n result[key] = mapper(input[key], key)\n }\n\n return result\n}\n", "import type { Codec, Decoder, Encoder } from \"./types\"\nimport { toInternalBytes } from \"./internal\"\n\nexport const createDecoder: <T>(fn: (input: Uint8Array) => T) => Decoder<T> =\n toInternalBytes as any\n\nexport const createCodec = <T>(\n encoder: Encoder<T>,\n decoder: Decoder<T>,\n): Codec<T> => {\n const result = [encoder, decoder] as any\n result.enc = encoder\n result.dec = decoder\n return result\n}\n\nexport const enhanceEncoder =\n <I, O>(encoder: Encoder<I>, mapper: (value: O) => I): Encoder<O> =>\n (value) =>\n encoder(mapper(value))\n\nexport const enhanceDecoder =\n <I, O>(decoder: Decoder<I>, mapper: (value: I) => O): Decoder<O> =>\n (value) =>\n mapper(decoder(value))\n\nexport const enhanceCodec = <I, O>(\n [encoder, decoder]: Codec<I>,\n toFrom: (value: O) => I,\n fromTo: (value: I) => O,\n): Codec<O> =>\n createCodec(enhanceEncoder(encoder, toFrom), enhanceDecoder(decoder, fromTo))\n", "import { createCodec } from \"../utils\"\nimport { Codec, Decoder, Encoder } from \"../types\"\nimport { toInternalBytes } from \"../internal\"\n\nfunction decodeInt(nBytes: 8, getter: keyof DataView): Decoder<bigint>\nfunction decodeInt(nBytes: number, getter: keyof DataView): Decoder<number>\nfunction decodeInt(\n nBytes: number,\n getter: keyof DataView,\n): Decoder<number> | Decoder<bigint> {\n return toInternalBytes((bytes) => {\n const result = (bytes.v[getter] as any)(bytes.i, true) as number\n bytes.i += nBytes\n return result\n })\n}\n\nfunction encodeInt(nBytes: 8, setter: keyof DataView): Encoder<bigint>\nfunction encodeInt(nBytes: number, setter: keyof DataView): Encoder<number>\nfunction encodeInt(\n nBytes: number,\n setter: keyof DataView,\n): Encoder<number> | Encoder<bigint> {\n return (input: number | bigint) => {\n const result = new Uint8Array(nBytes)\n const dv = new DataView(result.buffer)\n ;(dv[setter] as any)(0, input, true)\n return result\n }\n}\n\nfunction intCodec(\n nBytes: 8,\n getter: keyof DataView,\n setter: keyof DataView,\n): Codec<bigint>\nfunction intCodec(\n nBytes: number,\n getter: keyof DataView,\n setter: keyof DataView,\n): Codec<number>\nfunction intCodec(\n nBytes: number,\n getter: keyof DataView,\n setter: keyof DataView,\n): Codec<bigint> | Codec<number> {\n return createCodec(encodeInt(nBytes, setter), decodeInt(nBytes, getter))\n}\n\nexport const u8 = intCodec(1, \"getUint8\", \"setUint8\")\nexport const u16 = intCodec(2, \"getUint16\", \"setUint16\")\nexport const u32 = intCodec(4, \"getUint32\", \"setUint32\")\nexport const u64 = intCodec(8, \"getBigUint64\", \"setBigUint64\")\nexport const i8 = intCodec(1, \"getInt8\", \"setInt8\")\nexport const i16 = intCodec(2, \"getInt16\", \"setInt16\")\nexport const i32 = intCodec(4, \"getInt32\", \"setInt32\")\nexport const i64 = intCodec(8, \"getBigInt64\", \"setBigInt64\")\n\nconst x128Enc: Encoder<bigint> = (value) => {\n const result = new Uint8Array(16)\n const dv = new DataView(result.buffer)\n dv.setBigInt64(0, value, true)\n dv.setBigInt64(8, value >> 64n, true)\n return result\n}\n\nconst create128Dec = (\n method: \"getBigInt64\" | \"getBigUint64\",\n): Decoder<bigint> =>\n toInternalBytes((input) => {\n const { v, i } = input\n const right = v.getBigUint64(i, true)\n const left = v[method](i + 8, true)\n input.i += 16\n return (left << 64n) | right\n })\n\nexport const u128 = createCodec(x128Enc, create128Dec(\"getBigUint64\"))\nexport const i128 = createCodec(x128Enc, create128Dec(\"getBigInt64\"))\n\nconst x256Enc: Encoder<bigint> = (value) => {\n const result = new Uint8Array(32)\n const dv = new DataView(result.buffer)\n dv.setBigInt64(0, value, true)\n dv.setBigInt64(8, value >> 64n, true)\n dv.setBigInt64(16, value >> 128n, true)\n dv.setBigInt64(24, value >> 192n, true)\n return result\n}\n\nconst create256Dec = (\n method: \"getBigInt64\" | \"getBigUint64\",\n): Decoder<bigint> =>\n toInternalBytes((input) => {\n let result = input.v.getBigUint64(input.i, true)\n input.i += 8\n\n result |= input.v.getBigUint64(input.i, true) << 64n\n input.i += 8\n\n result |= input.v.getBigUint64(input.i, true) << 128n\n input.i += 8\n\n result |= input.v[method](input.i, true) << 192n\n input.i += 8\n\n return result\n })\nexport const u256 = createCodec(x256Enc, create256Dec(\"getBigUint64\"))\nexport const i256 = createCodec(x256Enc, create256Dec(\"getBigInt64\"))\n", "import { Codec } from \"../types\"\nimport { enhanceCodec } from \"../\"\nimport { u8 } from \"./fixed-width-ints\"\n\nexport const bool: Codec<boolean> = enhanceCodec(\n u8,\n (value: boolean) => (value ? 1 : 0),\n Boolean,\n)\n", "import { createCodec } from \"../\"\nimport { mergeUint8, toInternalBytes } from \"../internal\"\nimport { u8, u16, u32, u64 } from \"./fixed-width-ints\"\nimport { Decoder, Encoder, Codec } from \"../types\"\n\nconst decoders = [u8[1], u16[1], u32[1]] as const\nconst compactDec: Decoder<number | bigint> = toInternalBytes<number | bigint>(\n (bytes) => {\n const init = bytes[bytes.i]\n\n const kind = init & 3\n if (kind < 3) return decoders[kind](bytes) >>> 2\n\n const nBytes = (init >>> 2) + 4\n bytes.i++\n\n let result = 0n\n\n const nU64 = (nBytes / 8) | 0\n let shift = 0n\n for (let i = 0; i < nU64; i++) {\n result = (u64[1](bytes) << shift) | result\n shift += 64n\n }\n\n let nReminders = nBytes % 8\n if (nReminders > 3) {\n result = (BigInt(u32[1](bytes)) << shift) | result\n shift += 32n\n nReminders -= 4\n }\n\n if (nReminders > 1) {\n result = (BigInt(u16[1](bytes)) << shift) | result\n shift += 16n\n nReminders -= 2\n }\n\n if (nReminders) result = (BigInt(u8[1](bytes)) << shift) | result\n\n return result\n },\n)\n\nconst MIN_U64 = 1n << 56n\nconst MIN_U32 = 1 << 24\nconst MIN_U16 = 256\nconst U32_MASK = 4294967295n\n\nconst SINGLE_BYTE_MODE_LIMIT = 1 << 6\nconst TWO_BYTE_MODE_LIMIT = 1 << 14\nconst FOUR_BYTE_MODE_LIMIT = 1 << 30\n\nconst compactEnc: Encoder<number | bigint> = (input) => {\n if (input < 0) throw new Error(`Wrong compact input (${input})`)\n\n const nInput = Number(input) << 2\n if (input < SINGLE_BYTE_MODE_LIMIT) return u8[0](nInput)\n if (input < TWO_BYTE_MODE_LIMIT) return u16[0](nInput | 1)\n if (input < FOUR_BYTE_MODE_LIMIT) return u32[0](nInput | 2)\n\n let buffers: Array<Uint8Array> = [new Uint8Array(1)]\n let bigValue = BigInt(input)\n while (bigValue >= MIN_U64) {\n buffers.push(u64[0](bigValue))\n bigValue >>= 64n\n }\n\n if (bigValue >= MIN_U32) {\n buffers.push(u32[0](Number(bigValue & U32_MASK)))\n bigValue >>= 32n\n }\n\n let smValue = Number(bigValue)\n if (smValue >= MIN_U16) {\n buffers.push(u16[0](smValue))\n smValue >>= 16\n }\n\n smValue && buffers.push(u8[0](smValue))\n\n const result = mergeUint8(buffers)\n result[0] = ((result.length - 5) << 2) | 3\n\n return result\n}\n\nexport const compact: Codec<number | bigint> = createCodec(\n compactEnc,\n compactDec,\n)\n", "import { createCodec, Decoder, Encoder } from \"../\"\nimport { toInternalBytes, mergeUint8 } from \"../internal\"\nimport { compact } from \"./compact\"\n\nconst textEncoder = new TextEncoder()\nconst strEnc: Encoder<string> = (str) => {\n const val = textEncoder.encode(str)\n return mergeUint8([compact.enc(val.length), val])\n}\n\nconst textDecoder = new TextDecoder()\nconst strDec: Decoder<string> = toInternalBytes((bytes) => {\n let nElements = compact.dec(bytes) as number\n const dv = new DataView(bytes.buffer, bytes.i, nElements)\n bytes.i += nElements\n return textDecoder.decode(dv)\n})\n\nexport const str = createCodec(strEnc, strDec)\n", "import { Codec } from \"../types\"\nimport { createCodec } from \"../\"\n\nconst noop = (() => {}) as () => undefined\nconst emptyArr = new Uint8Array(0)\nexport const _void: Codec<undefined> = createCodec(() => emptyArr, noop)\n", "import { Encoder, Decoder, Codec } from \"../types\"\nimport { createCodec } from \"../\"\nimport { mergeUint8, toInternalBytes } from \"../internal\"\nimport { compact } from \"./compact\"\n\nconst BytesEnc = (nBytes?: number): Encoder<Uint8Array> =>\n nBytes === undefined\n ? (bytes) => mergeUint8([compact.enc(bytes.length), bytes])\n : (bytes) => (bytes.length === nBytes ? bytes : bytes.slice(0, nBytes))\n\nconst BytesDec = (nBytes?: number): Decoder<Uint8Array> =>\n toInternalBytes((bytes) => {\n const len =\n nBytes === undefined\n ? (compact.dec(bytes) as number)\n : nBytes !== Infinity\n ? nBytes\n : bytes.byteLength - bytes.i\n\n const result = new Uint8Array(bytes.buffer.slice(bytes.i, bytes.i + len))\n bytes.i += len\n return result\n })\n\nexport const Bytes = (nBytes?: number): Codec<Uint8Array> =>\n createCodec(BytesEnc(nBytes), BytesDec(nBytes))\n\nBytes.enc = BytesEnc\nBytes.dec = BytesDec\n", "import {\n Codec,\n CodecType,\n Decoder,\n DecoderType,\n Encoder,\n EncoderType,\n StringRecord,\n} from \"../types\"\nimport { toInternalBytes, mapObject, mergeUint8 } from \"../internal\"\nimport { createCodec, u8 } from \"../\"\n\ntype Tuple<T, N extends number> = readonly [T, ...T[]] & { length: N }\n\ntype Push<T extends any[], V> = [...T, V]\n\ntype UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends (\n k: infer I,\n) => void\n ? I\n : never\n\ntype LastOf<T> = UnionToIntersection<\n T extends any ? () => T : never\n> extends () => infer R\n ? R\n : never\n\ntype TuplifyUnion<\n T,\n L = LastOf<T>,\n N = [T] extends [never] ? true : false,\n> = true extends N ? [] : Push<TuplifyUnion<Exclude<T, L>>, L>\n\ntype RestrictedLenTuple<T, O extends StringRecord<any>> = Tuple<\n T,\n TuplifyUnion<keyof O> extends Tuple<any, infer V> ? V : 0\n>\n\nconst enumEnc = <O extends StringRecord<Encoder<any>>>(\n inner: O,\n x?: RestrictedLenTuple<number, O>,\n): Encoder<\n {\n [K in keyof O]: { tag: K; value: EncoderType<O[K]> }\n }[keyof O]\n> => {\n const keys = Object.keys(inner)\n const mappedKeys = new Map<keyof O, number>(\n x?.map((actualIdx, idx) => [keys[idx], actualIdx]) ??\n keys.map((key, idx) => [key, idx]),\n )\n const getKey = (key: keyof O) => mappedKeys.get(key)!\n\n return ({ tag, value }) =>\n mergeUint8([u8.enc(getKey(tag)), (inner as any)[tag](value)])\n}\n\nconst enumDec = <O extends StringRecord<Decoder<any>>>(\n inner: O,\n x?: RestrictedLenTuple<number, O>,\n): Decoder<\n {\n [K in keyof O]: { tag: K; value: DecoderType<O[K]> }\n }[keyof O]\n> => {\n const keys = Object.keys(inner)\n const mappedKeys = new Map<number, string>(\n x?.map((actualIdx, idx) => [actualIdx, keys[idx]]) ??\n keys.map((key, idx) => [idx, key]),\n )\n\n return toInternalBytes((bytes) => {\n const idx = u8.dec(bytes)\n const tag = mappedKeys.get(idx)!\n const innerDecoder = inner[tag]\n return {\n tag,\n value: innerDecoder(bytes),\n }\n })\n}\n\nexport const Enum = <O extends StringRecord<Codec<any>>>(\n inner: O,\n ...args: [indexes?: RestrictedLenTuple<number, O>]\n): Codec<\n {\n [K in keyof O]: { tag: K; value: CodecType<O[K]> }\n }[keyof O]\n> =>\n createCodec(\n enumEnc(\n mapObject(inner, ([encoder]) => encoder) as StringRecord<\n O[keyof O][\"enc\"]\n >,\n ...(args as any[]),\n ) as Encoder<\n {\n [K in keyof O]: { tag: K; value: CodecType<O[K]> }\n }[keyof O]\n >,\n enumDec(\n mapObject(inner, ([, decoder]) => decoder) as StringRecord<\n O[keyof O][\"dec\"]\n >,\n ...(args as any[]),\n ) as Decoder<\n {\n [K in keyof O]: { tag: K; value: CodecType<O[K]> }\n }[keyof O]\n >,\n )\n\nEnum.enc = enumEnc\nEnum.dec = enumDec\n", "import { Decoder, Encoder, Codec } from \"../types\"\nimport { mergeUint8, toInternalBytes } from \"../internal\"\nimport { createCodec } from \"../utils\"\nimport { u8 } from \"./fixed-width-ints\"\n\nconst OptionDec = <T>(inner: Decoder<T>): Decoder<T | undefined> =>\n toInternalBytes<T | undefined>((bytes) =>\n u8[1](bytes) > 0 ? inner(bytes) : undefined,\n )\n\nconst OptionEnc =\n <T>(inner: Encoder<T>): Encoder<T | undefined> =>\n (value) => {\n const result = new Uint8Array(1)\n if (value === undefined) return result\n result[0] = 1\n return mergeUint8([result, inner(value)])\n }\n\nexport const Option = <T>(inner: Codec<T>): Codec<T | undefined> =>\n createCodec(OptionEnc(inner[0]), OptionDec(inner[1]))\n\nOption.enc = OptionEnc\nOption.dec = OptionDec\n", "import { createCodec } from \"../utils\"\nimport { mergeUint8, toInternalBytes } from \"../internal\"\nimport { Decoder, Encoder, Codec } from \"../types\"\nimport { u8 } from \"./fixed-width-ints\"\n\nexport type ResultPayload<OK, KO> =\n | { success: true; value: OK }\n | { success: false; value: KO }\n\nconst ResultDec = <OK, KO>(\n okDecoder: Decoder<OK>,\n koDecoder: Decoder<KO>,\n): Decoder<ResultPayload<OK, KO>> =>\n toInternalBytes((bytes) => {\n const success = u8[1](bytes) === 0\n const decoder = success ? okDecoder : koDecoder\n const value = decoder(bytes)\n return { success, value } as ResultPayload<OK, KO>\n })\n\nconst ResultEnc =\n <OK, KO>(\n okEncoder: Encoder<OK>,\n koEncoder: Encoder<KO>,\n ): Encoder<ResultPayload<OK, KO>> =>\n ({ success, value }) =>\n mergeUint8([\n u8[0](success ? 0 : 1),\n (success ? okEncoder : koEncoder)(value as any),\n ])\n\nexport const Result = <OK, KO>(\n okCodec: Codec<OK>,\n koCodec: Codec<KO>,\n): Codec<ResultPayload<OK, KO>> =>\n createCodec(\n ResultEnc(okCodec[0], koCodec[0]),\n ResultDec(okCodec[1], koCodec[1]),\n )\n\nResult.dec = ResultDec\nResult.enc = ResultEnc\n", "import { Codec, Decoder, Encoder } from \"../types\"\nimport { mergeUint8, toInternalBytes } from \"../internal\"\nimport { createCodec } from \"../utils\"\n\nconst TupleDec = <A extends Array<Decoder<any>>>(\n ...decoders: A\n): Decoder<{ [K in keyof A]: A[K] extends Decoder<infer D> ? D : unknown }> =>\n toInternalBytes((bytes) => decoders.map((decoder) => decoder(bytes)) as any)\n\nconst TupleEnc =\n <A extends Array<Encoder<any>>>(\n ...encoders: A\n ): Encoder<{ [K in keyof A]: A[K] extends Encoder<infer D> ? D : unknown }> =>\n (values) =>\n mergeUint8(encoders.map((enc, idx) => enc(values[idx])))\n\nexport const Tuple = <A extends Array<Codec<any>>>(\n ...codecs: A\n): Codec<{ [K in keyof A]: A[K] extends Codec<infer D> ? D : unknown }> =>\n createCodec(\n TupleEnc(...codecs.map(([encoder]) => encoder)),\n TupleDec(...codecs.map(([, decoder]) => decoder)),\n ) as any\n\nTuple.enc = TupleEnc\nTuple.dec = TupleDec\n", "import { mapObject } from \"../internal\"\nimport {\n Codec,\n EncoderType,\n DecoderType,\n CodecType,\n Decoder,\n Encoder,\n StringRecord,\n} from \"../types\"\nimport { createCodec, enhanceDecoder, enhanceEncoder } from \"../utils\"\nimport { Tuple } from \"./Tuple\"\n\nconst StructEnc = <A extends StringRecord<Encoder<any>>>(\n encoders: A,\n): Encoder<{ [K in keyof A]: EncoderType<A[K]> }> => {\n const keys = Object.keys(encoders)\n return enhanceEncoder(\n Tuple.enc(...Object.values(encoders)),\n (input: { [K in keyof A]: EncoderType<A[K]> }) => keys.map((k) => input[k]),\n )\n}\n\nconst StructDec = <A extends StringRecord<Decoder<any>>>(\n decoders: A,\n): Decoder<{ [K in keyof A]: DecoderType<A[K]> }> => {\n const keys = Object.keys(decoders)\n return enhanceDecoder(\n Tuple.dec(...Object.values(decoders)),\n (tuple: Array<any>) =>\n Object.fromEntries(tuple.map((value, idx) => [keys[idx], value])) as any,\n )\n}\n\nexport const Struct = <A extends StringRecord<Codec<any>>>(\n codecs: A,\n): Codec<{ [K in keyof A]: CodecType<A[K]> }> =>\n createCodec(\n StructEnc(\n mapObject(codecs, (x) => x[0]) as StringRecord<A[keyof A][0]>,\n ) as any,\n StructDec(\n mapObject(codecs, (x) => x[1]) as StringRecord<A[keyof A][1]>,\n ) as any,\n )\n\nStruct.enc = StructEnc\nStruct.dec = StructDec\n", "import { toInternalBytes, mergeUint8 } from \"../internal\"\nimport { createCodec } from \"../utils\"\nimport { Codec, Decoder, Encoder } from \"../types\"\nimport { compact } from \"./compact\"\n\nconst VectorEnc = <T>(inner: Encoder<T>, size?: number): Encoder<Array<T>> =>\n size! >= 0\n ? (value) => mergeUint8(value.map(inner))\n : (value) =>\n mergeUint8([compact.enc(value.length), mergeUint8(value.map(inner))])\n\nconst VectorDec = <T>(getter: Decoder<T>, size?: number): Decoder<Array<T>> =>\n toInternalBytes((bytes) => {\n const nElements = size! >= 0 ? size! : compact.dec(bytes)\n const result = new Array(nElements as number)\n\n for (let i = 0; i < nElements; i++) {\n result[i] = getter(bytes)\n }\n\n return result\n })\n\nexport const Vector = <T>(inner: Codec<T>, size?: number): Codec<Array<T>> =>\n createCodec(VectorEnc(inner[0], size), VectorDec(inner[1], size))\n\nVector.enc = VectorEnc\nVector.dec = VectorDec\n"],
"mappings": "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",
"names": []
}
Выполнить команду
Для локальной разработки. Не используйте в интернете!