@multiplatform.one/frappe 7.10.0 → 7.15.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 +59 -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.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 +25 -43
- package/dist/cjs/doctype.native.js +27 -43
- 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.cjs +3 -0
- package/dist/cjs/fixtures.native.js +3 -0
- package/dist/cjs/fixtures.native.js.map +1 -1
- package/dist/cjs/frappeApp.native.js.map +1 -1
- package/dist/cjs/frappeReact.cjs +67 -31
- package/dist/cjs/frappeReact.native.js +87 -34
- package/dist/cjs/frappeReact.native.js.map +1 -1
- package/dist/cjs/index.cjs +7 -0
- package/dist/cjs/index.native.js +9 -2
- package/dist/cjs/index.native.js.map +1 -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.native.js.map +1 -1
- package/dist/cjs/serverLoaders.cjs +74 -0
- package/dist/cjs/serverLoaders.native.js +88 -0
- package/dist/cjs/serverLoaders.native.js.map +1 -0
- 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 +99 -14
- package/dist/cjs/sync/index.native.js +129 -14
- 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.native.js.map +1 -1
- 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.cjs +4 -0
- package/dist/cjs/sync/rehydration.native.js +6 -0
- 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/syncOptionsKey.cjs +59 -0
- package/dist/cjs/syncOptionsKey.native.js +82 -0
- package/dist/cjs/syncOptionsKey.native.js.map +1 -0
- package/dist/cjs/useLiveQuery.cjs +2 -20
- package/dist/cjs/useLiveQuery.native.js +1 -22
- 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.map +1 -1
- package/dist/esm/common/types.native.js.map +1 -1
- 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.map +1 -1
- package/dist/esm/devtools/FrappeDevtoolsPanel.native.js.map +1 -1
- package/dist/esm/devtools/index.native.js.map +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 +23 -44
- package/dist/esm/doctype.mjs.map +1 -1
- package/dist/esm/doctype.native.js +25 -44
- package/dist/esm/doctype.native.js.map +1 -1
- package/dist/esm/file.native.js.map +1 -1
- package/dist/esm/fixtureDb.native.js.map +1 -1
- package/dist/esm/fixtures.mjs +3 -0
- package/dist/esm/fixtures.mjs.map +1 -1
- package/dist/esm/fixtures.native.js +3 -0
- package/dist/esm/fixtures.native.js.map +1 -1
- package/dist/esm/frappeApp.native.js.map +1 -1
- package/dist/esm/frappeReact.mjs +68 -33
- package/dist/esm/frappeReact.mjs.map +1 -1
- package/dist/esm/frappeReact.native.js +87 -35
- package/dist/esm/frappeReact.native.js.map +1 -1
- package/dist/esm/index.mjs +4 -3
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +4 -3
- package/dist/esm/index.native.js.map +1 -1
- package/dist/esm/optimistic.native.js.map +1 -1
- package/dist/esm/pacer.native.js.map +1 -1
- package/dist/esm/plugin/index.native.js.map +1 -1
- package/dist/esm/realtime.native.js.map +1 -1
- package/dist/esm/serverLoaders.mjs +48 -0
- package/dist/esm/serverLoaders.mjs.map +1 -0
- package/dist/esm/serverLoaders.native.js +59 -0
- package/dist/esm/serverLoaders.native.js.map +1 -0
- 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 +99 -14
- package/dist/esm/sync/index.mjs.map +1 -1
- package/dist/esm/sync/index.native.js +129 -14
- 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.native.js.map +1 -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.map +1 -1
- package/dist/esm/sync/realtime.native.js.map +1 -1
- package/dist/esm/sync/rehydration.mjs +4 -0
- package/dist/esm/sync/rehydration.mjs.map +1 -1
- package/dist/esm/sync/rehydration.native.js +6 -0
- 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.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.map +1 -1
- package/dist/esm/syncOptionsKey.mjs +34 -0
- package/dist/esm/syncOptionsKey.mjs.map +1 -0
- package/dist/esm/syncOptionsKey.native.js +54 -0
- package/dist/esm/syncOptionsKey.native.js.map +1 -0
- package/dist/esm/useLiveQuery.mjs +1 -19
- package/dist/esm/useLiveQuery.mjs.map +1 -1
- package/dist/esm/useLiveQuery.native.js +1 -22
- package/dist/esm/useLiveQuery.native.js.map +1 -1
- package/dist/esm/util.native.js.map +1 -1
- package/dist/jsx/auth.native.js.map +1 -1
- package/dist/jsx/call.native.js.map +1 -1
- package/dist/jsx/collection.native.js.map +1 -1
- package/dist/jsx/common/types.native.js.map +1 -1
- package/dist/jsx/core/http.native.js.map +1 -1
- package/dist/jsx/core/types.native.js.map +1 -1
- package/dist/jsx/core/wire.native.js.map +1 -1
- package/dist/jsx/db.native.js.map +1 -1
- package/dist/jsx/devtools/FrappeDevtoolsPanel.native.js.map +1 -1
- package/dist/jsx/devtools/index.native.js.map +1 -1
- package/dist/jsx/devtools/plugin.native.js.map +1 -1
- package/dist/jsx/devtools/theme.native.js.map +1 -1
- package/dist/jsx/doctype.mjs +23 -44
- package/dist/jsx/doctype.mjs.map +1 -1
- package/dist/jsx/doctype.native.js +27 -43
- package/dist/jsx/doctype.native.js.map +1 -1
- package/dist/jsx/file.native.js.map +1 -1
- package/dist/jsx/fixtureDb.native.js.map +1 -1
- package/dist/jsx/fixtures.mjs +3 -0
- package/dist/jsx/fixtures.mjs.map +1 -1
- package/dist/jsx/fixtures.native.js +3 -0
- package/dist/jsx/fixtures.native.js.map +1 -1
- package/dist/jsx/frappeApp.native.js.map +1 -1
- package/dist/jsx/frappeReact.mjs +68 -33
- package/dist/jsx/frappeReact.mjs.map +1 -1
- package/dist/jsx/frappeReact.native.js +87 -34
- package/dist/jsx/frappeReact.native.js.map +1 -1
- package/dist/jsx/index.js +4 -3
- package/dist/jsx/index.js.map +1 -1
- package/dist/jsx/index.mjs +4 -3
- package/dist/jsx/index.mjs.map +1 -1
- package/dist/jsx/index.native.js +9 -2
- package/dist/jsx/index.native.js.map +1 -1
- package/dist/jsx/optimistic.native.js.map +1 -1
- package/dist/jsx/pacer.native.js.map +1 -1
- package/dist/jsx/plugin/index.native.js.map +1 -1
- package/dist/jsx/realtime.native.js.map +1 -1
- package/dist/jsx/serverLoaders.mjs +48 -0
- package/dist/jsx/serverLoaders.mjs.map +1 -0
- package/dist/jsx/serverLoaders.native.js +88 -0
- package/dist/jsx/serverLoaders.native.js.map +1 -0
- package/dist/jsx/sync/backfill.native.js.map +1 -1
- package/dist/jsx/sync/filters.native.js.map +1 -1
- package/dist/jsx/sync/index.mjs +99 -14
- package/dist/jsx/sync/index.mjs.map +1 -1
- package/dist/jsx/sync/index.native.js +129 -14
- package/dist/jsx/sync/index.native.js.map +1 -1
- package/dist/jsx/sync/merge.native.js.map +1 -1
- package/dist/jsx/sync/mutationEngine.native.js.map +1 -1
- package/dist/jsx/sync/mutationJournal.native.js.map +1 -1
- package/dist/jsx/sync/normalizedCache.native.js.map +1 -1
- package/dist/jsx/sync/persistence.native.js.map +1 -1
- package/dist/jsx/sync/realtime.native.js.map +1 -1
- package/dist/jsx/sync/rehydration.mjs +4 -0
- package/dist/jsx/sync/rehydration.mjs.map +1 -1
- package/dist/jsx/sync/rehydration.native.js +6 -0
- package/dist/jsx/sync/rehydration.native.js.map +1 -1
- package/dist/jsx/sync/storage.native.js.map +1 -1
- package/dist/jsx/sync/subscriptionManager.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/dist/jsx/sync/virtualPageManager.native.js.map +1 -1
- package/dist/jsx/syncOptionsKey.mjs +34 -0
- package/dist/jsx/syncOptionsKey.mjs.map +1 -0
- package/dist/jsx/syncOptionsKey.native.js +82 -0
- package/dist/jsx/syncOptionsKey.native.js.map +1 -0
- package/dist/jsx/useLiveQuery.mjs +1 -19
- package/dist/jsx/useLiveQuery.mjs.map +1 -1
- package/dist/jsx/useLiveQuery.native.js +1 -22
- package/dist/jsx/useLiveQuery.native.js.map +1 -1
- package/dist/jsx/util.native.js.map +1 -1
- package/package.json +12 -12
- package/src/doctype.spec.ts +148 -5
- package/src/doctype.ts +202 -173
- package/src/fixtures.ts +1 -0
- package/src/frappeReact.catchUp.spec.tsx +105 -0
- package/src/frappeReact.hydration.spec.tsx +164 -0
- package/src/frappeReact.spec.ts +56 -0
- package/src/frappeReact.ts +93 -43
- package/src/index.ts +14 -0
- package/src/serverLoaders.ts +77 -0
- package/src/sync/catchUp.spec.ts +142 -0
- package/src/sync/index.ts +106 -9
- package/src/sync/rehydration.ts +5 -0
- package/src/sync/syncModule.spec.ts +20 -0
- package/src/sync/types.ts +9 -1
- package/src/syncOptionsKey.spec.ts +46 -0
- package/src/syncOptionsKey.ts +45 -0
- package/src/useLiveQuery.hydration.spec.tsx +129 -0
- package/src/useLiveQuery.spec.ts +3 -11
- package/src/useLiveQuery.ts +3 -57
- package/types/doctype.d.ts +117 -33
- package/types/doctype.d.ts.map +1 -1
- package/types/fixtures.d.ts.map +1 -1
- package/types/frappeReact.d.ts +9 -3
- package/types/frappeReact.d.ts.map +1 -1
- package/types/index.d.ts +6 -5
- package/types/index.d.ts.map +1 -1
- package/types/serverLoaders.d.ts +40 -0
- package/types/serverLoaders.d.ts.map +1 -0
- package/types/sync/index.d.ts +15 -1
- package/types/sync/index.d.ts.map +1 -1
- package/types/sync/rehydration.d.ts +2 -0
- package/types/sync/rehydration.d.ts.map +1 -1
- package/types/sync/types.d.ts +8 -1
- package/types/sync/types.d.ts.map +1 -1
- package/types/syncOptionsKey.d.ts +3 -0
- package/types/syncOptionsKey.d.ts.map +1 -0
- package/types/useLiveQuery.d.ts +3 -13
- package/types/useLiveQuery.d.ts.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["BackfillManager","extractSingleName","matchesFilters","BackfillScope","defaultPageLength","Order","VirtualPageManager","_class_call_check","instance","Constructor","TypeError","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_create_class","protoProps","staticProps","prototype","_define_property","obj","value","_type_of","Symbol","constructor","_this_options_pageSize","SubscriptionManager","SubscriptionManager2","db","normalizedCache","options","arguments","Map","virtualPageManager","batchSize","backfillManager","pageSize","maxPages","backfillMaxPages","subscribe","query","queryKey","JSON","stringify","existingId","queryKeyToSubId","get","subscriptions","has","subRefCounts","set","rows","getDocsForSubscription","checkpoint","subscriptionId","adopted","adoptRestoredSubscription","cryptoRandomId","rows1","cursor","checkpoint1","fetchInitialRows","seedRows","subscription","id","docIds","map","row","name","tombstones","_query_limitStart","_query_limit","boundaries","firstItem","lastItem","offset","limitStart","limit","metadata","itemsBeforePage","itemsAfterPage","progressive","registerSubscription","refreshSubscriptions","_this","values","filter","_this_subRefCounts_get","doctypes","includes","doctype","Promise","all","refreshSubscription","resolve","ok","error","Error","existing","refreshes","requested","promise","state","active","active2","then","_subscription_query_limitStart","_subscription_query_limit","stale","delete","_query_fields","queryFields","fields","Array","from","Set","singleName","filters","document","getDoc","errorWithStatus","status","listOptions","orderBy","useCursorPagination","response","getDocList","data","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","iterator","_step","next","done","modified","err","return","upsert","restoredId","restoredByQueryKey","restoredAt","refresh","restoreSubscription","snapshotSub","_snapshotSub_query","activeId","previousId","isArray","Date","now","isRestoredSubscription","gcRestoredSubscriptions","_this_options_restoredSubscriptionTTL","ttl","restoredSubscriptionTTL","restoredAtMs","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","_iterator1","_step1","unsubscribe","refCount","persistKey","getSubscription","virtualSub","getProgressiveCache","id2","out","push","out1","name1","document1","getPage","page","getNextBatch","cursorDocId","getPageInfo","backfill","args","scope","All","backfillSub"],"sources":["../../../src/sync/subscriptionManager.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["BackfillManager","extractSingleName","matchesFilters","BackfillScope","defaultPageLength","Order","VirtualPageManager","_class_call_check","instance","Constructor","TypeError","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_create_class","protoProps","staticProps","prototype","_define_property","obj","value","_type_of","Symbol","constructor","_this_options_pageSize","SubscriptionManager","SubscriptionManager2","db","normalizedCache","options","arguments","Map","virtualPageManager","batchSize","backfillManager","pageSize","maxPages","backfillMaxPages","subscribe","query","queryKey","JSON","stringify","existingId","queryKeyToSubId","get","subscriptions","has","subRefCounts","set","rows","getDocsForSubscription","checkpoint","subscriptionId","adopted","adoptRestoredSubscription","cryptoRandomId","rows1","cursor","checkpoint1","fetchInitialRows","seedRows","subscription","id","docIds","map","row","name","tombstones","_query_limitStart","_query_limit","boundaries","firstItem","lastItem","offset","limitStart","limit","metadata","itemsBeforePage","itemsAfterPage","progressive","registerSubscription","refreshSubscriptions","_this","values","filter","_this_subRefCounts_get","doctypes","includes","doctype","Promise","all","refreshSubscription","resolve","ok","error","Error","existing","refreshes","requested","promise","state","active","active2","then","_subscription_query_limitStart","_subscription_query_limit","stale","delete","_query_fields","queryFields","fields","Array","from","Set","singleName","filters","document","getDoc","errorWithStatus","status","listOptions","orderBy","useCursorPagination","response","getDocList","data","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","iterator","_step","next","done","modified","err","return","upsert","restoredId","restoredByQueryKey","restoredAt","refresh","restoreSubscription","snapshotSub","_snapshotSub_query","activeId","previousId","isArray","Date","now","isRestoredSubscription","gcRestoredSubscriptions","_this_options_restoredSubscriptionTTL","ttl","restoredSubscriptionTTL","restoredAtMs","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","_iterator1","_step1","unsubscribe","refCount","persistKey","getSubscription","virtualSub","getProgressiveCache","id2","out","push","out1","name1","document1","getPage","page","getNextBatch","cursorDocId","getPageInfo","backfill","args","scope","All","backfillSub","Subscriptions","subscription1","Doctypes","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_iterator2","_step2","subscription2","Docs","_iteratorNormalCompletion3","_didIteratorError3","_iteratorError3","_iterator3","docs","_step3","docTarget","_this_options_backfillMaxPages","deleted","_ref","_response_deleted","modifiedAfter","madeProgress","has_more","_loop","deletedRef","deletedDoctype","remove","currentName","_this1","_loop1","match","firstDoc","lastDoc","_subscription_boundaries","_subscription_boundaries1","resortSubscriptionDocIds","cleanupTombstones","onBackfill","fetched","orderByArray","sort","firstId","secondId","secondDoc","orderByField","field","ascending","order","Desc","firstValue","secondValue","firstIsNullish","secondIsNullish","updateSubscriptionMembership","doc","subscriptionsNeedingRehydration","isExisting","handleRemoteCreate","docId","handleRemoteDelete","handleRemoteUpdate","removeFromAllSubscriptions","affectedSubscriptions","hadDocument","getAllSubscriptions","getVirtualPageManager","insertDocumentIntoSubscription","insertIndex","findInsertionIndex","splice","left","right","mid","Math","floor","midDoc","comparison","compareDocuments","doc1","doc2","value1","value2","isAsc","isNull1","isNull2","name2","clear","_this_options_tombstoneMaxAge","_this_options_tombstoneMaxCount","maxAge","tombstoneMaxAge","maxCount","tombstoneMaxCount","subscriptionsToClean","Boolean","size","timestamp","entries","a","b","toRemove","slice","crypto","randomUUID","random","toString"],"sources":["subscriptionManager.native.js"],"sourcesContent":["import { BackfillManager } from \"./backfill\";\nimport { extractSingleName, matchesFilters } from \"./filters\";\nimport { BackfillScope, defaultPageLength, Order } from \"./types\";\nimport { VirtualPageManager } from \"./virtualPageManager\";\nfunction _class_call_check(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\nfunction _create_class(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\nfunction _define_property(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _type_of(obj) {\n \"@swc/helpers - typeof\";\n return obj && typeof Symbol !== \"undefined\" && obj.constructor === Symbol ? \"symbol\" : typeof obj;\n}\nvar _this_options_pageSize;\nvar SubscriptionManager = /* @__PURE__ */ (function() {\n \"use strict\";\n function SubscriptionManager2(db, normalizedCache) {\n var options = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};\n _class_call_check(this, SubscriptionManager2);\n _define_property(this, \"refreshes\", /* @__PURE__ */ new Map());\n _define_property(this, \"subscriptions\", /* @__PURE__ */ new Map());\n _define_property(this, \"virtualPageManager\", void 0);\n _define_property(this, \"backfillManager\", void 0);\n _define_property(this, \"queryKeyToSubId\", /* @__PURE__ */ new Map());\n _define_property(this, \"subRefCounts\", /* @__PURE__ */ new Map());\n _define_property(this, \"restoredByQueryKey\", /* @__PURE__ */ new Map());\n _define_property(this, \"restoredAt\", /* @__PURE__ */ new Map());\n _define_property(this, \"db\", void 0);\n _define_property(this, \"normalizedCache\", void 0);\n _define_property(this, \"options\", void 0);\n this.db = db;\n this.normalizedCache = normalizedCache;\n this.options = options;\n this.virtualPageManager = new VirtualPageManager(this.normalizedCache, this.db, {\n batchSize: this.options.batchSize\n });\n this.backfillManager = new BackfillManager(this.db, this.normalizedCache, {\n pageSize: this.options.pageSize,\n maxPages: this.options.backfillMaxPages\n });\n }\n _create_class(SubscriptionManager2, [\n {\n key: \"subscribe\",\n value: async function subscribe(query) {\n var queryKey = JSON.stringify(query);\n var existingId = this.queryKeyToSubId.get(queryKey);\n if (existingId && this.subscriptions.has(existingId)) {\n this.subRefCounts.set(existingId, (this.subRefCounts.get(existingId) || 1) + 1);\n var rows = this.getDocsForSubscription(existingId);\n var checkpoint = this.subscriptions.get(existingId).checkpoint;\n return {\n subscriptionId: existingId,\n rows,\n checkpoint\n };\n }\n var adopted = this.adoptRestoredSubscription(queryKey, query);\n if (adopted) return adopted;\n var subscriptionId = cryptoRandomId();\n var { rows: rows1, cursor, checkpoint: checkpoint1 } = await this.fetchInitialRows(query);\n this.seedRows(query, rows1);\n var subscription = {\n id: subscriptionId,\n query,\n checkpoint: checkpoint1,\n // For CDC backfill\n cursor,\n // For stable pagination\n docIds: rows1.map(function(row) {\n return row.name;\n }),\n tombstones: /* @__PURE__ */ new Map()\n };\n if (rows1.length > 0) {\n var _query_limitStart, _query_limit;\n subscription.boundaries = {\n firstItem: rows1[0],\n lastItem: rows1[rows1.length - 1],\n offset: (_query_limitStart = query.limitStart) !== null && _query_limitStart !== void 0 ? _query_limitStart : 0,\n pageSize: (_query_limit = query.limit) !== null && _query_limit !== void 0 ? _query_limit : defaultPageLength\n };\n }\n subscription.metadata = {\n itemsBeforePage: 0,\n itemsAfterPage: 0\n };\n this.subscriptions.set(subscriptionId, subscription);\n this.queryKeyToSubId.set(queryKey, subscriptionId);\n this.subRefCounts.set(subscriptionId, 1);\n if (query.progressive) {\n this.virtualPageManager.registerSubscription(subscriptionId, subscription, subscription.docIds, cursor);\n }\n return {\n subscriptionId,\n rows: rows1,\n checkpoint: checkpoint1\n };\n }\n },\n {\n key: \"refreshSubscriptions\",\n value: async function refreshSubscriptions() {\n var _this = this;\n var options = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};\n var subscriptions = [\n ...this.subscriptions.values()\n ].filter(function(subscription) {\n var _this_subRefCounts_get;\n return ((_this_subRefCounts_get = _this.subRefCounts.get(subscription.id)) !== null && _this_subRefCounts_get !== void 0 ? _this_subRefCounts_get : 0) > 0 && (!options.doctypes || options.doctypes.includes(subscription.query.doctype));\n });\n return Promise.all(subscriptions.map(function(subscription) {\n return _this.refreshSubscription(subscription);\n }));\n }\n },\n {\n key: \"refreshSubscription\",\n value: function refreshSubscription(subscription) {\n var _this = this;\n var subscriptionId = subscription.id;\n if (subscription.query.progressive) {\n return Promise.resolve({\n subscriptionId,\n ok: false,\n error: new Error(\"Snapshot refresh does not support progressive subscriptions\")\n });\n }\n var existing = this.refreshes.get(subscriptionId);\n if (existing) {\n existing.requested = true;\n return existing.promise;\n }\n var state = {\n requested: false,\n promise: Promise.resolve({\n subscriptionId,\n ok: false\n })\n };\n var active = function active2() {\n var _this_subRefCounts_get;\n return _this.refreshes.get(subscriptionId) === state && _this.subscriptions.get(subscriptionId) === subscription && ((_this_subRefCounts_get = _this.subRefCounts.get(subscriptionId)) !== null && _this_subRefCounts_get !== void 0 ? _this_subRefCounts_get : 0) > 0;\n };\n state.promise = Promise.resolve().then(async function() {\n try {\n while (true) {\n state.requested = false;\n try {\n var _subscription_query_limitStart, _subscription_query_limit;\n var { rows, cursor, checkpoint } = await _this.fetchInitialRows(subscription.query);\n if (!active()) {\n return {\n subscriptionId,\n ok: false,\n error: new Error(\"Subscription is no longer active\")\n };\n }\n if (state.requested) continue;\n _this.seedRows(subscription.query, rows);\n subscription.docIds = rows.map(function(row) {\n return row.name;\n });\n subscription.cursor = cursor;\n subscription.checkpoint = checkpoint;\n subscription.boundaries = rows.length ? {\n firstItem: rows[0],\n lastItem: rows[rows.length - 1],\n offset: (_subscription_query_limitStart = subscription.query.limitStart) !== null && _subscription_query_limitStart !== void 0 ? _subscription_query_limitStart : 0,\n pageSize: (_subscription_query_limit = subscription.query.limit) !== null && _subscription_query_limit !== void 0 ? _subscription_query_limit : defaultPageLength\n } : void 0;\n subscription.metadata = {\n itemsBeforePage: 0,\n itemsAfterPage: 0\n };\n subscription.stale = false;\n return {\n subscriptionId,\n ok: true\n };\n } catch (error) {\n if (active() && state.requested) continue;\n if (active()) subscription.stale = true;\n return {\n subscriptionId,\n ok: false,\n error\n };\n }\n }\n } finally {\n if (_this.refreshes.get(subscriptionId) === state) _this.refreshes.delete(subscriptionId);\n }\n });\n this.refreshes.set(subscriptionId, state);\n return state.promise;\n }\n },\n {\n key: \"fetchInitialRows\",\n value: (\n /**\n * Performs the initial subscription fetch (single doc via getDoc, lists via\n * getDocList) and computes the CDC checkpoint\n * as the max `modified` across returned rows. Shared by fresh subscribes\n * and adopted-subscription refreshes so both have identical semantics.\n */\n async function fetchInitialRows(query) {\n var _query_fields;\n var queryFields = ((_query_fields = query.fields) === null || _query_fields === void 0 ? void 0 : _query_fields.length) ? Array.from(/* @__PURE__ */ new Set([\n ...query.fields,\n \"modified\",\n \"name\"\n ])) : void 0;\n var rows = [];\n var cursor;\n var singleName = extractSingleName(query.filters);\n if (singleName) {\n try {\n var document = await this.db.getDoc(query.doctype, singleName);\n rows = document ? [\n document\n ] : [];\n } catch (error) {\n var errorWithStatus = error;\n if ((errorWithStatus === null || errorWithStatus === void 0 ? void 0 : errorWithStatus.status) === 404) {\n rows = [];\n } else {\n throw error;\n }\n }\n } else {\n var _query_limit;\n var listOptions = {\n fields: queryFields,\n filters: query.filters,\n orderBy: query.orderBy\n };\n listOptions.limit = (_query_limit = query.limit) !== null && _query_limit !== void 0 ? _query_limit : defaultPageLength;\n if (query.limitStart != null) listOptions.limitStart = query.limitStart;\n if (this.options.useCursorPagination) listOptions.cursor = void 0;\n var response = await this.db.getDocList(query.doctype, listOptions);\n if ((typeof response === \"undefined\" ? \"undefined\" : _type_of(response)) === \"object\" && response !== null && \"data\" in response) {\n rows = response.data;\n cursor = response.cursor;\n } else {\n rows = response;\n }\n }\n var checkpoint = void 0;\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = rows[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var row = _step.value;\n if (!row.modified) continue;\n if (!checkpoint || row.modified > checkpoint) checkpoint = row.modified;\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n return {\n rows,\n cursor,\n checkpoint\n };\n }\n )\n },\n {\n key: \"seedRows\",\n value: function seedRows(query, rows) {\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = rows[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var row = _step.value;\n if (!row.doctype) row.doctype = query.doctype;\n this.normalizedCache.upsert(row);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n }\n },\n {\n key: \"adoptRestoredSubscription\",\n value: (\n /**\n * Re-adopts a subscription restored from a persisted snapshot when an\n * identical query subscribes: the cached membership renders immediately and\n * a background refresh re-seeds from the network. Progressive queries are\n * excluded — their VirtualPageManager state is not persisted, so they take\n * the fresh-subscribe path.\n */\n function adoptRestoredSubscription(queryKey, query) {\n if (query.progressive) return void 0;\n var restoredId = this.restoredByQueryKey.get(queryKey);\n if (!restoredId) return void 0;\n var subscription = this.subscriptions.get(restoredId);\n this.restoredByQueryKey.delete(queryKey);\n this.restoredAt.delete(restoredId);\n if (!subscription) return void 0;\n this.queryKeyToSubId.set(queryKey, restoredId);\n this.subRefCounts.set(restoredId, 1);\n var refresh = this.refreshSubscription(subscription);\n var rows = this.getDocsForSubscription(restoredId);\n return {\n subscriptionId: restoredId,\n rows,\n checkpoint: subscription.checkpoint,\n refresh\n };\n }\n )\n },\n {\n /**\n * Registers a subscription restored from a persisted snapshot. Restored\n * subscriptions are dormant: they hold the persisted query, CDC checkpoint,\n * and membership for cache-first re-adoption, but are skipped by backfill\n * fan-out until adopted. Duplicate snapshot entries for the same query\n * (accumulated by pre-GC versions) collapse last-wins.\n */\n key: \"restoreSubscription\",\n value: function restoreSubscription(snapshotSub) {\n var _snapshotSub_query;\n if (!(snapshotSub === null || snapshotSub === void 0 ? void 0 : snapshotSub.id) || !((_snapshotSub_query = snapshotSub.query) === null || _snapshotSub_query === void 0 ? void 0 : _snapshotSub_query.doctype)) return;\n if (this.subscriptions.has(snapshotSub.id)) return;\n var queryKey = JSON.stringify(snapshotSub.query);\n var activeId = this.queryKeyToSubId.get(queryKey);\n if (activeId && this.subscriptions.has(activeId)) return;\n var previousId = this.restoredByQueryKey.get(queryKey);\n if (previousId) {\n this.subscriptions.delete(previousId);\n this.restoredAt.delete(previousId);\n }\n var subscription = {\n id: snapshotSub.id,\n query: snapshotSub.query,\n checkpoint: snapshotSub.checkpoint,\n cursor: snapshotSub.cursor,\n docIds: Array.isArray(snapshotSub.docIds) ? snapshotSub.docIds : [],\n tombstones: /* @__PURE__ */ new Map(),\n metadata: {\n itemsBeforePage: 0,\n itemsAfterPage: 0\n }\n };\n this.subscriptions.set(subscription.id, subscription);\n this.restoredByQueryKey.set(queryKey, subscription.id);\n this.restoredAt.set(subscription.id, Date.now());\n }\n },\n {\n /** True when the subscription came from a snapshot and is not yet adopted. */\n key: \"isRestoredSubscription\",\n value: function isRestoredSubscription(subscriptionId) {\n return this.restoredAt.has(subscriptionId);\n }\n },\n {\n /**\n * Drops restored subscriptions that no query re-adopted within\n * `restoredSubscriptionTTL` (default 30 minutes). Called before every\n * persistence snapshot so expired entries also leave the snapshot.\n */\n key: \"gcRestoredSubscriptions\",\n value: function gcRestoredSubscriptions() {\n var now = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : Date.now();\n var _this_options_restoredSubscriptionTTL;\n var ttl = (_this_options_restoredSubscriptionTTL = this.options.restoredSubscriptionTTL) !== null && _this_options_restoredSubscriptionTTL !== void 0 ? _this_options_restoredSubscriptionTTL : 30 * 60 * 1e3;\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = this.restoredAt[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var [subscriptionId, restoredAtMs] = _step.value;\n if (now - restoredAtMs <= ttl) continue;\n this.restoredAt.delete(subscriptionId);\n this.subscriptions.delete(subscriptionId);\n var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;\n try {\n for (var _iterator1 = this.restoredByQueryKey[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {\n var [key, id] = _step1.value;\n if (id === subscriptionId) {\n this.restoredByQueryKey.delete(key);\n break;\n }\n }\n } catch (err) {\n _didIteratorError1 = true;\n _iteratorError1 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion1 && _iterator1.return != null) {\n _iterator1.return();\n }\n } finally {\n if (_didIteratorError1) {\n throw _iteratorError1;\n }\n }\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n }\n },\n {\n /**\n * Removes a subscription by id. Cached docs remain until evicted by\n * realtime/backfill or explicit resets. This keeps other subs fast if they\n * share the same doctypes.\n *\n * With persistence enabled (`persistKey`), the released subscription is\n * detached into the restored pool instead of deleted: its query,\n * checkpoint, and membership stay in the snapshot so a remount (or a\n * cold offline reload) can re-adopt it cache-first. Detached subscriptions\n * are excluded from backfill and GC'd after `restoredSubscriptionTTL`.\n */\n key: \"unsubscribe\",\n value: function unsubscribe(subscriptionId) {\n var refCount = (this.subRefCounts.get(subscriptionId) || 1) - 1;\n if (refCount > 0) {\n this.subRefCounts.set(subscriptionId, refCount);\n return;\n }\n this.refreshes.delete(subscriptionId);\n this.subRefCounts.delete(subscriptionId);\n var queryKey;\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = this.queryKeyToSubId[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var [key, id] = _step.value;\n if (id === subscriptionId) {\n queryKey = key;\n this.queryKeyToSubId.delete(key);\n break;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n var subscription = this.subscriptions.get(subscriptionId);\n if (this.options.persistKey && subscription && queryKey && !subscription.query.progressive && !this.restoredByQueryKey.has(queryKey)) {\n this.restoredByQueryKey.set(queryKey, subscriptionId);\n this.restoredAt.set(subscriptionId, Date.now());\n return;\n }\n this.subscriptions.delete(subscriptionId);\n }\n },\n {\n /** Returns subscription metadata by id. */\n key: \"getSubscription\",\n value: function getSubscription(id) {\n return this.subscriptions.get(id);\n }\n },\n {\n /**\n * Returns current rows for a subscription from the cache.\n * Note: This is local-only; authoritative refresh happens via backfill/realtime.\n */\n key: \"getDocsForSubscription\",\n value: function getDocsForSubscription(id) {\n var virtualSub = this.virtualPageManager.getSubscription(id);\n if (virtualSub) {\n var docIds = virtualSub.getProgressiveCache().docIds.filter(function(id2) {\n return id2 !== \"\";\n });\n var out = [];\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = docIds[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var name = _step.value;\n var document = this.normalizedCache.get({\n doctype: virtualSub.query.doctype,\n name\n });\n if (document) out.push(document);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n return out;\n }\n var subscription = this.subscriptions.get(id);\n if (!subscription) return [];\n var out1 = [];\n var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;\n try {\n for (var _iterator1 = subscription.docIds[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {\n var name1 = _step1.value;\n var document1 = this.normalizedCache.get({\n doctype: subscription.query.doctype,\n name: name1\n });\n if (document1) out1.push(document1);\n }\n } catch (err) {\n _didIteratorError1 = true;\n _iteratorError1 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion1 && _iterator1.return != null) {\n _iterator1.return();\n }\n } finally {\n if (_didIteratorError1) {\n throw _iteratorError1;\n }\n }\n }\n return out1;\n }\n },\n {\n key: \"getPage\",\n value: (\n /**\n * Get a specific page of documents using virtual pagination\n */\n async function getPage(subscriptionId, page) {\n return this.virtualPageManager.getPage(subscriptionId, page);\n }\n )\n },\n {\n key: \"getNextBatch\",\n value: (\n /**\n * Get documents after a cursor (for infinite scroll)\n */\n async function getNextBatch(subscriptionId, cursorDocId, limit) {\n return this.virtualPageManager.getNextBatch(subscriptionId, cursorDocId, limit);\n }\n )\n },\n {\n /**\n * Get page information\n */\n key: \"getPageInfo\",\n value: function getPageInfo(subscriptionId) {\n return this.virtualPageManager.getPageInfo(subscriptionId);\n }\n },\n {\n key: \"backfill\",\n value: (\n /**\n * Reconciles local state by fetching changes since stored cursors.\n *\n * Scopes\n * - all: iterate all subscriptions\n * - subscriptions: selected subscription ids\n * - doctypes: all subscriptions matching any of these doctypes\n * - docs: refetch specific documents (authority refresh)\n */\n async function backfill(args) {\n if (args.scope === BackfillScope.All) {\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = this.subscriptions.values()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var subscription = _step.value;\n if (this.restoredAt.has(subscription.id)) continue;\n await this.backfillSub(subscription, args.pageSize);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n return;\n }\n if (args.scope === BackfillScope.Subscriptions) {\n var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;\n try {\n for (var _iterator1 = (args.subscriptions || [])[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {\n var subscriptionId = _step1.value;\n var subscription1 = this.subscriptions.get(subscriptionId);\n if (subscription1) await this.backfillSub(subscription1, args.pageSize);\n }\n } catch (err) {\n _didIteratorError1 = true;\n _iteratorError1 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion1 && _iterator1.return != null) {\n _iterator1.return();\n }\n } finally {\n if (_didIteratorError1) {\n throw _iteratorError1;\n }\n }\n }\n return;\n }\n if (args.scope === BackfillScope.Doctypes) {\n var set = new Set(args.doctypes || []);\n var _iteratorNormalCompletion2 = true, _didIteratorError2 = false, _iteratorError2 = void 0;\n try {\n for (var _iterator2 = this.subscriptions.values()[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var subscription2 = _step2.value;\n if (this.restoredAt.has(subscription2.id)) continue;\n if (set.has(subscription2.query.doctype)) await this.backfillSub(subscription2, args.pageSize);\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return != null) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n return;\n }\n if (args.scope === BackfillScope.Docs) {\n var _iteratorNormalCompletion3 = true, _didIteratorError3 = false, _iteratorError3 = void 0;\n try {\n for (var _iterator3 = (args.docs || [])[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var docTarget = _step3.value;\n var document = await this.db.getDoc(docTarget.doctype, docTarget.name);\n this.normalizedCache.upsert(document);\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return != null) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n }\n }\n )\n },\n {\n key: \"backfillSub\",\n value: (\n /**\n * Backfills one subscription using CDC checkpoint and updates membership.\n *\n * Algorithm\n * - Query backfill using checkpoint for CDC (Change Data Capture),\n * draining follow-up pages while the server reports has_more (bounded)\n * so reconnect catch-up is complete rather than one page deep\n * - Upsert each row to cache\n * - For each row: test client-side filters; add/remove membership accordingly\n * - Track tombstones for deleted documents\n * - Advance checkpoint to response checkpoint\n * - If no filters were specified, derive membership directly from returned rows\n */\n async function backfillSub(subscription) {\n var pageSize = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : (_this_options_pageSize = this.options.pageSize) !== null && _this_options_pageSize !== void 0 ? _this_options_pageSize : 200;\n var _this_options_backfillMaxPages;\n var maxPages = (_this_options_backfillMaxPages = this.options.backfillMaxPages) !== null && _this_options_backfillMaxPages !== void 0 ? _this_options_backfillMaxPages : 20;\n var rows = [];\n var deleted = [];\n for (var page = 0; page < maxPages; page++) {\n var _ref;\n var _response_deleted;\n var response = await this.db.backfill({\n doctype: subscription.query.doctype,\n fields: subscription.query.fields,\n filters: subscription.query.filters,\n modifiedAfter: subscription.checkpoint,\n // CDC checkpoint\n limit: pageSize\n });\n if (Array.isArray(response.deleted)) {\n deleted.push(...response.deleted);\n }\n rows.push(...response.rows);\n if (response.checkpoint) subscription.checkpoint = response.checkpoint;\n var madeProgress = response.rows.length > 0 || ((_ref = (_response_deleted = response.deleted) === null || _response_deleted === void 0 ? void 0 : _response_deleted.length) !== null && _ref !== void 0 ? _ref : 0) > 0;\n if (!response.has_more || !response.checkpoint || !madeProgress) break;\n }\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n var _this, _loop = function() {\n var deletedRef = _step.value;\n if (!(deletedRef === null || deletedRef === void 0 ? void 0 : deletedRef.name)) return \"continue\";\n var deletedDoctype = deletedRef.doctype || subscription.query.doctype;\n if (deletedDoctype === subscription.query.doctype && subscription.tombstones) {\n subscription.tombstones.set(deletedRef.name, Date.now());\n }\n _this.normalizedCache.remove({\n doctype: deletedDoctype,\n name: deletedRef.name\n });\n if (deletedDoctype === subscription.query.doctype) subscription.docIds = subscription.docIds.filter(function(currentName) {\n return currentName !== deletedRef.name;\n });\n };\n for (var _iterator = deleted[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) _this = this, _loop();\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;\n try {\n var _this1, _loop1 = function() {\n var row = _step1.value;\n if (!row.doctype) row.doctype = subscription.query.doctype;\n _this1.normalizedCache.upsert(row);\n var name = row.name;\n if (!name) return \"continue\";\n var match = matchesFilters(row, subscription.query.filters);\n if (match && !subscription.docIds.includes(name)) subscription.docIds.push(name);\n if (!match) subscription.docIds = subscription.docIds.filter(function(currentName) {\n return currentName !== name;\n });\n };\n for (var _iterator1 = rows[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) _this1 = this, _loop1();\n } catch (err) {\n _didIteratorError1 = true;\n _iteratorError1 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion1 && _iterator1.return != null) {\n _iterator1.return();\n }\n } finally {\n if (_didIteratorError1) {\n throw _iteratorError1;\n }\n }\n }\n if (rows.length && !subscription.query.filters) subscription.docIds = rows.map(function(row) {\n return row.name;\n });\n if (subscription.docIds.length > 0) {\n var firstDoc = this.normalizedCache.get({\n doctype: subscription.query.doctype,\n name: subscription.docIds[0]\n });\n var lastDoc = this.normalizedCache.get({\n doctype: subscription.query.doctype,\n name: subscription.docIds[subscription.docIds.length - 1]\n });\n if (firstDoc && lastDoc) {\n var _subscription_boundaries, _subscription_boundaries1;\n subscription.boundaries = {\n firstItem: firstDoc,\n lastItem: lastDoc,\n offset: ((_subscription_boundaries = subscription.boundaries) === null || _subscription_boundaries === void 0 ? void 0 : _subscription_boundaries.offset) || 0,\n pageSize: ((_subscription_boundaries1 = subscription.boundaries) === null || _subscription_boundaries1 === void 0 ? void 0 : _subscription_boundaries1.pageSize) || subscription.query.limit || 20\n };\n }\n }\n this.resortSubscriptionDocIds(subscription);\n this.cleanupTombstones(subscription.id);\n subscription.stale = false;\n if (this.options.onBackfill) this.options.onBackfill({\n doctype: subscription.query.doctype,\n fetched: rows.length,\n checkpoint: subscription.checkpoint\n });\n }\n )\n },\n {\n key: \"resortSubscriptionDocIds\",\n value: function resortSubscriptionDocIds(subscription) {\n var _this = this;\n var { orderBy, doctype } = subscription.query;\n if (!orderBy) return;\n var orderByArray = Array.isArray(orderBy) ? orderBy : [\n orderBy\n ];\n subscription.docIds.sort(function(firstId, secondId) {\n var firstDoc = _this.normalizedCache.get({\n doctype,\n name: firstId\n });\n var secondDoc = _this.normalizedCache.get({\n doctype,\n name: secondId\n });\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = orderByArray[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var orderByField = _step.value;\n var field = orderByField.field;\n var ascending = orderByField.order !== Order.Desc;\n var firstValue = firstDoc === null || firstDoc === void 0 ? void 0 : firstDoc[field];\n var secondValue = secondDoc === null || secondDoc === void 0 ? void 0 : secondDoc[field];\n var firstIsNullish = firstValue === null || firstValue === void 0;\n var secondIsNullish = secondValue === null || secondValue === void 0;\n if (firstIsNullish && !secondIsNullish) return ascending ? -1 : 1;\n if (secondIsNullish && !firstIsNullish) return ascending ? 1 : -1;\n if (firstIsNullish && secondIsNullish) continue;\n if (firstIsNullish || secondIsNullish) continue;\n if (firstValue < secondValue) return ascending ? -1 : 1;\n if (firstValue > secondValue) return ascending ? 1 : -1;\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n return firstId < secondId ? -1 : firstId > secondId ? 1 : 0;\n });\n }\n },\n {\n key: \"updateSubscriptionMembership\",\n value: function updateSubscriptionMembership(doc) {\n var subscriptionsNeedingRehydration = [];\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = this.subscriptions.values()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var subscription = _step.value;\n if (this.restoredAt.has(subscription.id)) continue;\n if (subscription.query.doctype !== doc.doctype) continue;\n var match = matchesFilters(doc, subscription.query.filters);\n var isExisting = subscription.docIds.includes(doc.name);\n if (match && !isExisting) {\n subscriptionsNeedingRehydration.push(subscription);\n this.virtualPageManager.handleRemoteCreate(subscription.id, doc);\n } else if (isExisting) {\n if (!match) {\n subscription.docIds = subscription.docIds.filter(function(docId) {\n return docId !== doc.name;\n });\n this.virtualPageManager.handleRemoteDelete(subscription.id, doc.name);\n } else {\n this.virtualPageManager.handleRemoteUpdate(subscription.id, doc);\n }\n this.resortSubscriptionDocIds(subscription);\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n return subscriptionsNeedingRehydration;\n }\n },\n {\n /**\n * Removes a document from all subscription memberships.\n * Returns subscriptions that had the document removed (for potential backfill).\n */\n key: \"removeFromAllSubscriptions\",\n value: function removeFromAllSubscriptions(doctype, name) {\n var affectedSubscriptions = [];\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = this.subscriptions.values()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var subscription = _step.value;\n if (subscription.query.doctype !== doctype) continue;\n var hadDocument = subscription.docIds.includes(name);\n if (hadDocument) {\n subscription.docIds = subscription.docIds.filter(function(docId) {\n return docId !== name;\n });\n this.virtualPageManager.handleRemoteDelete(subscription.id, name);\n affectedSubscriptions.push(subscription);\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n return affectedSubscriptions;\n }\n },\n {\n /** Gets all active subscriptions. */\n key: \"getAllSubscriptions\",\n value: function getAllSubscriptions() {\n return this.subscriptions;\n }\n },\n {\n key: \"getVirtualPageManager\",\n value: function getVirtualPageManager() {\n return this.virtualPageManager;\n }\n },\n {\n key: \"insertDocumentIntoSubscription\",\n value: function insertDocumentIntoSubscription(subscription, doc) {\n if (subscription.docIds.includes(doc.name)) return;\n if (!subscription.query.orderBy || subscription.docIds.length === 0) {\n return subscription.docIds.push(doc.name);\n }\n var insertIndex = this.findInsertionIndex(subscription, doc);\n subscription.docIds.splice(insertIndex, 0, doc.name);\n }\n },\n {\n key: \"findInsertionIndex\",\n value: function findInsertionIndex(subscription, doc) {\n var { docIds, query } = subscription;\n var orderByArray = Array.isArray(query.orderBy) ? query.orderBy : [\n query.orderBy\n ];\n var left = 0;\n var right = docIds.length - 1;\n while (left <= right) {\n var mid = Math.floor((left + right) / 2);\n var midDoc = this.normalizedCache.get({\n doctype: query.doctype,\n name: docIds[mid]\n });\n if (!midDoc) {\n return docIds.length;\n }\n var comparison = this.compareDocuments(doc, midDoc, orderByArray);\n if (comparison <= 0) {\n right = mid - 1;\n } else {\n left = mid + 1;\n }\n }\n return left;\n }\n },\n {\n key: \"compareDocuments\",\n value: function compareDocuments(doc1, doc2, orderByArray) {\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = orderByArray[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var { field, order } = _step.value;\n var value1 = doc1[field];\n var value2 = doc2[field];\n var isAsc = order !== Order.Desc;\n var isNull1 = value1 == null;\n var isNull2 = value2 == null;\n if (isNull1 && !isNull2) return isAsc ? -1 : 1;\n if (!isNull1 && isNull2) return isAsc ? 1 : -1;\n if (isNull1 && isNull2) continue;\n if (value1 < value2) return isAsc ? -1 : 1;\n if (value1 > value2) return isAsc ? 1 : -1;\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n var name1 = doc1.name || \"\";\n var name2 = doc2.name || \"\";\n return name1 < name2 ? -1 : name1 > name2 ? 1 : 0;\n }\n },\n {\n key: \"clear\",\n value: function clear() {\n this.refreshes.clear();\n this.subscriptions.clear();\n this.queryKeyToSubId.clear();\n this.subRefCounts.clear();\n this.restoredByQueryKey.clear();\n this.restoredAt.clear();\n }\n },\n {\n /**\n * Cleans up expired tombstones based on age and count limits.\n * Should be called periodically or after backfill operations.\n */\n key: \"cleanupTombstones\",\n value: function cleanupTombstones(subscriptionId) {\n var _this_options_tombstoneMaxAge, _this_options_tombstoneMaxCount;\n var maxAge = (_this_options_tombstoneMaxAge = this.options.tombstoneMaxAge) !== null && _this_options_tombstoneMaxAge !== void 0 ? _this_options_tombstoneMaxAge : 30 * 60 * 1e3;\n var maxCount = (_this_options_tombstoneMaxCount = this.options.tombstoneMaxCount) !== null && _this_options_tombstoneMaxCount !== void 0 ? _this_options_tombstoneMaxCount : 1e3;\n var now = Date.now();\n var subscriptionsToClean = subscriptionId ? [\n this.subscriptions.get(subscriptionId)\n ].filter(Boolean) : [\n ...this.subscriptions.values()\n ];\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = subscriptionsToClean[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var subscription = _step.value;\n if (!(subscription === null || subscription === void 0 ? void 0 : subscription.tombstones) || subscription.tombstones.size === 0) continue;\n var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;\n try {\n for (var _iterator1 = subscription.tombstones[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {\n var [name, timestamp] = _step1.value;\n if (now - timestamp > maxAge) {\n subscription.tombstones.delete(name);\n }\n }\n } catch (err) {\n _didIteratorError1 = true;\n _iteratorError1 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion1 && _iterator1.return != null) {\n _iterator1.return();\n }\n } finally {\n if (_didIteratorError1) {\n throw _iteratorError1;\n }\n }\n }\n if (subscription.tombstones.size > maxCount) {\n var entries = [\n ...subscription.tombstones.entries()\n ];\n entries.sort(function(a, b) {\n return a[1] - b[1];\n });\n var toRemove = entries.slice(0, subscription.tombstones.size - maxCount);\n var _iteratorNormalCompletion2 = true, _didIteratorError2 = false, _iteratorError2 = void 0;\n try {\n for (var _iterator2 = toRemove[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var [name1] = _step2.value;\n subscription.tombstones.delete(name1);\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return != null) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n }\n }\n ]);\n return SubscriptionManager2;\n})();\nfunction cryptoRandomId() {\n if (typeof crypto !== \"undefined\" && \"randomUUID\" in crypto) {\n return crypto.randomUUID();\n }\n return Math.random().toString(36).slice(2);\n}\nexport {\n SubscriptionManager\n};\n//# sourceMappingURL=subscriptionManager.js.map\n"],"mappings":"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","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":"AAGO,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":"AAGO,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;AAuHL,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":["Order","Order2","defaultPageLength","PlacementType","PlacementType2","PendingRehydrationType","PendingRehydrationType2","Operation","Operation2","Status","Status2","BackfillScope","BackfillScope2","RealtimeEventType","RealtimeEventType2","RehydrationStrategyType","RehydrationStrategyType2","RehydrationReason","RehydrationReason2","MutationBatchStatus","MutationBatchStatus2"],"sources":["
|
|
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":["types.native.js"],"sourcesContent":["var Order = /* @__PURE__ */ (function(Order2) {\n Order2[\"Asc\"] = \"asc\";\n Order2[\"Desc\"] = \"desc\";\n return Order2;\n})({});\nvar defaultPageLength = 20;\nvar PlacementType = /* @__PURE__ */ (function(PlacementType2) {\n PlacementType2[\"Before\"] = \"before\";\n PlacementType2[\"Within\"] = \"within\";\n PlacementType2[\"After\"] = \"after\";\n PlacementType2[\"Unknown\"] = \"unknown\";\n return PlacementType2;\n})({});\nvar PendingRehydrationType = /* @__PURE__ */ (function(PendingRehydrationType2) {\n PendingRehydrationType2[\"ItemOnly\"] = \"item-only\";\n PendingRehydrationType2[\"FullRefresh\"] = \"full-refresh\";\n return PendingRehydrationType2;\n})({});\nvar Operation = /* @__PURE__ */ (function(Operation2) {\n Operation2[\"Create\"] = \"create\";\n Operation2[\"Update\"] = \"update\";\n Operation2[\"Delete\"] = \"delete\";\n return Operation2;\n})({});\nvar Status = /* @__PURE__ */ (function(Status2) {\n Status2[\"Pending\"] = \"pending\";\n Status2[\"Confirmed\"] = \"confirmed\";\n Status2[\"Failed\"] = \"failed\";\n return Status2;\n})({});\nvar BackfillScope = /* @__PURE__ */ (function(BackfillScope2) {\n BackfillScope2[\"All\"] = \"all\";\n BackfillScope2[\"Doctypes\"] = \"doctypes\";\n BackfillScope2[\"Subscriptions\"] = \"subscriptions\";\n BackfillScope2[\"Docs\"] = \"docs\";\n return BackfillScope2;\n})({});\nvar RealtimeEventType = /* @__PURE__ */ (function(RealtimeEventType2) {\n RealtimeEventType2[\"DocUpdate\"] = \"doc_update\";\n RealtimeEventType2[\"ListUpdate\"] = \"list_update\";\n RealtimeEventType2[\"DocChanged\"] = \"doc_changed\";\n RealtimeEventType2[\"DocDeleted\"] = \"doc_deleted\";\n RealtimeEventType2[\"Connected\"] = \"connected\";\n RealtimeEventType2[\"PermEpochBump\"] = \"perm_epoch_bump\";\n return RealtimeEventType2;\n})({});\nvar RehydrationStrategyType = /* @__PURE__ */ (function(RehydrationStrategyType2) {\n RehydrationStrategyType2[\"FetchItemOnly\"] = \"fetch-item-only\";\n RehydrationStrategyType2[\"FullRefresh\"] = \"full-refresh\";\n return RehydrationStrategyType2;\n})({});\nvar RehydrationReason = /* @__PURE__ */ (function(RehydrationReason2) {\n RehydrationReason2[\"Create\"] = \"create\";\n RehydrationReason2[\"Delete\"] = \"delete\";\n RehydrationReason2[\"Overflow\"] = \"overflow\";\n RehydrationReason2[\"RemoteCreate\"] = \"remote-create\";\n RehydrationReason2[\"Uncertain\"] = \"uncertain\";\n return RehydrationReason2;\n})({});\nvar MutationBatchStatus = /* @__PURE__ */ (function(MutationBatchStatus2) {\n MutationBatchStatus2[\"Pending\"] = \"pending\";\n MutationBatchStatus2[\"Processing\"] = \"processing\";\n MutationBatchStatus2[\"Completed\"] = \"completed\";\n MutationBatchStatus2[\"Failed\"] = \"failed\";\n return MutationBatchStatus2;\n})({});\nexport {\n BackfillScope,\n MutationBatchStatus,\n Operation,\n Order,\n PendingRehydrationType,\n PlacementType,\n RealtimeEventType,\n RehydrationReason,\n RehydrationStrategyType,\n Status,\n defaultPageLength\n};\n//# sourceMappingURL=types.js.map\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Order","_class_call_check","instance","Constructor","TypeError","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_create_class","protoProps","staticProps","prototype","_define_property","obj","value","calculateCheckpointFromDocs","docs","maxTimestamp","maxDate","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Symbol","iterator","_step","next","done","doc","modified","date","Date","Number","isNaN","getTime","unused","err","return","PlacementStrategy","PlacementStrategy2","VirtualSubscription","VirtualSubscription2","subscription","progressiveCache","viewWindow","id","query","checkpoint","cursor","docIds","boundaries","lockExpiry","pendingRehydration","metadata","tombstones","updateProgressiveCache","options","nextCursor","hasMore","lastFetchedAt","totalCount","getProgressiveCache","processDocuments","normalizedCache","arguments","calculateCheckpoint","updateNormalizedCache","map","doc2","name","upsert","removeDocuments","docId","index","indexOf","splice","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","_iterator1","_step1","docId1","remove","doctype","VirtualPageManager","VirtualPageManager2","db","Map","batchSize","getOrderByField","orderBy","Array","isArray","registerSubscription","subscriptionId","initialDocIds","pageSize","limit","virtualSub","currentPage","subscriptions","set","recordIsland","startPage","endPage","Math","ceil","startIndex","endIndex","fetchedVia","initializeSubscription","fetchInitialBatch","getPage","page","get","start","end","cache","ensureCached","fetchPageByOffset","pageDocIds","slice","mapIdsToDocuments","getNextBatch","cursorDocId","fetchFromCursor","getPageInfo","knownPages","totalPages","itemsInCache","getTotalPages","count","getCount","filters","determineOptimisticPlacement","newDoc","orderByField","sortField","field","strategy","newValue","position","firstDoc","lastDoc","firstValue","lastValue","isAscending","order","Asc","binarySearchPosition","handleRemoteCreate","placement","currentDocIds","newDocIds","currentDocIds1","newDocIds1","shouldLimitCacheSize","pop","isViewingLastPage","fetchMorePages","needsRehydration","handleRemoteDelete","docName","pendingBackfill","handleRemoteUpdate","updatedDoc","currentIndex","oldDoc","placement1","invalidateCache","cacheGeneration","pageCache","clear","getSubscription","getPageIslands","islands","isIndexCached","some","island","findGaps","gaps","sorted","sort","a","b","push","currentEnd","nextStart","floor","getGapForIndex","find","gap","clearIslands","delete","getIslandCoverage","totalCached","islandCount","largestGap","reduce","sum","max","g"],"sources":["../../../src/sync/virtualPageManager.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["Order","_class_call_check","instance","Constructor","TypeError","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_create_class","protoProps","staticProps","prototype","_define_property","obj","value","calculateCheckpointFromDocs","docs","maxTimestamp","maxDate","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Symbol","iterator","_step","next","done","doc","modified","date","Date","Number","isNaN","getTime","unused","err","return","PlacementStrategy","PlacementStrategy2","VirtualSubscription","VirtualSubscription2","subscription","progressiveCache","viewWindow","id","query","checkpoint","cursor","docIds","boundaries","lockExpiry","pendingRehydration","metadata","tombstones","updateProgressiveCache","options","nextCursor","hasMore","lastFetchedAt","totalCount","getProgressiveCache","processDocuments","normalizedCache","arguments","calculateCheckpoint","updateNormalizedCache","map","doc2","name","upsert","removeDocuments","docId","index","indexOf","splice","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","_iterator1","_step1","docId1","remove","doctype","VirtualPageManager","VirtualPageManager2","db","Map","batchSize","getOrderByField","orderBy","Array","isArray","registerSubscription","subscriptionId","initialDocIds","pageSize","limit","virtualSub","currentPage","subscriptions","set","recordIsland","startPage","endPage","Math","ceil","startIndex","endIndex","fetchedVia","initializeSubscription","fetchInitialBatch","getPage","page","get","start","end","cache","ensureCached","fetchPageByOffset","pageDocIds","slice","mapIdsToDocuments","getNextBatch","cursorDocId","fetchFromCursor","getPageInfo","knownPages","totalPages","itemsInCache","getTotalPages","count","getCount","filters","determineOptimisticPlacement","newDoc","orderByField","sortField","field","strategy","newValue","position","firstDoc","lastDoc","firstValue","lastValue","isAscending","order","Asc","binarySearchPosition","handleRemoteCreate","placement","currentDocIds","newDocIds","currentDocIds1","newDocIds1","shouldLimitCacheSize","pop","isViewingLastPage","fetchMorePages","needsRehydration","handleRemoteDelete","docName","pendingBackfill","handleRemoteUpdate","updatedDoc","currentIndex","oldDoc","placement1","invalidateCache","cacheGeneration","pageCache","clear","getSubscription","getPageIslands","islands","isIndexCached","some","island","findGaps","gaps","sorted","sort","a","b","push","currentEnd","nextStart","floor","getGapForIndex","find","gap","clearIslands","delete","getIslandCoverage","totalCached","islandCount","largestGap","reduce","sum","max","g","updates","keys","fetchedDocs","currentCursor","targetSize","res","getDocList","fields","pagesLoaded","pageCount","targetDocCount","currentCount","neededCount","remainingNeeded","fetchSize","min","response","seen","Set","filter","has","updatedDocIds","limitStart","existingIds","newDocs","requiredIndex","pagesNeeded","existing","merged","current","last","indexOverlap","pageOverlap","_this","Boolean","left","right","mid","midDoc","midValue","comparison","compareValues","ascending","result","maxItems","lastPage"],"sources":["virtualPageManager.native.js"],"sourcesContent":["import { Order } from \"./types\";\nfunction _class_call_check(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\nfunction _create_class(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\nfunction _define_property(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction calculateCheckpointFromDocs(docs) {\n if (docs.length === 0) return void 0;\n var maxTimestamp = \"\";\n var maxDate = null;\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = docs[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var doc = _step.value;\n var modified = doc.modified;\n if (!modified) continue;\n try {\n var date = new Date(modified);\n if (Number.isNaN(date.getTime())) continue;\n if (!maxDate || date > maxDate) {\n maxDate = date;\n maxTimestamp = modified;\n }\n } catch (unused) {\n if (!maxTimestamp || modified > maxTimestamp) {\n maxTimestamp = modified;\n }\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n return maxTimestamp || void 0;\n}\nvar PlacementStrategy = /* @__PURE__ */ (function(PlacementStrategy2) {\n PlacementStrategy2[\"AfterRange\"] = \"after-range\";\n PlacementStrategy2[\"BeforeRange\"] = \"before-range\";\n PlacementStrategy2[\"Uncertain\"] = \"uncertain\";\n PlacementStrategy2[\"WithinRange\"] = \"within-range\";\n return PlacementStrategy2;\n})({});\nvar VirtualSubscription = /* @__PURE__ */ (function() {\n \"use strict\";\n function VirtualSubscription2(subscription, progressiveCache, viewWindow) {\n _class_call_check(this, VirtualSubscription2);\n _define_property(this, \"progressiveCache\", void 0);\n _define_property(this, \"needsRehydration\", void 0);\n _define_property(this, \"pendingBackfill\", void 0);\n _define_property(this, \"viewWindow\", void 0);\n _define_property(this, \"id\", void 0);\n _define_property(this, \"query\", void 0);\n _define_property(this, \"checkpoint\", void 0);\n _define_property(this, \"cursor\", void 0);\n _define_property(this, \"docIds\", void 0);\n _define_property(this, \"boundaries\", void 0);\n _define_property(this, \"lockExpiry\", void 0);\n _define_property(this, \"pendingRehydration\", void 0);\n _define_property(this, \"metadata\", void 0);\n _define_property(this, \"tombstones\", void 0);\n this.id = subscription.id;\n this.query = subscription.query;\n this.checkpoint = subscription.checkpoint;\n this.cursor = subscription.cursor;\n this.docIds = subscription.docIds;\n this.boundaries = subscription.boundaries;\n this.lockExpiry = subscription.lockExpiry;\n this.pendingRehydration = subscription.pendingRehydration;\n this.metadata = subscription.metadata;\n this.tombstones = subscription.tombstones;\n this.progressiveCache = progressiveCache;\n this.viewWindow = viewWindow;\n }\n _create_class(VirtualSubscription2, [\n {\n /**\n * Update progressive cache with new data\n */\n key: \"updateProgressiveCache\",\n value: function updateProgressiveCache(options) {\n if (options.docIds) {\n this.progressiveCache.docIds = options.docIds;\n }\n if (options.nextCursor !== void 0) {\n this.progressiveCache.nextCursor = options.nextCursor;\n }\n if (options.hasMore !== void 0) {\n this.progressiveCache.hasMore = options.hasMore;\n }\n if (options.lastFetchedAt) {\n this.progressiveCache.lastFetchedAt = options.lastFetchedAt;\n }\n if (typeof options.totalCount === \"number\") {\n this.progressiveCache.totalCount = options.totalCount;\n }\n }\n },\n {\n /**\n * Get the progressive cache (read-only access)\n */\n key: \"getProgressiveCache\",\n value: function getProgressiveCache() {\n return {\n ...this.progressiveCache\n };\n }\n },\n {\n // Return copy to prevent external mutation\n /**\n * Process documents and update caches\n */\n key: \"processDocuments\",\n value: function processDocuments(docs, normalizedCache) {\n var options = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};\n var { calculateCheckpoint = true, updateNormalizedCache = true } = options;\n this.updateProgressiveCache({\n docIds: docs.map(function(doc2) {\n return doc2.name;\n }),\n nextCursor: docs.length > 0 ? docs[docs.length - 1].name : void 0,\n lastFetchedAt: /* @__PURE__ */ new Date()\n });\n if (updateNormalizedCache) {\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = docs[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var doc = _step.value;\n normalizedCache.upsert(doc);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n }\n if (calculateCheckpoint) {\n this.checkpoint = calculateCheckpointFromDocs(docs);\n }\n }\n },\n {\n /**\n * Remove documents from progressive cache\n */\n key: \"removeDocuments\",\n value: function removeDocuments(docIds, normalizedCache) {\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = docIds[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var docId = _step.value;\n var index = this.progressiveCache.docIds.indexOf(docId);\n if (index !== -1) {\n this.progressiveCache.docIds.splice(index, 1);\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;\n try {\n for (var _iterator1 = docIds[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {\n var docId1 = _step1.value;\n normalizedCache.remove({\n doctype: this.query.doctype,\n name: docId1\n });\n }\n } catch (err) {\n _didIteratorError1 = true;\n _iteratorError1 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion1 && _iterator1.return != null) {\n _iterator1.return();\n }\n } finally {\n if (_didIteratorError1) {\n throw _iteratorError1;\n }\n }\n }\n }\n }\n ]);\n return VirtualSubscription2;\n})();\nvar VirtualPageManager = /* @__PURE__ */ (function() {\n \"use strict\";\n function VirtualPageManager2(normalizedCache, db) {\n var options = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};\n _class_call_check(this, VirtualPageManager2);\n _define_property(this, \"subscriptions\", /* @__PURE__ */ new Map());\n _define_property(this, \"pageCache\", /* @__PURE__ */ new Map());\n _define_property(this, \"cacheGeneration\", 0);\n _define_property(this, \"batchSize\", void 0);\n _define_property(this, \"islands\", /* @__PURE__ */ new Map());\n _define_property(this, \"normalizedCache\", void 0);\n _define_property(this, \"db\", void 0);\n this.normalizedCache = normalizedCache;\n this.db = db;\n this.batchSize = options.batchSize || 100;\n }\n _create_class(VirtualPageManager2, [\n {\n key: \"getOrderByField\",\n value: (\n /**\n * Helper to get the primary sort field from OrderBy\n */\n function getOrderByField(subscription) {\n var orderBy = subscription.query.orderBy;\n if (!orderBy) return void 0;\n return Array.isArray(orderBy) ? orderBy[0] : orderBy;\n }\n )\n },\n {\n /**\n * Registers a subscription with pre-fetched data, avoiding a duplicate\n * initial fetch. Used by SubscriptionManager when `progressive: true`.\n */\n key: \"registerSubscription\",\n value: function registerSubscription(subscriptionId, subscription, initialDocIds, cursor, hasMore) {\n var pageSize = subscription.query.limit || 20;\n var virtualSub = new VirtualSubscription(subscription, {\n docIds: [\n ...initialDocIds\n ],\n nextCursor: cursor !== null && cursor !== void 0 ? cursor : initialDocIds.length > 0 ? initialDocIds[initialDocIds.length - 1] : void 0,\n hasMore: hasMore !== null && hasMore !== void 0 ? hasMore : initialDocIds.length >= pageSize,\n totalCount: void 0,\n lastFetchedAt: /* @__PURE__ */ new Date()\n }, {\n currentPage: 1,\n pageSize\n });\n this.subscriptions.set(subscriptionId, virtualSub);\n if (initialDocIds.length > 0) {\n this.recordIsland(subscriptionId, {\n startPage: 1,\n endPage: Math.ceil(initialDocIds.length / pageSize) || 1,\n startIndex: 0,\n endIndex: initialDocIds.length,\n fetchedVia: \"cursor\"\n });\n }\n return virtualSub;\n }\n },\n {\n key: \"initializeSubscription\",\n value: async function initializeSubscription(subscriptionId, query) {\n var subscription = new VirtualSubscription({\n id: subscriptionId,\n query,\n docIds: []\n }, {\n docIds: [],\n nextCursor: void 0,\n hasMore: true,\n totalCount: void 0\n }, {\n currentPage: 1,\n pageSize: query.limit || 20\n });\n this.subscriptions.set(subscriptionId, subscription);\n await this.fetchInitialBatch(subscription);\n return subscription;\n }\n },\n {\n key: \"getPage\",\n value: async function getPage(subscriptionId, page) {\n var subscription = this.subscriptions.get(subscriptionId);\n if (!subscription) return [];\n var pageSize = subscription.viewWindow.pageSize;\n var start = (page - 1) * pageSize;\n var end = start + pageSize;\n var cache = subscription.getProgressiveCache();\n if (cache.docIds.length >= start) {\n await this.ensureCached(subscription, end);\n } else {\n await this.fetchPageByOffset(subscription, page);\n }\n subscription.viewWindow.currentPage = page;\n var pageDocIds = subscription.getProgressiveCache().docIds.slice(start, end);\n return this.mapIdsToDocuments(subscription.query.doctype, pageDocIds);\n }\n },\n {\n key: \"getNextBatch\",\n value: async function getNextBatch(subscriptionId, cursorDocId, limit) {\n var subscription = this.subscriptions.get(subscriptionId);\n if (!subscription) return [];\n var index = subscription.getProgressiveCache().docIds.indexOf(cursorDocId);\n if (index === -1) {\n await this.fetchFromCursor(subscription, cursorDocId);\n index = subscription.getProgressiveCache().docIds.indexOf(cursorDocId);\n if (index === -1) {\n return [];\n }\n }\n var start = index + 1;\n var end = start + limit;\n await this.ensureCached(subscription, end);\n var docIds = subscription.getProgressiveCache().docIds.slice(start, end);\n return this.mapIdsToDocuments(subscription.query.doctype, docIds);\n }\n },\n {\n /**\n * Get page information for UI\n */\n key: \"getPageInfo\",\n value: function getPageInfo(subscriptionId) {\n var subscription = this.subscriptions.get(subscriptionId);\n if (!subscription) {\n return {\n currentPage: 1,\n knownPages: 0,\n totalPages: \"unknown\",\n hasMore: false,\n itemsInCache: 0,\n pageSize: 20\n };\n }\n var knownPages = Math.ceil(subscription.getProgressiveCache().docIds.length / subscription.viewWindow.pageSize);\n return {\n currentPage: subscription.viewWindow.currentPage,\n knownPages,\n totalPages: subscription.getProgressiveCache().totalCount !== void 0 ? Math.ceil(subscription.getProgressiveCache().totalCount / subscription.viewWindow.pageSize) : \"unknown\",\n hasMore: subscription.getProgressiveCache().hasMore,\n itemsInCache: subscription.getProgressiveCache().docIds.length,\n pageSize: subscription.viewWindow.pageSize\n };\n }\n },\n {\n key: \"getTotalPages\",\n value: (\n /**\n * Get total page count (expensive - may require server call)\n */\n async function getTotalPages(subscriptionId) {\n var subscription = this.subscriptions.get(subscriptionId);\n if (!subscription) return \"unknown\";\n if (subscription.getProgressiveCache().totalCount === void 0) {\n if (!subscription.getProgressiveCache().hasMore) {\n subscription.updateProgressiveCache({\n totalCount: subscription.getProgressiveCache().docIds.length\n });\n } else {\n try {\n var count = await this.db.getCount(subscription.query.doctype, subscription.query.filters);\n subscription.updateProgressiveCache({\n totalCount: count\n });\n } catch (unused) {\n return \"unknown\";\n }\n }\n }\n return Math.ceil(subscription.getProgressiveCache().totalCount / subscription.viewWindow.pageSize);\n }\n )\n },\n {\n /**\n * Handle optimistic document placement\n */\n key: \"determineOptimisticPlacement\",\n value: function determineOptimisticPlacement(subscription, newDoc) {\n var orderByField = this.getOrderByField(subscription);\n var sortField = orderByField === null || orderByField === void 0 ? void 0 : orderByField.field;\n if (!sortField || !(sortField in newDoc)) {\n return {\n strategy: \"uncertain\"\n };\n }\n var newValue = newDoc[sortField];\n var docIds = subscription.getProgressiveCache().docIds;\n if (docIds.length === 0) {\n return {\n strategy: \"within-range\",\n position: 0\n };\n }\n var firstDoc = this.normalizedCache.get({\n doctype: subscription.query.doctype,\n name: docIds[0]\n });\n var lastDoc = this.normalizedCache.get({\n doctype: subscription.query.doctype,\n name: docIds[docIds.length - 1]\n });\n if (!firstDoc || !lastDoc) {\n return {\n strategy: \"uncertain\"\n };\n }\n var firstValue = firstDoc[sortField];\n var lastValue = lastDoc[sortField];\n var isAscending = (orderByField === null || orderByField === void 0 ? void 0 : orderByField.order) === Order.Asc;\n if (isAscending) {\n if (newValue != null && firstValue != null && newValue < firstValue) {\n return {\n strategy: \"before-range\"\n };\n }\n if (newValue != null && lastValue != null && newValue > lastValue) {\n return {\n strategy: \"after-range\"\n };\n }\n } else {\n if (newValue != null && firstValue != null && newValue > firstValue) {\n return {\n strategy: \"before-range\"\n };\n }\n if (newValue != null && lastValue != null && newValue < lastValue) {\n return {\n strategy: \"after-range\"\n };\n }\n }\n var position = this.binarySearchPosition(subscription, newDoc, sortField);\n return {\n strategy: \"within-range\",\n position\n };\n }\n },\n {\n key: \"handleRemoteCreate\",\n value: (\n /**\n * Update subscription after remote create\n */\n async function handleRemoteCreate(subscriptionId, newDoc) {\n var subscription = this.subscriptions.get(subscriptionId);\n if (!subscription) return false;\n var placement = this.determineOptimisticPlacement(subscription, newDoc);\n switch (placement.strategy) {\n case \"within-range\":\n if (placement.position !== void 0) {\n var currentDocIds = subscription.getProgressiveCache().docIds;\n var newDocIds = [\n ...currentDocIds\n ];\n newDocIds.splice(placement.position, 0, newDoc.name);\n subscription.updateProgressiveCache({\n docIds: newDocIds\n });\n return true;\n }\n break;\n case \"before-range\": {\n var currentDocIds1 = subscription.getProgressiveCache().docIds;\n var newDocIds1 = [\n newDoc.name,\n ...currentDocIds1\n ];\n if (this.shouldLimitCacheSize(subscription)) {\n newDocIds1.pop();\n }\n subscription.updateProgressiveCache({\n docIds: newDocIds1\n });\n return true;\n }\n case \"after-range\":\n if (this.isViewingLastPage(subscription)) {\n await this.fetchMorePages(subscription, 1);\n }\n return false;\n case \"uncertain\":\n subscription.needsRehydration = true;\n return false;\n }\n return false;\n }\n )\n },\n {\n key: \"handleRemoteDelete\",\n value: (\n /**\n * Update subscription after remote delete\n */\n async function handleRemoteDelete(subscriptionId, docName) {\n var subscription = this.subscriptions.get(subscriptionId);\n if (!subscription) return false;\n var currentDocIds = subscription.getProgressiveCache().docIds;\n var index = currentDocIds.indexOf(docName);\n if (index === -1) return false;\n var newDocIds = [\n ...currentDocIds\n ];\n newDocIds.splice(index, 1);\n subscription.updateProgressiveCache({\n docIds: newDocIds\n });\n subscription.pendingBackfill = true;\n return true;\n }\n )\n },\n {\n key: \"handleRemoteUpdate\",\n value: (\n /**\n * Update subscription after remote update\n */\n async function handleRemoteUpdate(subscriptionId, updatedDoc) {\n var subscription = this.subscriptions.get(subscriptionId);\n if (!subscription) return false;\n var currentIndex = subscription.getProgressiveCache().docIds.indexOf(updatedDoc.name);\n var orderByField = this.getOrderByField(subscription);\n var sortField = orderByField === null || orderByField === void 0 ? void 0 : orderByField.field;\n if (!sortField || !(sortField in updatedDoc)) {\n return currentIndex !== -1;\n }\n if (currentIndex === -1) {\n var placement = this.determineOptimisticPlacement(subscription, updatedDoc);\n if (placement.strategy === \"within-range\" && placement.position !== void 0) {\n var currentDocIds = subscription.getProgressiveCache().docIds;\n var newDocIds = [\n ...currentDocIds\n ];\n newDocIds.splice(placement.position, 0, updatedDoc.name);\n subscription.updateProgressiveCache({\n docIds: newDocIds\n });\n return true;\n }\n return false;\n }\n var oldDoc = this.normalizedCache.get({\n doctype: subscription.query.doctype,\n name: updatedDoc.name\n });\n if (oldDoc && oldDoc[sortField] !== updatedDoc[sortField]) {\n var currentDocIds1 = subscription.getProgressiveCache().docIds;\n var newDocIds1 = [\n ...currentDocIds1\n ];\n newDocIds1.splice(currentIndex, 1);\n var placement1 = this.determineOptimisticPlacement(subscription, updatedDoc);\n if (placement1.strategy === \"within-range\" && placement1.position !== void 0) {\n newDocIds1.splice(placement1.position, 0, updatedDoc.name);\n subscription.updateProgressiveCache({\n docIds: newDocIds1\n });\n } else {\n subscription.updateProgressiveCache({\n docIds: newDocIds1\n });\n subscription.pendingBackfill = true;\n }\n }\n return true;\n }\n )\n },\n {\n /**\n * Invalidate page cache (call after any change)\n */\n key: \"invalidateCache\",\n value: function invalidateCache() {\n this.cacheGeneration++;\n this.pageCache.clear();\n }\n },\n {\n /**\n * Get subscription by ID\n */\n key: \"getSubscription\",\n value: function getSubscription(subscriptionId) {\n return this.subscriptions.get(subscriptionId);\n }\n },\n {\n key: \"getPageIslands\",\n value: function getPageIslands(subscriptionId) {\n return this.islands.get(subscriptionId) || [];\n }\n },\n {\n /**\n * Check if a specific index is within a cached island\n */\n key: \"isIndexCached\",\n value: function isIndexCached(subscriptionId, index) {\n var islands = this.islands.get(subscriptionId) || [];\n return islands.some(function(island) {\n return index >= island.startIndex && index < island.endIndex;\n });\n }\n },\n {\n /**\n * Find all gaps between cached islands\n */\n key: \"findGaps\",\n value: function findGaps(subscriptionId) {\n var subscription = this.subscriptions.get(subscriptionId);\n if (!subscription) return [];\n var islands = this.islands.get(subscriptionId) || [];\n if (islands.length === 0) return [];\n var gaps = [];\n var pageSize = subscription.viewWindow.pageSize;\n var sorted = [\n ...islands\n ].sort(function(a, b) {\n return a.startIndex - b.startIndex;\n });\n if (sorted[0].startIndex > 0) {\n gaps.push({\n startIndex: 0,\n endIndex: sorted[0].startIndex,\n startPage: 1,\n endPage: Math.ceil(sorted[0].startIndex / pageSize)\n });\n }\n for (var i = 0; i < sorted.length - 1; i++) {\n var currentEnd = sorted[i].endIndex;\n var nextStart = sorted[i + 1].startIndex;\n if (nextStart > currentEnd) {\n gaps.push({\n startIndex: currentEnd,\n endIndex: nextStart,\n startPage: Math.floor(currentEnd / pageSize) + 1,\n endPage: Math.ceil(nextStart / pageSize)\n });\n }\n }\n return gaps;\n }\n },\n {\n /**\n * Get the gap that contains a specific index, if any\n */\n key: \"getGapForIndex\",\n value: function getGapForIndex(subscriptionId, index) {\n var gaps = this.findGaps(subscriptionId);\n return gaps.find(function(gap) {\n return index >= gap.startIndex && index < gap.endIndex;\n }) || null;\n }\n },\n {\n /**\n * Clear all islands for a subscription (used during full refresh)\n */\n key: \"clearIslands\",\n value: function clearIslands(subscriptionId) {\n this.islands.delete(subscriptionId);\n }\n },\n {\n /**\n * Get coverage statistics for a subscription\n */\n key: \"getIslandCoverage\",\n value: function getIslandCoverage(subscriptionId) {\n var subscription = this.subscriptions.get(subscriptionId);\n var islands = this.islands.get(subscriptionId) || [];\n if (!subscription || islands.length === 0) {\n return {\n totalCached: 0,\n islandCount: 0,\n gaps: 0,\n largestGap: 0\n };\n }\n var gaps = this.findGaps(subscriptionId);\n var totalCached = islands.reduce(function(sum, island) {\n return sum + (island.endIndex - island.startIndex);\n }, 0);\n var largestGap = gaps.length > 0 ? Math.max(...gaps.map(function(g) {\n return g.endIndex - g.startIndex;\n })) : 0;\n return {\n totalCached,\n islandCount: islands.length,\n gaps: gaps.length,\n largestGap\n };\n }\n },\n {\n /**\n * Update subscription's progressive cache\n */\n key: \"updateProgressiveCache\",\n value: function updateProgressiveCache(subscriptionId, docIds, nextCursor, hasMore) {\n var subscription = this.subscriptions.get(subscriptionId);\n if (!subscription) return;\n var updates = {};\n if (docIds !== void 0) updates.docIds = docIds;\n if (nextCursor !== void 0) updates.nextCursor = nextCursor !== null && nextCursor !== void 0 ? nextCursor : void 0;\n if (hasMore !== void 0) updates.hasMore = hasMore;\n if (Object.keys(updates).length > 0) {\n subscription.updateProgressiveCache(updates);\n }\n this.invalidateCache();\n }\n },\n {\n key: \"fetchInitialBatch\",\n value: (\n // Private helper methods\n async function fetchInitialBatch(subscription) {\n var fetchedDocs = [];\n var hasMore = true;\n var currentCursor;\n var targetSize = subscription.viewWindow.pageSize;\n while (fetchedDocs.length < targetSize && hasMore) {\n var res = await this.db.getDocList(subscription.query.doctype, {\n fields: subscription.query.fields,\n filters: subscription.query.filters,\n orderBy: subscription.query.orderBy,\n cursor: currentCursor,\n limit: this.batchSize\n });\n if (res.length === 0) {\n hasMore = false;\n break;\n }\n fetchedDocs = [\n ...fetchedDocs,\n ...res\n ];\n currentCursor = res.length > 0 ? res[res.length - 1].name : void 0;\n hasMore = res.length === this.batchSize;\n }\n subscription.processDocuments(fetchedDocs, this.normalizedCache);\n subscription.updateProgressiveCache({\n hasMore\n });\n var pagesLoaded = Math.ceil(fetchedDocs.length / subscription.viewWindow.pageSize) || 1;\n this.recordIsland(subscription.id, {\n startPage: 1,\n endPage: pagesLoaded,\n startIndex: 0,\n endIndex: fetchedDocs.length,\n fetchedVia: \"cursor\"\n });\n }\n )\n },\n {\n key: \"fetchMorePages\",\n value: async function fetchMorePages(subscription, pageCount) {\n var cache = subscription.getProgressiveCache();\n if (!cache.hasMore) return;\n var targetDocCount = subscription.viewWindow.pageSize * pageCount;\n var currentCount = cache.docIds.length;\n var neededCount = targetDocCount - currentCount;\n if (neededCount <= 0) return;\n var fetchedDocs = [];\n var hasMore = cache.hasMore;\n var currentCursor = cache.nextCursor;\n while (fetchedDocs.length < neededCount && hasMore) {\n var remainingNeeded = neededCount - fetchedDocs.length;\n var fetchSize = Math.min(this.batchSize, remainingNeeded);\n var response = await this.db.getDocList(subscription.query.doctype, {\n fields: subscription.query.fields,\n filters: subscription.query.filters,\n orderBy: subscription.query.orderBy,\n cursor: currentCursor || void 0,\n limit: fetchSize\n });\n if (response.length === 0) {\n hasMore = false;\n break;\n }\n fetchedDocs = [\n ...fetchedDocs,\n ...response\n ];\n currentCursor = response.length > 0 ? response[response.length - 1].name : void 0;\n hasMore = response.length === fetchSize && fetchedDocs.length < neededCount;\n }\n var currentDocIds = subscription.getProgressiveCache().docIds;\n var seen = new Set(currentDocIds);\n var newDocIds = fetchedDocs.map(function(doc2) {\n return doc2.name;\n }).filter(function(name) {\n return !seen.has(name);\n });\n var updatedDocIds = [\n ...currentDocIds,\n ...newDocIds\n ];\n subscription.updateProgressiveCache({\n docIds: updatedDocIds,\n nextCursor: fetchedDocs.length > 0 ? fetchedDocs[fetchedDocs.length - 1].name : void 0,\n hasMore,\n lastFetchedAt: /* @__PURE__ */ new Date()\n });\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = fetchedDocs[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var doc = _step.value;\n this.normalizedCache.upsert(doc);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n var startIndex = currentCount;\n var endIndex = startIndex + fetchedDocs.length;\n var pageSize = subscription.viewWindow.pageSize;\n var startPage = Math.floor(startIndex / pageSize) + 1;\n var endPage = Math.ceil(endIndex / pageSize);\n this.recordIsland(subscription.id, {\n startPage,\n endPage,\n startIndex,\n endIndex,\n fetchedVia: \"cursor\"\n });\n }\n },\n {\n key: \"fetchPageByOffset\",\n value: async function fetchPageByOffset(subscription, page) {\n var pageSize = subscription.viewWindow.pageSize;\n var limitStart = (page - 1) * pageSize;\n var response = await this.db.getDocList(subscription.query.doctype, {\n fields: subscription.query.fields,\n filters: subscription.query.filters,\n orderBy: subscription.query.orderBy,\n limitStart,\n limit: pageSize\n });\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = response[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var doc = _step.value;\n if (!doc.doctype) doc.doctype = subscription.query.doctype;\n this.normalizedCache.upsert(doc);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n var currentDocIds = [\n ...subscription.getProgressiveCache().docIds\n ];\n while (currentDocIds.length < limitStart) {\n currentDocIds.push(\"\");\n }\n for (var i = 0; i < response.length; i++) {\n currentDocIds[limitStart + i] = response[i].name;\n }\n subscription.updateProgressiveCache({\n docIds: currentDocIds,\n nextCursor: response.length > 0 ? response[response.length - 1].name : void 0,\n hasMore: response.length === pageSize,\n lastFetchedAt: /* @__PURE__ */ new Date()\n });\n this.recordIsland(subscription.id, {\n startPage: page,\n endPage: page,\n startIndex: limitStart,\n endIndex: limitStart + response.length,\n fetchedVia: \"offset\"\n });\n }\n },\n {\n key: \"fetchFromCursor\",\n value: async function fetchFromCursor(subscription, cursorDocId) {\n var response = await this.db.getDocList(subscription.query.doctype, {\n fields: subscription.query.fields,\n filters: subscription.query.filters,\n orderBy: subscription.query.orderBy,\n cursor: cursorDocId,\n limit: this.batchSize\n });\n if (response.length === 0) return;\n var existingIds = new Set(subscription.getProgressiveCache().docIds);\n var newDocs = response.filter(function(doc2) {\n return !existingIds.has(doc2.name);\n });\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = newDocs[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var doc = _step.value;\n if (!doc.doctype) doc.doctype = subscription.query.doctype;\n this.normalizedCache.upsert(doc);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n var newDocIds = newDocs.map(function(doc2) {\n return doc2.name;\n });\n var updatedDocIds = [\n ...subscription.getProgressiveCache().docIds,\n ...newDocIds\n ];\n subscription.updateProgressiveCache({\n docIds: updatedDocIds,\n nextCursor: response.length > 0 ? response[response.length - 1].name : void 0,\n hasMore: response.length === this.batchSize,\n lastFetchedAt: /* @__PURE__ */ new Date()\n });\n }\n },\n {\n key: \"ensureCached\",\n value: async function ensureCached(subscription, requiredIndex) {\n var cache = subscription.getProgressiveCache();\n if (cache.docIds.length >= requiredIndex || !cache.hasMore) return;\n var pageSize = subscription.viewWindow.pageSize;\n var pagesNeeded = Math.ceil(requiredIndex / pageSize);\n await this.fetchMorePages(subscription, pagesNeeded);\n }\n },\n {\n key: \"recordIsland\",\n value: function recordIsland(subscriptionId, island) {\n var existing = this.islands.get(subscriptionId) || [];\n existing.push(island);\n existing.sort(function(a, b) {\n return a.startIndex - b.startIndex;\n });\n var merged = [];\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = existing[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var current = _step.value;\n if (merged.length === 0) {\n merged.push({\n ...current\n });\n continue;\n }\n var last = merged[merged.length - 1];\n var indexOverlap = current.startIndex <= last.endIndex + 1;\n var pageOverlap = current.startPage <= last.endPage + 1;\n if (indexOverlap || pageOverlap) {\n last.endIndex = Math.max(last.endIndex, current.endIndex);\n last.startIndex = Math.min(last.startIndex, current.startIndex);\n last.endPage = Math.max(last.endPage, current.endPage);\n last.startPage = Math.min(last.startPage, current.startPage);\n if (current.fetchedVia === \"cursor\" && last.fetchedVia === \"offset\") {\n last.fetchedVia = \"cursor\";\n }\n } else {\n merged.push({\n ...current\n });\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n this.islands.set(subscriptionId, merged);\n }\n },\n {\n key: \"mapIdsToDocuments\",\n value: function mapIdsToDocuments(doctype, docIds) {\n var _this = this;\n return docIds.filter(function(id) {\n return id !== \"\";\n }).map(function(id) {\n return _this.normalizedCache.get({\n doctype,\n name: id\n });\n }).filter(Boolean);\n }\n },\n {\n key: \"binarySearchPosition\",\n value: function binarySearchPosition(subscription, newDoc, sortField) {\n var docIds = subscription.getProgressiveCache().docIds;\n var orderByField = this.getOrderByField(subscription);\n var isAscending = (orderByField === null || orderByField === void 0 ? void 0 : orderByField.order) === Order.Asc;\n var left = 0;\n var right = docIds.length - 1;\n while (left <= right) {\n var mid = Math.floor((left + right) / 2);\n var midDoc = this.normalizedCache.get({\n doctype: subscription.query.doctype,\n name: docIds[mid]\n });\n if (!midDoc) {\n left = mid + 1;\n continue;\n }\n var midValue = midDoc[sortField];\n var newValue = newDoc[sortField];\n var comparison = this.compareValues(midValue, newValue, isAscending);\n if (comparison < 0) {\n left = mid + 1;\n } else {\n right = mid - 1;\n }\n }\n return left;\n }\n },\n {\n key: \"compareValues\",\n value: function compareValues(a, b, ascending) {\n if (a === b) return 0;\n if (a == null) return ascending ? -1 : 1;\n if (b == null) return ascending ? 1 : -1;\n var result = a < b ? -1 : 1;\n return ascending ? result : -result;\n }\n },\n {\n key: \"shouldLimitCacheSize\",\n value: function shouldLimitCacheSize(subscription) {\n var maxItems = Math.max(1e3, subscription.viewWindow.pageSize * 50);\n return subscription.getProgressiveCache().docIds.length > maxItems;\n }\n },\n {\n key: \"isViewingLastPage\",\n value: function isViewingLastPage(subscription) {\n var totalCached = subscription.getProgressiveCache().docIds.length;\n var pageSize = subscription.viewWindow.pageSize;\n var lastPage = Math.ceil(totalCached / pageSize);\n return subscription.viewWindow.currentPage >= lastPage;\n }\n }\n ]);\n return VirtualPageManager2;\n})();\nexport {\n PlacementStrategy,\n VirtualPageManager,\n VirtualSubscription\n};\n//# sourceMappingURL=virtualPageManager.js.map\n"],"mappings":"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","ignoreList":[]}
|