@powersync/service-module-mongodb 0.0.0-dev-20260225160713 → 0.0.0-dev-20260511080634

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 (70) hide show
  1. package/CHANGELOG.md +119 -6
  2. package/dist/api/MongoRouteAPIAdapter.js +4 -4
  3. package/dist/api/MongoRouteAPIAdapter.js.map +1 -1
  4. package/dist/replication/ChangeStream.d.ts +8 -16
  5. package/dist/replication/ChangeStream.js +291 -373
  6. package/dist/replication/ChangeStream.js.map +1 -1
  7. package/dist/replication/ChangeStreamReplicationJob.d.ts +1 -1
  8. package/dist/replication/ChangeStreamReplicationJob.js +3 -3
  9. package/dist/replication/ChangeStreamReplicationJob.js.map +1 -1
  10. package/dist/replication/ChangeStreamReplicator.d.ts +1 -2
  11. package/dist/replication/ChangeStreamReplicator.js +1 -22
  12. package/dist/replication/ChangeStreamReplicator.js.map +1 -1
  13. package/dist/replication/JsonBufferWriter.d.ts +80 -0
  14. package/dist/replication/JsonBufferWriter.js +342 -0
  15. package/dist/replication/JsonBufferWriter.js.map +1 -0
  16. package/dist/replication/MongoManager.d.ts +1 -1
  17. package/dist/replication/MongoManager.js +1 -1
  18. package/dist/replication/MongoManager.js.map +1 -1
  19. package/dist/replication/MongoRelation.js +4 -0
  20. package/dist/replication/MongoRelation.js.map +1 -1
  21. package/dist/replication/MongoSnapshotQuery.d.ts +3 -1
  22. package/dist/replication/MongoSnapshotQuery.js +9 -4
  23. package/dist/replication/MongoSnapshotQuery.js.map +1 -1
  24. package/dist/replication/RawChangeStream.d.ts +55 -0
  25. package/dist/replication/RawChangeStream.js +322 -0
  26. package/dist/replication/RawChangeStream.js.map +1 -0
  27. package/dist/replication/SourceRowConverter.d.ts +46 -0
  28. package/dist/replication/SourceRowConverter.js +42 -0
  29. package/dist/replication/SourceRowConverter.js.map +1 -0
  30. package/dist/replication/bufferToSqlite.d.ts +43 -0
  31. package/dist/replication/bufferToSqlite.js +740 -0
  32. package/dist/replication/bufferToSqlite.js.map +1 -0
  33. package/dist/replication/internal-mongodb-utils.d.ts +9 -0
  34. package/dist/replication/internal-mongodb-utils.js +16 -0
  35. package/dist/replication/internal-mongodb-utils.js.map +1 -0
  36. package/dist/replication/replication-index.d.ts +5 -2
  37. package/dist/replication/replication-index.js +5 -2
  38. package/dist/replication/replication-index.js.map +1 -1
  39. package/dist/replication/replication-utils.d.ts +1 -1
  40. package/dist/types/types.js.map +1 -1
  41. package/package.json +11 -11
  42. package/scripts/benchmark-change-document-json.mts +358 -0
  43. package/scripts/benchmark-change-document.mts +370 -0
  44. package/src/api/MongoRouteAPIAdapter.ts +4 -4
  45. package/src/replication/ChangeStream.ts +388 -352
  46. package/src/replication/ChangeStreamReplicationJob.ts +3 -3
  47. package/src/replication/ChangeStreamReplicator.ts +2 -26
  48. package/src/replication/JsonBufferWriter.ts +390 -0
  49. package/src/replication/MongoManager.ts +2 -2
  50. package/src/replication/MongoRelation.ts +5 -2
  51. package/src/replication/MongoSnapshotQuery.ts +13 -6
  52. package/src/replication/RawChangeStream.ts +460 -0
  53. package/src/replication/SourceRowConverter.ts +65 -0
  54. package/src/replication/bufferToSqlite.ts +944 -0
  55. package/src/replication/internal-mongodb-utils.ts +25 -0
  56. package/src/replication/replication-index.ts +5 -2
  57. package/src/replication/replication-utils.ts +2 -2
  58. package/src/types/types.ts +1 -1
  59. package/test/src/buffer_to_sqlite.test.ts +1146 -0
  60. package/test/src/change_stream.test.ts +105 -3
  61. package/test/src/change_stream_utils.ts +39 -36
  62. package/test/src/env.ts +1 -1
  63. package/test/src/mongo_test.test.ts +66 -64
  64. package/test/src/parse_document_id.test.ts +54 -0
  65. package/test/src/raw_change_stream.test.ts +547 -0
  66. package/test/src/resume.test.ts +15 -4
  67. package/test/src/util.ts +62 -9
  68. package/test/tsconfig.json +0 -1
  69. package/tsconfig.scripts.json +13 -0
  70. package/tsconfig.tsbuildinfo +1 -1
