{"version":3,"sources":["jsdelivr-header.js","/npm/ziex@0.1.0-dev.598/wasm/init.js"],"names":[],"mappings":"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","file":"/npm/ziex@0.1.0-dev.598/wasm/init.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/ziex@0.1.0-dev.598/wasm/init.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","// ../../vendor/jsz/js/src/zigjs.ts\nvar NAN_PREFIX = 2146959360;\nvar predefined = {\n  nan: 0,\n  null: 1,\n  true: 2,\n  false: 3,\n  undefined: 4,\n  globalThis: 5,\n  runtime: 6\n};\nvar PREDEFINED_ID_MAX = 6;\nvar encoder = new TextEncoder;\nvar decoder = new TextDecoder(\"utf-8\");\n\nclass ZigJS {\n  memory;\n  values = [NaN, null, true, false, undefined, globalThis, this];\n  idPool = [];\n  importObject() {\n    return {\n      \"zig-js\": {\n        valueGet: this.valueGet.bind(this),\n        valueSet: this.valueSet.bind(this),\n        valueDeinit: this.valueDeinit.bind(this),\n        valueObjectCreate: this.valueObjectCreate.bind(this),\n        valueStringCreate: this.valueStringCreate.bind(this),\n        valueStringLen: this.valueStringLen.bind(this),\n        valueStringCopy: this.valueStringCopy.bind(this),\n        valueNew: this.valueNew.bind(this),\n        funcApply: this.funcApply.bind(this)\n      }\n    };\n  }\n  valueGet(out, id, ptr, len) {\n    const val = this.loadValue(id);\n    const str = this.loadString(ptr, len);\n    const result = Reflect.get(val, str);\n    this.storeValue(out, result);\n  }\n  valueSet(id, ptr, len, refAddr) {\n    const obj = this.loadValue(id);\n    const str = this.loadString(ptr, len);\n    const val = this.loadRef(refAddr);\n    Reflect.set(obj, str, val);\n  }\n  valueDeinit(id) {\n    if (id > PREDEFINED_ID_MAX) {\n      this.values[id] = null;\n      this.idPool.push(id);\n    }\n  }\n  valueObjectCreate(out) {\n    this.storeValue(out, new Object);\n  }\n  valueStringCreate(out, ptr, len) {\n    const str = this.loadString(ptr, len);\n    this.storeValue(out, str);\n  }\n  valueStringLen(id) {\n    const val = this.loadValue(id);\n    const buf = encoder.encode(val);\n    return buf.byteLength;\n  }\n  valueStringCopy(id, ptr, max) {\n    if (this.memory == null)\n      return;\n    const val = this.loadValue(id);\n    const bytes = encoder.encode(val);\n    if (bytes.byteLength > max)\n      return;\n    new Uint8Array(this.memory.buffer, ptr, bytes.length).set(bytes);\n  }\n  valueNew(out, id, argsAddr, argsLen) {\n    const fn = this.loadValue(id);\n    const args = [];\n    for (let i = 0;i < argsLen; i++) {\n      args.push(this.loadRef(argsAddr + i * 8));\n    }\n    const result = Reflect.construct(fn, args);\n    this.storeValue(out, result);\n  }\n  funcApply(out, id, thisRefAddr, argsAddr, argsLen) {\n    const fn = this.loadValue(id);\n    const thisVal = this.loadRef(thisRefAddr);\n    const args = [];\n    for (let i = 0;i < argsLen; i++) {\n      args.push(this.loadRef(argsAddr + i * 8));\n    }\n    const result = Reflect.apply(fn, thisVal, args);\n    this.storeValue(out, result);\n  }\n  loadValue(id) {\n    return this.values[id];\n  }\n  deleteValue(id) {\n    const val = this.values[id];\n    this.valueDeinit(id);\n    return val;\n  }\n  loadRef(refAddr) {\n    if (this.memory == null)\n      return;\n    const view = new DataView(this.memory.buffer);\n    const floatVal = view.getFloat64(refAddr, true);\n    if (!isNaN(floatVal))\n      return floatVal;\n    const id = this.loadRefId(refAddr);\n    return this.values[id];\n  }\n  loadRefId(refAddr) {\n    if (this.memory == null)\n      return 0;\n    return new DataView(this.memory.buffer).getUint32(refAddr, true);\n  }\n  storeValue(out, val) {\n    if (this.memory == null)\n      return;\n    const view = new DataView(this.memory.buffer);\n    if (typeof val === \"number\") {\n      if (isNaN(val)) {\n        view.setUint32(out, predefined.nan, true);\n        view.setUint32(out + 4, NAN_PREFIX, true);\n      } else {\n        view.setFloat64(out, val, true);\n      }\n      return;\n    }\n    if (val === null) {\n      view.setUint32(out, predefined.null, true);\n      view.setUint32(out + 4, NAN_PREFIX, true);\n      return;\n    }\n    if (val === undefined) {\n      view.setUint32(out, predefined.undefined, true);\n      view.setUint32(out + 4, NAN_PREFIX, true);\n      return;\n    }\n    let id = this.idPool.pop();\n    if (id === undefined) {\n      id = this.values.length;\n    }\n    this.values[id] = val;\n    let typeId = 0;\n    switch (typeof val) {\n      case \"object\":\n        typeId = 1;\n        break;\n      case \"string\":\n        typeId = 2;\n        break;\n      case \"symbol\":\n        typeId = 3;\n        break;\n      case \"function\":\n        typeId = 4;\n        break;\n    }\n    view.setUint32(out, Number(id), true);\n    view.setUint32(out + 4, NAN_PREFIX | typeId, true);\n  }\n  loadString(ptr, len) {\n    if (this.memory == null)\n      return \"\";\n    const arr = new Uint8ClampedArray(this.memory.buffer, ptr, Number(len));\n    const data = arr.slice();\n    return decoder.decode(data);\n  }\n}\n// src/wasm/index.ts\nvar CallbackType = {\n  Event: 0,\n  FetchSuccess: 1,\n  FetchError: 2,\n  Timeout: 3,\n  Interval: 4,\n  WebSocketOpen: 5,\n  WebSocketMessage: 6,\n  WebSocketError: 7,\n  WebSocketClose: 8\n};\nvar jsz = new ZigJS;\nvar tempRefBuffer = new ArrayBuffer(8);\nvar tempRefView = new DataView(tempRefBuffer);\nfunction storeValueGetRef(val) {\n  const originalMemory = jsz.memory;\n  jsz.memory = { buffer: tempRefBuffer };\n  jsz.storeValue(0, val);\n  jsz.memory = originalMemory;\n  return tempRefView.getBigUint64(0, true);\n}\nfunction readString(ptr, len) {\n  const memory = new Uint8Array(jsz.memory.buffer);\n  return new TextDecoder().decode(memory.slice(ptr, ptr + len));\n}\nfunction writeBytes(ptr, data) {\n  const memory = new Uint8Array(jsz.memory.buffer);\n  memory.set(data, ptr);\n}\n\nclass ZxBridge {\n  #exports;\n  #intervals = new Map;\n  #websockets = new Map;\n  constructor(exports) {\n    this.#exports = exports;\n  }\n  get #handler() {\n    return this.#exports.__zx_cb;\n  }\n  get #fetchCompleteHandler() {\n    return this.#exports.__zx_fetch_complete;\n  }\n  get #wsOnOpenHandler() {\n    return this.#exports.__zx_ws_onopen;\n  }\n  get #wsOnMessageHandler() {\n    return this.#exports.__zx_ws_onmessage;\n  }\n  get #wsOnErrorHandler() {\n    return this.#exports.__zx_ws_onerror;\n  }\n  get #wsOnCloseHandler() {\n    return this.#exports.__zx_ws_onclose;\n  }\n  #invoke(type, id, data) {\n    const handler = this.#handler;\n    if (!handler) {\n      console.warn(\"__zx_cb not exported from WASM\");\n      return;\n    }\n    const dataRef = storeValueGetRef(data);\n    handler(type, id, dataRef);\n  }\n  fetchAsync(urlPtr, urlLen, methodPtr, methodLen, headersPtr, headersLen, bodyPtr, bodyLen, timeoutMs, fetchId) {\n    const url = readString(urlPtr, urlLen);\n    const method = methodLen > 0 ? readString(methodPtr, methodLen) : \"GET\";\n    const headersJson = headersLen > 0 ? readString(headersPtr, headersLen) : \"{}\";\n    const body = bodyLen > 0 ? readString(bodyPtr, bodyLen) : undefined;\n    let headers = {};\n    try {\n      headers = JSON.parse(headersJson);\n    } catch {\n      for (const line of headersJson.split(`\n`)) {\n        const colonIdx = line.indexOf(\":\");\n        if (colonIdx > 0) {\n          headers[line.slice(0, colonIdx)] = line.slice(colonIdx + 1);\n        }\n      }\n    }\n    const controller = new AbortController;\n    const timeout = timeoutMs > 0 ? setTimeout(() => controller.abort(), timeoutMs) : null;\n    const fetchOptions = {\n      method,\n      headers: Object.keys(headers).length > 0 ? headers : undefined,\n      body: method !== \"GET\" && method !== \"HEAD\" ? body : undefined,\n      signal: controller.signal\n    };\n    fetch(url, fetchOptions).then(async (response) => {\n      if (timeout)\n        clearTimeout(timeout);\n      const text = await response.text();\n      this.#notifyFetchComplete(fetchId, response.status, text, false);\n    }).catch((error) => {\n      if (timeout)\n        clearTimeout(timeout);\n      const isAbort = error.name === \"AbortError\";\n      const errorMsg = isAbort ? \"Request timeout\" : error.message ?? \"Fetch failed\";\n      this.#notifyFetchComplete(fetchId, 0, errorMsg, true);\n    });\n  }\n  #notifyFetchComplete(fetchId, statusCode, body, isError) {\n    const handler = this.#fetchCompleteHandler;\n    if (!handler) {\n      console.warn(\"__zx_fetch_complete not exported from WASM\");\n      return;\n    }\n    const encoded = new TextEncoder().encode(body);\n    const allocFn = this.#exports.__zx_alloc;\n    let ptr = 0;\n    if (allocFn) {\n      ptr = allocFn(encoded.length);\n    } else {\n      const heapBase = this.#exports.__heap_base?.value ?? 65536;\n      ptr = heapBase + Number(fetchId % BigInt(256)) * 65536;\n    }\n    writeBytes(ptr, encoded);\n    handler(fetchId, statusCode, ptr, encoded.length, isError ? 1 : 0);\n  }\n  setTimeout(callbackId, delayMs) {\n    setTimeout(() => {\n      this.#invoke(CallbackType.Timeout, callbackId, null);\n    }, delayMs);\n  }\n  setInterval(callbackId, intervalMs) {\n    const handle = setInterval(() => {\n      this.#invoke(CallbackType.Interval, callbackId, null);\n    }, intervalMs);\n    this.#intervals.set(callbackId, handle);\n  }\n  clearInterval(callbackId) {\n    const handle = this.#intervals.get(callbackId);\n    if (handle !== undefined) {\n      clearInterval(handle);\n      this.#intervals.delete(callbackId);\n    }\n  }\n  wsConnect(wsId, urlPtr, urlLen, protocolsPtr, protocolsLen) {\n    const url = readString(urlPtr, urlLen);\n    const protocolsStr = protocolsLen > 0 ? readString(protocolsPtr, protocolsLen) : \"\";\n    const protocols = protocolsStr ? protocolsStr.split(\",\").map((p) => p.trim()).filter(Boolean) : undefined;\n    try {\n      const ws = protocols && protocols.length > 0 ? new WebSocket(url, protocols) : new WebSocket(url);\n      ws.binaryType = \"arraybuffer\";\n      ws.onopen = () => {\n        const handler = this.#wsOnOpenHandler;\n        if (!handler)\n          return;\n        const protocol = ws.protocol || \"\";\n        const { ptr, len } = this.#writeStringToWasm(protocol);\n        handler(wsId, ptr, len);\n      };\n      ws.onmessage = (event) => {\n        const handler = this.#wsOnMessageHandler;\n        if (!handler)\n          return;\n        const isBinary = event.data instanceof ArrayBuffer;\n        let data;\n        if (isBinary) {\n          data = new Uint8Array(event.data);\n        } else {\n          data = new TextEncoder().encode(event.data);\n        }\n        const { ptr, len } = this.#writeBytesToWasm(data);\n        handler(wsId, ptr, len, isBinary ? 1 : 0);\n      };\n      ws.onerror = (event) => {\n        const handler = this.#wsOnErrorHandler;\n        if (!handler)\n          return;\n        const msg = \"WebSocket error\";\n        const { ptr, len } = this.#writeStringToWasm(msg);\n        handler(wsId, ptr, len);\n      };\n      ws.onclose = (event) => {\n        const handler = this.#wsOnCloseHandler;\n        if (!handler)\n          return;\n        const reason = event.reason || \"\";\n        const { ptr, len } = this.#writeStringToWasm(reason);\n        handler(wsId, event.code, ptr, len, event.wasClean ? 1 : 0);\n        this.#websockets.delete(wsId);\n      };\n      this.#websockets.set(wsId, ws);\n    } catch (error) {\n      const handler = this.#wsOnErrorHandler;\n      if (handler) {\n        const msg = error instanceof Error ? error.message : \"WebSocket connection failed\";\n        const { ptr, len } = this.#writeStringToWasm(msg);\n        handler(wsId, ptr, len);\n      }\n    }\n  }\n  wsSend(wsId, dataPtr, dataLen, isBinary) {\n    const ws = this.#websockets.get(wsId);\n    if (!ws || ws.readyState !== WebSocket.OPEN)\n      return;\n    const memory = new Uint8Array(jsz.memory.buffer);\n    const data = memory.slice(dataPtr, dataPtr + dataLen);\n    if (isBinary) {\n      ws.send(data.buffer.slice(data.byteOffset, data.byteOffset + data.byteLength));\n    } else {\n      ws.send(new TextDecoder().decode(data));\n    }\n  }\n  wsClose(wsId, code, reasonPtr, reasonLen) {\n    const ws = this.#websockets.get(wsId);\n    if (!ws)\n      return;\n    const reason = reasonLen > 0 ? readString(reasonPtr, reasonLen) : undefined;\n    try {\n      if (reason) {\n        ws.close(code, reason);\n      } else {\n        ws.close(code);\n      }\n    } catch {\n      ws.close();\n    }\n  }\n  #writeStringToWasm(str) {\n    const encoded = new TextEncoder().encode(str);\n    return this.#writeBytesToWasm(encoded);\n  }\n  #writeBytesToWasm(data) {\n    const allocFn = this.#exports.__zx_alloc;\n    let ptr = 0;\n    if (allocFn) {\n      ptr = allocFn(data.length);\n    } else {\n      const heapBase = this.#exports.__heap_base?.value ?? 65536;\n      ptr = heapBase + Date.now() % 256 * 4096;\n    }\n    writeBytes(ptr, data);\n    return { ptr, len: data.length };\n  }\n  eventbridge(velementId, eventTypeId, event) {\n    const eventRef = storeValueGetRef(event);\n    const eventbridge = this.#exports.__zx_eventbridge;\n    if (eventbridge)\n      eventbridge(velementId, eventTypeId, eventRef);\n  }\n  static createImportObject(bridgeRef) {\n    return {\n      ...jsz.importObject(),\n      __zx: {\n        _fetchAsync: (urlPtr, urlLen, methodPtr, methodLen, headersPtr, headersLen, bodyPtr, bodyLen, timeoutMs, fetchId) => {\n          bridgeRef.current?.fetchAsync(urlPtr, urlLen, methodPtr, methodLen, headersPtr, headersLen, bodyPtr, bodyLen, timeoutMs, fetchId);\n        },\n        _setTimeout: (callbackId, delayMs) => {\n          bridgeRef.current?.setTimeout(callbackId, delayMs);\n        },\n        _setInterval: (callbackId, intervalMs) => {\n          bridgeRef.current?.setInterval(callbackId, intervalMs);\n        },\n        _clearInterval: (callbackId) => {\n          bridgeRef.current?.clearInterval(callbackId);\n        },\n        _wsConnect: (wsId, urlPtr, urlLen, protocolsPtr, protocolsLen) => {\n          bridgeRef.current?.wsConnect(wsId, urlPtr, urlLen, protocolsPtr, protocolsLen);\n        },\n        _wsSend: (wsId, dataPtr, dataLen, isBinary) => {\n          bridgeRef.current?.wsSend(wsId, dataPtr, dataLen, isBinary);\n        },\n        _wsClose: (wsId, code, reasonPtr, reasonLen) => {\n          bridgeRef.current?.wsClose(wsId, code, reasonPtr, reasonLen);\n        }\n      }\n    };\n  }\n}\nvar DELEGATED_EVENTS = [\n  \"click\",\n  \"dblclick\",\n  \"input\",\n  \"change\",\n  \"submit\",\n  \"focus\",\n  \"blur\",\n  \"keydown\",\n  \"keyup\",\n  \"keypress\",\n  \"mouseenter\",\n  \"mouseleave\",\n  \"mousedown\",\n  \"mouseup\",\n  \"mousemove\",\n  \"touchstart\",\n  \"touchend\",\n  \"touchmove\",\n  \"scroll\"\n];\nvar EVENT_TYPE_MAP = {\n  click: 0,\n  dblclick: 1,\n  input: 2,\n  change: 3,\n  submit: 4,\n  focus: 5,\n  blur: 6,\n  keydown: 7,\n  keyup: 8,\n  keypress: 9,\n  mouseenter: 10,\n  mouseleave: 11,\n  mousedown: 12,\n  mouseup: 13,\n  mousemove: 14,\n  touchstart: 15,\n  touchend: 16,\n  touchmove: 17,\n  scroll: 18\n};\nfunction initEventDelegation(bridge, rootSelector = \"body\") {\n  const root = document.querySelector(rootSelector);\n  if (!root)\n    return;\n  for (const eventType of DELEGATED_EVENTS) {\n    root.addEventListener(eventType, (event) => {\n      let target = event.target;\n      while (target && target !== document.body) {\n        const zxRef = target.__zx_ref;\n        if (zxRef !== undefined) {\n          bridge.eventbridge(BigInt(zxRef), EVENT_TYPE_MAP[eventType] ?? 0, event);\n          break;\n        }\n        target = target.parentElement;\n      }\n    }, { passive: eventType.startsWith(\"touch\") || eventType === \"scroll\" });\n  }\n}\nvar DEFAULT_URL = \"/assets/main.wasm\";\nasync function init(options = {}) {\n  const url = options.url ?? DEFAULT_URL;\n  const bridgeRef = { current: null };\n  const importObject = Object.assign({}, ZxBridge.createImportObject(bridgeRef), options.importObject);\n  const source = await WebAssembly.instantiateStreaming(fetch(url), importObject);\n  const { instance } = source;\n  jsz.memory = instance.exports.memory;\n  const bridge = new ZxBridge(instance.exports);\n  bridgeRef.current = bridge;\n  initEventDelegation(bridge, options.eventDelegationRoot ?? \"body\");\n  const main = instance.exports.mainClient;\n  if (typeof main === \"function\")\n    main();\n  return { source, bridge };\n}\n\n// src/wasm/init.ts\n(() => init())();\n"]}