{"version":3,"file":"web.js","names":[],"sources":["esm/background/web.js"],"sourcesContent":["function createWorkerExecutor(createWorker) {\n  const worker = createWorker();\n  let disposed = false;\n  let failure = null;\n  let pending = null;\n  function fail(error) {\n    if (disposed || failure) return;\n    failure = error;\n    worker.terminate();\n    const rejected = pending;\n    pending = null;\n    rejected?.reject(error);\n  }\n  worker.onmessage = (event) => {\n    const response = event.data;\n    const revision = response.ok ? response.result.revision : response.revision;\n    if (!pending || revision !== pending.revision) return;\n    const accepted = pending;\n    pending = null;\n    if (response.ok) accepted.resolve(response.result);\n    else accepted.reject(new Error(response.error));\n  };\n  worker.onerror = (event) => {\n    event.preventDefault();\n    fail(new Error(event.message));\n  };\n  worker.onmessageerror = () => fail(new Error(\"background worker response could not be decoded\"));\n  return {\n    execute(request, isCurrent) {\n      if (disposed || !isCurrent(request.revision)) return Promise.resolve(null);\n      if (failure) return Promise.reject(failure);\n      if (pending) throw new Error(\"background calculations must run serially\");\n      return new Promise((resolve, reject) => {\n        pending = { revision: request.revision, resolve, reject };\n        try {\n          worker.postMessage(request);\n        } catch (error) {\n          pending = null;\n          reject(error instanceof Error ? error : new Error(String(error)));\n        }\n      });\n    },\n    dispose() {\n      if (disposed) return;\n      disposed = true;\n      if (!failure) worker.terminate();\n      const rejected = pending;\n      pending = null;\n      rejected?.reject(new Error(\"background computation disposed\"));\n    }\n  };\n}\nexport {\n  createWorkerExecutor\n};\n//# sourceMappingURL=web.js.map\n"],"mappings":";AAAA,SAAS,qBAAqB,cAAc;CAC1C,MAAM,SAAS,aAAa;CAC5B,IAAI,WAAW;CACf,IAAI,UAAU;CACd,IAAI,UAAU;CACd,SAAS,KAAK,OAAO;EACnB,IAAI,YAAY,SAAS;EACzB,UAAU;EACV,OAAO,UAAU;EACjB,MAAM,WAAW;EACjB,UAAU;EACV,UAAU,OAAO,KAAK;CACxB;CACA,OAAO,aAAa,UAAU;EAC5B,MAAM,WAAW,MAAM;EACvB,MAAM,WAAW,SAAS,KAAK,SAAS,OAAO,WAAW,SAAS;EACnE,IAAI,CAAC,WAAW,aAAa,QAAQ,UAAU;EAC/C,MAAM,WAAW;EACjB,UAAU;EACV,IAAI,SAAS,IAAI,SAAS,QAAQ,SAAS,MAAM;OAC5C,SAAS,OAAO,IAAI,MAAM,SAAS,KAAK,CAAC;CAChD;CACA,OAAO,WAAW,UAAU;EAC1B,MAAM,eAAe;EACrB,KAAK,IAAI,MAAM,MAAM,OAAO,CAAC;CAC/B;CACA,OAAO,uBAAuB,KAAK,IAAI,MAAM,iDAAiD,CAAC;CAC/F,OAAO;EACL,QAAQ,SAAS,WAAW;GAC1B,IAAI,YAAY,CAAC,UAAU,QAAQ,QAAQ,GAAG,OAAO,QAAQ,QAAQ,IAAI;GACzE,IAAI,SAAS,OAAO,QAAQ,OAAO,OAAO;GAC1C,IAAI,SAAS,MAAM,IAAI,MAAM,2CAA2C;GACxE,OAAO,IAAI,SAAS,SAAS,WAAW;IACtC,UAAU;KAAE,UAAU,QAAQ;KAAU;KAAS;IAAO;IACxD,IAAI;KACF,OAAO,YAAY,OAAO;IAC5B,SAAS,OAAO;KACd,UAAU;KACV,OAAO,iBAAiB,QAAQ,QAAQ,IAAI,MAAM,OAAO,KAAK,CAAC,CAAC;IAClE;GACF,CAAC;EACH;EACA,UAAU;GACR,IAAI,UAAU;GACd,WAAW;GACX,IAAI,CAAC,SAAS,OAAO,UAAU;GAC/B,MAAM,WAAW;GACjB,UAAU;GACV,UAAU,OAAO,IAAI,MAAM,iCAAiC,CAAC;EAC/D;CACF;AACF"}