@@ -0,0 +1,342 @@
1
+ const JSON_BUFFER_INITIAL_CAPACITY = 1024 * 1024;
2
+ const HEX_LOWER_BYTES = Buffer.from('0123456789abcdef', 'ascii');
3
+ export const BYTE_DQUOTE = 0x22; // "
4
+ export const BYTE_BACKSLASH = 0x5c; // \
5
+ export const BYTE_BACKSPACE = 0x08; // \b
6
+ export const BYTE_TAB = 0x09; // \t
7
+ export const BYTE_NEWLINE = 0x0a; // \n
8
+ export const BYTE_FORM_FEED = 0x0c; // \f
9
+ export const BYTE_CARRIAGE_RETURN = 0x0d; // \r
10
+ export const BYTE_LBRACE = 0x7b; // {
11
+ export const BYTE_RBRACE = 0x7d; // }
12
+ export const BYTE_LBRACKET = 0x5b; // [
13
+ export const BYTE_RBRACKET = 0x5d; // ]
14
+ export const BYTE_COMMA = 0x2c; // ,
15
+ export const BYTE_COLON = 0x3a; // :
16
+ export const BYTE_ZERO = 0x30; // 0
17
+ export const BYTE_ONE = 0x31; // 1
18
+ export const BYTE_T = 0x54; // T
19
+ export const BYTE_SPACE = 0x20; // ' '
20
+ const BYTE_DASH = 0x2d; // -
21
+ const BYTE_DOT = 0x2e; // .
22
+ const BYTE_Z = 0x5a; // Z
23
+ const BYTE_B = 0x62; // b
24
+ const BYTE_T_LOWER = 0x74; // t
25
+ const BYTE_N = 0x6e; // n
26
+ const BYTE_F = 0x66; // f
27
+ const BYTE_R = 0x72; // r
28
+ const BYTE_U = 0x75; // u
29
+ /**
30
+ * Low-level class to generate JSON.
31
+ *
32
+ * This writes to a Buffer, which can then be decoded as a string.
33
+ */
34
+ export class JsonBufferWriter {
35
+ /**
36
+ * The raw buffer. Capacity can increase, but is never decreased.
37
+ */
38
+ buffer;
39
+ /**
40
+ * length of data written to the buffer.
41
+ */
42
+ length = 0;
43
+ constructor(capacity = JSON_BUFFER_INITIAL_CAPACITY) {
44
+ // In theory allocUnsafe could be fine. But in case there are any bugs where this.length
45
+ // is not updated correctly, that could lead to leaking data from memory.
46
+ // Buffer.alloc makes sure no data is leaked if a bug like that is hit.
47
+ // The same applies to ensureCapacity, and for the same reason we zero out changes in truncate().
48
+ this.buffer = Buffer.alloc(capacity);
49
+ }
50
+ /**
51
+ * Resets the length, equivalent to truncate(0).
52
+ */
53
+ reset() {
54
+ this.truncate(0);
55
+ }
56
+ toString() {
57
+ return this.buffer.toString('utf8', 0, this.length);
58
+ }
59
+ getLength() {
60
+ return this.length;
61
+ }
62
+ truncate(length) {
63
+ // Safely reset data
64
+ this.buffer.fill(0, length, this.length);
65
+ this.length = length;
66
+ }
67
+ /**
68
+ * Write a single raw byte.
69
+ *
70
+ * Caller is responsible for ensuring this produces valid JSON.
71
+ */
72
+ writeByte(value) {
73
+ this.ensureCapacity(1);
74
+ this.buffer[this.length++] = value;
75
+ }
76
+ /**
77
+ * Write raw ascii string - one byte per character. No quoting or escaping is performed.
78
+ *
79
+ * Caller is responsible for ensuring this produces valid JSON.
80
+ */
81
+ writeAscii(text) {
82
+ const length = text.length;
83
+ this.ensureCapacity(length);
84
+ this.buffer.write(text, this.length, length, 'ascii');
85
+ this.length += length;
86
+ }
87
+ /**
88
+ * Write UTF-8 string. No quoting or escaping is performed.
89
+ *
90
+ * Caller is responsible for ensuring this produces valid JSON.
91
+ */
92
+ writeUtf8(text) {
93
+ const length = Buffer.byteLength(text);
94
+ this.ensureCapacity(length);
95
+ this.buffer.write(text, this.length, length, 'utf8');
96
+ this.length += length;
97
+ }
98
+ /**
99
+ * Quote and write a string, escaping characters as needed.
100
+ */
101
+ writeQuotedJsonString(text) {
102
+ this.writeByte(BYTE_DQUOTE);
103
+ let start = 0;
104
+ for (let i = 0; i < text.length; i++) {
105
+ const ch = text.charCodeAt(i);
106
+ let escaped;
107
+ switch (ch) {
108
+ case BYTE_DQUOTE:
109
+ escaped = '\\"';
110
+ break;
111
+ case BYTE_BACKSLASH:
112
+ escaped = '\\\\';
113
+ break;
114
+ case BYTE_BACKSPACE:
115
+ escaped = '\\b';
116
+ break;
117
+ case BYTE_TAB:
118
+ escaped = '\\t';
119
+ break;
120
+ case BYTE_NEWLINE:
121
+ escaped = '\\n';
122
+ break;
123
+ case BYTE_FORM_FEED:
124
+ escaped = '\\f';
125
+ break;
126
+ case BYTE_CARRIAGE_RETURN:
127
+ escaped = '\\r';
128
+ break;
129
+ default:
130
+ if (ch < 0x20) {
131
+ escaped = `\\u${ch.toString(16).padStart(4, '0')}`;
132
+ }
133
+ }
134
+ if (escaped == null) {
135
+ continue;
136
+ }
137
+ if (start < i) {
138
+ this.writeUtf8(text.slice(start, i));
139
+ }
140
+ this.writeAscii(escaped);
141
+ start = i + 1;
142
+ }
143
+ if (start < text.length) {
144
+ this.writeUtf8(text.slice(start));
145
+ }
146
+ this.writeByte(BYTE_DQUOTE);
147
+ }
148
+ /**
149
+ * Quotes and write an UTF-8 string from a source buffer, escaping characters as needed.
150
+ *
151
+ * @param bytes source buffer
152
+ * @param start start offset, inclusive
153
+ * @param end end offset, exclusive
154
+ */
155
+ writeQuotedUtf8Slice(bytes, start, end) {
156
+ let firstEscape = -1;
157
+ for (let index = start; index < end; index++) {
158
+ const value = bytes[index];
159
+ if (value < 0x20 || value === BYTE_DQUOTE || value === BYTE_BACKSLASH) {
160
+ firstEscape = index;
161
+ break;
162
+ }
163
+ }
164
+ const rawLength = end - start;
165
+ let length = this.length;
166
+ this.ensureCapacity(rawLength + 2);
167
+ let buffer = this.buffer;
168
+ buffer[length++] = BYTE_DQUOTE;
169
+ if (firstEscape < 0) {
170
+ bytes.copy(buffer, length, start, end);
171
+ length += rawLength;
172
+ buffer[length++] = BYTE_DQUOTE;
173
+ this.length = length;
174
+ return;
175
+ }
176
+ if (firstEscape > start) {
177
+ bytes.copy(buffer, length, start, firstEscape);
178
+ length += firstEscape - start;
179
+ }
180
+ let chunkStart = firstEscape;
181
+ for (let index = firstEscape; index < end; index++) {
182
+ const value = bytes[index];
183
+ if (value >= 0x20 && value !== BYTE_DQUOTE && value !== BYTE_BACKSLASH) {
184
+ continue;
185
+ }
186
+ if (chunkStart < index) {
187
+ const chunkLength = index - chunkStart;
188
+ this.length = length;
189
+ this.ensureCapacity(chunkLength + 6);
190
+ buffer = this.buffer;
191
+ bytes.copy(buffer, length, chunkStart, index);
192
+ length += chunkLength;
193
+ }
194
+ else {
195
+ this.length = length;
196
+ this.ensureCapacity(6);
197
+ buffer = this.buffer;
198
+ }
199
+ switch (value) {
200
+ case BYTE_DQUOTE:
201
+ buffer[length++] = BYTE_BACKSLASH;
202
+ buffer[length++] = BYTE_DQUOTE;
203
+ break;
204
+ case BYTE_BACKSLASH:
205
+ buffer[length++] = BYTE_BACKSLASH;
206
+ buffer[length++] = BYTE_BACKSLASH;
207
+ break;
208
+ case BYTE_BACKSPACE:
209
+ buffer[length++] = BYTE_BACKSLASH;
210
+ buffer[length++] = BYTE_B;
211
+ break;
212
+ case BYTE_TAB:
213
+ buffer[length++] = BYTE_BACKSLASH;
214
+ buffer[length++] = BYTE_T_LOWER;
215
+ break;
216
+ case BYTE_NEWLINE:
217
+ buffer[length++] = BYTE_BACKSLASH;
218
+ buffer[length++] = BYTE_N;
219
+ break;
220
+ case BYTE_FORM_FEED:
221
+ buffer[length++] = BYTE_BACKSLASH;
222
+ buffer[length++] = BYTE_F;
223
+ break;
224
+ case BYTE_CARRIAGE_RETURN:
225
+ buffer[length++] = BYTE_BACKSLASH;
226
+ buffer[length++] = BYTE_R;
227
+ break;
228
+ default:
229
+ buffer[length++] = BYTE_BACKSLASH;
230
+ buffer[length++] = BYTE_U;
231
+ buffer[length++] = BYTE_ZERO;
232
+ buffer[length++] = BYTE_ZERO;
233
+ buffer[length++] = HEX_LOWER_BYTES[value >> 4];
234
+ buffer[length++] = HEX_LOWER_BYTES[value & 0x0f];
235
+ break;
236
+ }
237
+ chunkStart = index + 1;
238
+ }
239
+ if (chunkStart < end) {
240
+ const chunkLength = end - chunkStart;
241
+ this.length = length;
242
+ this.ensureCapacity(chunkLength + 1);
243
+ buffer = this.buffer;
244
+ bytes.copy(buffer, length, chunkStart, end);
245
+ length += chunkLength;
246
+ }
247
+ else {
248
+ this.length = length;
249
+ this.ensureCapacity(1);
250
+ buffer = this.buffer;
251
+ }
252
+ buffer[length++] = BYTE_DQUOTE;
253
+ this.length = length;
254
+ }
255
+ /**
256
+ * Quote and write bytes as hex.
257
+ */
258
+ writeQuotedHexLower(bytes, start, length) {
259
+ this.ensureCapacity(length * 2 + 2);
260
+ this.buffer[this.length++] = BYTE_DQUOTE;
261
+ for (let index = start; index < start + length; index++) {
262
+ const value = bytes[index];
263
+ this.buffer[this.length++] = HEX_LOWER_BYTES[value >> 4];
264
+ this.buffer[this.length++] = HEX_LOWER_BYTES[value & 0x0f];
265
+ }
266
+ this.buffer[this.length++] = BYTE_DQUOTE;
267
+ }
268
+ /**
269
+ * Quote and write 16 UUID bytes in canonical lower-case form.
270
+ */
271
+ writeQuotedUuid(bytes, start) {
272
+ this.ensureCapacity(38);
273
+ const buffer = this.buffer;
274
+ let length = this.length;
275
+ buffer[length++] = BYTE_DQUOTE;
276
+ for (let index = 0; index < 16; index++) {
277
+ if (index === 4 || index === 6 || index === 8 || index === 10) {
278
+ buffer[length++] = BYTE_DASH;
279
+ }
280
+ const value = bytes[start + index];
281
+ buffer[length++] = HEX_LOWER_BYTES[value >> 4];
282
+ buffer[length++] = HEX_LOWER_BYTES[value & 0x0f];
283
+ }
284
+ buffer[length++] = BYTE_DQUOTE;
285
+ this.length = length;
286
+ }
287
+ ensureCapacity(extra) {
288
+ const required = this.length + extra;
289
+ if (required <= this.buffer.length) {
290
+ return;
291
+ }
292
+ let nextLength = this.buffer.length;
293
+ while (nextLength < required) {
294
+ nextLength *= 2;
295
+ }
296
+ const next = Buffer.alloc(nextLength);
297
+ this.buffer.copy(next, 0, 0, this.length);
298
+ this.buffer = next;
299
+ }
300
+ writeDateTime(year, month, day, hour, minute, second, millisecond, quoted, separator, includeMilliseconds) {
301
+ // A more specific value would be this:
302
+ // (quoted ? 2 : 0) + 20 + (includeMilliseconds ? 4 : 1)
303
+ // But there is no harm in over-allocating by 6 bytes.
304
+ this.ensureCapacity(26);
305
+ const buffer = this.buffer;
306
+ let offset = this.length;
307
+ if (quoted) {
308
+ buffer[offset++] = BYTE_DQUOTE;
309
+ }
310
+ buffer[offset++] = BYTE_ZERO + ((year / 1000) | 0);
311
+ buffer[offset++] = BYTE_ZERO + (((year / 100) | 0) % 10);
312
+ buffer[offset++] = BYTE_ZERO + (((year / 10) | 0) % 10);
313
+ buffer[offset++] = BYTE_ZERO + (year % 10);
314
+ buffer[offset++] = BYTE_DASH;
315
+ buffer[offset++] = BYTE_ZERO + ((month / 10) | 0);
316
+ buffer[offset++] = BYTE_ZERO + (month % 10);
317
+ buffer[offset++] = BYTE_DASH;
318
+ buffer[offset++] = BYTE_ZERO + ((day / 10) | 0);
319
+ buffer[offset++] = BYTE_ZERO + (day % 10);
320
+ buffer[offset++] = separator;
321
+ buffer[offset++] = BYTE_ZERO + ((hour / 10) | 0);
322
+ buffer[offset++] = BYTE_ZERO + (hour % 10);
323
+ buffer[offset++] = BYTE_COLON;
324
+ buffer[offset++] = BYTE_ZERO + ((minute / 10) | 0);
325
+ buffer[offset++] = BYTE_ZERO + (minute % 10);
326
+ buffer[offset++] = BYTE_COLON;
327
+ buffer[offset++] = BYTE_ZERO + ((second / 10) | 0);
328
+ buffer[offset++] = BYTE_ZERO + (second % 10);
329
+ if (includeMilliseconds) {
330
+ buffer[offset++] = BYTE_DOT;
331
+ buffer[offset++] = BYTE_ZERO + ((millisecond / 100) | 0);
332
+ buffer[offset++] = BYTE_ZERO + (((millisecond / 10) | 0) % 10);
333
+ buffer[offset++] = BYTE_ZERO + (millisecond % 10);
334
+ }
335
+ buffer[offset++] = BYTE_Z;
336
+ if (quoted) {
337
+ buffer[offset++] = BYTE_DQUOTE;
338
+ }
339
+ this.length = offset;
340
+ }
341
+ }
342
+ //# sourceMappingURL=JsonBufferWriter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JsonBufferWriter.js","sourceRoot":"","sources":["../../src/replication/JsonBufferWriter.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { mongo } from '@powersync/lib-service-mongodb';
2
- import { NormalizedMongoConnectionConfig } from '../types/types.js';
3
2
  import { BaseObserver } from '@powersync/lib-services-framework';
