jsfitsio
Version:
FITS I/O javascript library.
1 lines • 62.3 kB
Source Map (JSON)
{"version":3,"file":"jsfitsio.cjs","mappings":"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","sources":["webpack://jsfitsio/external node-commonjs \"http\"","webpack://jsfitsio/external node-commonjs \"https\"","webpack://jsfitsio/external node-commonjs \"node:fs/promises\"","webpack://jsfitsio/external node-commonjs \"punycode\"","webpack://jsfitsio/external node-commonjs \"stream\"","webpack://jsfitsio/external node-commonjs \"url\"","webpack://jsfitsio/external node-commonjs \"zlib\"","webpack://jsfitsio/webpack/bootstrap","webpack://jsfitsio/webpack/runtime/compat get default export","webpack://jsfitsio/webpack/runtime/define property getters","webpack://jsfitsio/webpack/runtime/ensure chunk","webpack://jsfitsio/webpack/runtime/get javascript chunk filename","webpack://jsfitsio/webpack/runtime/hasOwnProperty shorthand","webpack://jsfitsio/webpack/runtime/make namespace object","webpack://jsfitsio/webpack/runtime/require chunk loading","webpack://jsfitsio/./src/model/FITSHeaderItem.ts","webpack://jsfitsio/./src/model/FITSHeaderManager.ts","webpack://jsfitsio/external node-commonjs \"fs\"","webpack://jsfitsio/./src/FITSWriter.ts","webpack://jsfitsio/./src/ParseHeader.ts","webpack://jsfitsio/./src/ParseUtils.ts","webpack://jsfitsio/./src/ParsePayload.ts","webpack://jsfitsio/./src/FITSParser.ts","webpack://jsfitsio/./src/index.ts"],"sourcesContent":["module.exports = require(\"http\");","module.exports = require(\"https\");","module.exports = require(\"node:fs/promises\");","module.exports = require(\"punycode\");","module.exports = require(\"stream\");","module.exports = require(\"url\");","module.exports = require(\"zlib\");","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \".jsfitsio.cjs\";\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","// no baseURI\n\n// object to store loaded chunks\n// \"1\" means \"loaded\", otherwise not loaded yet\nvar installedChunks = {\n\t792: 1\n};\n\n// no on chunks loaded\n\nvar installChunk = (chunk) => {\n\tvar moreModules = chunk.modules, chunkIds = chunk.ids, runtime = chunk.runtime;\n\tfor(var moduleId in moreModules) {\n\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t}\n\t}\n\tif(runtime) runtime(__webpack_require__);\n\tfor(var i = 0; i < chunkIds.length; i++)\n\t\tinstalledChunks[chunkIds[i]] = 1;\n\n};\n\n// require() chunk loading for javascript\n__webpack_require__.f.require = (chunkId, promises) => {\n\t// \"1\" is the signal for \"already loaded\"\n\tif(!installedChunks[chunkId]) {\n\t\tif(true) { // all chunks have JS\n\t\t\tinstallChunk(require(\"./\" + __webpack_require__.u(chunkId)));\n\t\t} else installedChunks[chunkId] = 1;\n\t}\n};\n\n// no external install chunk\n\n// no HMR\n\n// no HMR manifest","/**\n * Summary. (bla bla bla)\n *\n * Description. (bla bla bla)\n *\n * @link github https://github.com/fab77/FITSParser\n * @author Fabrizio Giordano <fabriziogiordano77@gmail.com>\n */\n\nexport class FITSHeaderItem {\n _key: string = \"\";\n _value: string | number = \"\";\n _comment: string = \"\";\n\n constructor(key: string, value: string | number, comment: string) {\n this._key = key\n this._value = value\n this._comment = comment\n }\n\n get key(): string {\n return this._key;\n }\n\n get comment(): string {\n return this._comment;\n }\n\n get value(): string | number {\n return this._value;\n }\n}\n","import { FITSHeaderItem } from \"./FITSHeaderItem.js\";\n\n\nexport class FITSHeaderManager {\n \n static SIMPLE = \"SIMPLE\"\n static BITPIX = \"BITPIX\"\n static BZERO = \"BZERO\"\n static BSCALE = \"BSCALE\"\n static BLANK = \"BLANK\"\n static NAXIS = \"NAXIS\"\n static NAXIS1 = \"NAXIS1\"\n static NAXIS2 = \"NAXIS2\"\n static DATAMIN = \"DATAMIN\"\n static DATAMAX = \"DATAMAX\"\n static CRVAL1 = \"CRVAL1\"\n static CRVAL2 = \"CRVAL2\"\n static CTYPE1 = \"CTYPE1\"\n static CTYPE2 = \"CTYPE2\"\n static CRPIX1 = \"CRPIX1\"\n static CRPIX2 = \"CRPIX2\"\n static ORIGIN = \"ORIGIN\"\n static COMMENT = \"COMMENT\"\n\n private items: FITSHeaderItem[] = []\n\n constructor() {\n this.items[0] = new FITSHeaderItem( FITSHeaderManager.SIMPLE, 'T', '');\n this.items[1] = new FITSHeaderItem( FITSHeaderManager.BITPIX, '', '');\n this.items[2] = new FITSHeaderItem( FITSHeaderManager.NAXIS, 2, '');\n this.items[3] = new FITSHeaderItem( FITSHeaderManager.NAXIS1, '', '');\n this.items[4] = new FITSHeaderItem( FITSHeaderManager.NAXIS2, '', '');\n }\n\n // insert(item: FITSHeaderItem, position?: number): void {\n insert(item: FITSHeaderItem): void {\n if (item.key === FITSHeaderManager.SIMPLE) {\n // this.items.splice(0, 0, item);\n this.items[0] = item;\n } else if (item.key === FITSHeaderManager.BITPIX) {\n // this.items.splice(1, 0, item);\n this.items[1] = item;\n } else if (item.key === FITSHeaderManager.NAXIS) {\n // this.items.splice(2, 0, item);\n this.items[2] = item;\n } else if (item.key === FITSHeaderManager.NAXIS1) {\n // this.items.splice(3, 0, item);\n this.items[3] = item;\n } else if (item.key === FITSHeaderManager.NAXIS2) {\n // this.items.splice(4, 0, item);\n this.items[4] = item;\n } else {\n this.items.push(item);\n }\n // if (position !== undefined && position >= 0 && position <= this.items.length) {\n // this.items.splice(position, 0, item);\n // } else {\n // this.items.push(item);\n // }\n }\n\n getItems(): FITSHeaderItem[] {\n return this.items;\n }\n\n remove(key: string): void {\n this.items = this.items.filter(item => item.key !== key);\n }\n\n findById(key: string): FITSHeaderItem | null {\n const item = this.items.find(item => item.key === key);\n if (!item) {\n return null\n }\n return item\n }\n\n}","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"fs\");","/**\n * Summary. (bla bla bla)\n *\n * Description. (bla bla bla)\n *\n * @link github https://github.com/fab77/fitsontheweb\n * @author Fabrizio Giordano <fabriziogiordano77@gmail.com>\n * import GnomonicProjection from './GnomonicProjection';\n * BITPIX definition from https://archive.stsci.edu/fits/fits_standard/node39.html\n * and \"Definition of the Flexible Image Transport System (FITS)\" standard document\n * defined by FITS Working Group from the International Astronomical Union\n * http://fits.gsfc.nasa.gov/iaufwg/\n * 8\t8-bit Character or unsigned binary integer\n * 16\t16-bit twos-complement binary integer\n * 32\t32-bit twos-complement binary integer\n * -32\t32-bit IEEE single precision floating point\n * -64\t64-bit IEEE double precision floating point\n *\n */\nimport { FITSHeaderManager } from \"./model/FITSHeaderManager.js\";\nimport { FITSParsed } from \"./model/FITSParsed.js\"\n// import { FITSHeader } from \"./model/FITSHeader.js\"\nimport * as fs from 'fs';\n\n\nexport class FITSWriter {\n\n static createFITS(fitsParsed: FITSParsed): Uint8Array {\n const headerBytes = this.createHeader(fitsParsed.header);\n const dataBytes = this.createData(fitsParsed.data, fitsParsed.header);\n const fitsFile = new Uint8Array(headerBytes.length + dataBytes.length);\n fitsFile.set(headerBytes, 0);\n fitsFile.set(dataBytes, headerBytes.length);\n return fitsFile;\n }\n\n private static createHeader(header: FITSHeaderManager): Uint8Array {\n const BLOCK = 2880;\n const CARD = 80;\n\n const MUST_INT = new Set([\"BITPIX\", \"NAXIS\", \"PCOUNT\", \"GCOUNT\"]);\n const IS_LOGICAL = new Set([\"SIMPLE\", \"EXTEND\"]);\n\n const items = header.getItems();\n\n function kw(s: string) {\n return (s ?? \"\").toUpperCase().padEnd(8, \" \").slice(0, 8);\n }\n\n function card80(s: string): string {\n return s.length >= CARD ? s.slice(0, CARD) : s.padEnd(CARD, \" \");\n }\n\n // Emit COMMENT/HISTORY as multiple 72-char lines\n function makeCommentCards(kind: \"COMMENT\" | \"HISTORY\", text: string): string[] {\n const prefix = kw(kind); // \"COMMENT \" or \"HISTORY \"\n const width = CARD - prefix.length; // 72\n const t = (text ?? \"\").toString();\n if (!t.length) return [card80(prefix)]; // allow empty COMMENT/HISTORY line\n const out: string[] = [];\n for (let i = 0; i < t.length; i += width) {\n out.push(card80(prefix + t.slice(i, i + width)));\n }\n return out;\n }\n\n function quoteFitsString(s: string): string {\n const unquoted = s.replace(/^'+|'+$/g, \"\");\n const escaped = unquoted.replace(/'/g, \"''\");\n return `'${escaped}'`;\n }\n\n // \"= \" + 20-char value field (or proper string)\n function valueField20(key: string, val: unknown): string {\n let v = \"\";\n const K = key.toUpperCase();\n\n if (IS_LOGICAL.has(K)) {\n const tf = (val === true || val === \"T\" || val === \"t\") ? \"T\" : \"F\";\n return `= ${tf.padStart(20, \" \")}`;\n }\n\n if (MUST_INT.has(K) || /^NAXIS\\d+$/.test(K)) {\n const n = Number(val);\n if (!Number.isFinite(n) || !Number.isInteger(n)) {\n throw new Error(`FITS header: ${K} must be an integer, got ${val}`);\n }\n return `= ${String(n).padStart(20, \" \")}`;\n }\n\n if (typeof val === \"number\") {\n let s = Number.isInteger(val) ? String(val) : val.toExponential(10).replace(\"e\", \"E\");\n if (s.length > 20) s = val.toExponential(8).replace(\"e\", \"E\");\n return `= ${s.padStart(20, \" \")}`;\n }\n\n if (typeof val === \"string\") {\n return `= ${quoteFitsString(val)}`; // strings can exceed 20-char field\n }\n\n return \"\";\n }\n\n // Build one keyword card, and (if needed) emit overflow as COMMENT cards\n function makeKeywordWithComment(key: string, value: unknown, comment?: string): string[] {\n const K = key.toUpperCase();\n\n if (K === \"END\") return [card80(\"END\")];\n\n if (K === \"COMMENT\" || K === \"HISTORY\") {\n const text = (value ?? comment ?? \"\").toString();\n return makeCommentCards(K as \"COMMENT\" | \"HISTORY\", text);\n }\n\n // Normal keyword\n let base = kw(K) + valueField20(K, value);\n\n // Attach trailing comment inside the same card if it fits\n if (comment && comment.length > 0) {\n const add = ` / ${comment}`;\n const spaceLeft = CARD - base.length;\n if (spaceLeft > 0) {\n const inCard = add.slice(0, spaceLeft);\n base = (base + inCard);\n // spill any overflow into COMMENT cards (strip a leading \" / \" if it didn't fit)\n const overflow = add.slice(spaceLeft).replace(/^\\s*\\/\\s*/, \"\");\n if (overflow.length > 0) {\n return [card80(base), ...makeCommentCards(\"COMMENT\", overflow)];\n }\n } else {\n // no room at all; put the whole comment in COMMENT lines\n return [card80(base), ...makeCommentCards(\"COMMENT\", comment)];\n }\n }\n\n return [card80(base)];\n }\n\n // Build all cards with mandatory order first\n const map = new Map(items.map(it => [it.key.toUpperCase(), it]));\n const cards: string[] = [];\n\n const simple = map.get(\"SIMPLE\");\n if (!simple) throw new Error(\"Missing mandatory SIMPLE card\");\n cards.push(...makeKeywordWithComment(\"SIMPLE\", simple.value, simple.comment));\n\n const bitpix = map.get(\"BITPIX\");\n if (!bitpix) throw new Error(\"Missing mandatory BITPIX card\");\n cards.push(...makeKeywordWithComment(\"BITPIX\", bitpix.value, bitpix.comment));\n\n const naxis = map.get(\"NAXIS\");\n if (!naxis) throw new Error(\"Missing mandatory NAXIS card\");\n const nAxes = Number(naxis.value) || 0;\n cards.push(...makeKeywordWithComment(\"NAXIS\", nAxes, naxis.comment));\n\n for (let i = 1; i <= nAxes; i++) {\n const ki = `NAXIS${i}`;\n const it = map.get(ki);\n if (!it) throw new Error(`Missing mandatory ${ki} card`);\n cards.push(...makeKeywordWithComment(ki, it.value, it.comment));\n }\n\n const extend = map.get(\"EXTEND\");\n if (extend) cards.push(...makeKeywordWithComment(\"EXTEND\", extend.value, extend.comment));\n\n for (const it of items) {\n const K = it.key.toUpperCase();\n if (K === \"SIMPLE\" || K === \"BITPIX\" || K === \"NAXIS\" || /^NAXIS\\d+$/.test(K) || K === \"EXTEND\" || K === \"END\")\n continue;\n cards.push(...makeKeywordWithComment(it.key, it.value, it.comment));\n }\n\n // END + pad to 2880\n cards.push(card80(\"END\"));\n let headerString = cards.join(\"\");\n const pad = headerString.length % BLOCK ? BLOCK - (headerString.length % BLOCK) : 0;\n if (pad) headerString += \" \".repeat(pad);\n\n return new TextEncoder().encode(headerString);\n }\n\n private static createData(data: Array<Uint8Array>, header: FITSHeaderManager): Uint8Array {\n // concat\n const totalLength = data.reduce((s, c) => s + c.length, 0);\n\n // OPTIONAL: verify size from BITPIX/NAXIS\n const bitpix = Math.abs(Number(header.findById(\"BITPIX\")?.value ?? 0));\n const naxis = Number(header.findById(\"NAXIS\")?.value ?? 0);\n let elems = 1;\n for (let k = 1; k <= naxis; k++) {\n elems *= Number(header.findById(`NAXIS${k}`)?.value ?? 0);\n }\n const bytesPerElem = bitpix / 8;\n const expectedUnpadded = naxis > 0 ? elems * bytesPerElem : 0;\n\n if (expectedUnpadded && expectedUnpadded !== totalLength) {\n throw new Error(\n `Data length ${totalLength} does not match header expectation ${expectedUnpadded} (BITPIX=${bitpix}, NAXIS=${naxis})`\n );\n }\n\n // build and pad\n let dataBytes = new Uint8Array(totalLength);\n let off = 0;\n for (const chunk of data) { dataBytes.set(chunk, off); off += chunk.length; }\n\n const BLOCK = 2880;\n const remainder = dataBytes.length % BLOCK;\n if (remainder) {\n const pad = BLOCK - remainder;\n const padded = new Uint8Array(dataBytes.length + pad);\n padded.set(dataBytes);\n dataBytes = padded; // zeros already in new space\n }\n return dataBytes;\n }\n\n // static typedArrayToURL(fitsParsed: FITSParsed): string {\n // const fitsFile = FITSWriter.createFITS(fitsParsed) as Uint8Array;\n // const blob = new Blob([fitsFile], { type: \"application/fits\" });\n // // console.log(`<html><body><img src='${URL.createObjectURL(b)}'</body></html>`);\n // const url = URL.createObjectURL(blob);\n // console.log(`Generated FITS file URL: ${url}`);\n // return url;\n // }\n\n static writeFITSFile(fitsParsed: FITSParsed, filePath: string): void {\n const fitsFile = this.createFITS(fitsParsed);\n\n try {\n fs.writeFileSync(filePath, fitsFile);\n console.log(`FITS file written successfully to: ${filePath}`);\n } catch (error) {\n console.error(`Error writing FITS file: ${error}`);\n }\n }\n\n}\n\n// const fitsParsed: FITSParsed = {\n// header: new FITSHeader(),\n// data: [new Uint8Array([1, 2, 3]), new Uint8Array([4, 5, 6])]\n// };\n\n// // Specify the file path\n// const filePath = \"/Users/fabriziogiordano/Desktop/PhD/code/new/FITSParser/output.fits\";\n\n// // Write the FITS file to the filesystem\n// FITSWriter.writeFITSFile(fitsParsed, filePath);","// import { FITSHeader } from \"./model/FITSHeader.js\";\nimport { FITSHeaderItem } from \"./model/FITSHeaderItem.js\";\nimport { FITSHeaderManager } from \"./model/FITSHeaderManager.js\";\n/**\n * Summary. (bla bla bla)\n *\n * Description. (bla bla bla)\n *\n * @link github https://github.com/fab77/FITSParser\n * @author Fabrizio Giordano <fabriziogiordano77@gmail.com>\n */\n\nexport class ParseHeader {\n\n static getFITSItemValue(header: FITSHeaderManager, key: string): number | null {\n const item = header.findById(key)\n let VALUE = null\n if (item) {\n VALUE = Number(item.value)\n }\n return VALUE\n }\n \n static parse(rawdata: Uint8Array): FITSHeaderManager {\n // only one header block (2880) allowed atm.\n // TODO handle multiple header blocks\n // let headerByteData = new Uint8Array(rawdata, 0, 2880);\n\n const textDecoder = new TextDecoder('ascii');\n const headerSize = 2880; // FITS headers are in 2880-byte blocks\n const headerText = textDecoder.decode(rawdata.slice(0, headerSize));\n\n const header: FITSHeaderManager = new FITSHeaderManager();\n const lines = headerText.match(/.{1,80}/g) || [];\n for (const line of lines) {\n\n const key = line.slice(0, 8).trim();\n let value: string | number\n let comment = \"\"\n\n if (key && key !== 'END') {\n const rawValue = line.slice(10).trim().split('/')[0].trim();\n if (isNaN(Number(rawValue))) {\n value = rawValue;\n } else {\n value = Number(rawValue);\n }\n if (line.includes('/')) {\n comment = line.slice(10).trim().split('/')[1].trim();\n }\n\n const item = new FITSHeaderItem(key, value, comment);\n header.insert(item)\n }\n }\n return header;\n }\n\n}\n","/**\n * Summary. (bla bla bla)\n *\n * Description. (bla bla bla)\n *\n * @link github https://github.com/fab77/FITSParser\n * @author Fabrizio Giordano <fabriziogiordano77@gmail.com>\n */\n\nexport class ParseUtils {\n static getStringAt(data: string, offset: number, length: number) {\n const chars: string[] = [];\n for (let i = offset, j = 0; i < offset + length; i++, j++) {\n chars[j] = String.fromCharCode(data.charCodeAt(i) & 0xff);\n }\n return chars.join(\"\");\n }\n\n static byteString(n: number): string {\n if (n < 0 || n > 255 || n % 1 !== 0) {\n throw new Error(n + \" does not fit in a byte\");\n }\n return (\"000000000\" + n.toString(2)).substr(-8);\n }\n\n static parse32bitSinglePrecisionFloatingPoint(\n byte1: number,\n byte2: number,\n byte3: number,\n byte4: number\n ): number {\n let long = (((((byte1 << 8) + byte2) << 8) + byte3) << 8) + byte4;\n if (long < 0) long += 4294967296;\n const float =\n (1.0 + (long & 0x007fffff) / 0x0800000) *\n Math.pow(2, ((long & 0x7f800000) >> 23) - 127);\n return float;\n }\n\n static convertBlankToBytes(blank: number, nbytes: number): Uint8Array {\n let str = Math.abs(blank).toString(2);\n while (str.length / 8 < nbytes) {\n str += \"0\";\n }\n const buffer = new ArrayBuffer(nbytes);\n const uint8 = new Uint8Array(buffer);\n for (let i = 0; i < nbytes; i++) {\n uint8[i] = parseInt(str.substr(8 * i, 8 * (i + 1)), 2);\n }\n return uint8;\n }\n /** https://gist.github.com/Manouchehri/f4b41c8272db2d6423fa987e844dd9ac */\n static parseFloatingPointFormat(\n bytes: Uint8Array,\n ebits: number,\n fbits: number\n ): number | null {\n // Bytes to bits\n const bits = [];\n for (let i = bytes.length; i; i -= 1) {\n let byte = bytes[i - 1];\n for (let j = 8; j; j -= 1) {\n bits.push(byte % 2 ? 1 : 0);\n byte = byte >> 1;\n }\n }\n bits.reverse();\n const str = bits.join(\"\");\n // Unpack sign, exponent, fraction\n const bias = (1 << (ebits - 1)) - 1;\n const s = parseInt(str.substring(0, 1), 2) ? -1 : 1;\n const e = parseInt(str.substring(1, 1 + ebits), 2);\n const f = parseInt(str.substring(1 + ebits), 2);\n\n // Produce number\n if (e === (1 << ebits) - 1) {\n return f !== 0 ? null : s * Infinity;\n } else if (e > 0) {\n return s * Math.pow(2, e - bias) * (1 + f / Math.pow(2, fbits));\n } else if (f !== 0) {\n return s * Math.pow(2, -(bias - 1)) * (f / Math.pow(2, fbits));\n } else {\n return s * 0;\n }\n }\n\n static generate16bit2sComplement(val: number): number {\n throw new TypeError(\"not implemented yet\" + val);\n }\n\n static parse16bit2sComplement(byte1: number, byte2: number): number {\n const unsigned = (byte1 << 8) | byte2;\n if (unsigned & 0x8000) {\n return unsigned | 0xffff0000;\n } else {\n return unsigned;\n }\n }\n\n static parse32bit2sComplement(\n byte1: number,\n byte2: number,\n byte3: number,\n byte4: number\n ): number {\n const unsigned = (byte1 << 24) | (byte2 << 16) | (byte3 << 8) | byte4;\n const s = (unsigned & 0x80000000) >> 31;\n let res = unsigned & 0xffffffff;\n\n if (s) {\n res = (~unsigned & 0xffffffff) + 1;\n return -1 * res;\n }\n return res;\n }\n\n /**\n *\n * @param {*} data string?\n * @param {*} offset offset in the data\n * @returns returns an integer between 0 and 65535 representing the UTF-16 code unit at the given index.\n */\n static getByteAt(data: string, offset: number): number {\n const data