@multiplatform.one/frappe 7.7.6 → 7.10.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.
Files changed (182) hide show
  1. package/README.md +31 -1
  2. package/dist/cjs/auth.native.js.map +1 -1
  3. package/dist/cjs/call.native.js.map +1 -1
  4. package/dist/cjs/collection.cjs +4 -1
  5. package/dist/cjs/collection.native.js +4 -1
  6. package/dist/cjs/collection.native.js.map +1 -1
  7. package/dist/cjs/common/types.native.js.map +1 -1
  8. package/dist/cjs/core/http.native.js.map +1 -1
  9. package/dist/cjs/core/types.native.js.map +1 -1
  10. package/dist/cjs/core/wire.native.js.map +1 -1
  11. package/dist/cjs/db.native.js.map +1 -1
  12. package/dist/cjs/devtools/FrappeDevtoolsPanel.native.js.map +1 -1
  13. package/dist/cjs/devtools/index.native.js.map +1 -1
  14. package/dist/cjs/devtools/plugin.native.js.map +1 -1
  15. package/dist/cjs/devtools/theme.native.js.map +1 -1
  16. package/dist/cjs/doctype.cjs +25 -8
  17. package/dist/cjs/doctype.native.js +26 -9
  18. package/dist/cjs/doctype.native.js.map +1 -1
  19. package/dist/cjs/file.native.js.map +1 -1
  20. package/dist/cjs/fixtureDb.native.js.map +1 -1
  21. package/dist/cjs/fixtures.native.js.map +1 -1
  22. package/dist/cjs/frappeApp.native.js.map +1 -1
  23. package/dist/cjs/frappeReact.cjs +1 -0
  24. package/dist/cjs/frappeReact.native.js +2 -1
  25. package/dist/cjs/frappeReact.native.js.map +1 -1
  26. package/dist/cjs/index.cjs +1 -0
  27. package/dist/cjs/index.native.js +3 -2
  28. package/dist/cjs/index.native.js.map +1 -1
  29. package/dist/cjs/optimistic.native.js.map +1 -1
  30. package/dist/cjs/pacer.cjs +1 -0
  31. package/dist/cjs/pacer.native.js +1 -0
  32. package/dist/cjs/pacer.native.js.map +1 -1
  33. package/dist/cjs/plugin/index.native.js.map +1 -1
  34. package/dist/cjs/realtime.native.js.map +1 -1
  35. package/dist/cjs/sync/backfill.native.js.map +1 -1
  36. package/dist/cjs/sync/filters.native.js.map +1 -1
  37. package/dist/cjs/sync/index.cjs +7 -0
  38. package/dist/cjs/sync/index.native.js +9 -0
  39. package/dist/cjs/sync/index.native.js.map +1 -1
  40. package/dist/cjs/sync/merge.native.js.map +1 -1
  41. package/dist/cjs/sync/mutationEngine.native.js.map +1 -1
  42. package/dist/cjs/sync/mutationJournal.native.js.map +1 -1
  43. package/dist/cjs/sync/normalizedCache.native.js.map +1 -1
  44. package/dist/cjs/sync/persistence.native.js.map +1 -1
  45. package/dist/cjs/sync/realtime.native.js.map +1 -1
  46. package/dist/cjs/sync/rehydration.native.js.map +1 -1
  47. package/dist/cjs/sync/storage.native.js.map +1 -1
  48. package/dist/cjs/sync/subscriptionManager.cjs +96 -54
  49. package/dist/cjs/sync/subscriptionManager.native.js +136 -77
  50. package/dist/cjs/sync/subscriptionManager.native.js.map +1 -1
  51. package/dist/cjs/sync/types.cjs +3 -1
  52. package/dist/cjs/sync/types.native.js +3 -1
  53. package/dist/cjs/sync/types.native.js.map +1 -1
  54. package/dist/cjs/sync/virtualPageManager.native.js.map +1 -1
  55. package/dist/cjs/useLiveQuery.native.js.map +1 -1
  56. package/dist/cjs/util.native.js.map +1 -1
  57. package/dist/esm/auth.native.js.map +1 -1
  58. package/dist/esm/call.native.js.map +1 -1
  59. package/dist/esm/collection.mjs +5 -2
  60. package/dist/esm/collection.mjs.map +1 -1
  61. package/dist/esm/collection.native.js +5 -2
  62. package/dist/esm/collection.native.js.map +1 -1
  63. package/dist/esm/common/types.native.js.map +1 -1
  64. package/dist/esm/core/http.native.js.map +1 -1
  65. package/dist/esm/core/types.native.js.map +1 -1
  66. package/dist/esm/core/wire.native.js.map +1 -1
  67. package/dist/esm/db.native.js.map +1 -1
  68. package/dist/esm/devtools/FrappeDevtoolsPanel.native.js.map +1 -1
  69. package/dist/esm/devtools/index.native.js.map +1 -1
  70. package/dist/esm/devtools/plugin.native.js.map +1 -1
  71. package/dist/esm/devtools/theme.native.js.map +1 -1
  72. package/dist/esm/doctype.mjs +25 -8
  73. package/dist/esm/doctype.mjs.map +1 -1
  74. package/dist/esm/doctype.native.js +26 -9
  75. package/dist/esm/doctype.native.js.map +1 -1
  76. package/dist/esm/file.native.js.map +1 -1
  77. package/dist/esm/fixtureDb.native.js.map +1 -1
  78. package/dist/esm/fixtures.native.js.map +1 -1
  79. package/dist/esm/frappeApp.native.js.map +1 -1
  80. package/dist/esm/frappeReact.mjs +1 -0
  81. package/dist/esm/frappeReact.mjs.map +1 -1
  82. package/dist/esm/frappeReact.native.js +1 -0
  83. package/dist/esm/frappeReact.native.js.map +1 -1
  84. package/dist/esm/index.mjs +2 -2
  85. package/dist/esm/index.mjs.map +1 -1
  86. package/dist/esm/index.native.js +2 -2
  87. package/dist/esm/index.native.js.map +1 -1
  88. package/dist/esm/optimistic.native.js.map +1 -1
  89. package/dist/esm/pacer.mjs +1 -0
  90. package/dist/esm/pacer.mjs.map +1 -1
  91. package/dist/esm/pacer.native.js +1 -0
  92. package/dist/esm/pacer.native.js.map +1 -1
  93. package/dist/esm/plugin/index.native.js.map +1 -1
  94. package/dist/esm/realtime.native.js.map +1 -1
  95. package/dist/esm/sync/backfill.native.js.map +1 -1
  96. package/dist/esm/sync/filters.native.js.map +1 -1
  97. package/dist/esm/sync/index.mjs +7 -0
  98. package/dist/esm/sync/index.mjs.map +1 -1
  99. package/dist/esm/sync/index.native.js +9 -0
  100. package/dist/esm/sync/index.native.js.map +1 -1
  101. package/dist/esm/sync/merge.native.js.map +1 -1
  102. package/dist/esm/sync/mutationEngine.native.js.map +1 -1
  103. package/dist/esm/sync/mutationJournal.native.js.map +1 -1
  104. package/dist/esm/sync/normalizedCache.native.js.map +1 -1
  105. package/dist/esm/sync/persistence.native.js.map +1 -1
  106. package/dist/esm/sync/realtime.native.js.map +1 -1
  107. package/dist/esm/sync/rehydration.native.js.map +1 -1
  108. package/dist/esm/sync/storage.native.js.map +1 -1
  109. package/dist/esm/sync/subscriptionManager.mjs +97 -55
  110. package/dist/esm/sync/subscriptionManager.mjs.map +1 -1
  111. package/dist/esm/sync/subscriptionManager.native.js +137 -78
  112. package/dist/esm/sync/subscriptionManager.native.js.map +1 -1
  113. package/dist/esm/sync/types.mjs +2 -1
  114. package/dist/esm/sync/types.mjs.map +1 -1
  115. package/dist/esm/sync/types.native.js +2 -1
  116. package/dist/esm/sync/types.native.js.map +1 -1
  117. package/dist/esm/sync/virtualPageManager.native.js.map +1 -1
  118. package/dist/esm/useLiveQuery.native.js.map +1 -1
  119. package/dist/esm/util.native.js.map +1 -1
  120. package/dist/jsx/collection.mjs +5 -2
  121. package/dist/jsx/collection.mjs.map +1 -1
  122. package/dist/jsx/collection.native.js +4 -1
  123. package/dist/jsx/collection.native.js.map +1 -1
  124. package/dist/jsx/doctype.mjs +25 -8
  125. package/dist/jsx/doctype.mjs.map +1 -1
  126. package/dist/jsx/doctype.native.js +26 -9
  127. package/dist/jsx/doctype.native.js.map +1 -1
  128. package/dist/jsx/frappeReact.mjs +1 -0
  129. package/dist/jsx/frappeReact.mjs.map +1 -1
  130. package/dist/jsx/frappeReact.native.js +1 -0
  131. package/dist/jsx/frappeReact.native.js.map +1 -1
  132. package/dist/jsx/index.js +2 -2
  133. package/dist/jsx/index.js.map +1 -1
  134. package/dist/jsx/index.mjs +2 -2
  135. package/dist/jsx/index.mjs.map +1 -1
  136. package/dist/jsx/index.native.js +1 -0
  137. package/dist/jsx/index.native.js.map +1 -1
  138. package/dist/jsx/pacer.mjs +1 -0
  139. package/dist/jsx/pacer.mjs.map +1 -1
  140. package/dist/jsx/pacer.native.js +1 -0
  141. package/dist/jsx/pacer.native.js.map +1 -1
  142. package/dist/jsx/sync/index.mjs +7 -0
  143. package/dist/jsx/sync/index.mjs.map +1 -1
  144. package/dist/jsx/sync/index.native.js +9 -0
  145. package/dist/jsx/sync/index.native.js.map +1 -1
  146. package/dist/jsx/sync/subscriptionManager.mjs +97 -55
  147. package/dist/jsx/sync/subscriptionManager.mjs.map +1 -1
  148. package/dist/jsx/sync/subscriptionManager.native.js +136 -77
  149. package/dist/jsx/sync/subscriptionManager.native.js.map +1 -1
  150. package/dist/jsx/sync/types.mjs +2 -1
  151. package/dist/jsx/sync/types.mjs.map +1 -1
  152. package/dist/jsx/sync/types.native.js +3 -1
  153. package/dist/jsx/sync/types.native.js.map +1 -1
  154. package/package.json +6 -6
  155. package/src/collection.ts +29 -4
  156. package/src/collectionLimitParity.spec.ts +135 -0
  157. package/src/devtools/FrappeDevtoolsPanel.spec.tsx +4 -2
  158. package/src/doctype.ts +47 -15
  159. package/src/frappeReact.ts +11 -2
  160. package/src/index.ts +6 -2
  161. package/src/pacer.ts +8 -3
  162. package/src/sync/index.ts +12 -0
  163. package/src/sync/refreshSubscriptions.lifecycle.spec.ts +268 -0
  164. package/src/sync/refreshSubscriptions.spec.ts +295 -0
  165. package/src/sync/subscriptionManager.spec.ts +41 -2
  166. package/src/sync/subscriptionManager.ts +115 -55
  167. package/src/sync/types.ts +10 -0
  168. package/types/collection.d.ts +24 -2
  169. package/types/collection.d.ts.map +1 -1
  170. package/types/doctype.d.ts.map +1 -1
  171. package/types/frappeReact.d.ts +6 -2
  172. package/types/frappeReact.d.ts.map +1 -1
  173. package/types/index.d.ts +2 -2
  174. package/types/index.d.ts.map +1 -1
  175. package/types/pacer.d.ts +6 -2
  176. package/types/pacer.d.ts.map +1 -1
  177. package/types/sync/index.d.ts +4 -0
  178. package/types/sync/index.d.ts.map +1 -1
  179. package/types/sync/subscriptionManager.d.ts +13 -10
  180. package/types/sync/subscriptionManager.d.ts.map +1 -1
  181. package/types/sync/types.d.ts +9 -0
  182. package/types/sync/types.d.ts.map +1 -1
