mongodb-livedata-server 0.1.3 → 0.1.5

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 (92) hide show
  1. package/README.md +2 -2
  2. package/dist/livedata_server.d.ts +4 -4
  3. package/dist/livedata_server.js +11 -11
  4. package/dist/meteor/binary-heap/max_heap.d.ts +31 -31
  5. package/dist/meteor/binary-heap/max_heap.js +186 -186
  6. package/dist/meteor/binary-heap/min_heap.d.ts +6 -6
  7. package/dist/meteor/binary-heap/min_heap.js +17 -17
  8. package/dist/meteor/binary-heap/min_max_heap.d.ts +11 -11
  9. package/dist/meteor/binary-heap/min_max_heap.js +48 -48
  10. package/dist/meteor/callback-hook/hook.d.ts +11 -11
  11. package/dist/meteor/callback-hook/hook.js +78 -78
  12. package/dist/meteor/ddp/crossbar.d.ts +15 -15
  13. package/dist/meteor/ddp/crossbar.js +136 -136
  14. package/dist/meteor/ddp/heartbeat.d.ts +19 -19
  15. package/dist/meteor/ddp/heartbeat.js +77 -77
  16. package/dist/meteor/ddp/livedata_server.d.ts +141 -142
  17. package/dist/meteor/ddp/livedata_server.js +403 -403
  18. package/dist/meteor/ddp/method-invocation.d.ts +35 -35
  19. package/dist/meteor/ddp/method-invocation.js +72 -72
  20. package/dist/meteor/ddp/random-stream.d.ts +8 -8
  21. package/dist/meteor/ddp/random-stream.js +100 -100
  22. package/dist/meteor/ddp/session-collection-view.d.ts +20 -20
  23. package/dist/meteor/ddp/session-collection-view.js +106 -106
  24. package/dist/meteor/ddp/session-document-view.d.ts +8 -8
  25. package/dist/meteor/ddp/session-document-view.js +82 -82
  26. package/dist/meteor/ddp/session.d.ts +75 -75
  27. package/dist/meteor/ddp/session.js +590 -590
  28. package/dist/meteor/ddp/stream_server.d.ts +20 -21
  29. package/dist/meteor/ddp/stream_server.js +181 -181
  30. package/dist/meteor/ddp/subscription.d.ts +94 -94
  31. package/dist/meteor/ddp/subscription.js +370 -370
  32. package/dist/meteor/ddp/utils.d.ts +8 -8
  33. package/dist/meteor/ddp/utils.js +104 -104
  34. package/dist/meteor/ddp/writefence.d.ts +20 -20
  35. package/dist/meteor/ddp/writefence.js +111 -111
  36. package/dist/meteor/diff-sequence/diff.d.ts +17 -17
  37. package/dist/meteor/diff-sequence/diff.js +257 -257
  38. package/dist/meteor/ejson/ejson.d.ts +82 -82
  39. package/dist/meteor/ejson/ejson.js +568 -569
  40. package/dist/meteor/ejson/stringify.d.ts +2 -2
  41. package/dist/meteor/ejson/stringify.js +119 -119
  42. package/dist/meteor/ejson/utils.d.ts +12 -12
  43. package/dist/meteor/ejson/utils.js +42 -42
  44. package/dist/meteor/mongo/caching_change_observer.d.ts +16 -16
  45. package/dist/meteor/mongo/caching_change_observer.js +63 -63
  46. package/dist/meteor/mongo/doc_fetcher.d.ts +7 -7
  47. package/dist/meteor/mongo/doc_fetcher.js +53 -53
  48. package/dist/meteor/mongo/geojson_utils.d.ts +3 -3
  49. package/dist/meteor/mongo/geojson_utils.js +40 -41
  50. package/dist/meteor/mongo/live_connection.d.ts +28 -28
  51. package/dist/meteor/mongo/live_connection.js +264 -264
  52. package/dist/meteor/mongo/live_cursor.d.ts +25 -25
  53. package/dist/meteor/mongo/live_cursor.js +60 -60
  54. package/dist/meteor/mongo/minimongo_common.d.ts +84 -84
  55. package/dist/meteor/mongo/minimongo_common.js +1998 -1998
  56. package/dist/meteor/mongo/minimongo_matcher.d.ts +23 -23
  57. package/dist/meteor/mongo/minimongo_matcher.js +283 -283
  58. package/dist/meteor/mongo/minimongo_sorter.d.ts +16 -16
  59. package/dist/meteor/mongo/minimongo_sorter.js +268 -268
  60. package/dist/meteor/mongo/observe_driver_utils.d.ts +9 -9
  61. package/dist/meteor/mongo/observe_driver_utils.js +72 -73
  62. package/dist/meteor/mongo/observe_multiplexer.d.ts +46 -46
  63. package/dist/meteor/mongo/observe_multiplexer.js +203 -203
  64. package/dist/meteor/mongo/oplog-observe-driver.d.ts +68 -68
  65. package/dist/meteor/mongo/oplog-observe-driver.js +918 -918
  66. package/dist/meteor/mongo/oplog_tailing.d.ts +35 -35
  67. package/dist/meteor/mongo/oplog_tailing.js +352 -352
  68. package/dist/meteor/mongo/oplog_v2_converter.d.ts +1 -1
  69. package/dist/meteor/mongo/oplog_v2_converter.js +125 -126
  70. package/dist/meteor/mongo/polling_observe_driver.d.ts +30 -30
  71. package/dist/meteor/mongo/polling_observe_driver.js +216 -221
  72. package/dist/meteor/mongo/synchronous-cursor.d.ts +17 -17
  73. package/dist/meteor/mongo/synchronous-cursor.js +261 -261
  74. package/dist/meteor/mongo/synchronous-queue.d.ts +13 -13
  75. package/dist/meteor/mongo/synchronous-queue.js +110 -110
  76. package/dist/meteor/ordered-dict/ordered_dict.d.ts +31 -31
  77. package/dist/meteor/ordered-dict/ordered_dict.js +198 -198
  78. package/dist/meteor/random/AbstractRandomGenerator.d.ts +42 -42
  79. package/dist/meteor/random/AbstractRandomGenerator.js +92 -92
  80. package/dist/meteor/random/AleaRandomGenerator.d.ts +13 -13
  81. package/dist/meteor/random/AleaRandomGenerator.js +90 -90
  82. package/dist/meteor/random/NodeRandomGenerator.d.ts +16 -16
  83. package/dist/meteor/random/NodeRandomGenerator.js +42 -42
  84. package/dist/meteor/random/createAleaGenerator.d.ts +2 -2
  85. package/dist/meteor/random/createAleaGenerator.js +32 -32
  86. package/dist/meteor/random/createRandom.d.ts +1 -1
  87. package/dist/meteor/random/createRandom.js +22 -22
  88. package/dist/meteor/random/main.d.ts +1 -1
  89. package/dist/meteor/random/main.js +12 -12
  90. package/dist/meteor/types.d.ts +1 -1
  91. package/dist/meteor/types.js +2 -2
  92. package/package.json +5 -5
