mongodb 4.0.0 → 4.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +62 -30
- package/lib/bson.js +1 -0
- package/lib/bson.js.map +1 -1
- package/lib/bulk/common.js +53 -30
- package/lib/bulk/common.js.map +1 -1
- package/lib/bulk/ordered.js +3 -2
- package/lib/bulk/ordered.js.map +1 -1
- package/lib/bulk/unordered.js +3 -2
- package/lib/bulk/unordered.js.map +1 -1
- package/lib/change_stream.js +23 -13
- package/lib/change_stream.js.map +1 -1
- package/lib/cmap/auth/auth_provider.js +2 -1
- package/lib/cmap/auth/auth_provider.js.map +1 -1
- package/lib/cmap/auth/gssapi.js +5 -4
- package/lib/cmap/auth/gssapi.js.map +1 -1
- package/lib/cmap/auth/mongo_credentials.js +9 -5
- package/lib/cmap/auth/mongo_credentials.js.map +1 -1
- package/lib/cmap/auth/mongocr.js +2 -2
- package/lib/cmap/auth/mongocr.js.map +1 -1
- package/lib/cmap/auth/mongodb_aws.js +32 -32
- package/lib/cmap/auth/mongodb_aws.js.map +1 -1
- package/lib/cmap/auth/plain.js +1 -1
- package/lib/cmap/auth/plain.js.map +1 -1
- package/lib/cmap/auth/scram.js +15 -12
- package/lib/cmap/auth/scram.js.map +1 -1
- package/lib/cmap/auth/x509.js +2 -2
- package/lib/cmap/auth/x509.js.map +1 -1
- package/lib/cmap/command_monitoring_events.js +26 -10
- package/lib/cmap/command_monitoring_events.js.map +1 -1
- package/lib/cmap/commands.js +9 -5
- package/lib/cmap/commands.js.map +1 -1
- package/lib/cmap/connect.js +23 -9
- package/lib/cmap/connect.js.map +1 -1
- package/lib/cmap/connection.js +43 -46
- package/lib/cmap/connection.js.map +1 -1
- package/lib/cmap/connection_pool.js +113 -15
- package/lib/cmap/connection_pool.js.map +1 -1
- package/lib/cmap/connection_pool_events.js +3 -1
- package/lib/cmap/connection_pool_events.js.map +1 -1
- package/lib/cmap/errors.js +3 -3
- package/lib/cmap/errors.js.map +1 -1
- package/lib/cmap/message_stream.js +1 -1
- package/lib/cmap/message_stream.js.map +1 -1
- package/lib/cmap/metrics.js +62 -0
- package/lib/cmap/metrics.js.map +1 -0
- package/lib/cmap/stream_description.js +3 -1
- package/lib/cmap/stream_description.js.map +1 -1
- package/lib/cmap/wire_protocol/compression.js +22 -9
- package/lib/cmap/wire_protocol/compression.js.map +1 -1
- package/lib/cmap/wire_protocol/shared.js +1 -1
- package/lib/cmap/wire_protocol/shared.js.map +1 -1
- package/lib/collection.js +23 -18
- package/lib/collection.js.map +1 -1
- package/lib/connection_string.js +76 -30
- package/lib/connection_string.js.map +1 -1
- package/lib/cursor/abstract_cursor.js +75 -68
- package/lib/cursor/abstract_cursor.js.map +1 -1
- package/lib/cursor/aggregation_cursor.js +47 -9
- package/lib/cursor/aggregation_cursor.js.map +1 -1
- package/lib/cursor/find_cursor.js +53 -13
- package/lib/cursor/find_cursor.js.map +1 -1
- package/lib/db.js +21 -14
- package/lib/db.js.map +1 -1
- package/lib/deps.js +16 -5
- package/lib/deps.js.map +1 -1
- package/lib/encrypter.js +5 -8
- package/lib/encrypter.js.map +1 -1
- package/lib/error.js +230 -34
- package/lib/error.js.map +1 -1
- package/lib/explain.js +2 -2
- package/lib/explain.js.map +1 -1
- package/lib/gridfs/download.js +22 -47
- package/lib/gridfs/download.js.map +1 -1
- package/lib/gridfs/index.js +4 -3
- package/lib/gridfs/index.js.map +1 -1
- package/lib/gridfs/upload.js +13 -21
- package/lib/gridfs/upload.js.map +1 -1
- package/lib/index.js +27 -2
- package/lib/index.js.map +1 -1
- package/lib/logger.js +3 -2
- package/lib/logger.js.map +1 -1
- package/lib/mongo_client.js +5 -8
- package/lib/mongo_client.js.map +1 -1
- package/lib/mongo_types.js.map +1 -1
- package/lib/operations/add_user.js +2 -3
- package/lib/operations/add_user.js.map +1 -1
- package/lib/operations/aggregate.js +12 -9
- package/lib/operations/aggregate.js.map +1 -1
- package/lib/operations/command.js +5 -7
- package/lib/operations/command.js.map +1 -1
- package/lib/operations/common_functions.js +1 -1
- package/lib/operations/common_functions.js.map +1 -1
- package/lib/operations/connect.js +3 -2
- package/lib/operations/connect.js.map +1 -1
- package/lib/operations/count.js +1 -1
- package/lib/operations/count.js.map +1 -1
- package/lib/operations/count_documents.js +1 -1
- package/lib/operations/count_documents.js.map +1 -1
- package/lib/operations/delete.js +5 -5
- package/lib/operations/delete.js.map +1 -1
- package/lib/operations/distinct.js +2 -2
- package/lib/operations/distinct.js.map +1 -1
- package/lib/operations/estimated_document_count.js +5 -1
- package/lib/operations/estimated_document_count.js.map +1 -1
- package/lib/operations/eval.js.map +1 -1
- package/lib/operations/execute_operation.js +31 -17
- package/lib/operations/execute_operation.js.map +1 -1
- package/lib/operations/find.js +13 -9
- package/lib/operations/find.js.map +1 -1
- package/lib/operations/find_and_modify.js +9 -9
- package/lib/operations/find_and_modify.js.map +1 -1
- package/lib/operations/indexes.js +8 -3
- package/lib/operations/indexes.js.map +1 -1
- package/lib/operations/insert.js +5 -3
- package/lib/operations/insert.js.map +1 -1
- package/lib/operations/is_capped.js +2 -1
- package/lib/operations/is_capped.js.map +1 -1
- package/lib/operations/list_collections.js +6 -3
- package/lib/operations/list_collections.js.map +1 -1
- package/lib/operations/map_reduce.js +1 -1
- package/lib/operations/map_reduce.js.map +1 -1
- package/lib/operations/operation.js +3 -1
- package/lib/operations/operation.js.map +1 -1
- package/lib/operations/options_operation.js +2 -1
- package/lib/operations/options_operation.js.map +1 -1
- package/lib/operations/profiling_level.js +4 -2
- package/lib/operations/profiling_level.js.map +1 -1
- package/lib/operations/set_profiling_level.js +4 -2
- package/lib/operations/set_profiling_level.js.map +1 -1
- package/lib/operations/update.js +12 -12
- package/lib/operations/update.js.map +1 -1
- package/lib/operations/validate_collection.js +6 -5
- package/lib/operations/validate_collection.js.map +1 -1
- package/lib/promise_provider.js +1 -1
- package/lib/promise_provider.js.map +1 -1
- package/lib/read_preference.js +8 -8
- package/lib/read_preference.js.map +1 -1
- package/lib/sdam/common.js +12 -10
- package/lib/sdam/common.js.map +1 -1
- package/lib/sdam/server.js +90 -25
- package/lib/sdam/server.js.map +1 -1
- package/lib/sdam/server_description.js +9 -4
- package/lib/sdam/server_description.js.map +1 -1
- package/lib/sdam/server_selection.js +10 -4
- package/lib/sdam/server_selection.js.map +1 -1
- package/lib/sdam/srv_polling.js +1 -1
- package/lib/sdam/srv_polling.js.map +1 -1
- package/lib/sdam/topology.js +42 -21
- package/lib/sdam/topology.js.map +1 -1
- package/lib/sdam/topology_description.js +7 -3
- package/lib/sdam/topology_description.js.map +1 -1
- package/lib/sessions.js +132 -31
- package/lib/sessions.js.map +1 -1
- package/lib/sort.js +3 -3
- package/lib/sort.js.map +1 -1
- package/lib/transactions.js +15 -7
- package/lib/transactions.js.map +1 -1
- package/lib/utils.js +60 -20
- package/lib/utils.js.map +1 -1
- package/mongodb.d.ts +523 -138
- package/mongodb.ts34.d.ts +480 -141
- package/package.json +44 -48
- package/src/bson.ts +1 -0
- package/src/bulk/common.ts +83 -43
- package/src/bulk/ordered.ts +4 -3
- package/src/bulk/unordered.ts +4 -3
- package/src/change_stream.ts +46 -29
- package/src/cmap/auth/auth_provider.ts +3 -2
- package/src/cmap/auth/gssapi.ts +15 -5
- package/src/cmap/auth/mongo_credentials.ts +22 -8
- package/src/cmap/auth/mongocr.ts +3 -3
- package/src/cmap/auth/mongodb_aws.ts +52 -39
- package/src/cmap/auth/plain.ts +2 -2
- package/src/cmap/auth/scram.ts +23 -13
- package/src/cmap/auth/x509.ts +3 -3
- package/src/cmap/command_monitoring_events.ts +36 -14
- package/src/cmap/commands.ts +12 -6
- package/src/cmap/connect.ts +42 -12
- package/src/cmap/connection.ts +54 -62
- package/src/cmap/connection_pool.ts +141 -20
- package/src/cmap/connection_pool_events.ts +8 -1
- package/src/cmap/errors.ts +3 -4
- package/src/cmap/message_stream.ts +2 -4
- package/src/cmap/metrics.ts +58 -0
- package/src/cmap/stream_description.ts +6 -1
- package/src/cmap/wire_protocol/compression.ts +26 -13
- package/src/cmap/wire_protocol/shared.ts +4 -2
- package/src/collection.ts +75 -70
- package/src/connection_string.ts +97 -34
- package/src/cursor/abstract_cursor.ts +141 -104
- package/src/cursor/aggregation_cursor.ts +34 -20
- package/src/cursor/find_cursor.ts +41 -21
- package/src/db.ts +19 -18
- package/src/deps.ts +110 -22
- package/src/encrypter.ts +6 -12
- package/src/error.ts +264 -48
- package/src/explain.ts +3 -3
- package/src/gridfs/download.ts +48 -53
- package/src/gridfs/index.ts +5 -4
- package/src/gridfs/upload.ts +32 -33
- package/src/index.ts +42 -4
- package/src/logger.ts +6 -3
- package/src/mongo_client.ts +20 -23
- package/src/mongo_types.ts +19 -20
- package/src/operations/add_user.ts +4 -5
- package/src/operations/aggregate.ts +18 -17
- package/src/operations/command.ts +7 -10
- package/src/operations/common_functions.ts +2 -3
- package/src/operations/connect.ts +4 -3
- package/src/operations/count.ts +2 -2
- package/src/operations/count_documents.ts +2 -2
- package/src/operations/delete.ts +8 -6
- package/src/operations/distinct.ts +5 -3
- package/src/operations/estimated_document_count.ts +5 -1
- package/src/operations/eval.ts +1 -1
- package/src/operations/execute_operation.ts +41 -20
- package/src/operations/find.ts +25 -16
- package/src/operations/find_and_modify.ts +12 -10
- package/src/operations/indexes.ts +39 -8
- package/src/operations/insert.ts +7 -4
- package/src/operations/is_capped.ts +3 -2
- package/src/operations/list_collections.ts +9 -6
- package/src/operations/map_reduce.ts +4 -2
- package/src/operations/operation.ts +7 -2
- package/src/operations/options_operation.ts +3 -2
- package/src/operations/profiling_level.ts +5 -3
- package/src/operations/set_profiling_level.ts +9 -3
- package/src/operations/update.ts +17 -13
- package/src/operations/validate_collection.ts +7 -6
- package/src/promise_provider.ts +2 -2
- package/src/read_preference.ts +11 -9
- package/src/sdam/common.ts +11 -9
- package/src/sdam/server.ts +168 -69
- package/src/sdam/server_description.ts +16 -4
- package/src/sdam/server_selection.ts +15 -7
- package/src/sdam/srv_polling.ts +2 -2
- package/src/sdam/topology.ts +67 -36
- package/src/sdam/topology_description.ts +11 -4
- package/src/sessions.ts +194 -37
- package/src/sort.ts +6 -4
- package/src/transactions.ts +18 -9
- package/src/utils.ts +73 -20
- package/HISTORY.md +0 -2993
- package/lib/operations/find_one.js +0 -34
- package/lib/operations/find_one.js.map +0 -1
- package/src/operations/find_one.ts +0 -43
package/lib/sessions.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var _a;
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.updateSessionFromResponse = exports.applySession = exports.commandSupportsReadConcern = exports.ServerSessionPool = exports.ServerSession = exports.ClientSession = void 0;
|
|
4
|
+
exports.updateSessionFromResponse = exports.applySession = exports.commandSupportsReadConcern = exports.ServerSessionPool = exports.ServerSession = exports.maybeClearPinnedConnection = exports.ClientSession = void 0;
|
|
5
5
|
const promise_provider_1 = require("./promise_provider");
|
|
6
6
|
const bson_1 = require("./bson");
|
|
7
7
|
const read_preference_1 = require("./read_preference");
|
|
@@ -12,12 +12,14 @@ const error_1 = require("./error");
|
|
|
12
12
|
const utils_1 = require("./utils");
|
|
13
13
|
const execute_operation_1 = require("./operations/execute_operation");
|
|
14
14
|
const run_command_1 = require("./operations/run_command");
|
|
15
|
+
const connection_1 = require("./cmap/connection");
|
|
16
|
+
const metrics_1 = require("./cmap/metrics");
|
|
15
17
|
const mongo_types_1 = require("./mongo_types");
|
|
16
18
|
const read_concern_1 = require("./read_concern");
|
|
17
19
|
const minWireVersionForShardedTransactions = 8;
|
|
18
20
|
function assertAlive(session, callback) {
|
|
19
21
|
if (session.serverSession == null) {
|
|
20
|
-
const error = new error_1.
|
|
22
|
+
const error = new error_1.MongoExpiredSessionError();
|
|
21
23
|
if (typeof callback === 'function') {
|
|
22
24
|
callback(error);
|
|
23
25
|
return false;
|
|
@@ -32,6 +34,8 @@ const kServerSession = Symbol('serverSession');
|
|
|
32
34
|
const kSnapshotTime = Symbol('snapshotTime');
|
|
33
35
|
/** @internal */
|
|
34
36
|
const kSnapshotEnabled = Symbol('snapshotEnabled');
|
|
37
|
+
/** @internal */
|
|
38
|
+
const kPinnedConnection = Symbol('pinnedConnection');
|
|
35
39
|
/**
|
|
36
40
|
* A class representing a client session on the server
|
|
37
41
|
*
|
|
@@ -52,16 +56,18 @@ class ClientSession extends mongo_types_1.TypedEventEmitter {
|
|
|
52
56
|
/** @internal */
|
|
53
57
|
this[_a] = false;
|
|
54
58
|
if (topology == null) {
|
|
55
|
-
|
|
59
|
+
// TODO(NODE-3483)
|
|
60
|
+
throw new error_1.MongoRuntimeError('ClientSession requires a topology');
|
|
56
61
|
}
|
|
57
62
|
if (sessionPool == null || !(sessionPool instanceof ServerSessionPool)) {
|
|
58
|
-
|
|
63
|
+
// TODO(NODE-3483)
|
|
64
|
+
throw new error_1.MongoRuntimeError('ClientSession requires a ServerSessionPool');
|
|
59
65
|
}
|
|
60
66
|
options = options !== null && options !== void 0 ? options : {};
|
|
61
67
|
if (options.snapshot === true) {
|
|
62
68
|
this[kSnapshotEnabled] = true;
|
|
63
69
|
if (options.causalConsistency === true) {
|
|
64
|
-
throw new error_1.
|
|
70
|
+
throw new error_1.MongoInvalidArgumentError('Properties "causalConsistency" and "snapshot" are mutually exclusive');
|
|
65
71
|
}
|
|
66
72
|
}
|
|
67
73
|
this.topology = topology;
|
|
@@ -95,15 +101,42 @@ class ClientSession extends mongo_types_1.TypedEventEmitter {
|
|
|
95
101
|
get snapshotEnabled() {
|
|
96
102
|
return this[kSnapshotEnabled];
|
|
97
103
|
}
|
|
104
|
+
get loadBalanced() {
|
|
105
|
+
return this.topology.description.type === common_1.TopologyType.LoadBalanced;
|
|
106
|
+
}
|
|
107
|
+
/** @internal */
|
|
108
|
+
get pinnedConnection() {
|
|
109
|
+
return this[kPinnedConnection];
|
|
110
|
+
}
|
|
111
|
+
/** @internal */
|
|
112
|
+
pin(conn) {
|
|
113
|
+
if (this[kPinnedConnection]) {
|
|
114
|
+
throw TypeError('Cannot pin multiple connections to the same session');
|
|
115
|
+
}
|
|
116
|
+
this[kPinnedConnection] = conn;
|
|
117
|
+
conn.emit(connection_1.Connection.PINNED, this.inTransaction() ? metrics_1.ConnectionPoolMetrics.TXN : metrics_1.ConnectionPoolMetrics.CURSOR);
|
|
118
|
+
}
|
|
119
|
+
/** @internal */
|
|
120
|
+
unpin(options) {
|
|
121
|
+
if (this.loadBalanced) {
|
|
122
|
+
return maybeClearPinnedConnection(this, options);
|
|
123
|
+
}
|
|
124
|
+
this.transaction.unpinServer();
|
|
125
|
+
}
|
|
126
|
+
get isPinned() {
|
|
127
|
+
return this.loadBalanced ? !!this[kPinnedConnection] : this.transaction.isPinned;
|
|
128
|
+
}
|
|
98
129
|
endSession(options, callback) {
|
|
99
130
|
if (typeof options === 'function')
|
|
100
131
|
(callback = options), (options = {});
|
|
101
|
-
|
|
132
|
+
const finalOptions = { force: true, ...options };
|
|
102
133
|
return utils_1.maybePromise(callback, done => {
|
|
103
134
|
if (this.hasEnded) {
|
|
135
|
+
maybeClearPinnedConnection(this, finalOptions);
|
|
104
136
|
return done();
|
|
105
137
|
}
|
|
106
138
|
const completeEndSession = () => {
|
|
139
|
+
maybeClearPinnedConnection(this, finalOptions);
|
|
107
140
|
// release the server session back to the pool
|
|
108
141
|
this.sessionPool.release(this.serverSession);
|
|
109
142
|
this[kServerSession] = undefined;
|
|
@@ -138,6 +171,28 @@ class ClientSession extends mongo_types_1.TypedEventEmitter {
|
|
|
138
171
|
this.operationTime = operationTime;
|
|
139
172
|
}
|
|
140
173
|
}
|
|
174
|
+
/**
|
|
175
|
+
* Advances the clusterTime for a ClientSession to the provided clusterTime of another ClientSession
|
|
176
|
+
*
|
|
177
|
+
* @param clusterTime - the $clusterTime returned by the server from another session in the form of a document containing the `BSON.Timestamp` clusterTime and signature
|
|
178
|
+
*/
|
|
179
|
+
advanceClusterTime(clusterTime) {
|
|
180
|
+
var _b, _c;
|
|
181
|
+
if (!clusterTime || typeof clusterTime !== 'object') {
|
|
182
|
+
throw new error_1.MongoInvalidArgumentError('input cluster time must be an object');
|
|
183
|
+
}
|
|
184
|
+
if (!clusterTime.clusterTime || clusterTime.clusterTime._bsontype !== 'Timestamp') {
|
|
185
|
+
throw new error_1.MongoInvalidArgumentError('input cluster time "clusterTime" property must be a valid BSON Timestamp');
|
|
186
|
+
}
|
|
187
|
+
if (!clusterTime.signature ||
|
|
188
|
+
((_b = clusterTime.signature.hash) === null || _b === void 0 ? void 0 : _b._bsontype) !== 'Binary' ||
|
|
189
|
+
(typeof clusterTime.signature.keyId !== 'number' &&
|
|
190
|
+
((_c = clusterTime.signature.keyId) === null || _c === void 0 ? void 0 : _c._bsontype) !== 'Long') // apparently we decode the key to number?
|
|
191
|
+
) {
|
|
192
|
+
throw new error_1.MongoInvalidArgumentError('input cluster time must have a valid "signature" property with BSON Binary hash and BSON Long keyId');
|
|
193
|
+
}
|
|
194
|
+
common_1._advanceClusterTime(this, clusterTime);
|
|
195
|
+
}
|
|
141
196
|
/**
|
|
142
197
|
* Used to determine if this session equals another
|
|
143
198
|
*
|
|
@@ -171,17 +226,20 @@ class ClientSession extends mongo_types_1.TypedEventEmitter {
|
|
|
171
226
|
startTransaction(options) {
|
|
172
227
|
var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
|
|
173
228
|
if (this[kSnapshotEnabled]) {
|
|
174
|
-
throw new error_1.
|
|
229
|
+
throw new error_1.MongoCompatibilityError('Transactions are not allowed with snapshot sessions');
|
|
175
230
|
}
|
|
176
231
|
assertAlive(this);
|
|
177
232
|
if (this.inTransaction()) {
|
|
178
|
-
throw new error_1.
|
|
233
|
+
throw new error_1.MongoTransactionError('Transaction already in progress');
|
|
234
|
+
}
|
|
235
|
+
if (this.isPinned && this.transaction.isCommitted) {
|
|
236
|
+
this.unpin();
|
|
179
237
|
}
|
|
180
238
|
const topologyMaxWireVersion = utils_1.maxWireVersion(this.topology);
|
|
181
239
|
if (shared_1.isSharded(this.topology) &&
|
|
182
240
|
topologyMaxWireVersion != null &&
|
|
183
241
|
topologyMaxWireVersion < minWireVersionForShardedTransactions) {
|
|
184
|
-
throw new error_1.
|
|
242
|
+
throw new error_1.MongoCompatibilityError('Transactions are not supported on sharded clusters in MongoDB < 4.2.');
|
|
185
243
|
}
|
|
186
244
|
// increment txnNumber
|
|
187
245
|
this.incrementTransactionNumber();
|
|
@@ -204,7 +262,7 @@ class ClientSession extends mongo_types_1.TypedEventEmitter {
|
|
|
204
262
|
* This is here to ensure that ClientSession is never serialized to BSON.
|
|
205
263
|
*/
|
|
206
264
|
toBSON() {
|
|
207
|
-
throw new error_1.
|
|
265
|
+
throw new error_1.MongoRuntimeError('ClientSession cannot be serialized to BSON.');
|
|
208
266
|
}
|
|
209
267
|
/**
|
|
210
268
|
* Runs a provided lambda within a transaction, retrying either the commit operation
|
|
@@ -242,6 +300,34 @@ function isUnknownTransactionCommitResult(err) {
|
|
|
242
300
|
err.code !== error_1.MONGODB_ERROR_CODES.UnsatisfiableWriteConcern &&
|
|
243
301
|
err.code !== error_1.MONGODB_ERROR_CODES.UnknownReplWriteConcern));
|
|
244
302
|
}
|
|
303
|
+
function maybeClearPinnedConnection(session, options) {
|
|
304
|
+
// unpin a connection if it has been pinned
|
|
305
|
+
const conn = session[kPinnedConnection];
|
|
306
|
+
const error = options === null || options === void 0 ? void 0 : options.error;
|
|
307
|
+
if (session.inTransaction() &&
|
|
308
|
+
error &&
|
|
309
|
+
error instanceof error_1.MongoError &&
|
|
310
|
+
error.hasErrorLabel('TransientTransactionError')) {
|
|
311
|
+
return;
|
|
312
|
+
}
|
|
313
|
+
// NOTE: the spec talks about what to do on a network error only, but the tests seem to
|
|
314
|
+
// to validate that we don't unpin on _all_ errors?
|
|
315
|
+
if (conn) {
|
|
316
|
+
const servers = Array.from(session.topology.s.servers.values());
|
|
317
|
+
const loadBalancer = servers[0];
|
|
318
|
+
if ((options === null || options === void 0 ? void 0 : options.error) == null || (options === null || options === void 0 ? void 0 : options.force)) {
|
|
319
|
+
loadBalancer.s.pool.checkIn(conn);
|
|
320
|
+
conn.emit(connection_1.Connection.UNPINNED, session.transaction.state !== transactions_1.TxnState.NO_TRANSACTION
|
|
321
|
+
? metrics_1.ConnectionPoolMetrics.TXN
|
|
322
|
+
: metrics_1.ConnectionPoolMetrics.CURSOR);
|
|
323
|
+
if (options === null || options === void 0 ? void 0 : options.forceClear) {
|
|
324
|
+
loadBalancer.s.pool.clear(conn.serviceId);
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
session[kPinnedConnection] = undefined;
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
exports.maybeClearPinnedConnection = maybeClearPinnedConnection;
|
|
245
331
|
function isMaxTimeMSExpiredError(err) {
|
|
246
332
|
if (err == null || !(err instanceof error_1.MongoServerError)) {
|
|
247
333
|
return false;
|
|
@@ -284,7 +370,7 @@ function attemptTransaction(session, startTime, fn, options) {
|
|
|
284
370
|
}
|
|
285
371
|
if (!utils_1.isPromiseLike(promise)) {
|
|
286
372
|
session.abortTransaction();
|
|
287
|
-
throw new error_1.
|
|
373
|
+
throw new error_1.MongoInvalidArgumentError('Function provided to `withTransaction` must return a Promise');
|
|
288
374
|
}
|
|
289
375
|
return promise.then(() => {
|
|
290
376
|
if (userExplicitlyEndedTransaction(session)) {
|
|
@@ -317,7 +403,7 @@ function endTransaction(session, commandName, callback) {
|
|
|
317
403
|
// handle any initial problematic cases
|
|
318
404
|
const txnState = session.transaction.state;
|
|
319
405
|
if (txnState === transactions_1.TxnState.NO_TRANSACTION) {
|
|
320
|
-
callback(new error_1.
|
|
406
|
+
callback(new error_1.MongoTransactionError('No transaction started'));
|
|
321
407
|
return;
|
|
322
408
|
}
|
|
323
409
|
if (commandName === 'commitTransaction') {
|
|
@@ -329,7 +415,7 @@ function endTransaction(session, commandName, callback) {
|
|
|
329
415
|
return;
|
|
330
416
|
}
|
|
331
417
|
if (txnState === transactions_1.TxnState.TRANSACTION_ABORTED) {
|
|
332
|
-
callback(new error_1.
|
|
418
|
+
callback(new error_1.MongoTransactionError('Cannot call commitTransaction after calling abortTransaction'));
|
|
333
419
|
return;
|
|
334
420
|
}
|
|
335
421
|
}
|
|
@@ -341,12 +427,12 @@ function endTransaction(session, commandName, callback) {
|
|
|
341
427
|
return;
|
|
342
428
|
}
|
|
343
429
|
if (txnState === transactions_1.TxnState.TRANSACTION_ABORTED) {
|
|
344
|
-
callback(new error_1.
|
|
430
|
+
callback(new error_1.MongoTransactionError('Cannot call abortTransaction twice'));
|
|
345
431
|
return;
|
|
346
432
|
}
|
|
347
433
|
if (txnState === transactions_1.TxnState.TRANSACTION_COMMITTED ||
|
|
348
434
|
txnState === transactions_1.TxnState.TRANSACTION_COMMITTED_EMPTY) {
|
|
349
|
-
callback(new error_1.
|
|
435
|
+
callback(new error_1.MongoTransactionError('Cannot call abortTransaction after calling commitTransaction'));
|
|
350
436
|
return;
|
|
351
437
|
}
|
|
352
438
|
}
|
|
@@ -372,6 +458,9 @@ function endTransaction(session, commandName, callback) {
|
|
|
372
458
|
function commandHandler(e, r) {
|
|
373
459
|
if (commandName !== 'commitTransaction') {
|
|
374
460
|
session.transaction.transition(transactions_1.TxnState.TRANSACTION_ABORTED);
|
|
461
|
+
if (session.loadBalanced) {
|
|
462
|
+
maybeClearPinnedConnection(session, { force: false });
|
|
463
|
+
}
|
|
375
464
|
// The spec indicates that we should ignore all errors on `abortTransaction`
|
|
376
465
|
return callback();
|
|
377
466
|
}
|
|
@@ -384,11 +473,11 @@ function endTransaction(session, commandName, callback) {
|
|
|
384
473
|
if (isUnknownTransactionCommitResult(e)) {
|
|
385
474
|
e.addErrorLabel('UnknownTransactionCommitResult');
|
|
386
475
|
// per txns spec, must unpin session in this case
|
|
387
|
-
session.
|
|
476
|
+
session.unpin({ error: e });
|
|
388
477
|
}
|
|
389
478
|
}
|
|
390
479
|
else if (e.hasErrorLabel('TransientTransactionError')) {
|
|
391
|
-
session.
|
|
480
|
+
session.unpin({ error: e });
|
|
392
481
|
}
|
|
393
482
|
}
|
|
394
483
|
callback(e, r);
|
|
@@ -400,20 +489,26 @@ function endTransaction(session, commandName, callback) {
|
|
|
400
489
|
// send the command
|
|
401
490
|
execute_operation_1.executeOperation(session.topology, new run_command_1.RunAdminCommandOperation(undefined, command, {
|
|
402
491
|
session,
|
|
403
|
-
readPreference: read_preference_1.ReadPreference.primary
|
|
492
|
+
readPreference: read_preference_1.ReadPreference.primary,
|
|
493
|
+
bypassPinningCheck: true
|
|
404
494
|
}), (err, reply) => {
|
|
495
|
+
if (command.abortTransaction) {
|
|
496
|
+
// always unpin on abort regardless of command outcome
|
|
497
|
+
session.unpin();
|
|
498
|
+
}
|
|
405
499
|
if (err && error_1.isRetryableError(err)) {
|
|
406
500
|
// SPEC-1185: apply majority write concern when retrying commitTransaction
|
|
407
501
|
if (command.commitTransaction) {
|
|
408
502
|
// per txns spec, must unpin session in this case
|
|
409
|
-
session.
|
|
503
|
+
session.unpin({ force: true });
|
|
410
504
|
command.writeConcern = Object.assign({ wtimeout: 10000 }, command.writeConcern, {
|
|
411
505
|
w: 'majority'
|
|
412
506
|
});
|
|
413
507
|
}
|
|
414
508
|
return execute_operation_1.executeOperation(session.topology, new run_command_1.RunAdminCommandOperation(undefined, command, {
|
|
415
509
|
session,
|
|
416
|
-
readPreference: read_preference_1.ReadPreference.primary
|
|
510
|
+
readPreference: read_preference_1.ReadPreference.primary,
|
|
511
|
+
bypassPinningCheck: true
|
|
417
512
|
}), (_err, _reply) => commandHandler(_err, _reply));
|
|
418
513
|
}
|
|
419
514
|
commandHandler(err, reply);
|
|
@@ -453,7 +548,7 @@ exports.ServerSession = ServerSession;
|
|
|
453
548
|
class ServerSessionPool {
|
|
454
549
|
constructor(topology) {
|
|
455
550
|
if (topology == null) {
|
|
456
|
-
throw new error_1.
|
|
551
|
+
throw new error_1.MongoRuntimeError('ServerSessionPool requires a topology');
|
|
457
552
|
}
|
|
458
553
|
this.topology = topology;
|
|
459
554
|
this.sessions = [];
|
|
@@ -483,7 +578,7 @@ class ServerSessionPool {
|
|
|
483
578
|
const sessionTimeoutMinutes = this.topology.logicalSessionTimeoutMinutes || 10;
|
|
484
579
|
while (this.sessions.length) {
|
|
485
580
|
const session = this.sessions.shift();
|
|
486
|
-
if (session && !session.hasTimedOut(sessionTimeoutMinutes)) {
|
|
581
|
+
if (session && (this.topology.loadBalanced || !session.hasTimedOut(sessionTimeoutMinutes))) {
|
|
487
582
|
return session;
|
|
488
583
|
}
|
|
489
584
|
}
|
|
@@ -498,6 +593,9 @@ class ServerSessionPool {
|
|
|
498
593
|
*/
|
|
499
594
|
release(session) {
|
|
500
595
|
const sessionTimeoutMinutes = this.topology.logicalSessionTimeoutMinutes;
|
|
596
|
+
if (this.topology.loadBalanced && !sessionTimeoutMinutes) {
|
|
597
|
+
this.sessions.unshift(session);
|
|
598
|
+
}
|
|
501
599
|
if (!sessionTimeoutMinutes) {
|
|
502
600
|
return;
|
|
503
601
|
}
|
|
@@ -546,17 +644,17 @@ function applySession(session, command, options) {
|
|
|
546
644
|
var _b;
|
|
547
645
|
// TODO: merge this with `assertAlive`, did not want to throw a try/catch here
|
|
548
646
|
if (session.hasEnded) {
|
|
549
|
-
return new error_1.
|
|
647
|
+
return new error_1.MongoExpiredSessionError();
|
|
550
648
|
}
|
|
551
649
|
const serverSession = session.serverSession;
|
|
552
650
|
if (serverSession == null) {
|
|
553
|
-
return new error_1.
|
|
651
|
+
return new error_1.MongoRuntimeError('Unable to acquire server session');
|
|
554
652
|
}
|
|
555
653
|
// SPEC-1019: silently ignore explicit session with unacknowledged write for backwards compatibility
|
|
556
654
|
// FIXME: NODE-2781, this check for write concern shouldn't be happening here, but instead during command construction
|
|
557
655
|
if (options && options.writeConcern && options.writeConcern.w === 0) {
|
|
558
656
|
if (session && session.explicit) {
|
|
559
|
-
return new error_1.
|
|
657
|
+
return new error_1.MongoAPIError('Cannot have explicit session with unacknowledged writes');
|
|
560
658
|
}
|
|
561
659
|
return;
|
|
562
660
|
}
|
|
@@ -581,7 +679,7 @@ function applySession(session, command, options) {
|
|
|
581
679
|
}
|
|
582
680
|
else if (session[kSnapshotEnabled]) {
|
|
583
681
|
command.readConcern = command.readConcern || { level: read_concern_1.ReadConcernLevel.snapshot };
|
|
584
|
-
if (session[kSnapshotTime]
|
|
682
|
+
if (session[kSnapshotTime] != null) {
|
|
585
683
|
Object.assign(command.readConcern, { atClusterTime: session[kSnapshotTime] });
|
|
586
684
|
}
|
|
587
685
|
}
|
|
@@ -607,7 +705,7 @@ exports.applySession = applySession;
|
|
|
607
705
|
function updateSessionFromResponse(session, document) {
|
|
608
706
|
var _b;
|
|
609
707
|
if (document.$clusterTime) {
|
|
610
|
-
common_1.
|
|
708
|
+
common_1._advanceClusterTime(session, document.$clusterTime);
|
|
611
709
|
}
|
|
612
710
|
if (document.operationTime && session && session.supports.causalConsistency) {
|
|
613
711
|
session.advanceOperationTime(document.operationTime);
|
|
@@ -615,10 +713,13 @@ function updateSessionFromResponse(session, document) {
|
|
|
615
713
|
if (document.recoveryToken && session && session.inTransaction()) {
|
|
616
714
|
session.transaction._recoveryToken = document.recoveryToken;
|
|
617
715
|
}
|
|
618
|
-
if ((
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
716
|
+
if ((session === null || session === void 0 ? void 0 : session[kSnapshotEnabled]) && session[kSnapshotTime] == null) {
|
|
717
|
+
// find and aggregate commands return atClusterTime on the cursor
|
|
718
|
+
// distinct includes it in the response body
|
|
719
|
+
const atClusterTime = ((_b = document.cursor) === null || _b === void 0 ? void 0 : _b.atClusterTime) || document.atClusterTime;
|
|
720
|
+
if (atClusterTime) {
|
|
721
|
+
session[kSnapshotTime] = atClusterTime;
|
|
722
|
+
}
|
|
622
723
|
}
|
|
623
724
|
}
|
|
624
725
|
exports.updateSessionFromResponse = updateSessionFromResponse;
|
package/lib/sessions.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sessions.js","sourceRoot":"","sources":["../src/sessions.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sessions.js","sourceRoot":"","sources":["../src/sessions.ts"],"names":[],"mappings":";;;;AAAA,yDAAqD;AACrD,iCAA2D;AAC3D,uDAAmD;AACnD,iDAAiG;AACjG,0CAA+E;AAC/E,wDAAwD;AACxD,mCAeiB;AACjB,mCAQiB;AAGjB,sEAAkE;AAClE,0DAAoE;AAGpE,kDAA+C;AAC/C,4CAAuD;AAEvD,+CAAkD;AAClD,iDAAkD;AAElD,MAAM,oCAAoC,GAAG,CAAC,CAAC;AAE/C,SAAS,WAAW,CAAC,OAAsB,EAAE,QAAmB;IAC9D,IAAI,OAAO,CAAC,aAAa,IAAI,IAAI,EAAE;QACjC,MAAM,KAAK,GAAG,IAAI,gCAAwB,EAAE,CAAC;QAC7C,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;YAClC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAChB,OAAO,KAAK,CAAC;SACd;QAED,MAAM,KAAK,CAAC;KACb;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AA2BD,gBAAgB;AAChB,MAAM,cAAc,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;AAC/C,gBAAgB;AAChB,MAAM,aAAa,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;AAC7C,gBAAgB;AAChB,MAAM,gBAAgB,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;AACnD,gBAAgB;AAChB,MAAM,iBAAiB,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC;AAarD;;;;;GAKG;AACH,MAAa,aAAc,SAAQ,+BAAsC;IAwBvE;;;;;;;OAOG;IACH,YACE,QAAkB,EAClB,WAA8B,EAC9B,OAA6B,EAC7B,aAA4B;QAE5B,KAAK,EAAE,CAAC;QAnBV,gBAAgB;QAChB,QAAkB,GAAG,KAAK,CAAC;QAoBzB,IAAI,QAAQ,IAAI,IAAI,EAAE;YACpB,kBAAkB;YAClB,MAAM,IAAI,yBAAiB,CAAC,mCAAmC,CAAC,CAAC;SAClE;QAED,IAAI,WAAW,IAAI,IAAI,IAAI,CAAC,CAAC,WAAW,YAAY,iBAAiB,CAAC,EAAE;YACtE,kBAAkB;YAClB,MAAM,IAAI,yBAAiB,CAAC,4CAA4C,CAAC,CAAC;SAC3E;QAED,OAAO,GAAG,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,EAAE,CAAC;QAExB,IAAI,OAAO,CAAC,QAAQ,KAAK,IAAI,EAAE;YAC7B,IAAI,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC;YAC9B,IAAI,OAAO,CAAC,iBAAiB,KAAK,IAAI,EAAE;gBACtC,MAAM,IAAI,iCAAyB,CACjC,sEAAsE,CACvE,CAAC;aACH;SACF;QAED,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,cAAc,CAAC,GAAG,SAAS,CAAC;QAEjC,IAAI,CAAC,QAAQ,GAAG;YACd,iBAAiB,EAAE,OAAO,CAAC,QAAQ,KAAK,IAAI,IAAI,OAAO,CAAC,iBAAiB,KAAK,KAAK;SACpF,CAAC;QAEF,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,kBAAkB,CAAC;QAE9C,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;QAC/B,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;QACnC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,yBAAyB,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,yBAAyB,CAAC,CAAC;QACtF,IAAI,CAAC,WAAW,GAAG,IAAI,0BAAW,EAAE,CAAC;IACvC,CAAC;IAED,iDAAiD;IACjD,IAAI,EAAE;;QACJ,OAAO,MAAA,IAAI,CAAC,aAAa,0CAAE,EAAE,CAAC;IAChC,CAAC;IAED,IAAI,aAAa;QACf,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,IAAI,EAAE;YAChC,IAAI,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;SACnD;QAED,oEAAoE;QACpE,OAAO,IAAI,CAAC,cAAc,CAAE,CAAC;IAC/B,CAAC;IAED,mEAAmE;IACnE,IAAI,eAAe;QACjB,OAAO,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAChC,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,KAAK,qBAAY,CAAC,YAAY,CAAC;IACtE,CAAC;IAED,gBAAgB;IAChB,IAAI,gBAAgB;QAClB,OAAO,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACjC,CAAC;IAED,gBAAgB;IAChB,GAAG,CAAC,IAAgB;QAClB,IAAI,IAAI,CAAC,iBAAiB,CAAC,EAAE;YAC3B,MAAM,SAAS,CAAC,qDAAqD,CAAC,CAAC;SACxE;QAED,IAAI,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC;QAC/B,IAAI,CAAC,IAAI,CACP,uBAAU,CAAC,MAAM,EACjB,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,+BAAqB,CAAC,GAAG,CAAC,CAAC,CAAC,+BAAqB,CAAC,MAAM,CAChF,CAAC;IACJ,CAAC;IAED,gBAAgB;IAChB,KAAK,CAAC,OAAqE;QACzE,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,OAAO,0BAA0B,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;SAClD;QAED,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;IACjC,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;IACnF,CAAC;IAYD,UAAU,CACR,OAA4C,EAC5C,QAAyB;QAEzB,IAAI,OAAO,OAAO,KAAK,UAAU;YAAE,CAAC,QAAQ,GAAG,OAAO,CAAC,EAAE,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;QACxE,MAAM,YAAY,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC;QAEjD,OAAO,oBAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE;YACnC,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACjB,0BAA0B,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;gBAC/C,OAAO,IAAI,EAAE,CAAC;aACf;YAED,MAAM,kBAAkB,GAAG,GAAG,EAAE;gBAC9B,0BAA0B,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;gBAE/C,8CAA8C;gBAC9C,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBAC7C,IAAI,CAAC,cAAc,CAAC,GAAG,SAAS,CAAC;gBAEjC,+CAA+C;gBAC/C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;gBACrB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gBAEzB,oEAAoE;gBACpE,IAAI,EAAE,CAAC;YACT,CAAC,CAAC;YAEF,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;gBAC9C,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE;oBAC1B,IAAI,GAAG;wBAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;oBAC1B,kBAAkB,EAAE,CAAC;gBACvB,CAAC,CAAC,CAAC;gBAEH,OAAO;aACR;YAED,kBAAkB,EAAE,CAAC;QACvB,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,oBAAoB,CAAC,aAAwB;QAC3C,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,EAAE;YAC9B,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;YACnC,OAAO;SACR;QAED,IAAI,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE;YACjD,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;SACpC;IACH,CAAC;IAED;;;;OAIG;IACH,kBAAkB,CAAC,WAAwB;;QACzC,IAAI,CAAC,WAAW,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE;YACnD,MAAM,IAAI,iCAAyB,CAAC,sCAAsC,CAAC,CAAC;SAC7E;QACD,IAAI,CAAC,WAAW,CAAC,WAAW,IAAI,WAAW,CAAC,WAAW,CAAC,SAAS,KAAK,WAAW,EAAE;YACjF,MAAM,IAAI,iCAAyB,CACjC,0EAA0E,CAC3E,CAAC;SACH;QACD,IACE,CAAC,WAAW,CAAC,SAAS;YACtB,CAAA,MAAA,WAAW,CAAC,SAAS,CAAC,IAAI,0CAAE,SAAS,MAAK,QAAQ;YAClD,CAAC,OAAO,WAAW,CAAC,SAAS,CAAC,KAAK,KAAK,QAAQ;gBAC9C,CAAA,MAAA,WAAW,CAAC,SAAS,CAAC,KAAK,0CAAE,SAAS,MAAK,MAAM,CAAC,CAAC,0CAA0C;UAC/F;YACA,MAAM,IAAI,iCAAyB,CACjC,qGAAqG,CACtG,CAAC;SACH;QAED,4BAAmB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IACzC,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,OAAsB;QAC3B,IAAI,CAAC,CAAC,OAAO,YAAY,aAAa,CAAC,EAAE;YACvC,OAAO,KAAK,CAAC;SACd;QAED,IAAI,IAAI,CAAC,EAAE,IAAI,IAAI,IAAI,OAAO,CAAC,EAAE,IAAI,IAAI,EAAE;YACzC,OAAO,KAAK,CAAC;SACd;QAED,OAAO,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;IACxD,CAAC;IAED,qEAAqE;IACrE,0BAA0B;QACxB,IAAI,IAAI,CAAC,aAAa,EAAE;YACtB,IAAI,CAAC,aAAa,CAAC,SAAS;gBAC1B,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAC3F;IACH,CAAC;IAED,yEAAyE;IACzE,aAAa;QACX,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;IACnC,CAAC;IAED;;;;OAIG;IACH,gBAAgB,CAAC,OAA4B;;QAC3C,IAAI,IAAI,CAAC,gBAAgB,CAAC,EAAE;YAC1B,MAAM,IAAI,+BAAuB,CAAC,qDAAqD,CAAC,CAAC;SAC1F;QAED,WAAW,CAAC,IAAI,CAAC,CAAC;QAClB,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;YACxB,MAAM,IAAI,6BAAqB,CAAC,iCAAiC,CAAC,CAAC;SACpE;QAED,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE;YACjD,IAAI,CAAC,KAAK,EAAE,CAAC;SACd;QAED,MAAM,sBAAsB,GAAG,sBAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC7D,IACE,kBAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;YACxB,sBAAsB,IAAI,IAAI;YAC9B,sBAAsB,GAAG,oCAAoC,EAC7D;YACA,MAAM,IAAI,+BAAuB,CAC/B,sEAAsE,CACvE,CAAC;SACH;QAED,sBAAsB;QACtB,IAAI,CAAC,0BAA0B,EAAE,CAAC;QAClC,2BAA2B;QAC3B,IAAI,CAAC,WAAW,GAAG,IAAI,0BAAW,CAAC;YACjC,WAAW,EACT,MAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,mCACpB,IAAI,CAAC,yBAAyB,CAAC,WAAW,mCAC1C,MAAA,IAAI,CAAC,aAAa,0CAAE,WAAW;YACjC,YAAY,EACV,MAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,YAAY,mCACrB,IAAI,CAAC,yBAAyB,CAAC,YAAY,mCAC3C,MAAA,IAAI,CAAC,aAAa,0CAAE,YAAY;YAClC,cAAc,EACZ,MAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,cAAc,mCACvB,IAAI,CAAC,yBAAyB,CAAC,cAAc,mCAC7C,MAAA,IAAI,CAAC,aAAa,0CAAE,cAAc;YACpC,eAAe,EAAE,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,eAAe,mCAAI,IAAI,CAAC,yBAAyB,CAAC,eAAe;SAC5F,CAAC,CAAC;QAEH,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,uBAAQ,CAAC,oBAAoB,CAAC,CAAC;IAC7D,CAAC;IASD,iBAAiB,CAAC,QAA6B;QAC7C,OAAO,oBAAY,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,cAAc,CAAC,IAAI,EAAE,mBAAmB,EAAE,EAAE,CAAC,CAAC,CAAC;IACrF,CAAC;IASD,gBAAgB,CAAC,QAA6B;QAC5C,OAAO,oBAAY,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,cAAc,CAAC,IAAI,EAAE,kBAAkB,EAAE,EAAE,CAAC,CAAC,CAAC;IACpF,CAAC;IAED;;OAEG;IACH,MAAM;QACJ,MAAM,IAAI,yBAAiB,CAAC,6CAA6C,CAAC,CAAC;IAC7E,CAAC;IAED;;;;;;;;;;OAUG;IACH,eAAe,CACb,EAA8B,EAC9B,OAA4B;QAE5B,MAAM,SAAS,GAAG,WAAG,EAAE,CAAC;QACxB,OAAO,kBAAkB,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;IAC1D,CAAC;CACF;AAtWD,sCAsWC;KAlVE,gBAAgB;AAoVnB,MAAM,4BAA4B,GAAG,MAAM,CAAC;AAC5C,MAAM,sCAAsC,GAAG,IAAI,GAAG,CAAC;IACrD,2BAA2B;IAC3B,yBAAyB;IACzB,2BAA2B;CAC5B,CAAC,CAAC;AAEH,SAAS,cAAc,CAAC,SAAiB,EAAE,GAAW;IACpD,OAAO,6BAAqB,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC;AAChD,CAAC;AAED,SAAS,gCAAgC,CAAC,GAAe;IACvD,MAAM,mCAAmC,GACvC,GAAG,YAAY,wBAAgB;QAC/B,GAAG,CAAC,QAAQ;QACZ,sCAAsC,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAE3D,OAAO,CACL,uBAAuB,CAAC,GAAG,CAAC;QAC5B,CAAC,CAAC,mCAAmC;YACnC,GAAG,CAAC,IAAI,KAAK,2BAAmB,CAAC,yBAAyB;YAC1D,GAAG,CAAC,IAAI,KAAK,2BAAmB,CAAC,uBAAuB,CAAC,CAC5D,CAAC;AACJ,CAAC;AAED,SAAgB,0BAA0B,CACxC,OAAsB,EACtB,OAA2B;IAE3B,2CAA2C;IAC3C,MAAM,IAAI,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACxC,MAAM,KAAK,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,CAAC;IAE7B,IACE,OAAO,CAAC,aAAa,EAAE;QACvB,KAAK;QACL,KAAK,YAAY,kBAAU;QAC3B,KAAK,CAAC,aAAa,CAAC,2BAA2B,CAAC,EAChD;QACA,OAAO;KACR;IAED,uFAAuF;IACvF,yDAAyD;IACzD,IAAI,IAAI,EAAE;QACR,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QAChE,MAAM,YAAY,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAEhC,IAAI,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,KAAI,IAAI,KAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,CAAA,EAAE;YAC5C,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAClC,IAAI,CAAC,IAAI,CACP,uBAAU,CAAC,QAAQ,EACnB,OAAO,CAAC,WAAW,CAAC,KAAK,KAAK,uBAAQ,CAAC,cAAc;gBACnD,CAAC,CAAC,+BAAqB,CAAC,GAAG;gBAC3B,CAAC,CAAC,+BAAqB,CAAC,MAAM,CACjC,CAAC;YAEF,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU,EAAE;gBACvB,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;aAC3C;SACF;QAED,OAAO,CAAC,iBAAiB,CAAC,GAAG,SAAS,CAAC;KACxC;AACH,CAAC;AAvCD,gEAuCC;AAED,SAAS,uBAAuB,CAAC,GAAe;IAC9C,IAAI,GAAG,IAAI,IAAI,IAAI,CAAC,CAAC,GAAG,YAAY,wBAAgB,CAAC,EAAE;QACrD,OAAO,KAAK,CAAC;KACd;IAED,OAAO,CACL,GAAG,CAAC,IAAI,KAAK,2BAAmB,CAAC,gBAAgB;QACjD,CAAC,GAAG,CAAC,iBAAiB,IAAI,GAAG,CAAC,iBAAiB,CAAC,IAAI,KAAK,2BAAmB,CAAC,gBAAgB,CAAC,CAC/F,CAAC;AACJ,CAAC;AAED,SAAS,wBAAwB,CAC/B,OAAsB,EACtB,SAAiB,EACjB,EAA8B,EAC9B,OAA4B;IAE5B,OAAO,OAAO,CAAC,iBAAiB,EAAE,CAAC,KAAK,CAAC,CAAC,GAAe,EAAE,EAAE;QAC3D,IACE,GAAG,YAAY,kBAAU;YACzB,cAAc,CAAC,SAAS,EAAE,4BAA4B,CAAC;YACvD,CAAC,uBAAuB,CAAC,GAAG,CAAC,EAC7B;YACA,IAAI,GAAG,CAAC,aAAa,CAAC,gCAAgC,CAAC,EAAE;gBACvD,OAAO,wBAAwB,CAAC,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;aAClE;YAED,IAAI,GAAG,CAAC,aAAa,CAAC,2BAA2B,CAAC,EAAE;gBAClD,OAAO,kBAAkB,CAAC,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;aAC5D;SACF;QAED,MAAM,GAAG,CAAC;IACZ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,4BAA4B,GAAG,IAAI,GAAG,CAAW;IACrD,uBAAQ,CAAC,cAAc;IACvB,uBAAQ,CAAC,qBAAqB;IAC9B,uBAAQ,CAAC,mBAAmB;CAC7B,CAAC,CAAC;AAEH,SAAS,8BAA8B,CAAC,OAAsB;IAC5D,OAAO,4BAA4B,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AACrE,CAAC;AAED,SAAS,kBAAkB,CACzB,OAAsB,EACtB,SAAiB,EACjB,EAAoC,EACpC,OAA4B;IAE5B,MAAM,OAAO,GAAG,kCAAe,CAAC,GAAG,EAAE,CAAC;IACtC,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAElC,IAAI,OAAO,CAAC;IACZ,IAAI;QACF,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC;KACvB;IAAC,OAAO,GAAG,EAAE;QACZ,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;KAC/B;IAED,IAAI,CAAC,qBAAa,CAAC,OAAO,CAAC,EAAE;QAC3B,OAAO,CAAC,gBAAgB,EAAE,CAAC;QAC3B,MAAM,IAAI,iCAAyB,CACjC,8DAA8D,CAC/D,CAAC;KACH;IAED,OAAO,OAAO,CAAC,IAAI,CACjB,GAAG,EAAE;QACH,IAAI,8BAA8B,CAAC,OAAO,CAAC,EAAE;YAC3C,OAAO;SACR;QAED,OAAO,wBAAwB,CAAC,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;IACnE,CAAC,EACD,GAAG,CAAC,EAAE;QACJ,SAAS,iBAAiB,CAAC,GAAe;YACxC,IACE,GAAG,YAAY,kBAAU;gBACzB,GAAG,CAAC,aAAa,CAAC,2BAA2B,CAAC;gBAC9C,cAAc,CAAC,SAAS,EAAE,4BAA4B,CAAC,EACvD;gBACA,OAAO,kBAAkB,CAAC,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;aAC5D;YAED,IAAI,uBAAuB,CAAC,GAAG,CAAC,EAAE;gBAChC,GAAG,CAAC,aAAa,CAAC,gCAAgC,CAAC,CAAC;aACrD;YAED,MAAM,GAAG,CAAC;QACZ,CAAC;QAED,IAAI,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE;YAChC,OAAO,OAAO,CAAC,gBAAgB,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC;SACtE;QAED,OAAO,iBAAiB,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC,CACF,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,OAAsB,EAAE,WAAmB,EAAE,QAA4B;IAC/F,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE;QACnC,8CAA8C;QAC9C,OAAO;KACR;IAED,uCAAuC;IACvC,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC;IAE3C,IAAI,QAAQ,KAAK,uBAAQ,CAAC,cAAc,EAAE;QACxC,QAAQ,CAAC,IAAI,6BAAqB,CAAC,wBAAwB,CAAC,CAAC,CAAC;QAC9D,OAAO;KACR;IAED,IAAI,WAAW,KAAK,mBAAmB,EAAE;QACvC,IACE,QAAQ,KAAK,uBAAQ,CAAC,oBAAoB;YAC1C,QAAQ,KAAK,uBAAQ,CAAC,2BAA2B,EACjD;YACA,6DAA6D;YAC7D,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,uBAAQ,CAAC,2BAA2B,CAAC,CAAC;YACrE,QAAQ,EAAE,CAAC;YACX,OAAO;SACR;QAED,IAAI,QAAQ,KAAK,uBAAQ,CAAC,mBAAmB,EAAE;YAC7C,QAAQ,CACN,IAAI,6BAAqB,CAAC,8DAA8D,CAAC,CAC1F,CAAC;YACF,OAAO;SACR;KACF;SAAM;QACL,IAAI,QAAQ,KAAK,uBAAQ,CAAC,oBAAoB,EAAE;YAC9C,6DAA6D;YAC7D,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,uBAAQ,CAAC,mBAAmB,CAAC,CAAC;YAC7D,QAAQ,EAAE,CAAC;YACX,OAAO;SACR;QAED,IAAI,QAAQ,KAAK,uBAAQ,CAAC,mBAAmB,EAAE;YAC7C,QAAQ,CAAC,IAAI,6BAAqB,CAAC,oCAAoC,CAAC,CAAC,CAAC;YAC1E,OAAO;SACR;QAED,IACE,QAAQ,KAAK,uBAAQ,CAAC,qBAAqB;YAC3C,QAAQ,KAAK,uBAAQ,CAAC,2BAA2B,EACjD;YACA,QAAQ,CACN,IAAI,6BAAqB,CAAC,8DAA8D,CAAC,CAC1F,CAAC;YACF,OAAO;SACR;KACF;IAED,iCAAiC;IACjC,MAAM,OAAO,GAAa,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC;IAE/C,oCAAoC;IACpC,IAAI,YAAY,CAAC;IACjB,IAAI,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,YAAY,EAAE;QAC5C,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;KAC5E;SAAM,IAAI,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,aAAa,CAAC,YAAY,EAAE;QACtE,YAAY,GAAG,EAAE,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC;KAC5D;IAED,IAAI,QAAQ,KAAK,uBAAQ,CAAC,qBAAqB,EAAE;QAC/C,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,YAAY,EAAE,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;KACpF;IAED,IAAI,YAAY,EAAE;QAChB,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC;KAC1C;IAED,IAAI,WAAW,KAAK,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,EAAE;QAChF,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;KAC9E;IAED,SAAS,cAAc,CAAC,CAAc,EAAE,CAAY;QAClD,IAAI,WAAW,KAAK,mBAAmB,EAAE;YACvC,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,uBAAQ,CAAC,mBAAmB,CAAC,CAAC;YAC7D,IAAI,OAAO,CAAC,YAAY,EAAE;gBACxB,0BAA0B,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;aACvD;YAED,4EAA4E;YAC5E,OAAO,QAAQ,EAAE,CAAC;SACnB;QAED,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,uBAAQ,CAAC,qBAAqB,CAAC,CAAC;QAC/D,IAAI,CAAC,EAAE;YACL,IACE,CAAC,YAAY,yBAAiB;gBAC9B,CAAC,YAAY,8BAAsB;gBACnC,wBAAgB,CAAC,CAAC,CAAC;gBACnB,uBAAuB,CAAC,CAAC,CAAC,EAC1B;gBACA,IAAI,gCAAgC,CAAC,CAAC,CAAC,EAAE;oBACvC,CAAC,CAAC,aAAa,CAAC,gCAAgC,CAAC,CAAC;oBAElD,iDAAiD;oBACjD,OAAO,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;iBAC7B;aACF;iBAAM,IAAI,CAAC,CAAC,aAAa,CAAC,2BAA2B,CAAC,EAAE;gBACvD,OAAO,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;aAC7B;SACF;QAED,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACjB,CAAC;IAED,gFAAgF;IAChF,IAAI,OAAO,CAAC,WAAW,CAAC,aAAa,EAAE;QACrC,OAAO,CAAC,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC,aAAa,CAAC;KAC3D;IAED,mBAAmB;IACnB,oCAAgB,CACd,OAAO,CAAC,QAAQ,EAChB,IAAI,sCAAwB,CAAC,SAAS,EAAE,OAAO,EAAE;QAC/C,OAAO;QACP,cAAc,EAAE,gCAAc,CAAC,OAAO;QACtC,kBAAkB,EAAE,IAAI;KACzB,CAAC,EACF,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;QACb,IAAI,OAAO,CAAC,gBAAgB,EAAE;YAC5B,sDAAsD;YACtD,OAAO,CAAC,KAAK,EAAE,CAAC;SACjB;QAED,IAAI,GAAG,IAAI,wBAAgB,CAAC,GAAiB,CAAC,EAAE;YAC9C,0EAA0E;YAC1E,IAAI,OAAO,CAAC,iBAAiB,EAAE;gBAC7B,iDAAiD;gBACjD,OAAO,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;gBAE/B,OAAO,CAAC,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,OAAO,CAAC,YAAY,EAAE;oBAC9E,CAAC,EAAE,UAAU;iBACd,CAAC,CAAC;aACJ;YAED,OAAO,oCAAgB,CACrB,OAAO,CAAC,QAAQ,EAChB,IAAI,sCAAwB,CAAC,SAAS,EAAE,OAAO,EAAE;gBAC/C,OAAO;gBACP,cAAc,EAAE,gCAAc,CAAC,OAAO;gBACtC,kBAAkB,EAAE,IAAI;aACzB,CAAC,EACF,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,cAAc,CAAC,IAAkB,EAAE,MAAM,CAAC,CAC7D,CAAC;SACH;QAED,cAAc,CAAC,GAAiB,EAAE,KAAK,CAAC,CAAC;IAC3C,CAAC,CACF,CAAC;AACJ,CAAC;AAKD;;;;GAIG;AACH,MAAa,aAAa;IAMxB,gBAAgB;IAChB;QACE,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,aAAM,CAAC,cAAM,EAAE,EAAE,aAAM,CAAC,YAAY,CAAC,EAAE,CAAC;QAC5D,IAAI,CAAC,OAAO,GAAG,WAAG,EAAE,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QACnB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACvB,CAAC;IAED;;;;OAIG;IACH,WAAW,CAAC,qBAA6B;QACvC,wFAAwF;QACxF,+FAA+F;QAC/F,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAChC,CAAC,CAAC,6BAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAC,GAAG,OAAO,CAAC,GAAG,KAAK,CACrE,CAAC;QAEF,OAAO,eAAe,GAAG,qBAAqB,GAAG,CAAC,CAAC;IACrD,CAAC;CACF;AA5BD,sCA4BC;AAED;;;;GAIG;AACH,MAAa,iBAAiB;IAI5B,YAAY,QAAkB;QAC5B,IAAI,QAAQ,IAAI,IAAI,EAAE;YACpB,MAAM,IAAI,yBAAiB,CAAC,uCAAuC,CAAC,CAAC;SACtE;QAED,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;IACrB,CAAC;IAED,4CAA4C;IAC5C,oBAAoB,CAAC,QAAyB;QAC5C,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;YACxB,IAAI,CAAC,QAAQ,CAAC,WAAW,CACvB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAsB,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,EACzD,GAAG,EAAE;gBACH,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;gBACnB,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;oBAClC,QAAQ,EAAE,CAAC;iBACZ;YACH,CAAC,CACF,CAAC;YAEF,OAAO;SACR;QAED,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;YAClC,QAAQ,EAAE,CAAC;SACZ;IACH,CAAC;IAED;;;;;OAKG;IACH,OAAO;QACL,MAAM,qBAAqB,GAAG,IAAI,CAAC,QAAQ,CAAC,4BAA4B,IAAI,EAAE,CAAC;QAE/E,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;YAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;YACtC,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,qBAAqB,CAAC,CAAC,EAAE;gBAC1F,OAAO,OAAO,CAAC;aAChB;SACF;QAED,OAAO,IAAI,aAAa,EAAE,CAAC;IAC7B,CAAC;IAED;;;;;;OAMG;IACH,OAAO,CAAC,OAAsB;QAC5B,MAAM,qBAAqB,GAAG,IAAI,CAAC,QAAQ,CAAC,4BAA4B,CAAC;QAEzE,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,IAAI,CAAC,qBAAqB,EAAE;YACxD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;SAChC;QAED,IAAI,CAAC,qBAAqB,EAAE;YAC1B,OAAO;SACR;QAED,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;YAC3B,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAC9D,IAAI,aAAa,CAAC,WAAW,CAAC,qBAAqB,CAAC,EAAE;gBACpD,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;aACrB;iBAAM;gBACL,MAAM;aACP;SACF;QAED,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,qBAAqB,CAAC,EAAE;YAC/C,IAAI,OAAO,CAAC,OAAO,EAAE;gBACnB,OAAO;aACR;YAED,oDAAoD;YACpD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;SAChC;IACH,CAAC;CACF;AAzFD,8CAyFC;AAED,wDAAwD;AACxD,2HAA2H;AAC3H,SAAgB,0BAA0B,CAAC,OAAiB,EAAE,OAAkB;IAC9E,IAAI,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,OAAO,EAAE;QAC7F,OAAO,IAAI,CAAC;KACb;IAED,IACE,OAAO,CAAC,SAAS;QACjB,OAAO;QACP,OAAO,CAAC,GAAG;QACX,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,GAAG,KAAK,QAAQ,CAAC,EACtD;QACA,OAAO,IAAI,CAAC;KACb;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAfD,gEAeC;AAED;;;;;;GAMG;AACH,SAAgB,YAAY,CAC1B,OAAsB,EACtB,OAAiB,EACjB,OAAwB;;IAExB,8EAA8E;IAC9E,IAAI,OAAO,CAAC,QAAQ,EAAE;QACpB,OAAO,IAAI,gCAAwB,EAAE,CAAC;KACvC;IAED,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;IAC5C,IAAI,aAAa,IAAI,IAAI,EAAE;QACzB,OAAO,IAAI,yBAAiB,CAAC,kCAAkC,CAAC,CAAC;KAClE;IAED,oGAAoG;IACpG,sHAAsH;IACtH,IAAI,OAAO,IAAI,OAAO,CAAC,YAAY,IAAK,OAAO,CAAC,YAA6B,CAAC,CAAC,KAAK,CAAC,EAAE;QACrF,IAAI,OAAO,IAAI,OAAO,CAAC,QAAQ,EAAE;YAC/B,OAAO,IAAI,qBAAa,CAAC,yDAAyD,CAAC,CAAC;SACrF;QACD,OAAO;KACR;IAED,0DAA0D;IAC1D,aAAa,CAAC,OAAO,GAAG,WAAG,EAAE,CAAC;IAC9B,OAAO,CAAC,IAAI,GAAG,aAAa,CAAC,EAAE,CAAC;IAEhC,qDAAqD;IACrD,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,EAAE,IAAI,mCAAoB,CAAC,OAAO,CAAC,CAAC;IAC/E,MAAM,gBAAgB,GAAG,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,cAAc,KAAI,KAAK,CAAC;IAE1D,IAAI,aAAa,CAAC,SAAS,IAAI,CAAC,gBAAgB,IAAI,aAAa,CAAC,EAAE;QAClE,OAAO,CAAC,SAAS,GAAG,WAAI,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;KAC9D;IAED,IAAI,CAAC,aAAa,EAAE;QAClB,IAAI,OAAO,CAAC,WAAW,CAAC,KAAK,KAAK,uBAAQ,CAAC,cAAc,EAAE;YACzD,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,uBAAQ,CAAC,cAAc,CAAC,CAAC;SACzD;QAED,IACE,OAAO,CAAC,QAAQ,CAAC,iBAAiB;YAClC,OAAO,CAAC,aAAa;YACrB,0BAA0B,CAAC,OAAO,EAAE,OAAO,CAAC,EAC5C;YACA,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC;YAChD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,gBAAgB,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;SACjF;aAAM,IAAI,OAAO,CAAC,gBAAgB,CAAC,EAAE;YACpC,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,EAAE,KAAK,EAAE,+BAAgB,CAAC,QAAQ,EAAE,CAAC;YAClF,IAAI,OAAO,CAAC,aAAa,CAAC,IAAI,IAAI,EAAE;gBAClC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,aAAa,EAAE,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;aAC/E;SACF;QAED,OAAO;KACR;IAED,0DAA0D;IAE1D,2EAA2E;IAC3E,OAAO,CAAC,UAAU,GAAG,KAAK,CAAC;IAE3B,IAAI,OAAO,CAAC,WAAW,CAAC,KAAK,KAAK,uBAAQ,CAAC,oBAAoB,EAAE;QAC/D,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,uBAAQ,CAAC,uBAAuB,CAAC,CAAC;QACjE,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAEhC,MAAM,WAAW,GACf,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,WAAW,KAAI,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,aAAa,0CAAE,WAAW,CAAA,CAAC;QACjF,IAAI,WAAW,EAAE;YACf,OAAO,CAAC,WAAW,GAAG,WAAW,CAAC;SACnC;QAED,IAAI,OAAO,CAAC,QAAQ,CAAC,iBAAiB,IAAI,OAAO,CAAC,aAAa,EAAE;YAC/D,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC;YAChD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,gBAAgB,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;SACjF;KACF;AACH,CAAC;AA9ED,oCA8EC;AAED,SAAgB,yBAAyB,CAAC,OAAsB,EAAE,QAAkB;;IAClF,IAAI,QAAQ,CAAC,YAAY,EAAE;QACzB,4BAAmB,CAAC,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;KACrD;IAED,IAAI,QAAQ,CAAC,aAAa,IAAI,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC,iBAAiB,EAAE;QAC3E,OAAO,CAAC,oBAAoB,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;KACtD;IAED,IAAI,QAAQ,CAAC,aAAa,IAAI,OAAO,IAAI,OAAO,CAAC,aAAa,EAAE,EAAE;QAChE,OAAO,CAAC,WAAW,CAAC,cAAc,GAAG,QAAQ,CAAC,aAAa,CAAC;KAC7D;IAED,IAAI,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAG,gBAAgB,CAAC,KAAI,OAAO,CAAC,aAAa,CAAC,IAAI,IAAI,EAAE;QACjE,iEAAiE;QACjE,4CAA4C;QAC5C,MAAM,aAAa,GAAG,CAAA,MAAA,QAAQ,CAAC,MAAM,0CAAE,aAAa,KAAI,QAAQ,CAAC,aAAa,CAAC;QAC/E,IAAI,aAAa,EAAE;YACjB,OAAO,CAAC,aAAa,CAAC,GAAG,aAAa,CAAC;SACxC;KACF;AACH,CAAC;AArBD,8DAqBC"}
|
package/lib/sort.js
CHANGED
|
@@ -17,12 +17,12 @@ function prepareDirection(direction = 1) {
|
|
|
17
17
|
case '-1':
|
|
18
18
|
return -1;
|
|
19
19
|
default:
|
|
20
|
-
throw new error_1.
|
|
20
|
+
throw new error_1.MongoInvalidArgumentError(`Invalid sort direction: ${JSON.stringify(direction)}`);
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
23
|
/** @internal */
|
|
24
24
|
function isMeta(t) {
|
|
25
|
-
return typeof t === 'object' && t
|
|
25
|
+
return typeof t === 'object' && t != null && '$meta' in t && typeof t.$meta === 'string';
|
|
26
26
|
}
|
|
27
27
|
/** @internal */
|
|
28
28
|
function isPair(t) {
|
|
@@ -80,7 +80,7 @@ function formatSort(sort, direction) {
|
|
|
80
80
|
if (typeof sort === 'string')
|
|
81
81
|
return new Map([[sort, prepareDirection(direction)]]);
|
|
82
82
|
if (typeof sort !== 'object') {
|
|
83
|
-
throw new error_1.
|
|
83
|
+
throw new error_1.MongoInvalidArgumentError(`Invalid sort format: ${JSON.stringify(sort)} Sort must be a valid object`);
|
|
84
84
|
}
|
|
85
85
|
if (!Array.isArray(sort)) {
|
|
86
86
|
return isMap(sort) ? mapToMap(sort) : Object.keys(sort).length ? objectToMap(sort) : undefined;
|
package/lib/sort.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sort.js","sourceRoot":"","sources":["../src/sort.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"sort.js","sourceRoot":"","sources":["../src/sort.ts"],"names":[],"mappings":";;;AAAA,mCAAoD;AAiCpD,gBAAgB;AAChB,SAAS,gBAAgB,CAAC,YAAiB,CAAC;IAC1C,MAAM,KAAK,GAAG,GAAG,SAAS,EAAE,CAAC,WAAW,EAAE,CAAC;IAC3C,IAAI,MAAM,CAAC,SAAS,CAAC;QAAE,OAAO,SAAS,CAAC;IACxC,QAAQ,KAAK,EAAE;QACb,KAAK,WAAW,CAAC;QACjB,KAAK,KAAK,CAAC;QACX,KAAK,GAAG;YACN,OAAO,CAAC,CAAC;QACX,KAAK,YAAY,CAAC;QAClB,KAAK,MAAM,CAAC;QACZ,KAAK,IAAI;YACP,OAAO,CAAC,CAAC,CAAC;QACZ;YACE,MAAM,IAAI,iCAAyB,CAAC,2BAA2B,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;KAC/F;AACH,CAAC;AAED,gBAAgB;AAChB,SAAS,MAAM,CAAC,CAAgB;IAC9B,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,IAAI,IAAI,IAAI,OAAO,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC;AAC3F,CAAC;AAED,gBAAgB;AAChB,SAAS,MAAM,CAAC,CAAO;IACrB,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;QACtC,IAAI;YACF,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACvB,OAAO,IAAI,CAAC;SACb;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,KAAK,CAAC;SACd;KACF;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,MAAM,CAAC,CAAO;IACrB,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACjD,CAAC;AAED,SAAS,KAAK,CAAC,CAAO;IACpB,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;AACxC,CAAC;AAED,gBAAgB;AAChB,SAAS,SAAS,CAAC,CAA0B;IAC3C,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED,gBAAgB;AAChB,SAAS,SAAS,CAAC,CAA4B;IAC7C,MAAM,WAAW,GAAqB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvF,OAAO,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC;AAC9B,CAAC;AAED,gBAAgB;AAChB,SAAS,YAAY,CAAC,CAAW;IAC/B,MAAM,WAAW,GAAqB,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IAClE,OAAO,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC;AAC9B,CAAC;AAED,gBAAgB;AAChB,SAAS,WAAW,CAAC,CAAmC;IACtD,MAAM,WAAW,GAAqB,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;QACtE,GAAG,CAAC,EAAE;QACN,gBAAgB,CAAC,CAAC,CAAC;KACpB,CAAC,CAAC;IACH,OAAO,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC;AAC9B,CAAC;AAED,gBAAgB;AAChB,SAAS,QAAQ,CAAC,CAA6B;IAC7C,MAAM,WAAW,GAAqB,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;QAClE,GAAG,CAAC,EAAE;QACN,gBAAgB,CAAC,CAAC,CAAC;KACpB,CAAC,CAAC;IACH,OAAO,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC;AAC9B,CAAC;AAED,iFAAiF;AACjF,SAAgB,UAAU,CACxB,IAAsB,EACtB,SAAyB;IAEzB,IAAI,IAAI,IAAI,IAAI;QAAE,OAAO,SAAS,CAAC;IACnC,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IACpF,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;QAC5B,MAAM,IAAI,iCAAyB,CACjC,wBAAwB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,8BAA8B,CAC3E,CAAC;KACH;IACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACxB,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;KAChG;IACD,IAAI,CAAC,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IACnC,IAAI,MAAM,CAAC,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC;IACzC,IAAI,MAAM,CAAC,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC;IACzC,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC;AAlBD,gCAkBC"}
|
package/lib/transactions.js
CHANGED
|
@@ -39,6 +39,15 @@ const stateMachine = {
|
|
|
39
39
|
exports.TxnState.NO_TRANSACTION
|
|
40
40
|
]
|
|
41
41
|
};
|
|
42
|
+
const ACTIVE_STATES = new Set([
|
|
43
|
+
exports.TxnState.STARTING_TRANSACTION,
|
|
44
|
+
exports.TxnState.TRANSACTION_IN_PROGRESS
|
|
45
|
+
]);
|
|
46
|
+
const COMMITTED_STATES = new Set([
|
|
47
|
+
exports.TxnState.TRANSACTION_COMMITTED,
|
|
48
|
+
exports.TxnState.TRANSACTION_COMMITTED_EMPTY,
|
|
49
|
+
exports.TxnState.TRANSACTION_ABORTED
|
|
50
|
+
]);
|
|
42
51
|
/**
|
|
43
52
|
* @public
|
|
44
53
|
* A class maintaining state related to a server transaction. Internal Only
|
|
@@ -52,7 +61,7 @@ class Transaction {
|
|
|
52
61
|
const writeConcern = write_concern_1.WriteConcern.fromOptions(options);
|
|
53
62
|
if (writeConcern) {
|
|
54
63
|
if (writeConcern.w === 0) {
|
|
55
|
-
throw new error_1.
|
|
64
|
+
throw new error_1.MongoTransactionError('Transactions do not support unacknowledged write concern');
|
|
56
65
|
}
|
|
57
66
|
this.options.writeConcern = writeConcern;
|
|
58
67
|
}
|
|
@@ -87,11 +96,10 @@ class Transaction {
|
|
|
87
96
|
* @returns Whether this session is presently in a transaction
|
|
88
97
|
*/
|
|
89
98
|
get isActive() {
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
return activeStates.includes(this.state);
|
|
99
|
+
return ACTIVE_STATES.has(this.state);
|
|
100
|
+
}
|
|
101
|
+
get isCommitted() {
|
|
102
|
+
return COMMITTED_STATES.has(this.state);
|
|
95
103
|
}
|
|
96
104
|
/**
|
|
97
105
|
* Transition the transaction in the state machine
|
|
@@ -109,7 +117,7 @@ class Transaction {
|
|
|
109
117
|
}
|
|
110
118
|
return;
|
|
111
119
|
}
|
|
112
|
-
throw new error_1.
|
|
120
|
+
throw new error_1.MongoRuntimeError(`Attempted illegal state transition from [${this.state}] to [${nextState}]`);
|
|
113
121
|
}
|
|
114
122
|
/** @internal */
|
|
115
123
|
pinServer(server) {
|
package/lib/transactions.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transactions.js","sourceRoot":"","sources":["../src/transactions.ts"],"names":[],"mappings":";;;AAAA,uDAAmD;AACnD,
|
|
1
|
+
{"version":3,"file":"transactions.js","sourceRoot":"","sources":["../src/transactions.ts"],"names":[],"mappings":";;;AAAA,uDAAmD;AACnD,mCAAmE;AACnE,iDAA6C;AAC7C,mDAA+C;AAK/C,gBAAgB;AACH,QAAA,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC;IACpC,cAAc,EAAE,gBAAgB;IAChC,oBAAoB,EAAE,sBAAsB;IAC5C,uBAAuB,EAAE,yBAAyB;IAClD,qBAAqB,EAAE,uBAAuB;IAC9C,2BAA2B,EAAE,6BAA6B;IAC1D,mBAAmB,EAAE,qBAAqB;CAClC,CAAC,CAAC;AAKZ,MAAM,YAAY,GAAwC;IACxD,CAAC,gBAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,gBAAQ,CAAC,cAAc,EAAE,gBAAQ,CAAC,oBAAoB,CAAC;IACnF,CAAC,gBAAQ,CAAC,oBAAoB,CAAC,EAAE;QAC/B,gBAAQ,CAAC,uBAAuB;QAChC,gBAAQ,CAAC,qBAAqB;QAC9B,gBAAQ,CAAC,2BAA2B;QACpC,gBAAQ,CAAC,mBAAmB;KAC7B;IACD,CAAC,gBAAQ,CAAC,uBAAuB,CAAC,EAAE;QAClC,gBAAQ,CAAC,uBAAuB;QAChC,gBAAQ,CAAC,qBAAqB;QAC9B,gBAAQ,CAAC,mBAAmB;KAC7B;IACD,CAAC,gBAAQ,CAAC,qBAAqB,CAAC,EAAE;QAChC,gBAAQ,CAAC,qBAAqB;QAC9B,gBAAQ,CAAC,2BAA2B;QACpC,gBAAQ,CAAC,oBAAoB;QAC7B,gBAAQ,CAAC,cAAc;KACxB;IACD,CAAC,gBAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC,gBAAQ,CAAC,oBAAoB,EAAE,gBAAQ,CAAC,cAAc,CAAC;IACxF,CAAC,gBAAQ,CAAC,2BAA2B,CAAC,EAAE;QACtC,gBAAQ,CAAC,2BAA2B;QACpC,gBAAQ,CAAC,cAAc;KACxB;CACF,CAAC;AAEF,MAAM,aAAa,GAAkB,IAAI,GAAG,CAAC;IAC3C,gBAAQ,CAAC,oBAAoB;IAC7B,gBAAQ,CAAC,uBAAuB;CACjC,CAAC,CAAC;AAEH,MAAM,gBAAgB,GAAkB,IAAI,GAAG,CAAC;IAC9C,gBAAQ,CAAC,qBAAqB;IAC9B,gBAAQ,CAAC,2BAA2B;IACpC,gBAAQ,CAAC,mBAAmB;CAC7B,CAAC,CAAC;AAkBH;;;GAGG;AACH,MAAa,WAAW;IAStB,qCAAqC;IACrC,YAAY,OAA4B;QACtC,OAAO,GAAG,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,EAAE,CAAC;QACxB,IAAI,CAAC,KAAK,GAAG,gBAAQ,CAAC,cAAc,CAAC;QACrC,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAElB,MAAM,YAAY,GAAG,4BAAY,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACvD,IAAI,YAAY,EAAE;YAChB,IAAI,YAAY,CAAC,CAAC,KAAK,CAAC,EAAE;gBACxB,MAAM,IAAI,6BAAqB,CAAC,0DAA0D,CAAC,CAAC;aAC7F;YAED,IAAI,CAAC,OAAO,CAAC,YAAY,GAAG,YAAY,CAAC;SAC1C;QAED,IAAI,OAAO,CAAC,WAAW,EAAE;YACvB,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,0BAAW,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;SAC7D;QAED,IAAI,OAAO,CAAC,cAAc,EAAE;YAC1B,IAAI,CAAC,OAAO,CAAC,cAAc,GAAG,gCAAc,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;SACnE;QAED,IAAI,OAAO,CAAC,eAAe,EAAE;YAC3B,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,eAAe,CAAC;SAClD;QAED,yCAAyC;QACzC,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;QAC/B,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;IAClC,CAAC;IAED,gBAAgB;IAChB,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAED,mDAAmD;IACnD,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,KAAK,KAAK,gBAAQ,CAAC,oBAAoB,CAAC;IACtD,CAAC;IAED;;OAEG;IACH,IAAI,QAAQ;QACV,OAAO,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC;IAED,IAAI,WAAW;QACb,OAAO,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1C,CAAC;IACD;;;;OAIG;IACH,UAAU,CAAC,SAAmB;QAC5B,MAAM,UAAU,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5C,IAAI,UAAU,IAAI,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;YAChD,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;YACvB,IACE,IAAI,CAAC,KAAK,KAAK,gBAAQ,CAAC,cAAc;gBACtC,IAAI,CAAC,KAAK,KAAK,gBAAQ,CAAC,oBAAoB;gBAC5C,IAAI,CAAC,KAAK,KAAK,gBAAQ,CAAC,mBAAmB,EAC3C;gBACA,IAAI,CAAC,WAAW,EAAE,CAAC;aACpB;YACD,OAAO;SACR;QAED,MAAM,IAAI,yBAAiB,CACzB,4CAA4C,IAAI,CAAC,KAAK,SAAS,SAAS,GAAG,CAC5E,CAAC;IACJ,CAAC;IAED,gBAAgB;IAChB,SAAS,CAAC,MAAc;QACtB,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC;SAC7B;IACH,CAAC;IAED,gBAAgB;IAChB,WAAW;QACT,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;IACjC,CAAC;CACF;AAxGD,kCAwGC;AAED,SAAgB,oBAAoB,CAAC,OAAiB;IACpD,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,iBAAiB,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAAC;AACnE,CAAC;AAFD,oDAEC"}
|