{"version":3,"names":["exposeGlobal","key","value","Object","defineProperty","global","configurable","enumerable","writable","withZone","scopeFunc","zoneProps","returnValue","incrementExpectedAwaits","newPSD","call","then","e","console","warn","toString","stack","decrementExpectedAwaits","runZoned","fn","zoneValues","Dexie","cop","Promise","self","every","func","Error","globalZone","zone","PSD","parent","Zone","root","current","layer","window","refineClass","Response","text","rest","resolve","proceed","json","ZonifyNativePromisesLayer","beGlobal"],"sources":["lang-zone.js"],"sourcesContent":["import 'lang';\nimport Dexie from \"src/external/dexie3.js\";\n\nimport * as cop from \"src/client/ContextJS/src/contextjs.js\"\n\n\nconst { incrementExpectedAwaits, newPSD, decrementExpectedAwaits } = Dexie.Promise;\n\nconst global = self;\n\nfunction exposeGlobal(key, value) {\n  Object.defineProperty(global, key, {\n    configurable: true,\n    enumerable: true,\n    \n    value,\n    writable: true,\n  });\n}\n\n/*MD\n## ZONES\n\n- a **minimal interface** to zones intended to be as compliant as possible to Dart's [Zone concept](https://dart.dev/articles/archive/zones)\n- intended to be exchangeable in case of future standard or library advancements\n- <span style='background: red'>!only modify if you know what you are doing and understand the **long-term consequences**!</span>\n- currently implemented as a lightweight wrapper around [Dexie.Promise](https://dexie.org/docs/Promise/Promise.PSD)\n  - Caution: we <span style='background: red'>monkey-patched Dexie</span> to access `incrementExpectedAwaits` and `decrementExpectedAwaits` to correctly detect native await on primitives\n\nMD*/\n\n// check if `incrementExpectedAwaits` and `decrementExpectedAwaits` are available\nif (![incrementExpectedAwaits, decrementExpectedAwaits].every(func => typeof func === 'function')) {\n  throw new Error('Dexie not monkey-patched to expose `incrementExpectedAwaits` and `decrementExpectedAwaits`');\n}\n\nconst globalZone = (() => {\n  let zone = Dexie.Promise.PSD;\n  \n  while (!zone.global) {\n    if (zone.parent && zone.parent !== zone) {\n      zone = zone.parent;\n    } else {\n      throw new Error('could not initialize `zones`: no global zone found');\n    }\n  }\n\n  \n  return zone;\n})();\n\n\n\nconst Zone = {\n\n  get root() { return globalZone; },\n\n  get current() { return Dexie.Promise.PSD; }\n\n};\n\nexport function withZone(scopeFunc, zoneProps = {}) {\n  let returnValue;\n  try {\n    incrementExpectedAwaits();\n\n    newPSD(() => {\n      returnValue = scopeFunc.call();\n    }, zoneProps);\n    \n    return returnValue;\n  } finally {\n    if (returnValue && typeof returnValue.then === 'function') {\n      (async () => {\n        try {\n          await returnValue;\n        } catch(e) {\n          // #TODO why are we catching errors here?\n          console.warn(\"Error in withZone: \", e.toString(), e.stack ? e.stack.toString() : \"no stack\")\n          throw e\n        } finally {\n          decrementExpectedAwaits();\n        }\n      })();\n    } else {\n      decrementExpectedAwaits();\n    }\n  }\n}\n\nfunction runZoned(fn, { zoneValues } = {} ) {\n  return withZone(fn, zoneValues);\n}\n\nexposeGlobal('Zone', Zone);\nexposeGlobal('runZoned', runZoned);\n\n// ensure zones in known native promise calls\ncop.layer(window, \"ZonifyNativePromisesLayer\").refineClass(Response, {\n  text(...rest) {\n    return Promise.resolve(cop.proceed(...rest))\n  },\n  \n  json(...rest) {\n    return Promise.resolve(cop.proceed(...rest))\n  }\n})\nZonifyNativePromisesLayer.beGlobal()\n"],"mappings":"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"}