@@ -1 +1 @@
1
- export declare function oplogV2V1Converter(oplogEntry: any): any;
1
+ export declare function oplogV2V1Converter(oplogEntry: any): any;
@@ -1,126 +1,125 @@
1
- "use strict";
2
- // Converter of the new MongoDB Oplog format (>=5.0) to the one that Meteor
3
- // handles well, i.e., `$set` and `$unset`. The new format is completely new,
4
- // and looks as follows:
5
- //
6
- // { $v: 2, diff: Diff }
7
- //
8
- // where `Diff` is a recursive structure:
9
- //
10
- // {
11
- // // Nested updates (sometimes also represented with an s-field).
12
- // // Example: `{ $set: { 'foo.bar': 1 } }`.
13
- // i: { <key>: <value>, ... },
14
- //
15
- // // Top-level updates.
16
- // // Example: `{ $set: { foo: { bar: 1 } } }`.
17
- // u: { <key>: <value>, ... },
18
- //
19
- // // Unsets.
20
- // // Example: `{ $unset: { foo: '' } }`.
21
- // d: { <key>: false, ... },
22
- //
23
- // // Array operations.
24
- // // Example: `{ $push: { foo: 'bar' } }`.
25
- // s<key>: { a: true, u<index>: <value>, ... },
26
- // ...
27
- //
28
- // // Nested operations (sometimes also represented in the `i` field).
29
- // // Example: `{ $set: { 'foo.bar': 1 } }`.
30
- // s<key>: Diff,
31
- // ...
32
- // }
33
- //
34
- // (all fields are optional).
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.oplogV2V1Converter = void 0;
37
- function join(prefix, key) {
38
- return prefix ? `${prefix}.${key}` : key;
39
- }
40
- const arrayOperatorKeyRegex = /^(a|u\d+)$/;
41
- function isArrayOperatorKey(field) {
42
- return arrayOperatorKeyRegex.test(field);
43
- }
44
- function isArrayOperator(operator) {
45
- return operator.a === true && Object.keys(operator).every(isArrayOperatorKey);
46
- }
47
- function flattenObjectInto(target, source, prefix) {
48
- if (Array.isArray(source) || typeof source !== 'object' || source === null) {
49
- target[prefix] = source;
50
- }
51
- else {
52
- const entries = Object.entries(source);
53
- if (entries.length) {
54
- entries.forEach(([key, value]) => {
55
- flattenObjectInto(target, value, join(prefix, key));
56
- });
57
- }
58
- else {
59
- target[prefix] = source;
60
- }
61
- }
62
- }
63
- const logDebugMessages = !!process.env.OPLOG_CONVERTER_DEBUG;
64
- function convertOplogDiff(oplogEntry, diff, prefix) {
65
- if (logDebugMessages) {
66
- console.log(`convertOplogDiff(${JSON.stringify(oplogEntry)}, ${JSON.stringify(diff)}, ${JSON.stringify(prefix)})`);
67
- }
68
- Object.entries(diff).forEach(([diffKey, value]) => {
69
- var _a, _b, _c;
70
- if (diffKey === 'd') {
71
- // Handle `$unset`s.
72
- (_a = oplogEntry.$unset) !== null && _a !== void 0 ? _a : (oplogEntry.$unset = {});
73
- Object.keys(value).forEach(key => {
74
- oplogEntry.$unset[join(prefix, key)] = true;
75
- });
76
- }
77
- else if (diffKey === 'i') {
78
- // Handle (potentially) nested `$set`s.
79
- (_b = oplogEntry.$set) !== null && _b !== void 0 ? _b : (oplogEntry.$set = {});
80
- flattenObjectInto(oplogEntry.$set, value, prefix);
81
- }
82
- else if (diffKey === 'u') {
83
- // Handle flat `$set`s.
84
- (_c = oplogEntry.$set) !== null && _c !== void 0 ? _c : (oplogEntry.$set = {});
85
- Object.entries(value).forEach(([key, value]) => {
86
- oplogEntry.$set[join(prefix, key)] = value;
87
- });
88
- }
89
- else {
90
- // Handle s-fields.
91
- const key = diffKey.slice(1);
92
- if (isArrayOperator(value)) {
93
- // Array operator.
94
- Object.entries(value).forEach(([position, value]) => {
95
- var _a, _b;
96
- if (position === 'a') {
97
- return;
98
- }
99
- const positionKey = join(join(prefix, key), position.slice(1));
100
- if (value === null) {
101
- (_a = oplogEntry.$unset) !== null && _a !== void 0 ? _a : (oplogEntry.$unset = {});
102
- oplogEntry.$unset[positionKey] = true;
103
- }
104
- else {
105
- (_b = oplogEntry.$set) !== null && _b !== void 0 ? _b : (oplogEntry.$set = {});
106
- oplogEntry.$set[positionKey] = value;
107
- }
108
- });
109
- }
110
- else if (key) {
111
- // Nested object.
112
- convertOplogDiff(oplogEntry, value, join(prefix, key));
113
- }
114
- }
115
- });
116
- }
117
- function oplogV2V1Converter(oplogEntry) {
118
- // Pass-through v1 and (probably) invalid entries.
119
- if (oplogEntry.$v !== 2 || !oplogEntry.diff) {
120
- return oplogEntry;
121
- }
122
- const convertedOplogEntry = { $v: 2 };
123
- convertOplogDiff(convertedOplogEntry, oplogEntry.diff, '');
124
- return convertedOplogEntry;
125
- }
126
- exports.oplogV2V1Converter = oplogV2V1Converter;
1
+ "use strict";
2
+ // Converter of the new MongoDB Oplog format (>=5.0) to the one that Meteor
3
+ // handles well, i.e., `$set` and `$unset`. The new format is completely new,
4
+ // and looks as follows:
5
+ //
6
+ // { $v: 2, diff: Diff }
7
+ //
8
+ // where `Diff` is a recursive structure:
9
+ //
10
+ // {
11
+ // // Nested updates (sometimes also represented with an s-field).
12
+ // // Example: `{ $set: { 'foo.bar': 1 } }`.
13
+ // i: { <key>: <value>, ... },
14
+ //
15
+ // // Top-level updates.
16
+ // // Example: `{ $set: { foo: { bar: 1 } } }`.
17
+ // u: { <key>: <value>, ... },
18
+ //
19
+ // // Unsets.
20
+ // // Example: `{ $unset: { foo: '' } }`.
21
+ // d: { <key>: false, ... },
22
+ //
23
+ // // Array operations.
24
+ // // Example: `{ $push: { foo: 'bar' } }`.
25
+ // s<key>: { a: true, u<index>: <value>, ... },
26
+ // ...
27
+ //
28
+ // // Nested operations (sometimes also represented in the `i` field).
29
+ // // Example: `{ $set: { 'foo.bar': 1 } }`.
30
+ // s<key>: Diff,
31
+ // ...
32
+ // }
33
+ //
34
+ // (all fields are optional).
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.oplogV2V1Converter = oplogV2V1Converter;
37
+ function join(prefix, key) {
38
+ return prefix ? `${prefix}.${key}` : key;
39
+ }
40
+ const arrayOperatorKeyRegex = /^(a|u\d+)$/;
41
+ function isArrayOperatorKey(field) {
42
+ return arrayOperatorKeyRegex.test(field);
43
+ }
44
+ function isArrayOperator(operator) {
45
+ return operator.a === true && Object.keys(operator).every(isArrayOperatorKey);
46
+ }
47
+ function flattenObjectInto(target, source, prefix) {
48
+ if (Array.isArray(source) || typeof source !== 'object' || source === null) {
49
+ target[prefix] = source;
50
+ }
51
+ else {
52
+ const entries = Object.entries(source);
53
+ if (entries.length) {
54
+ entries.forEach(([key, value]) => {
55
+ flattenObjectInto(target, value, join(prefix, key));
56
+ });
57
+ }
58
+ else {
59
+ target[prefix] = source;
60
+ }
61
+ }
62
+ }
63
+ const logDebugMessages = !!process.env.OPLOG_CONVERTER_DEBUG;
64
+ function convertOplogDiff(oplogEntry, diff, prefix) {
65
+ if (logDebugMessages) {
66
+ console.log(`convertOplogDiff(${JSON.stringify(oplogEntry)}, ${JSON.stringify(diff)}, ${JSON.stringify(prefix)})`);
67
+ }
68
+ Object.entries(diff).forEach(([diffKey, value]) => {
69
+ var _a, _b, _c;
70
+ if (diffKey === 'd') {
71
+ // Handle `$unset`s.
72
+ (_a = oplogEntry.$unset) !== null && _a !== void 0 ? _a : (oplogEntry.$unset = {});
73
+ Object.keys(value).forEach(key => {
74
+ oplogEntry.$unset[join(prefix, key)] = true;
75
+ });
76
+ }
77
+ else if (diffKey === 'i') {
78
+ // Handle (potentially) nested `$set`s.
79
+ (_b = oplogEntry.$set) !== null && _b !== void 0 ? _b : (oplogEntry.$set = {});
80
+ flattenObjectInto(oplogEntry.$set, value, prefix);
81
+ }
82
+ else if (diffKey === 'u') {
83
+ // Handle flat `$set`s.
84
+ (_c = oplogEntry.$set) !== null && _c !== void 0 ? _c : (oplogEntry.$set = {});
85
+ Object.entries(value).forEach(([key, value]) => {
86
+ oplogEntry.$set[join(prefix, key)] = value;
87
+ });
88
+ }
89
+ else {
90
+ // Handle s-fields.
91
+ const key = diffKey.slice(1);
92
+ if (isArrayOperator(value)) {
93
+ // Array operator.
94
+ Object.entries(value).forEach(([position, value]) => {
95
+ var _a, _b;
96
+ if (position === 'a') {
97
+ return;
98
+ }
99
+ const positionKey = join(join(prefix, key), position.slice(1));
100
+ if (value === null) {
101
+ (_a = oplogEntry.$unset) !== null && _a !== void 0 ? _a : (oplogEntry.$unset = {});
102
+ oplogEntry.$unset[positionKey] = true;
103
+ }
104
+ else {
105
+ (_b = oplogEntry.$set) !== null && _b !== void 0 ? _b : (oplogEntry.$set = {});
106
+ oplogEntry.$set[positionKey] = value;
107
+ }
108
+ });
109
+ }
110
+ else if (key) {
111
+ // Nested object.
112
+ convertOplogDiff(oplogEntry, value, join(prefix, key));
113
+ }
114
+ }
115
+ });
116
+ }
117
+ function oplogV2V1Converter(oplogEntry) {
118
+ // Pass-through v1 and (probably) invalid entries.
119
+ if (oplogEntry.$v !== 2 || !oplogEntry.diff) {
120
+ return oplogEntry;
121
+ }
122
+ const convertedOplogEntry = { $v: 2 };
123
+ convertOplogDiff(convertedOplogEntry, oplogEntry.diff, '');
124
+ return convertedOplogEntry;
125
+ }
@@ -1,30 +1,30 @@
1
- import { LiveMongoConnection } from "./live_connection";
2
- import { ObserveMultiplexer } from "./observe_multiplexer";
3
- import { CursorDescription } from "./live_cursor";
4
- interface PollingObserveDriverOptions<TOrdered extends boolean> {
5
- cursorDescription: CursorDescription<any>;
6
- mongoHandle: LiveMongoConnection;
7
- ordered: TOrdered;
8
- multiplexer: ObserveMultiplexer;
9
- stopCallbacks?: (() => void)[];
10
- matcher?: any;
11
- sorter?: any;
12
- }
13
- export declare class PollingObserveDriver<TOrdered extends boolean> {
14
- private _cursorDescription;
15
- private _mongoHandle;
16
- private _ordered;
17
- private _multiplexer;
18
- private _stopCallbacks;
19
- private _stopped;
20
- private _results;
21
- private _pollsScheduledButNotStarted;
22
- private _pendingWrites;
23
- private _ensurePollIsScheduled;
24
- private _taskQueue;
25
- constructor(options: PollingObserveDriverOptions<TOrdered>);
26
- _unthrottledEnsurePollIsScheduled(): void;
27
- _pollMongo(): Promise<void>;
28
- stop(): void;
29
- }
30
- export {};
1
+ import { LiveMongoConnection } from "./live_connection";
2
+ import { ObserveMultiplexer } from "./observe_multiplexer";
3
+ import { CursorDescription } from "./live_cursor";
4
+ interface PollingObserveDriverOptions<TOrdered extends boolean> {
5
+ cursorDescription: CursorDescription<any>;
6
+ mongoHandle: LiveMongoConnection;
7
+ ordered: TOrdered;
8
+ multiplexer: ObserveMultiplexer;
9
+ stopCallbacks?: (() => void)[];
10
+ matcher?: any;
11
+ sorter?: any;
12
+ }
13
+ export declare class PollingObserveDriver<TOrdered extends boolean> {
14
+ private _cursorDescription;
15
+ private _mongoHandle;
16
+ private _ordered;
17
+ private _multiplexer;
18
+ private _stopCallbacks;
19
+ private _stopped;
20
+ private _results;
21
+ private _pollsScheduledButNotStarted;
22
+ private _pendingWrites;
23
+ private _ensurePollIsScheduled;
24
+ private _taskQueue;
25
+ constructor(options: PollingObserveDriverOptions<TOrdered>);
26
+ _unthrottledEnsurePollIsScheduled(): void;
27
+ _pollMongo(): Promise<void>;
28
+ stop(): void;
29
+ }
30
+ export {};