@@ -1,8 +1,9 @@
1
1
  import { BackfillManager } from "./backfill.mjs";
2
2
  import { extractSingleName, matchesFilters } from "./filters.mjs";
3
- import { BackfillScope, Order } from "./types.mjs";
3
+ import { BackfillScope, defaultPageLength, Order } from "./types.mjs";
4
4
  import { VirtualPageManager } from "./virtualPageManager.mjs";
5
5
  class SubscriptionManager {
6
+ refreshes = /* @__PURE__ */new Map();
6
7
  subscriptions = /* @__PURE__ */new Map();
7
8
  virtualPageManager;
8
9
  backfillManager;
@@ -55,6 +56,7 @@ class SubscriptionManager {
55
56
  cursor,
56
57
  checkpoint
57
58
  } = await this.fetchInitialRows(query);
59
+ this.seedRows(query, rows);
58
60
  const subscription = {
59
61
  id: subscriptionId,
60
62
  query,
@@ -69,8 +71,8 @@ class SubscriptionManager {
69
71
  subscription.boundaries = {
70
72
  firstItem: rows[0],
71
73
  lastItem: rows[rows.length - 1],
72
- offset: query.limitStart || 0,
73
- pageSize: query.limit || 20
74
+ offset: query.limitStart ?? 0,
75
+ pageSize: query.limit ?? defaultPageLength
74
76
  };
75
77
  }
76
78
  subscription.metadata = {
@@ -89,9 +91,89 @@ class SubscriptionManager {
89
91
  checkpoint
90
92
  };
91
93
  }
94
+ async refreshSubscriptions(options = {}) {
95
+ const subscriptions = [...this.subscriptions.values()].filter(subscription => (this.subRefCounts.get(subscription.id) ?? 0) > 0 && (!options.doctypes || options.doctypes.includes(subscription.query.doctype)));
96
+ return Promise.all(subscriptions.map(subscription => this.refreshSubscription(subscription)));
97
+ }
98
+ refreshSubscription(subscription) {
99
+ const subscriptionId = subscription.id;
100
+ if (subscription.query.progressive) {
101
+ return Promise.resolve({
102
+ subscriptionId,
103
+ ok: false,
104
+ error: new Error("Snapshot refresh does not support progressive subscriptions")
105
+ });
106
+ }
107
+ const existing = this.refreshes.get(subscriptionId);
108
+ if (existing) {
109
+ existing.requested = true;
110
+ return existing.promise;
111
+ }
112
+ const state = {
113
+ requested: false,
114
+ promise: Promise.resolve({
115
+ subscriptionId,
116
+ ok: false
117
+ })
118
+ };
119
+ const active = () => this.refreshes.get(subscriptionId) === state && this.subscriptions.get(subscriptionId) === subscription && (this.subRefCounts.get(subscriptionId) ?? 0) > 0;
120
+ state.promise = Promise.resolve().then(async () => {
121
+ try {
122
+ while (true) {
123
+ state.requested = false;
124
+ try {
125
+ const {
126
+ rows,
127
+ cursor,
128
+ checkpoint
129
+ } = await this.fetchInitialRows(subscription.query);
130
+ if (!active()) {
131
+ return {
132
+ subscriptionId,
133
+ ok: false,
134
+ error: new Error("Subscription is no longer active")
135
+ };
136
+ }
137
+ if (state.requested) continue;
138
+ this.seedRows(subscription.query, rows);
139
+ subscription.docIds = rows.map(row => row.name);
140
+ subscription.cursor = cursor;
141
+ subscription.checkpoint = checkpoint;
142
+ subscription.boundaries = rows.length ? {
143
+ firstItem: rows[0],
144
+ lastItem: rows[rows.length - 1],
145
+ offset: subscription.query.limitStart ?? 0,
146
+ pageSize: subscription.query.limit ?? defaultPageLength
147
+ } : void 0;
148
+ subscription.metadata = {
149
+ itemsBeforePage: 0,
150
+ itemsAfterPage: 0
151
+ };
152
+ subscription.stale = false;
153
+ return {
154
+ subscriptionId,
155
+ ok: true
156
+ };
157
+ } catch (error) {
158
+ if (active() && state.requested) continue;
159
+ if (active()) subscription.stale = true;
160
+ return {
161
+ subscriptionId,
162
+ ok: false,
163
+ error
164
+ };
165
+ }
166
+ }
167
+ } finally {
168
+ if (this.refreshes.get(subscriptionId) === state) this.refreshes.delete(subscriptionId);
169
+ }
170
+ });
171
+ this.refreshes.set(subscriptionId, state);
172
+ return state.promise;
173
+ }
92
174
  /**
93
175
  * Performs the initial subscription fetch (single doc via getDoc, lists via
94
- * getDocList), seeds the normalized cache, and computes the CDC checkpoint
176
+ * getDocList) and computes the CDC checkpoint
95
177
  * as the max `modified` across returned rows. Shared by fresh subscribes
96
178
  * and adopted-subscription refreshes so both have identical semantics.
97
179
  */
@@ -118,10 +200,8 @@ class SubscriptionManager {
118
200
  filters: query.filters,
119
201
  orderBy: query.orderBy
120
202
  };
121
- if (query.limit != null) {
122
- listOptions.limit = query.limit;
123
- if (query.limitStart != null) listOptions.limitStart = query.limitStart;
124
- }
203
+ listOptions.limit = query.limit ?? defaultPageLength;
204
+ if (query.limitStart != null) listOptions.limitStart = query.limitStart;
125
205
  if (this.options.useCursorPagination) listOptions.cursor = void 0;
126
206
  const response = await this.db.getDocList(query.doctype, listOptions);
127
207
  if (typeof response === "object" && response !== null && "data" in response) {
@@ -131,10 +211,6 @@ class SubscriptionManager {
131
211
  rows = response;
132
212
  }
133
213
  }
134
- for (const row of rows) {
135
- if (!row.doctype) row.doctype = query.doctype;
136
- this.normalizedCache.upsert(row);
137
- }
138
214
  let checkpoint = void 0;
139
215
  for (const row of rows) {
140
216
  if (!row.modified) continue;
@@ -146,6 +222,12 @@ class SubscriptionManager {
146
222
  checkpoint
147
223
  };
148
224
  }
225
+ seedRows(query, rows) {
226
+ for (const row of rows) {
227
+ if (!row.doctype) row.doctype = query.doctype;
228
+ this.normalizedCache.upsert(row);
229
+ }
230
+ }
149
231
  /**
150
232
  * Re-adopts a subscription restored from a persisted snapshot when an
151
233
  * identical query subscribes: the cached membership renders immediately and
@@ -163,7 +245,7 @@ class SubscriptionManager {
163
245
  if (!subscription) return void 0;
164
246
  this.queryKeyToSubId.set(queryKey, restoredId);
165
247
  this.subRefCounts.set(restoredId, 1);
166
- const refresh = this.refreshAdoptedSubscription(subscription);
248
+ const refresh = this.refreshSubscription(subscription);
167
249
  const rows = this.getDocsForSubscription(restoredId);
168
250
  return {
169
251
  subscriptionId: restoredId,
@@ -172,48 +254,6 @@ class SubscriptionManager {
172
254
  refresh
173
255
  };
174
256
  }
175
- /**
176
- * Network refresh for an adopted subscription with fresh-subscribe
177
- * semantics: an authoritative page fetch replaces membership and recomputes
178
- * the checkpoint (identical to what a brand-new subscribe would produce).
179
- * On failure (offline) the cached membership and the restored CDC
180
- * checkpoint are kept and the subscription is marked stale — the next
181
- * backfill trigger drains changes from that checkpoint. Never rejects.
182
- */
183
- async refreshAdoptedSubscription(subscription) {
184
- try {
185
- const {
186
- rows,
187
- cursor,
188
- checkpoint
189
- } = await this.fetchInitialRows(subscription.query);
190
- subscription.checkpoint = checkpoint;
191
- subscription.cursor = cursor;
192
- subscription.docIds = rows.map(row => row.name);
193
- if (rows.length > 0) {
194
- subscription.boundaries = {
195
- firstItem: rows[0],
196
- lastItem: rows[rows.length - 1],
197
- offset: subscription.query.limitStart || 0,
198
- pageSize: subscription.query.limit || 20
199
- };
200
- }
201
- subscription.metadata = {
202
- itemsBeforePage: 0,
203
- itemsAfterPage: 0
204
- };
205
- subscription.stale = false;
206
- return {
207
- ok: true
208
- };
209
- } catch (error) {
210
- subscription.stale = true;
211
- return {
212
- ok: false,
213
- error
214
- };
215
- }
216
- }
217
257
  /**
218
258
  * Registers a subscription restored from a persisted snapshot. Restored
219
259
  * subscriptions are dormant: they hold the persisted query, CDC checkpoint,
@@ -288,6 +328,7 @@ class SubscriptionManager {
288
328
  this.subRefCounts.set(subscriptionId, refCount);
289
329
  return;
290
330
  }
331
+ this.refreshes.delete(subscriptionId);
291
332
  this.subRefCounts.delete(subscriptionId);
292
333
  let queryKey;
293
334
  for (const [key, id] of this.queryKeyToSubId) {
@@ -613,6 +654,7 @@ class SubscriptionManager {
613
654
  return name1 < name2 ? -1 : name1 > name2 ? 1 : 0;
614
655
  }
615
656
  clear() {
657
+ this.refreshes.clear();
616
658
  this.subscriptions.clear();
617
659
  this.queryKeyToSubId.clear();
618
660
  this.subRefCounts.clear();
@@ -1 +1 @@
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","rows","getDocsForSubscription","checkpoint","subscriptionId","rows2","checkpoint2","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","out","push","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":[]}
1
+ {"version":3,"names":["BackfillManager","extractSingleName","matchesFilters","BackfillScope","defaultPageLength","Order","VirtualPageManager","SubscriptionManager","refreshes","Map","subscriptions","virtualPageManager","backfillManager","queryKeyToSubId","subRefCounts","restoredByQueryKey","restoredAt","db","normalizedCache","options","constructor","batchSize","pageSize","maxPages","backfillMaxPages","subscribe","query","queryKey","JSON","stringify","existingId","get","has","set","rows","getDocsForSubscription","checkpoint","subscriptionId","rows2","checkpoint2","adopted","adoptRestoredSubscription","cryptoRandomId","cursor","fetchInitialRows","seedRows","subscription","id","docIds","map","row","name","tombstones","length","boundaries","firstItem","lastItem","offset","limitStart","limit","metadata","itemsBeforePage","itemsAfterPage","progressive","registerSubscription","refreshSubscriptions","values","filter","doctypes","includes","doctype","Promise","all","refreshSubscription","resolve","ok","error","Error","existing","requested","promise","state","active","then","stale","delete","queryFields","fields","Array","from","Set","singleName","filters","document","getDoc","errorWithStatus","status","listOptions","orderBy","useCursorPagination","response","getDocList","data","modified","upsert","restoredId","refresh","restoreSubscription","snapshotSub","activeId","previousId","isArray","Date","now","isRestoredSubscription","gcRestoredSubscriptions","ttl","restoredSubscriptionTTL","restoredAtMs","key","unsubscribe","refCount","persistKey","getSubscription","virtualSub","getProgressiveCache","id2","out","push","getPage","page","getNextBatch","cursorDocId","getPageInfo","backfill","args","scope","All","backfillSub","Subscriptions","Doctypes","Docs","docTarget","docs","deleted","modifiedAfter","madeProgress","has_more","deletedRef","deletedDoctype","remove","currentName","match","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,6 +1,6 @@
1
1
  import { BackfillManager } from "./backfill.native.js";
2
2
  import { extractSingleName, matchesFilters } from "./filters.native.js";
3
- import { BackfillScope, Order } from "./types.native.js";
3
+ import { BackfillScope, defaultPageLength, Order } from "./types.native.js";
4
4
  import { VirtualPageManager } from "./virtualPageManager.native.js";
5
5
  function _class_call_check(instance, Constructor) {
6
6
  if (!(instance instanceof Constructor)) {
@@ -46,6 +46,7 @@ var SubscriptionManager = /* @__PURE__ */function () {
46
46
  function SubscriptionManager2(db, normalizedCache) {
47
47
  var options = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};
48
48
  _class_call_check(this, SubscriptionManager2);
49
+ _define_property(this, "refreshes", /* @__PURE__ */new Map());
49
50
  _define_property(this, "subscriptions", /* @__PURE__ */new Map());
50
51
  _define_property(this, "virtualPageManager", void 0);
51
52
  _define_property(this, "backfillManager", void 0);
@@ -90,6 +91,7 @@ var SubscriptionManager = /* @__PURE__ */function () {
90
91
  cursor,
91
92
  checkpoint: checkpoint1
92
93
  } = await this.fetchInitialRows(query);
94
+ this.seedRows(query, rows1);
93
95
  var subscription = {
94
96
  id: subscriptionId,
95
97
  query,
@@ -103,11 +105,12 @@ var SubscriptionManager = /* @__PURE__ */function () {
103
105
  tombstones: /* @__PURE__ */new Map()
104
106
  };
105
107
  if (rows1.length > 0) {
108
+ var _query_limitStart, _query_limit;
106
109
  subscription.boundaries = {
107
110
  firstItem: rows1[0],
108
111
  lastItem: rows1[rows1.length - 1],
109
- offset: query.limitStart || 0,
110
- pageSize: query.limit || 20
112
+ offset: (_query_limitStart = query.limitStart) !== null && _query_limitStart !== void 0 ? _query_limitStart : 0,
113
+ pageSize: (_query_limit = query.limit) !== null && _query_limit !== void 0 ? _query_limit : defaultPageLength
111
114
  };
112
115
  }
113
116
  subscription.metadata = {
@@ -126,12 +129,110 @@ var SubscriptionManager = /* @__PURE__ */function () {
126
129
  checkpoint: checkpoint1
127
130
  };
128
131
  }
132
+ }, {
133
+ key: "refreshSubscriptions",
134
+ value: async function refreshSubscriptions() {
135
+ var _this = this;
136
+ var options = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
137
+ var subscriptions = [...this.subscriptions.values()].filter(function (subscription) {
138
+ var _this_subRefCounts_get;
139
+ 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));
140
+ });
141
+ return Promise.all(subscriptions.map(function (subscription) {
142
+ return _this.refreshSubscription(subscription);
143
+ }));
144
+ }
145
+ }, {
146
+ key: "refreshSubscription",
147
+ value: function refreshSubscription(subscription) {
148
+ var _this = this;
149
+ var subscriptionId = subscription.id;
150
+ if (subscription.query.progressive) {
151
+ return Promise.resolve({
152
+ subscriptionId,
153
+ ok: false,
154
+ error: new Error("Snapshot refresh does not support progressive subscriptions")
155
+ });
156
+ }
157
+ var existing = this.refreshes.get(subscriptionId);
158
+ if (existing) {
159
+ existing.requested = true;
160
+ return existing.promise;
161
+ }
162
+ var state = {
163
+ requested: false,
164
+ promise: Promise.resolve({
165
+ subscriptionId,
166
+ ok: false
167
+ })
168
+ };
169
+ var active = function active2() {
170
+ var _this_subRefCounts_get;
171
+ 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;
172
+ };
173
+ state.promise = Promise.resolve().then(async function () {
174
+ try {
175
+ while (true) {
176
+ state.requested = false;
177
+ try {
178
+ var _subscription_query_limitStart, _subscription_query_limit;
179
+ var {
180
+ rows,
181
+ cursor,
182
+ checkpoint
183
+ } = await _this.fetchInitialRows(subscription.query);
184
+ if (!active()) {
185
+ return {
186
+ subscriptionId,
187
+ ok: false,
188
+ error: new Error("Subscription is no longer active")
189
+ };
190
+ }
191
+ if (state.requested) continue;
192
+ _this.seedRows(subscription.query, rows);
193
+ subscription.docIds = rows.map(function (row) {
194
+ return row.name;
195
+ });
196
+ subscription.cursor = cursor;
197
+ subscription.checkpoint = checkpoint;
198
+ subscription.boundaries = rows.length ? {
199
+ firstItem: rows[0],
200
+ lastItem: rows[rows.length - 1],
201
+ offset: (_subscription_query_limitStart = subscription.query.limitStart) !== null && _subscription_query_limitStart !== void 0 ? _subscription_query_limitStart : 0,
202
+ pageSize: (_subscription_query_limit = subscription.query.limit) !== null && _subscription_query_limit !== void 0 ? _subscription_query_limit : defaultPageLength
203
+ } : void 0;
204
+ subscription.metadata = {
205
+ itemsBeforePage: 0,
206
+ itemsAfterPage: 0
207
+ };
208
+ subscription.stale = false;
209
+ return {
210
+ subscriptionId,
211
+ ok: true
212
+ };
213
+ } catch (error) {
214
+ if (active() && state.requested) continue;
215
+ if (active()) subscription.stale = true;
216
+ return {
217
+ subscriptionId,
218
+ ok: false,
219
+ error
220
+ };
221
+ }
222
+ }
223
+ } finally {
224
+ if (_this.refreshes.get(subscriptionId) === state) _this.refreshes.delete(subscriptionId);
225
+ }
226
+ });
227
+ this.refreshes.set(subscriptionId, state);
228
+ return state.promise;
229
+ }
129
230
  }, {
130
231
  key: "fetchInitialRows",
131
232
  value: (
132
233
  /**
133
234
  * Performs the initial subscription fetch (single doc via getDoc, lists via
134
- * getDocList), seeds the normalized cache, and computes the CDC checkpoint
235
+ * getDocList) and computes the CDC checkpoint
135
236
  * as the max `modified` across returned rows. Shared by fresh subscribes
136
237
  * and adopted-subscription refreshes so both have identical semantics.
137
238
  */
@@ -154,15 +255,14 @@ var SubscriptionManager = /* @__PURE__ */function () {
154
255
  }
155
256
  }
156
257
  } else {
258
+ var _query_limit;
157
259
  var listOptions = {
158
260
  fields: queryFields,
159
261
  filters: query.filters,
160
262
  orderBy: query.orderBy
161
263
  };
162
- if (query.limit != null) {
163
- listOptions.limit = query.limit;
164
- if (query.limitStart != null) listOptions.limitStart = query.limitStart;
165
- }
264
+ listOptions.limit = (_query_limit = query.limit) !== null && _query_limit !== void 0 ? _query_limit : defaultPageLength;
265
+ if (query.limitStart != null) listOptions.limitStart = query.limitStart;
166
266
  if (this.options.useCursorPagination) listOptions.cursor = void 0;
167
267
  var response = await this.db.getDocList(query.doctype, listOptions);
168
268
  if ((typeof response === "undefined" ? "undefined" : _type_of(response)) === "object" && response !== null && "data" in response) {
@@ -172,14 +272,15 @@ var SubscriptionManager = /* @__PURE__ */function () {
172
272
  rows = response;
173
273
  }
174
274
  }
275
+ var checkpoint = void 0;
175
276
  var _iteratorNormalCompletion = true,
176
277
  _didIteratorError = false,
177
278
  _iteratorError = void 0;
178
279
  try {
179
280
  for (var _iterator = rows[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
180
281
  var row = _step.value;
181
- if (!row.doctype) row.doctype = query.doctype;
182
- this.normalizedCache.upsert(row);
282
+ if (!row.modified) continue;
283
+ if (!checkpoint || row.modified > checkpoint) checkpoint = row.modified;
183
284
  }
184
285
  } catch (err) {
185
286
  _didIteratorError = true;
@@ -195,36 +296,39 @@ var SubscriptionManager = /* @__PURE__ */function () {
195
296
  }
196
297
  }
197
298
  }
198
- var checkpoint = void 0;
199
- var _iteratorNormalCompletion1 = true,
200
- _didIteratorError1 = false,
201
- _iteratorError1 = void 0;
299
+ return {
300
+ rows,
301
+ cursor,
302
+ checkpoint
303
+ };
304
+ })
305
+ }, {
306
+ key: "seedRows",
307
+ value: function seedRows(query, rows) {
308
+ var _iteratorNormalCompletion = true,
309
+ _didIteratorError = false,
310
+ _iteratorError = void 0;
202
311
  try {
203
- for (var _iterator1 = rows[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {
204
- var row1 = _step1.value;
205
- if (!row1.modified) continue;
206
- if (!checkpoint || row1.modified > checkpoint) checkpoint = row1.modified;
312
+ for (var _iterator = rows[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
313
+ var row = _step.value;
314
+ if (!row.doctype) row.doctype = query.doctype;
315
+ this.normalizedCache.upsert(row);
207
316
  }
208
317
  } catch (err) {
209
- _didIteratorError1 = true;
210
- _iteratorError1 = err;
318
+ _didIteratorError = true;
319
+ _iteratorError = err;
211
320
  } finally {
212
321
  try {
213
- if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
214
- _iterator1.return();
322
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
323
+ _iterator.return();
215
324
  }
216
325
  } finally {
217
- if (_didIteratorError1) {
218
- throw _iteratorError1;
326
+ if (_didIteratorError) {
327
+ throw _iteratorError;
219
328
  }
220
329
  }
221
330
  }
222
- return {
223
- rows,
224
- cursor,
225
- checkpoint
226
- };
227
- })
331
+ }
228
332
  }, {
229
333
  key: "adoptRestoredSubscription",
230
334
  value: (
@@ -245,7 +349,7 @@ var SubscriptionManager = /* @__PURE__ */function () {
245
349
  if (!subscription) return void 0;
246
350
  this.queryKeyToSubId.set(queryKey, restoredId);
247
351
  this.subRefCounts.set(restoredId, 1);
248
- var refresh = this.refreshAdoptedSubscription(subscription);
352
+ var refresh = this.refreshSubscription(subscription);
249
353
  var rows = this.getDocsForSubscription(restoredId);
250
354
  return {
251
355
  subscriptionId: restoredId,
@@ -254,53 +358,6 @@ var SubscriptionManager = /* @__PURE__ */function () {
254
358
  refresh
255
359
  };
256
360
  })
257
- }, {
258
- key: "refreshAdoptedSubscription",
259
- value: (
260
- /**
261
- * Network refresh for an adopted subscription with fresh-subscribe
262
- * semantics: an authoritative page fetch replaces membership and recomputes
263
- * the checkpoint (identical to what a brand-new subscribe would produce).
264
- * On failure (offline) the cached membership and the restored CDC
265
- * checkpoint are kept and the subscription is marked stale — the next
266
- * backfill trigger drains changes from that checkpoint. Never rejects.
267
- */
268
- async function refreshAdoptedSubscription(subscription) {
269
- try {
270
- var {
271
- rows,
272
- cursor,
273
- checkpoint
274
- } = await this.fetchInitialRows(subscription.query);
275
- subscription.checkpoint = checkpoint;
276
- subscription.cursor = cursor;
277
- subscription.docIds = rows.map(function (row) {
278
- return row.name;
279
- });
280
- if (rows.length > 0) {
281
- subscription.boundaries = {
282
- firstItem: rows[0],
283
- lastItem: rows[rows.length - 1],
284
- offset: subscription.query.limitStart || 0,
285
- pageSize: subscription.query.limit || 20
286
- };
287
- }
288
- subscription.metadata = {
289
- itemsBeforePage: 0,
290
- itemsAfterPage: 0
291
- };
292
- subscription.stale = false;
293
- return {
294
- ok: true
295
- };
296
- } catch (error) {
297
- subscription.stale = true;
298
- return {
299
- ok: false,
300
- error
301
- };
302
- }
303
- })
304
361
  }, {
305
362
  /**
306
363
  * Registers a subscription restored from a persisted snapshot. Restored
@@ -424,6 +481,7 @@ var SubscriptionManager = /* @__PURE__ */function () {
424
481
  this.subRefCounts.set(subscriptionId, refCount);
425
482
  return;
426
483
  }
484
+ this.refreshes.delete(subscriptionId);
427
485
  this.subRefCounts.delete(subscriptionId);
428
486
  var queryKey;
429
487
  var _iteratorNormalCompletion = true,
@@ -1054,6 +1112,7 @@ var SubscriptionManager = /* @__PURE__ */function () {
1054
1112
  }, {
1055
1113
  key: "clear",
1056
1114
  value: function clear() {
1115
+ this.refreshes.clear();
1057
1116
  this.subscriptions.clear();
1058
1117
  this.queryKeyToSubId.clear();
1059
1118
  this.subRefCounts.clear();