{"version":3,"sources":["shared-data.ts"],"sourcesContent":["import { Datex } from \"datex-core-legacy\";\nimport { UIX_COOKIE, deleteCookie, getCookie, setCookie } from \"./cookies.ts\";\n\n// @ts-ignore\nSymbol.dispose ??= Symbol.for(\"Symbol.dispose\")\n\nexport async function getSharedDataPointer(readHeaders?:Headers, writeHeaders?:Headers, port?: string, isSafariLocalhost = false) {\n\tlet cookieSharedData: Record<string, unknown> & {[Symbol.dispose]?:()=>void}\n\n\tconst cookie = getCookie(UIX_COOKIE.sharedData, readHeaders, port);\n\tif (cookie) {\n\n\t\ttry {\n\t\t\tcookieSharedData = $({__proto__:{}, ...await Datex.Runtime.decodeValueBase64<Record<string, unknown>>(cookie)})\n\t\t}\n\t\tcatch (e) {\n\t\t\tcookieSharedData = $({__proto__:{}})\n\t\t\tconsole.log(e)\n\t\t\tconsole.error(\"Failed to reconstruct shared data\");\n\t\t\tdeleteCookie(UIX_COOKIE.sharedData, writeHeaders, port, isSafariLocalhost)\n\t\t}\n\t}\n\telse {\n\t\tcookieSharedData = $({__proto__:{}})\n\t}\n\n\tcookieSharedData[Symbol.dispose] = () => Datex.ReactiveValue.unobserve(cookieSharedData, update)\n\tconst update = async () => {\n\t\tconsole.debug(\"updating shared data cookie: \\n\" + Datex.Runtime.valueToDatexStringExperimental({...cookieSharedData}, true, true));\n\t\tsetCookie(UIX_COOKIE.sharedData, await Datex.Compiler.encodeValueBase64Async({...cookieSharedData}, undefined, undefined, false, true), undefined, writeHeaders, port, isSafariLocalhost)\n\t};\n\tDatex.ReactiveValue.observe(cookieSharedData, update)\n\n\treturn {sharedData:cookieSharedData, update};\n}"],"names":["Datex","UIX_COOKIE","deleteCookie","getCookie","setCookie","Symbol","dispose","for","getSharedDataPointer","readHeaders","writeHeaders","port","isSafariLocalhost","cookieSharedData","cookie","sharedData","$","__proto__","Runtime","decodeValueBase64","e","console","log","error","ReactiveValue","unobserve","update","debug","valueToDatexStringExperimental","Compiler","encodeValueBase64Async","undefined","observe"],"mappings":"AAAA,SAASA,KAAK,QAAQ,oBAAoB;AAC1C,SAASC,UAAU,EAAEC,YAAY,EAAEC,SAAS,EAAEC,SAAS,QAAQ,eAAe;AAG9EC,OAAOC,OAAO,KAAKD,OAAOE,GAAG,CAAC;AAE9B,OAAO,eAAeC,qBAAqBC,WAAoB,EAAEC,YAAqB,EAAEC,IAAa,EAAEC,oBAAoB,CAAA,CAAK;QAC3HC;IAEJ,IAAMC,SAASX,UAAUF,WAAWc,UAAU,EAAEN,aAAaE;IAC7D,IAAIG,QAEH,IAAI;QACHD,mBAAmBG,EAAE;YAACC,WAAU,CAAC;YAAG,GAAG,MAAMjB,MAAMkB,OAAO,CAACC,iBAAiB,CAA0BL,OAAO;QAAA;IAC9G,EACA,OAAOM,GAAG;QACTP,mBAAmBG,EAAE;YAACC,WAAU,CAAC;QAAC,IAClCI,QAAQC,GAAG,CAACF,IACZC,QAAQE,KAAK,CAAC,sCACdrB,aAAaD,WAAWc,UAAU,EAAEL,cAAcC,MAAMC;IACzD;SAGAC,mBAAmBG,EAAE;QAACC,WAAU,CAAC;IAAC;IAGnCJ,gBAAgB,CAACR,OAAOC,OAAO,CAAC,GAAG,IAAMN,MAAMwB,aAAa,CAACC,SAAS,CAACZ,kBAAkBa;IACzF,IAAMA,SAAS;QACdL,QAAQM,KAAK,CAAC,oCAAoC3B,MAAMkB,OAAO,CAACU,8BAA8B,CAAC;YAAC,GAAGf,gBAAgB;QAAA,GAAG,CAAA,GAAM,CAAA,KAC5HT,UAAUH,WAAWc,UAAU,EAAE,MAAMf,MAAM6B,QAAQ,CAACC,sBAAsB,CAAC;YAAC,GAAGjB,gBAAgB;QAAA,GAAGkB,KAAAA,GAAWA,KAAAA,GAAW,CAAA,GAAO,CAAA,IAAOA,KAAAA,GAAWrB,cAAcC,MAAMC;IACxK;IAGA,OAFAZ,MAAMwB,aAAa,CAACQ,OAAO,CAACnB,kBAAkBa,SAEvC;QAACX,YAAWF;QAAkBa;IAAM;AAC5C","sourceRoot":"/lib/uix-0.4.39/src/session/","file":"shared-data.ts"}