mongodb-livedata-server 0.1.2 → 0.1.4

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 (91) hide show
  1. package/dist/livedata_server.d.ts +4 -4
  2. package/dist/livedata_server.js +11 -11
  3. package/dist/meteor/binary-heap/max_heap.d.ts +31 -31
  4. package/dist/meteor/binary-heap/max_heap.js +186 -186
  5. package/dist/meteor/binary-heap/min_heap.d.ts +6 -6
  6. package/dist/meteor/binary-heap/min_heap.js +17 -17
  7. package/dist/meteor/binary-heap/min_max_heap.d.ts +11 -11
  8. package/dist/meteor/binary-heap/min_max_heap.js +48 -48
  9. package/dist/meteor/callback-hook/hook.d.ts +11 -11
  10. package/dist/meteor/callback-hook/hook.js +78 -78
  11. package/dist/meteor/ddp/crossbar.d.ts +15 -15
  12. package/dist/meteor/ddp/crossbar.js +136 -136
  13. package/dist/meteor/ddp/heartbeat.d.ts +19 -19
  14. package/dist/meteor/ddp/heartbeat.js +77 -77
  15. package/dist/meteor/ddp/livedata_server.d.ts +141 -142
  16. package/dist/meteor/ddp/livedata_server.js +403 -403
  17. package/dist/meteor/ddp/method-invocation.d.ts +35 -35
  18. package/dist/meteor/ddp/method-invocation.js +72 -72
  19. package/dist/meteor/ddp/random-stream.d.ts +8 -8
  20. package/dist/meteor/ddp/random-stream.js +100 -100
  21. package/dist/meteor/ddp/session-collection-view.d.ts +20 -20
  22. package/dist/meteor/ddp/session-collection-view.js +106 -106
  23. package/dist/meteor/ddp/session-document-view.d.ts +8 -8
  24. package/dist/meteor/ddp/session-document-view.js +82 -82
  25. package/dist/meteor/ddp/session.d.ts +75 -74
  26. package/dist/meteor/ddp/session.js +590 -589
  27. package/dist/meteor/ddp/stream_server.d.ts +20 -21
  28. package/dist/meteor/ddp/stream_server.js +181 -181
  29. package/dist/meteor/ddp/subscription.d.ts +94 -94
  30. package/dist/meteor/ddp/subscription.js +370 -370
  31. package/dist/meteor/ddp/utils.d.ts +8 -8
  32. package/dist/meteor/ddp/utils.js +104 -104
  33. package/dist/meteor/ddp/writefence.d.ts +20 -20
  34. package/dist/meteor/ddp/writefence.js +111 -111
  35. package/dist/meteor/diff-sequence/diff.d.ts +17 -17
  36. package/dist/meteor/diff-sequence/diff.js +257 -257
  37. package/dist/meteor/ejson/ejson.d.ts +82 -82
  38. package/dist/meteor/ejson/ejson.js +568 -569
  39. package/dist/meteor/ejson/stringify.d.ts +2 -2
  40. package/dist/meteor/ejson/stringify.js +119 -119
  41. package/dist/meteor/ejson/utils.d.ts +12 -12
  42. package/dist/meteor/ejson/utils.js +42 -42
  43. package/dist/meteor/mongo/caching_change_observer.d.ts +16 -16
  44. package/dist/meteor/mongo/caching_change_observer.js +63 -63
  45. package/dist/meteor/mongo/doc_fetcher.d.ts +7 -7
  46. package/dist/meteor/mongo/doc_fetcher.js +53 -53
  47. package/dist/meteor/mongo/geojson_utils.d.ts +3 -3
  48. package/dist/meteor/mongo/geojson_utils.js +40 -41
  49. package/dist/meteor/mongo/live_connection.d.ts +28 -28
  50. package/dist/meteor/mongo/live_connection.js +264 -264
  51. package/dist/meteor/mongo/live_cursor.d.ts +25 -25
  52. package/dist/meteor/mongo/live_cursor.js +60 -60
  53. package/dist/meteor/mongo/minimongo_common.d.ts +84 -84
  54. package/dist/meteor/mongo/minimongo_common.js +1998 -2002
  55. package/dist/meteor/mongo/minimongo_matcher.d.ts +23 -23
  56. package/dist/meteor/mongo/minimongo_matcher.js +283 -283
  57. package/dist/meteor/mongo/minimongo_sorter.d.ts +16 -16
  58. package/dist/meteor/mongo/minimongo_sorter.js +268 -268
  59. package/dist/meteor/mongo/observe_driver_utils.d.ts +9 -9
  60. package/dist/meteor/mongo/observe_driver_utils.js +72 -73
  61. package/dist/meteor/mongo/observe_multiplexer.d.ts +46 -46
  62. package/dist/meteor/mongo/observe_multiplexer.js +203 -203
  63. package/dist/meteor/mongo/oplog-observe-driver.d.ts +68 -68
  64. package/dist/meteor/mongo/oplog-observe-driver.js +918 -918
  65. package/dist/meteor/mongo/oplog_tailing.d.ts +35 -35
  66. package/dist/meteor/mongo/oplog_tailing.js +352 -352
  67. package/dist/meteor/mongo/oplog_v2_converter.d.ts +1 -1
  68. package/dist/meteor/mongo/oplog_v2_converter.js +125 -126
  69. package/dist/meteor/mongo/polling_observe_driver.d.ts +30 -30
  70. package/dist/meteor/mongo/polling_observe_driver.js +216 -221
  71. package/dist/meteor/mongo/synchronous-cursor.d.ts +17 -17
  72. package/dist/meteor/mongo/synchronous-cursor.js +261 -261
  73. package/dist/meteor/mongo/synchronous-queue.d.ts +13 -13
  74. package/dist/meteor/mongo/synchronous-queue.js +110 -110
  75. package/dist/meteor/ordered-dict/ordered_dict.d.ts +31 -31
  76. package/dist/meteor/ordered-dict/ordered_dict.js +198 -198
  77. package/dist/meteor/random/AbstractRandomGenerator.d.ts +42 -42
  78. package/dist/meteor/random/AbstractRandomGenerator.js +92 -92
  79. package/dist/meteor/random/AleaRandomGenerator.d.ts +13 -13
  80. package/dist/meteor/random/AleaRandomGenerator.js +90 -90
  81. package/dist/meteor/random/NodeRandomGenerator.d.ts +16 -16
  82. package/dist/meteor/random/NodeRandomGenerator.js +42 -42
  83. package/dist/meteor/random/createAleaGenerator.d.ts +2 -2
  84. package/dist/meteor/random/createAleaGenerator.js +32 -32
  85. package/dist/meteor/random/createRandom.d.ts +1 -1
  86. package/dist/meteor/random/createRandom.js +22 -22
  87. package/dist/meteor/random/main.d.ts +1 -1
  88. package/dist/meteor/random/main.js +12 -12
  89. package/dist/meteor/types.d.ts +1 -1
  90. package/dist/meteor/types.js +2 -2
  91. package/package.json +6 -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 {};