@multiplatform.one/frappe 6.0.4 → 6.3.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 +38 -12
- package/dist/cjs/auth.cjs +1 -1
- package/dist/cjs/auth.native.js.map +1 -1
- package/dist/cjs/call.cjs +1 -1
- package/dist/cjs/call.native.js.map +1 -1
- package/dist/cjs/collection.cjs +18 -4
- package/dist/cjs/collection.native.js +18 -4
- package/dist/cjs/collection.native.js.map +1 -1
- package/dist/cjs/core/http.cjs +92 -9
- package/dist/cjs/core/http.native.js +96 -7
- package/dist/cjs/core/http.native.js.map +1 -1
- package/dist/cjs/db.cjs +7 -7
- package/dist/cjs/db.native.js +4 -4
- package/dist/cjs/db.native.js.map +1 -1
- package/dist/cjs/doctype.cjs +97 -39
- package/dist/cjs/doctype.native.js +116 -46
- package/dist/cjs/doctype.native.js.map +1 -1
- package/dist/cjs/file.cjs +1 -1
- package/dist/cjs/file.native.js.map +1 -1
- package/dist/cjs/fixtureDb.cjs +3 -2
- package/dist/cjs/fixtureDb.native.js +2 -1
- package/dist/cjs/fixtureDb.native.js.map +1 -1
- package/dist/cjs/frappeApp.cjs +15 -14
- package/dist/cjs/frappeApp.native.js +16 -14
- package/dist/cjs/frappeApp.native.js.map +1 -1
- package/dist/cjs/frappeReact.cjs +198 -18
- package/dist/cjs/frappeReact.native.js +241 -18
- package/dist/cjs/frappeReact.native.js.map +1 -1
- package/dist/cjs/index.cjs +9 -4
- package/dist/cjs/index.native.js +9 -4
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/pacer.cjs +2 -2
- package/dist/cjs/pacer.native.js +2 -2
- package/dist/cjs/pacer.native.js.map +1 -1
- package/dist/cjs/realtime.cjs +186 -46
- package/dist/cjs/realtime.native.js +268 -48
- package/dist/cjs/realtime.native.js.map +1 -1
- package/dist/cjs/sync/backfill.cjs +32 -27
- package/dist/cjs/sync/backfill.native.js +49 -43
- package/dist/cjs/sync/backfill.native.js.map +1 -1
- package/dist/cjs/sync/index.cjs +90 -24
- package/dist/cjs/sync/index.native.js +112 -10
- package/dist/cjs/sync/index.native.js.map +1 -1
- package/dist/cjs/sync/merge.cjs +0 -3
- package/dist/cjs/sync/merge.native.js +0 -3
- package/dist/cjs/sync/merge.native.js.map +1 -1
- package/dist/cjs/sync/mutationEngine.cjs +25 -19
- package/dist/cjs/sync/mutationEngine.native.js +16 -13
- package/dist/cjs/sync/mutationEngine.native.js.map +1 -1
- package/dist/cjs/sync/mutationJournal.cjs +9 -4
- package/dist/cjs/sync/mutationJournal.native.js +7 -4
- package/dist/cjs/sync/mutationJournal.native.js.map +1 -1
- package/dist/cjs/sync/normalizedCache.cjs +7 -3
- package/dist/cjs/sync/normalizedCache.native.js +7 -2
- package/dist/cjs/sync/normalizedCache.native.js.map +1 -1
- package/dist/cjs/sync/persistence.cjs +63 -31
- package/dist/cjs/sync/persistence.native.js +120 -63
- package/dist/cjs/sync/persistence.native.js.map +1 -1
- package/dist/cjs/sync/realtime.cjs +124 -13
- package/dist/cjs/sync/realtime.native.js +163 -20
- package/dist/cjs/sync/realtime.native.js.map +1 -1
- package/dist/cjs/sync/rehydration.cjs +16 -10
- package/dist/cjs/sync/rehydration.native.js +16 -14
- package/dist/cjs/sync/rehydration.native.js.map +1 -1
- package/dist/cjs/sync/storage.cjs +3 -3
- package/dist/cjs/sync/storage.native.js +1 -1
- package/dist/cjs/sync/storage.native.js.map +1 -1
- package/dist/cjs/sync/subscriptionManager.cjs +255 -65
- package/dist/cjs/sync/subscriptionManager.native.js +330 -93
- package/dist/cjs/sync/subscriptionManager.native.js.map +1 -1
- package/dist/cjs/sync/types.cjs +2 -0
- package/dist/cjs/sync/types.native.js +2 -0
- package/dist/cjs/sync/types.native.js.map +1 -1
- package/dist/cjs/sync/virtualPageManager.cjs +9 -9
- package/dist/cjs/sync/virtualPageManager.native.js +5 -9
- package/dist/cjs/sync/virtualPageManager.native.js.map +1 -1
- package/dist/cjs/useLiveQuery.cjs +52 -0
- package/dist/cjs/useLiveQuery.native.js +59 -0
- package/dist/cjs/useLiveQuery.native.js.map +1 -0
- package/dist/cjs/util.cjs +11 -2
- package/dist/cjs/util.native.js +16 -2
- package/dist/cjs/util.native.js.map +1 -1
- package/dist/esm/auth.mjs +1 -1
- package/dist/esm/auth.mjs.map +1 -1
- package/dist/esm/auth.native.js.map +1 -1
- package/dist/esm/call.mjs +1 -1
- package/dist/esm/call.mjs.map +1 -1
- package/dist/esm/call.native.js.map +1 -1
- package/dist/esm/collection.mjs +18 -4
- package/dist/esm/collection.mjs.map +1 -1
- package/dist/esm/collection.native.js +18 -4
- package/dist/esm/collection.native.js.map +1 -1
- package/dist/esm/core/http.mjs +93 -10
- package/dist/esm/core/http.mjs.map +1 -1
- package/dist/esm/core/http.native.js +97 -8
- package/dist/esm/core/http.native.js.map +1 -1
- package/dist/esm/db.mjs +7 -7
- package/dist/esm/db.mjs.map +1 -1
- package/dist/esm/db.native.js +4 -4
- package/dist/esm/db.native.js.map +1 -1
- package/dist/esm/doctype.mjs +96 -39
- package/dist/esm/doctype.mjs.map +1 -1
- package/dist/esm/doctype.native.js +115 -46
- package/dist/esm/doctype.native.js.map +1 -1
- package/dist/esm/file.mjs +1 -1
- package/dist/esm/file.mjs.map +1 -1
- package/dist/esm/file.native.js.map +1 -1
- package/dist/esm/fixtureDb.mjs +3 -2
- package/dist/esm/fixtureDb.mjs.map +1 -1
- package/dist/esm/fixtureDb.native.js +2 -1
- package/dist/esm/fixtureDb.native.js.map +1 -1
- package/dist/esm/frappeApp.mjs +15 -14
- package/dist/esm/frappeApp.mjs.map +1 -1
- package/dist/esm/frappeApp.native.js +16 -14
- package/dist/esm/frappeApp.native.js.map +1 -1
- package/dist/esm/frappeReact.mjs +197 -19
- package/dist/esm/frappeReact.mjs.map +1 -1
- package/dist/esm/frappeReact.native.js +240 -19
- package/dist/esm/frappeReact.native.js.map +1 -1
- package/dist/esm/index.mjs +5 -4
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +5 -4
- package/dist/esm/index.native.js.map +1 -1
- package/dist/esm/pacer.mjs +1 -1
- package/dist/esm/pacer.native.js +1 -1
- package/dist/esm/realtime.mjs +187 -47
- package/dist/esm/realtime.mjs.map +1 -1
- package/dist/esm/realtime.native.js +269 -49
- package/dist/esm/realtime.native.js.map +1 -1
- package/dist/esm/sync/backfill.mjs +32 -27
- package/dist/esm/sync/backfill.mjs.map +1 -1
- package/dist/esm/sync/backfill.native.js +49 -43
- package/dist/esm/sync/backfill.native.js.map +1 -1
- package/dist/esm/sync/index.mjs +90 -24
- package/dist/esm/sync/index.mjs.map +1 -1
- package/dist/esm/sync/index.native.js +112 -10
- package/dist/esm/sync/index.native.js.map +1 -1
- package/dist/esm/sync/merge.mjs +1 -1
- package/dist/esm/sync/merge.mjs.map +1 -1
- package/dist/esm/sync/merge.native.js +1 -1
- package/dist/esm/sync/merge.native.js.map +1 -1
- package/dist/esm/sync/mutationEngine.mjs +25 -19
- package/dist/esm/sync/mutationEngine.mjs.map +1 -1
- package/dist/esm/sync/mutationEngine.native.js +16 -13
- package/dist/esm/sync/mutationEngine.native.js.map +1 -1
- package/dist/esm/sync/mutationJournal.mjs +9 -4
- package/dist/esm/sync/mutationJournal.mjs.map +1 -1
- package/dist/esm/sync/mutationJournal.native.js +7 -4
- package/dist/esm/sync/mutationJournal.native.js.map +1 -1
- package/dist/esm/sync/normalizedCache.mjs +7 -3
- package/dist/esm/sync/normalizedCache.mjs.map +1 -1
- package/dist/esm/sync/normalizedCache.native.js +7 -2
- package/dist/esm/sync/normalizedCache.native.js.map +1 -1
- package/dist/esm/sync/persistence.mjs +64 -32
- package/dist/esm/sync/persistence.mjs.map +1 -1
- package/dist/esm/sync/persistence.native.js +121 -64
- package/dist/esm/sync/persistence.native.js.map +1 -1
- package/dist/esm/sync/realtime.mjs +124 -13
- package/dist/esm/sync/realtime.mjs.map +1 -1
- package/dist/esm/sync/realtime.native.js +163 -20
- package/dist/esm/sync/realtime.native.js.map +1 -1
- package/dist/esm/sync/rehydration.mjs +16 -10
- package/dist/esm/sync/rehydration.mjs.map +1 -1
- package/dist/esm/sync/rehydration.native.js +16 -14
- package/dist/esm/sync/rehydration.native.js.map +1 -1
- package/dist/esm/sync/storage.mjs +3 -3
- package/dist/esm/sync/storage.mjs.map +1 -1
- package/dist/esm/sync/storage.native.js +1 -1
- package/dist/esm/sync/storage.native.js.map +1 -1
- package/dist/esm/sync/subscriptionManager.mjs +255 -65
- package/dist/esm/sync/subscriptionManager.mjs.map +1 -1
- package/dist/esm/sync/subscriptionManager.native.js +330 -93
- package/dist/esm/sync/subscriptionManager.native.js.map +1 -1
- package/dist/esm/sync/types.mjs +2 -0
- package/dist/esm/sync/types.mjs.map +1 -1
- package/dist/esm/sync/types.native.js +2 -0
- package/dist/esm/sync/types.native.js.map +1 -1
- package/dist/esm/sync/virtualPageManager.mjs +9 -9
- package/dist/esm/sync/virtualPageManager.mjs.map +1 -1
- package/dist/esm/sync/virtualPageManager.native.js +5 -9
- package/dist/esm/sync/virtualPageManager.native.js.map +1 -1
- package/dist/esm/useLiveQuery.mjs +26 -0
- package/dist/esm/useLiveQuery.mjs.map +1 -0
- package/dist/esm/useLiveQuery.native.js +30 -0
- package/dist/esm/useLiveQuery.native.js.map +1 -0
- package/dist/esm/util.mjs +11 -3
- package/dist/esm/util.mjs.map +1 -1
- package/dist/esm/util.native.js +16 -3
- package/dist/esm/util.native.js.map +1 -1
- package/dist/jsx/auth.mjs +1 -1
- package/dist/jsx/auth.mjs.map +1 -1
- package/dist/jsx/auth.native.js.map +1 -1
- package/dist/jsx/call.mjs +1 -1
- package/dist/jsx/call.mjs.map +1 -1
- package/dist/jsx/call.native.js.map +1 -1
- package/dist/jsx/collection.mjs +18 -4
- package/dist/jsx/collection.mjs.map +1 -1
- package/dist/jsx/collection.native.js +18 -4
- package/dist/jsx/collection.native.js.map +1 -1
- package/dist/jsx/core/http.mjs +93 -10
- package/dist/jsx/core/http.mjs.map +1 -1
- package/dist/jsx/core/http.native.js +96 -7
- package/dist/jsx/core/http.native.js.map +1 -1
- package/dist/jsx/db.mjs +7 -7
- package/dist/jsx/db.mjs.map +1 -1
- package/dist/jsx/db.native.js +4 -4
- package/dist/jsx/db.native.js.map +1 -1
- package/dist/jsx/doctype.mjs +96 -39
- package/dist/jsx/doctype.mjs.map +1 -1
- package/dist/jsx/doctype.native.js +116 -46
- package/dist/jsx/doctype.native.js.map +1 -1
- package/dist/jsx/file.mjs +1 -1
- package/dist/jsx/file.mjs.map +1 -1
- package/dist/jsx/file.native.js.map +1 -1
- package/dist/jsx/fixtureDb.mjs +3 -2
- package/dist/jsx/fixtureDb.mjs.map +1 -1
- package/dist/jsx/fixtureDb.native.js +2 -1
- package/dist/jsx/fixtureDb.native.js.map +1 -1
- package/dist/jsx/frappeApp.mjs +15 -14
- package/dist/jsx/frappeApp.mjs.map +1 -1
- package/dist/jsx/frappeApp.native.js +16 -14
- package/dist/jsx/frappeApp.native.js.map +1 -1
- package/dist/jsx/frappeReact.mjs +197 -19
- package/dist/jsx/frappeReact.mjs.map +1 -1
- package/dist/jsx/frappeReact.native.js +241 -18
- package/dist/jsx/frappeReact.native.js.map +1 -1
- package/dist/jsx/index.js +5 -4
- package/dist/jsx/index.js.map +1 -1
- package/dist/jsx/index.mjs +5 -4
- package/dist/jsx/index.mjs.map +1 -1
- package/dist/jsx/index.native.js +9 -4
- package/dist/jsx/index.native.js.map +1 -1
- package/dist/jsx/pacer.mjs +1 -1
- package/dist/jsx/pacer.native.js +2 -2
- package/dist/jsx/pacer.native.js.map +1 -1
- package/dist/jsx/realtime.mjs +187 -47
- package/dist/jsx/realtime.mjs.map +1 -1
- package/dist/jsx/realtime.native.js +268 -48
- package/dist/jsx/realtime.native.js.map +1 -1
- package/dist/jsx/sync/backfill.mjs +32 -27
- package/dist/jsx/sync/backfill.mjs.map +1 -1
- package/dist/jsx/sync/backfill.native.js +49 -43
- package/dist/jsx/sync/backfill.native.js.map +1 -1
- package/dist/jsx/sync/index.mjs +90 -24
- package/dist/jsx/sync/index.mjs.map +1 -1
- package/dist/jsx/sync/index.native.js +112 -10
- package/dist/jsx/sync/index.native.js.map +1 -1
- package/dist/jsx/sync/merge.mjs +1 -1
- package/dist/jsx/sync/merge.mjs.map +1 -1
- package/dist/jsx/sync/merge.native.js +0 -3
- package/dist/jsx/sync/merge.native.js.map +1 -1
- package/dist/jsx/sync/mutationEngine.mjs +25 -19
- package/dist/jsx/sync/mutationEngine.mjs.map +1 -1
- package/dist/jsx/sync/mutationEngine.native.js +16 -13
- package/dist/jsx/sync/mutationEngine.native.js.map +1 -1
- package/dist/jsx/sync/mutationJournal.mjs +9 -4
- package/dist/jsx/sync/mutationJournal.mjs.map +1 -1
- package/dist/jsx/sync/mutationJournal.native.js +7 -4
- package/dist/jsx/sync/mutationJournal.native.js.map +1 -1
- package/dist/jsx/sync/normalizedCache.mjs +7 -3
- package/dist/jsx/sync/normalizedCache.mjs.map +1 -1
- package/dist/jsx/sync/normalizedCache.native.js +7 -2
- package/dist/jsx/sync/normalizedCache.native.js.map +1 -1
- package/dist/jsx/sync/persistence.mjs +64 -32
- package/dist/jsx/sync/persistence.mjs.map +1 -1
- package/dist/jsx/sync/persistence.native.js +120 -63
- package/dist/jsx/sync/persistence.native.js.map +1 -1
- package/dist/jsx/sync/realtime.mjs +124 -13
- package/dist/jsx/sync/realtime.mjs.map +1 -1
- package/dist/jsx/sync/realtime.native.js +163 -20
- package/dist/jsx/sync/realtime.native.js.map +1 -1
- package/dist/jsx/sync/rehydration.mjs +16 -10
- package/dist/jsx/sync/rehydration.mjs.map +1 -1
- package/dist/jsx/sync/rehydration.native.js +16 -14
- package/dist/jsx/sync/rehydration.native.js.map +1 -1
- package/dist/jsx/sync/storage.mjs +3 -3
- package/dist/jsx/sync/storage.mjs.map +1 -1
- package/dist/jsx/sync/storage.native.js +1 -1
- package/dist/jsx/sync/storage.native.js.map +1 -1
- package/dist/jsx/sync/subscriptionManager.mjs +255 -65
- package/dist/jsx/sync/subscriptionManager.mjs.map +1 -1
- package/dist/jsx/sync/subscriptionManager.native.js +330 -93
- package/dist/jsx/sync/subscriptionManager.native.js.map +1 -1
- package/dist/jsx/sync/types.mjs +2 -0
- package/dist/jsx/sync/types.mjs.map +1 -1
- package/dist/jsx/sync/types.native.js +2 -0
- package/dist/jsx/sync/types.native.js.map +1 -1
- package/dist/jsx/sync/virtualPageManager.mjs +9 -9
- package/dist/jsx/sync/virtualPageManager.mjs.map +1 -1
- package/dist/jsx/sync/virtualPageManager.native.js +5 -9
- package/dist/jsx/sync/virtualPageManager.native.js.map +1 -1
- package/dist/jsx/useLiveQuery.mjs +26 -0
- package/dist/jsx/useLiveQuery.mjs.map +1 -0
- package/dist/jsx/useLiveQuery.native.js +59 -0
- package/dist/jsx/useLiveQuery.native.js.map +1 -0
- package/dist/jsx/util.mjs +11 -3
- package/dist/jsx/util.mjs.map +1 -1
- package/dist/jsx/util.native.js +16 -2
- package/dist/jsx/util.native.js.map +1 -1
- package/package.json +20 -17
- package/src/auth.ts +5 -1
- package/src/call.ts +5 -1
- package/src/collection.spec.ts +55 -0
- package/src/collection.ts +33 -4
- package/src/core/http.spec.ts +66 -0
- package/src/core/http.ts +115 -9
- package/src/core/httpNative.spec.ts +234 -0
- package/src/core/types.ts +2 -0
- package/src/db.spec.ts +91 -51
- package/src/db.ts +27 -8
- package/src/doctype.spec.ts +247 -39
- package/src/doctype.ts +203 -53
- package/src/file.ts +5 -1
- package/src/fixtureDb.ts +13 -2
- package/src/frappeApp.ts +18 -19
- package/src/frappeReact.spec.ts +565 -1
- package/src/frappeReact.ts +446 -38
- package/src/frappeReactLiveQueryGc.spec.ts +320 -0
- package/src/frappeReactNative.spec.ts +65 -0
- package/src/index.ts +10 -9
- package/src/pacer.ts +2 -2
- package/src/realtime.spec.ts +464 -20
- package/src/realtime.ts +284 -46
- package/src/sync/backfill.spec.ts +43 -0
- package/src/sync/backfill.ts +59 -39
- package/src/sync/debug.spec.ts +36 -0
- package/src/sync/filterValidation.spec.ts +197 -0
- package/src/sync/index.ts +98 -7
- package/src/sync/merge.ts +3 -3
- package/src/sync/mutationEngine.spec.ts +36 -4
- package/src/sync/mutationEngine.ts +30 -11
- package/src/sync/mutationJournal.ts +18 -4
- package/src/sync/normalizedCache.spec.ts +102 -0
- package/src/sync/normalizedCache.ts +19 -3
- package/src/sync/offlineRestore.spec.ts +423 -0
- package/src/sync/persistence.spec.ts +39 -7
- package/src/sync/persistence.ts +90 -18
- package/src/sync/persistenceGjs.spec.ts +143 -0
- package/src/sync/persistenceNative.spec.ts +139 -0
- package/src/sync/realtime.spec.ts +18 -1
- package/src/sync/realtime.ts +161 -13
- package/src/sync/rehydration.ts +23 -5
- package/src/sync/storage.ts +5 -4
- package/src/sync/subscriptionManager.spec.ts +94 -0
- package/src/sync/subscriptionManager.ts +304 -82
- package/src/sync/syncModule.spec.ts +137 -0
- package/src/sync/types.ts +39 -0
- package/src/sync/virtualPageManager.ts +8 -4
- package/src/useLiveQuery.ts +58 -0
- package/src/util.spec.ts +35 -4
- package/src/util.ts +37 -2
- package/types/auth.d.ts +13 -0
- package/types/auth.d.ts.map +1 -0
- package/types/call.d.ts +10 -0
- package/types/call.d.ts.map +1 -0
- package/types/collection.d.ts +127 -0
- package/types/collection.d.ts.map +1 -0
- package/types/common/types.d.ts +35 -0
- package/types/common/types.d.ts.map +1 -0
- package/types/core/http.d.ts +86 -0
- package/types/core/http.d.ts.map +1 -0
- package/types/core/types.d.ts +74 -0
- package/types/core/types.d.ts.map +1 -0
- package/types/core/wire.d.ts +405 -0
- package/types/core/wire.d.ts.map +1 -0
- package/types/db.d.ts +244 -0
- package/types/db.d.ts.map +1 -0
- package/types/devtools/FrappeDevtoolsPanel.d.ts +7 -0
- package/types/devtools/FrappeDevtoolsPanel.d.ts.map +1 -0
- package/types/devtools/index.d.ts +4 -0
- package/types/devtools/index.d.ts.map +1 -0
- package/types/devtools/plugin.d.ts +9 -0
- package/types/devtools/plugin.d.ts.map +1 -0
- package/types/devtools/theme.d.ts +15 -0
- package/types/devtools/theme.d.ts.map +1 -0
- package/types/doctype.d.ts +256 -0
- package/types/doctype.d.ts.map +1 -0
- package/types/file.d.ts +15 -0
- package/types/file.d.ts.map +1 -0
- package/types/fixtureDb.d.ts +76 -0
- package/types/fixtureDb.d.ts.map +1 -0
- package/types/fixtures.d.ts +55 -0
- package/types/fixtures.d.ts.map +1 -0
- package/types/frappeApp.d.ts +45 -0
- package/types/frappeApp.d.ts.map +1 -0
- package/types/frappeReact.d.ts +270 -0
- package/types/frappeReact.d.ts.map +1 -0
- package/types/index.d.ts +44 -0
- package/types/index.d.ts.map +1 -0
- package/types/optimistic.d.ts +38 -0
- package/types/optimistic.d.ts.map +1 -0
- package/types/pacer.d.ts +193 -0
- package/types/pacer.d.ts.map +1 -0
- package/types/plugin/index.d.ts +11 -0
- package/types/plugin/index.d.ts.map +1 -0
- package/types/realtime.d.ts +121 -0
- package/types/realtime.d.ts.map +1 -0
- package/types/sync/backfill.d.ts +60 -0
- package/types/sync/backfill.d.ts.map +1 -0
- package/types/sync/filters.d.ts +101 -0
- package/types/sync/filters.d.ts.map +1 -0
- package/types/sync/index.d.ts +181 -0
- package/types/sync/index.d.ts.map +1 -0
- package/types/sync/merge.d.ts +59 -0
- package/types/sync/merge.d.ts.map +1 -0
- package/types/sync/mutationEngine.d.ts +117 -0
- package/types/sync/mutationEngine.d.ts.map +1 -0
- package/types/sync/mutationJournal.d.ts +60 -0
- package/types/sync/mutationJournal.d.ts.map +1 -0
- package/types/sync/normalizedCache.d.ts +59 -0
- package/types/sync/normalizedCache.d.ts.map +1 -0
- package/types/sync/persistence.d.ts +185 -0
- package/types/sync/persistence.d.ts.map +1 -0
- package/types/sync/realtime.d.ts +121 -0
- package/types/sync/realtime.d.ts.map +1 -0
- package/types/sync/rehydration.d.ts +109 -0
- package/types/sync/rehydration.d.ts.map +1 -0
- package/types/sync/storage.d.ts +65 -0
- package/types/sync/storage.d.ts.map +1 -0
- package/types/sync/subscriptionManager.d.ts +161 -0
- package/types/sync/subscriptionManager.d.ts.map +1 -0
- package/types/sync/types.d.ts +435 -0
- package/types/sync/types.d.ts.map +1 -0
- package/types/sync/virtualPageManager.d.ts +190 -0
- package/types/sync/virtualPageManager.d.ts.map +1 -0
- package/types/useLiveQuery.d.ts +16 -0
- package/types/useLiveQuery.d.ts.map +1 -0
- package/types/util.d.ts +24 -0
- package/types/util.d.ts.map +1 -0
- package/dist/cjs/auth.spec.cjs +0 -322
- package/dist/cjs/auth.spec.native.js +0 -329
- package/dist/cjs/auth.spec.native.js.map +0 -1
- package/dist/cjs/call.spec.cjs +0 -427
- package/dist/cjs/call.spec.native.js +0 -430
- package/dist/cjs/call.spec.native.js.map +0 -1
- package/dist/cjs/collection.spec.cjs +0 -186
- package/dist/cjs/collection.spec.native.js +0 -216
- package/dist/cjs/collection.spec.native.js.map +0 -1
- package/dist/cjs/common/types.spec.cjs +0 -266
- package/dist/cjs/common/types.spec.native.js +0 -271
- package/dist/cjs/common/types.spec.native.js.map +0 -1
- package/dist/cjs/core/http.spec.cjs +0 -1259
- package/dist/cjs/core/http.spec.native.js +0 -1401
- package/dist/cjs/core/http.spec.native.js.map +0 -1
- package/dist/cjs/core/wire.spec.cjs +0 -478
- package/dist/cjs/core/wire.spec.native.js +0 -482
- package/dist/cjs/core/wire.spec.native.js.map +0 -1
- package/dist/cjs/db.spec.cjs +0 -862
- package/dist/cjs/db.spec.native.js +0 -865
- package/dist/cjs/db.spec.native.js.map +0 -1
- package/dist/cjs/doctype.spec.cjs +0 -460
- package/dist/cjs/doctype.spec.native.js +0 -538
- package/dist/cjs/doctype.spec.native.js.map +0 -1
- package/dist/cjs/file.spec.cjs +0 -315
- package/dist/cjs/file.spec.native.js +0 -342
- package/dist/cjs/file.spec.native.js.map +0 -1
- package/dist/cjs/frappeApp.spec.cjs +0 -306
- package/dist/cjs/frappeApp.spec.native.js +0 -308
- package/dist/cjs/frappeApp.spec.native.js.map +0 -1
- package/dist/cjs/frappeReact.spec.cjs +0 -531
- package/dist/cjs/frappeReact.spec.native.js +0 -670
- package/dist/cjs/frappeReact.spec.native.js.map +0 -1
- package/dist/cjs/optimistic.spec.cjs +0 -11
- package/dist/cjs/optimistic.spec.native.js +0 -19
- package/dist/cjs/optimistic.spec.native.js.map +0 -1
- package/dist/cjs/pacer.spec.cjs +0 -470
- package/dist/cjs/pacer.spec.native.js +0 -537
- package/dist/cjs/pacer.spec.native.js.map +0 -1
- package/dist/cjs/realtime.spec.cjs +0 -326
- package/dist/cjs/realtime.spec.native.js +0 -392
- package/dist/cjs/realtime.spec.native.js.map +0 -1
- package/dist/cjs/sync/backfill.spec.cjs +0 -586
- package/dist/cjs/sync/backfill.spec.native.js +0 -712
- package/dist/cjs/sync/backfill.spec.native.js.map +0 -1
- package/dist/cjs/sync/debug.spec.cjs +0 -125
- package/dist/cjs/sync/debug.spec.native.js +0 -133
- package/dist/cjs/sync/debug.spec.native.js.map +0 -1
- package/dist/cjs/sync/filters.spec.cjs +0 -168
- package/dist/cjs/sync/filters.spec.native.js +0 -173
- package/dist/cjs/sync/filters.spec.native.js.map +0 -1
- package/dist/cjs/sync/merge.spec.cjs +0 -908
- package/dist/cjs/sync/merge.spec.native.js +0 -937
- package/dist/cjs/sync/merge.spec.native.js.map +0 -1
- package/dist/cjs/sync/multiOrderBy.spec.cjs +0 -165
- package/dist/cjs/sync/multiOrderBy.spec.native.js +0 -229
- package/dist/cjs/sync/multiOrderBy.spec.native.js.map +0 -1
- package/dist/cjs/sync/mutationEngine.spec.cjs +0 -1158
- package/dist/cjs/sync/mutationEngine.spec.native.js +0 -1173
- package/dist/cjs/sync/mutationEngine.spec.native.js.map +0 -1
- package/dist/cjs/sync/mutationJournal.spec.cjs +0 -330
- package/dist/cjs/sync/mutationJournal.spec.native.js +0 -333
- package/dist/cjs/sync/mutationJournal.spec.native.js.map +0 -1
- package/dist/cjs/sync/mutations.spec.cjs +0 -327
- package/dist/cjs/sync/mutations.spec.native.js +0 -330
- package/dist/cjs/sync/mutations.spec.native.js.map +0 -1
- package/dist/cjs/sync/normalizedCache.spec.cjs +0 -302
- package/dist/cjs/sync/normalizedCache.spec.native.js +0 -311
- package/dist/cjs/sync/normalizedCache.spec.native.js.map +0 -1
- package/dist/cjs/sync/persistence.spec.cjs +0 -562
- package/dist/cjs/sync/persistence.spec.native.js +0 -572
- package/dist/cjs/sync/persistence.spec.native.js.map +0 -1
- package/dist/cjs/sync/realtime.spec.cjs +0 -499
- package/dist/cjs/sync/realtime.spec.native.js +0 -512
- package/dist/cjs/sync/realtime.spec.native.js.map +0 -1
- package/dist/cjs/sync/rehydration.spec.cjs +0 -731
- package/dist/cjs/sync/rehydration.spec.native.js +0 -736
- package/dist/cjs/sync/rehydration.spec.native.js.map +0 -1
- package/dist/cjs/sync/storage.spec.cjs +0 -446
- package/dist/cjs/sync/storage.spec.native.js +0 -470
- package/dist/cjs/sync/storage.spec.native.js.map +0 -1
- package/dist/cjs/sync/subscriptionManager.spec.cjs +0 -1102
- package/dist/cjs/sync/subscriptionManager.spec.native.js +0 -1136
- package/dist/cjs/sync/subscriptionManager.spec.native.js.map +0 -1
- package/dist/cjs/sync/subscriptions.spec.cjs +0 -937
- package/dist/cjs/sync/subscriptions.spec.native.js +0 -969
- package/dist/cjs/sync/subscriptions.spec.native.js.map +0 -1
- package/dist/cjs/sync/syncModule.spec.cjs +0 -206
- package/dist/cjs/sync/syncModule.spec.native.js +0 -222
- package/dist/cjs/sync/syncModule.spec.native.js.map +0 -1
- package/dist/cjs/sync/types.spec.cjs +0 -246
- package/dist/cjs/sync/types.spec.native.js +0 -256
- package/dist/cjs/sync/types.spec.native.js.map +0 -1
- package/dist/cjs/sync/virtualPageManager.spec.cjs +0 -801
- package/dist/cjs/sync/virtualPageManager.spec.native.js +0 -873
- package/dist/cjs/sync/virtualPageManager.spec.native.js.map +0 -1
- package/dist/cjs/util.spec.cjs +0 -43
- package/dist/cjs/util.spec.native.js +0 -48
- package/dist/cjs/util.spec.native.js.map +0 -1
- package/dist/esm/auth.spec.mjs +0 -323
- package/dist/esm/auth.spec.mjs.map +0 -1
- package/dist/esm/auth.spec.native.js +0 -327
- package/dist/esm/auth.spec.native.js.map +0 -1
- package/dist/esm/call.spec.mjs +0 -428
- package/dist/esm/call.spec.mjs.map +0 -1
- package/dist/esm/call.spec.native.js +0 -428
- package/dist/esm/call.spec.native.js.map +0 -1
- package/dist/esm/collection.spec.mjs +0 -187
- package/dist/esm/collection.spec.mjs.map +0 -1
- package/dist/esm/collection.spec.native.js +0 -214
- package/dist/esm/collection.spec.native.js.map +0 -1
- package/dist/esm/common/types.spec.mjs +0 -267
- package/dist/esm/common/types.spec.mjs.map +0 -1
- package/dist/esm/common/types.spec.native.js +0 -269
- package/dist/esm/common/types.spec.native.js.map +0 -1
- package/dist/esm/core/http.spec.mjs +0 -1260
- package/dist/esm/core/http.spec.mjs.map +0 -1
- package/dist/esm/core/http.spec.native.js +0 -1399
- package/dist/esm/core/http.spec.native.js.map +0 -1
- package/dist/esm/core/wire.spec.mjs +0 -479
- package/dist/esm/core/wire.spec.mjs.map +0 -1
- package/dist/esm/core/wire.spec.native.js +0 -480
- package/dist/esm/core/wire.spec.native.js.map +0 -1
- package/dist/esm/db.spec.mjs +0 -863
- package/dist/esm/db.spec.mjs.map +0 -1
- package/dist/esm/db.spec.native.js +0 -863
- package/dist/esm/db.spec.native.js.map +0 -1
- package/dist/esm/doctype.spec.mjs +0 -461
- package/dist/esm/doctype.spec.mjs.map +0 -1
- package/dist/esm/doctype.spec.native.js +0 -536
- package/dist/esm/doctype.spec.native.js.map +0 -1
- package/dist/esm/file.spec.mjs +0 -316
- package/dist/esm/file.spec.mjs.map +0 -1
- package/dist/esm/file.spec.native.js +0 -340
- package/dist/esm/file.spec.native.js.map +0 -1
- package/dist/esm/frappeApp.spec.mjs +0 -307
- package/dist/esm/frappeApp.spec.mjs.map +0 -1
- package/dist/esm/frappeApp.spec.native.js +0 -306
- package/dist/esm/frappeApp.spec.native.js.map +0 -1
- package/dist/esm/frappeReact.spec.mjs +0 -532
- package/dist/esm/frappeReact.spec.mjs.map +0 -1
- package/dist/esm/frappeReact.spec.native.js +0 -668
- package/dist/esm/frappeReact.spec.native.js.map +0 -1
- package/dist/esm/optimistic.spec.mjs +0 -12
- package/dist/esm/optimistic.spec.mjs.map +0 -1
- package/dist/esm/optimistic.spec.native.js +0 -17
- package/dist/esm/optimistic.spec.native.js.map +0 -1
- package/dist/esm/pacer.spec.mjs +0 -447
- package/dist/esm/pacer.spec.mjs.map +0 -1
- package/dist/esm/pacer.spec.native.js +0 -511
- package/dist/esm/pacer.spec.native.js.map +0 -1
- package/dist/esm/realtime.spec.mjs +0 -327
- package/dist/esm/realtime.spec.mjs.map +0 -1
- package/dist/esm/realtime.spec.native.js +0 -390
- package/dist/esm/realtime.spec.native.js.map +0 -1
- package/dist/esm/sync/backfill.spec.mjs +0 -563
- package/dist/esm/sync/backfill.spec.mjs.map +0 -1
- package/dist/esm/sync/backfill.spec.native.js +0 -686
- package/dist/esm/sync/backfill.spec.native.js.map +0 -1
- package/dist/esm/sync/debug.spec.mjs +0 -102
- package/dist/esm/sync/debug.spec.mjs.map +0 -1
- package/dist/esm/sync/debug.spec.native.js +0 -107
- package/dist/esm/sync/debug.spec.native.js.map +0 -1
- package/dist/esm/sync/filters.spec.mjs +0 -169
- package/dist/esm/sync/filters.spec.mjs.map +0 -1
- package/dist/esm/sync/filters.spec.native.js +0 -171
- package/dist/esm/sync/filters.spec.native.js.map +0 -1
- package/dist/esm/sync/merge.spec.mjs +0 -909
- package/dist/esm/sync/merge.spec.mjs.map +0 -1
- package/dist/esm/sync/merge.spec.native.js +0 -935
- package/dist/esm/sync/merge.spec.native.js.map +0 -1
- package/dist/esm/sync/multiOrderBy.spec.mjs +0 -166
- package/dist/esm/sync/multiOrderBy.spec.mjs.map +0 -1
- package/dist/esm/sync/multiOrderBy.spec.native.js +0 -227
- package/dist/esm/sync/multiOrderBy.spec.native.js.map +0 -1
- package/dist/esm/sync/mutationEngine.spec.mjs +0 -1159
- package/dist/esm/sync/mutationEngine.spec.mjs.map +0 -1
- package/dist/esm/sync/mutationEngine.spec.native.js +0 -1171
- package/dist/esm/sync/mutationEngine.spec.native.js.map +0 -1
- package/dist/esm/sync/mutationJournal.spec.mjs +0 -331
- package/dist/esm/sync/mutationJournal.spec.mjs.map +0 -1
- package/dist/esm/sync/mutationJournal.spec.native.js +0 -331
- package/dist/esm/sync/mutationJournal.spec.native.js.map +0 -1
- package/dist/esm/sync/mutations.spec.mjs +0 -328
- package/dist/esm/sync/mutations.spec.mjs.map +0 -1
- package/dist/esm/sync/mutations.spec.native.js +0 -328
- package/dist/esm/sync/mutations.spec.native.js.map +0 -1
- package/dist/esm/sync/normalizedCache.spec.mjs +0 -303
- package/dist/esm/sync/normalizedCache.spec.mjs.map +0 -1
- package/dist/esm/sync/normalizedCache.spec.native.js +0 -309
- package/dist/esm/sync/normalizedCache.spec.native.js.map +0 -1
- package/dist/esm/sync/persistence.spec.mjs +0 -563
- package/dist/esm/sync/persistence.spec.mjs.map +0 -1
- package/dist/esm/sync/persistence.spec.native.js +0 -570
- package/dist/esm/sync/persistence.spec.native.js.map +0 -1
- package/dist/esm/sync/realtime.spec.mjs +0 -500
- package/dist/esm/sync/realtime.spec.mjs.map +0 -1
- package/dist/esm/sync/realtime.spec.native.js +0 -510
- package/dist/esm/sync/realtime.spec.native.js.map +0 -1
- package/dist/esm/sync/rehydration.spec.mjs +0 -732
- package/dist/esm/sync/rehydration.spec.mjs.map +0 -1
- package/dist/esm/sync/rehydration.spec.native.js +0 -734
- package/dist/esm/sync/rehydration.spec.native.js.map +0 -1
- package/dist/esm/sync/storage.spec.mjs +0 -423
- package/dist/esm/sync/storage.spec.mjs.map +0 -1
- package/dist/esm/sync/storage.spec.native.js +0 -444
- package/dist/esm/sync/storage.spec.native.js.map +0 -1
- package/dist/esm/sync/subscriptionManager.spec.mjs +0 -1079
- package/dist/esm/sync/subscriptionManager.spec.mjs.map +0 -1
- package/dist/esm/sync/subscriptionManager.spec.native.js +0 -1110
- package/dist/esm/sync/subscriptionManager.spec.native.js.map +0 -1
- package/dist/esm/sync/subscriptions.spec.mjs +0 -914
- package/dist/esm/sync/subscriptions.spec.mjs.map +0 -1
- package/dist/esm/sync/subscriptions.spec.native.js +0 -943
- package/dist/esm/sync/subscriptions.spec.native.js.map +0 -1
- package/dist/esm/sync/syncModule.spec.mjs +0 -207
- package/dist/esm/sync/syncModule.spec.mjs.map +0 -1
- package/dist/esm/sync/syncModule.spec.native.js +0 -220
- package/dist/esm/sync/syncModule.spec.native.js.map +0 -1
- package/dist/esm/sync/types.spec.mjs +0 -247
- package/dist/esm/sync/types.spec.mjs.map +0 -1
- package/dist/esm/sync/types.spec.native.js +0 -254
- package/dist/esm/sync/types.spec.native.js.map +0 -1
- package/dist/esm/sync/virtualPageManager.spec.mjs +0 -802
- package/dist/esm/sync/virtualPageManager.spec.mjs.map +0 -1
- package/dist/esm/sync/virtualPageManager.spec.native.js +0 -871
- package/dist/esm/sync/virtualPageManager.spec.native.js.map +0 -1
- package/dist/esm/util.spec.mjs +0 -20
- package/dist/esm/util.spec.mjs.map +0 -1
- package/dist/esm/util.spec.native.js +0 -22
- package/dist/esm/util.spec.native.js.map +0 -1
- package/dist/jsx/auth.spec.mjs +0 -323
- package/dist/jsx/auth.spec.mjs.map +0 -1
- package/dist/jsx/auth.spec.native.js +0 -329
- package/dist/jsx/auth.spec.native.js.map +0 -1
- package/dist/jsx/call.spec.mjs +0 -428
- package/dist/jsx/call.spec.mjs.map +0 -1
- package/dist/jsx/call.spec.native.js +0 -430
- package/dist/jsx/call.spec.native.js.map +0 -1
- package/dist/jsx/collection.spec.mjs +0 -187
- package/dist/jsx/collection.spec.mjs.map +0 -1
- package/dist/jsx/collection.spec.native.js +0 -216
- package/dist/jsx/collection.spec.native.js.map +0 -1
- package/dist/jsx/common/types.spec.mjs +0 -267
- package/dist/jsx/common/types.spec.mjs.map +0 -1
- package/dist/jsx/common/types.spec.native.js +0 -271
- package/dist/jsx/common/types.spec.native.js.map +0 -1
- package/dist/jsx/core/http.spec.mjs +0 -1260
- package/dist/jsx/core/http.spec.mjs.map +0 -1
- package/dist/jsx/core/http.spec.native.js +0 -1401
- package/dist/jsx/core/http.spec.native.js.map +0 -1
- package/dist/jsx/core/wire.spec.mjs +0 -479
- package/dist/jsx/core/wire.spec.mjs.map +0 -1
- package/dist/jsx/core/wire.spec.native.js +0 -482
- package/dist/jsx/core/wire.spec.native.js.map +0 -1
- package/dist/jsx/db.spec.mjs +0 -863
- package/dist/jsx/db.spec.mjs.map +0 -1
- package/dist/jsx/db.spec.native.js +0 -865
- package/dist/jsx/db.spec.native.js.map +0 -1
- package/dist/jsx/doctype.spec.mjs +0 -461
- package/dist/jsx/doctype.spec.mjs.map +0 -1
- package/dist/jsx/doctype.spec.native.js +0 -538
- package/dist/jsx/doctype.spec.native.js.map +0 -1
- package/dist/jsx/file.spec.mjs +0 -316
- package/dist/jsx/file.spec.mjs.map +0 -1
- package/dist/jsx/file.spec.native.js +0 -342
- package/dist/jsx/file.spec.native.js.map +0 -1
- package/dist/jsx/frappeApp.spec.mjs +0 -307
- package/dist/jsx/frappeApp.spec.mjs.map +0 -1
- package/dist/jsx/frappeApp.spec.native.js +0 -308
- package/dist/jsx/frappeApp.spec.native.js.map +0 -1
- package/dist/jsx/frappeReact.spec.mjs +0 -532
- package/dist/jsx/frappeReact.spec.mjs.map +0 -1
- package/dist/jsx/frappeReact.spec.native.js +0 -670
- package/dist/jsx/frappeReact.spec.native.js.map +0 -1
- package/dist/jsx/optimistic.spec.mjs +0 -12
- package/dist/jsx/optimistic.spec.mjs.map +0 -1
- package/dist/jsx/optimistic.spec.native.js +0 -19
- package/dist/jsx/optimistic.spec.native.js.map +0 -1
- package/dist/jsx/pacer.spec.mjs +0 -447
- package/dist/jsx/pacer.spec.mjs.map +0 -1
- package/dist/jsx/pacer.spec.native.js +0 -537
- package/dist/jsx/pacer.spec.native.js.map +0 -1
- package/dist/jsx/realtime.spec.mjs +0 -327
- package/dist/jsx/realtime.spec.mjs.map +0 -1
- package/dist/jsx/realtime.spec.native.js +0 -392
- package/dist/jsx/realtime.spec.native.js.map +0 -1
- package/dist/jsx/sync/backfill.spec.mjs +0 -563
- package/dist/jsx/sync/backfill.spec.mjs.map +0 -1
- package/dist/jsx/sync/backfill.spec.native.js +0 -712
- package/dist/jsx/sync/backfill.spec.native.js.map +0 -1
- package/dist/jsx/sync/debug.spec.mjs +0 -102
- package/dist/jsx/sync/debug.spec.mjs.map +0 -1
- package/dist/jsx/sync/debug.spec.native.js +0 -133
- package/dist/jsx/sync/debug.spec.native.js.map +0 -1
- package/dist/jsx/sync/filters.spec.mjs +0 -169
- package/dist/jsx/sync/filters.spec.mjs.map +0 -1
- package/dist/jsx/sync/filters.spec.native.js +0 -173
- package/dist/jsx/sync/filters.spec.native.js.map +0 -1
- package/dist/jsx/sync/merge.spec.mjs +0 -909
- package/dist/jsx/sync/merge.spec.mjs.map +0 -1
- package/dist/jsx/sync/merge.spec.native.js +0 -937
- package/dist/jsx/sync/merge.spec.native.js.map +0 -1
- package/dist/jsx/sync/multiOrderBy.spec.mjs +0 -166
- package/dist/jsx/sync/multiOrderBy.spec.mjs.map +0 -1
- package/dist/jsx/sync/multiOrderBy.spec.native.js +0 -229
- package/dist/jsx/sync/multiOrderBy.spec.native.js.map +0 -1
- package/dist/jsx/sync/mutationEngine.spec.mjs +0 -1159
- package/dist/jsx/sync/mutationEngine.spec.mjs.map +0 -1
- package/dist/jsx/sync/mutationEngine.spec.native.js +0 -1173
- package/dist/jsx/sync/mutationEngine.spec.native.js.map +0 -1
- package/dist/jsx/sync/mutationJournal.spec.mjs +0 -331
- package/dist/jsx/sync/mutationJournal.spec.mjs.map +0 -1
- package/dist/jsx/sync/mutationJournal.spec.native.js +0 -333
- package/dist/jsx/sync/mutationJournal.spec.native.js.map +0 -1
- package/dist/jsx/sync/mutations.spec.mjs +0 -328
- package/dist/jsx/sync/mutations.spec.mjs.map +0 -1
- package/dist/jsx/sync/mutations.spec.native.js +0 -330
- package/dist/jsx/sync/mutations.spec.native.js.map +0 -1
- package/dist/jsx/sync/normalizedCache.spec.mjs +0 -303
- package/dist/jsx/sync/normalizedCache.spec.mjs.map +0 -1
- package/dist/jsx/sync/normalizedCache.spec.native.js +0 -311
- package/dist/jsx/sync/normalizedCache.spec.native.js.map +0 -1
- package/dist/jsx/sync/persistence.spec.mjs +0 -563
- package/dist/jsx/sync/persistence.spec.mjs.map +0 -1
- package/dist/jsx/sync/persistence.spec.native.js +0 -572
- package/dist/jsx/sync/persistence.spec.native.js.map +0 -1
- package/dist/jsx/sync/realtime.spec.mjs +0 -500
- package/dist/jsx/sync/realtime.spec.mjs.map +0 -1
- package/dist/jsx/sync/realtime.spec.native.js +0 -512
- package/dist/jsx/sync/realtime.spec.native.js.map +0 -1
- package/dist/jsx/sync/rehydration.spec.mjs +0 -732
- package/dist/jsx/sync/rehydration.spec.mjs.map +0 -1
- package/dist/jsx/sync/rehydration.spec.native.js +0 -736
- package/dist/jsx/sync/rehydration.spec.native.js.map +0 -1
- package/dist/jsx/sync/storage.spec.mjs +0 -423
- package/dist/jsx/sync/storage.spec.mjs.map +0 -1
- package/dist/jsx/sync/storage.spec.native.js +0 -470
- package/dist/jsx/sync/storage.spec.native.js.map +0 -1
- package/dist/jsx/sync/subscriptionManager.spec.mjs +0 -1079
- package/dist/jsx/sync/subscriptionManager.spec.mjs.map +0 -1
- package/dist/jsx/sync/subscriptionManager.spec.native.js +0 -1136
- package/dist/jsx/sync/subscriptionManager.spec.native.js.map +0 -1
- package/dist/jsx/sync/subscriptions.spec.mjs +0 -914
- package/dist/jsx/sync/subscriptions.spec.mjs.map +0 -1
- package/dist/jsx/sync/subscriptions.spec.native.js +0 -969
- package/dist/jsx/sync/subscriptions.spec.native.js.map +0 -1
- package/dist/jsx/sync/syncModule.spec.mjs +0 -207
- package/dist/jsx/sync/syncModule.spec.mjs.map +0 -1
- package/dist/jsx/sync/syncModule.spec.native.js +0 -222
- package/dist/jsx/sync/syncModule.spec.native.js.map +0 -1
- package/dist/jsx/sync/types.spec.mjs +0 -247
- package/dist/jsx/sync/types.spec.mjs.map +0 -1
- package/dist/jsx/sync/types.spec.native.js +0 -256
- package/dist/jsx/sync/types.spec.native.js.map +0 -1
- package/dist/jsx/sync/virtualPageManager.spec.mjs +0 -802
- package/dist/jsx/sync/virtualPageManager.spec.mjs.map +0 -1
- package/dist/jsx/sync/virtualPageManager.spec.native.js +0 -873
- package/dist/jsx/sync/virtualPageManager.spec.native.js.map +0 -1
- package/dist/jsx/util.spec.mjs +0 -20
- package/dist/jsx/util.spec.mjs.map +0 -1
- package/dist/jsx/util.spec.native.js +0 -48
- package/dist/jsx/util.spec.native.js.map +0 -1
|
@@ -3,6 +3,25 @@ import { extractSingleName, matchesFilters } from "./filters.mjs";
|
|
|
3
3
|
import { BackfillScope, Order } from "./types.mjs";
|
|
4
4
|
import { VirtualPageManager } from "./virtualPageManager.mjs";
|
|
5
5
|
class SubscriptionManager {
|
|
6
|
+
subscriptions = /* @__PURE__ */new Map();
|
|
7
|
+
virtualPageManager;
|
|
8
|
+
backfillManager;
|
|
9
|
+
/** Maps a stable query key to an existing subscriptionId for dedup */
|
|
10
|
+
queryKeyToSubId = /* @__PURE__ */new Map();
|
|
11
|
+
/** Reference counts per subscriptionId for shared subscription lifecycle */
|
|
12
|
+
subRefCounts = /* @__PURE__ */new Map();
|
|
13
|
+
/**
|
|
14
|
+
* Subscriptions restored from a persisted snapshot (or detached on
|
|
15
|
+
* unsubscribe while persistence is on) that no live query has re-adopted
|
|
16
|
+
* yet. They serve cache-first renders on re-subscribe, are excluded from
|
|
17
|
+
* backfill fan-out, and are GC'd after `restoredSubscriptionTTL`.
|
|
18
|
+
*/
|
|
19
|
+
restoredByQueryKey = /* @__PURE__ */new Map();
|
|
20
|
+
/** Restore/detach timestamps per restored subscriptionId (for TTL GC). */
|
|
21
|
+
restoredAt = /* @__PURE__ */new Map();
|
|
22
|
+
db;
|
|
23
|
+
normalizedCache;
|
|
24
|
+
options;
|
|
6
25
|
constructor(db, normalizedCache, options = {}) {
|
|
7
26
|
this.db = db;
|
|
8
27
|
this.normalizedCache = normalizedCache;
|
|
@@ -11,19 +30,10 @@ class SubscriptionManager {
|
|
|
11
30
|
batchSize: this.options.batchSize
|
|
12
31
|
});
|
|
13
32
|
this.backfillManager = new BackfillManager(this.db, this.normalizedCache, {
|
|
14
|
-
pageSize: this.options.pageSize
|
|
33
|
+
pageSize: this.options.pageSize,
|
|
34
|
+
maxPages: this.options.backfillMaxPages
|
|
15
35
|
});
|
|
16
36
|
}
|
|
17
|
-
db;
|
|
18
|
-
normalizedCache;
|
|
19
|
-
options;
|
|
20
|
-
subscriptions = /* @__PURE__ */new Map();
|
|
21
|
-
virtualPageManager;
|
|
22
|
-
backfillManager;
|
|
23
|
-
/** Maps a stable query key to an existing subscriptionId for dedup */
|
|
24
|
-
queryKeyToSubId = /* @__PURE__ */new Map();
|
|
25
|
-
/** Reference counts per subscriptionId for shared subscription lifecycle */
|
|
26
|
-
subRefCounts = /* @__PURE__ */new Map();
|
|
27
37
|
async subscribe(query) {
|
|
28
38
|
const queryKey = JSON.stringify(query);
|
|
29
39
|
const existingId = this.queryKeyToSubId.get(queryKey);
|
|
@@ -37,7 +47,55 @@ class SubscriptionManager {
|
|
|
37
47
|
checkpoint: checkpoint2
|
|
38
48
|
};
|
|
39
49
|
}
|
|
50
|
+
const adopted = this.adoptRestoredSubscription(queryKey, query);
|
|
51
|
+
if (adopted) return adopted;
|
|
40
52
|
const subscriptionId = cryptoRandomId();
|
|
53
|
+
const {
|
|
54
|
+
rows,
|
|
55
|
+
cursor,
|
|
56
|
+
checkpoint
|
|
57
|
+
} = await this.fetchInitialRows(query);
|
|
58
|
+
const subscription = {
|
|
59
|
+
id: subscriptionId,
|
|
60
|
+
query,
|
|
61
|
+
checkpoint,
|
|
62
|
+
// For CDC backfill
|
|
63
|
+
cursor,
|
|
64
|
+
// For stable pagination
|
|
65
|
+
docIds: rows.map(row => row.name),
|
|
66
|
+
tombstones: /* @__PURE__ */new Map()
|
|
67
|
+
};
|
|
68
|
+
if (rows.length > 0) {
|
|
69
|
+
subscription.boundaries = {
|
|
70
|
+
firstItem: rows[0],
|
|
71
|
+
lastItem: rows[rows.length - 1],
|
|
72
|
+
offset: query.limitStart || 0,
|
|
73
|
+
pageSize: query.limit || 20
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
subscription.metadata = {
|
|
77
|
+
itemsBeforePage: 0,
|
|
78
|
+
itemsAfterPage: 0
|
|
79
|
+
};
|
|
80
|
+
this.subscriptions.set(subscriptionId, subscription);
|
|
81
|
+
this.queryKeyToSubId.set(queryKey, subscriptionId);
|
|
82
|
+
this.subRefCounts.set(subscriptionId, 1);
|
|
83
|
+
if (query.progressive) {
|
|
84
|
+
this.virtualPageManager.registerSubscription(subscriptionId, subscription, subscription.docIds, cursor);
|
|
85
|
+
}
|
|
86
|
+
return {
|
|
87
|
+
subscriptionId,
|
|
88
|
+
rows,
|
|
89
|
+
checkpoint
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Performs the initial subscription fetch (single doc via getDoc, lists via
|
|
94
|
+
* getDocList), seeds the normalized cache, and computes the CDC checkpoint
|
|
95
|
+
* as the max `modified` across returned rows. Shared by fresh subscribes
|
|
96
|
+
* and adopted-subscription refreshes so both have identical semantics.
|
|
97
|
+
*/
|
|
98
|
+
async fetchInitialRows(query) {
|
|
41
99
|
const queryFields = query.fields?.length ? Array.from(/* @__PURE__ */new Set([...query.fields, "modified", "name"])) : void 0;
|
|
42
100
|
let rows = [];
|
|
43
101
|
let cursor;
|
|
@@ -78,44 +136,147 @@ class SubscriptionManager {
|
|
|
78
136
|
if (!row.modified) continue;
|
|
79
137
|
if (!checkpoint || row.modified > checkpoint) checkpoint = row.modified;
|
|
80
138
|
}
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
query,
|
|
84
|
-
checkpoint,
|
|
85
|
-
// For CDC backfill
|
|
139
|
+
return {
|
|
140
|
+
rows,
|
|
86
141
|
cursor,
|
|
87
|
-
|
|
88
|
-
docIds: rows.map(row => row.name),
|
|
89
|
-
tombstones: /* @__PURE__ */new Map()
|
|
142
|
+
checkpoint
|
|
90
143
|
};
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Re-adopts a subscription restored from a persisted snapshot when an
|
|
147
|
+
* identical query subscribes: the cached membership renders immediately and
|
|
148
|
+
* a background refresh re-seeds from the network. Progressive queries are
|
|
149
|
+
* excluded — their VirtualPageManager state is not persisted, so they take
|
|
150
|
+
* the fresh-subscribe path.
|
|
151
|
+
*/
|
|
152
|
+
adoptRestoredSubscription(queryKey, query) {
|
|
153
|
+
if (query.progressive) return void 0;
|
|
154
|
+
const restoredId = this.restoredByQueryKey.get(queryKey);
|
|
155
|
+
if (!restoredId) return void 0;
|
|
156
|
+
const subscription = this.subscriptions.get(restoredId);
|
|
157
|
+
this.restoredByQueryKey.delete(queryKey);
|
|
158
|
+
this.restoredAt.delete(restoredId);
|
|
159
|
+
if (!subscription) return void 0;
|
|
160
|
+
this.queryKeyToSubId.set(queryKey, restoredId);
|
|
161
|
+
this.subRefCounts.set(restoredId, 1);
|
|
162
|
+
const refresh = this.refreshAdoptedSubscription(subscription);
|
|
163
|
+
const rows = this.getDocsForSubscription(restoredId);
|
|
164
|
+
return {
|
|
165
|
+
subscriptionId: restoredId,
|
|
166
|
+
rows,
|
|
167
|
+
checkpoint: subscription.checkpoint,
|
|
168
|
+
refresh
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Network refresh for an adopted subscription with fresh-subscribe
|
|
173
|
+
* semantics: an authoritative page fetch replaces membership and recomputes
|
|
174
|
+
* the checkpoint (identical to what a brand-new subscribe would produce).
|
|
175
|
+
* On failure (offline) the cached membership and the restored CDC
|
|
176
|
+
* checkpoint are kept and the subscription is marked stale — the next
|
|
177
|
+
* backfill trigger drains changes from that checkpoint. Never rejects.
|
|
178
|
+
*/
|
|
179
|
+
async refreshAdoptedSubscription(subscription) {
|
|
180
|
+
try {
|
|
181
|
+
const {
|
|
182
|
+
rows,
|
|
183
|
+
cursor,
|
|
184
|
+
checkpoint
|
|
185
|
+
} = await this.fetchInitialRows(subscription.query);
|
|
186
|
+
subscription.checkpoint = checkpoint;
|
|
187
|
+
subscription.cursor = cursor;
|
|
188
|
+
subscription.docIds = rows.map(row => row.name);
|
|
189
|
+
if (rows.length > 0) {
|
|
190
|
+
subscription.boundaries = {
|
|
191
|
+
firstItem: rows[0],
|
|
192
|
+
lastItem: rows[rows.length - 1],
|
|
193
|
+
offset: subscription.query.limitStart || 0,
|
|
194
|
+
pageSize: subscription.query.limit || 20
|
|
195
|
+
};
|
|
196
|
+
}
|
|
197
|
+
subscription.metadata = {
|
|
198
|
+
itemsBeforePage: 0,
|
|
199
|
+
itemsAfterPage: 0
|
|
200
|
+
};
|
|
201
|
+
subscription.stale = false;
|
|
202
|
+
return {
|
|
203
|
+
ok: true
|
|
204
|
+
};
|
|
205
|
+
} catch (error) {
|
|
206
|
+
subscription.stale = true;
|
|
207
|
+
return {
|
|
208
|
+
ok: false,
|
|
209
|
+
error
|
|
97
210
|
};
|
|
98
211
|
}
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Registers a subscription restored from a persisted snapshot. Restored
|
|
215
|
+
* subscriptions are dormant: they hold the persisted query, CDC checkpoint,
|
|
216
|
+
* and membership for cache-first re-adoption, but are skipped by backfill
|
|
217
|
+
* fan-out until adopted. Duplicate snapshot entries for the same query
|
|
218
|
+
* (accumulated by pre-GC versions) collapse last-wins.
|
|
219
|
+
*/
|
|
220
|
+
restoreSubscription(snapshotSub) {
|
|
221
|
+
if (!snapshotSub?.id || !snapshotSub.query?.doctype) return;
|
|
222
|
+
if (this.subscriptions.has(snapshotSub.id)) return;
|
|
223
|
+
const queryKey = JSON.stringify(snapshotSub.query);
|
|
224
|
+
const activeId = this.queryKeyToSubId.get(queryKey);
|
|
225
|
+
if (activeId && this.subscriptions.has(activeId)) return;
|
|
226
|
+
const previousId = this.restoredByQueryKey.get(queryKey);
|
|
227
|
+
if (previousId) {
|
|
228
|
+
this.subscriptions.delete(previousId);
|
|
229
|
+
this.restoredAt.delete(previousId);
|
|
108
230
|
}
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
checkpoint
|
|
231
|
+
const subscription = {
|
|
232
|
+
id: snapshotSub.id,
|
|
233
|
+
query: snapshotSub.query,
|
|
234
|
+
checkpoint: snapshotSub.checkpoint,
|
|
235
|
+
cursor: snapshotSub.cursor,
|
|
236
|
+
docIds: Array.isArray(snapshotSub.docIds) ? snapshotSub.docIds : [],
|
|
237
|
+
tombstones: /* @__PURE__ */new Map(),
|
|
238
|
+
metadata: {
|
|
239
|
+
itemsBeforePage: 0,
|
|
240
|
+
itemsAfterPage: 0
|
|
241
|
+
}
|
|
113
242
|
};
|
|
243
|
+
this.subscriptions.set(subscription.id, subscription);
|
|
244
|
+
this.restoredByQueryKey.set(queryKey, subscription.id);
|
|
245
|
+
this.restoredAt.set(subscription.id, Date.now());
|
|
246
|
+
}
|
|
247
|
+
/** True when the subscription came from a snapshot and is not yet adopted. */
|
|
248
|
+
isRestoredSubscription(subscriptionId) {
|
|
249
|
+
return this.restoredAt.has(subscriptionId);
|
|
250
|
+
}
|
|
251
|
+
/**
|
|
252
|
+
* Drops restored subscriptions that no query re-adopted within
|
|
253
|
+
* `restoredSubscriptionTTL` (default 30 minutes). Called before every
|
|
254
|
+
* persistence snapshot so expired entries also leave the snapshot.
|
|
255
|
+
*/
|
|
256
|
+
gcRestoredSubscriptions(now = Date.now()) {
|
|
257
|
+
const ttl = this.options.restoredSubscriptionTTL ?? 30 * 60 * 1e3;
|
|
258
|
+
for (const [subscriptionId, restoredAtMs] of this.restoredAt) {
|
|
259
|
+
if (now - restoredAtMs <= ttl) continue;
|
|
260
|
+
this.restoredAt.delete(subscriptionId);
|
|
261
|
+
this.subscriptions.delete(subscriptionId);
|
|
262
|
+
for (const [key, id] of this.restoredByQueryKey) {
|
|
263
|
+
if (id === subscriptionId) {
|
|
264
|
+
this.restoredByQueryKey.delete(key);
|
|
265
|
+
break;
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
}
|
|
114
269
|
}
|
|
115
270
|
/**
|
|
116
271
|
* Removes a subscription by id. Cached docs remain until evicted by
|
|
117
272
|
* realtime/backfill or explicit resets. This keeps other subs fast if they
|
|
118
273
|
* share the same doctypes.
|
|
274
|
+
*
|
|
275
|
+
* With persistence enabled (`persistKey`), the released subscription is
|
|
276
|
+
* detached into the restored pool instead of deleted: its query,
|
|
277
|
+
* checkpoint, and membership stay in the snapshot so a remount (or a
|
|
278
|
+
* cold offline reload) can re-adopt it cache-first. Detached subscriptions
|
|
279
|
+
* are excluded from backfill and GC'd after `restoredSubscriptionTTL`.
|
|
119
280
|
*/
|
|
120
281
|
unsubscribe(subscriptionId) {
|
|
121
282
|
const refCount = (this.subRefCounts.get(subscriptionId) || 1) - 1;
|
|
@@ -124,12 +285,20 @@ class SubscriptionManager {
|
|
|
124
285
|
return;
|
|
125
286
|
}
|
|
126
287
|
this.subRefCounts.delete(subscriptionId);
|
|
288
|
+
let queryKey;
|
|
127
289
|
for (const [key, id] of this.queryKeyToSubId) {
|
|
128
290
|
if (id === subscriptionId) {
|
|
291
|
+
queryKey = key;
|
|
129
292
|
this.queryKeyToSubId.delete(key);
|
|
130
293
|
break;
|
|
131
294
|
}
|
|
132
295
|
}
|
|
296
|
+
const subscription = this.subscriptions.get(subscriptionId);
|
|
297
|
+
if (this.options.persistKey && subscription && queryKey && !subscription.query.progressive && !this.restoredByQueryKey.has(queryKey)) {
|
|
298
|
+
this.restoredByQueryKey.set(queryKey, subscriptionId);
|
|
299
|
+
this.restoredAt.set(subscriptionId, Date.now());
|
|
300
|
+
return;
|
|
301
|
+
}
|
|
133
302
|
this.subscriptions.delete(subscriptionId);
|
|
134
303
|
}
|
|
135
304
|
/** Returns subscription metadata by id. */
|
|
@@ -195,7 +364,10 @@ class SubscriptionManager {
|
|
|
195
364
|
*/
|
|
196
365
|
async backfill(args) {
|
|
197
366
|
if (args.scope === BackfillScope.All) {
|
|
198
|
-
for (const subscription of this.subscriptions.values())
|
|
367
|
+
for (const subscription of this.subscriptions.values()) {
|
|
368
|
+
if (this.restoredAt.has(subscription.id)) continue;
|
|
369
|
+
await this.backfillSub(subscription, args.pageSize);
|
|
370
|
+
}
|
|
199
371
|
return;
|
|
200
372
|
}
|
|
201
373
|
if (args.scope === BackfillScope.Subscriptions) {
|
|
@@ -207,7 +379,10 @@ class SubscriptionManager {
|
|
|
207
379
|
}
|
|
208
380
|
if (args.scope === BackfillScope.Doctypes) {
|
|
209
381
|
const set = new Set(args.doctypes || []);
|
|
210
|
-
for (const subscription of this.subscriptions.values())
|
|
382
|
+
for (const subscription of this.subscriptions.values()) {
|
|
383
|
+
if (this.restoredAt.has(subscription.id)) continue;
|
|
384
|
+
if (set.has(subscription.query.doctype)) await this.backfillSub(subscription, args.pageSize);
|
|
385
|
+
}
|
|
211
386
|
return;
|
|
212
387
|
}
|
|
213
388
|
if (args.scope === BackfillScope.Docs) {
|
|
@@ -221,7 +396,9 @@ class SubscriptionManager {
|
|
|
221
396
|
* Backfills one subscription using CDC checkpoint and updates membership.
|
|
222
397
|
*
|
|
223
398
|
* Algorithm
|
|
224
|
-
* - Query backfill using checkpoint for CDC (Change Data Capture)
|
|
399
|
+
* - Query backfill using checkpoint for CDC (Change Data Capture),
|
|
400
|
+
* draining follow-up pages while the server reports has_more (bounded)
|
|
401
|
+
* so reconnect catch-up is complete rather than one page deep
|
|
225
402
|
* - Upsert each row to cache
|
|
226
403
|
* - For each row: test client-side filters; add/remove membership accordingly
|
|
227
404
|
* - Track tombstones for deleted documents
|
|
@@ -229,29 +406,39 @@ class SubscriptionManager {
|
|
|
229
406
|
* - If no filters were specified, derive membership directly from returned rows
|
|
230
407
|
*/
|
|
231
408
|
async backfillSub(subscription, pageSize = this.options.pageSize ?? 200) {
|
|
232
|
-
const
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
}
|
|
247
|
-
this.normalizedCache.remove({
|
|
248
|
-
doctype: deletedDoctype,
|
|
249
|
-
name: deleted.name
|
|
250
|
-
});
|
|
251
|
-
if (deletedDoctype === subscription.query.doctype) subscription.docIds = subscription.docIds.filter(currentName => currentName !== deleted.name);
|
|
409
|
+
const maxPages = this.options.backfillMaxPages ?? 20;
|
|
410
|
+
const rows = [];
|
|
411
|
+
const deleted = [];
|
|
412
|
+
for (let page = 0; page < maxPages; page++) {
|
|
413
|
+
const response = await this.db.backfill({
|
|
414
|
+
doctype: subscription.query.doctype,
|
|
415
|
+
fields: subscription.query.fields,
|
|
416
|
+
filters: subscription.query.filters,
|
|
417
|
+
modifiedAfter: subscription.checkpoint,
|
|
418
|
+
// CDC checkpoint
|
|
419
|
+
limit: pageSize
|
|
420
|
+
});
|
|
421
|
+
if (Array.isArray(response.deleted)) {
|
|
422
|
+
deleted.push(...response.deleted);
|
|
252
423
|
}
|
|
424
|
+
rows.push(...response.rows);
|
|
425
|
+
if (response.checkpoint) subscription.checkpoint = response.checkpoint;
|
|
426
|
+
const madeProgress = response.rows.length > 0 || (response.deleted?.length ?? 0) > 0;
|
|
427
|
+
if (!response.has_more || !response.checkpoint || !madeProgress) break;
|
|
253
428
|
}
|
|
254
|
-
for (const
|
|
429
|
+
for (const deletedRef of deleted) {
|
|
430
|
+
if (!deletedRef?.name) continue;
|
|
431
|
+
const deletedDoctype = deletedRef.doctype || subscription.query.doctype;
|
|
432
|
+
if (deletedDoctype === subscription.query.doctype && subscription.tombstones) {
|
|
433
|
+
subscription.tombstones.set(deletedRef.name, Date.now());
|
|
434
|
+
}
|
|
435
|
+
this.normalizedCache.remove({
|
|
436
|
+
doctype: deletedDoctype,
|
|
437
|
+
name: deletedRef.name
|
|
438
|
+
});
|
|
439
|
+
if (deletedDoctype === subscription.query.doctype) subscription.docIds = subscription.docIds.filter(currentName => currentName !== deletedRef.name);
|
|
440
|
+
}
|
|
441
|
+
for (const row of rows) {
|
|
255
442
|
if (!row.doctype) row.doctype = subscription.query.doctype;
|
|
256
443
|
this.normalizedCache.upsert(row);
|
|
257
444
|
const name = row.name;
|
|
@@ -260,8 +447,7 @@ class SubscriptionManager {
|
|
|
260
447
|
if (match && !subscription.docIds.includes(name)) subscription.docIds.push(name);
|
|
261
448
|
if (!match) subscription.docIds = subscription.docIds.filter(currentName => currentName !== name);
|
|
262
449
|
}
|
|
263
|
-
if (
|
|
264
|
-
if (response.rows.length && !subscription.query.filters) subscription.docIds = response.rows.map(row => row.name);
|
|
450
|
+
if (rows.length && !subscription.query.filters) subscription.docIds = rows.map(row => row.name);
|
|
265
451
|
if (subscription.docIds.length > 0) {
|
|
266
452
|
const firstDoc = this.normalizedCache.get({
|
|
267
453
|
doctype: subscription.query.doctype,
|
|
@@ -282,9 +468,10 @@ class SubscriptionManager {
|
|
|
282
468
|
}
|
|
283
469
|
this.resortSubscriptionDocIds(subscription);
|
|
284
470
|
this.cleanupTombstones(subscription.id);
|
|
471
|
+
subscription.stale = false;
|
|
285
472
|
if (this.options.onBackfill) this.options.onBackfill({
|
|
286
473
|
doctype: subscription.query.doctype,
|
|
287
|
-
fetched:
|
|
474
|
+
fetched: rows.length,
|
|
288
475
|
checkpoint: subscription.checkpoint
|
|
289
476
|
});
|
|
290
477
|
}
|
|
@@ -324,6 +511,7 @@ class SubscriptionManager {
|
|
|
324
511
|
updateSubscriptionMembership(doc) {
|
|
325
512
|
const subscriptionsNeedingRehydration = [];
|
|
326
513
|
for (const subscription of this.subscriptions.values()) {
|
|
514
|
+
if (this.restoredAt.has(subscription.id)) continue;
|
|
327
515
|
if (subscription.query.doctype !== doc.doctype) continue;
|
|
328
516
|
const match = matchesFilters(doc, subscription.query.filters);
|
|
329
517
|
const isExisting = subscription.docIds.includes(doc.name);
|
|
@@ -424,6 +612,8 @@ class SubscriptionManager {
|
|
|
424
612
|
this.subscriptions.clear();
|
|
425
613
|
this.queryKeyToSubId.clear();
|
|
426
614
|
this.subRefCounts.clear();
|
|
615
|
+
this.restoredByQueryKey.clear();
|
|
616
|
+
this.restoredAt.clear();
|
|
427
617
|
}
|
|
428
618
|
/**
|
|
429
619
|
* Cleans up expired tombstones based on age and count limits.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["BackfillManager","extractSingleName","matchesFilters","BackfillScope","Order","VirtualPageManager","SubscriptionManager","constructor","db","normalizedCache","options","virtualPageManager","batchSize","backfillManager","pageSize","subscriptions","Map","queryKeyToSubId","subRefCounts","subscribe","query","queryKey","JSON","stringify","existingId","get","has","set","rows2","getDocsForSubscription","checkpoint2","checkpoint","subscriptionId","rows","cryptoRandomId","queryFields","fields","length","Array","from","Set","cursor","singleName","filters","document","getDoc","doctype","error","errorWithStatus","status","listOptions","orderBy","useCursorPagination","response","getDocList","data","row","upsert","modified","subscription","id","docIds","map","name","tombstones","boundaries","firstItem","lastItem","offset","limitStart","limit","metadata","itemsBeforePage","itemsAfterPage","progressive","registerSubscription","unsubscribe","refCount","delete","key","getSubscription","virtualSub","getProgressiveCache","filter","id2","out2","push","out","getPage","page","getNextBatch","cursorDocId","getPageInfo","backfill","args","scope","All","values","backfillSub","Subscriptions","Doctypes","doctypes","Docs","docTarget","docs","modifiedAfter","deleted","isArray","deletedDoctype","Date","now","remove","currentName","match","includes","firstDoc","lastDoc","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","name1","name2","clear","maxAge","tombstoneMaxAge","maxCount","tombstoneMaxCount","subscriptionsToClean","Boolean","size","timestamp","entries","a","b","toRemove","slice","crypto","randomUUID","random","toString"],"sources":["../../../src/sync/subscriptionManager.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["BackfillManager","extractSingleName","matchesFilters","BackfillScope","Order","VirtualPageManager","SubscriptionManager","subscriptions","Map","virtualPageManager","backfillManager","queryKeyToSubId","subRefCounts","restoredByQueryKey","restoredAt","db","normalizedCache","options","constructor","batchSize","pageSize","maxPages","backfillMaxPages","subscribe","query","queryKey","JSON","stringify","existingId","get","has","set","rows2","getDocsForSubscription","checkpoint2","checkpoint","subscriptionId","rows","adopted","adoptRestoredSubscription","cryptoRandomId","cursor","fetchInitialRows","subscription","id","docIds","map","row","name","tombstones","length","boundaries","firstItem","lastItem","offset","limitStart","limit","metadata","itemsBeforePage","itemsAfterPage","progressive","registerSubscription","queryFields","fields","Array","from","Set","singleName","filters","document","getDoc","doctype","error","errorWithStatus","status","listOptions","orderBy","useCursorPagination","response","getDocList","data","upsert","modified","restoredId","delete","refresh","refreshAdoptedSubscription","stale","ok","restoreSubscription","snapshotSub","activeId","previousId","isArray","Date","now","isRestoredSubscription","gcRestoredSubscriptions","ttl","restoredSubscriptionTTL","restoredAtMs","key","unsubscribe","refCount","persistKey","getSubscription","virtualSub","getProgressiveCache","filter","id2","out2","push","out","getPage","page","getNextBatch","cursorDocId","getPageInfo","backfill","args","scope","All","values","backfillSub","Subscriptions","Doctypes","doctypes","Docs","docTarget","docs","deleted","modifiedAfter","madeProgress","has_more","deletedRef","deletedDoctype","remove","currentName","match","includes","firstDoc","lastDoc","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","name1","name2","clear","maxAge","tombstoneMaxAge","maxCount","tombstoneMaxCount","subscriptionsToClean","Boolean","size","timestamp","entries","a","b","toRemove","slice","crypto","randomUUID","random","toString"],"sources":["../../../src/sync/subscriptionManager.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|