3
+ import { NormalizedMongoConnectionConfig } from '../types/types.js';
4
4
  export interface MongoManagerListener {
5
5
  onEnded(): void;
6
6
  }
@@ -1,6 +1,6 @@
1
1
  import { mongo } from '@powersync/lib-service-mongodb';
2
- import { BSON_DESERIALIZE_DATA_OPTIONS, POWERSYNC_VERSION } from '@powersync/service-core';
3
2
  import { BaseObserver } from '@powersync/lib-services-framework';
3
+ import { BSON_DESERIALIZE_DATA_OPTIONS, POWERSYNC_VERSION } from '@powersync/service-core';
4
4
  /**
5
5
  * Manage a MongoDB source database connection.
6
6
  */
@@ -1 +1 @@
1
- {"version":3,"file":"MongoManager.js","sourceRoot":"","sources":["../../src/replication/MongoManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AAGvD,OAAO,EAAE,6BAA6B,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC3F,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAMjE;;GAEG;AACH,MAAM,OAAO,YAAa,SAAQ,YAAkC;IAKzD;IAJO,MAAM,CAAoB;IAC1B,EAAE,CAAW;IAE7B,YACS,OAAwC,EAC/C,SAAoC;QAEpC,KAAK,EAAE,CAAC;QAHD,YAAO,GAAP,OAAO,CAAiC;QAI/C,MAAM,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;QAExC,2EAA2E;QAC3E,IAAI,CAAC,MAAM,GAAG,IAAI,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE;YAC/C,IAAI,EAAE;gBACJ,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,QAAQ,EAAE,OAAO,CAAC,QAAQ;aAC3B;YAED,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,+DAA+D;YAC/D,gBAAgB,EAAE,MAAM,CAAC,gBAAgB,IAAI,KAAK;YAClD,wEAAwE;YACxE,eAAe,EAAE,MAAM,CAAC,eAAe,IAAI,MAAM;YACjD,2EAA2E;YAC3E,wBAAwB,EAAE,MAAM,CAAC,wBAAwB,IAAI,MAAM;YAEnE,sBAAsB;YACtB,OAAO,EAAE,aAAa,iBAAiB,EAAE;YACzC,sFAAsF;YACtF,UAAU,EAAE;gBACV,4CAA4C;gBAC5C,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,iBAAiB;aAC3B;YAED,8BAA8B;YAC9B,2CAA2C;YAC3C,yFAAyF;YACzF,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,CAAC;YAEpC,aAAa,EAAE,CAAC;YAChB,aAAa,EAAE,MAAM,CAAC,aAAa,IAAI,MAAM;YAE7C,GAAG,6BAA6B;YAEhC,GAAG,SAAS;SACb,CAAC,CAAC;QACH,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,IAAW,aAAa;QACtB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,GAAG;QACP,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAC1B,IAAI,CAAC,gBAAgB,CAAC,CAAC,QAAQ,EAAE,EAAE;YACjC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;QACvB,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
1
+ {"version":3,"file":"MongoManager.js","sourceRoot":"","sources":["../../src/replication/MongoManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AAEvD,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAAE,6BAA6B,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAO3F;;GAEG;AACH,MAAM,OAAO,YAAa,SAAQ,YAAkC;IAKzD;IAJO,MAAM,CAAoB;IAC1B,EAAE,CAAW;IAE7B,YACS,OAAwC,EAC/C,SAAoC;QAEpC,KAAK,EAAE,CAAC;QAHD,YAAO,GAAP,OAAO,CAAiC;QAI/C,MAAM,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;QAExC,2EAA2E;QAC3E,IAAI,CAAC,MAAM,GAAG,IAAI,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE;YAC/C,IAAI,EAAE;gBACJ,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,QAAQ,EAAE,OAAO,CAAC,QAAQ;aAC3B;YAED,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,+DAA+D;YAC/D,gBAAgB,EAAE,MAAM,CAAC,gBAAgB,IAAI,KAAK;YAClD,wEAAwE;YACxE,eAAe,EAAE,MAAM,CAAC,eAAe,IAAI,MAAM;YACjD,2EAA2E;YAC3E,wBAAwB,EAAE,MAAM,CAAC,wBAAwB,IAAI,MAAM;YAEnE,sBAAsB;YACtB,OAAO,EAAE,aAAa,iBAAiB,EAAE;YACzC,sFAAsF;YACtF,UAAU,EAAE;gBACV,4CAA4C;gBAC5C,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,iBAAiB;aAC3B;YAED,8BAA8B;YAC9B,2CAA2C;YAC3C,yFAAyF;YACzF,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,CAAC;YAEpC,aAAa,EAAE,CAAC;YAChB,aAAa,EAAE,MAAM,CAAC,aAAa,IAAI,MAAM;YAE7C,GAAG,6BAA6B;YAEhC,GAAG,SAAS;SACb,CAAC,CAAC;QACH,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,IAAW,aAAa;QACtB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,GAAG;QACP,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAC1B,IAAI,CAAC,gBAAgB,CAAC,CAAC,QAAQ,EAAE,EAAE;YACjC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;QACvB,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -121,6 +121,10 @@ function filterJsonData(data, context, depth = 0) {
121
121
  if (autoBigNum && Number.isInteger(data)) {
122
122
  return BigInt(data);
123
123
  }
124
+ else if (!Number.isFinite(data)) {
125
+ // Only finite numbers can be represented in JSON.
126
+ return null;
127
+ }
124
128
  else {
125
129
  return data;
126
130
  }
@@ -1 +1 @@
1
- {"version":3,"file":"MongoRelation.js","sourceRoot":"","sources":["../../src/replication/MongoRelation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MongoRelation.js","sourceRoot":"","sources":["../../src/replication/MongoRelation.ts"],"names":[],"mappings":"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"}
@@ -16,11 +16,13 @@ export declare class ChunkedSnapshotQuery implements AsyncDisposable {
16
16
  key?: Uint8Array | null;
17
17
  });
18
18
  nextChunk(): Promise<{
19
- docs: mongo.Document[];
19
+ docs: Buffer[];
20
20
  lastKey: Uint8Array;
21
+ bytes: number;
21
22
  } | {
22
23
  docs: [];
23
24
  lastKey: null;
25
+ bytes: 0;
24
26
  }>;
25
27
  [Symbol.asyncDispose](): Promise<void>;
26
28
  }
@@ -1,5 +1,7 @@
1
1
  import { ReplicationAssertionError } from '@powersync/lib-services-framework';
2
2
  import { bson } from '@powersync/service-core';
3
+ import { parseDocumentId } from './bufferToSqlite.js';
4
+ import { getCursorBatchBytes } from './internal-mongodb-utils.js';
3
5
  /**
4
6
  * Performs a collection snapshot query, chunking by ranges of _id.
5
7
  *
@@ -38,7 +40,8 @@ export class ChunkedSnapshotQuery {
38
40
  // batchSize is 1 more than limit to auto-close the cursor.
39
41
  // See https://github.com/mongodb/node-mongodb-native/pull/4580
40
42
  batchSize: this.batchSize + 1,
41
- sort: { _id: 1 }
43
+ sort: { _id: 1 },
44
+ raw: true
42
45
  });
43
46
  newCursor = true;
44
47
  }
@@ -47,21 +50,23 @@ export class ChunkedSnapshotQuery {
47
50
  this.lastCursor = null;
48
51
  if (newCursor) {
49
52
  // We just created a new cursor and it has no results - we have finished the end of the query.
50
- return { docs: [], lastKey: null };
53
+ return { docs: [], lastKey: null, bytes: 0 };
51
54
  }
52
55
  else {
53
56
  // The cursor may have hit the batch limit - retry
54
57
  return this.nextChunk();
55
58
  }
56
59
  }
60
+ const bytes = getCursorBatchBytes(cursor);
57
61
  const docBatch = cursor.readBufferedDocuments();
58
62
  this.lastCursor = cursor;
59
63
  if (docBatch.length == 0) {
60
64
  throw new ReplicationAssertionError(`MongoDB snapshot query returned an empty batch, but hasNext() was true.`);
61
65
  }
62
- const lastKey = docBatch[docBatch.length - 1]._id;
66
+ const lastDoc = docBatch[docBatch.length - 1];
67
+ const { id: lastKey, idBuffer } = parseDocumentId(lastDoc);
63
68
  this.lastKey = lastKey;
64
- return { docs: docBatch, lastKey: bson.serialize({ _id: lastKey }) };
69
+ return { docs: docBatch, lastKey: idBuffer, bytes };
65
70
  }
66
71
  async [Symbol.asyncDispose]() {
67
72
  await this.lastCursor?.close();
@@ -1 +1 @@
1
- {"version":3,"file":"MongoSnapshotQuery.js","sourceRoot":"","sources":["../../src/replication/MongoSnapshotQuery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MongoSnapshotQuery.js","sourceRoot":"","sources":["../../src/replication/MongoSnapshotQuery.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ import { mongo } from '@powersync/lib-service-mongodb';
2
+ import { Logger } from '@powersync/lib-services-framework';
3
+ import { PerformanceTracer } from '@powersync/service-core';
4
+ export interface RawChangeStreamOptions {
5
+ signal?: AbortSignal;
6
+ /**
7
+ * How long to wait for new data per batch (max time for long-polling).
8
+ *
9
+ * This is used for maxTimeMS for the getMore command.
10
+ */
11
+ maxAwaitTimeMS: number;
12
+ /**
13
+ * Timeout for the initial aggregate command.
14
+ */
15
+ maxTimeMS: number;
16
+ /**
17
+ * batchSize for the getMore commands.
18
+ *
19
+ * The aggregate command always uses a batchSize of 1.
20
+ *
21
+ * After a timeout error, the batchSize will be reduced and ramped up again.
22
+ */
23
+ batchSize: number;
24
+ /**
25
+ * Mostly for testing.
26
+ */
27
+ collection?: string;
28
+ logger?: Logger;
29
+ tracer?: PerformanceTracer<'changestream'>;
30
+ }
31
+ export interface ChangeStreamBatch {
32
+ resumeToken: mongo.ResumeToken;
33
+ events: Buffer[];
34
+ /**
35
+ * Size in bytes of this event.
36
+ */
37
+ byteSize: number;
38
+ }
39
+ export declare function rawChangeStream(db: mongo.Db, pipeline: mongo.Document[], options: RawChangeStreamOptions): AsyncGenerator<ChangeStreamBatch, void, unknown>;
40
+ export type ProjectedChangeStreamDocument = Omit<mongo.ChangeStreamDropDocument, 'wallTime' | 'collectionUUID'> | Omit<mongo.ChangeStreamRenameDocument, 'wallTime'> | Omit<mongo.ChangeStreamDeleteDocument<Buffer>, 'wallTime'> | Omit<mongo.ChangeStreamInsertDocument<Buffer>, 'wallTime'> | Omit<mongo.ChangeStreamUpdateDocument<Buffer>, 'wallTime' | 'updateDescription'> | Omit<mongo.ChangeStreamReplaceDocument<Buffer>, 'wallTime'>;
41
+ /**
42
+ * Parse a change stream document, while keeping `fullDocument` as a Buffer.
43
+ *
44
+ * @param Buffer the raw change stream document
45
+ */
46
+ export declare function parseChangeDocument(buffer: Buffer): ProjectedChangeStreamDocument;
47
+ export declare function mapChangeStreamError(e: unknown): void;
48
+ /**
49
+ * Get the "collection" from a ns.
50
+ *
51
+ * This drops everything before the first . character.
52
+ *
53
+ * "my_db_name.$cmd.aggregate" -> "$cmd.aggregate"
54
+ */
55
+ export declare function namespaceCollection(ns: string): string;