{"version":3,"sources":["jsdelivr-header.js","/npm/json-web3@1.3.5/src/utils.ts","/npm/json-web3@1.3.5/src/index.ts"],"names":[],"mappings":"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","file":"/npm/json-web3@1.3.5/dist/index.js/+esm","sourceRoot":"","sourcesContent":["/**\n * Bundled by jsDelivr using Rollup v4.62.2 and esbuild v0.28.1.\n * Original file: /npm/json-web3@1.3.5/dist/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","export const BIGINT_TAG = '__@json.bigint__'\nexport const TYPEDARRAY_TAG = '__@json.typedarray__'\nexport const ARRAYBUFFER_TAG = '__@json.arraybuffer__'\nexport const DATE_TAG = '__@json.date__'\nexport const MAP_TAG = '__@json.map__'\nexport const SET_TAG = '__@json.set__'\nexport const REGEXP_TAG = '__@json.regexp__'\nexport const URL_TAG = '__@json.url__'\nexport const FUNCTION_TAG = '__@json.function__'\nexport const NUMBER_TAG = '__@json.number__'\n\nconst UDF = 'undefined'\nexport const udf = void UDF\n\nexport const isString = (value: any): value is string => typeof value === 'string'\nexport const hasOwnProperty = (obj: any, prop: string): boolean =>\n  Object.prototype.hasOwnProperty.call(obj, prop)\nexport const isArray = (value: any): value is Array<any> => Array.isArray(value)\nexport const isObject = (value: any): value is Record<string, any> =>\n  value !== null && typeof value === 'object' && !isArray(value)\nexport const isFunction = (value: any): value is Function => typeof value === 'function'\nexport const isBigInt = (value: any): value is bigint => typeof value === 'bigint'\nexport const isDate = (value: any): value is Date => value instanceof Date\nexport const isMap = (value: any): value is Map<any, any> => value instanceof Map\nexport const isSet = (value: any): value is Set<any> => value instanceof Set\nexport const isRegExp = (value: any): value is RegExp => value instanceof RegExp\nexport const isURL = (value: any): value is URL => typeof URL !== UDF && value instanceof URL\nconst isNumber = (value: any): value is number => typeof value === 'number'\nexport const isNonFiniteNumber = (value: any): value is number =>\n  isNumber(value) && !Number.isFinite(value)\nexport const isInteger = (value: any): value is number => Number.isInteger(value)\nconst hasBuffer = (): boolean => typeof Buffer !== UDF && isFunction(Buffer.isBuffer)\n\nexport const isBuffer = (value: any): value is Buffer =>\n  hasBuffer() && isFunction(Buffer.isBuffer) && Buffer.isBuffer(value)\nexport const isArrayBuffer = (value: any): value is ArrayBuffer =>\n  typeof ArrayBuffer !== UDF && value instanceof ArrayBuffer\n\nexport const isTypedArray = (value: any): value is ArrayBufferView => {\n  if (value == null) return false\n  if (typeof ArrayBuffer !== UDF && isFunction(ArrayBuffer.isView) && ArrayBuffer.isView(value)) {\n    return Object.prototype.toString.call(value) !== '[object DataView]'\n  }\n  const tag = Object.prototype.toString.call(value)\n  return tag.endsWith('Array]') && tag !== '[object Array]'\n}\n\nexport const getTypedArrayName = (value: any): string | null => {\n  if (value == null) return null\n  const ctor = (value as any).constructor\n  if (ctor && isString(ctor.name)) return ctor.name\n  const tag = Object.prototype.toString.call(value)\n  const match = /^\\[object (.+)\\]$/.exec(tag)\n  return match ? match[1] : null\n}\n\nconst TYPEDARRAY_CTORS: Record<string, any> = {\n  Int8Array: typeof Int8Array !== UDF ? Int8Array : udf,\n  Uint8Array: typeof Uint8Array !== UDF ? Uint8Array : udf,\n  Uint8ClampedArray: typeof Uint8ClampedArray !== UDF ? Uint8ClampedArray : udf,\n\n  Int16Array: typeof Int16Array !== UDF ? Int16Array : udf,\n  Uint16Array: typeof Uint16Array !== UDF ? Uint16Array : udf,\n  Float16Array: typeof Float16Array !== UDF ? Float16Array : udf,\n\n  Int32Array: typeof Int32Array !== UDF ? Int32Array : udf,\n  Uint32Array: typeof Uint32Array !== UDF ? Uint32Array : udf,\n  Float32Array: typeof Float32Array !== UDF ? Float32Array : udf,\n\n  Float64Array: typeof Float64Array !== UDF ? Float64Array : udf,\n\n  BigInt64Array: typeof BigInt64Array !== UDF ? BigInt64Array : udf,\n  BigUint64Array: typeof BigUint64Array !== UDF ? BigUint64Array : udf,\n}\n\nexport const toHex = (value: Uint8Array): string => {\n  let out = '0x'\n  for (const byte of value) {\n    out += byte.toString(16).padStart(2, '0')\n  }\n  return out\n}\n\nexport const fromHex = (hex: string): Uint8Array => {\n  const normalized = hex.startsWith('0x') ? hex.slice(2) : hex\n  if (normalized.length % 2 !== 0) {\n    throw new Error('Invalid hex string for bytes')\n  }\n\n  if (hasBuffer()) {\n    return Uint8Array.from(Buffer.from(normalized, 'hex'))\n  }\n\n  const out = new Uint8Array(normalized.length / 2)\n  for (let i = 0; i < normalized.length; i += 2) {\n    out[i / 2] = Number.parseInt(normalized.slice(i, i + 2), 16)\n  }\n  return out\n}\n\nexport const toSerializable = (value: any, options: { allowFunction?: boolean } = {}): any => {\n  if (isBigInt(value)) {\n    return { [BIGINT_TAG]: value.toString() }\n  }\n\n  if (isNonFiniteNumber(value)) {\n    return { [NUMBER_TAG]: String(value) }\n  }\n  if (isNumber(value) && !Number.isSafeInteger(value)) {\n    throw new Error('Number exceeds safe integer range')\n  }\n\n  if (isDate(value)) {\n    return { [DATE_TAG]: value.getTime() }\n  }\n\n  if (isMap(value)) {\n    return { [MAP_TAG]: Array.from(value.entries()) }\n  }\n\n  if (isSet(value)) {\n    return { [SET_TAG]: Array.from(value.values()) }\n  }\n\n  if (isRegExp(value)) {\n    return { [REGEXP_TAG]: { source: value.source, flags: value.flags } }\n  }\n\n  if (isURL(value)) {\n    return { [URL_TAG]: value.toString() }\n  }\n\n  if (isFunction(value)) {\n    if (!options.allowFunction) {\n      return value\n    }\n    return { [FUNCTION_TAG]: value.toString() }\n  }\n\n  if (isTypedArray(value)) {\n    const type = getTypedArrayName(value)\n    if (type && TYPEDARRAY_CTORS[type]) {\n      const bytes = new Uint8Array(value.buffer, value.byteOffset, value.byteLength)\n      return { [TYPEDARRAY_TAG]: { type, bytes: toHex(bytes) } }\n    }\n  }\n\n  if (isArrayBuffer(value)) {\n    return { [ARRAYBUFFER_TAG]: { bytes: toHex(new Uint8Array(value)) } }\n  }\n\n  if (\n    value &&\n    isObject(value) &&\n    value.type === 'Buffer' &&\n    isArray(value.data) &&\n    Object.keys(value).length === 2 &&\n    value.data.every((entry: any) => isInteger(entry) && entry >= 0 && entry <= 255)\n  ) {\n    return { [TYPEDARRAY_TAG]: { type: 'Uint8Array', bytes: toHex(Uint8Array.from(value.data)) } }\n  }\n\n  return value\n}\n\nexport const fromSerializable = (value: any, options: { allowFunction?: boolean } = {}): any => {\n  if (value && isObject(value)) {\n    if (hasOwnProperty(value, BIGINT_TAG)) {\n      return BigInt(value[BIGINT_TAG])\n    }\n    if (hasOwnProperty(value, NUMBER_TAG)) {\n      const payload = value[NUMBER_TAG]\n      if (payload === 'NaN') return NaN\n      if (payload === 'Infinity') return Infinity\n      if (payload === '-Infinity') return -Infinity\n      throw new Error('Invalid number payload')\n    }\n    if (hasOwnProperty(value, DATE_TAG)) {\n      return new Date(value[DATE_TAG])\n    }\n    if (hasOwnProperty(value, MAP_TAG)) {\n      const payload = value[MAP_TAG]\n      if (!isArray(payload)) {\n        throw new Error('Invalid map payload')\n      }\n      return new Map(payload)\n    }\n    if (hasOwnProperty(value, SET_TAG)) {\n      const payload = value[SET_TAG]\n      if (!isArray(payload)) {\n        throw new Error('Invalid set payload')\n      }\n      return new Set(payload)\n    }\n    if (hasOwnProperty(value, REGEXP_TAG)) {\n      const payload = value[REGEXP_TAG]\n      if (!payload || !isObject(payload) || !isString(payload.source) || !isString(payload.flags)) {\n        throw new Error('Invalid regexp payload')\n      }\n      return new RegExp(payload.source, payload.flags)\n    }\n    if (hasOwnProperty(value, URL_TAG)) {\n      const payload = value[URL_TAG]\n      if (!isString(payload)) {\n        throw new Error('Invalid URL payload')\n      }\n      return new URL(payload)\n    }\n    if (hasOwnProperty(value, FUNCTION_TAG)) {\n      if (!options.allowFunction) {\n        return value\n      }\n      const payload = value[FUNCTION_TAG]\n      if (!isString(payload)) {\n        throw new Error('Invalid function payload')\n      }\n      return new Function(`return (${payload})`)()\n    }\n    if (hasOwnProperty(value, TYPEDARRAY_TAG)) {\n      const payload = value[TYPEDARRAY_TAG]\n      if (!payload || !isObject(payload) || !isString(payload.type) || !isString(payload.bytes)) {\n        throw new Error('Invalid typed array payload')\n      }\n      const bytes = fromHex(payload.bytes)\n      const ctor = TYPEDARRAY_CTORS[payload.type]\n      if (!ctor) return bytes\n      const buffer = new ArrayBuffer(bytes.byteLength)\n      new Uint8Array(buffer).set(bytes)\n      return new ctor(buffer)\n    }\n    if (hasOwnProperty(value, ARRAYBUFFER_TAG)) {\n      const payload = value[ARRAYBUFFER_TAG]\n      if (!payload || !isObject(payload) || !isString(payload.bytes)) {\n        throw new Error('Invalid arraybuffer payload')\n      }\n      const bytes = fromHex(payload.bytes)\n      const buffer = new ArrayBuffer(bytes.byteLength)\n      new Uint8Array(buffer).set(bytes)\n      return buffer\n    }\n    if (\n      value.type === 'Buffer' &&\n      isArray(value.data) &&\n      Object.keys(value).length === 2 &&\n      value.data.every((entry: any) => isInteger(entry) && entry >= 0 && entry <= 255)\n    ) {\n      return Uint8Array.from(value.data)\n    }\n  }\n  return value\n}\n\nexport const isTypedArrayPayload = (value: any): boolean =>\n  isObject(value) &&\n  isString(value.type) &&\n  isString(value.bytes) &&\n  Object.keys(value).length === 2\n\nexport const isArrayBufferPayload = (value: any): boolean =>\n  isObject(value) && isString(value.bytes) && Object.keys(value).length === 1\n\nexport const isRegExpPayload = (value: any): boolean =>\n  isObject(value) &&\n  isString(value.source) &&\n  isString(value.flags) &&\n  Object.keys(value).length === 2\n","import {\n  ARRAYBUFFER_TAG,\n  BIGINT_TAG,\n  DATE_TAG,\n  fromSerializable,\n  FUNCTION_TAG,\n  isArray,\n  isArrayBufferPayload,\n  isDate,\n  isFunction,\n  isRegExpPayload,\n  isTypedArrayPayload,\n  isURL,\n  MAP_TAG,\n  NUMBER_TAG,\n  REGEXP_TAG,\n  SET_TAG,\n  toSerializable,\n  TYPEDARRAY_TAG,\n  udf,\n  URL_TAG,\n} from './utils'\n\nconst RAW_JSON = JSON\ntype Replacer = ((this: any, key: string, value: any) => any) | Array<string | number> | null\ntype Reviver = ((this: any, key: string, value: any) => any) | null\n\nconst applyReplacer = (holder: any, key: string, value: any, replacer: Replacer): any => {\n  if (isFunction(replacer)) {\n    return replacer(key, value)\n  }\n  if (isArray(replacer)) {\n    if (key === '') return value\n    if (key === BIGINT_TAG) return value\n    if (key === DATE_TAG) return value\n    if (key === NUMBER_TAG) return value\n    if (key === MAP_TAG) return value\n    if (key === SET_TAG) return value\n    if (key === REGEXP_TAG) return value\n    if (key === URL_TAG) return value\n    if (key === FUNCTION_TAG) return value\n    if (key === TYPEDARRAY_TAG) return value\n    if (key === ARRAYBUFFER_TAG) return value\n    if (isTypedArrayPayload(holder)) return value\n    if (isArrayBufferPayload(holder)) return value\n    if (isRegExpPayload(holder)) return value\n    if (isArray(holder)) return value\n    return replacer.includes(key) ? value : udf\n  }\n  return value\n}\n\nexport const stringify = (value: any, replacer: Replacer = null, space?: string | number): string =>\n  RAW_JSON.stringify(\n    value,\n    function replacerFn(key, v) {\n      const holderValue = this && key in Object(this) ? (this as any)[key] : v\n      const candidate = isDate(holderValue) || isURL(holderValue) ? holderValue : v\n      const replaced = applyReplacer(this, key, candidate, replacer)\n      return toSerializable(replaced)\n    },\n    space,\n  )\n\nexport const stringify_UNSAFE = (\n  value: any,\n  replacer: Replacer = null,\n  space?: string | number,\n): string =>\n  RAW_JSON.stringify(\n    value,\n    function replacerFn(key, v) {\n      const holderValue = this && key in Object(this) ? (this as any)[key] : v\n      const candidate = isDate(holderValue) || isURL(holderValue) ? holderValue : v\n      const replaced = applyReplacer(this, key, candidate, replacer)\n      return toSerializable(replaced, { allowFunction: true })\n    },\n    space,\n  )\n\nexport const parse = <T = any>(text: string, reviver: Reviver = null): T =>\n  RAW_JSON.parse(text, (key, v) => {\n    const decoded = fromSerializable(v)\n    return isFunction(reviver) ? reviver(key, decoded) : decoded\n  })\n\nexport const parse_UNSAFE = <T = any>(text: string, reviver: Reviver = null): T =>\n  RAW_JSON.parse(text, (key, v) => {\n    const decoded = fromSerializable(v, { allowFunction: true })\n    return isFunction(reviver) ? reviver(key, decoded) : decoded\n  })\n\nexport default {\n  stringify,\n  parse,\n}\n"]}