grpc-libp2p-client 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -0
- package/dist/dc-http2/frame.cjs.js +1468 -0
- package/dist/dc-http2/frame.cjs.js.map +1 -0
- package/dist/dc-http2/frame.d.ts +34 -0
- package/dist/dc-http2/frame.esm.js +1466 -0
- package/dist/dc-http2/frame.esm.js.map +1 -0
- package/dist/dc-http2/hpack.cjs.js +1201 -0
- package/dist/dc-http2/hpack.cjs.js.map +1 -0
- package/dist/dc-http2/hpack.d.ts +45 -0
- package/dist/dc-http2/hpack.esm.js +1199 -0
- package/dist/dc-http2/hpack.esm.js.map +1 -0
- package/dist/dc-http2/parser.cjs.js +1755 -0
- package/dist/dc-http2/parser.cjs.js.map +1 -0
- package/dist/dc-http2/parser.d.ts +87 -0
- package/dist/dc-http2/parser.esm.js +1753 -0
- package/dist/dc-http2/parser.esm.js.map +1 -0
- package/dist/dc-http2/stream.cjs.js +250 -0
- package/dist/dc-http2/stream.cjs.js.map +1 -0
- package/dist/dc-http2/stream.d.ts +42 -0
- package/dist/dc-http2/stream.esm.js +248 -0
- package/dist/dc-http2/stream.esm.js.map +1 -0
- package/dist/index.cjs.js +2216 -0
- package/dist/index.cjs.js.map +1 -0
- package/dist/index.d.ts +21 -0
- package/dist/index.esm.js +2214 -0
- package/dist/index.esm.js.map +1 -0
- package/package.json +65 -0
- package/src/dc-http2/encoder.ts +79 -0
- package/src/dc-http2/frame.ts +239 -0
- package/src/dc-http2/hpack.ts +563 -0
- package/src/dc-http2/parser.ts +328 -0
- package/src/dc-http2/stream.ts +317 -0
- package/src/dc-http2/types.ts +40 -0
- package/src/index.ts +252 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":["../src/dc-http2/types.ts","../node_modules/multiformats/dist/src/bytes.js","../node_modules/multiformats/dist/src/vendor/base-x.js","../node_modules/multiformats/dist/src/bases/base.js","../node_modules/multiformats/dist/src/bases/base10.js","../node_modules/multiformats/dist/src/bases/base16.js","../node_modules/multiformats/dist/src/bases/base2.js","../node_modules/multiformats/dist/src/bases/base256emoji.js","../node_modules/multiformats/dist/src/bases/base32.js","../node_modules/multiformats/dist/src/bases/base36.js","../node_modules/multiformats/dist/src/bases/base58.js","../node_modules/multiformats/dist/src/bases/base64.js","../node_modules/multiformats/dist/src/bases/base8.js","../node_modules/multiformats/dist/src/bases/identity.js","../node_modules/multiformats/dist/src/codecs/json.js","../node_modules/multiformats/dist/src/basics.js","../node_modules/uint8arrays/dist/src/alloc.js","../node_modules/uint8arrays/dist/src/util/bases.js","../node_modules/uint8arrays/dist/src/to-string.js","../src/dc-http2/hpack.ts","../src/dc-http2/encoder.ts","../src/dc-http2/frame.ts","../src/dc-http2/parser.ts","../src/dc-http2/stream.ts","../src/index.ts"],"sourcesContent":[null,"export const empty = new Uint8Array(0);\nexport function toHex(d) {\n return d.reduce((hex, byte) => hex + byte.toString(16).padStart(2, '0'), '');\n}\nexport function fromHex(hex) {\n const hexes = hex.match(/../g);\n return hexes != null ? new Uint8Array(hexes.map(b => parseInt(b, 16))) : empty;\n}\nexport function 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}\nexport function 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}\nexport function isBinary(o) {\n return o instanceof ArrayBuffer || ArrayBuffer.isView(o);\n}\nexport function fromString(str) {\n return new TextEncoder().encode(str);\n}\nexport function toString(b) {\n return new TextDecoder().decode(b);\n}\n//# sourceMappingURL=bytes.js.map","/* eslint-disable */\n// base-x encoding / decoding\n// Copyright (c) 2018 base-x contributors\n// Copyright (c) 2014-2018 The Bitcoin Core developers (base58.cpp)\n// Distributed under the MIT software license, see the accompanying\n// file LICENSE or http://www.opensource.org/licenses/mit-license.php.\n/**\n * @param {string} ALPHABET\n * @param {any} name\n */\nfunction 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); // log(BASE) / log(256), rounded up\n var iFACTOR = Math.log(256) / Math.log(BASE); // log(256) / log(BASE), rounded up\n /**\n * @param {any[] | Iterable<number>} source\n */\n function encode(source) {\n // @ts-ignore\n if (source instanceof Uint8Array)\n ;\n else if (ArrayBuffer.isView(source)) {\n source = new Uint8Array(source.buffer, source.byteOffset, source.byteLength);\n }\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 // Skip & count leading zeroes.\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 // Allocate enough space in big-endian base58 representation.\n var size = ((pend - pbegin) * iFACTOR + 1) >>> 0;\n var b58 = new Uint8Array(size);\n // Process the bytes.\n while (pbegin !== pend) {\n var carry = source[pbegin];\n // Apply \"b58 = b58 * 256 + ch\".\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 // Skip leading zeroes in base58 result.\n var it2 = size - length;\n while (it2 !== size && b58[it2] === 0) {\n it2++;\n }\n // Translate the result into a string.\n var str = LEADER.repeat(zeroes);\n for (; it2 < size; ++it2) {\n str += ALPHABET.charAt(b58[it2]);\n }\n return str;\n }\n /**\n * @param {string | string[]} source\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 // Skip leading spaces.\n if (source[psz] === ' ') {\n return;\n }\n // Skip and count leading '1's.\n var zeroes = 0;\n var length = 0;\n while (source[psz] === LEADER) {\n zeroes++;\n psz++;\n }\n // Allocate enough space in big-endian base256 representation.\n var size = (((source.length - psz) * FACTOR) + 1) >>> 0; // log(58) / log(256), rounded up.\n var b256 = new Uint8Array(size);\n // Process the characters.\n while (source[psz]) {\n // Decode character\n var carry = BASE_MAP[source.charCodeAt(psz)];\n // Invalid character\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 // Skip trailing spaces.\n if (source[psz] === ' ') {\n return;\n }\n // Skip leading zeroes in b256.\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 /**\n * @param {string | string[]} string\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;\n//# sourceMappingURL=base-x.js.map","import { coerce } from '../bytes.js';\nimport basex from '../vendor/base-x.js';\n/**\n * Class represents both BaseEncoder and MultibaseEncoder meaning it\n * can be used to encode to multibase or base encode without multibase\n * prefix.\n */\nclass Encoder {\n name;\n prefix;\n baseEncode;\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 }\n else {\n throw Error('Unknown type, must be binary type');\n }\n }\n}\n/**\n * Class represents both BaseDecoder and MultibaseDecoder so it could be used\n * to decode multibases (with matching prefix) or just base decode strings\n * with corresponding base encoding.\n */\nclass Decoder {\n name;\n prefix;\n baseDecode;\n prefixCodePoint;\n constructor(name, prefix, baseDecode) {\n this.name = name;\n this.prefix = prefix;\n const prefixCodePoint = prefix.codePointAt(0);\n /* c8 ignore next 3 */\n if (prefixCodePoint === undefined) {\n throw new Error('Invalid prefix character');\n }\n this.prefixCodePoint = prefixCodePoint;\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 }\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 decoders;\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 != null) {\n return decoder.decode(input);\n }\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 function or(left, right) {\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n return new ComposedDecoder({\n ...(left.decoders ?? { [left.prefix]: left }),\n ...(right.decoders ?? { [right.prefix]: right })\n });\n}\nexport class Codec {\n name;\n prefix;\n baseEncode;\n baseDecode;\n encoder;\n decoder;\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 function from({ name, prefix, encode, decode }) {\n return new Codec(name, prefix, encode, decode);\n}\nexport function baseX({ name, prefix, 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}\nfunction decode(string, alphabet, bitsPerChar, name) {\n // Build the character lookup table:\n const codes = {};\n for (let i = 0; i < alphabet.length; ++i) {\n codes[alphabet[i]] = i;\n }\n // Count the padding bytes:\n let end = string.length;\n while (string[end - 1] === '=') {\n --end;\n }\n // Allocate the output:\n const out = new Uint8Array((end * bitsPerChar / 8) | 0);\n // Parse the data:\n let bits = 0; // Number of bits currently in the buffer\n let buffer = 0; // Bits waiting to be written out, MSB first\n let written = 0; // Next byte to write\n for (let i = 0; i < end; ++i) {\n // Read one character from the string:\n const value = codes[string[i]];\n if (value === undefined) {\n throw new SyntaxError(`Non-${name} character`);\n }\n // Append the bits to the buffer:\n buffer = (buffer << bitsPerChar) | value;\n bits += bitsPerChar;\n // Write out some bits if the buffer has a byte's worth:\n if (bits >= 8) {\n bits -= 8;\n out[written++] = 0xff & (buffer >> bits);\n }\n }\n // Verify that we have received just enough bits:\n if (bits >= bitsPerChar || (0xff & (buffer << (8 - bits))) !== 0) {\n throw new SyntaxError('Unexpected end of data');\n }\n return out;\n}\nfunction encode(data, alphabet, bitsPerChar) {\n const pad = alphabet[alphabet.length - 1] === '=';\n const mask = (1 << bitsPerChar) - 1;\n let out = '';\n let bits = 0; // Number of bits currently in the buffer\n let buffer = 0; // Bits waiting to be written out, MSB first\n for (let i = 0; i < data.length; ++i) {\n // Slurp data into the buffer:\n buffer = (buffer << 8) | data[i];\n bits += 8;\n // Write out as much as we can:\n while (bits > bitsPerChar) {\n bits -= bitsPerChar;\n out += alphabet[mask & (buffer >> bits)];\n }\n }\n // Partial character:\n if (bits !== 0) {\n out += alphabet[mask & (buffer << (bitsPerChar - bits))];\n }\n // Add padding characters until we hit a byte boundary:\n if (pad) {\n while (((out.length * bitsPerChar) & 7) !== 0) {\n out += '=';\n }\n }\n return out;\n}\n/**\n * RFC4648 Factory\n */\nexport function 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}\n//# sourceMappingURL=base.js.map","import { baseX } from './base.js';\nexport const base10 = baseX({\n prefix: '9',\n name: 'base10',\n alphabet: '0123456789'\n});\n//# sourceMappingURL=base10.js.map","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});\n//# sourceMappingURL=base16.js.map","import { rfc4648 } from './base.js';\nexport const base2 = rfc4648({\n prefix: '0',\n name: 'base2',\n alphabet: '01',\n bitsPerChar: 1\n});\n//# sourceMappingURL=base2.js.map","import { from } from './base.js';\nconst alphabet = Array.from('๐๐ชโ๐ฐ๐๐๐๐๐๐๐๐๐๐๐๐๐โ๐ป๐ฅ๐พ๐ฟ๐โค๐๐คฃ๐๐๐๐ญ๐๐๐
๐๐๐ฅ๐ฅฐ๐๐๐๐ข๐ค๐๐๐ช๐โบ๐๐ค๐๐๐๐๐น๐คฆ๐๐โโจ๐คท๐ฑ๐๐ธ๐๐๐๐๐๐๐๐๐คฉ๐๐๐ค๐๐ฏ๐๐๐ถ๐๐คญโฃ๐๐๐๐ช๐๐ฅ๐๐๐ฉ๐ก๐คช๐๐ฅณ๐ฅ๐คค๐๐๐ณโ๐๐๐ด๐๐ฌ๐๐๐ท๐ป๐โญโ
๐ฅบ๐๐๐ค๐ฆโ๐ฃ๐๐โน๐๐๐ โ๐๐บ๐๐ป๐๐๐๐๐น๐ฃ๐ซ๐๐๐ต๐ค๐๐ด๐ค๐ผ๐ซโฝ๐คโ๐๐คซ๐๐ฎ๐๐ป๐๐ถ๐๐ฒ๐ฟ๐งก๐โก๐๐โโ๐๐ฐ๐คจ๐ถ๐ค๐ถ๐ฐ๐๐ข๐ค๐๐จ๐จ๐คฌโ๐๐บ๐ค๐๐๐ฑ๐๐ถ๐ฅดโถโกโ๐๐ธโฌ๐จ๐๐ฆ๐ท๐บโ ๐
๐๐ต๐๐คฒ๐ค ๐คง๐๐ต๐
๐ง๐พ๐๐๐ค๐๐คฏ๐ทโ๐ง๐ฏ๐๐๐ค๐๐โ๐ด๐ฃ๐ธ๐๐๐ฅ๐คข๐
๐ก๐ฉ๐๐ธ๐ป๐ค๐คฎ๐ผ๐ฅต๐ฉ๐๐๐ผ๐๐ฃ๐ฅ');\nconst alphabetBytesToChars = (alphabet.reduce((p, c, i) => { p[i] = c; return p; }, ([])));\nconst alphabetCharsToBytes = (alphabet.reduce((p, c, i) => {\n const codePoint = c.codePointAt(0);\n if (codePoint == null) {\n throw new Error(`Invalid character: ${c}`);\n }\n p[codePoint] = 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 codePoint = char.codePointAt(0);\n if (codePoint == null) {\n throw new Error(`Invalid character: ${char}`);\n }\n const byt = alphabetCharsToBytes[codePoint];\n if (byt == null) {\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: '๐',\n name: 'base256emoji',\n encode,\n decode\n});\n//# sourceMappingURL=base256emoji.js.map","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});\n//# sourceMappingURL=base32.js.map","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});\n//# sourceMappingURL=base36.js.map","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});\n//# sourceMappingURL=base58.js.map","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});\n//# sourceMappingURL=base64.js.map","import { rfc4648 } from './base.js';\nexport const base8 = rfc4648({\n prefix: '7',\n name: 'base8',\n alphabet: '01234567',\n bitsPerChar: 3\n});\n//# sourceMappingURL=base8.js.map","import { fromString, toString } from '../bytes.js';\nimport { from } from './base.js';\nexport const identity = from({\n prefix: '\\x00',\n name: 'identity',\n encode: (buf) => toString(buf),\n decode: (str) => fromString(str)\n});\n//# sourceMappingURL=identity.js.map","const textEncoder = new TextEncoder();\nconst textDecoder = new TextDecoder();\nexport const name = 'json';\nexport const code = 0x0200;\nexport function encode(node) {\n return textEncoder.encode(JSON.stringify(node));\n}\nexport function decode(data) {\n return JSON.parse(textDecoder.decode(data));\n}\n//# sourceMappingURL=json.js.map","import * as base10 from './bases/base10.js';\nimport * as base16 from './bases/base16.js';\nimport * as base2 from './bases/base2.js';\nimport * as base256emoji from './bases/base256emoji.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 base8 from './bases/base8.js';\nimport * as identityBase from './bases/identity.js';\nimport * as json from './codecs/json.js';\nimport * as raw from './codecs/raw.js';\nimport * as identity from './hashes/identity.js';\nimport * as sha2 from './hashes/sha2.js';\nimport { CID, hasher, digest, varint, bytes } from './index.js';\nexport const bases = { ...identityBase, ...base2, ...base8, ...base10, ...base16, ...base32, ...base36, ...base58, ...base64, ...base256emoji };\nexport const hashes = { ...sha2, ...identity };\nexport const codecs = { raw, json };\nexport { CID, hasher, digest, varint, bytes };\n//# sourceMappingURL=basics.js.map","/**\n * Returns a `Uint8Array` of the requested size. Referenced memory will\n * be initialized to 0.\n */\nexport function alloc(size = 0) {\n return new Uint8Array(size);\n}\n/**\n * Where possible returns a Uint8Array of the requested size that references\n * uninitialized memory. Only use if you are certain you will immediately\n * overwrite every value in the returned `Uint8Array`.\n */\nexport function allocUnsafe(size = 0) {\n return new Uint8Array(size);\n}\n//# sourceMappingURL=alloc.js.map","import { bases } from 'multiformats/basics';\nimport { allocUnsafe } from '#alloc';\nfunction createCodec(name, prefix, encode, decode) {\n return {\n name,\n prefix,\n encoder: {\n name,\n prefix,\n encode\n },\n decoder: {\n decode\n }\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 = allocUnsafe(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,\n binary: ascii,\n ...bases\n};\nexport default BASES;\n//# sourceMappingURL=bases.js.map","import bases, {} from './util/bases.js';\n/**\n * Turns a `Uint8Array` into a string.\n *\n * Supports `utf8`, `utf-8` and any encoding supported by the multibase module.\n *\n * Also `ascii` which is similar to node's 'binary' encoding.\n */\nexport function toString(array, encoding = 'utf8') {\n const base = bases[encoding];\n if (base == null) {\n throw new Error(`Unsupported encoding \"${encoding}\"`);\n }\n // strip multibase prefix\n return base.encoder.encode(array).substring(1);\n}\n//# sourceMappingURL=to-string.js.map",null,null,null,null,null,null],"names":["toString","basex","decode","encode","base2","base8","base10","base16","base32","base36","base64","base256emoji","bases","uint8ArrayToString"],"mappings":"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EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9D,gBAAA,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AACtD,gBAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE;AACjD,gBAAA,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC/C,gBAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;AAClD,gBAAA,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC/C,gBAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AACnD,gBAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9D,gBAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9D,gBAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9D,gBAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9D,gBAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9D,gBAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9D,gBAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9D,gBAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EA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","x_google_ignoreList":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18]}
|
package/package.json
ADDED
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "grpc-libp2p-client",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"description": "grpc-libp2p-client",
|
|
6
|
+
"main": "./dist/index.cjs.js",
|
|
7
|
+
"module": "./dist/index.esm.js",
|
|
8
|
+
"types": "./dist/index.d.ts",
|
|
9
|
+
"exports": {
|
|
10
|
+
".": {
|
|
11
|
+
"import": "./dist/index.esm.js",
|
|
12
|
+
"require": "./dist/index.cjs.js",
|
|
13
|
+
"types": "./dist/index.d.ts"
|
|
14
|
+
},
|
|
15
|
+
"./dc-http2/stream": {
|
|
16
|
+
"import": "./dist/dc-http2/stream.esm.js",
|
|
17
|
+
"require": "./dist/dc-http2/stream.cjs.js",
|
|
18
|
+
"types": "./dist/dc-http2/stream.d.ts"
|
|
19
|
+
},
|
|
20
|
+
"./dc-http2/frame": {
|
|
21
|
+
"import": "./dist/dc-http2/frame.esm.js",
|
|
22
|
+
"require": "./dist/dc-http2/frame.cjs.js",
|
|
23
|
+
"types": "./dist/dc-http2/frame.d.ts"
|
|
24
|
+
},
|
|
25
|
+
"./dc-http2/parser": {
|
|
26
|
+
"import": "./dist/dc-http2/parser.esm.js",
|
|
27
|
+
"require": "./dist/dc-http2/parser.cjs.js",
|
|
28
|
+
"types": "./dist/dc-http2/parser.d.ts"
|
|
29
|
+
},
|
|
30
|
+
"./dc-http2/hpack": {
|
|
31
|
+
"import": "./dist/dc-http2/hpack.esm.js",
|
|
32
|
+
"require": "./dist/dc-http2/hpack.cjs.js",
|
|
33
|
+
"types": "./dist/dc-http2/hpack.d.ts"
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
"files": [
|
|
37
|
+
"dist",
|
|
38
|
+
"src"
|
|
39
|
+
],
|
|
40
|
+
"scripts": {
|
|
41
|
+
"build:w": "rollup -c -w",
|
|
42
|
+
"build": "rollup -c",
|
|
43
|
+
"test": "echo \"Error: no test specified\" && exit 1",
|
|
44
|
+
"dev": "nodemon --watch ./ --ext ts,tsx,js,jsx,json --ignore 'src/**/*.test.ts' --exec 'npx yalc push'"
|
|
45
|
+
},
|
|
46
|
+
"author": "",
|
|
47
|
+
"license": "ISC",
|
|
48
|
+
"dependencies": {
|
|
49
|
+
"@libp2p/interface": "^2.9.0",
|
|
50
|
+
"it-pipe": "^3.0.1",
|
|
51
|
+
"it-pushable": "^3.2.3",
|
|
52
|
+
"libp2p": "^2.8.1",
|
|
53
|
+
"@multiformats/multiaddr": "^12.4.0"
|
|
54
|
+
},
|
|
55
|
+
"devDependencies": {
|
|
56
|
+
"@rollup/plugin-commonjs": "^28.0.3",
|
|
57
|
+
"@rollup/plugin-json": "^6.1.0",
|
|
58
|
+
"@rollup/plugin-node-resolve": "^16.0.1",
|
|
59
|
+
"@rollup/plugin-typescript": "^12.1.2",
|
|
60
|
+
"nodemon": "^3.1.9",
|
|
61
|
+
"rollup-plugin-dts": "^6.2.1",
|
|
62
|
+
"tslib": "^2.8.1",
|
|
63
|
+
"typescript": "^5.8.3"
|
|
64
|
+
}
|
|
65
|
+
}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import type { FrameHeader,Frame,FrameSettingPayload } from './types';
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class FrameEncoder {
|
|
5
|
+
// ็ผ็ SETTINGSๅธง
|
|
6
|
+
static encodeSettingsFrame(frame:Frame):Uint8Array {
|
|
7
|
+
// ่ฎก็ฎpayloadๆป้ฟๅบฆ๏ผๆฏไธช่ฎพ็ฝฎ้กนๅ 6ๅญ่
|
|
8
|
+
const payloadLength = frame.payload.length * 6;
|
|
9
|
+
// ๅ้
็ผๅฒๅบ๏ผ9ๅญ่ๅคด้จ + payload้ฟๅบฆ
|
|
10
|
+
const buffer = new Uint8Array(9 + payloadLength);
|
|
11
|
+
// ็ผ็ ๅธงๅคด้จ๏ผๅ9ไธชๅญ่๏ผ
|
|
12
|
+
_encodeFrameHeader(buffer, {
|
|
13
|
+
length: payloadLength,
|
|
14
|
+
type: frame.type,
|
|
15
|
+
flags: frame.flags,
|
|
16
|
+
streamId: frame.streamId
|
|
17
|
+
});
|
|
18
|
+
// ็ผ็ payload
|
|
19
|
+
_encodeSettingsPayload(buffer, frame.payload);
|
|
20
|
+
return buffer;
|
|
21
|
+
}
|
|
22
|
+
// ็ผ็ SETTINGS ACKๅธง
|
|
23
|
+
static encodeSettingsAckFrame():Uint8Array {
|
|
24
|
+
const buffer = new Uint8Array(9); // ACKๅธงๅชๆๅคด้จ
|
|
25
|
+
_encodeFrameHeader(buffer, {
|
|
26
|
+
length: 0,
|
|
27
|
+
type: 0x4, // SETTINGS
|
|
28
|
+
flags: 0x1, // ACK
|
|
29
|
+
streamId: 0
|
|
30
|
+
});
|
|
31
|
+
return buffer;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
// ็ผ็ ๅธงๅคด้จ๏ผ9ๅญ่๏ผ
|
|
36
|
+
function _encodeFrameHeader(buffer:Uint8Array, header:FrameHeader) {
|
|
37
|
+
// Length: 3 bytes
|
|
38
|
+
const length = header.length ?? 0;
|
|
39
|
+
buffer[0] = (length >> 16) & 0xFF;
|
|
40
|
+
buffer[1] = (length >> 8) & 0xFF;
|
|
41
|
+
buffer[2] = length & 0xFF;
|
|
42
|
+
// Type: 1 byte
|
|
43
|
+
buffer[3] = header.type;
|
|
44
|
+
// Flags: 1 byte
|
|
45
|
+
buffer[4] = header.flags;
|
|
46
|
+
// Stream Identifier: 4 bytes
|
|
47
|
+
_writeUInt32BE(buffer, header.streamId & 0x7FFFFFFF, 5);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
// ็ผ็ SETTINGS payload
|
|
51
|
+
function _encodeSettingsPayload(buffer:Uint8Array, payload:FrameSettingPayload) {
|
|
52
|
+
let offset = 9; // ไป็ฌฌ9ไธชๅญ่ๅผๅง
|
|
53
|
+
payload.forEach(setting => {
|
|
54
|
+
// ๅๅ
ฅ2ๅญ่็ๆ ่ฏ็ฌฆ
|
|
55
|
+
_writeUInt16BE(buffer, setting.identifier, offset);
|
|
56
|
+
offset += 2;
|
|
57
|
+
// ๅๅ
ฅ4ๅญ่็ๅผ
|
|
58
|
+
_writeUInt32BE(buffer, setting.value, offset);
|
|
59
|
+
offset += 4;
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
// ๅๅ
ฅ16ไฝๆ ็ฌฆๅทๆดๆฐ๏ผๅคง็ซฏๅบ๏ผ
|
|
64
|
+
function _writeUInt16BE(buffer:Uint8Array, value:number, offset:number ) {
|
|
65
|
+
buffer[offset] = (value >> 8) & 0xFF;
|
|
66
|
+
buffer[offset + 1] = value & 0xFF;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
// ๅๅ
ฅ32ไฝๆ ็ฌฆๅทๆดๆฐ๏ผๅคง็ซฏๅบ๏ผ
|
|
70
|
+
function _writeUInt32BE(buffer:Uint8Array, value:number, offset:number) {
|
|
71
|
+
buffer[offset] = (value >> 24) & 0xFF;
|
|
72
|
+
buffer[offset + 1] = (value >> 16) & 0xFF;
|
|
73
|
+
buffer[offset + 2] = (value >> 8) & 0xFF;
|
|
74
|
+
buffer[offset + 3] = value & 0xFF;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
export {FrameEncoder};
|
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
import { HPACK } from './hpack'
|
|
2
|
+
import type {Byte,Frame,FrameSettingPayload} from './types'
|
|
3
|
+
import {FrameEncoder} from './encoder'
|
|
4
|
+
|
|
5
|
+
const SETTINGS_PARAMETERS = {
|
|
6
|
+
HEADER_TABLE_SIZE: 0x1,
|
|
7
|
+
ENABLE_PUSH: 0x2,
|
|
8
|
+
MAX_CONCURRENT_STREAMS: 0x3,
|
|
9
|
+
INITIAL_WINDOW_SIZE: 0x4,
|
|
10
|
+
MAX_FRAME_SIZE: 0x5,
|
|
11
|
+
MAX_HEADER_LIST_SIZE: 0x6
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
const defaultSettings = {
|
|
15
|
+
[SETTINGS_PARAMETERS.HEADER_TABLE_SIZE]: 4096,
|
|
16
|
+
[SETTINGS_PARAMETERS.ENABLE_PUSH]: 1,
|
|
17
|
+
[SETTINGS_PARAMETERS.MAX_CONCURRENT_STREAMS]: 100,
|
|
18
|
+
[SETTINGS_PARAMETERS.INITIAL_WINDOW_SIZE]: 4<<20,
|
|
19
|
+
[SETTINGS_PARAMETERS.MAX_FRAME_SIZE]:4<<20 , // 4MB
|
|
20
|
+
[SETTINGS_PARAMETERS.MAX_HEADER_LIST_SIZE]: 8192
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
const HTTP2_PREFACE = 'PRI * HTTP/2.0\r\n\r\nSM\r\n\r\n'
|
|
24
|
+
|
|
25
|
+
export class Http2Frame {
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
// ๅๅปบๅนถ็ผ็ PREFACEๅธง
|
|
30
|
+
static createPreface():Uint8Array {
|
|
31
|
+
return new TextEncoder().encode(HTTP2_PREFACE);
|
|
32
|
+
}
|
|
33
|
+
static createPongFrame(payload:Uint8Array):Uint8Array {
|
|
34
|
+
return Http2Frame.createFrame(0x6, 0x1, 0, payload)
|
|
35
|
+
}
|
|
36
|
+
// ๅๅปบๅนถ็ผ็ SETTINGSๅธง
|
|
37
|
+
static createSettingsFrame(settings = {}) {
|
|
38
|
+
// ๅ
ๅๅปบๅธงๅฏน่ฑก
|
|
39
|
+
const frame = Http2Frame.createOriginSettingsFrame(settings);
|
|
40
|
+
// ็ถๅ็ผ็
|
|
41
|
+
return FrameEncoder.encodeSettingsFrame(frame);
|
|
42
|
+
}
|
|
43
|
+
// ๅๅปบๅนถ็ผ็ SETTINGS ACKๅธง
|
|
44
|
+
static createSettingsAckFrame() {
|
|
45
|
+
return FrameEncoder.encodeSettingsAckFrame();
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
static createDataFrames(streamId: number, data: Uint8Array,shouldEnd: boolean = false, maxFrameSize: number = 1024): Uint8Array[] {
|
|
50
|
+
const frames: Uint8Array[] = [];
|
|
51
|
+
let offset = 0;
|
|
52
|
+
|
|
53
|
+
while (offset < data.length) {
|
|
54
|
+
const chunkSize = Math.min(maxFrameSize, data.length - offset);
|
|
55
|
+
const chunk = data.slice(offset, offset + chunkSize);
|
|
56
|
+
let isEndStream = shouldEnd && (offset + chunkSize >= data.length); // ๆๅไธๅธง่ฎพ็ฝฎ END_STREAM
|
|
57
|
+
const frame = Http2Frame.createDataFrame(streamId, chunk, isEndStream);
|
|
58
|
+
frames.push(frame);
|
|
59
|
+
offset += chunkSize;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
return frames;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
static createDataFrame( streamId:number,data:Uint8Array,endStream:boolean = true):Uint8Array {
|
|
66
|
+
// gRPC ๆถๆฏๆ ผๅผ: ๅ็ผฉๆ ๅฟ(1ๅญ่) + ๆถๆฏ้ฟๅบฆ(4ๅญ่) + ๆถๆฏๅ
ๅฎน
|
|
67
|
+
const messageLen = data.length
|
|
68
|
+
const framedData = new Uint8Array(5+messageLen)
|
|
69
|
+
|
|
70
|
+
// Compression flag (0 = ไธๅ็ผฉ)
|
|
71
|
+
framedData[0] = 0
|
|
72
|
+
|
|
73
|
+
// Message length (4 bytes)
|
|
74
|
+
framedData[1] = (messageLen >> 24) & 0xFF
|
|
75
|
+
framedData[2] = (messageLen >> 16) & 0xFF
|
|
76
|
+
framedData[3] = (messageLen >> 8) & 0xFF
|
|
77
|
+
framedData[4] = messageLen & 0xFF
|
|
78
|
+
|
|
79
|
+
// Message content
|
|
80
|
+
framedData.set(data, 5)
|
|
81
|
+
|
|
82
|
+
const flags = endStream ? 0x01 : 0x0 // END_STREAM flag
|
|
83
|
+
return Http2Frame.createFrame(0x0, flags, streamId, framedData)
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
static createHeadersFrame(streamId:number,path:string, endHeaders:boolean = true,token?:string):Uint8Array {
|
|
87
|
+
// gRPC-Web ้่ฆ็ๆ ๅ headers
|
|
88
|
+
const headersList: { [key: string]: string } = {
|
|
89
|
+
':path': path,
|
|
90
|
+
':method': 'POST',
|
|
91
|
+
':scheme': 'http',
|
|
92
|
+
':authority': 'localhost',
|
|
93
|
+
'content-type': 'application/grpc+proto',
|
|
94
|
+
'user-agent': 'grpc-web-client/0.1',
|
|
95
|
+
'accept': 'application/grpc+proto',
|
|
96
|
+
'grpc-timeout': '20S'
|
|
97
|
+
};
|
|
98
|
+
if (token) {
|
|
99
|
+
headersList['authorization'] = `Bearer ${token}`
|
|
100
|
+
}
|
|
101
|
+
// ๅฐ headers ็ผ็ ไธบ HPACK ๆ ผๅผ
|
|
102
|
+
const hpack = new HPACK();
|
|
103
|
+
const encodedHeaders = hpack.encode(headersList);
|
|
104
|
+
console.log('Encoded:', encodedHeaders);
|
|
105
|
+
// HEADERS frame flags: END_HEADERS | END_STREAM
|
|
106
|
+
const flags = endHeaders ? 0x04 : 0x00
|
|
107
|
+
return Http2Frame.createFrame(0x01, flags, streamId, encodedHeaders)
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
static createResponseHeadersFrame(streamId:number,headersList:{ [key: string]: string }, endHeaders:boolean = true):Uint8Array {
|
|
111
|
+
// ๅฐ headers ็ผ็ ไธบ HPACK ๆ ผๅผ
|
|
112
|
+
const hpack = new HPACK();
|
|
113
|
+
const encodedHeaders = hpack.encode(headersList);
|
|
114
|
+
console.log('Encoded:', encodedHeaders);
|
|
115
|
+
// HEADERS frame flags: END_HEADERS | END_STREAM
|
|
116
|
+
const flags = endHeaders ? 0x04 : 0x00
|
|
117
|
+
return Http2Frame.createFrame(0x01, flags, streamId, encodedHeaders)
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
static createTrailersFrame(streamId: number, trailers: { [key: string]: string }): Uint8Array {
|
|
122
|
+
// ๅฐ trailers ็ผ็ ไธบ HPACK ๆ ผๅผ
|
|
123
|
+
const hpack = new HPACK();
|
|
124
|
+
const encodedTrailers = hpack.encode(trailers);
|
|
125
|
+
|
|
126
|
+
// HEADERS frame flags: END_HEADERS | END_STREAM
|
|
127
|
+
const flags = 0x05; // 0x04 (END_HEADERS) | 0x01 (END_STREAM)
|
|
128
|
+
return Http2Frame.createFrame(0x01, flags, streamId, encodedTrailers);
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
// ๅๅปบ SETTINGS ๅธง
|
|
133
|
+
static createOriginSettingsFrame(settings = {}):Frame {
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
// ๅๅนถ้ป่ฎคๅผๅ็จๆทๆไพ็่ฎพ็ฝฎ
|
|
137
|
+
const finalSettings = { ...defaultSettings, ...settings };
|
|
138
|
+
// ้ช่ฏ่ฎพ็ฝฎๅผ
|
|
139
|
+
_validateSettings(finalSettings);
|
|
140
|
+
// ๅๅปบๅธง
|
|
141
|
+
const frame = {
|
|
142
|
+
type: 0x4, // SETTINGS frame type
|
|
143
|
+
flags: 0x0, // ๆ ๆ ๅฟ
|
|
144
|
+
streamId: 0, // SETTINGS ๆปๆฏๅจ stream 0 ไธๅ้
|
|
145
|
+
payload: _createPayload(finalSettings)
|
|
146
|
+
};
|
|
147
|
+
return frame;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
// ๅๅปบ็กฎ่ฎคๅธง๏ผSETTINGS ACK๏ผ
|
|
151
|
+
static createOriginSettingsAckFrame() {
|
|
152
|
+
return {
|
|
153
|
+
type: 0x4, // SETTINGS frame type
|
|
154
|
+
flags: 0x1, // ACK flag
|
|
155
|
+
streamId: 0,
|
|
156
|
+
payload: [] // ACK ๅธงๆฒกๆpayload
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
static createFrame(type:Byte, flags:Byte, streamId:number, payload:Uint8Array):Uint8Array {
|
|
161
|
+
const length = payload ? payload.length : 0
|
|
162
|
+
const frame = new Uint8Array(9 + length) // 9 bytes for header + payload
|
|
163
|
+
|
|
164
|
+
// Length (24 bits)
|
|
165
|
+
frame[0] = (length >> 16) & 0xFF
|
|
166
|
+
frame[1] = (length >> 8) & 0xFF
|
|
167
|
+
frame[2] = length & 0xFF
|
|
168
|
+
|
|
169
|
+
// Type (8 bits)
|
|
170
|
+
frame[3] = type
|
|
171
|
+
|
|
172
|
+
// Flags (8 bits)
|
|
173
|
+
frame[4] = flags
|
|
174
|
+
|
|
175
|
+
// Stream Identifier (32 bits)
|
|
176
|
+
frame[5] = (streamId >> 24) & 0xFF
|
|
177
|
+
frame[6] = (streamId >> 16) & 0xFF
|
|
178
|
+
frame[7] = (streamId >> 8) & 0xFF
|
|
179
|
+
frame[8] = streamId & 0xFF
|
|
180
|
+
|
|
181
|
+
if (payload && length > 0) {
|
|
182
|
+
frame.set(payload, 9)
|
|
183
|
+
}
|
|
184
|
+
return frame
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
// ้ช่ฏ่ฎพ็ฝฎๅผ
|
|
189
|
+
function _validateSettings(settings: { [key: Byte]: number }) {
|
|
190
|
+
for (const [id, value] of Object.entries(settings)) {
|
|
191
|
+
switch (Number(id)) {
|
|
192
|
+
case SETTINGS_PARAMETERS.HEADER_TABLE_SIZE:
|
|
193
|
+
if (value < 0) {
|
|
194
|
+
throw new Error('HEADER_TABLE_SIZE must be non-negative');
|
|
195
|
+
}
|
|
196
|
+
break;
|
|
197
|
+
|
|
198
|
+
case SETTINGS_PARAMETERS.ENABLE_PUSH:
|
|
199
|
+
if (value !== 0 && value !== 1) {
|
|
200
|
+
throw new Error('ENABLE_PUSH must be 0 or 1');
|
|
201
|
+
}
|
|
202
|
+
break;
|
|
203
|
+
|
|
204
|
+
case SETTINGS_PARAMETERS.INITIAL_WINDOW_SIZE:
|
|
205
|
+
if (value < 0 || value > 2147483647) { // 2^31 - 1
|
|
206
|
+
throw new Error('INITIAL_WINDOW_SIZE must be between 0 and 2^31-1');
|
|
207
|
+
}
|
|
208
|
+
break;
|
|
209
|
+
|
|
210
|
+
case SETTINGS_PARAMETERS.MAX_FRAME_SIZE:
|
|
211
|
+
if (value < 16384 || value > 16777215) { // 2^14 to 2^24-1
|
|
212
|
+
throw new Error('MAX_FRAME_SIZE must be between 16,384 and 16,777,215');
|
|
213
|
+
}
|
|
214
|
+
break;
|
|
215
|
+
|
|
216
|
+
case SETTINGS_PARAMETERS.MAX_CONCURRENT_STREAMS:
|
|
217
|
+
case SETTINGS_PARAMETERS.MAX_HEADER_LIST_SIZE:
|
|
218
|
+
if (value < 0) {
|
|
219
|
+
throw new Error(`Parameter ${id} must be non-negative`);
|
|
220
|
+
}
|
|
221
|
+
break;
|
|
222
|
+
|
|
223
|
+
default:
|
|
224
|
+
console.warn(`Unknown settings parameter: ${id}`);
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
// ๅๅปบpayload
|
|
230
|
+
function _createPayload(settings: { [key: Byte]: number }) {
|
|
231
|
+
const payload: FrameSettingPayload = [];
|
|
232
|
+
for (const [id, value] of Object.entries(settings)) {
|
|
233
|
+
payload.push({
|
|
234
|
+
identifier: Number(id),
|
|
235
|
+
value: value
|
|
236
|
+
});
|
|
237
|
+
}
|
|
238
|
+
return payload;
|
|
239
|
+
}
|