@multiplatform.one/frappe 7.86.0 → 7.87.1
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/dist/cjs/core/http.cjs +27 -14
- package/dist/cjs/core/http.native.js +28 -14
- package/dist/cjs/core/http.native.js.map +1 -1
- package/dist/cjs/sync/persistence.cjs +23 -2
- package/dist/cjs/sync/persistence.native.js +30 -2
- package/dist/cjs/sync/persistence.native.js.map +1 -1
- package/dist/cjs/sync/types.native.js.map +1 -1
- package/dist/esm/core/http.mjs +27 -16
- package/dist/esm/core/http.mjs.map +1 -1
- package/dist/esm/core/http.native.js +28 -16
- package/dist/esm/core/http.native.js.map +1 -1
- package/dist/esm/sync/persistence.mjs +23 -3
- package/dist/esm/sync/persistence.mjs.map +1 -1
- package/dist/esm/sync/persistence.native.js +30 -3
- package/dist/esm/sync/persistence.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/jsx/core/http.mjs +27 -16
- package/dist/jsx/core/http.mjs.map +1 -1
- package/dist/jsx/core/http.native.js +28 -14
- package/dist/jsx/core/http.native.js.map +1 -1
- package/dist/jsx/sync/persistence.mjs +23 -3
- package/dist/jsx/sync/persistence.mjs.map +1 -1
- package/dist/jsx/sync/persistence.native.js +30 -2
- package/dist/jsx/sync/persistence.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 +6 -6
- package/src/core/http.spec.ts +30 -0
- package/src/core/http.ts +35 -17
- package/src/core/httpHermes.spec.ts +31 -0
- package/src/sync/defaultStorageReady.spec.ts +93 -0
- package/src/sync/persistence.ts +37 -3
- package/src/sync/types.ts +13 -0
- package/types/core/http.d.ts +17 -1
- package/types/core/http.d.ts.map +1 -1
- package/types/sync/persistence.d.ts +10 -0
- package/types/sync/persistence.d.ts.map +1 -1
- package/types/sync/types.d.ts +13 -0
- package/types/sync/types.d.ts.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toCommonJS","mod","value","persistence_exports","PersistenceManager","module","exports","import_pacer","require","import_platform","import_util","import_storage","_class_call_check","instance","Constructor","TypeError","_defineProperties","props","i","length","descriptor","configurable","writable","_create_class","protoProps","staticProps","_define_property","obj","_type_of","Symbol","constructor","getLocalStorage","globalThis","localStorage","unused","PersistenceManager2","normalizedCache","mutationJournal","subscriptionManager","mutationEngine","_this","options","arguments","_ref","_ref1","_ref2","_options_tabCoordination","_options_tabCoordination1","_options_tabCoordination2","Debouncer","save","wait","generateTabId","Date","now","Set","Promise","resolve","tabCoordinationConfig","activeTabPriority","tabCoordination","leaderTimeout","handoffGracePeriod","isNative","isGjs","setupPersistence","window","document","setupBroadcastChannel","persistKey","setupTabCoordination","whenReady","loadPromise","storage","persistenceStorage","indexedDB","IndexedDBKV","console","debug","PlatformStorageKV","load","BroadcastChannel","broadcastChannel","onmessage","e","data","onResetCache","onBackfillAll","message","type","fromTab","tabId","broadcastToTabs","isVisible","visibilityState","isLeader","initiateGracefulHandoff","toTab","state","restoreStateFromHandoff","becomeLeader","mutation","handleRemoteMutation","doc","operation","remove","doctype","upsert","broadcastMutation","handoffState","cache","subscriptions","Array","isArray","getAllSubscriptions","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","iterator","_step","next","done","subscription","id","set","err","return","tempMappings","tempMap","getTemporaryIdToRealNameMap","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","_iterator1","_step1","tempId","realId","scheduleSave","saveDebouncer","maybeExecute","gcRestoredSubscriptions","snapshot","subs","values","map","s","query","checkpoint","cursor","docIds","journal","listPending","temp","entries","setItem","JSON","stringify","warn","raw","getItem","snap","parse","bucket","byId","replace","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_iterator2","_step2","restoreSubscription","_iteratorNormalCompletion3","_didIteratorError3","_iteratorError3","_iterator3","_step3","entry","add","_iteratorNormalCompletion4","_didIteratorError4","_iteratorError4","_iterator4","_step4","broadcastReset","postMessage","broadcastBackfill","broadcastChange","hidden","cleanupVisibilityChange","onVisibilityChange","visible","isDestroyed","wasVisible","lastVisibilityChange","evaluateLeadershipPriority","considerLeadershipHandoff","tryBecomeLeader","leaderData","getLeaderData","timestamp","leaderCheckInterval","clearInterval","setInterval","checkLeadership","updateLeaderTimestamp","onBecomeLeader","ls","leaderKey","error"],"sources":["../../../src/sync/persistence.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toCommonJS","mod","value","persistence_exports","DEFAULT_STORAGE_READY_TIMEOUT_MS","PersistenceManager","module","exports","import_pacer","require","import_platform","import_util","import_storage","_class_call_check","instance","Constructor","TypeError","_defineProperties","props","i","length","descriptor","configurable","writable","_create_class","protoProps","staticProps","_define_property","obj","_type_of","Symbol","constructor","getLocalStorage","globalThis","localStorage","unused","PersistenceManager2","normalizedCache","mutationJournal","subscriptionManager","mutationEngine","_this","options","arguments","_ref","_ref1","_ref2","_options_tabCoordination","_options_tabCoordination1","_options_tabCoordination2","Debouncer","save","wait","generateTabId","Date","now","Set","Promise","resolve","tabCoordinationConfig","activeTabPriority","tabCoordination","leaderTimeout","handoffGracePeriod","isNative","isGjs","setupPersistence","window","document","setupBroadcastChannel","persistKey","setupTabCoordination","whenReady","loadPromise","_this_options_storageReadyTimeout","storage","persistenceStorage","indexedDB","IndexedDBKV","console","debug","PlatformStorageKV","loadWithin","storageReadyTimeout","timeoutMs","timedOut","loadTimer","setTimeout","race","load","then","outcome","clearTimeout","loadAbandoned","warn","BroadcastChannel","broadcastChannel","onmessage","e","data","onResetCache","onBackfillAll","message","type","fromTab","tabId","broadcastToTabs","isVisible","visibilityState","isLeader","initiateGracefulHandoff","toTab","state","restoreStateFromHandoff","becomeLeader","mutation","handleRemoteMutation","doc","operation","remove","doctype","upsert","broadcastMutation","handoffState","cache","subscriptions","Array","isArray","getAllSubscriptions","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","iterator","_step","next","done","subscription","id","set","err","return","tempMappings","tempMap","getTemporaryIdToRealNameMap","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","_iterator1","_step1","tempId","realId","scheduleSave","saveDebouncer","maybeExecute","gcRestoredSubscriptions","snapshot","subs","values","map","s","query","checkpoint","cursor","docIds","journal","listPending","temp","entries","setItem","JSON","stringify","raw","getItem","snap","parse","bucket","byId","replace","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_iterator2","_step2","restoreSubscription","_iteratorNormalCompletion3","_didIteratorError3","_iteratorError3","_iterator3","_step3","entry","add","_iteratorNormalCompletion4","_didIteratorError4","_iteratorError4","_iterator4","_step4","broadcastReset","postMessage","broadcastBackfill","broadcastChange","hidden","cleanupVisibilityChange","onVisibilityChange","visible","isDestroyed","wasVisible","lastVisibilityChange","evaluateLeadershipPriority","considerLeadershipHandoff","tryBecomeLeader","leaderData","getLeaderData","timestamp","leaderCheckInterval","clearInterval","setInterval","checkLeadership","updateLeaderTimestamp","onBecomeLeader","ls"],"sources":["../../../src/sync/persistence.ts"],"sourcesContent":[null],"mappings":"AAOA,YAAS;;AACT,IAAAA,SAAS,GAAAC,MAAU,CAAAC,cAAA;AAEnB,IAAAC,gBAAS,GAAaF,MAAA,CAAAG,wBAAA;AAItB,IAAAC,iBAAS,GAAaJ,MAAA,CAAAK,mBAAyB;AASxC,IAAAC,YAAM,GAAAN,MAAA,CAAAO,SAAA,CAAAC,cAAmC;AAGhD,IAAAC,QAAS,GAAAA,CAAAC,MAAA,EAAAC,GAAuC;EAC9C,KAAI,IAAAC,IAAA,IAAAD,GAAA,EACFZ,SAAO,CAAAW,MAAO,EAAAE,IAAA;IAAAC,GAAe,EAAAF,GAAA,CAAAC,IAAA;IAAAE,UAAe;EAAA;AAExC;AAEJ,IAAAC,WAAO,GAAAA,CAAAC,EAAA,EAAAC,IAAA,EAAAC,MAAA,EAAAC,IAAA;EACT,IAAAF,IAAA,WAAAA,IAAA,wBAAAA,IAAA;IACF,SAAAG,GAAA,IAAAhB,iBAAA,CAAAa,IAAA,GAKa,KAAAX,YAAA,CAAAe,IAAmB,CAAAL,EAAA,EAAAI,GAAA,KAAAA,GAAA,KAAAF,MAAA,EACtBnB,SAAA,CAAAiB,EAAA,EAAAI,GAAA;MAAAP,GAAA,EAAAA,CAAA,KAAAI,IAAA,CAAAG,GAAA;MAAAN,UAAA,IAAAK,IAAA,GAAAjB,gBAAA,CAAAe,IAAA,EAAAG,GAAA,MAAAD,IAAA,CAAAL;IAAA;EACS;EACT,OAAAE,EAAA;AAAA;AAAA,IAGAM,YAAW,GAAAC,GAAA,IAAAR,WAAA,CAAAhB,SAAA;EAAAyB,KAAA;AAAA,IAAAD,GAAA;AAAA,IACXE,mBAAa;AAAchB,QAC3B,CAAAgB,mBAAA;EACAC,gCAAwC,EAAAA,CAAA,KAAAA,gCAAA;EACxCC,kBAAA,EAAAA,CAAA,KAAuBA;AAAS,EAChC;AAA0CC,MAC1C,CAAAC,OAAA,GAAAP,YAAmB,CAAAG,mBAAA;AAAA,IACnBK,YAAA,GAAAC,OAAoB;AAAA,IACpBC,eAAA,GAAAD,OAAA;AAAA,IACSE,WAAY,GAAAF,OAAA;AAAA,IAAAG,cAAA,GAAAH,OAAA;AAAA,SAErBI,kBAAAC,QAAA,EAAAC,WAAA;EAAA,MAAAD,QAAA,YAAAC,WAAA;IAEA,UAAAC,SAAA,oCAA8D;EAAA;AAAA;AAEhD,SAAAC,kBAAA7B,MAAA,EAAA8B,KAAA;EAAA,SAAAC,CAAA,MAAAA,CAAA,GAAAD,KAAA,CAAAE,MAAA,EAAAD,CAAA;IAAA,IAAAE,UAAA,GAAAH,KAAA,CAAAC,CAAA;IAAAE,UAAA,CAAA7B,UAAA,GAAA6B,UAAA,CAAA7B,UAAA;IAKd6B,UAAA,CAAAC,YAAqC,OAAQ;IAAA,eAAAD,UAAA,EAAAA,UAAA,CAAAE,QAAA;IAE7C7C,MAAA,CAAAC,cAAgB,CAAAS,MAAA,EAAAiC,UAAA,CAAAvB,GAAA,EAAAuB,UAAA;EAChB;AAAA;AACS,SACAG,cAAAT,WAAA,EAAAU,UAAA,EAAAC,WAAA;EACA,IAAAD,UAAA,EAAAR,iBAAA,CAAAF,WAAA,CAAA9B,SAAA,EAAAwC,UAAA;EACA,IAAAC,WAAA,EAAAT,iBAAA,CAAAF,WAAA,EAAAW,WAAA;EACA,OAAAX,WAAA;AAAA;AASf,SAAKY,iBAAAC,GAAkB,EAAA9B,GAAA,EAAAI,KAAA;EACvB,IAAAJ,GAAK,IAAA8B,GAAA;IACLlD,MAAK,CAAAC,cAAA,CAAAiD,GAAA,EAAsB9B,GAAA;MAC3BI,KAAK;MACLV,UAAK,MAAU;MAEf8B,YAAK;MACHC,QAAA;IAAiE,EACjE;EAAyD,OACzD;IACFK,GAAA,CAAA9B,GAAA,IAAAI,KAAA;EAUA;EACE,OAAA0B,GAAK;AACL;AAAA,SACFC,SAAAD,GAAA;EAGA,uBAAW;;EACT,OAAAA,GAAA,WAAAE,MAAA,oBAAAF,GAAA,CAAAG,WAAA,KAAAD,MAAA,qBAAAF,GAAA;AAAA;AAGF,IAAAxB,gCAAsB;AACtB,SAAK4B,gBAAA;EAWL;IACE,OAAK,OAAAC,UAAA,KAAqB,iCAAAA,UAAA,GAAAA,UAAA,CAAAC,YAAA;EAAA,EAC5B,OAAAC,MAAA;IACF;EAAA;AAAA;AAAA,IAAA9B,kBAAA;EAAA;;EAAA,SAAA+B,oBAAAC,eAAA,EAAAC,eAAA,EAAAC,mBAAA,EAAAC,cAAA;IAOA,IAAAC,KAAA,GAA2B;IACzB,IAAAC,OAAO,GAAKC,SAAA,CAAAvB,MAAA,QAAAuB,SAAA,iBAAAA,SAAA;IACd9B,iBAAA,OAAAuB,mBAAA;IAAA,IAAAQ,IAAA,EAAAC,KAAA,EAAAC,KAAA;IAAA,IAAAC,wBAAA,EAAAC,yBAAA,EAAAC,yBAAA;IAAAtB,gBAAA;IAKQA,gBAAA,CAAmB,2BAAAnB,YAAA,CAAA0C,SAAA;MACzB,OAAK,KAAKT,KAAQ,CAAAU,IAAA;IAGlB;MACEC,IAAA,EAAK;IACP;IACEzB,gBAAK,yBAAyB,OAAY;IAC5CA,gBAAO;IAKLA,gBAAa,qBAAA0B,aAAA;IACX1B,gBAAQ;IAAAA,gBACN;IAAAA,gBACF,+BAAA2B,IAAA,CAAAC,GAAA;IAAA5B,gBACF,+CAAA6B,GAAA;IACA7B,gBAAK,yBAAyB;IAChCA,gBAAA;IAMAA,gBAAK,KAAc,yBAAK;IAAAA,gBACT,wCAAuB;IACtCA,gBAAA;IACFA,gBAAA,kDAAA6B,GAAA;IAEQ7B,gBAAW,KAAkC;IACnDA,gBAAgB,KAAK,iBAAA8B,OAAA,CAAAC,OAAA;IACrB/B,gBAAM,CAAW,IAAI,iBAAoB,OAAY;IACnDA,gBAAK,KAAY,aAAW,EAAM;IACpCA,gBAAC;IACDA,gBAAe,KAAM,mBAAiB,OAAM;IAC1CA,gBAAa,KAAK,uBAAS;IAC3BA,gBAAK,KAAY;IACjBA,gBAAI,KAAY,WAAa,OAAK;IAClC,KAAAU,eAAK,GAAgBA,eAAA;IACrB,KAAAC,eAAK,GAAAA,eAAqB;IAC1B,KAAAC,mBAAQ,GAAAA,mBAAA;IAAA,IACN,CAAAC,cAAA,GAAAA,cAAA;IAAuH,IACzH,CAAAE,OAAA,GAAAA,OAAA;IACF,IAAC,CAAAiB,qBAAA;MACHC,iBAAA,GAAAhB,IAAA,IAAAG,wBAAA,GAAAL,OAAA,CAAAmB,eAAA,cAAAd,wBAAA,uBAAAA,wBAAA,CAAAa,iBAAA,cAAAhB,IAAA,cAAAA,IAAA;MAAAkB,aAAA,GAAAjB,KAAA,IAAAG,yBAAA,GAAAN,OAAA,CAAAmB,eAAA,cAAAb,yBAAA,uBAAAA,yBAAA,CAAAc,aAAA,cAAAjB,KAAA,cAAAA,KAAA;MAAAkB,kBAAA,GAAAjB,KAAA,IAAAG,yBAAA,GAAAP,OAAA,CAAAmB,eAAA,cAAAZ,yBAAA,uBAAAA,yBAAA,CAAAc,kBAAA,cAAAjB,KAAA,cAAAA,KAAA;IAAA;IAAA,IAAApC,eAAA,CAAAsD,QAAA,QAAArD,WAAA,CAAAsD,KAAA;MAMQ,KAAAC,gBAAwB;MAC9B;IAEA;IACE,WAAKC,MAAA,gBAAuB,WAAAC,QAAiB,gBAAoB;MACnE;IACE;IACF,KAAAF,gBAAA;IAEA,KAAKG,qBAAiB;IAEpB,QAAI,CAAA3B,OAAU,CAAA4B,UAAS,QAAU,CAAAX,qBAAA,CAAAC,iBAAA;MAC/B,KAAAW,oBAAe;IACb;EAA0B;EAE5B/C,aAAM,CAAAY,mBAAS,EAAc,CAC3B;IAA2B;AAE7B;AAAA;AAIF;AACA;IAEAtC,GAAA,aAAgB;IAAMI,KACpB,EAAK,SAAAsE,UAAA;MAEH,OAAI,KAAAC,WAAQ;IACV;EAAqB,GACb;IACM3E,GAAA,oBACD;IAAyBI,KAAA;IACrC;AAEH;AAAA;IAIA,SACEgE,gBACAA,CAAA;MAGA,IAAAQ,iCAA6B;MAC/B,UAAAhC,OAAA,CAAA4B,UAAA;MACA,SAAA5B,OAAA,CAAAiC,OAAA;QAEF,IAAK,CAAAC,kBAAA,QAAAlC,OAAA,CAAAiC,OAAA;MAEH,OAAI,WAAQE,SAAe,gBAAO;QAEhC,IAAI,CAAAD,kBAAe,OAAAhE,cAAA,CAAAkE,WAAA;MACjB;QACF,QAAAnE,WAAA,CAAAsD,KAAA;UACAc,OAAK,CAAAC,KAAA,6KAAa;QACpB;QACA,KAAAJ,kBAAA,OAAAhE,cAAA,CAAAqE,iBAAA;MAEF;MAEE,IAAI,CAACR,WAAK,OAAY,CAAAS,UAAQ,EAAAR,iCAAU,QAAAhC,OAAA,CAAAyC,mBAAA,cAAAT,iCAAA,cAAAA,iCAAA,GAAAtE,gCAAA;IACtC;EAEF;IAIAN,GAAA,cAAU;IACRI,KAAA,WAAKgF,WAAAE,SAAwB;MAAa,IAC5C3C,KAAA;MACA,IAAAkC,OAAA,QAAAC,kBAAA;MAEF,IAAAS,QAAK,OAAA5B,OAAA,WAAAC,OAAA;QAEHjB,KAAA,CAAA6C,SAAA,GAAAC,UAAA;UAEF,OAAK7B,OAAA;QAEH,GAAA0B,SAAA;MACJ;MACF,OAAA3B,OAAA,CAAA+B,IAAA,EACF,KAAAC,IAAA,GAAAC,IAAA;QAAA;MAAA,IAAAL,QAAA,GAAAK,IAAA,WAAAC,OAAA;QAMQC,YAAA,CAAqBnD,KAAA,CAAA6C,SAAmC;QAG1D7C,KAAA,CAAA6C,SAAc;QACZ,IAAAK,OAAS,cAAc,IAAAlD,KAAU,CAAAmC,kBAAA,KAAAD,OAAA;QACnClC,KAAK,CAAAoD,aAAgB,OAAO;QAC1BpD,KAAA,CAAAmC,kBAAsB;QACtBG,OAAM,CAAAe,IAAA,8CAAarD,KAAA,CAAAC,OAAA,CAAA4B,UAAA,0CAAAc,SAAA;MACrB,CAAC;IACH;EACE,GAAwC;IAE5CtF,GAAA;IACFI,KAAA;IAAA;AAAA;AAAA;AAAA;IAMA,SAAAmE,qBAAqDA,CAAA;MAC9C,IAAK5B,KAAA,OAAU;MAEf,UAAAC,OAAgB,CAAA4B,UAAA,WAAAyB,gBAAA;MACnB,IAAM;QACN,KAAAC,gBAAA,OAAAD,gBAAA,qBAAArD,OAAA,CAAA4B,UAAA;MACD,SAAAnC,MAAA;QACH;MAAA;MAAA,KAAA6D,gBAAA,CAAAC,SAAA,aAAAC,CAAA;QAAA,YAAAA,CAAA,aAAAA,CAAA,uBAAAA,CAAA,CAAAC,IAAA;UAKQ,IAAAD,CAAA,CAAAC,IAAA,KAAwB,OAAgB,IAAA1D,KAAA,CAAAC,OAAA,CAAA0D,YAAA;YACzC3D,KAAS,CAAAC,OAAO,CAAA0D,YAAU,EAAU;UAEnC;UAQF,IAAAF,CAAA,CAAAC,IAAa,KAAO,cAAA1D,KAAA,CAAAC,OAAA,CAAA2D,aAAA;YAChB5D,KAAA,CAAAC,OAAwB,CAAA2D,aAAQ;UACxC;UAGI;QACI;QACN,IAAAC,OAAW,GAAAJ,CAAA,SAAgB,IAAAA,CAAA,KAAa,eAAe,GAAAA,CAAA,CAAAC,IAAA;QACjD,KAAAG,OAAA,IAAc,CAAAA,OAAI,CAAAC,IAAA;QACpB,QAAAD,OAAc,CAAIC,IAAA;UACpB;YACF,IAAAD,OAAA,CAAAE,OAAA,KAAA/D,KAAA,CAAAgE,KAAA;cACFhE,KAAA,CAAAiE,eAAA;gBAGIH,IAAa,uBAAsB;gBAC/BE,KAAU,EAAKhE,KAAA,CAAAgE,KAAA;gBACTE,SAAQ,EAAAlE,KAAM,CAAKmE,eAAa;cAClC,EAAI;YACd;YACF;UACF;YAAA,IAAAnE,KAAA,CAAAoE,QAAA,IAAAP,OAAA,CAAAM,eAAA,kBAAAnE,KAAA,CAAAmE,eAAA;cAAAnE,KAAA,CAAAqE,uBAAA;YAAA;YAKA;UACY,yBAAoB;YACzB,IAAAR,OAAc,CAAAS,KAAA,KAAatE,KAAA,CAAAgE,KAAA;cAClC,IAAAH,OAAA,CAAAU,KAAA;gBAAAvE,KAAA,CAAAwE,uBAAA,CAAAX,OAAA,CAAAU,KAAA;cAAA;cAAAvE,KAAA,CAAAyE,YAAA;YAKqB;YACT;UACN;YAGG,KAAAzE,KAAA,CAAAoE,QAAoB,IAAAP,OAAA,CAAAa,QAAwB;cAE3C1E,KAAW,CAAA2E,oBAAA,CAAAd,OAAA,CAAAa,QAAA;YACR;YACC;UACN,KAAS;YACT,KAAA1E,KAAc,CAAAoE,QAAA,IAAAP,OAAA,CAAAU,KAAA;cACNvE,KAAE,CAAAwE,uBAAA,CAAAX,OAAA,CAAAU,KAAA;YACV;YACA;UACF,KAAO,WAAK;YACZ;UACM,KAAI,qBAAoB;YAChC;QACM;MACR;IAEE;EAEJ;IAAAlH,GAAA;IAAAI,KAAA;IAKc;AACZ;AACA;AACE;IACA,SAAKkH,oBAA2BA,CAAAD,QAAA;MAChC,IAAMA,QAAO,CAAAE,GAAK;QAOd,IAAMF,QAAA,CAASG,SAAO,KAAK,QAAU;UACvC,KAAWjF,eAAU,CAAAkF,MAAO;YACpBC,OAAQ,EAAAL,QAAsD,CAAAE,GAAA,CAAAG,OAAA;YAC/DlI,IAAA,EAAA6H,QAAe,CAAAE,GAAA,CAAA/H;UACpB;QACE,OAAK;UACL,IAAI,CAAA+C,eAAK,CAAAoF,MAAoB,CAAAN,QAAM,CAAAE,GAAA;QACnC;MACF;IACF;EAMF,GACE;IACE;AAAyD;AAC3D;AAIF;IACEvH,GAAA,qBAAiB;IACfI,KAAA,WAAKwH,iBAAwBA,CAAAP,QAAK;MACpC,UAAAN,QAAA;MACF,KAAAH,eAAA;QAGIH,IAAA,EAAM,UAAQ;QAChBY;MACA;IACE;EAA0B,GAC5B;IAEJrH,GAAA,2BAAc;IAEZI,KAAA;IACF;AAAA;AACF;IAAA,SAAA+G,wBAAAD,KAAA;MAAA,KAAAA,KAAA,YAAAA,KAAA,iCAAAnF,QAAA,CAAAmF,KAAA;MAKA,IAAAW,YAAiB,GAAAX,KAAA;MACX,IAAKW,YAAA,CAAAC,KAAkB;QACpB,KAAAvF,eAAiB,CAAA2E,KAAA,GAAYW,YAAO,CAAAC,KAAA;MAC3C;MACF,IAAAD,YAAA,CAAAE,aAAA,IAAAC,KAAA,CAAAC,OAAA,CAAAJ,YAAA,CAAAE,aAAA;QAAA,IAAAA,aAAA,QAAAtF,mBAAA,CAAAyF,mBAAA;QAAA,IAAAC,yBAAA;UAAAC,iBAAA;UAAAC,cAAA;QAAA;UAKA,SAAoBC,SAAA,GAAAT,YAAA,CAAAE,aAAA,CAAA/F,MAAA,CAAAuG,QAAA,KAAAC,KAAA,IAAAL,yBAAA,IAAAK,KAAA,GAAAF,SAAA,CAAAG,IAAA,IAAAC,IAAA,GAAAP,yBAAA;YACT,IAAAQ,YAAkB,GAAAH,KAAA,CAAApI,KAAA;YACpB,IAAAuI,YAAiB,SAAY,IAAAA,YAAU,uBAAAA,YAAA,CAAAC,EAAA;cAC9Cb,aAAA,CAAAc,GAAA,CAAAF,YAAA,CAAAC,EAAA,EAAAD,YAAA;YACF;UAAA;QAAA,SAAAG,GAAA;UAAAV,iBAAA;UAKAC,cAAkB,GAAAS,GAAA;QACZ,CAAK;UACF;YACP,KAAAX,yBAAA,IAAAG,SAAA,CAAAS,MAAA;cACFT,SAAA,CAAAS,MAAA;YAAA;UAAA;YAAA,IAAAX,iBAAA;cAKQ,MAAAC,cAAuB;YAExB;UAIA;QACC;MAEJ;MACA,IAAKR,YAAA,CAAAmB,YAA4B,IAAAhB,KAAA,CAAAC,OAAY,CAAAJ,YAAA,CAAAmB,YAAA;QACxC,IAAAC,OAAA,QAAAvG,cAAgC,CAAAwG,2BAAA;QAEhC,IAAAC,0BAAmB;UAAoBC,kBAAW;UAAAC,eAAA;QAErD,IAAK;UACP,KAAW,IAAAC,UAAc,GAAKzB,YAAA,CAAAmB,YAAoB,CAAAhH,MAAY,CAAAuG,QAAK,KAAAgB,MAAU,IAAAJ,0BAAA,IAAAI,MAAA,GAAAD,UAAA,CAAAb,IAAA,IAAAC,IAAA,GAAAS,0BAAA;YAEtE,KAAAK,MAAA,EAAAC,MAAA,IAA0BF,MAAA,CAAAnJ,KAAA;YACjC6I,OAAA,CAAAJ,GAAA,CAAAW,MAAA,EAAAC,MAAA;UACD;QAGI,SAAAX,GAAA,EAAgB;UACvBM,kBAAA;UAAAC,eAAA,GAAAP,GAAA;QAAA;UAAA;YAKQ,IAAkB,CAAAK,0BAAA,IAAAG,UAAA,CAAAP,MAAA;cACnBO,UAAgB,CAAAP,MAAU;YAEnB;UACN,UAAa;YAIhB,IAAAK,kBACK,EAAW;cAGZ,MAAaC,eAAA;YACb;UAED;QACF;MACF;IAEA;EAEI,GAAqB;IAEzB;AAA+C;AACjD;IACFrJ,GAAA;IAAAI,KAAA,WAAAsJ,aAAA;MAAA,UAAA9G,OAAA,CAAA4B,UAAA;MAKQ,KAAAmF,aAAe,CAAAC,YAAA;IACrB;EAEA,GACA;IACA5J,GAAK;IAGLI,KAAI;IACF;AAAsC;AAGxC;IACE,eAAUiD,KAAA,EAAa;MACrB,IAAK,MAAAT,OAAA,CAAA4B,UAAsB,UAAAM,kBAAA;MAC7B;QACM,KAAArC,mBAAsB,CAAAoH,uBAAiB;QACjD,IAAAC,QAAA;UAAAC,IAAA,WAAAtH,mBAAA,CAAAyF,mBAAA,GAAA8B,MAAA,IAAAC,GAAA,WAAAC,CAAA;YAKQ;cACKtB,EAAA,EAAAsB,CAAA,CAAAtB,EAAA;cACFuB,KAAA,EAAAD,CAAA,CAAAC,KAAA;cAEHC,UAAa,EAAAF,CAAA,CAAAE,UAAA;cACLC,MAAA,EAAAH,CAAA,CAAAG,MAAA;cACDC,MAAK,EAAIJ,CAAA,CAAAI;YACpB;UACA;UACFxC,KAAA,OAAAvF,eAAA,CAAA2E,KAAA;UAEIqD,OAAA,OAAA/H,eAAA,CAAAgI,WAAA;UACCC,IAAQ,GACJ,OAAO,CAAA/H,cAAA,CAAAwG,2BAAA,GAAAwB,OAAA;QAEhB;QACF,WAAA5F,kBAAA,CAAA6F,OAAA,MAAA/H,OAAA,CAAA4B,UAAA,EAAAoG,IAAA,CAAAC,SAAA,CAAAf,QAAA;MAAA,SAAAhB,GAAA;QAAA7D,OAAA,CAAAe,IAAA,+BAAA8C,GAAA;MAAA;IAKQ;EAGN,GAEE;IACA9I,GAAA;IACFI,KAAA;IAEA;AAEA;AAEE;IAEE,eAAKuF,IAAWA,CAAA;MAChB,IAAK,MAAA/C,OAAA,CAAA4B,UAAiB,UAAAM,kBAAA;MACxB;QACK,IAAAgG,GAAA,cAAAhG,kBAAA,CAAAiG,OAAA,MAAAnI,OAAA,CAAA4B,UAAA;QAGH,IAAM,CAAAsG,GAAA,QAAW,CAAA/E,aAAY,EAAK;QAKlC,IAAKiF,IAAA,GAAAJ,IAAA,CAAAK,KAAgB,CAAAH,GAAA;QACvB,KAAAE,IAAA,aAAAA,IAAA,uBAAAA,IAAA,CAAAlD,KAAA,KAAA/F,QAAA,CAAAiJ,IAAA,CAAAlD,KAAA;UACF,IAAAK,yBAAA;YAAAC,iBAAA;YAAAC,cAAA;UACF;YAAA,SAAAC,SAAA,GAAA1J,MAAA,CAAAoL,MAAA,CAAAgB,IAAA,CAAAlD,KAAA,EAAA9F,MAAA,CAAAuG,QAAA,KAAAC,KAAA,IAAAL,yBAAA,IAAAK,KAAA,GAAAF,SAAA,CAAAG,IAAA,IAAAC,IAAA,GAAAP,yBAAA;cAAA,IAAA+C,MAAA,GAAA1C,KAAA,CAAApI,KAAA;cAAA,IAAA+K,IAAA,GAAAD,MAAA,aAAAA,MAAA,uBAAAA,MAAA,CAAAC,IAAA;cAKoC,KAAAA,IAAA,YAAAA,IAAA,iCAAApJ,QAAA,CAAAoJ,IAAA;cACvB,IAAAhC,0BAAgB;gBAAAC,kBAAA;gBAAAC,eAAA;cAClB,IAAO;gBAEZ,SAAAC,UAAA,GAAA1K,MAAA,CAAAoL,MAAA,CAAAmB,IAAA,EAAAnJ,MAAA,CAAAuG,QAAA,KAAAgB,MAAA,IAAAJ,0BAAA,IAAAI,MAAA,GAAAD,UAAA,CAAAb,IAAA,IAAAC,IAAA,GAAAS,0BAAA;kBACc,IAAA5B,GAAA,GAAQgC,MAAK,CAAAnJ,KAAS;kBACxB,IAAK,EAAAmH,GAAM,KAAI,IAAI,IAAAA,GAAA,uBAAAA,GAAA,CAAAG,OAAA,OAAAH,GAAA,aAAAA,GAAA,uBAAAA,GAAA,CAAA/H,IAAA;kBAC3B,SAAA+C,eAAA,CAAA9C,GAAA,CAAA8H,GAAA;kBACC,KAAAhF,eAAA,CAAAoF,MAAA,CAAAJ,GAAA;oBACT6D,OAAA;kBACF;gBAAA;cAAA,SAAAtC,GAAA;gBAAAM,kBAAA;gBAKQC,eAA6B,GAAAP,GAAA;cAC1B,UAAU;gBAEb,IAAa;kBACF,KAAAK,0BAAA,IAAAG,UAAA,CAAAP,MAAA;oBACVO,UAAgB,CAAAP,MAAA;kBACrB;gBACF;kBAGe,IAAAK,kBAAoB;oBAC5B,MAAAC,eAAyB;kBAChC;gBACF;cAAA;YAAA;UAAA,SAAAP,GAAA;YAKQV,iBAA4B;YACxBC,cAAU,GAAAS,GAAA;UAGf;YACC;cAEG,KAAAX,yBAAwB,IAAAG,SAAA,CAAAS,MAAA;gBAC/BT,SAAA,CAAAS,MAAA;cAED;YACH;cAAA,IAAAX,iBAAA;gBAAA,MAAAC,cAAA;cAAA;YAKQ;UACD;QACG;QACN,IAAO,CAAA2C,IAAK,aAAAA,IAAA,uBAAAA,IAAA,CAAAjB,IAAA,KAAA/B,KAAA,CAAAC,OAAA,CAAA+C,IAAA,CAAAjB,IAAA;UACZ,IAAAsB,0BAAsB;YAAAC,kBAAA;YAAAC,eAAA;UACvB;YACH,SAAAC,UAAA,GAAAR,IAAA,CAAAjB,IAAA,CAAA/H,MAAA,CAAAuG,QAAA,KAAAkD,MAAA,IAAAJ,0BAAA,IAAAI,MAAA,GAAAD,UAAA,CAAA/C,IAAA,IAAAC,IAAA,GAAA2C,0BAAA;cAAA,IAAA1C,YAAA,GAAA8C,MAAA,CAAArL,KAAA;cAAA,KAAAqC,mBAAA,CAAAiJ,mBAAA,CAAA/C,YAAA;YAAA;UAKc,SAAAG,GAAA;YACFwC,kBAAiB;YAEtBC,eAAoB,GAAAzC,GAAA;UACpB;YAGM;cAGL,IAAY,CAAAuC,0BAAyB,IAAAG,UAAA,CAAAzC,MAAA;gBAE5ByC,UAAA,CAAAzC,MAAA;cAEP;YAED;cACG,IAAAuC,kBAAA;gBACG,MAAKC,eAAA;cACP;YACP;UACD;QAGI;QACA,KAAAP,IAAA,SAAiB,IAAAA,IAAA,uBAAAA,IAAA,CAAAT,OAAA,KAAAvC,KAAA,CAAAC,OAAA,CAAA+C,IAAA,CAAAT,OAAA;UACxB,IAAAoB,0BAAA;YAAAC,kBAAA;YAAAC,eAAA;UAEK;YACA,SAAAC,UAAmB,GAAAd,IAAA,CAAAT,OAAA,CAAAvI,MAAA,CAAAuG,QAAA,KAAAwD,MAAA,IAAAJ,0BAAA,IAAAI,MAAA,GAAAD,UAAA,CAAArD,IAAA,IAAAC,IAAA,GAAAiD,0BAAA;cAC1B;gBAAA/C,EAAA;gBAAAoD;cAAA,IAAAD,MAAA,CAAA3L,KAAA;cAAA,KAAAoC,eAAA,CAAAyJ,GAAA,CAAArD,EAAA,EAAAoD,KAAA;YAAA;UAAA,SAAAlD,GAAA;YAKc8C,kBAAA,GAA2B;YACjCC,eAAc,GAAA/C,GAAA;UAAS,UAC3B;YACF;cAEM,KAAa6C,0BAAiB,IAAAG,UAAiB,CAAA/C,MAAA;gBAEvC+C,UAAM,CAAA/C,MAAY;cAClC;YAAA;cAAA,IAAA6C,kBAAA;gBAAA,MAAAC,eAAA;cAKc;YACD;UACL;QACF;QACA,KAAAb,IAAA,aAAAA,IAAA,uBAAAA,IAAA,CAAAP,IAAA,KAAAzC,KAAA,CAAAC,OAAA,CAAA+C,IAAA,CAAAP,IAAA;UACF,IAAAxB,OAAA,QAAAvG,cAAA,CAAAwG,2BAAA;UAEM,IAAAgD,0BAA2D;YAAAC,kBAAA;YAAAC,eAAA;UAE3D;YACA,KAAM,IAAMC,UAAS,GAAArB,IAAA,CAAAP,IAAA,CAAAzI,MAAA,CAAAuG,QAAuB,KAAA+D,MAAA,IAAAJ,0BAAA,IAAAI,MAAA,GAAAD,UAAA,CAAA5D,IAAA,IAAAC,IAAA,GAAAwD,0BAAA;cAC9C,IAAU,CAAA1C,MAAK,EAAAC,MAAA,IAAA6C,MAAA,CAAAlM,KAAA;cACb6I,OAAa,CAAAJ,GAAA,CAAKW,MAAA,EAAAC,MAAA;YAClB;UACD,SAAAX,GAAA;YACHqD,kBAAA;YACFC,eAAA,GAAAtD,GAAA;UAGO;YAGF;cACG,KAAAoD,0BAAA,IAAAG,UAAA,CAAAtD,MAAA;gBACGsD,UAAK,CAAAtD,MAAA;cACf;YAGK;cACC,IAAAoD,kBAAqB,EAAO;gBAC1B,MAAAC,eAAoB;cAGrB;YACE;UACJ;QAED;MACN,SAAAtD,GAAA;QACH7D,OAAA,CAAAe,IAAA,+BAAA8C,GAAA;MAAA;IAAA;EAKQ,GACN;IACE;AACA;AAAA;IAGF9I,GAAA,EAAM,gBAAwB;IAE9BI,KAAM,WAAAmM,cAAkBA,CAAA,EAAwB;MAC9C,IAAI,IAAM,CAAArG,gBAAe;QACvB,KAAAA,gBAAqB,CAAAsG,WAAc;MACrC;IACF;EAEA,GAEA;IACE;AAAM;AACQ;IAGhBxM,GAAA,EAAM,mBAAgB;IACpBI,KAAK,WAAAqM,iBAA4BA,CAAA;MACjC,QAAO,CAAAvG,gBAAoB;QAC3B,KAASA,gBAAgB,CAAAsG,WAAA,WAAuB,CAAC;MAChD;IAEH;EACF;IAAA;AAAA;AAAA;IAMExM,GAAA,EAAO;IACLI,KAAA,EAAO,SAAKsM,eAAgBA,CAAA;MAC5B,QAAS,CAAAxG,gBAAK;QACd,KAAAA,gBAAwB,CAAAsG,WAAA,UAAoB;MAC5C;IACF;EACF;IAAAxM,GAAA;IAAAI,KAAA;IAKQ;AACN;AACE;IACF,SAAAqE,qBAAA;MAGM,IAAA9B,KAAK;MACP,IAAI,CAAAmE,eAAA,UAAAxC,QAAA,oBAAAA,QAAA,CAAAqI,MAAA;MACF,KAAAC,uBAAA,OAAAhM,eAAA,CAAAiM,kBAAA,YAAAC,OAAA;QACF,IAAMnK,KAAM,CAAAoK,WAAA;QACT,IAAAC,UAAa,GAAKrK,KAAA,CAAAmE,eAAkB;QACvCnE,KAAA,CAAAmE,eAAoB,GAAAgG,OAAc,GAAG,SAAG;QAC1CnK,KAAQ,CAAAsK,oBAAA,GAAAzJ,IAAA,CAAAC,GAAA;QAAC,KAAAuJ,UAAA,IAAArK,KAAA,CAAAmE,eAAA;UACXnE,KAAA,CAAAuK,0BAAA;QACF,WAAAF,UAAA,IAAArK,KAAA,CAAAmE,eAAA,iBAAAnE,KAAA,CAAAoE,QAAA;UAAApE,KAAA,CAAAwK,yBAAA;QAAA;MAAA;MAKQ,KAAAC,eAAiB;IACvB;EAIE,GACF;IACFpN,GAAA;IAAAI,KAAA;IAAA;AAAA;AAAA;IAME,SAAQgN,eAAMA,CAAA;MAEV,IAAKzK,KAAA;MACP,KAAAT,eAAmB,WAAA6K,WAAmB;MACtC,IAAKtJ,GAAA,GAAAD,IAAA,CAAAC,GAAA;MACP,IAAA4J,UAAA,QAAAC,aAAA;MAEI,IAAK,CAAAD,UAAQ,IAAA5J,GAAA,GAAA4J,UAAkB,CAAAE,SAAA,QAAA1J,qBAAA,CAAAG,aAAA,SAAA8C,eAAA,kBAAAuG,UAAA,CAAAvG,eAAA;QAC5B,KAAAM,YAAQ;MACf;QACF,SAAAoG,mBAAA;UAAAC,aAAA,MAAAD,mBAAA;QAAA;QAAA,KAAAA,mBAAA,GAAAE,WAAA;UAKQ,IAAwB,CAAA/K,KAAA,CAAAoK,WAAA;YACvBpK,KAAO,CAAAgL,eAAmB;UACnC;QAAA,QAAA9J,qBAAA,CAAAG,aAAA;MAAA;IAAA;EAME,GACA;IAEIhE,GAAA,EAAK;IACNI,KACA;IAAc;AACjB;AAAO;IACT,SAAAgH,aAAA;MAAA,IAAAzE,KAAA;MAAA,SAAAoK,WAAA;MAKA,KAAAhG,QAAuB;MACrB,IAAO,CAAA6G,qBAAK;MACd,KAAAC,cAAA;MAAA,SAAAL,mBAAA;QAAAC,aAAA,MAAAD,mBAAA;MAAA;MAKA,IAAU,CAAAA,mBAAA,GAAAE,WAAA;QACH,KAAA/K,KAAA,CAAcoK,WAAA;UAGdpK,KAAA,CAAAiL,qBAAqB;QAC1B;MACK,QAAA/J,qBAAY,CAAAG,aAAA;IAGb;EAEF,GACF;IAGAhE,GAAA,yBAAyB;IACvBI,KAAA;IACF;AACA;AAGA;IACA,SAAKwN,qBAA0BA,CAAA;MAG3B,IAAKE,EAAA,GAAA5L,eAAkB;MACzB,IAAK,CAAA4L,EAAA;MACL,IAAKT,UAAA;QACP1G,KAAA,OAAAA,KAAA;QAGK4G,SAAA,EAAA/J,IAAkB,CAAAC,GAAA,EAAM;QAC/BqD,eAAA,OAAAA,eAAA;QACFmG,oBAAA,OAAAA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Order","Order2","defaultPageLength","PlacementType","PlacementType2","PendingRehydrationType","PendingRehydrationType2","Operation","Operation2","Status","Status2","BackfillScope","BackfillScope2","RealtimeEventType","RealtimeEventType2","RehydrationStrategyType","RehydrationStrategyType2","RehydrationReason","RehydrationReason2","MutationBatchStatus","MutationBatchStatus2"],"sources":["../../../src/sync/types.ts"],"sourcesContent":[null],"mappings":"AAIO,IAAKA,KAAA,GAAL,gBAAKC,MAAA,IAAL;EACLD,MAAA,UAAM;EACNA,MAAA,WAAO;EAFG,OAAAC,MAAA;AAAA,GAAAD,KAAA;AAmBL,MAAME,iBAAA,GAAoB;AAqB1B,IAAKC,aAAA,GAAL,gBAAKC,cAAA,IAAL;EACLD,cAAA,aAAS;EACTA,cAAA,aAAS;EACTA,cAAA,YAAQ;EACRA,cAAA,cAAU;EAJA,OAAAC,cAAA;AAAA,GAAAD,aAAA;AAiBL,IAAKE,sBAAA,GAAL,gBAAKC,uBAAA,IAAL;EACLD,uBAAA,eAAW;EACXA,uBAAA,kBAAc;EAFJ,OAAAC,uBAAA;AAAA,GAAAD,sBAAA;AAmCL,IAAKE,SAAA,GAAL,gBAAKC,UAAA,IAAL;EACLD,UAAA,aAAS;EACTA,UAAA,aAAS;EACTA,UAAA,aAAS;EAHC,OAAAC,UAAA;AAAA,GAAAD,SAAA;AAML,IAAKE,MAAA,GAAL,gBAAKC,OAAA,IAAL;EACLD,OAAA,cAAU;EACVA,OAAA,gBAAY;EACZA,OAAA,aAAS;EAHC,OAAAC,OAAA;AAAA,GAAAD,MAAA;AAqEL,IAAKE,aAAA,GAAL,gBAAKC,cAAA,IAAL;EACLD,cAAA,UAAM;EACNA,cAAA,eAAW;EACXA,cAAA,oBAAgB;EAChBA,cAAA,WAAO;EAJG,OAAAC,cAAA;AAAA,GAAAD,aAAA;AAgBL,IAAKE,iBAAA,GAAL,gBAAKC,kBAAA,IAAL;EAELD,kBAAA,gBAAY;EAEZA,kBAAA,iBAAa;EAEbA,kBAAA,iBAAa;EAEbA,kBAAA,iBAAa;EACbA,kBAAA,gBAAY;EACZA,kBAAA,oBAAgB;EAVN,OAAAC,kBAAA;AAAA,GAAAD,iBAAA;
|
|
1
|
+
{"version":3,"names":["Order","Order2","defaultPageLength","PlacementType","PlacementType2","PendingRehydrationType","PendingRehydrationType2","Operation","Operation2","Status","Status2","BackfillScope","BackfillScope2","RealtimeEventType","RealtimeEventType2","RehydrationStrategyType","RehydrationStrategyType2","RehydrationReason","RehydrationReason2","MutationBatchStatus","MutationBatchStatus2"],"sources":["../../../src/sync/types.ts"],"sourcesContent":[null],"mappings":"AAIO,IAAKA,KAAA,GAAL,gBAAKC,MAAA,IAAL;EACLD,MAAA,UAAM;EACNA,MAAA,WAAO;EAFG,OAAAC,MAAA;AAAA,GAAAD,KAAA;AAmBL,MAAME,iBAAA,GAAoB;AAqB1B,IAAKC,aAAA,GAAL,gBAAKC,cAAA,IAAL;EACLD,cAAA,aAAS;EACTA,cAAA,aAAS;EACTA,cAAA,YAAQ;EACRA,cAAA,cAAU;EAJA,OAAAC,cAAA;AAAA,GAAAD,aAAA;AAiBL,IAAKE,sBAAA,GAAL,gBAAKC,uBAAA,IAAL;EACLD,uBAAA,eAAW;EACXA,uBAAA,kBAAc;EAFJ,OAAAC,uBAAA;AAAA,GAAAD,sBAAA;AAmCL,IAAKE,SAAA,GAAL,gBAAKC,UAAA,IAAL;EACLD,UAAA,aAAS;EACTA,UAAA,aAAS;EACTA,UAAA,aAAS;EAHC,OAAAC,UAAA;AAAA,GAAAD,SAAA;AAML,IAAKE,MAAA,GAAL,gBAAKC,OAAA,IAAL;EACLD,OAAA,cAAU;EACVA,OAAA,gBAAY;EACZA,OAAA,aAAS;EAHC,OAAAC,OAAA;AAAA,GAAAD,MAAA;AAqEL,IAAKE,aAAA,GAAL,gBAAKC,cAAA,IAAL;EACLD,cAAA,UAAM;EACNA,cAAA,eAAW;EACXA,cAAA,oBAAgB;EAChBA,cAAA,WAAO;EAJG,OAAAC,cAAA;AAAA,GAAAD,aAAA;AAgBL,IAAKE,iBAAA,GAAL,gBAAKC,kBAAA,IAAL;EAELD,kBAAA,gBAAY;EAEZA,kBAAA,iBAAa;EAEbA,kBAAA,iBAAa;EAEbA,kBAAA,iBAAa;EACbA,kBAAA,gBAAY;EACZA,kBAAA,oBAAgB;EAVN,OAAAC,kBAAA;AAAA,GAAAD,iBAAA;AAsIL,IAAKE,uBAAA,GAAL,gBAAKC,wBAAA,IAAL;EACLD,wBAAA,oBAAgB;EAChBA,wBAAA,kBAAc;EAFJ,OAAAC,wBAAA;AAAA,GAAAD,uBAAA;AAoBL,IAAKE,iBAAA,GAAL,gBAAKC,kBAAA,IAAL;EACLD,kBAAA,aAAS;EACTA,kBAAA,aAAS;EACTA,kBAAA,eAAW;EACXA,kBAAA,mBAAe;EACfA,kBAAA,gBAAY;EALF,OAAAC,kBAAA;AAAA,GAAAD,iBAAA;AAuBL,IAAKE,mBAAA,GAAL,gBAAKC,oBAAA,IAAL;EACLD,oBAAA,cAAU;EACVA,oBAAA,iBAAa;EACbA,oBAAA,gBAAY;EACZA,oBAAA,aAAS;EAJC,OAAAC,oBAAA;AAAA,GAAAD,mBAAA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","PlacementType","to","from","except","desc","key","call","__toCommonJS","mod","value","types_exports","Operation","BackfillScope","MutationBatchStatus","Order","PendingRehydrationType","Status","RealtimeEventType","RehydrationReason","RehydrationStrategyType","defaultPageLength","module","exports","Order2","PlacementType2","PendingRehydrationType2","Operation2","Status2","BackfillScope2"],"sources":["../../../src/sync/types.ts"],"sourcesContent":[null],"mappings":"AAIO;;AACL,IAAAA,SAAA,GAAAC,MAAM,CAAAC,cAAA;AACN,IAAAC,gBAAO,GAAAF,MAAA,CAAAG,wBAAA;AAFG,IAAAC,iBAAA,GAAAJ,MAAA,CAAAK,mBAAA;AAAA,IAAAC,YAAA,GAAAN,MAAA,CAAAO,SAAA,CAAAC,cAAA;AAmBL,IAAAC,QAAM,GAAAA,CAAAC,MAAA,EAAAC,GAAoB;EAqB1B,KAAK,IAAAC,IAAA,IAAAD,GAAL,EACLZ,SAAA,CAAAW,MAAA,EAAAE,IAAA;IAASC,GAAA,EAAAF,GAAA,CAAAC,IAAA;IAAAE,UAAA;EAAA;AACT;AACA,IAAAC,WAAA,GAAAC,CAAAC,EAAA,EAAAC,IAAA,EAAQC,MAAA,EAAAC,IAAA;EACR,IAAAF,IAAA,WAAAA,IAAA,KAAU,mBAAAA,IAAA;IAJA,SAAAG,GAAA,IAAAjB,iBAAA,CAAAc,IAAA,QAAAZ,YAAA,CAAAgB,IAAA,CAAAL,EAAA,EAAAI,GAAA,KAAAA,GAAA,KAAAF,MAAA,EAiBApB,SAAA,CAAAkB,EAAA,EAAAI,GAAA;MAALR,GAAA,EAAAA,CAAA,KAAAK,IAAA,CAAAG,GAAK;MAAAP,UAAA,IAAAM,IAAA,GAAAlB,gBAAL,CAAAgB,IAAA,EAAAG,GAAA,MAAAD,IAAA,CAAAN;IAAA;EACL;EACA,OAAAG,EAAA;AAFU;AAAA,IAAAM,YAAA,GAAAC,GAAA,IAAAT,WAAA,CAAAhB,SAAA;EAAA0B,KAAA;AAAA,IAAAD,GAAA;AAmCL,IAAKE,aAAL;AACLjB,QAAA,CAAAiB,aAAA;EACAC,aAAA,EAAAA,CAAA,KAAAC,aAAS;EACTD,mBAAA,EAAAA,CAAA,KAASE,mBAAA;EAHCF,SAAA,EAAAA,CAAA,KAAAA,SAAA;EAAAG,KAAA,EAAAA,CAAA,KAAAA,KAAA;EAMLC,sBAAA,EAAAA,CAAA,KAAKA,sBAAL;EACLC,aAAA,EAAAA,CAAA,KAAUhB,aAAA;EACVgB,iBAAA,EAAAA,CAAA,KAAYC,iBAAA;EACZD,iBAAA,EAAAA,CAAA,KAASE,iBAAA;EAHCC,uBAAA,EAAAH,CAAA,KAAAG,uBAAA;EAAAH,MAAA,EAAAA,CAAA,KAAAA,MAAA;EAqELI,iBAAK,EAALA,CAAA,KAAAA;AACL;AACAC,MAAA,CAAAC,OAAA,GAAAf,YAAA,CAAAG,aAAW;AACX,IAAAI,KAAA,4BAAgBS,MAAA;EAChBX,MAAA;EAJUW,MAAA;EAAA,OAAAA,MAAA;AAgBL,GAAK;AAEV,IAAAH,iBAAA;AAEA,IAAApB,aAAA,kBAAa,UAAAwB,cAAA;EAEbP,cAAA,qBAAa;EAEbA,cAAA,qBAAa;EACbA,cAAA;EACAA,cAAA;EAVU,OAAAO,cAAA;AAAA;
|
|
1
|
+
{"version":3,"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","PlacementType","to","from","except","desc","key","call","__toCommonJS","mod","value","types_exports","Operation","BackfillScope","MutationBatchStatus","Order","PendingRehydrationType","Status","RealtimeEventType","RehydrationReason","RehydrationStrategyType","defaultPageLength","module","exports","Order2","PlacementType2","PendingRehydrationType2","Operation2","Status2","BackfillScope2"],"sources":["../../../src/sync/types.ts"],"sourcesContent":[null],"mappings":"AAIO;;AACL,IAAAA,SAAA,GAAAC,MAAM,CAAAC,cAAA;AACN,IAAAC,gBAAO,GAAAF,MAAA,CAAAG,wBAAA;AAFG,IAAAC,iBAAA,GAAAJ,MAAA,CAAAK,mBAAA;AAAA,IAAAC,YAAA,GAAAN,MAAA,CAAAO,SAAA,CAAAC,cAAA;AAmBL,IAAAC,QAAM,GAAAA,CAAAC,MAAA,EAAAC,GAAoB;EAqB1B,KAAK,IAAAC,IAAA,IAAAD,GAAL,EACLZ,SAAA,CAAAW,MAAA,EAAAE,IAAA;IAASC,GAAA,EAAAF,GAAA,CAAAC,IAAA;IAAAE,UAAA;EAAA;AACT;AACA,IAAAC,WAAA,GAAAC,CAAAC,EAAA,EAAAC,IAAA,EAAQC,MAAA,EAAAC,IAAA;EACR,IAAAF,IAAA,WAAAA,IAAA,KAAU,mBAAAA,IAAA;IAJA,SAAAG,GAAA,IAAAjB,iBAAA,CAAAc,IAAA,QAAAZ,YAAA,CAAAgB,IAAA,CAAAL,EAAA,EAAAI,GAAA,KAAAA,GAAA,KAAAF,MAAA,EAiBApB,SAAA,CAAAkB,EAAA,EAAAI,GAAA;MAALR,GAAA,EAAAA,CAAA,KAAAK,IAAA,CAAAG,GAAK;MAAAP,UAAA,IAAAM,IAAA,GAAAlB,gBAAL,CAAAgB,IAAA,EAAAG,GAAA,MAAAD,IAAA,CAAAN;IAAA;EACL;EACA,OAAAG,EAAA;AAFU;AAAA,IAAAM,YAAA,GAAAC,GAAA,IAAAT,WAAA,CAAAhB,SAAA;EAAA0B,KAAA;AAAA,IAAAD,GAAA;AAmCL,IAAKE,aAAL;AACLjB,QAAA,CAAAiB,aAAA;EACAC,aAAA,EAAAA,CAAA,KAAAC,aAAS;EACTD,mBAAA,EAAAA,CAAA,KAASE,mBAAA;EAHCF,SAAA,EAAAA,CAAA,KAAAA,SAAA;EAAAG,KAAA,EAAAA,CAAA,KAAAA,KAAA;EAMLC,sBAAA,EAAAA,CAAA,KAAKA,sBAAL;EACLC,aAAA,EAAAA,CAAA,KAAUhB,aAAA;EACVgB,iBAAA,EAAAA,CAAA,KAAYC,iBAAA;EACZD,iBAAA,EAAAA,CAAA,KAASE,iBAAA;EAHCC,uBAAA,EAAAH,CAAA,KAAAG,uBAAA;EAAAH,MAAA,EAAAA,CAAA,KAAAA,MAAA;EAqELI,iBAAK,EAALA,CAAA,KAAAA;AACL;AACAC,MAAA,CAAAC,OAAA,GAAAf,YAAA,CAAAG,aAAW;AACX,IAAAI,KAAA,4BAAgBS,MAAA;EAChBX,MAAA;EAJUW,MAAA;EAAA,OAAAA,MAAA;AAgBL,GAAK;AAEV,IAAAH,iBAAA;AAEA,IAAApB,aAAA,kBAAa,UAAAwB,cAAA;EAEbP,cAAA,qBAAa;EAEbA,cAAA,qBAAa;EACbA,cAAA;EACAA,cAAA;EAVU,OAAAO,cAAA;AAAA;AAsIL,IAAKT,sBAAA,kBAAL,UAAKU,uBAAL;EACLN,uBAAA,0BAAgB;EAChBA,uBAAA,gCAAc;EAFJ,OAAAM,uBAAA;AAAA;AAoBL,IAAKd,SAAA,kBAAL,UAAKe,UAAA;EACVR,UAAA,qBAAS;EACTA,UAAA,qBAAS;EACTA,UAAA;EACA,OAAAQ,UAAA;AACA;AALU,IAAAV,MAAA,4BAAAW,OAAA;EAAAA,OAAA;EAuBLA,OAAK,2BAAL;EACLd,OAAA;EACA,OAAAc,OAAA;AACA;AACA,IAAAf,aAAA,kBAAS,UAAAgB,cAAA;EAJCA,cAAA;EAAAA,cAAA","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@multiplatform.one/frappe",
|
|
3
|
-
"version": "7.
|
|
3
|
+
"version": "7.87.1",
|
|
4
4
|
"description": "frappe client for multiplatform.one ecosystem",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"auth",
|
|
@@ -60,7 +60,7 @@
|
|
|
60
60
|
"access": "public"
|
|
61
61
|
},
|
|
62
62
|
"dependencies": {
|
|
63
|
-
"@multiplatform.one/store": "^7.
|
|
63
|
+
"@multiplatform.one/store": "^7.87.1",
|
|
64
64
|
"@tanstack/db": "0.11.3",
|
|
65
65
|
"@tanstack/pacer": "0.21.1",
|
|
66
66
|
"@tanstack/react-db": "0.5.3",
|
|
@@ -69,9 +69,9 @@
|
|
|
69
69
|
"socket.io-client": "^4.8.4"
|
|
70
70
|
},
|
|
71
71
|
"devDependencies": {
|
|
72
|
-
"@multiplatform.one/config": "7.
|
|
73
|
-
"@multiplatform.one/platform": "7.
|
|
74
|
-
"@multiplatform.one/test-utils": "7.
|
|
72
|
+
"@multiplatform.one/config": "7.87.1",
|
|
73
|
+
"@multiplatform.one/platform": "7.87.1",
|
|
74
|
+
"@multiplatform.one/test-utils": "7.87.1",
|
|
75
75
|
"@tamagui/build": "2.7.6",
|
|
76
76
|
"@testing-library/jest-dom": "^7.0.1",
|
|
77
77
|
"@testing-library/react": "^16.3.3",
|
|
@@ -84,7 +84,7 @@
|
|
|
84
84
|
"vitest": "^4.1.12"
|
|
85
85
|
},
|
|
86
86
|
"peerDependencies": {
|
|
87
|
-
"@multiplatform.one/platform": "^7.
|
|
87
|
+
"@multiplatform.one/platform": "^7.87.1",
|
|
88
88
|
"react": "^19.1.0"
|
|
89
89
|
},
|
|
90
90
|
"engines": {
|
package/src/core/http.spec.ts
CHANGED
|
@@ -260,6 +260,36 @@ describe("HttpClient", () => {
|
|
|
260
260
|
expect(calledHeaders?.get("Authorization")).toBe(`token ${token}`);
|
|
261
261
|
});
|
|
262
262
|
|
|
263
|
+
it("sends a key:secret pair under the token scheme when no type is named (FZ-8975)", async () => {
|
|
264
|
+
const authClient = new HttpClient(baseURL, { useToken: true, token: "key:secret" });
|
|
265
|
+
global.fetch = vi.fn().mockResolvedValue({
|
|
266
|
+
ok: true,
|
|
267
|
+
headers: new Headers({ "Content-Type": "application/json" }),
|
|
268
|
+
status: 200,
|
|
269
|
+
json: async () => ({ success: true }),
|
|
270
|
+
});
|
|
271
|
+
await authClient.request(HttpMethod.Get, "/test", {});
|
|
272
|
+
const calledHeaders = getMockFetch().mock.calls[0]?.[1]?.headers as Headers | undefined;
|
|
273
|
+
expect(calledHeaders?.get("Authorization")).toBe("token key:secret");
|
|
274
|
+
});
|
|
275
|
+
|
|
276
|
+
it("keeps a named Bearer type even for a token with a colon", async () => {
|
|
277
|
+
const authClient = new HttpClient(baseURL, {
|
|
278
|
+
useToken: true,
|
|
279
|
+
token: "a:b",
|
|
280
|
+
type: AuthType.Bearer,
|
|
281
|
+
});
|
|
282
|
+
global.fetch = vi.fn().mockResolvedValue({
|
|
283
|
+
ok: true,
|
|
284
|
+
headers: new Headers({ "Content-Type": "application/json" }),
|
|
285
|
+
status: 200,
|
|
286
|
+
json: async () => ({ success: true }),
|
|
287
|
+
});
|
|
288
|
+
await authClient.request(HttpMethod.Get, "/test", {});
|
|
289
|
+
const calledHeaders = getMockFetch().mock.calls[0]?.[1]?.headers as Headers | undefined;
|
|
290
|
+
expect(calledHeaders?.get("Authorization")).toBe("Bearer a:b");
|
|
291
|
+
});
|
|
292
|
+
|
|
263
293
|
it("should support token as function", async () => {
|
|
264
294
|
const token = "dynamic-token";
|
|
265
295
|
const authClient = new HttpClient(baseURL, {
|
package/src/core/http.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { getCookie, setCookie, deleteCookie, isNative } from "@multiplatform.one/platform";
|
|
2
2
|
import { isBrowser } from "../util";
|
|
3
3
|
import { readServerMessages } from "./serverMessages";
|
|
4
|
-
import { FrappeError, HttpMethod } from "./types";
|
|
4
|
+
import { AuthType, FrappeError, HttpMethod } from "./types";
|
|
5
5
|
import type { AuthConfig, RequestCredentialsMode, RetryConfig } from "./types";
|
|
6
6
|
|
|
7
7
|
export { getCookie, setCookie, deleteCookie };
|
|
@@ -88,6 +88,28 @@ export interface HttpResponse<T> {
|
|
|
88
88
|
status: number;
|
|
89
89
|
}
|
|
90
90
|
|
|
91
|
+
/**
|
|
92
|
+
* A base URL's origin and path, read without `URL`: Hermes's URL polyfill
|
|
93
|
+
* (whatwg-url-minimum) throws in parseIPv4Number on an IPv4 host, so a client
|
|
94
|
+
* pointed at http://127.0.0.1:8011 failed every request on native (FZ-8975).
|
|
95
|
+
*/
|
|
96
|
+
export function splitBaseURL(baseURL: string): { origin: string; pathname: string } {
|
|
97
|
+
const match = /^([a-z][a-z\d+.-]*:\/\/[^/?#]*)([^?#]*)/i.exec(baseURL.trim());
|
|
98
|
+
if (!match) throw new TypeError(`Invalid base URL: ${baseURL}`);
|
|
99
|
+
return { origin: match[1] as string, pathname: match[2] || "/" };
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* Frappe's API key pair is `key:secret` and goes under the `token` scheme;
|
|
104
|
+
* an OAuth bearer token has no colon. A caller that names no `type` gets the
|
|
105
|
+
* scheme its token's shape says, so `{ useToken, token: "key:secret" }` no
|
|
106
|
+
* longer sends `Bearer key:secret`, which Frappe 403s (FZ-8975).
|
|
107
|
+
*/
|
|
108
|
+
export function authScheme(type: AuthType | undefined, token: string): AuthType {
|
|
109
|
+
if (type) return type;
|
|
110
|
+
return /^[^:\s]+:[^:\s]+$/.test(token) ? AuthType.Token : AuthType.Bearer;
|
|
111
|
+
}
|
|
112
|
+
|
|
91
113
|
export function trimTrailingSlashes(value: string): string {
|
|
92
114
|
let end = value.length;
|
|
93
115
|
while (end > 0 && value[end - 1] === "/") end -= 1;
|
|
@@ -160,16 +182,14 @@ export class HttpClient {
|
|
|
160
182
|
*/
|
|
161
183
|
private async ensureNativeCsrfToken(): Promise<string | undefined> {
|
|
162
184
|
if (this.csrfBootstrapDone) return this.csrfToken;
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
.
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
.
|
|
170
|
-
|
|
171
|
-
});
|
|
172
|
-
}
|
|
185
|
+
this.csrfBootstrap ??= this.fetchNativeCsrfToken()
|
|
186
|
+
.then((token) => {
|
|
187
|
+
this.csrfToken = token;
|
|
188
|
+
this.csrfBootstrapDone = true;
|
|
189
|
+
})
|
|
190
|
+
.finally(() => {
|
|
191
|
+
this.csrfBootstrap = undefined;
|
|
192
|
+
});
|
|
173
193
|
await this.csrfBootstrap;
|
|
174
194
|
return this.csrfToken;
|
|
175
195
|
}
|
|
@@ -211,10 +231,9 @@ export class HttpClient {
|
|
|
211
231
|
*/
|
|
212
232
|
private resolveURL(path: string): string {
|
|
213
233
|
if (/^[a-z][a-z\d+.-]*:/i.test(path)) return path;
|
|
214
|
-
const
|
|
215
|
-
const prefix = trimTrailingSlashes(
|
|
216
|
-
|
|
217
|
-
return new URL(path, `${base.origin}${prefix}/`).toString();
|
|
234
|
+
const { origin, pathname } = splitBaseURL(this.baseURL);
|
|
235
|
+
const prefix = trimTrailingSlashes(pathname);
|
|
236
|
+
return `${origin}${prefix}${path.startsWith("/") ? path : `/${path}`}`;
|
|
218
237
|
}
|
|
219
238
|
|
|
220
239
|
private requestCredentials(): RequestCredentialsMode {
|
|
@@ -225,8 +244,7 @@ export class HttpClient {
|
|
|
225
244
|
if (!this.auth?.useToken) return {};
|
|
226
245
|
const raw = typeof this.auth.token === "function" ? await this.auth.token() : this.auth?.token;
|
|
227
246
|
if (!raw) return {};
|
|
228
|
-
|
|
229
|
-
return { Authorization: `${scheme} ${raw}` };
|
|
247
|
+
return { Authorization: `${authScheme(this.auth?.type, raw)} ${raw}` };
|
|
230
248
|
}
|
|
231
249
|
|
|
232
250
|
private shouldRetryError(err: unknown, attempt: number): boolean {
|
|
@@ -109,6 +109,37 @@ describe("HttpClient on a runtime without ReadableStream, Blob or FormData", ()
|
|
|
109
109
|
expect(new Headers(init?.headers).get("Content-Type")).toBe("application/json");
|
|
110
110
|
});
|
|
111
111
|
|
|
112
|
+
it("resolves against an IPv4 base when the URL polyfill throws on it (FZ-8975)", async () => {
|
|
113
|
+
const realURL = globalThis.URL;
|
|
114
|
+
class HermesURL extends realURL {
|
|
115
|
+
constructor(url: string | URL, base?: string | URL) {
|
|
116
|
+
if (/\/\/\d+\.\d+\.\d+\.\d+/.test(`${String(base ?? "")} ${String(url)}`)) {
|
|
117
|
+
throw new TypeError("Cannot read property 'length' of undefined");
|
|
118
|
+
}
|
|
119
|
+
super(url, base);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
globalThis.URL = HermesURL as typeof URL;
|
|
123
|
+
try {
|
|
124
|
+
const client = new HttpClient("http://127.0.0.1:8011/sub/", {
|
|
125
|
+
useToken: true,
|
|
126
|
+
token: "key:secret",
|
|
127
|
+
});
|
|
128
|
+
await expect(client.get("/api/method/frappe.desk.search.search_link")).resolves.toMatchObject(
|
|
129
|
+
{
|
|
130
|
+
status: 200,
|
|
131
|
+
},
|
|
132
|
+
);
|
|
133
|
+
await client.get("api/method/ping");
|
|
134
|
+
expect(fetchMock.mock.calls.map(([url]) => String(url))).toEqual([
|
|
135
|
+
"http://127.0.0.1:8011/sub/api/method/frappe.desk.search.search_link",
|
|
136
|
+
"http://127.0.0.1:8011/sub/api/method/ping",
|
|
137
|
+
]);
|
|
138
|
+
} finally {
|
|
139
|
+
globalThis.URL = realURL;
|
|
140
|
+
}
|
|
141
|
+
});
|
|
142
|
+
|
|
112
143
|
it("PUTs a JSON body over native cookie auth after the CSRF bootstrap", async () => {
|
|
113
144
|
const client = new HttpClient(baseURL);
|
|
114
145
|
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* persistKey with no `storage` falls back to the platform default
|
|
3
|
+
* (IndexedDBKV, else PlatformStorageKV). When that default never answers its
|
|
4
|
+
* first read, subscribe must still fetch: loading ends in rows or an error,
|
|
5
|
+
* never a silent hang (FZ-8997, LC-84). Both defaults are stubbed here with a
|
|
6
|
+
* read that never settles.
|
|
7
|
+
*/
|
|
8
|
+
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
|
|
9
|
+
import { SyncModule } from "./index";
|
|
10
|
+
import type { SubscriptionQuery } from "./types";
|
|
11
|
+
|
|
12
|
+
const hungStores = vi.hoisted(() => [] as Array<{ setItem: ReturnType<typeof vi.fn> }>);
|
|
13
|
+
|
|
14
|
+
vi.mock("./storage", () => {
|
|
15
|
+
function HungKV(this: any) {
|
|
16
|
+
this.getItem = vi.fn(() => new Promise<string | null>(() => {}));
|
|
17
|
+
this.setItem = vi.fn().mockResolvedValue(undefined);
|
|
18
|
+
this.removeItem = vi.fn().mockResolvedValue(undefined);
|
|
19
|
+
hungStores.push(this);
|
|
20
|
+
return this;
|
|
21
|
+
}
|
|
22
|
+
return { IndexedDBKV: vi.fn(HungKV), PlatformStorageKV: vi.fn(HungKV) };
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
const rows = [
|
|
26
|
+
{ name: "a1", doctype: "Account", modified: "2026-11-01T10:00:00", account_name: "Cash" },
|
|
27
|
+
{ name: "a2", doctype: "Account", modified: "2026-11-01T11:00:00", account_name: "Bank" },
|
|
28
|
+
];
|
|
29
|
+
|
|
30
|
+
const accountQuery: SubscriptionQuery = { doctype: "Account", fields: ["account_name"] };
|
|
31
|
+
|
|
32
|
+
function createMockDb() {
|
|
33
|
+
return {
|
|
34
|
+
getDoc: vi.fn().mockResolvedValue(rows[0]),
|
|
35
|
+
getDocList: vi.fn().mockResolvedValue(rows),
|
|
36
|
+
createDoc: vi.fn(),
|
|
37
|
+
updateDoc: vi.fn(),
|
|
38
|
+
deleteDoc: vi.fn(),
|
|
39
|
+
backfill: vi.fn().mockResolvedValue({ rows: [], checkpoint: "2026-11-02T00:00:00" }),
|
|
40
|
+
} as any;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
describe("persistKey without storage when the default storage never settles", () => {
|
|
44
|
+
let modules: SyncModule[];
|
|
45
|
+
let warn: ReturnType<typeof vi.spyOn>;
|
|
46
|
+
|
|
47
|
+
beforeEach(() => {
|
|
48
|
+
vi.useFakeTimers();
|
|
49
|
+
modules = [];
|
|
50
|
+
hungStores.length = 0;
|
|
51
|
+
localStorage.clear();
|
|
52
|
+
warn = vi.spyOn(console, "warn").mockImplementation(() => {});
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
afterEach(async () => {
|
|
56
|
+
for (const sync of modules) await sync.dispose();
|
|
57
|
+
vi.useRealTimers();
|
|
58
|
+
vi.restoreAllMocks();
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
function createSync(db: any) {
|
|
62
|
+
const sync = new SyncModule(db, undefined, { persistKey: "k", catchUpStrategy: "snapshot" });
|
|
63
|
+
modules.push(sync);
|
|
64
|
+
return sync;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
it("fetches and returns rows instead of waiting forever", async () => {
|
|
68
|
+
const db = createMockDb();
|
|
69
|
+
const sync = createSync(db);
|
|
70
|
+
let settled = false;
|
|
71
|
+
const pending = sync.subscribe(accountQuery).finally(() => {
|
|
72
|
+
settled = true;
|
|
73
|
+
});
|
|
74
|
+
|
|
75
|
+
await vi.advanceTimersByTimeAsync(10_000);
|
|
76
|
+
|
|
77
|
+
expect(settled).toBe(true);
|
|
78
|
+
const result = await pending;
|
|
79
|
+
expect(db.getDocList).toHaveBeenCalledTimes(1);
|
|
80
|
+
expect(result.rows.map((row) => row.name)).toEqual(["a1", "a2"]);
|
|
81
|
+
});
|
|
82
|
+
|
|
83
|
+
it("names the storage that never answered and keeps the session in memory", async () => {
|
|
84
|
+
const sync = createSync(createMockDb());
|
|
85
|
+
const pending = sync.subscribe(accountQuery);
|
|
86
|
+
await vi.advanceTimersByTimeAsync(10_000);
|
|
87
|
+
await pending;
|
|
88
|
+
|
|
89
|
+
expect(warn).toHaveBeenCalledWith(expect.stringMatching(/persistKey "k".*in memory/));
|
|
90
|
+
await vi.advanceTimersByTimeAsync(100);
|
|
91
|
+
for (const store of hungStores) expect(store.setItem).not.toHaveBeenCalled();
|
|
92
|
+
});
|
|
93
|
+
});
|
package/src/sync/persistence.ts
CHANGED
|
@@ -16,6 +16,13 @@ import { IndexedDBKV, PlatformStorageKV } from "./storage";
|
|
|
16
16
|
import type { SubscriptionManager } from "./subscriptionManager";
|
|
17
17
|
import type { SyncOptions, KVStorage, Mutation, TabCoordinationConfig, TabMessage } from "./types";
|
|
18
18
|
|
|
19
|
+
/**
|
|
20
|
+
* How long the first snapshot read may take before the session gives up on
|
|
21
|
+
* the storage and syncs in memory (FZ-8997). `SyncOptions.storageReadyTimeout`
|
|
22
|
+
* overrides it.
|
|
23
|
+
*/
|
|
24
|
+
export const DEFAULT_STORAGE_READY_TIMEOUT_MS = 3000;
|
|
25
|
+
|
|
19
26
|
/** Safe access to localStorage (undefined in Node/test envs). */
|
|
20
27
|
function getLocalStorage(): Storage | undefined {
|
|
21
28
|
try {
|
|
@@ -57,6 +64,9 @@ export class PersistenceManager {
|
|
|
57
64
|
* memory. Resolved immediately when persistence is disabled. Never rejects.
|
|
58
65
|
*/
|
|
59
66
|
private loadPromise: Promise<void> = Promise.resolve();
|
|
67
|
+
/** Set when the first read outlived its bound; a late answer is ignored. */
|
|
68
|
+
private loadAbandoned = false;
|
|
69
|
+
private loadTimer: ReturnType<typeof setTimeout> | undefined;
|
|
60
70
|
private readonly normalizedCache: NormalizedCache;
|
|
61
71
|
private readonly mutationJournal: MutationJournal;
|
|
62
72
|
private readonly subscriptionManager: SubscriptionManager;
|
|
@@ -150,8 +160,30 @@ export class PersistenceManager {
|
|
|
150
160
|
this.persistenceStorage = new PlatformStorageKV();
|
|
151
161
|
}
|
|
152
162
|
|
|
153
|
-
// Load persisted state if available; expose completion via whenReady()
|
|
154
|
-
|
|
163
|
+
// Load persisted state if available; expose completion via whenReady().
|
|
164
|
+
// The read is bounded: a storage that never answers (a stalled IndexedDB
|
|
165
|
+
// open, a store that never initialises) would otherwise park every
|
|
166
|
+
// subscribe behind whenReady() with no fetch and no error.
|
|
167
|
+
this.loadPromise = this.loadWithin(
|
|
168
|
+
this.options.storageReadyTimeout ?? DEFAULT_STORAGE_READY_TIMEOUT_MS,
|
|
169
|
+
);
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
private loadWithin(timeoutMs: number): Promise<void> {
|
|
173
|
+
const storage = this.persistenceStorage;
|
|
174
|
+
const timedOut = new Promise<"timeout">((resolve) => {
|
|
175
|
+
this.loadTimer = setTimeout(() => resolve("timeout"), timeoutMs);
|
|
176
|
+
});
|
|
177
|
+
return Promise.race([this.load().then(() => "loaded" as const), timedOut]).then((outcome) => {
|
|
178
|
+
clearTimeout(this.loadTimer);
|
|
179
|
+
this.loadTimer = undefined;
|
|
180
|
+
if (outcome !== "timeout" || this.persistenceStorage !== storage) return;
|
|
181
|
+
this.loadAbandoned = true;
|
|
182
|
+
this.persistenceStorage = undefined;
|
|
183
|
+
console.warn(
|
|
184
|
+
`[frappe-sync] the storage for persistKey "${this.options.persistKey}" did not answer its first read within ${timeoutMs} ms; this session syncs in memory and persists nothing.`,
|
|
185
|
+
);
|
|
186
|
+
});
|
|
155
187
|
}
|
|
156
188
|
|
|
157
189
|
/**
|
|
@@ -355,7 +387,7 @@ export class PersistenceManager {
|
|
|
355
387
|
if (!this.options.persistKey || !this.persistenceStorage) return;
|
|
356
388
|
try {
|
|
357
389
|
const raw = await this.persistenceStorage.getItem(this.options.persistKey);
|
|
358
|
-
if (!raw) return;
|
|
390
|
+
if (!raw || this.loadAbandoned) return;
|
|
359
391
|
const snap = JSON.parse(raw);
|
|
360
392
|
|
|
361
393
|
// Restore cache first so reads have data once subs are reinstated.
|
|
@@ -846,6 +878,8 @@ export class PersistenceManager {
|
|
|
846
878
|
|
|
847
879
|
// Cancel pending save
|
|
848
880
|
this.saveDebouncer.cancel();
|
|
881
|
+
clearTimeout(this.loadTimer);
|
|
882
|
+
this.loadTimer = undefined;
|
|
849
883
|
|
|
850
884
|
// Clear leader check interval
|
|
851
885
|
if (this.leaderCheckInterval) {
|
package/src/sync/types.ts
CHANGED
|
@@ -214,7 +214,20 @@ export interface SyncOptions {
|
|
|
214
214
|
onConflict?: (info: { doctype: string; name?: string }) => void;
|
|
215
215
|
onRetry?: (info: { id: string; operation: Operation }) => void;
|
|
216
216
|
onBackfill?: (info: { doctype: string; fetched: number; checkpoint?: string }) => void;
|
|
217
|
+
/**
|
|
218
|
+
* Where `persistKey` snapshots live. Omitted, the platform default is used:
|
|
219
|
+
* IndexedDB where it exists, else the store package's KV (MMKV on native,
|
|
220
|
+
* localStorage on web, memory on GJS). Whichever is used, a first read that
|
|
221
|
+
* takes longer than `storageReadyTimeout` is abandoned: the session warns,
|
|
222
|
+
* syncs in memory and persists nothing, so subscriptions still fetch.
|
|
223
|
+
*/
|
|
217
224
|
storage?: KVStorage;
|
|
225
|
+
/**
|
|
226
|
+
* How long, in milliseconds, the first snapshot read may take before the
|
|
227
|
+
* session gives up on `storage` and syncs in memory (default 3000). Only
|
|
228
|
+
* relevant when `persistKey` is set.
|
|
229
|
+
*/
|
|
230
|
+
storageReadyTimeout?: number;
|
|
218
231
|
versionField?: string;
|
|
219
232
|
versionFields?: Record<string, string>;
|
|
220
233
|
/**
|
package/types/core/http.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { getCookie, setCookie, deleteCookie } from "@multiplatform.one/platform";
|
|
2
|
-
import { HttpMethod } from "./types";
|
|
2
|
+
import { AuthType, HttpMethod } from "./types";
|
|
3
3
|
import type { AuthConfig, RetryConfig } from "./types";
|
|
4
4
|
export { getCookie, setCookie, deleteCookie };
|
|
5
5
|
/**
|
|
@@ -20,6 +20,22 @@ export interface HttpResponse<T> {
|
|
|
20
20
|
payload: T;
|
|
21
21
|
status: number;
|
|
22
22
|
}
|
|
23
|
+
/**
|
|
24
|
+
* A base URL's origin and path, read without `URL`: Hermes's URL polyfill
|
|
25
|
+
* (whatwg-url-minimum) throws in parseIPv4Number on an IPv4 host, so a client
|
|
26
|
+
* pointed at http://127.0.0.1:8011 failed every request on native (FZ-8975).
|
|
27
|
+
*/
|
|
28
|
+
export declare function splitBaseURL(baseURL: string): {
|
|
29
|
+
origin: string;
|
|
30
|
+
pathname: string;
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* Frappe's API key pair is `key:secret` and goes under the `token` scheme;
|
|
34
|
+
* an OAuth bearer token has no colon. A caller that names no `type` gets the
|
|
35
|
+
* scheme its token's shape says, so `{ useToken, token: "key:secret" }` no
|
|
36
|
+
* longer sends `Bearer key:secret`, which Frappe 403s (FZ-8975).
|
|
37
|
+
*/
|
|
38
|
+
export declare function authScheme(type: AuthType | undefined, token: string): AuthType;
|
|
23
39
|
export declare function trimTrailingSlashes(value: string): string;
|
|
24
40
|
export declare class HttpClient {
|
|
25
41
|
private readonly retryConfig;
|
package/types/core/http.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/core/http.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAY,MAAM,6BAA6B,CAAC;AAG3F,OAAO,EAAe,UAAU,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/core/http.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,12 @@ import type { MutationJournal } from "./mutationJournal";
|
|
|
10
10
|
import type { NormalizedCache } from "./normalizedCache";
|
|
11
11
|
import type { SubscriptionManager } from "./subscriptionManager";
|
|
12
12
|
import type { SyncOptions, Mutation } from "./types";
|
|
13
|
+
/**
|
|
14
|
+
* How long the first snapshot read may take before the session gives up on
|
|
15
|
+
* the storage and syncs in memory (FZ-8997). `SyncOptions.storageReadyTimeout`
|
|
16
|
+
* overrides it.
|
|
17
|
+
*/
|
|
18
|
+
export declare const DEFAULT_STORAGE_READY_TIMEOUT_MS = 3000;
|
|
13
19
|
/**
|
|
14
20
|
* Manages persistence of sync state across sessions with active tab priority leadership.
|
|
15
21
|
*/
|
|
@@ -38,6 +44,9 @@ export declare class PersistenceManager {
|
|
|
38
44
|
* memory. Resolved immediately when persistence is disabled. Never rejects.
|
|
39
45
|
*/
|
|
40
46
|
private loadPromise;
|
|
47
|
+
/** Set when the first read outlived its bound; a late answer is ignored. */
|
|
48
|
+
private loadAbandoned;
|
|
49
|
+
private loadTimer;
|
|
41
50
|
private readonly normalizedCache;
|
|
42
51
|
private readonly mutationJournal;
|
|
43
52
|
private readonly subscriptionManager;
|
|
@@ -54,6 +63,7 @@ export declare class PersistenceManager {
|
|
|
54
63
|
* Sets up persistence storage based on environment and options.
|
|
55
64
|
*/
|
|
56
65
|
private setupPersistence;
|
|
66
|
+
private loadWithin;
|
|
57
67
|
/**
|
|
58
68
|
* Sets up BroadcastChannel for cross-tab coordination.
|
|
59
69
|
* Handles both simple string messages and structured TabMessage types.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"persistence.d.ts","sourceRoot":"","sources":["../../src/sync/persistence.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEzD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAK,EAAE,WAAW,EAAa,QAAQ,EAAqC,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"persistence.d.ts","sourceRoot":"","sources":["../../src/sync/persistence.ts"],"names":[],"mappings":"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"}
|
package/types/sync/types.d.ts
CHANGED
|
@@ -210,7 +210,20 @@ export interface SyncOptions {
|
|
|
210
210
|
fetched: number;
|
|
211
211
|
checkpoint?: string;
|
|
212
212
|
}) => void;
|
|
213
|
+
/**
|
|
214
|
+
* Where `persistKey` snapshots live. Omitted, the platform default is used:
|
|
215
|
+
* IndexedDB where it exists, else the store package's KV (MMKV on native,
|
|
216
|
+
* localStorage on web, memory on GJS). Whichever is used, a first read that
|
|
217
|
+
* takes longer than `storageReadyTimeout` is abandoned: the session warns,
|
|
218
|
+
* syncs in memory and persists nothing, so subscriptions still fetch.
|
|
219
|
+
*/
|
|
213
220
|
storage?: KVStorage;
|
|
221
|
+
/**
|
|
222
|
+
* How long, in milliseconds, the first snapshot read may take before the
|
|
223
|
+
* session gives up on `storage` and syncs in memory (default 3000). Only
|
|
224
|
+
* relevant when `persistKey` is set.
|
|
225
|
+
*/
|
|
226
|
+
storageReadyTimeout?: number;
|
|
214
227
|
versionField?: string;
|
|
215
228
|
versionFields?: Record<string, string>;
|
|
216
229
|
/**
|