snipe/web/node_modules/@exodus/bytes/hex.node.js
pyr0ball 7a704441a6 feat(snipe): Vue 3 frontend scaffold + Docker web service
- web/: Vue 3 + Vite + UnoCSS + Pinia, dark tactical theme (amber/#0d1117)
- AppNav, ListingCard, SearchView with filters/sort, composables
  (useSnipeMode, useKonamiCode, useMotion), Pinia search store
- Steal shimmer, auction countdown, Snipe Mode easter egg all native in Vue
- docker/web/: nginx + multi-stage Dockerfile (node build → nginx serve)
- compose.yml: api (8510) + web (8509) services
- Dockerfile CMD updated to uvicorn for upcoming FastAPI layer
- Clean build: 0 TS errors, 380 modules
2026-03-25 15:11:35 -07:00

37 lines
1.6 KiB
JavaScript

import { assertU8, fromBuffer, fromUint8, E_STRING } from './fallback/_utils.js'
import { E_HEX } from './fallback/hex.js'
if (Buffer.TYPED_ARRAY_SUPPORT) throw new Error('Unexpected Buffer polyfill')
const { toHex: webHex } = Uint8Array.prototype // Modern engines have this
const denoBug = Buffer.from('ag', 'hex').length > 0
export function toHex(arr) {
assertU8(arr)
if (arr.length === 0) return ''
if (webHex && arr.toHex === webHex) return arr.toHex()
if (arr.constructor === Buffer && Buffer.isBuffer(arr)) return arr.hexSlice(0, arr.byteLength)
return Buffer.from(arr.buffer, arr.byteOffset, arr.byteLength).hexSlice(0, arr.byteLength)
}
// Unlike Buffer.from(), throws on invalid input
export const fromHex = Uint8Array.fromHex
? (str, format = 'uint8') => fromUint8(Uint8Array.fromHex(str), format)
: (str, format = 'uint8') => {
if (typeof str !== 'string') throw new TypeError(E_STRING)
if (str.length % 2 !== 0) throw new SyntaxError(E_HEX)
if (denoBug && /[^\dA-Fa-f]/.test(str)) throw new SyntaxError(E_HEX)
// 64 bytes or less, in heap
if (str.length <= 128) {
const buf = Buffer.from(str, 'hex')
if (buf.length * 2 !== str.length) throw new SyntaxError(E_HEX)
return fromBuffer(buf, format)
}
const length = str.length / 2
const buf = format === 'buffer' ? Buffer.allocUnsafe(length) : Buffer.allocUnsafeSlow(length) // avoid pooling
const count = buf.hexWrite(str, 0, length)
if (count !== length) throw new SyntaxError(E_HEX) // will stop on first non-hex character, so we can just validate length
return fromBuffer(buf, format)
}