{"_id":"@exodus/patch-broken-hermes-typed-arrays","_rev":"93-99ea21c2599654a681e7bcdbd3916e2e","name":"@exodus/patch-broken-hermes-typed-arrays","dist-tags":{"latest":"1.0.0-alpha.1"},"versions":{"1.0.0-alpha.0":{"name":"@exodus/patch-broken-hermes-typed-arrays","version":"1.0.0-alpha.0","keywords":["hermes","buffer","typedarray","fix"],"author":{"name":"Exodus Movement, Inc."},"license":"MIT","_id":"@exodus/patch-broken-hermes-typed-arrays@1.0.0-alpha.0","maintainers":[{"name":"ismamz","email":"hola@isma.uy"},{"name":"exojo","email":"joshua.sc@exodus.io"},{"name":"doguhan","email":"doguhan.gu@exodus.io"},{"name":"ronaldcrb","email":"alonzo.ronald@gmail.com"},{"name":"nantoaqui","email":"valentin.renan@gmail.com"},{"name":"bekatd","email":"bekatd@gmail.com"},{"name":"atemafac-nd","email":"atemafac.nd@exodus.io"},{"name":"frankliexodus","email":"haolun.li@exodus.io"},{"name":"ale-exo","email":"alessio.li@exodus.io"},{"name":"davidexodus","email":"david.ku@exodus.io"},{"name":"geoffreyrousset","email":"geoffrey.ro@exodus.io"},{"name":"marcos.kichel","email":"marcos.kichel@gmail.com"},{"name":"kryptkeep","email":"julian@exodus.io"},{"name":"andrewtoth-exodus","email":"andrew.to@exodus.io"},{"name":"mmehta-10","email":"mmehta.ten@gmail.com"},{"name":"tunguyennnnn","email":"tunguyenuni@gmail.com"},{"name":"dimartiro","email":"diego2737@gmail.com"},{"name":"cdotta-exodus","email":"cristian.do@exodus.io"},{"name":"awesomeniko","email":"awesomeniko@pm.me"},{"name":"mbaraniak-exodus","email":"mykhailo.ba@exodus.io"},{"name":"hasakura","email":"hisashi.as@exodus.io"},{"name":"kklash","email":"k_klash@protonmail.com"},{"name":"shehryar6","email":"shehryarshoukat6@gmail.com"},{"name":"rec","email":"espinosacurbelo@gmail.com"},{"name":"awilson-rs","email":"awilson@refactorsecurity.com"},{"name":"ggabarrin-rs","email":"ggabarrin@refactorsecurity.com"},{"name":"r4vn","email":"simon.schmell@gmail.com"},{"name":"exorich","email":"richard.nw@exodus.io"},{"name":"cryptosgr","email":"sagar@exodus.io"},{"name":"mol0d","email":"moloduk99@gmail.com"},{"name":"yevhenii_molodyk","email":"y.molodyk@overdone.it"},{"name":"yilmazbahadir","email":"yilmazbahadir@gmail.com"},{"name":"muratso","email":"ericarlos23@gmail.com"},{"name":"exoleo","email":"leonard.ga@Exodus.io"},{"name":"633kh4ck","email":"svolsky+npm@xn--zer-2na.net"},{"name":"ossel","email":"ossian.el@exodus.io"},{"name":"davidfraga610","email":"david.fraga610@hotmail.com"},{"name":"clarkexo","email":"clark@exodus.io"},{"name":"james-gre","email":"james.gre@exodus.io"},{"name":"juraex","email":"julio.vi@exodus.io"},{"name":"ralph.ba","email":"ralph.ba@exodus.io"},{"name":"angelloz","email":"scottloz@protonmail.com"},{"name":"joshuabot","email":"joshuabot@exodus.io"},{"name":"jamiemaw","email":"jamie@exodus.io"},{"name":"exodus-justin.za","email":"justin.za@exodus.io"},{"name":"javiexodus","email":"javier.fe@exodus.io"},{"name":"rg911","email":"xian.f.liu@gmail.com"},{"name":"alex.alexandrius","email":"s.pataridze@gmail.com"},{"name":"filipexodus","email":"filip@exodus.io"},{"name":"ryansquared-npm","email":"npm@ryansquared.pub"},{"name":"andrescarreon","email":"andres.di@exodus.io"},{"name":"florianmathieu","email":"florian.ma@exodus.io"},{"name":"janwe","email":"jan.we@exodus.io"},{"name":"fboucquez","email":"fboucquez@gmail.com"},{"name":"skapala","email":"szymon20000@gmail.com"},{"name":"umito","email":"umitodabasi@gmail.com"},{"name":"lanahizzle","email":"tim.la@exodus.io"},{"name":"iaacek","email":"iaacek@gmail.com"},{"name":"ps.mcnally","email":"patrick.mc@exodus.io"},{"name":"akinncar","email":"akinncar@hotmail.com"},{"name":"voltagebots","email":"okpako.fr@exodus.io"},{"name":"kwwood","email":"kevin.w@exodus.io"},{"name":"sergii_bo","email":"sergii.bo@exodus.io"},{"name":"alexandrbbm","email":"alexandr.bbm@gmail.com"},{"name":"danh.t.vo","email":"danh.vo@exodus.io"},{"name":"ezenwankwogabriel","email":"ezenwankwogabriel@gmail.com"},{"name":"meniem","email":"aly@exodus.io"},{"name":"mzndako","email":"mzndako@gmail.com"},{"name":"kevva","email":"kevinmartensson@gmail.com"},{"name":"feri42","email":"feri@feridot.com"},{"name":"jprichardson","email":"jprichardson@gmail.com"},{"name":"farisissa","email":"farisissa8@gmail.com"},{"name":"ryanzim","email":"opensrc@ryanzim.com"},{"name":"headfire","email":"egorvodopyanov@gmail.com"},{"name":"gutenye","email":"ywzhaifei@gmail.com"},{"name":"mosesbot","email":"moses@exodus.io"},{"name":"roccomuso","email":"roccomusolino92@gmail.com"},{"name":"dcastagnoli","email":"daniel@exodus.io"},{"name":"sonaye","email":"ain@abcd.sa"},{"name":"ves","email":"ves@exodus.io"},{"name":"tenaciousmv","email":"mvayngrib@gmail.com"},{"name":"asyakost","email":"asya@exodus.io"},{"name":"bulgakovk","email":"kbulgakov@yahoo.com"},{"name":"chalker","email":"chalkerx@gmail.com"},{"name":"andrejb","email":"andrej-borstnik@hotmail.com"},{"name":"jaydp17","email":"jaydp17@gmail.com"},{"name":"olistic","email":"moliverafreire@gmail.com"},{"name":"joepie91","email":"admin@cryto.net"},{"name":"merlz","email":"john.staker@ymail.com"},{"name":"vbonini","email":"victor@bonini.tech"},{"name":"devopsrobot","email":"devopsrobot@exodus.io"},{"name":"jenish-sojitra","email":"jenish@exodus.io"},{"name":"nachoalvarez","email":"ignacioalvarez92@gmail.com"},{"name":"giovannirco","email":"giovannirco@gmail.com"},{"name":"diegomura","email":"diegomuracciole@gmail.com"},{"name":"lanre-mark","email":"lanre.developer@gmail.com"},{"name":"sunilagrawal","email":"sunilagrawal@gmail.com"},{"name":"guillecura","email":"guille@cura.is"},{"name":"mariosvlad","email":"marios.vladimerou@protonmail.com"},{"name":"federico-po","email":"federico.po@exodus.io"},{"name":"pagan404","email":"saraspap@protonmail.com"}],"homepage":"https://github.com/ExodusMovement/patch-broken-hermes-typed-arrays","bugs":{"url":"https://github.com/ExodusMovement/patch-broken-hermes-typed-arrays/issues"},"dist":{"shasum":"0b517340721c807dc6a2c017d12e22cab33a7d21","tarball":"https://registry.npmjs.org/@exodus/patch-broken-hermes-typed-arrays/-/patch-broken-hermes-typed-arrays-1.0.0-alpha.0.tgz","fileCount":5,"integrity":"sha512-B84N9qUGBXLtjOFglC3HkFhyJZdeDp3gzHYWaS8n9NeEwo1PDXoNJAFkb7kNLL8qycUhKumIir8DG+rEPRdSJQ==","signatures":[{"sig":"MEUCICVA/ccDeyFFFKaIT8g3a6fbbNXwJ6DMiOcZoQrGvBoRAiEAq0wG3VaI398k3oST7rZeSsJD+gCIAFwYgsq0Z/CU6ic=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":12473},"main":"index.js","type":"module","gitHead":"97cbdfc6d8b5b76525f64363f19b023491eba887","_npmUser":{"name":"chalker","email":"chalkerx@gmail.com"},"repository":{"url":"git+https://github.com/ExodusMovement/patch-broken-hermes-typed-arrays.git","type":"git"},"_npmVersion":"10.8.2","description":"Fix broken Hermes engine TypedArray implementation for React Native","directories":{},"_nodeVersion":"22.5.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/patch-broken-hermes-typed-arrays_1.0.0-alpha.0_1723707454489_0.9968210273696501","host":"s3://npm-registry-packages"}},"1.0.0-alpha.1":{"name":"@exodus/patch-broken-hermes-typed-arrays","version":"1.0.0-alpha.1","keywords":["hermes","buffer","typedarray","fix"],"author":{"name":"Exodus Movement, Inc."},"license":"MIT","_id":"@exodus/patch-broken-hermes-typed-arrays@1.0.0-alpha.1","maintainers":[{"name":"ismamz","email":"hola@isma.uy"},{"name":"exojo","email":"joshua.sc@exodus.io"},{"name":"doguhan","email":"doguhan.gu@exodus.io"},{"name":"ronaldcrb","email":"alonzo.ronald@gmail.com"},{"name":"nantoaqui","email":"valentin.renan@gmail.com"},{"name":"bekatd","email":"bekatd@gmail.com"},{"name":"atemafac-nd","email":"atemafac.nd@exodus.io"},{"name":"frankliexodus","email":"haolun.li@exodus.io"},{"name":"ale-exo","email":"alessio.li@exodus.io"},{"name":"davidexodus","email":"david.ku@exodus.io"},{"name":"geoffreyrousset","email":"geoffrey.ro@exodus.io"},{"name":"marcos.kichel","email":"marcos.kichel@gmail.com"},{"name":"kryptkeep","email":"julian@exodus.io"},{"name":"andrewtoth-exodus","email":"andrew.to@exodus.io"},{"name":"mmehta-10","email":"mmehta.ten@gmail.com"},{"name":"tunguyennnnn","email":"tunguyenuni@gmail.com"},{"name":"cdotta-exodus","email":"cristian.do@exodus.io"},{"name":"awesomeniko","email":"awesomeniko@pm.me"},{"name":"mbaraniak-exodus","email":"mykhailo.ba@exodus.io"},{"name":"hasakura","email":"hisashi.as@exodus.io"},{"name":"shehryar6","email":"shehryarshoukat6@gmail.com"},{"name":"rec","email":"espinosacurbelo@gmail.com"},{"name":"awilson-rs","email":"awilson@refactorsecurity.com"},{"name":"ggabarrin-rs","email":"ggabarrin@refactorsecurity.com"},{"name":"r4vn","email":"simon.schmell@gmail.com"},{"name":"exorich","email":"richard.nw@exodus.io"},{"name":"cryptosgr","email":"sagar@exodus.io"},{"name":"mol0d","email":"moloduk99@gmail.com"},{"name":"yevhenii_molodyk","email":"y.molodyk@overdone.it"},{"name":"yilmazbahadir","email":"yilmazbahadir@gmail.com"},{"name":"muratso","email":"ericarlos23@gmail.com"},{"name":"exoleo","email":"leonard.ga@Exodus.io"},{"name":"633kh4ck","email":"svolsky+npm@xn--zer-2na.net"},{"name":"ossel","email":"ossian.el@exodus.io"},{"name":"davidfraga610","email":"david.fraga610@hotmail.com"},{"name":"clarkexo","email":"clark@exodus.io"},{"name":"james-gre","email":"james.gre@exodus.io"},{"name":"juraex","email":"julio.vi@exodus.io"},{"name":"ralph.ba","email":"ralph.ba@exodus.io"},{"name":"angelloz","email":"scottloz@protonmail.com"},{"name":"joshuabot","email":"joshuabot@exodus.io"},{"name":"jamiemaw","email":"jamie@exodus.io"},{"name":"exodus-justin.za","email":"justin.za@exodus.io"},{"name":"javiexodus","email":"javier.fe@exodus.io"},{"name":"rg911","email":"xian.f.liu@gmail.com"},{"name":"alex.alexandrius","email":"s.pataridze@gmail.com"},{"name":"filipexodus","email":"filip@exodus.io"},{"name":"ryansquared-npm","email":"npm@ryansquared.pub"},{"name":"andrescarreon","email":"andres.di@exodus.io"},{"name":"florianmathieu","email":"florian.ma@exodus.io"},{"name":"janwe","email":"jan.we@exodus.io"},{"name":"fboucquez","email":"fboucquez@gmail.com"},{"name":"skapala","email":"szymon20000@gmail.com"},{"name":"umito","email":"umitodabasi@gmail.com"},{"name":"lanahizzle","email":"tim.la@exodus.io"},{"name":"iaacek","email":"iaacek@gmail.com"},{"name":"ps.mcnally","email":"patrick.mc@exodus.io"},{"name":"akinncar","email":"akinncar@hotmail.com"},{"name":"voltagebots","email":"okpako.fr@exodus.io"},{"name":"kwwood","email":"kevin.w@exodus.io"},{"name":"sergii_bo","email":"sergii.bo@exodus.io"},{"name":"alexandrbbm","email":"alexandr.bbm@gmail.com"},{"name":"danh.t.vo","email":"danh.vo@exodus.io"},{"name":"ezenwankwogabriel","email":"ezenwankwogabriel@gmail.com"},{"name":"meniem","email":"aly@exodus.io"},{"name":"mzndako","email":"mzndako@gmail.com"},{"name":"kevva","email":"kevinmartensson@gmail.com"},{"name":"feri42","email":"feri@feridot.com"},{"name":"jprichardson","email":"jprichardson@gmail.com"},{"name":"farisissa","email":"farisissa8@gmail.com"},{"name":"ryanzim","email":"opensrc@ryanzim.com"},{"name":"headfire","email":"egorvodopyanov@gmail.com"},{"name":"gutenye","email":"ywzhaifei@gmail.com"},{"name":"mosesbot","email":"moses@exodus.io"},{"name":"roccomuso","email":"roccomusolino92@gmail.com"},{"name":"dcastagnoli","email":"daniel@exodus.io"},{"name":"sonaye","email":"ain@abcd.sa"},{"name":"ves","email":"ves@exodus.io"},{"name":"tenaciousmv","email":"mvayngrib@gmail.com"},{"name":"asyakost","email":"asya@exodus.io"},{"name":"bulgakovk","email":"kbulgakov@yahoo.com"},{"name":"chalker","email":"chalkerx@gmail.com"},{"name":"andrejb","email":"andrej-borstnik@hotmail.com"},{"name":"jaydp17","email":"jaydp17@gmail.com"},{"name":"olistic","email":"moliverafreire@gmail.com"},{"name":"joepie91","email":"admin@cryto.net"},{"name":"merlz","email":"john.staker@ymail.com"},{"name":"vbonini","email":"victor@bonini.tech"},{"name":"devopsrobot","email":"devopsrobot@exodus.io"},{"name":"jenish-sojitra","email":"jenish@exodus.io"},{"name":"nachoalvarez","email":"ignacioalvarez92@gmail.com"},{"name":"giovannirco","email":"giovannirco@gmail.com"},{"name":"diegomura","email":"diegomuracciole@gmail.com"},{"name":"lanre-mark","email":"lanre.developer@gmail.com"},{"name":"sunilagrawal","email":"sunilagrawal@gmail.com"},{"name":"guillecura","email":"guille@cura.is"},{"name":"mariosvlad","email":"marios.vladimerou@protonmail.com"},{"name":"federico-po","email":"federico.po@exodus.io"},{"name":"pagan404","email":"saraspap@protonmail.com"}],"homepage":"https://github.com/ExodusMovement/patch-broken-hermes-typed-arrays","bugs":{"url":"https://github.com/ExodusMovement/patch-broken-hermes-typed-arrays/issues"},"dist":{"shasum":"c686f982fc801d9ad4a60e33e6a9f5a40eb5e132","tarball":"https://registry.npmjs.org/@exodus/patch-broken-hermes-typed-arrays/-/patch-broken-hermes-typed-arrays-1.0.0-alpha.1.tgz","fileCount":5,"integrity":"sha512-oYv+2IJxaNVTnF7lJqS+wrW0JisE9kcKlgQnkrdhtlsfRmFlcYPdPSO8eaIXKHKkzKndy3I+ZzTELg+BVi3vSg==","signatures":[{"sig":"MEQCIEUg79/+i+R4UKYroLGpiy0yWqN5CnxhM3gS8P6KLaOvAiACIvoPjUH+EpL1cHPOxoBi19NnWZHmOgzVzBXW9xwwNA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":13388},"main":"index.js","type":"module","gitHead":"998b10885634ad254bb077c58bde4136bb12097c","scripts":{"lint":"eslint .","test":"npm run test:node && npm run test:hermes","lint:fix":"eslint --fix .","test:jsc":"exodus-test --engine jsc:bundle","test:node":"exodus-test --engine node:pure","test:hermes":"exodus-test --engine hermes:bundle"},"_npmUser":{"name":"chalker","email":"chalkerx@gmail.com"},"prettier":"@exodus/prettier","repository":{"url":"git+https://github.com/ExodusMovement/patch-broken-hermes-typed-arrays.git","type":"git"},"_npmVersion":"10.8.2","description":"Fix broken Hermes engine TypedArray implementation for React Native","directories":{},"_nodeVersion":"22.5.1","_hasShrinkwrap":false,"packageManager":"pnpm@9.7.0+sha512.dc09430156b427f5ecfc79888899e1c39d2d690f004be70e05230b72cb173d96839587545d09429b55ac3c429c801b4dc3c0e002f653830a420fa2dd4e3cf9cf","devDependencies":{"eslint":"^8.44.0","@exodus/test":"1.0.0-rc.38","@exodus/prettier":"^1.0.0","hermes-engine-cli":"^0.12.0","@exodus/eslint-config":"^5.24.0"},"_npmOperationalInternal":{"tmp":"tmp/patch-broken-hermes-typed-arrays_1.0.0-alpha.1_1723921875496_0.648504360473299","host":"s3://npm-registry-packages"}}},"time":{"created":"2024-08-15T07:37:34.488Z","modified":"2026-09-25T18:32:16.075Z","1.0.0-alpha.0":"2024-08-15T07:37:34.647Z","1.0.0-alpha.1":"2024-08-17T19:11:15.670Z"},"bugs":{"url":"https://github.com/ExodusMovement/patch-broken-hermes-typed-arrays/issues"},"author":{"name":"Exodus Movement, Inc."},"license":"MIT","homepage":"https://github.com/ExodusMovement/patch-broken-hermes-typed-arrays","keywords":["hermes","buffer","typedarray","fix"],"repository":{"url":"git+https://github.com/ExodusMovement/patch-broken-hermes-typed-arrays.git","type":"git"},"description":"Fix broken Hermes engine TypedArray implementation for React Native","maintainers":[{"email":"julio.vi@exodus.io","name":"juraex"},{"email":"kevinmartensson@gmail.com","name":"kevva"},{"email":"doguhan.gu@exodus.io","name":"doguhan"},{"email":"jan.we@exodus.io","name":"janwe"},{"email":"jprichardson@gmail.com","name":"jprichardson"},{"email":"farisissa8@gmail.com","name":"farisissa"},{"email":"egorvodopyanov@gmail.com","name":"headfire"},{"email":"ywzhaifei@gmail.com","name":"gutenye"},{"email":"moses@exodus.io","name":"mosesbot"},{"email":"daniel@exodus.io","name":"dcastagnoli"},{"email":"ain@abcd.sa","name":"sonaye"},{"email":"mvayngrib@gmail.com","name":"tenaciousmv"},{"email":"asya@exodus.io","name":"asyakost"},{"email":"kbulgakov@yahoo.com","name":"bulgakovk"},{"email":"chalkerx@gmail.com","name":"chalker"},{"email":"andrej-borstnik@hotmail.com","name":"andrejb"},{"email":"jaydp17@gmail.com","name":"jaydp17"},{"email":"moliverafreire@gmail.com","name":"olistic"},{"email":"admin@cryto.net","name":"joepie91"},{"email":"john.staker@ymail.com","name":"merlz"},{"email":"victor@bonini.tech","name":"vbonini"},{"email":"devopsrobot@exodus.io","name":"devopsrobot"},{"email":"jenish@exodus.io","name":"jenish-sojitra"},{"email":"sagar@exodus.io","name":"cryptosgr"},{"email":"diegomuracciole@gmail.com","name":"diegomura"},{"email":"lanre.developer@gmail.com","name":"lanre-mark"},{"email":"federico.po@exodus.io","name":"federico-po"},{"email":"akinncar@hotmail.com","name":"akinncar"},{"email":"fboucquez@gmail.com","name":"fboucquez"},{"email":"tim.la@exodus.io","name":"lanahizzle"},{"email":"kevin.w@exodus.io","name":"kwwood"},{"email":"joshuabot@exodus.io","name":"joshuabot"},{"email":"aly@exodus.io","name":"meniem"},{"email":"alexandr.bbm@gmail.com","name":"alexandrbbm"},{"email":"scottloz@protonmail.com","name":"angelloz"},{"email":"nacho@exodus.io","name":"nacho-exodus"},{"email":"s.pataridze@gmail.com","name":"alex.alexandrius"},{"email":"espinosacurbelo@gmail.com","name":"rec"},{"email":"jamie@exodus.io","name":"jamiemaw"},{"email":"james.gre@exodus.io","name":"james-gre"},{"email":"shehryarshoukat6@gmail.com","name":"shehryar6"},{"email":"clark@exodus.io","name":"clarkexo"},{"email":"tunguyenuni@gmail.com","name":"tunguyennnnn"},{"email":"mikita.hr@exodus.io","name":"mikita-hr"},{"email":"jeremiah.sc@exodus.io","name":"jschopen"},{"email":"marcos.kichel@gmail.com","name":"marcos.kichel"},{"email":"andrew.to@exodus.io","name":"andrewtoth-exodus"},{"email":"julian@exodus.io","name":"kryptkeep"},{"email":"svolsky+npm@xn--zer-2na.net","name":"633kh4ck"},{"email":"mykhailo.ba@exodus.io","name":"mbaraniak-exodus"},{"email":"awesomeniko@pm.me","name":"awesomeniko"},{"email":"simon.schmell@gmail.com","name":"r4vn"},{"email":"ericarlos23@gmail.com","name":"muratso"},{"email":"clintyn.un@exodus.io","name":"clintyn"},{"email":"philip.wa@exodus.io","name":"phil-exodus"},{"email":"jason.yon@exodus.io","name":"exo-jason"},{"email":"agent-neo@exodus.io","name":"exodus-neo"},{"email":"richard.nw@exodus.io","name":"exorich"},{"email":"xian.f.liu@gmail.com","name":"rg911"},{"email":"peter.th@exodus.io","name":"jdmdreamer"},{"email":"tom@exodus.io","name":"thom-exodus"},{"email":"ruben@exodus.io","name":"uanl619"},{"email":"arlen.ca@exodus.io","name":"arlen-exodus"},{"email":"yalomist@gmail.com","name":"yalomist"},{"email":"joshua.ro@exodus.io","name":"joshua-rogers-exodus"},{"email":"me@sripwoud.xyz","name":"sripwoud"},{"email":"gdg@exodus.com","name":"xogdg"},{"email":"christopher.ri@exodus.io","name":"chrisrichexo"},{"email":"josue@exodus.io","name":"josuexo"},{"email":"yevhenii.mo@exodus.io","name":"yevhenii-mo-exodus"},{"email":"bear.hu@exodus.io","name":"bewarden"},{"email":"github@lemu.sh","name":"1emu"},{"email":"andyespagnolo@gmail.com","name":"andyesp"},{"email":"domagoj.je@exodus.io","name":"dj_exodus"}],"readme":"# `@exodus/patch-broken-hermes-typed-arrays`\n\nFix broken Hermes engine TypedArray implementation for React Native\n\nSimply:\n```js\nimport '@exodus/patch-broken-hermes-typed-arrays'\n```\n\n## What is this about?\n\nThe problem behind this issue:\n```js\n> Buffer.alloc(10).subarray(0).toString('hex')\n'0,0,0,0,0,0,0,0,0,0'\n// What?\n```\n\nYou might be inclined to fix the specific location where this is throwing (e.g. with a\n`Buffer.from`), but that is a mistake.\n\nMost important: **it is very hard to track all those**.\n\n_Also, `Buffer.from(arg)` is a copy and inefficiency,\n`Buffer.from(x.buffer, x.byteOffset, x.byteLength)` is awkward, prone to human errors and can\ntrigger security checks for doing something on `buffer.buffer` manually (which is an unsafe\npractice, e.g. a mistype like `x.byteLegnth` can leak passwords/secrets to other users by exposing\nunrelated application memory). You don't want a ton of copies of that pattern in your codebase._\n\nFixing this on `Buffer` (e.g. by monkey-patching it) is also insufficient — your codebase could\ninclude multiple dependencies which bundled [buffer](https://www.npmjs.com/package/buffer), and all\nthose instances won't be fixed that way!\n\nAlso, this affects more than `Buffer` and more than `subarray` — Hermes engine doesn't implement\n[TypedArray](https://tc39.es/ecma262/#sec-%typedarray%-intrinsic-object) correctly.\n\ni.e. Hermes implementation of `TypedArray` doesn't follow these sections of the specification:\n * [ECMAScript® Language Specification, `%TypedArray%.prototype.subarray`](https://tc39.es/ecma262/#sec-%typedarray%.prototype.subarray)\n * [ECMAScript® Language Specification, `%TypedArray%.prototype.map`](https://tc39.es/ecma262/#sec-%typedarray%.prototype.map)\n * [ECMAScript® Language Specification, `%TypedArray%.prototype.filter`](https://tc39.es/ecma262/#sec-%typedarray%.prototype.filter)\n * [ECMAScript® Language Specification, `%TypedArray%.prototype.slice`](https://tc39.es/ecma262/#sec-%typedarray%.prototype.slice)\n\n## The fix\n\nOverall, this module is just a glorified version of the following snippet (but with `.map`/`.filter`\nsupport and safeguards against Hermes updates, to detect if things change).\n\n```js\nTypedArray.prototype.subarray = function (...args) {\n  var arr = subarray.apply(this, args)\n  if (!this.constructor || arr.constructor === this.constructor) return arr\n  return new this.constructor(arr.buffer, arr.byteOffset, arr.length)\n}\n```\n\nNote: the above version might be not spec-compliant if Hermes implements resizable `TypedArray`s\nfrom ECMAScript 2024, or e.g. starts supporting `Symbol.Species`\n\nAlso the snippet above doesn't have a Hermes check, so it will also blindly patch arrays if you\nswitch to JavaScriptCore\n\n_This is why this module exists — it handles all that_\n\n## The problem, in more details\n\nE.g. with [buffer](https://www.npmjs.com/package/buffer):\n\n```js\n// ... import Buffer polyfill from https://npmjs.com/package/buffer\n// ... and a console.log polyfill\nconsole.log(Buffer.alloc(2).subarray(0, 1).constructor.name)\nconsole.log(Buffer.alloc(2).map(() => 1).constructor.name)\nconsole.log(Buffer.alloc(2).filter(() => true).constructor.name)\n```\n\n```console\n% node buftest.0.js                                         \nBuffer\nBuffer\nBuffer\n% jsc buftest.0.js \nBuffer\nBuffer\nBuffer\n% hermes buftest.0.js\nUint8Array\nUint8Array\nUint8Array\n```\n\n### This is not limited to `buffer`\n\n```js\n// Let's assume this will get transpiled for a demo, Hermes has no `class` support\n\nclass TestArray extends Uint16Array {\n  static instances = 0\n  constructor(...args) {\n    super(...args)\n    // console.log('We can do something here!')\n    TestArray.instances++ // count constructor calls\n    return this\n  }\n\n  hello() {\n    return 'hi there'\n  }\n}\n\nvar arr = new TestArray(10)\n// TestArray.instances: 1\n\nvar mapped = arr.map((_, i) => i * 10)\n// TestArray.instances: 2\n\nconsole.log(TestArray.instances) // 2 everywhere, but 1 in Hermes\nconsole.log(mapped.constructor.name) // 'TestArray' everywhere, but 'Uint16Array' in Hermes\nconsole.log(mapped.hello()) // throws in Hermes\n```\n\n## License\n\n[MIT](./LICENSE)\n","readmeFilename":"README.md"}