@multiplatform.one/frappe 6.6.0 → 7.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/cjs/auth.native.js.map +1 -1
- package/dist/cjs/call.native.js.map +1 -1
- package/dist/cjs/collection.native.js.map +1 -1
- package/dist/cjs/common/types.native.js.map +1 -1
- package/dist/cjs/core/http.cjs +45 -1
- package/dist/cjs/core/http.native.js +72 -1
- package/dist/cjs/core/http.native.js.map +1 -1
- package/dist/cjs/core/types.native.js.map +1 -1
- package/dist/cjs/core/wire.native.js.map +1 -1
- package/dist/cjs/db.native.js.map +1 -1
- package/dist/cjs/devtools/FrappeDevtoolsPanel.native.js.map +1 -1
- package/dist/cjs/devtools/index.native.js.map +1 -1
- package/dist/cjs/devtools/plugin.native.js.map +1 -1
- package/dist/cjs/devtools/theme.native.js.map +1 -1
- package/dist/cjs/doctype.cjs +15 -2
- package/dist/cjs/doctype.native.js +22 -5
- package/dist/cjs/doctype.native.js.map +1 -1
- package/dist/cjs/file.native.js.map +1 -1
- package/dist/cjs/fixtureDb.native.js.map +1 -1
- package/dist/cjs/fixtures.native.js.map +1 -1
- package/dist/cjs/frappeApp.native.js.map +1 -1
- package/dist/cjs/frappeReact.cjs +55 -1
- package/dist/cjs/frappeReact.native.js +67 -2
- package/dist/cjs/frappeReact.native.js.map +1 -1
- package/dist/cjs/index.cjs +8 -0
- package/dist/cjs/index.native.js +10 -2
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/optimistic.cjs +32 -2
- package/dist/cjs/optimistic.native.js +34 -1
- package/dist/cjs/optimistic.native.js.map +1 -1
- package/dist/cjs/pacer.native.js.map +1 -1
- package/dist/cjs/plugin/index.native.js.map +1 -1
- package/dist/cjs/realtime.cjs +234 -11
- package/dist/cjs/realtime.native.js +368 -18
- package/dist/cjs/realtime.native.js.map +1 -1
- package/dist/cjs/sync/backfill.native.js.map +1 -1
- package/dist/cjs/sync/filters.native.js.map +1 -1
- package/dist/cjs/sync/index.cjs +45 -1
- package/dist/cjs/sync/index.native.js +71 -1
- package/dist/cjs/sync/index.native.js.map +1 -1
- package/dist/cjs/sync/merge.native.js.map +1 -1
- package/dist/cjs/sync/mutationEngine.cjs +51 -15
- package/dist/cjs/sync/mutationEngine.native.js +69 -16
- package/dist/cjs/sync/mutationEngine.native.js.map +1 -1
- package/dist/cjs/sync/mutationJournal.cjs +8 -0
- package/dist/cjs/sync/mutationJournal.native.js +10 -0
- package/dist/cjs/sync/mutationJournal.native.js.map +1 -1
- package/dist/cjs/sync/normalizedCache.native.js.map +1 -1
- package/dist/cjs/sync/persistence.native.js.map +1 -1
- package/dist/cjs/sync/realtime.native.js.map +1 -1
- package/dist/cjs/sync/rehydration.native.js.map +1 -1
- package/dist/cjs/sync/storage.native.js.map +1 -1
- package/dist/cjs/sync/subscriptionManager.native.js.map +1 -1
- package/dist/cjs/sync/types.native.js.map +1 -1
- package/dist/cjs/sync/virtualPageManager.native.js.map +1 -1
- package/dist/cjs/useLiveQuery.native.js.map +1 -1
- package/dist/cjs/util.native.js.map +1 -1
- package/dist/esm/auth.native.js.map +1 -1
- package/dist/esm/call.native.js.map +1 -1
- package/dist/esm/collection.native.js +1 -1
- package/dist/esm/collection.native.js.map +1 -1
- package/dist/esm/common/types.native.js.map +1 -1
- package/dist/esm/core/http.mjs +45 -2
- package/dist/esm/core/http.mjs.map +1 -1
- package/dist/esm/core/http.native.js +74 -4
- package/dist/esm/core/http.native.js.map +1 -1
- package/dist/esm/core/types.native.js.map +1 -1
- package/dist/esm/core/wire.native.js.map +1 -1
- package/dist/esm/db.native.js +1 -1
- package/dist/esm/db.native.js.map +1 -1
- package/dist/esm/devtools/FrappeDevtoolsPanel.native.js +2 -2
- package/dist/esm/devtools/FrappeDevtoolsPanel.native.js.map +1 -1
- package/dist/esm/devtools/index.native.js +2 -2
- package/dist/esm/devtools/index.native.js.map +1 -1
- package/dist/esm/devtools/plugin.native.js +1 -1
- package/dist/esm/devtools/plugin.native.js.map +1 -1
- package/dist/esm/devtools/theme.native.js.map +1 -1
- package/dist/esm/doctype.mjs +15 -2
- package/dist/esm/doctype.mjs.map +1 -1
- package/dist/esm/doctype.native.js +23 -6
- package/dist/esm/doctype.native.js.map +1 -1
- package/dist/esm/file.native.js.map +1 -1
- package/dist/esm/fixtureDb.native.js +1 -1
- package/dist/esm/fixtureDb.native.js.map +1 -1
- package/dist/esm/fixtures.native.js.map +1 -1
- package/dist/esm/frappeApp.native.js +7 -7
- package/dist/esm/frappeApp.native.js.map +1 -1
- package/dist/esm/frappeReact.mjs +55 -3
- package/dist/esm/frappeReact.mjs.map +1 -1
- package/dist/esm/frappeReact.native.js +73 -10
- package/dist/esm/frappeReact.native.js.map +1 -1
- package/dist/esm/index.mjs +5 -5
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +22 -22
- package/dist/esm/index.native.js.map +1 -1
- package/dist/esm/optimistic.mjs +27 -1
- package/dist/esm/optimistic.mjs.map +1 -1
- package/dist/esm/optimistic.native.js +30 -1
- package/dist/esm/optimistic.native.js.map +1 -1
- package/dist/esm/pacer.mjs.map +1 -1
- package/dist/esm/pacer.native.js +4 -4
- package/dist/esm/pacer.native.js.map +1 -1
- package/dist/esm/plugin/index.native.js.map +1 -1
- package/dist/esm/realtime.mjs +234 -11
- package/dist/esm/realtime.mjs.map +1 -1
- package/dist/esm/realtime.native.js +369 -19
- package/dist/esm/realtime.native.js.map +1 -1
- package/dist/esm/sync/backfill.native.js +1 -1
- package/dist/esm/sync/backfill.native.js.map +1 -1
- package/dist/esm/sync/filters.native.js.map +1 -1
- package/dist/esm/sync/index.mjs +45 -1
- package/dist/esm/sync/index.mjs.map +1 -1
- package/dist/esm/sync/index.native.js +79 -9
- package/dist/esm/sync/index.native.js.map +1 -1
- package/dist/esm/sync/merge.native.js.map +1 -1
- package/dist/esm/sync/mutationEngine.mjs +51 -15
- package/dist/esm/sync/mutationEngine.mjs.map +1 -1
- package/dist/esm/sync/mutationEngine.native.js +73 -20
- package/dist/esm/sync/mutationEngine.native.js.map +1 -1
- package/dist/esm/sync/mutationJournal.mjs +8 -0
- package/dist/esm/sync/mutationJournal.mjs.map +1 -1
- package/dist/esm/sync/mutationJournal.native.js +11 -1
- package/dist/esm/sync/mutationJournal.native.js.map +1 -1
- package/dist/esm/sync/normalizedCache.native.js.map +1 -1
- package/dist/esm/sync/persistence.native.js +2 -2
- package/dist/esm/sync/persistence.native.js.map +1 -1
- package/dist/esm/sync/realtime.native.js +1 -1
- package/dist/esm/sync/realtime.native.js.map +1 -1
- package/dist/esm/sync/rehydration.native.js +1 -1
- package/dist/esm/sync/rehydration.native.js.map +1 -1
- package/dist/esm/sync/storage.native.js.map +1 -1
- package/dist/esm/sync/subscriptionManager.native.js +4 -4
- package/dist/esm/sync/subscriptionManager.native.js.map +1 -1
- package/dist/esm/sync/types.mjs.map +1 -1
- package/dist/esm/sync/types.native.js.map +1 -1
- package/dist/esm/sync/virtualPageManager.native.js +1 -1
- package/dist/esm/sync/virtualPageManager.native.js.map +1 -1
- package/dist/esm/useLiveQuery.native.js.map +1 -1
- package/dist/esm/util.native.js.map +1 -1
- package/dist/jsx/core/http.mjs +45 -2
- package/dist/jsx/core/http.mjs.map +1 -1
- package/dist/jsx/core/http.native.js +72 -1
- package/dist/jsx/core/http.native.js.map +1 -1
- package/dist/jsx/doctype.mjs +15 -2
- package/dist/jsx/doctype.mjs.map +1 -1
- package/dist/jsx/doctype.native.js +22 -5
- package/dist/jsx/doctype.native.js.map +1 -1
- package/dist/jsx/frappeReact.mjs +55 -3
- package/dist/jsx/frappeReact.mjs.map +1 -1
- package/dist/jsx/frappeReact.native.js +66 -1
- package/dist/jsx/frappeReact.native.js.map +1 -1
- package/dist/jsx/index.js +5 -5
- package/dist/jsx/index.js.map +1 -1
- package/dist/jsx/index.mjs +5 -5
- package/dist/jsx/index.mjs.map +1 -1
- package/dist/jsx/index.native.js +8 -0
- package/dist/jsx/index.native.js.map +1 -1
- package/dist/jsx/optimistic.mjs +27 -1
- package/dist/jsx/optimistic.mjs.map +1 -1
- package/dist/jsx/optimistic.native.js +34 -1
- package/dist/jsx/optimistic.native.js.map +1 -1
- package/dist/jsx/pacer.mjs.map +1 -1
- package/dist/jsx/pacer.native.js.map +1 -1
- package/dist/jsx/realtime.mjs +234 -11
- package/dist/jsx/realtime.mjs.map +1 -1
- package/dist/jsx/realtime.native.js +368 -18
- package/dist/jsx/realtime.native.js.map +1 -1
- package/dist/jsx/sync/index.mjs +45 -1
- package/dist/jsx/sync/index.mjs.map +1 -1
- package/dist/jsx/sync/index.native.js +71 -1
- package/dist/jsx/sync/index.native.js.map +1 -1
- package/dist/jsx/sync/mutationEngine.mjs +51 -15
- package/dist/jsx/sync/mutationEngine.mjs.map +1 -1
- package/dist/jsx/sync/mutationEngine.native.js +69 -16
- package/dist/jsx/sync/mutationEngine.native.js.map +1 -1
- package/dist/jsx/sync/mutationJournal.mjs +8 -0
- package/dist/jsx/sync/mutationJournal.mjs.map +1 -1
- package/dist/jsx/sync/mutationJournal.native.js +10 -0
- package/dist/jsx/sync/mutationJournal.native.js.map +1 -1
- package/dist/jsx/sync/types.mjs.map +1 -1
- package/dist/jsx/sync/types.native.js.map +1 -1
- package/package.json +8 -8
- package/src/core/http.spec.ts +81 -0
- package/src/core/http.ts +80 -3
- package/src/doctype.spec.ts +82 -3
- package/src/doctype.ts +51 -7
- package/src/frappeReact.ts +126 -4
- package/src/index.ts +28 -3
- package/src/optimistic.spec.ts +113 -2
- package/src/optimistic.ts +95 -0
- package/src/pacer.ts +8 -0
- package/src/realtime.spec.ts +62 -0
- package/src/realtime.ts +440 -14
- package/src/realtimeSse.spec.ts +547 -0
- package/src/sync/index.ts +44 -1
- package/src/sync/mutationEngine.spec.ts +7 -2
- package/src/sync/mutationEngine.ts +83 -27
- package/src/sync/mutationJournal.ts +9 -0
- package/src/sync/mutations.spec.ts +1 -1
- package/src/sync/syncModule.spec.ts +255 -1
- package/src/sync/types.ts +20 -0
- package/types/core/http.d.ts +11 -0
- package/types/core/http.d.ts.map +1 -1
- package/types/doctype.d.ts +7 -0
- package/types/doctype.d.ts.map +1 -1
- package/types/frappeReact.d.ts +50 -2
- package/types/frappeReact.d.ts.map +1 -1
- package/types/index.d.ts +8 -6
- package/types/index.d.ts.map +1 -1
- package/types/optimistic.d.ts +38 -0
- package/types/optimistic.d.ts.map +1 -1
- package/types/pacer.d.ts +8 -0
- package/types/pacer.d.ts.map +1 -1
- package/types/realtime.d.ts +183 -1
- package/types/realtime.d.ts.map +1 -1
- package/types/sync/index.d.ts +16 -1
- package/types/sync/index.d.ts.map +1 -1
- package/types/sync/mutationEngine.d.ts +7 -0
- package/types/sync/mutationEngine.d.ts.map +1 -1
- package/types/sync/mutationJournal.d.ts +6 -0
- package/types/sync/mutationJournal.d.ts.map +1 -1
- package/types/sync/types.d.ts +20 -0
- package/types/sync/types.d.ts.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["isNative","io","isBrowser","isGjs","RealtimePlatform","RealtimePlatform2","docRoomKey","doctype","name","RealtimeModule","socket","handlerMap","Map","attachedSocketEvents","Set","socketEventHandlers","docRooms","listRooms","socketHealthy","isConnecting","healthyWaiters","config","authRefreshInflight","constructor","platform","detectPlatform","navigator","product","userAgent","includes","getSocketURL","base","baseURL","replace","url","URL","port","socketPort","String","host","hostname","siteName","protocol","result","split","getAuthOptions","authOptions","extraHeaders","Origin","origin","auth","sessionId","Cookie","useToken","token","authType","type","Authorization","transportOptions","websocket","polling","refreshSocketAuth","Promise","resolve","manager","opts","Object","assign","resolveHealthyWaiters","ok","clear","waitUntilHealthy","timeoutMs","connected","timer","setTimeout","delete","onReady","clearTimeout","add","ensureConnected","connect","resubscribeRooms","room","values","emit","socketURL","transports","autoConnect","path","randomizationFactor","reconnection","reconnectionAttempts","Number","POSITIVE_INFINITY","reconnectionDelay","reconnectionDelayMax","timeout","withCredentials","socketOptions","initHandlers","err","softDisconnect","removeAllListeners","disconnect","on","emitToHandlers","sid","id","reason","error","event","keys","attachSocketListener","has","handler","payload","set","detachSocketListener","get","off","handlerSet","size","subscribeDoc","unsubscribeDoc","teardownWhenIdle","subscribeList","filters","unsubscribeList","isHealthy","updateAuth","shouldReconnect","data","getSocket"],"sources":["../../src/realtime.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["isNative","io","isBrowser","isGjs","RealtimePlatform","RealtimePlatform2","docRoomKey","doctype","name","RealtimeModule","socket","eventSource","handlerMap","Map","attachedSocketEvents","Set","socketEventHandlers","attachedSseEvents","sseListeners","sseRoomNoticeLogged","sseEmitNoticeLogged","docRooms","listRooms","socketHealthy","isConnecting","healthyWaiters","config","authRefreshInflight","constructor","platform","detectPlatform","navigator","product","userAgent","includes","getSocketURL","base","baseURL","replace","socketBaseURL","socketBase","siteName","URL","hostname","split","url","port","socketPort","String","host","protocol","result","getAuthOptions","authOptions","extraHeaders","Origin","origin","auth","sessionId","Cookie","useToken","token","authType","type","Authorization","transportOptions","websocket","polling","refreshSocketAuth","Promise","resolve","manager","opts","Object","assign","resolveHealthyWaiters","ok","clear","isSSE","transport","waitUntilHealthy","timeoutMs","isHealthy","timer","setTimeout","delete","onReady","clearTimeout","add","ensureConnected","connect","resubscribeRooms","room","values","emit","connectSSE","socketURL","transports","autoConnect","path","randomizationFactor","reconnection","reconnectionAttempts","Number","POSITIVE_INFINITY","reconnectionDelay","reconnectionDelayMax","timeout","withCredentials","socketOptions","initHandlers","err","sse","EventSourceCtor","EventSource","globalThis","Error","buildSSEURL","initSSEHandlers","startsWith","params","entries","queryParams","length","parts","key","value","resolved","push","encodeURIComponent","join","attachSSEListener","events","event","keys","has","listener","handleSSEEvent","set","addEventListener","detachSSEListener","isCoreSSEType","get","removeEventListener","data","emitToHandlers","reason","frame","lastEventId","mapFrame","mapped","console","warn","mappedEvent","payload","payload2","JSON","parse","logSSERoomNoticeOnce","debug","softDisconnect","removeAllListeners","disconnect","close","on","sid","id","error","attachSocketListener","handler","detachSocketListener","off","handlerSet","size","subscribeDoc","unsubscribeDoc","teardownWhenIdle","subscribeList","filters","unsubscribeList","connected","updateAuth","shouldReconnect","getSocket","getEventSource","getDocRooms","getListRooms"],"sources":["../../src/realtime.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,QAAA,QAAgB;AAEzB,SAASC,EAAA,QAAU;AAEnB,SAASC,SAAA,EAAWC,KAAA,QAAa;AAI1B,IAAKC,gBAAA,GAAL,gBAAKC,iBAAA,IAAL;EACLD,iBAAA,WAAO;EACPA,iBAAA,UAAM;EACNA,iBAAA,kBAAc;EAHJ,OAAAC,iBAAA;AAAA,GAAAD,gBAAA;AAyKZ,SAASE,WAAWC,OAAA,EAAiBC,IAAA,EAAc;EACjD,OAAO,GAAGD,OAAO,KAAKC,IAAI;AAC5B;AAEO,MAAMC,cAAA,CAAe;EAClBC,MAAA;EAAA;EAEAC,WAAA;EACAC,UAAA,GAAa,mBAAIC,GAAA,CAA0B;EAAA;EAE3CC,oBAAA,GAAuB,mBAAIC,GAAA,CAAY;EAAA;EAEvCC,mBAAA,GAAsB,mBAAIH,GAAA,CAAwC;EAAA;EAElEI,iBAAA,GAAoB,mBAAIF,GAAA,CAAY;EAAA;EAEpCG,YAAA,GAAe,mBAAIL,GAAA,CAAkD;EAAA;EAErEM,mBAAA,GAAsB;EACtBC,mBAAA,GAAsB;EAAA;EAEtBC,QAAA,GAAW,mBAAIR,GAAA,CAAqB;EAAA;EAEpCS,SAAA,GAAY,mBAAIT,GAAA,CAAsB;EACtCU,aAAA,GAAgB;EAChBC,YAAA,GAAe;EACfC,cAAA,GAAiB,mBAAIV,GAAA,CAA2B;EAChDW,MAAA;EAAA;EAEAC,mBAAA;EAERC,YAAYF,MAAA,EAAwB;IAClC,KAAKA,MAAA,GAAS;MACZ,GAAGA,MAAA;MACHG,QAAA,EAAUH,MAAA,CAAOG,QAAA,IAAY,KAAKC,cAAA,CAAe;IACnD;EACF;EAEQA,eAAA,EAAiB;IAOvB,IAAI3B,KAAA,CAAM,GAAG,OAAO;IAOpB,IACEH,QAAA,IACC,OAAO+B,SAAA,KAAc,gBACnBA,SAAA,CAAUC,OAAA,KAAY,iBAAiBD,SAAA,CAAUE,SAAA,EAAWC,QAAA,CAAS,aAAa,IACrF;MACA,OAAO;IACT;IACA,IAAI,CAAChC,SAAA,CAAU,GAAG,OAAO;IACzB,OAAO;EACT;EAEQiC,aAAA,EAAuB;IAC7B,MAAMC,IAAA,GAAO,KAAKV,MAAA,CAAOW,OAAA,CAAQC,OAAA,CAAQ,OAAO,EAAE;IAMlD,IAAI,KAAKZ,MAAA,CAAOa,aAAA,EAAe;MAC7B,MAAMC,UAAA,GAAa,KAAKd,MAAA,CAAOa,aAAA,CAAcD,OAAA,CAAQ,OAAO,EAAE;MAC9D,IAAIG,QAAA,GAAW,KAAKf,MAAA,CAAOe,QAAA;MAC3B,IAAI,CAACA,QAAA,EAAU;QACb,IAAI;UACFA,QAAA,GAAW,IAAIC,GAAA,CAAIN,IAAI,EAAEO,QAAA;QAC3B,QAAQ;UACNF,QAAA,GAAWL,IAAA,CAAKE,OAAA,CAAQ,gBAAgB,EAAE,EAAEM,KAAA,CAAM,MAAM,EAAE,CAAC;QAC7D;MACF;MACA,OAAO,GAAGJ,UAAU,IAAIC,QAAQ;IAClC;IACA,IAAI;MACF,MAAMI,GAAA,GAAM,IAAIH,GAAA,CAAIN,IAAI;MAMxB,MAAMU,IAAA,GAAO,KAAKpB,MAAA,CAAOqB,UAAA,GAAaC,MAAA,CAAO,KAAKtB,MAAA,CAAOqB,UAAU,IAAIF,GAAA,CAAIC,IAAA;MAC3E,MAAMG,IAAA,GAAOH,IAAA,GAAO,GAAGD,GAAA,CAAIF,QAAQ,IAAIG,IAAI,KAAKD,GAAA,CAAIF,QAAA;MAGpD,MAAMF,QAAA,GAAW,KAAKf,MAAA,CAAOe,QAAA,IAAYI,GAAA,CAAIF,QAAA;MAC7C,OAAO,GAAGE,GAAA,CAAIK,QAAQ,KAAKD,IAAI,IAAIR,QAAQ;IAC7C,QAAQ;MAEN,IAAIU,MAAA,GAASf,IAAA;MACb,IAAI,KAAKV,MAAA,CAAOqB,UAAA,EAAY;QAC1BI,MAAA,GAASA,MAAA,CAAOb,OAAA,CAAQ,UAAU,IAAI,KAAKZ,MAAA,CAAOqB,UAAU,EAAE;MAChE;MACA,MAAMN,QAAA,GAAW,KAAKf,MAAA,CAAOe,QAAA,IAAYU,MAAA,CAAOb,OAAA,CAAQ,gBAAgB,EAAE,EAAEM,KAAA,CAAM,MAAM,EAAE,CAAC;MAC3F,OAAO,GAAGO,MAAM,IAAIV,QAAQ;IAC9B;EACF;EAEA,MAAcW,eAAA,EAAmE;IAC/E,MAAMC,WAAA,GAAuD,CAAC;IAC9D,IAAI,KAAK3B,MAAA,CAAOG,QAAA,KAAa,iBAAsB;MAYjD,IAAI;QACFwB,WAAA,CAAYC,YAAA,GAAe;UAAEC,MAAA,EAAQ,IAAIb,GAAA,CAAI,KAAKhB,MAAA,CAAOW,OAAO,EAAEmB;QAAO;MAC3E,QAAQ;QACNH,WAAA,CAAYC,YAAA,GAAe;UAAEC,MAAA,EAAQ,KAAK7B,MAAA,CAAOW,OAAA,CAAQC,OAAA,CAAQ,OAAO,EAAE;QAAE;MAC9E;IACF;IACA,IAAI,KAAKZ,MAAA,CAAOG,QAAA,KAAa,mBAAwB,KAAKH,MAAA,CAAO+B,IAAA,EAAMC,SAAA,EAAW;MAChF,MAAMA,SAAA,GACJ,OAAO,KAAKhC,MAAA,CAAO+B,IAAA,CAAKC,SAAA,KAAc,aAClC,MAAM,KAAKhC,MAAA,CAAO+B,IAAA,CAAKC,SAAA,CAAU,IACjC,KAAKhC,MAAA,CAAO+B,IAAA,CAAKC,SAAA;MACvB,MAAMC,MAAA,GAAS,OAAOD,SAAS;MAC/BL,WAAA,CAAYC,YAAA,GAAe;QACzB,GAAGD,WAAA,CAAYC,YAAA;QACfK;MACF;IACF;IACA,IAAI,KAAKjC,MAAA,CAAO+B,IAAA,EAAMG,QAAA,IAAY,KAAKlC,MAAA,CAAO+B,IAAA,CAAKI,KAAA,EAAO;MACxD,MAAMA,KAAA,GACJ,OAAO,KAAKnC,MAAA,CAAO+B,IAAA,CAAKI,KAAA,KAAU,aAC9B,MAAM,KAAKnC,MAAA,CAAO+B,IAAA,CAAKI,KAAA,CAAM,IAC7B,KAAKnC,MAAA,CAAO+B,IAAA,CAAKI,KAAA;MAIvB,IAAIA,KAAA,EAAO;QACT,MAAMC,QAAA,GAAW,KAAKpC,MAAA,CAAO+B,IAAA,CAAKM,IAAA,IAAQ;QAC1C,IAAI,CAACV,WAAA,CAAYC,YAAA,EAAcD,WAAA,CAAYC,YAAA,GAAe,CAAC;QAC3DD,WAAA,CAAYC,YAAA,CAAaU,aAAA,GACvBF,QAAA,KAAa,WAAW,UAAUD,KAAK,KAAK,SAASA,KAAK;MAC9D;IACF;IACA,IAAIR,WAAA,CAAYC,YAAA,EAAc;MAK5BD,WAAA,CAAYY,gBAAA,GAAmB;QAC7BC,SAAA,EAAW;UAAEZ,YAAA,EAAc;YAAE,GAAGD,WAAA,CAAYC;UAAa;QAAE;QAC3Da,OAAA,EAAS;UAAEb,YAAA,EAAc;YAAE,GAAGD,WAAA,CAAYC;UAAa;QAAE;MAC3D;IACF;IACA,OAAOD,WAAA;EACT;EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAWQe,kBAAA,EAAmC;IACzC,MAAM1D,MAAA,GAAS,KAAKA,MAAA;IACpB,IAAI,CAACA,MAAA,EAAQ,OAAO2D,OAAA,CAAQC,OAAA,CAAQ;IACpC,IAAI,KAAK3C,mBAAA,EAAqB,OAAO,KAAKA,mBAAA;IAC1C,KAAKA,mBAAA,IAAuB,YAAY;MACtC,IAAI;QACF,MAAM0B,WAAA,GAAc,MAAM,KAAKD,cAAA,CAAe;QAC9C,MAAMmB,OAAA,GAAW7D,MAAA,CAAuDT,EAAA;QACxE,IAAIsE,OAAA,EAASC,IAAA,EAAMC,MAAA,CAAOC,MAAA,CAAOH,OAAA,CAAQC,IAAA,EAAMnB,WAAW;MAC5D,QAAQ,CAGR,UAAE;QACA,KAAK1B,mBAAA,GAAsB;MAC7B;IACF,GAAG;IACH,OAAO,KAAKA,mBAAA;EACd;EAEQgD,sBAAsBC,EAAA,EAAa;IACzC,WAAWN,OAAA,IAAW,KAAK7C,cAAA,EAAgB6C,OAAA,CAAQM,EAAE;IACrD,KAAKnD,cAAA,CAAeoD,KAAA,CAAM;EAC5B;EAEQC,MAAA,EAAiB;IACvB,OAAO,KAAKpD,MAAA,CAAOqD,SAAA,KAAc;EACnC;EAEQC,iBAAiBC,SAAA,GAAY,KAA0B;IAC7D,IAAI,KAAKC,SAAA,CAAU,GAAG,OAAOb,OAAA,CAAQC,OAAA,CAAQ,IAAI;IACjD,OAAO,IAAID,OAAA,CAASC,OAAA,IAAY;MAC9B,MAAMa,KAAA,GAAQC,UAAA,CAAW,MAAM;QAC7B,KAAK3D,cAAA,CAAe4D,MAAA,CAAOC,OAAO;QAClChB,OAAA,CAAQ,KAAK;MACf,GAAGW,SAAS;MACZ,MAAMK,OAAA,GAAWV,EAAA,IAAgB;QAC/BW,YAAA,CAAaJ,KAAK;QAClBb,OAAA,CAAQM,EAAE;MACZ;MACA,KAAKnD,cAAA,CAAe+D,GAAA,CAAIF,OAAO;IACjC,CAAC;EACH;EAEA,MAAcG,gBAAA,EAAiC;IAC7C,IAAI,KAAKP,SAAA,CAAU,GAAG;IACtB,IAAI,CAAC,KAAKxE,MAAA,IAAU,CAAC,KAAKC,WAAA,IAAe,CAAC,KAAKa,YAAA,EAAc;MAC3D,MAAM,KAAKkE,OAAA,CAAQ;IACrB;IACA,MAAM,KAAKV,gBAAA,CAAiB;EAC9B;EAEQW,iBAAA,EAAyB;IAC/B,IAAI,CAAC,KAAKjF,MAAA,IAAU,CAAC,KAAKa,aAAA,EAAe;IAGzC,WAAWqE,IAAA,IAAQ,KAAKvE,QAAA,CAASwE,MAAA,CAAO,GAAG;MACzC,KAAKnF,MAAA,CAAOoF,IAAA,CAAK,iBAAiBF,IAAA,CAAKrF,OAAA,EAASqF,IAAA,CAAKpF,IAAI;IAC3D;IACA,WAAWoF,IAAA,IAAQ,KAAKtE,SAAA,CAAUuE,MAAA,CAAO,GAAG;MAC1C,KAAKnF,MAAA,CAAOoF,IAAA,CAAK,qBAAqBF,IAAA,CAAKrF,OAAO;IACpD;EACF;EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAUA,MAAMmF,QAAA,EAAyB;IAC7B,IAAI,KAAKZ,KAAA,CAAM,GAAG,OAAO,KAAKiB,UAAA,CAAW;IACzC,IAAI,KAAKrF,MAAA,IAAU,KAAKc,YAAA,EAAc;IACtC,KAAKA,YAAA,GAAe;IACpB,IAAI;MACF,MAAM6B,WAAA,GAAc,MAAM,KAAKD,cAAA,CAAe;MAC9C,MAAM4C,SAAA,GAAY,KAAK7D,YAAA,CAAa;MAUpC,MAAM8D,UAAA,GACJ,KAAKvE,MAAA,CAAOG,QAAA,KAAa,kBACrB,CAAC,WAAW,WAAW,IACvB,CAAC,aAAa,SAAS;MAC7B,KAAKnB,MAAA,GAAST,EAAA,CAAG+F,SAAA,EAAW;QAC1BE,WAAA,EAAa;QACbC,IAAA,EAAM;QACNC,mBAAA,EAAqB;QACrBC,YAAA,EAAc;QACdC,oBAAA,EAAsBC,MAAA,CAAOC,iBAAA;QAC7BC,iBAAA,EAAmB;QACnBC,oBAAA,EAAsB;QACtBC,OAAA,EAAS;QACTV,UAAA;QACAW,eAAA,EAAiB;QACjB,GAAGvD,WAAA;QACH,GAAG,KAAK3B,MAAA,CAAOmF;MACjB,CAAC;MACD,KAAKC,YAAA,CAAa;MAClB,KAAKpG,MAAA,CAAOgF,OAAA,CAAQ;IACtB,SAASqB,GAAA,EAAK;MACZ,KAAKvF,YAAA,GAAe;MACpB,KAAKmD,qBAAA,CAAsB,KAAK;MAChC,MAAMoC,GAAA;IACR;EACF;EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EASA,MAAchB,WAAA,EAA4B;IACxC,IAAI,KAAKpF,WAAA,IAAe,KAAKa,YAAA,EAAc;IAC3C,KAAKA,YAAA,GAAe;IACpB,IAAI;MACF,MAAMwF,GAAA,GAAM,KAAKtF,MAAA,CAAOsF,GAAA;MACxB,MAAMC,eAAA,GACJD,GAAA,EAAKE,WAAA,IAAgBC,UAAA,CAA2DD,WAAA;MAClF,IAAI,CAACD,eAAA,EAAiB;QACpB,MAAM,IAAIG,KAAA,CACR,iSAIF;MACF;MACA,MAAMvE,GAAA,GAAM,MAAM,KAAKwE,WAAA,CAAY;MACnC,KAAK1G,WAAA,GAAc,IAAIsG,eAAA,CAAgBpE,GAAA,EAAK;QAC1C+D,eAAA,EAAiBI,GAAA,EAAKJ;MACxB,CAAC;MACD,KAAKU,eAAA,CAAgB;IACvB,SAASP,GAAA,EAAK;MACZ,KAAKvF,YAAA,GAAe;MACpB,KAAKmD,qBAAA,CAAsB,KAAK;MAChC,MAAMoC,GAAA;IACR;EACF;EAEA,MAAcM,YAAA,EAA+B;IAC3C,MAAML,GAAA,GAAM,KAAKtF,MAAA,CAAOsF,GAAA;IACxB,IAAInE,GAAA;IACJ,IAAImE,GAAA,EAAKnE,GAAA,EAAK;MACZA,GAAA,GAAMmE,GAAA,CAAInE,GAAA;IACZ,WAAWmE,GAAA,EAAKb,IAAA,EAAM;MACpB,MAAM/D,IAAA,GAAO,KAAKV,MAAA,CAAOW,OAAA,CAAQC,OAAA,CAAQ,OAAO,EAAE;MAClDO,GAAA,GAAM,GAAGT,IAAI,GAAG4E,GAAA,CAAIb,IAAA,CAAKoB,UAAA,CAAW,GAAG,IAAI,KAAK,GAAG,GAAGP,GAAA,CAAIb,IAAI;IAChE,OAAO;MACL,MAAM,IAAIiB,KAAA,CACR,sSAIF;IACF;IACA,MAAMI,MAAA,GAAS/C,MAAA,CAAOgD,OAAA,CAAQ,KAAK/F,MAAA,CAAOsF,GAAA,EAAKU,WAAA,IAAe,CAAC,CAAC;IAChE,IAAIF,MAAA,CAAOG,MAAA,KAAW,GAAG,OAAO9E,GAAA;IAIhC,MAAM+E,KAAA,GAAkB,EAAC;IACzB,WAAW,CAACC,GAAA,EAAKC,KAAK,KAAKN,MAAA,EAAQ;MACjC,MAAMO,QAAA,GAAW,OAAOD,KAAA,KAAU,aAAa,MAAMA,KAAA,CAAM,IAAIA,KAAA;MAC/DF,KAAA,CAAMI,IAAA,CAAK,GAAGC,kBAAA,CAAmBJ,GAAG,CAAC,IAAII,kBAAA,CAAmBF,QAAQ,CAAC,EAAE;IACzE;IACA,OAAO,GAAGlF,GAAG,GAAGA,GAAA,CAAIX,QAAA,CAAS,GAAG,IAAI,MAAM,GAAG,GAAG0F,KAAA,CAAMM,IAAA,CAAK,GAAG,CAAC;EACjE;EAEQZ,gBAAA,EAAwB;IAE9B,KAAKrG,iBAAA,CAAkB4D,KAAA,CAAM;IAC7B,KAAK3D,YAAA,CAAa2D,KAAA,CAAM;IAExB,KAAKsD,iBAAA,CAAkB,MAAM;IAC7B,KAAKA,iBAAA,CAAkB,OAAO;IAC9B,KAAKA,iBAAA,CAAkB,SAAS;IAIhC,WAAWpE,IAAA,IAAQ,KAAKrC,MAAA,CAAOsF,GAAA,EAAKoB,MAAA,IAAU,EAAC,EAAG;MAChD,KAAKD,iBAAA,CAAkBpE,IAAI;IAC7B;IAGA,WAAWsE,KAAA,IAAS,KAAKzH,UAAA,CAAW0H,IAAA,CAAK,GAAG;MAC1C,KAAKH,iBAAA,CAAkBE,KAAK;IAC9B;EACF;EAEQF,kBAAkBpE,IAAA,EAAoB;IAC5C,IAAI,CAAC,KAAKpD,WAAA,IAAe,KAAKM,iBAAA,CAAkBsH,GAAA,CAAIxE,IAAI,GAAG;IAC3D,MAAMyE,QAAA,GAAYH,KAAA,IAA+B;MAC/C,KAAKI,cAAA,CAAe1E,IAAA,EAAMsE,KAAK;IACjC;IACA,KAAKnH,YAAA,CAAawH,GAAA,CAAI3E,IAAA,EAAMyE,QAAQ;IACpC,KAAKvH,iBAAA,CAAkBuE,GAAA,CAAIzB,IAAI;IAC/B,KAAKpD,WAAA,CAAYgI,gBAAA,CAAiB5E,IAAA,EAAMyE,QAAQ;EAClD;EAEQI,kBAAkB7E,IAAA,EAAoB;IAI5C,IAAI,KAAK8E,aAAA,CAAc9E,IAAI,GAAG;IAC9B,IAAI,CAAC,KAAKpD,WAAA,IAAe,CAAC,KAAKM,iBAAA,CAAkBsH,GAAA,CAAIxE,IAAI,GAAG;IAC5D,MAAMyE,QAAA,GAAW,KAAKtH,YAAA,CAAa4H,GAAA,CAAI/E,IAAI;IAC3C,IAAIyE,QAAA,EAAU;MACZ,KAAK7H,WAAA,CAAYoI,mBAAA,CAAoBhF,IAAA,EAAMyE,QAAQ;MACnD,KAAKtH,YAAA,CAAamE,MAAA,CAAOtB,IAAI;IAC/B;IACA,KAAK9C,iBAAA,CAAkBoE,MAAA,CAAOtB,IAAI;EACpC;EAEQ8E,cAAc9E,IAAA,EAAuB;IAC3C,OACEA,IAAA,KAAS,UACTA,IAAA,KAAS,WACTA,IAAA,KAAS,cACR,KAAKrC,MAAA,CAAOsF,GAAA,EAAKoB,MAAA,IAAU,EAAC,EAAGlG,QAAA,CAAS6B,IAAI;EAEjD;EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EASQ0E,eAAe1E,IAAA,EAAcsE,KAAA,EAAkC;IACrE,IAAIA,KAAA,EAAOW,IAAA,KAAS,QAAW;MAC7B,IAAIjF,IAAA,KAAS,QAAQ;QACnB,KAAKvC,YAAA,GAAe;QACpB,KAAKD,aAAA,GAAgB;QACrB,KAAK0H,cAAA,CAAe,aAAa;UAAElE,SAAA,EAAW;QAAM,CAAC;QACrD,KAAKJ,qBAAA,CAAsB,IAAI;MACjC,WAAWZ,IAAA,KAAS,SAAS;QAM3B,KAAKvC,YAAA,GAAe;QACpB,KAAKD,aAAA,GAAgB;QACrB,KAAK0H,cAAA,CAAe,cAAc;UAAEC,MAAA,EAAQ;QAAY,CAAC;QACzD,KAAKvE,qBAAA,CAAsB,KAAK;MAClC;MACA;IACF;IACA,MAAMwE,KAAA,GAAkB;MACtBpF,IAAA;MACAiF,IAAA,EAAMhG,MAAA,CAAOqF,KAAA,CAAMW,IAAI;MACvBI,WAAA,EAAaf,KAAA,CAAMe,WAAA,IAAe;IACpC;IACA,MAAMC,QAAA,GAAW,KAAK3H,MAAA,CAAOsF,GAAA,EAAKqC,QAAA;IAClC,IAAIA,QAAA,EAAU;MACZ,IAAIC,MAAA;MACJ,IAAI;QACFA,MAAA,GAASD,QAAA,CAASF,KAAK;MACzB,SAASpC,GAAA,EAAK;QAEZwC,OAAA,CAAQC,IAAA,CAAK,uDAAuDzC,GAAG;QACvE;MACF;MACA,IAAI,CAACuC,MAAA,EAAQ;MACb,WAAW;QAAEjB,KAAA,EAAOoB,WAAA;QAAaC,OAAA,EAAAC;MAAQ,KAAKL,MAAA,EAAQ;QACpD,KAAKL,cAAA,CAAeQ,WAAA,EAAaC,QAAO;MAC1C;MACA;IACF;IAGA,IAAIA,OAAA,GAAmBP,KAAA,CAAMH,IAAA;IAC7B,IAAI;MACFU,OAAA,GAAUE,IAAA,CAAKC,KAAA,CAAMV,KAAA,CAAMH,IAAI;IACjC,QAAQ,CAER;IACA,KAAKC,cAAA,CAAeE,KAAA,CAAMpF,IAAA,EAAM2F,OAAO;EACzC;EAAA;AAAA;AAAA;AAAA;AAAA;EAOQI,qBAAA,EAA6B;IACnC,IAAI,KAAK3I,mBAAA,EAAqB;IAC9B,KAAKA,mBAAA,GAAsB;IAC3BoI,OAAA,CAAQQ,KAAA,CACN,wPAGF;EACF;EAAA;AAAA;AAAA;AAAA;EAMQC,eAAA,EAAuB;IAC7B,IAAI,KAAKtJ,MAAA,EAAQ;MAEf,IAAI,OAAO,KAAKA,MAAA,CAAOuJ,kBAAA,KAAuB,YAAY;QACxD,KAAKvJ,MAAA,CAAOuJ,kBAAA,CAAmB;MACjC;MACA,KAAKvJ,MAAA,CAAOwJ,UAAA,CAAW;MACvB,KAAKxJ,MAAA,GAAS;IAChB;IACA,IAAI,KAAKC,WAAA,EAAa;MACpB,WAAW,CAACoD,IAAA,EAAMyE,QAAQ,KAAK,KAAKtH,YAAA,EAAc;QAChD,KAAKP,WAAA,CAAYoI,mBAAA,CAAoBhF,IAAA,EAAMyE,QAAQ;MACrD;MACA,KAAK7H,WAAA,CAAYwJ,KAAA,CAAM;MACvB,KAAKxJ,WAAA,GAAc;IACrB;IACA,KAAKG,oBAAA,CAAqB+D,KAAA,CAAM;IAChC,KAAK7D,mBAAA,CAAoB6D,KAAA,CAAM;IAC/B,KAAK5D,iBAAA,CAAkB4D,KAAA,CAAM;IAC7B,KAAK3D,YAAA,CAAa2D,KAAA,CAAM;IACxB,KAAKtD,aAAA,GAAgB;IACrB,KAAKC,YAAA,GAAe;IACpB,KAAKmD,qBAAA,CAAsB,KAAK;EAClC;EAEQmC,aAAA,EAAqB;IAC3B,IAAI,CAAC,KAAKpG,MAAA,EAAQ;IAElB,KAAKI,oBAAA,CAAqB+D,KAAA,CAAM;IAChC,KAAK7D,mBAAA,CAAoB6D,KAAA,CAAM;IAC/B,KAAKnE,MAAA,CAAO0J,EAAA,CAAG,WAAW,MAAM;MAC9B,KAAK5I,YAAA,GAAe;MACpB,KAAKD,aAAA,GAAgB;MACrB,KAAKoE,gBAAA,CAAiB;MACtB,KAAKsD,cAAA,CAAe,aAAa;QAAEoB,GAAA,EAAK,KAAK3J,MAAA,EAAQ4J;MAAG,CAAC;MACzD,KAAK3F,qBAAA,CAAsB,IAAI;IACjC,CAAC;IACD,KAAKjE,MAAA,CAAO0J,EAAA,CAAG,cAAelB,MAAA,IAAW;MACvC,KAAK3H,aAAA,GAAgB;MAGrB,KAAK,KAAK6C,iBAAA,CAAkB;MAC5B,KAAK6E,cAAA,CAAe,cAAc;QAAEC;MAAO,CAAC;IAC9C,CAAC;IACD,KAAKxI,MAAA,CAAO0J,EAAA,CAAG,iBAAkBG,KAAA,IAAU;MACzC,KAAK/I,YAAA,GAAe;MAGpB,KAAK,KAAK4C,iBAAA,CAAkB;MAC5B,KAAK6E,cAAA,CAAe,iBAAiBsB,KAAK;MAC1C,KAAK5F,qBAAA,CAAsB,KAAK;IAClC,CAAC;IAID,MAAMJ,OAAA,GAAW,KAAK7D,MAAA,CAAkET,EAAA;IACxFsE,OAAA,EAAS6F,EAAA,GAAK,qBAAqB,MAAM;MACvC,KAAK,KAAKhG,iBAAA,CAAkB;IAC9B,CAAC;IAED,WAAWiE,KAAA,IAAS,KAAKzH,UAAA,CAAW0H,IAAA,CAAK,GAAG;MAC1C,KAAKkC,oBAAA,CAAqBnC,KAAK;IACjC;EACF;EAAA;AAAA;AAAA;EAKQmC,qBAAqBnC,KAAA,EAAqB;IAChD,IAAI,CAAC,KAAK3H,MAAA,IAAU,KAAKI,oBAAA,CAAqByH,GAAA,CAAIF,KAAK,GAAG;IAE1D,MAAMoC,OAAA,GAAWf,OAAA,IAAqB;MACpC,KAAKT,cAAA,CAAeZ,KAAA,EAAOqB,OAAO;IACpC;IACA,KAAK1I,mBAAA,CAAoB0H,GAAA,CAAIL,KAAA,EAAOoC,OAAO;IAC3C,KAAK3J,oBAAA,CAAqB0E,GAAA,CAAI6C,KAAK;IACnC,KAAK3H,MAAA,CAAO0J,EAAA,CAAG/B,KAAA,EAAOoC,OAAO;EAC/B;EAAA;AAAA;AAAA;EAKQC,qBAAqBrC,KAAA,EAAqB;IAChD,IAAI,CAAC,KAAK3H,MAAA,IAAU,CAAC,KAAKI,oBAAA,CAAqByH,GAAA,CAAIF,KAAK,GAAG;IAE3D,MAAMoC,OAAA,GAAU,KAAKzJ,mBAAA,CAAoB8H,GAAA,CAAIT,KAAK;IAClD,IAAIoC,OAAA,EAAS;MACX,KAAK/J,MAAA,CAAOiK,GAAA,CAAItC,KAAA,EAAOoC,OAAO;MAC9B,KAAKzJ,mBAAA,CAAoBqE,MAAA,CAAOgD,KAAK;IACvC;IACA,KAAKvH,oBAAA,CAAqBuE,MAAA,CAAOgD,KAAK;EACxC;EAEQY,eAAeZ,KAAA,EAAeqB,OAAA,EAAkB;IACtD,MAAMkB,UAAA,GAAa,KAAKhK,UAAA,CAAWkI,GAAA,CAAIT,KAAK;IAC5C,IAAI,CAACuC,UAAA,EAAY;IACjB,WAAWH,OAAA,IAAWG,UAAA,EAAY;MAChCH,OAAA,CAAQf,OAAO;IACjB;EACF;EAEA,MAAMU,GAAG/B,KAAA,EAAeoC,OAAA,EAAiC;IACvD,IAAIG,UAAA,GAAa,KAAKhK,UAAA,CAAWkI,GAAA,CAAIT,KAAK;IAC1C,IAAI,CAACuC,UAAA,EAAY;MACfA,UAAA,GAAa,mBAAI7J,GAAA,CAAI;MACrB,KAAKH,UAAA,CAAW8H,GAAA,CAAIL,KAAA,EAAOuC,UAAU;IACvC;IACAA,UAAA,CAAWpF,GAAA,CAAIiF,OAAO;IAStB,IAAI,KAAK3F,KAAA,CAAM,GAAG;MAChB,KAAKqD,iBAAA,CAAkBE,KAAK;IAC9B,OAAO;MACL,KAAKmC,oBAAA,CAAqBnC,KAAK;IACjC;EACF;EAEAsC,IAAItC,KAAA,EAAeoC,OAAA,EAAwB;IACzC,MAAMG,UAAA,GAAa,KAAKhK,UAAA,CAAWkI,GAAA,CAAIT,KAAK;IAC5C,IAAI,CAACuC,UAAA,EAAY;IACjBA,UAAA,CAAWvF,MAAA,CAAOoF,OAAO;IACzB,IAAIG,UAAA,CAAWC,IAAA,KAAS,GAAG;MACzB,KAAKjK,UAAA,CAAWyE,MAAA,CAAOgD,KAAK;MAC5B,IAAI,KAAKvD,KAAA,CAAM,GAAG;QAChB,KAAK8D,iBAAA,CAAkBP,KAAK;MAC9B,OAAO;QACL,KAAKqC,oBAAA,CAAqBrC,KAAK;MACjC;IACF;EACF;EAEA,MAAMyC,aAAavK,OAAA,EAAiBC,IAAA,EAA6B;IAC/D,KAAKa,QAAA,CAASqH,GAAA,CAAIpI,UAAA,CAAWC,OAAA,EAASC,IAAI,GAAG;MAAED,OAAA;MAASC;IAAK,CAAC;IAK9D,IAAI,KAAKsE,KAAA,CAAM,GAAG,KAAKgF,oBAAA,CAAqB;IAC5C,MAAM,KAAKrE,eAAA,CAAgB;IAC3B,IAAI,CAAC,KAAKX,KAAA,CAAM,KAAK,KAAKpE,MAAA,IAAU,KAAKa,aAAA,EAAe;MAEtD,KAAKb,MAAA,CAAOoF,IAAA,CAAK,iBAAiBvF,OAAA,EAASC,IAAI;IACjD;EACF;EAEAuK,eAAexK,OAAA,EAAiBC,IAAA,EAAoB;IAClD,KAAKa,QAAA,CAASgE,MAAA,CAAO/E,UAAA,CAAWC,OAAA,EAASC,IAAI,CAAC;IAC9C,IAAI,CAAC,KAAKsE,KAAA,CAAM,KAAK,KAAKpE,MAAA,IAAU,KAAKa,aAAA,EAAe;MACtD,KAAKb,MAAA,CAAOoF,IAAA,CAAK,mBAAmBvF,OAAA,EAASC,IAAI;IACnD;IACA,KAAKwK,gBAAA,CAAiB;EACxB;EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EASA,MAAMC,cAAc1K,OAAA,EAAiB2K,OAAA,EAAkD;IACrF,KAAK5J,SAAA,CAAUoH,GAAA,CAAInI,OAAA,EAAS;MAAEA,OAAA;MAAS2K;IAAQ,CAAC;IAChD,IAAI,KAAKpG,KAAA,CAAM,GAAG,KAAKgF,oBAAA,CAAqB;IAC5C,MAAM,KAAKrE,eAAA,CAAgB;IAC3B,IAAI,CAAC,KAAKX,KAAA,CAAM,KAAK,KAAKpE,MAAA,IAAU,KAAKa,aAAA,EAAe;MACtD,KAAKb,MAAA,CAAOoF,IAAA,CAAK,qBAAqBvF,OAAO;IAC/C;EACF;EAEA4K,gBAAgB5K,OAAA,EAAuB;IACrC,KAAKe,SAAA,CAAU+D,MAAA,CAAO9E,OAAO;IAC7B,IAAI,CAAC,KAAKuE,KAAA,CAAM,KAAK,KAAKpE,MAAA,IAAU,KAAKa,aAAA,EAAe;MACtD,KAAKb,MAAA,CAAOoF,IAAA,CAAK,uBAAuBvF,OAAO;IACjD;IACA,KAAKyK,gBAAA,CAAiB;EACxB;EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAWQA,iBAAA,EAAyB;IAC/B,IAAI,KAAK3J,QAAA,CAASwJ,IAAA,GAAO,KAAK,KAAKvJ,SAAA,CAAUuJ,IAAA,GAAO,GAAG;IACvD,IAAI,CAAC,KAAKnK,MAAA,IAAU,CAAC,KAAKC,WAAA,IAAe,CAAC,KAAKa,YAAA,EAAc;IAG7D,KAAKyH,cAAA,CAAe,cAAc;MAAEC,MAAA,EAAQ;IAAgB,CAAC;IAC7D,KAAKc,cAAA,CAAe;EACtB;EAEA9E,UAAA,EAAY;IAGV,IAAI,KAAKJ,KAAA,CAAM,GAAG,OAAO,KAAKvD,aAAA,IAAiB,KAAKZ,WAAA,KAAgB;IACpE,OAAO,KAAKY,aAAA,IAAiB,KAAKb,MAAA,EAAQ0K,SAAA,KAAc;EAC1D;EAEAlB,WAAA,EAAmB;IACjB,KAAKF,cAAA,CAAe;IACpB,KAAKpJ,UAAA,CAAWiE,KAAA,CAAM;IACtB,KAAKxD,QAAA,CAASwD,KAAA,CAAM;IACpB,KAAKvD,SAAA,CAAUuD,KAAA,CAAM;EACvB;EAEA,MAAMwG,WAAW5H,IAAA,EAAkB;IACjC,KAAK/B,MAAA,CAAO+B,IAAA,GAAOA,IAAA;IAcnB,MAAM6H,eAAA,GACJ,KAAKjK,QAAA,CAASwJ,IAAA,GAAO,KACrB,KAAKvJ,SAAA,CAAUuJ,IAAA,GAAO,KACrB,KAAK/F,KAAA,CAAM,KAAK,KAAKnE,WAAA,KAAgB;IAGxC,KAAKqJ,cAAA,CAAe;IACpB,IAAIsB,eAAA,EAAiB;MACnB,MAAM,KAAK5F,OAAA,CAAQ;IACrB;EACF;EAEAI,KAAKuC,KAAA,EAAeW,IAAA,EAAe;IACjC,IAAI,KAAKlE,KAAA,CAAM,GAAG;MAGhB,IAAI,CAAC,KAAK1D,mBAAA,EAAqB;QAC7B,KAAKA,mBAAA,GAAsB;QAC3BmI,OAAA,CAAQQ,KAAA,CACN,iKAEF;MACF;MACA;IACF;IACA,IAAI,KAAKrJ,MAAA,IAAU,KAAKa,aAAA,EAAe;MACrC,KAAKb,MAAA,CAAOoF,IAAA,CAAKuC,KAAA,EAAOW,IAAI;IAC9B;EACF;EAEAuC,UAAA,EAAY;IACV,OAAO,KAAK7K,MAAA;EACd;EAAA;EAGA8K,eAAA,EAAiD;IAC/C,OAAO,KAAK7K,WAAA;EACd;EAAA;AAAA;AAAA;AAAA;AAAA;EAOA8K,YAAA,EAAyB;IACvB,OAAO,CAAC,GAAG,KAAKpK,QAAA,CAASwE,MAAA,CAAO,CAAC;EACnC;EAAA;EAGA6F,aAAA,EAA2B;IACzB,OAAO,CAAC,GAAG,KAAKpK,SAAA,CAAUuE,MAAA,CAAO,CAAC;EACpC;AACF","ignoreList":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { isNative } from "@multiplatform.one/platform";
|
|
2
2
|
import { io } from "socket.io-client";
|
|
3
|
-
import { isBrowser, isGjs } from "./util";
|
|
3
|
+
import { isBrowser, isGjs } from "./util.native.js";
|
|
4
4
|
function _class_call_check(instance, Constructor) {
|
|
5
5
|
if (!(instance instanceof Constructor)) {
|
|
6
6
|
throw new TypeError("Cannot call a class as a function");
|
|
@@ -48,9 +48,14 @@ var RealtimeModule = /* @__PURE__ */function () {
|
|
|
48
48
|
function RealtimeModule2(config) {
|
|
49
49
|
_class_call_check(this, RealtimeModule2);
|
|
50
50
|
_define_property(this, "socket", void 0);
|
|
51
|
+
_define_property(this, "eventSource", void 0);
|
|
51
52
|
_define_property(this, "handlerMap", /* @__PURE__ */new Map());
|
|
52
53
|
_define_property(this, "attachedSocketEvents", /* @__PURE__ */new Set());
|
|
53
54
|
_define_property(this, "socketEventHandlers", /* @__PURE__ */new Map());
|
|
55
|
+
_define_property(this, "attachedSseEvents", /* @__PURE__ */new Set());
|
|
56
|
+
_define_property(this, "sseListeners", /* @__PURE__ */new Map());
|
|
57
|
+
_define_property(this, "sseRoomNoticeLogged", false);
|
|
58
|
+
_define_property(this, "sseEmitNoticeLogged", false);
|
|
54
59
|
_define_property(this, "docRooms", /* @__PURE__ */new Map());
|
|
55
60
|
_define_property(this, "listRooms", /* @__PURE__ */new Map());
|
|
56
61
|
_define_property(this, "socketHealthy", false);
|
|
@@ -78,19 +83,31 @@ var RealtimeModule = /* @__PURE__ */function () {
|
|
|
78
83
|
key: "getSocketURL",
|
|
79
84
|
value: function getSocketURL() {
|
|
80
85
|
var base = this.config.baseURL.replace(/\/$/, "");
|
|
86
|
+
if (this.config.socketBaseURL) {
|
|
87
|
+
var socketBase = this.config.socketBaseURL.replace(/\/$/, "");
|
|
88
|
+
var siteName = this.config.siteName;
|
|
89
|
+
if (!siteName) {
|
|
90
|
+
try {
|
|
91
|
+
siteName = new URL(base).hostname;
|
|
92
|
+
} catch (unused) {
|
|
93
|
+
siteName = base.replace(/^https?:\/\//, "").split(/[/:]/)[0];
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
return `${socketBase}/${siteName}`;
|
|
97
|
+
}
|
|
81
98
|
try {
|
|
82
99
|
var url = new URL(base);
|
|
83
100
|
var port = this.config.socketPort ? String(this.config.socketPort) : url.port;
|
|
84
101
|
var host = port ? `${url.hostname}:${port}` : url.hostname;
|
|
85
|
-
var
|
|
86
|
-
return `${url.protocol}//${host}/${
|
|
102
|
+
var siteName1 = this.config.siteName || url.hostname;
|
|
103
|
+
return `${url.protocol}//${host}/${siteName1}`;
|
|
87
104
|
} catch (unused) {
|
|
88
105
|
var result = base;
|
|
89
106
|
if (this.config.socketPort) {
|
|
90
107
|
result = result.replace(/(:\d+)/, `:${this.config.socketPort}`);
|
|
91
108
|
}
|
|
92
|
-
var
|
|
93
|
-
return `${result}/${
|
|
109
|
+
var siteName2 = this.config.siteName || result.replace(/^https?:\/\//, "").split(/[/:]/)[0];
|
|
110
|
+
return `${result}/${siteName2}`;
|
|
94
111
|
}
|
|
95
112
|
}
|
|
96
113
|
}, {
|
|
@@ -196,13 +213,17 @@ var RealtimeModule = /* @__PURE__ */function () {
|
|
|
196
213
|
}
|
|
197
214
|
this.healthyWaiters.clear();
|
|
198
215
|
}
|
|
216
|
+
}, {
|
|
217
|
+
key: "isSSE",
|
|
218
|
+
value: function isSSE() {
|
|
219
|
+
return this.config.transport === "sse";
|
|
220
|
+
}
|
|
199
221
|
}, {
|
|
200
222
|
key: "waitUntilHealthy",
|
|
201
223
|
value: function waitUntilHealthy() {
|
|
202
224
|
var _this = this;
|
|
203
225
|
var timeoutMs = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : 2e4;
|
|
204
|
-
|
|
205
|
-
if (this.socketHealthy && ((_this_socket = this.socket) === null || _this_socket === void 0 ? void 0 : _this_socket.connected)) return Promise.resolve(true);
|
|
226
|
+
if (this.isHealthy()) return Promise.resolve(true);
|
|
206
227
|
return new Promise(function (resolve) {
|
|
207
228
|
var timer = setTimeout(function () {
|
|
208
229
|
_this.healthyWaiters.delete(onReady);
|
|
@@ -218,9 +239,8 @@ var RealtimeModule = /* @__PURE__ */function () {
|
|
|
218
239
|
}, {
|
|
219
240
|
key: "ensureConnected",
|
|
220
241
|
value: async function ensureConnected() {
|
|
221
|
-
|
|
222
|
-
if (this.
|
|
223
|
-
if (!this.socket && !this.isConnecting) {
|
|
242
|
+
if (this.isHealthy()) return;
|
|
243
|
+
if (!this.socket && !this.eventSource && !this.isConnecting) {
|
|
224
244
|
await this.connect();
|
|
225
245
|
}
|
|
226
246
|
await this.waitUntilHealthy();
|
|
@@ -276,7 +296,17 @@ var RealtimeModule = /* @__PURE__ */function () {
|
|
|
276
296
|
}
|
|
277
297
|
}, {
|
|
278
298
|
key: "connect",
|
|
279
|
-
value:
|
|
299
|
+
value: (
|
|
300
|
+
/**
|
|
301
|
+
* Open the realtime transport now. Room-driven auto-connect
|
|
302
|
+
* (subscribeDoc/subscribeList) remains the primary lifecycle in both
|
|
303
|
+
* transports — this is public for SSE consumers that use no doc/list room
|
|
304
|
+
* bookkeeping: a one-way stream has nothing to emit on join, so nothing
|
|
305
|
+
* else would ever open it. Idempotent while a transport exists or a
|
|
306
|
+
* connect is in flight.
|
|
307
|
+
*/
|
|
308
|
+
async function connect() {
|
|
309
|
+
if (this.isSSE()) return this.connectSSE();
|
|
280
310
|
if (this.socket || this.isConnecting) return;
|
|
281
311
|
this.isConnecting = true;
|
|
282
312
|
try {
|
|
@@ -304,7 +334,259 @@ var RealtimeModule = /* @__PURE__ */function () {
|
|
|
304
334
|
this.resolveHealthyWaiters(false);
|
|
305
335
|
throw err;
|
|
306
336
|
}
|
|
337
|
+
})
|
|
338
|
+
}, {
|
|
339
|
+
key: "connectSSE",
|
|
340
|
+
value: (
|
|
341
|
+
/**
|
|
342
|
+
* SSE branch of connect(): construct an EventSource against the configured
|
|
343
|
+
* stream URL. EventSource connects at construction, auto-reconnects on
|
|
344
|
+
* failure, and resumes missed frames itself by sending the stream's last
|
|
345
|
+
* `id:` as the `Last-Event-ID` request header — none of that is
|
|
346
|
+
* reimplemented here.
|
|
347
|
+
*/
|
|
348
|
+
async function connectSSE() {
|
|
349
|
+
if (this.eventSource || this.isConnecting) return;
|
|
350
|
+
this.isConnecting = true;
|
|
351
|
+
try {
|
|
352
|
+
var _ref;
|
|
353
|
+
var sse = this.config.sse;
|
|
354
|
+
var EventSourceCtor = (_ref = sse === null || sse === void 0 ? void 0 : sse.EventSource) !== null && _ref !== void 0 ? _ref : globalThis.EventSource;
|
|
355
|
+
if (!EventSourceCtor) {
|
|
356
|
+
throw new Error('[RealtimeModule] transport "sse" needs an EventSource implementation, and this runtime has no global EventSource (React Native and Node < 22 ship none). Pass a constructor via config.sse.EventSource \u2014 e.g. the "eventsource" npm package on Node or "react-native-sse" on React Native.');
|
|
357
|
+
}
|
|
358
|
+
var url = await this.buildSSEURL();
|
|
359
|
+
this.eventSource = new EventSourceCtor(url, {
|
|
360
|
+
withCredentials: sse === null || sse === void 0 ? void 0 : sse.withCredentials
|
|
361
|
+
});
|
|
362
|
+
this.initSSEHandlers();
|
|
363
|
+
} catch (err) {
|
|
364
|
+
this.isConnecting = false;
|
|
365
|
+
this.resolveHealthyWaiters(false);
|
|
366
|
+
throw err;
|
|
367
|
+
}
|
|
368
|
+
})
|
|
369
|
+
}, {
|
|
370
|
+
key: "buildSSEURL",
|
|
371
|
+
value: async function buildSSEURL() {
|
|
372
|
+
var _ref;
|
|
373
|
+
var _this_config_sse;
|
|
374
|
+
var sse = this.config.sse;
|
|
375
|
+
var url;
|
|
376
|
+
if (sse === null || sse === void 0 ? void 0 : sse.url) {
|
|
377
|
+
url = sse.url;
|
|
378
|
+
} else if (sse === null || sse === void 0 ? void 0 : sse.path) {
|
|
379
|
+
var base = this.config.baseURL.replace(/\/$/, "");
|
|
380
|
+
url = `${base}${sse.path.startsWith("/") ? "" : "/"}${sse.path}`;
|
|
381
|
+
} else {
|
|
382
|
+
throw new Error('[RealtimeModule] transport "sse" requires config.sse.url or config.sse.path. There is no default stream path: SSE endpoints are server-specific (the SHC daemon serves "/api/method/shc.events.stream"; a real Frappe bench has no SSE endpoint at all), so a framework default would only ever 404.');
|
|
383
|
+
}
|
|
384
|
+
var params = Object.entries((_ref = (_this_config_sse = this.config.sse) === null || _this_config_sse === void 0 ? void 0 : _this_config_sse.queryParams) !== null && _ref !== void 0 ? _ref : {});
|
|
385
|
+
if (params.length === 0) return url;
|
|
386
|
+
var parts = [];
|
|
387
|
+
var _iteratorNormalCompletion = true,
|
|
388
|
+
_didIteratorError = false,
|
|
389
|
+
_iteratorError = void 0;
|
|
390
|
+
try {
|
|
391
|
+
for (var _iterator = params[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
392
|
+
var [key, value] = _step.value;
|
|
393
|
+
var resolved = typeof value === "function" ? await value() : value;
|
|
394
|
+
parts.push(`${encodeURIComponent(key)}=${encodeURIComponent(resolved)}`);
|
|
395
|
+
}
|
|
396
|
+
} catch (err) {
|
|
397
|
+
_didIteratorError = true;
|
|
398
|
+
_iteratorError = err;
|
|
399
|
+
} finally {
|
|
400
|
+
try {
|
|
401
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
402
|
+
_iterator.return();
|
|
403
|
+
}
|
|
404
|
+
} finally {
|
|
405
|
+
if (_didIteratorError) {
|
|
406
|
+
throw _iteratorError;
|
|
407
|
+
}
|
|
408
|
+
}
|
|
409
|
+
}
|
|
410
|
+
return `${url}${url.includes("?") ? "&" : "?"}${parts.join("&")}`;
|
|
307
411
|
}
|
|
412
|
+
}, {
|
|
413
|
+
key: "initSSEHandlers",
|
|
414
|
+
value: function initSSEHandlers() {
|
|
415
|
+
var _ref;
|
|
416
|
+
var _this_config_sse;
|
|
417
|
+
this.attachedSseEvents.clear();
|
|
418
|
+
this.sseListeners.clear();
|
|
419
|
+
this.attachSSEListener("open");
|
|
420
|
+
this.attachSSEListener("error");
|
|
421
|
+
this.attachSSEListener("message");
|
|
422
|
+
var _iteratorNormalCompletion = true,
|
|
423
|
+
_didIteratorError = false,
|
|
424
|
+
_iteratorError = void 0;
|
|
425
|
+
try {
|
|
426
|
+
for (var _iterator = ((_ref = (_this_config_sse = this.config.sse) === null || _this_config_sse === void 0 ? void 0 : _this_config_sse.events) !== null && _ref !== void 0 ? _ref : [])[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
427
|
+
var type = _step.value;
|
|
428
|
+
this.attachSSEListener(type);
|
|
429
|
+
}
|
|
430
|
+
} catch (err) {
|
|
431
|
+
_didIteratorError = true;
|
|
432
|
+
_iteratorError = err;
|
|
433
|
+
} finally {
|
|
434
|
+
try {
|
|
435
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
436
|
+
_iterator.return();
|
|
437
|
+
}
|
|
438
|
+
} finally {
|
|
439
|
+
if (_didIteratorError) {
|
|
440
|
+
throw _iteratorError;
|
|
441
|
+
}
|
|
442
|
+
}
|
|
443
|
+
}
|
|
444
|
+
var _iteratorNormalCompletion1 = true,
|
|
445
|
+
_didIteratorError1 = false,
|
|
446
|
+
_iteratorError1 = void 0;
|
|
447
|
+
try {
|
|
448
|
+
for (var _iterator1 = this.handlerMap.keys()[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {
|
|
449
|
+
var event = _step1.value;
|
|
450
|
+
this.attachSSEListener(event);
|
|
451
|
+
}
|
|
452
|
+
} catch (err) {
|
|
453
|
+
_didIteratorError1 = true;
|
|
454
|
+
_iteratorError1 = err;
|
|
455
|
+
} finally {
|
|
456
|
+
try {
|
|
457
|
+
if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
|
|
458
|
+
_iterator1.return();
|
|
459
|
+
}
|
|
460
|
+
} finally {
|
|
461
|
+
if (_didIteratorError1) {
|
|
462
|
+
throw _iteratorError1;
|
|
463
|
+
}
|
|
464
|
+
}
|
|
465
|
+
}
|
|
466
|
+
}
|
|
467
|
+
}, {
|
|
468
|
+
key: "attachSSEListener",
|
|
469
|
+
value: function attachSSEListener(type) {
|
|
470
|
+
var _this = this;
|
|
471
|
+
if (!this.eventSource || this.attachedSseEvents.has(type)) return;
|
|
472
|
+
var listener = function listener2(event) {
|
|
473
|
+
_this.handleSSEEvent(type, event);
|
|
474
|
+
};
|
|
475
|
+
this.sseListeners.set(type, listener);
|
|
476
|
+
this.attachedSseEvents.add(type);
|
|
477
|
+
this.eventSource.addEventListener(type, listener);
|
|
478
|
+
}
|
|
479
|
+
}, {
|
|
480
|
+
key: "detachSSEListener",
|
|
481
|
+
value: function detachSSEListener(type) {
|
|
482
|
+
if (this.isCoreSSEType(type)) return;
|
|
483
|
+
if (!this.eventSource || !this.attachedSseEvents.has(type)) return;
|
|
484
|
+
var listener = this.sseListeners.get(type);
|
|
485
|
+
if (listener) {
|
|
486
|
+
this.eventSource.removeEventListener(type, listener);
|
|
487
|
+
this.sseListeners.delete(type);
|
|
488
|
+
}
|
|
489
|
+
this.attachedSseEvents.delete(type);
|
|
490
|
+
}
|
|
491
|
+
}, {
|
|
492
|
+
key: "isCoreSSEType",
|
|
493
|
+
value: function isCoreSSEType(type) {
|
|
494
|
+
var _ref;
|
|
495
|
+
var _this_config_sse;
|
|
496
|
+
return type === "open" || type === "error" || type === "message" || ((_ref = (_this_config_sse = this.config.sse) === null || _this_config_sse === void 0 ? void 0 : _this_config_sse.events) !== null && _ref !== void 0 ? _ref : []).includes(type);
|
|
497
|
+
}
|
|
498
|
+
}, {
|
|
499
|
+
key: "handleSSEEvent",
|
|
500
|
+
value: (
|
|
501
|
+
/**
|
|
502
|
+
* Single entry point for everything the EventSource dispatches. Dataless
|
|
503
|
+
* events are transport lifecycle (`open`/`error` as plain Events); anything
|
|
504
|
+
* carrying `data` is a server frame — including frames the server
|
|
505
|
+
* classified `event: error`, which arrive as MessageEvents WITH data and
|
|
506
|
+
* must not be mistaken for connection errors.
|
|
507
|
+
*/
|
|
508
|
+
function handleSSEEvent(type, event) {
|
|
509
|
+
var _event_lastEventId;
|
|
510
|
+
var _this_config_sse;
|
|
511
|
+
if ((event === null || event === void 0 ? void 0 : event.data) === void 0) {
|
|
512
|
+
if (type === "open") {
|
|
513
|
+
this.isConnecting = false;
|
|
514
|
+
this.socketHealthy = true;
|
|
515
|
+
this.emitToHandlers("connected", {
|
|
516
|
+
transport: "sse"
|
|
517
|
+
});
|
|
518
|
+
this.resolveHealthyWaiters(true);
|
|
519
|
+
} else if (type === "error") {
|
|
520
|
+
this.isConnecting = false;
|
|
521
|
+
this.socketHealthy = false;
|
|
522
|
+
this.emitToHandlers("disconnect", {
|
|
523
|
+
reason: "sse-error"
|
|
524
|
+
});
|
|
525
|
+
this.resolveHealthyWaiters(false);
|
|
526
|
+
}
|
|
527
|
+
return;
|
|
528
|
+
}
|
|
529
|
+
var frame = {
|
|
530
|
+
type,
|
|
531
|
+
data: String(event.data),
|
|
532
|
+
lastEventId: (_event_lastEventId = event.lastEventId) !== null && _event_lastEventId !== void 0 ? _event_lastEventId : ""
|
|
533
|
+
};
|
|
534
|
+
var mapFrame = (_this_config_sse = this.config.sse) === null || _this_config_sse === void 0 ? void 0 : _this_config_sse.mapFrame;
|
|
535
|
+
if (mapFrame) {
|
|
536
|
+
var mapped;
|
|
537
|
+
try {
|
|
538
|
+
mapped = mapFrame(frame);
|
|
539
|
+
} catch (err) {
|
|
540
|
+
console.warn("[RealtimeModule] sse.mapFrame threw; frame dropped:", err);
|
|
541
|
+
return;
|
|
542
|
+
}
|
|
543
|
+
if (!mapped) return;
|
|
544
|
+
var _iteratorNormalCompletion = true,
|
|
545
|
+
_didIteratorError = false,
|
|
546
|
+
_iteratorError = void 0;
|
|
547
|
+
try {
|
|
548
|
+
for (var _iterator = mapped[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
549
|
+
var {
|
|
550
|
+
event: mappedEvent,
|
|
551
|
+
payload
|
|
552
|
+
} = _step.value;
|
|
553
|
+
this.emitToHandlers(mappedEvent, payload);
|
|
554
|
+
}
|
|
555
|
+
} catch (err) {
|
|
556
|
+
_didIteratorError = true;
|
|
557
|
+
_iteratorError = err;
|
|
558
|
+
} finally {
|
|
559
|
+
try {
|
|
560
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
561
|
+
_iterator.return();
|
|
562
|
+
}
|
|
563
|
+
} finally {
|
|
564
|
+
if (_didIteratorError) {
|
|
565
|
+
throw _iteratorError;
|
|
566
|
+
}
|
|
567
|
+
}
|
|
568
|
+
}
|
|
569
|
+
return;
|
|
570
|
+
}
|
|
571
|
+
var payload1 = frame.data;
|
|
572
|
+
try {
|
|
573
|
+
payload1 = JSON.parse(frame.data);
|
|
574
|
+
} catch (unused) {}
|
|
575
|
+
this.emitToHandlers(frame.type, payload1);
|
|
576
|
+
})
|
|
577
|
+
}, {
|
|
578
|
+
key: "logSSERoomNoticeOnce",
|
|
579
|
+
value: (
|
|
580
|
+
/**
|
|
581
|
+
* Logged once: SSE is one-way, so doc/list room membership can't be sent
|
|
582
|
+
* upstream — rooms are recorded client-side (see getDocRooms/getListRooms)
|
|
583
|
+
* for mapFrame-driven filtering and for a future two-way transport.
|
|
584
|
+
*/
|
|
585
|
+
function logSSERoomNoticeOnce() {
|
|
586
|
+
if (this.sseRoomNoticeLogged) return;
|
|
587
|
+
this.sseRoomNoticeLogged = true;
|
|
588
|
+
console.debug("[RealtimeModule] SSE transport is one-way: doc/list room subscriptions are recorded client-side only (getDocRooms()/getListRooms()) and nothing is sent to the server \u2014 filter server-side via sse.queryParams or route frames with sse.mapFrame.");
|
|
589
|
+
})
|
|
308
590
|
}, {
|
|
309
591
|
key: "softDisconnect",
|
|
310
592
|
value: (
|
|
@@ -320,8 +602,36 @@ var RealtimeModule = /* @__PURE__ */function () {
|
|
|
320
602
|
this.socket.disconnect();
|
|
321
603
|
this.socket = void 0;
|
|
322
604
|
}
|
|
605
|
+
if (this.eventSource) {
|
|
606
|
+
var _iteratorNormalCompletion = true,
|
|
607
|
+
_didIteratorError = false,
|
|
608
|
+
_iteratorError = void 0;
|
|
609
|
+
try {
|
|
610
|
+
for (var _iterator = this.sseListeners[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
611
|
+
var [type, listener] = _step.value;
|
|
612
|
+
this.eventSource.removeEventListener(type, listener);
|
|
613
|
+
}
|
|
614
|
+
} catch (err) {
|
|
615
|
+
_didIteratorError = true;
|
|
616
|
+
_iteratorError = err;
|
|
617
|
+
} finally {
|
|
618
|
+
try {
|
|
619
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
620
|
+
_iterator.return();
|
|
621
|
+
}
|
|
622
|
+
} finally {
|
|
623
|
+
if (_didIteratorError) {
|
|
624
|
+
throw _iteratorError;
|
|
625
|
+
}
|
|
626
|
+
}
|
|
627
|
+
}
|
|
628
|
+
this.eventSource.close();
|
|
629
|
+
this.eventSource = void 0;
|
|
630
|
+
}
|
|
323
631
|
this.attachedSocketEvents.clear();
|
|
324
632
|
this.socketEventHandlers.clear();
|
|
633
|
+
this.attachedSseEvents.clear();
|
|
634
|
+
this.sseListeners.clear();
|
|
325
635
|
this.socketHealthy = false;
|
|
326
636
|
this.isConnecting = false;
|
|
327
637
|
this.resolveHealthyWaiters(false);
|
|
@@ -452,7 +762,11 @@ var RealtimeModule = /* @__PURE__ */function () {
|
|
|
452
762
|
this.handlerMap.set(event, handlerSet);
|
|
453
763
|
}
|
|
454
764
|
handlerSet.add(handler);
|
|
455
|
-
this.
|
|
765
|
+
if (this.isSSE()) {
|
|
766
|
+
this.attachSSEListener(event);
|
|
767
|
+
} else {
|
|
768
|
+
this.attachSocketListener(event);
|
|
769
|
+
}
|
|
456
770
|
}
|
|
457
771
|
}, {
|
|
458
772
|
key: "off",
|
|
@@ -462,7 +776,11 @@ var RealtimeModule = /* @__PURE__ */function () {
|
|
|
462
776
|
handlerSet.delete(handler);
|
|
463
777
|
if (handlerSet.size === 0) {
|
|
464
778
|
this.handlerMap.delete(event);
|
|
465
|
-
this.
|
|
779
|
+
if (this.isSSE()) {
|
|
780
|
+
this.detachSSEListener(event);
|
|
781
|
+
} else {
|
|
782
|
+
this.detachSocketListener(event);
|
|
783
|
+
}
|
|
466
784
|
}
|
|
467
785
|
}
|
|
468
786
|
}, {
|
|
@@ -472,8 +790,9 @@ var RealtimeModule = /* @__PURE__ */function () {
|
|
|
472
790
|
doctype,
|
|
473
791
|
name
|
|
474
792
|
});
|
|
793
|
+
if (this.isSSE()) this.logSSERoomNoticeOnce();
|
|
475
794
|
await this.ensureConnected();
|
|
476
|
-
if (this.socket && this.socketHealthy) {
|
|
795
|
+
if (!this.isSSE() && this.socket && this.socketHealthy) {
|
|
477
796
|
this.socket.emit("doc_subscribe", doctype, name);
|
|
478
797
|
}
|
|
479
798
|
}
|
|
@@ -481,7 +800,7 @@ var RealtimeModule = /* @__PURE__ */function () {
|
|
|
481
800
|
key: "unsubscribeDoc",
|
|
482
801
|
value: function unsubscribeDoc(doctype, name) {
|
|
483
802
|
this.docRooms.delete(docRoomKey(doctype, name));
|
|
484
|
-
if (this.socket && this.socketHealthy) {
|
|
803
|
+
if (!this.isSSE() && this.socket && this.socketHealthy) {
|
|
485
804
|
this.socket.emit("doc_unsubscribe", doctype, name);
|
|
486
805
|
}
|
|
487
806
|
this.teardownWhenIdle();
|
|
@@ -501,8 +820,9 @@ var RealtimeModule = /* @__PURE__ */function () {
|
|
|
501
820
|
doctype,
|
|
502
821
|
filters
|
|
503
822
|
});
|
|
823
|
+
if (this.isSSE()) this.logSSERoomNoticeOnce();
|
|
504
824
|
await this.ensureConnected();
|
|
505
|
-
if (this.socket && this.socketHealthy) {
|
|
825
|
+
if (!this.isSSE() && this.socket && this.socketHealthy) {
|
|
506
826
|
this.socket.emit("doctype_subscribe", doctype);
|
|
507
827
|
}
|
|
508
828
|
})
|
|
@@ -510,7 +830,7 @@ var RealtimeModule = /* @__PURE__ */function () {
|
|
|
510
830
|
key: "unsubscribeList",
|
|
511
831
|
value: function unsubscribeList(doctype) {
|
|
512
832
|
this.listRooms.delete(doctype);
|
|
513
|
-
if (this.socket && this.socketHealthy) {
|
|
833
|
+
if (!this.isSSE() && this.socket && this.socketHealthy) {
|
|
514
834
|
this.socket.emit("doctype_unsubscribe", doctype);
|
|
515
835
|
}
|
|
516
836
|
this.teardownWhenIdle();
|
|
@@ -529,7 +849,7 @@ var RealtimeModule = /* @__PURE__ */function () {
|
|
|
529
849
|
*/
|
|
530
850
|
function teardownWhenIdle() {
|
|
531
851
|
if (this.docRooms.size > 0 || this.listRooms.size > 0) return;
|
|
532
|
-
if (!this.socket && !this.isConnecting) return;
|
|
852
|
+
if (!this.socket && !this.eventSource && !this.isConnecting) return;
|
|
533
853
|
this.emitToHandlers("disconnect", {
|
|
534
854
|
reason: "idle-teardown"
|
|
535
855
|
});
|
|
@@ -539,6 +859,7 @@ var RealtimeModule = /* @__PURE__ */function () {
|
|
|
539
859
|
key: "isHealthy",
|
|
540
860
|
value: function isHealthy() {
|
|
541
861
|
var _this_socket;
|
|
862
|
+
if (this.isSSE()) return this.socketHealthy && this.eventSource !== void 0;
|
|
542
863
|
return this.socketHealthy && ((_this_socket = this.socket) === null || _this_socket === void 0 ? void 0 : _this_socket.connected) === true;
|
|
543
864
|
}
|
|
544
865
|
}, {
|
|
@@ -553,7 +874,7 @@ var RealtimeModule = /* @__PURE__ */function () {
|
|
|
553
874
|
key: "updateAuth",
|
|
554
875
|
value: async function updateAuth(auth) {
|
|
555
876
|
this.config.auth = auth;
|
|
556
|
-
var shouldReconnect = this.docRooms.size > 0 || this.listRooms.size > 0;
|
|
877
|
+
var shouldReconnect = this.docRooms.size > 0 || this.listRooms.size > 0 || this.isSSE() && this.eventSource !== void 0;
|
|
557
878
|
this.softDisconnect();
|
|
558
879
|
if (shouldReconnect) {
|
|
559
880
|
await this.connect();
|
|
@@ -562,6 +883,13 @@ var RealtimeModule = /* @__PURE__ */function () {
|
|
|
562
883
|
}, {
|
|
563
884
|
key: "emit",
|
|
564
885
|
value: function emit(event, data) {
|
|
886
|
+
if (this.isSSE()) {
|
|
887
|
+
if (!this.sseEmitNoticeLogged) {
|
|
888
|
+
this.sseEmitNoticeLogged = true;
|
|
889
|
+
console.debug("[RealtimeModule] emit() is a no-op under the SSE transport \u2014 SSE is one-way (server \u2192 client). Use HTTP calls for client \u2192 server communication.");
|
|
890
|
+
}
|
|
891
|
+
return;
|
|
892
|
+
}
|
|
565
893
|
if (this.socket && this.socketHealthy) {
|
|
566
894
|
this.socket.emit(event, data);
|
|
567
895
|
}
|
|
@@ -571,6 +899,28 @@ var RealtimeModule = /* @__PURE__ */function () {
|
|
|
571
899
|
value: function getSocket() {
|
|
572
900
|
return this.socket;
|
|
573
901
|
}
|
|
902
|
+
}, {
|
|
903
|
+
/** Live EventSource when the SSE transport is connected (undefined otherwise). */
|
|
904
|
+
key: "getEventSource",
|
|
905
|
+
value: function getEventSource() {
|
|
906
|
+
return this.eventSource;
|
|
907
|
+
}
|
|
908
|
+
}, {
|
|
909
|
+
/**
|
|
910
|
+
* Doc rooms recorded by subscribeDoc. Under SSE these are client-side
|
|
911
|
+
* bookkeeping only (nothing is emitted upstream) — mapFrame-driven apps
|
|
912
|
+
* consult them to filter or route frames.
|
|
913
|
+
*/
|
|
914
|
+
key: "getDocRooms",
|
|
915
|
+
value: function getDocRooms() {
|
|
916
|
+
return [...this.docRooms.values()];
|
|
917
|
+
}
|
|
918
|
+
}, {
|
|
919
|
+
/** List rooms recorded by subscribeList — same client-side semantics as getDocRooms. */
|
|
920
|
+
key: "getListRooms",
|
|
921
|
+
value: function getListRooms() {
|
|
922
|
+
return [...this.listRooms.values()];
|
|
923
|
+
}
|
|
574
924
|
}]);
|
|
575
925
|
return RealtimeModule2;
|
|
576
926
|
}();
|