@mongosh/shell-api 2.1.1 → 2.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.
- package/AUTHORS +1 -0
- package/lib/abstract-cursor.js +176 -132
- package/lib/abstract-cursor.js.map +1 -1
- package/lib/aggregate-or-find-cursor.js +102 -51
- package/lib/aggregate-or-find-cursor.js.map +1 -1
- package/lib/aggregation-cursor.js +59 -13
- package/lib/aggregation-cursor.js.map +1 -1
- package/lib/bulk.js +248 -197
- package/lib/bulk.js.map +1 -1
- package/lib/change-stream-cursor.js +145 -101
- package/lib/change-stream-cursor.js.map +1 -1
- package/lib/collection.d.ts +2 -1
- package/lib/collection.js +1185 -1245
- package/lib/collection.js.map +1 -1
- package/lib/cursor.js +238 -203
- package/lib/cursor.js.map +1 -1
- package/lib/database.js +1189 -1206
- package/lib/database.js.map +1 -1
- package/lib/dbquery.js +68 -22
- package/lib/dbquery.js.map +1 -1
- package/lib/decorators.d.ts +39 -13
- package/lib/decorators.js +34 -34
- package/lib/decorators.js.map +1 -1
- package/lib/explainable-cursor.js +66 -20
- package/lib/explainable-cursor.js.map +1 -1
- package/lib/explainable.js +214 -179
- package/lib/explainable.js.map +1 -1
- package/lib/field-level-encryption.js +286 -235
- package/lib/field-level-encryption.js.map +1 -1
- package/lib/helpers.d.ts +9 -1
- package/lib/helpers.js +24 -17
- package/lib/helpers.js.map +1 -1
- package/lib/interruptor.js.map +1 -1
- package/lib/log-entry.js.map +1 -1
- package/lib/mongo-errors.js +3 -1
- package/lib/mongo-errors.js.map +1 -1
- package/lib/mongo.js +581 -547
- package/lib/mongo.js.map +1 -1
- package/lib/plan-cache.js +108 -64
- package/lib/plan-cache.js.map +1 -1
- package/lib/replica-set.js +290 -277
- package/lib/replica-set.js.map +1 -1
- package/lib/result.js +228 -91
- package/lib/result.js.map +1 -1
- package/lib/run-command-cursor.js +59 -13
- package/lib/run-command-cursor.js.map +1 -1
- package/lib/session.js +123 -76
- package/lib/session.js.map +1 -1
- package/lib/shard.js +507 -514
- package/lib/shard.js.map +1 -1
- package/lib/shell-api.js +313 -268
- package/lib/shell-api.js.map +1 -1
- package/lib/shell-bson.js.map +1 -1
- package/lib/shell-instance-state.js.map +1 -1
- package/lib/stream-processor.js +139 -92
- package/lib/stream-processor.js.map +1 -1
- package/lib/streams.js +158 -110
- package/lib/streams.js.map +1 -1
- package/package.json +10 -10
|
@@ -1,9 +1,41 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var
|
|
3
|
-
var
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
2
|
+
var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
|
|
3
|
+
var useValue = arguments.length > 2;
|
|
4
|
+
for (var i = 0; i < initializers.length; i++) {
|
|
5
|
+
value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
|
|
6
|
+
}
|
|
7
|
+
return useValue ? value : void 0;
|
|
8
|
+
};
|
|
9
|
+
var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
|
|
10
|
+
function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
|
|
11
|
+
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
|
|
12
|
+
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
|
|
13
|
+
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
|
|
14
|
+
var _, done = false;
|
|
15
|
+
for (var i = decorators.length - 1; i >= 0; i--) {
|
|
16
|
+
var context = {};
|
|
17
|
+
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
|
|
18
|
+
for (var p in contextIn.access) context.access[p] = contextIn.access[p];
|
|
19
|
+
context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
|
|
20
|
+
var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
|
|
21
|
+
if (kind === "accessor") {
|
|
22
|
+
if (result === void 0) continue;
|
|
23
|
+
if (result === null || typeof result !== "object") throw new TypeError("Object expected");
|
|
24
|
+
if (_ = accept(result.get)) descriptor.get = _;
|
|
25
|
+
if (_ = accept(result.set)) descriptor.set = _;
|
|
26
|
+
if (_ = accept(result.init)) initializers.unshift(_);
|
|
27
|
+
}
|
|
28
|
+
else if (_ = accept(result)) {
|
|
29
|
+
if (kind === "field") initializers.unshift(_);
|
|
30
|
+
else descriptor[key] = _;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
if (target) Object.defineProperty(target, contextIn.name, descriptor);
|
|
34
|
+
done = true;
|
|
35
|
+
};
|
|
36
|
+
var __setFunctionName = (this && this.__setFunctionName) || function (f, name, prefix) {
|
|
37
|
+
if (typeof name === "symbol") name = name.description ? "[".concat(name.description, "]") : "";
|
|
38
|
+
return Object.defineProperty(f, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name });
|
|
7
39
|
};
|
|
8
40
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
9
41
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
@@ -28,254 +60,273 @@ const isMasterKey = (options) => {
|
|
|
28
60
|
typeof options === 'object' &&
|
|
29
61
|
!isDataKeyEncryptionKeyOptions(options));
|
|
30
62
|
};
|
|
31
|
-
let ClientEncryption =
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
else {
|
|
55
|
-
encryptionOptions = {
|
|
56
|
-
keyId,
|
|
57
|
-
algorithm: algorithmOrEncryptionOptions,
|
|
58
|
-
};
|
|
59
|
-
}
|
|
60
|
-
(0, helpers_1.assertArgsDefinedType)([keyId, value, encryptionOptions], [true, true, true], 'ClientEncryption.encrypt');
|
|
61
|
-
return await this._libmongocrypt.encrypt(value, encryptionOptions);
|
|
62
|
-
}
|
|
63
|
-
async decrypt(encryptedValue) {
|
|
64
|
-
(0, helpers_1.assertArgsDefinedType)([encryptedValue], [true], 'ClientEncryption.decrypt');
|
|
65
|
-
return await this._libmongocrypt.decrypt(encryptedValue);
|
|
66
|
-
}
|
|
67
|
-
async encryptExpression(keyId, value, options) {
|
|
68
|
-
(0, helpers_1.assertArgsDefinedType)([keyId, value, options], [true, true, true], 'ClientEncryption.encryptExpression');
|
|
69
|
-
return await this._libmongocrypt.encryptExpression(value, {
|
|
70
|
-
keyId,
|
|
71
|
-
...options,
|
|
72
|
-
});
|
|
73
|
-
}
|
|
74
|
-
async createEncryptedCollection(dbName, collName, options) {
|
|
75
|
-
(0, helpers_1.assertArgsDefinedType)([dbName], ['string'], 'ClientEncryption.createEncryptedCollection');
|
|
76
|
-
(0, helpers_1.assertArgsDefinedType)([collName], ['string'], 'ClientEncryption.createEncryptedCollection');
|
|
77
|
-
(0, helpers_1.assertArgsDefinedType)([options], ['object'], 'ClientEncryption.createEncryptedCollection');
|
|
78
|
-
(0, helpers_1.assertKeysDefined)(options, ['provider', 'createCollectionOptions']);
|
|
79
|
-
if (!this._mongo._serviceProvider.createEncryptedCollection) {
|
|
80
|
-
throw new errors_1.MongoshRuntimeError('Runtime does not support createEncryptedCollection yet');
|
|
81
|
-
}
|
|
82
|
-
const { encryptedFields } = await this._mongo._serviceProvider.createEncryptedCollection(dbName, collName, options, this._libmongocrypt);
|
|
83
|
-
return {
|
|
84
|
-
collection: this._mongo.getDB(dbName).getCollection(collName),
|
|
85
|
-
encryptedFields,
|
|
86
|
-
};
|
|
87
|
-
}
|
|
88
|
-
};
|
|
89
|
-
__decorate([
|
|
90
|
-
decorators_1.returnsPromise
|
|
91
|
-
], ClientEncryption.prototype, "encrypt", null);
|
|
92
|
-
__decorate([
|
|
93
|
-
decorators_1.returnsPromise
|
|
94
|
-
], ClientEncryption.prototype, "decrypt", null);
|
|
95
|
-
__decorate([
|
|
96
|
-
decorators_1.returnsPromise
|
|
97
|
-
], ClientEncryption.prototype, "encryptExpression", null);
|
|
98
|
-
__decorate([
|
|
99
|
-
decorators_1.returnsPromise,
|
|
100
|
-
(0, decorators_1.apiVersions)([1])
|
|
101
|
-
], ClientEncryption.prototype, "createEncryptedCollection", null);
|
|
102
|
-
exports.ClientEncryption = ClientEncryption = __decorate([
|
|
103
|
-
decorators_1.shellApiClassDefault,
|
|
104
|
-
(0, decorators_1.classPlatforms)(['CLI'])
|
|
105
|
-
], ClientEncryption);
|
|
106
|
-
let KeyVault = exports.KeyVault = class KeyVault extends decorators_1.ShellApiWithMongoClass {
|
|
107
|
-
constructor(clientEncryption) {
|
|
108
|
-
var _a, _b, _c;
|
|
109
|
-
super();
|
|
110
|
-
this._mongo = clientEncryption._mongo;
|
|
111
|
-
this._clientEncryption = clientEncryption;
|
|
112
|
-
const keyVaultNamespace = (_b = (_a = this._mongo) === null || _a === void 0 ? void 0 : _a._fleOptions) === null || _b === void 0 ? void 0 : _b.keyVaultNamespace;
|
|
113
|
-
if (!keyVaultNamespace) {
|
|
114
|
-
throw new errors_1.MongoshInvalidInputError('FLE options must be passed to the Mongo object');
|
|
63
|
+
let ClientEncryption = (() => {
|
|
64
|
+
let _classDecorators = [decorators_1.shellApiClassDefault, (0, decorators_1.classPlatforms)(['CLI'])];
|
|
65
|
+
let _classDescriptor;
|
|
66
|
+
let _classExtraInitializers = [];
|
|
67
|
+
let _classThis;
|
|
68
|
+
let _classSuper = decorators_1.ShellApiWithMongoClass;
|
|
69
|
+
let _instanceExtraInitializers = [];
|
|
70
|
+
let _encrypt_decorators;
|
|
71
|
+
let _decrypt_decorators;
|
|
72
|
+
let _encryptExpression_decorators;
|
|
73
|
+
let _createEncryptedCollection_decorators;
|
|
74
|
+
var ClientEncryption = _classThis = class extends _classSuper {
|
|
75
|
+
constructor(mongo) {
|
|
76
|
+
super();
|
|
77
|
+
this._mongo = (__runInitializers(this, _instanceExtraInitializers), void 0);
|
|
78
|
+
this._mongo = mongo;
|
|
79
|
+
const fleOptions = { ...this._mongo._fleOptions };
|
|
80
|
+
delete fleOptions.schemaMap;
|
|
81
|
+
delete fleOptions.encryptedFieldsMap;
|
|
82
|
+
if (!mongo._serviceProvider.createClientEncryption) {
|
|
83
|
+
throw new errors_1.MongoshRuntimeError('FLE API is not available');
|
|
84
|
+
}
|
|
85
|
+
this._libmongocrypt = mongo._serviceProvider.createClientEncryption(fleOptions);
|
|
115
86
|
}
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
throw new errors_1.MongoshInvalidInputError(`Invalid keyVaultNamespace '${keyVaultNamespace}'`);
|
|
87
|
+
[enums_1.asPrintable]() {
|
|
88
|
+
return `ClientEncryption class for ${(0, history_1.redactURICredentials)(this._mongo._uri)}`;
|
|
119
89
|
}
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
90
|
+
async encrypt(keyId, value, algorithmOrEncryptionOptions) {
|
|
91
|
+
let encryptionOptions;
|
|
92
|
+
if (typeof algorithmOrEncryptionOptions === 'object') {
|
|
93
|
+
encryptionOptions = {
|
|
94
|
+
keyId,
|
|
95
|
+
...algorithmOrEncryptionOptions,
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
encryptionOptions = {
|
|
100
|
+
keyId,
|
|
101
|
+
algorithm: algorithmOrEncryptionOptions,
|
|
102
|
+
};
|
|
128
103
|
}
|
|
104
|
+
(0, helpers_1.assertArgsDefinedType)([keyId, value, encryptionOptions], [true, true, true], 'ClientEncryption.encrypt');
|
|
105
|
+
return await this._libmongocrypt.encrypt(value, encryptionOptions);
|
|
129
106
|
}
|
|
130
|
-
|
|
107
|
+
async decrypt(encryptedValue) {
|
|
108
|
+
(0, helpers_1.assertArgsDefinedType)([encryptedValue], [true], 'ClientEncryption.decrypt');
|
|
109
|
+
return await this._libmongocrypt.decrypt(encryptedValue);
|
|
131
110
|
}
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
await this.
|
|
135
|
-
|
|
136
|
-
|
|
111
|
+
async encryptExpression(keyId, value, options) {
|
|
112
|
+
(0, helpers_1.assertArgsDefinedType)([keyId, value, options], [true, true, true], 'ClientEncryption.encryptExpression');
|
|
113
|
+
return await this._libmongocrypt.encryptExpression(value, {
|
|
114
|
+
keyId,
|
|
115
|
+
...options,
|
|
137
116
|
});
|
|
138
117
|
}
|
|
139
|
-
|
|
140
|
-
|
|
118
|
+
async createEncryptedCollection(dbName, collName, options) {
|
|
119
|
+
(0, helpers_1.assertArgsDefinedType)([dbName], ['string'], 'ClientEncryption.createEncryptedCollection');
|
|
120
|
+
(0, helpers_1.assertArgsDefinedType)([collName], ['string'], 'ClientEncryption.createEncryptedCollection');
|
|
121
|
+
(0, helpers_1.assertArgsDefinedType)([options], ['object'], 'ClientEncryption.createEncryptedCollection');
|
|
122
|
+
(0, helpers_1.assertKeysDefined)(options, ['provider', 'createCollectionOptions']);
|
|
123
|
+
if (!this._mongo._serviceProvider.createEncryptedCollection) {
|
|
124
|
+
throw new errors_1.MongoshRuntimeError('Runtime does not support createEncryptedCollection yet');
|
|
125
|
+
}
|
|
126
|
+
const { encryptedFields } = await this._mongo._serviceProvider.createEncryptedCollection(dbName, collName, options, this._libmongocrypt);
|
|
127
|
+
return {
|
|
128
|
+
collection: this._mongo.getDB(dbName).getCollection(collName),
|
|
129
|
+
encryptedFields,
|
|
130
|
+
};
|
|
141
131
|
}
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
132
|
+
};
|
|
133
|
+
__setFunctionName(_classThis, "ClientEncryption");
|
|
134
|
+
(() => {
|
|
135
|
+
var _a;
|
|
136
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create((_a = _classSuper[Symbol.metadata]) !== null && _a !== void 0 ? _a : null) : void 0;
|
|
137
|
+
_encrypt_decorators = [decorators_1.returnsPromise];
|
|
138
|
+
_decrypt_decorators = [decorators_1.returnsPromise];
|
|
139
|
+
_encryptExpression_decorators = [decorators_1.returnsPromise];
|
|
140
|
+
_createEncryptedCollection_decorators = [decorators_1.returnsPromise, (0, decorators_1.apiVersions)([1])];
|
|
141
|
+
__esDecorate(_classThis, null, _encrypt_decorators, { kind: "method", name: "encrypt", static: false, private: false, access: { has: obj => "encrypt" in obj, get: obj => obj.encrypt }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
142
|
+
__esDecorate(_classThis, null, _decrypt_decorators, { kind: "method", name: "decrypt", static: false, private: false, access: { has: obj => "decrypt" in obj, get: obj => obj.decrypt }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
143
|
+
__esDecorate(_classThis, null, _encryptExpression_decorators, { kind: "method", name: "encryptExpression", static: false, private: false, access: { has: obj => "encryptExpression" in obj, get: obj => obj.encryptExpression }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
144
|
+
__esDecorate(_classThis, null, _createEncryptedCollection_decorators, { kind: "method", name: "createEncryptedCollection", static: false, private: false, access: { has: obj => "createEncryptedCollection" in obj, get: obj => obj.createEncryptedCollection }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
145
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
146
|
+
ClientEncryption = _classThis = _classDescriptor.value;
|
|
147
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
148
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
149
|
+
})();
|
|
150
|
+
return ClientEncryption = _classThis;
|
|
151
|
+
})();
|
|
152
|
+
exports.ClientEncryption = ClientEncryption;
|
|
153
|
+
let KeyVault = (() => {
|
|
154
|
+
let _classDecorators = [decorators_1.shellApiClassDefault, (0, decorators_1.classPlatforms)(['CLI'])];
|
|
155
|
+
let _classDescriptor;
|
|
156
|
+
let _classExtraInitializers = [];
|
|
157
|
+
let _classThis;
|
|
158
|
+
let _classSuper = decorators_1.ShellApiWithMongoClass;
|
|
159
|
+
let _instanceExtraInitializers = [];
|
|
160
|
+
let _createKey_decorators;
|
|
161
|
+
let _getKey_decorators;
|
|
162
|
+
let _getKeyByAltName_decorators;
|
|
163
|
+
let _getKeys_decorators;
|
|
164
|
+
let _deleteKey_decorators;
|
|
165
|
+
let _addKeyAlternateName_decorators;
|
|
166
|
+
let _removeKeyAlternateName_decorators;
|
|
167
|
+
let _rewrapManyDataKey_decorators;
|
|
168
|
+
let _createDataKey_decorators;
|
|
169
|
+
let _removeKeyAltName_decorators;
|
|
170
|
+
let _addKeyAltName_decorators;
|
|
171
|
+
var KeyVault = _classThis = class extends _classSuper {
|
|
172
|
+
constructor(clientEncryption) {
|
|
173
|
+
var _a, _b, _c;
|
|
174
|
+
super();
|
|
175
|
+
this._mongo = (__runInitializers(this, _instanceExtraInitializers), void 0);
|
|
176
|
+
this._mongo = clientEncryption._mongo;
|
|
177
|
+
this._clientEncryption = clientEncryption;
|
|
178
|
+
const keyVaultNamespace = (_b = (_a = this._mongo) === null || _a === void 0 ? void 0 : _a._fleOptions) === null || _b === void 0 ? void 0 : _b.keyVaultNamespace;
|
|
179
|
+
if (!keyVaultNamespace) {
|
|
180
|
+
throw new errors_1.MongoshInvalidInputError('FLE options must be passed to the Mongo object');
|
|
181
|
+
}
|
|
182
|
+
const parsedNamespace = (_c = keyVaultNamespace.match(/^(?<db>[^.]+)\.(?<coll>.+)$/)) === null || _c === void 0 ? void 0 : _c.groups;
|
|
183
|
+
if (!parsedNamespace) {
|
|
184
|
+
throw new errors_1.MongoshInvalidInputError(`Invalid keyVaultNamespace '${keyVaultNamespace}'`);
|
|
185
|
+
}
|
|
186
|
+
const { db, coll } = parsedNamespace;
|
|
187
|
+
this._keyColl = this._mongo.getDB(db).getCollection(coll);
|
|
154
188
|
}
|
|
155
|
-
|
|
156
|
-
|
|
189
|
+
async _init() {
|
|
190
|
+
try {
|
|
191
|
+
const existingIndexKeys = await this._keyColl.getIndexKeys();
|
|
192
|
+
if (existingIndexKeys.some((key) => key.keyAltNames)) {
|
|
193
|
+
return;
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
catch (_a) {
|
|
197
|
+
}
|
|
198
|
+
try {
|
|
199
|
+
await this._keyColl.updateMany({ keyAltNames: { $size: 0 } }, { $unset: { keyAltNames: '' }, $currentDate: { updateDate: true } });
|
|
200
|
+
await this._keyColl.createIndex({ keyAltNames: 1 }, {
|
|
201
|
+
unique: true,
|
|
202
|
+
partialFilterExpression: { keyAltNames: { $exists: true } },
|
|
203
|
+
});
|
|
204
|
+
}
|
|
205
|
+
catch (err) {
|
|
206
|
+
await this._instanceState.printWarning(`Creating 'keyAltNames' index on '${this._keyColl.getFullName()}' failed: ${err.message}`);
|
|
207
|
+
}
|
|
157
208
|
}
|
|
158
|
-
|
|
159
|
-
|
|
209
|
+
[enums_1.asPrintable]() {
|
|
210
|
+
return `KeyVault class for ${(0, history_1.redactURICredentials)(this._mongo._uri)}`;
|
|
160
211
|
}
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
212
|
+
async createKey(kms, masterKeyOrAltNamesOrDataKeyOptions, legacyKeyAltNames) {
|
|
213
|
+
let masterKey;
|
|
214
|
+
let keyAltNames;
|
|
215
|
+
let keyMaterial;
|
|
216
|
+
if (isDataKeyEncryptionKeyOptions(masterKeyOrAltNamesOrDataKeyOptions)) {
|
|
217
|
+
masterKey = masterKeyOrAltNamesOrDataKeyOptions === null || masterKeyOrAltNamesOrDataKeyOptions === void 0 ? void 0 : masterKeyOrAltNamesOrDataKeyOptions.masterKey;
|
|
218
|
+
keyAltNames = masterKeyOrAltNamesOrDataKeyOptions === null || masterKeyOrAltNamesOrDataKeyOptions === void 0 ? void 0 : masterKeyOrAltNamesOrDataKeyOptions.keyAltNames;
|
|
219
|
+
keyMaterial = masterKeyOrAltNamesOrDataKeyOptions === null || masterKeyOrAltNamesOrDataKeyOptions === void 0 ? void 0 : masterKeyOrAltNamesOrDataKeyOptions.keyMaterial;
|
|
165
220
|
}
|
|
166
|
-
else {
|
|
167
|
-
|
|
221
|
+
else if (isMasterKey(masterKeyOrAltNamesOrDataKeyOptions)) {
|
|
222
|
+
masterKey = masterKeyOrAltNamesOrDataKeyOptions;
|
|
168
223
|
}
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
if (kms !== 'local') {
|
|
172
|
-
throw new errors_1.MongoshInvalidInputError('KeyVault.createKey requires masterKey to be given as second argument if KMS is not local', errors_1.CommonErrors.InvalidArgument);
|
|
224
|
+
if (legacyKeyAltNames) {
|
|
225
|
+
keyAltNames = legacyKeyAltNames;
|
|
173
226
|
}
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
227
|
+
(0, helpers_1.assertArgsDefinedType)([kms], [true], 'KeyVault.createKey');
|
|
228
|
+
if (typeof masterKeyOrAltNamesOrDataKeyOptions === 'string') {
|
|
229
|
+
if (kms === 'local' && masterKeyOrAltNamesOrDataKeyOptions === '') {
|
|
230
|
+
masterKey = undefined;
|
|
231
|
+
}
|
|
232
|
+
else {
|
|
233
|
+
throw new errors_1.MongoshInvalidInputError('KeyVault.createKey does not support providing masterKey as string anymore. For AWS please use createKey("aws", { region: ..., key: ... })', errors_1.CommonErrors.Deprecated);
|
|
177
234
|
}
|
|
178
|
-
keyAltNames = masterKeyOrAltNamesOrDataKeyOptions;
|
|
179
|
-
masterKey = undefined;
|
|
180
235
|
}
|
|
236
|
+
else if (Array.isArray(masterKeyOrAltNamesOrDataKeyOptions)) {
|
|
237
|
+
if (kms !== 'local') {
|
|
238
|
+
throw new errors_1.MongoshInvalidInputError('KeyVault.createKey requires masterKey to be given as second argument if KMS is not local', errors_1.CommonErrors.InvalidArgument);
|
|
239
|
+
}
|
|
240
|
+
else {
|
|
241
|
+
if (keyAltNames) {
|
|
242
|
+
throw new errors_1.MongoshInvalidInputError('KeyVault.createKey was supplied with an array for the masterKey and keyAltNames - either specify keyAltNames as second argument or set undefined for masterKey', errors_1.CommonErrors.InvalidArgument);
|
|
243
|
+
}
|
|
244
|
+
keyAltNames = masterKeyOrAltNamesOrDataKeyOptions;
|
|
245
|
+
masterKey = undefined;
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
let options;
|
|
249
|
+
if (masterKey) {
|
|
250
|
+
options = { ...(options !== null && options !== void 0 ? options : {}), masterKey };
|
|
251
|
+
}
|
|
252
|
+
if (keyAltNames) {
|
|
253
|
+
options = { ...(options !== null && options !== void 0 ? options : {}), keyAltNames };
|
|
254
|
+
}
|
|
255
|
+
if (keyMaterial) {
|
|
256
|
+
options = { ...(options !== null && options !== void 0 ? options : {}), keyMaterial };
|
|
257
|
+
}
|
|
258
|
+
return await this._clientEncryption._libmongocrypt.createDataKey(kms, options);
|
|
181
259
|
}
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
260
|
+
async getKey(keyId) {
|
|
261
|
+
(0, helpers_1.assertArgsDefinedType)([keyId], [true], 'KeyVault.getKey');
|
|
262
|
+
const cursor = await this._keyColl.find({ _id: keyId });
|
|
263
|
+
return await cursor.limit(1).next();
|
|
185
264
|
}
|
|
186
|
-
|
|
187
|
-
|
|
265
|
+
async getKeyByAltName(keyAltName) {
|
|
266
|
+
(0, helpers_1.assertArgsDefinedType)([keyAltName], ['string'], 'KeyVault.getKeyByAltName');
|
|
267
|
+
const cursor = await this._keyColl.find({ keyAltNames: keyAltName });
|
|
268
|
+
return await cursor.limit(1).next();
|
|
188
269
|
}
|
|
189
|
-
|
|
190
|
-
|
|
270
|
+
async getKeys() {
|
|
271
|
+
return new cursor_1.default(this._mongo, this._clientEncryption._libmongocrypt.getKeys());
|
|
191
272
|
}
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
(
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
(0, decorators_1.apiVersions)([1])
|
|
252
|
-
], KeyVault.prototype, "deleteKey", null);
|
|
253
|
-
__decorate([
|
|
254
|
-
decorators_1.returnsPromise,
|
|
255
|
-
(0, decorators_1.apiVersions)([1])
|
|
256
|
-
], KeyVault.prototype, "addKeyAlternateName", null);
|
|
257
|
-
__decorate([
|
|
258
|
-
decorators_1.returnsPromise,
|
|
259
|
-
(0, decorators_1.apiVersions)([1])
|
|
260
|
-
], KeyVault.prototype, "removeKeyAlternateName", null);
|
|
261
|
-
__decorate([
|
|
262
|
-
decorators_1.returnsPromise,
|
|
263
|
-
(0, decorators_1.apiVersions)([1])
|
|
264
|
-
], KeyVault.prototype, "rewrapManyDataKey", null);
|
|
265
|
-
__decorate([
|
|
266
|
-
decorators_1.returnsPromise,
|
|
267
|
-
(0, decorators_1.apiVersions)([1])
|
|
268
|
-
], KeyVault.prototype, "createDataKey", null);
|
|
269
|
-
__decorate([
|
|
270
|
-
decorators_1.returnsPromise,
|
|
271
|
-
(0, decorators_1.apiVersions)([1])
|
|
272
|
-
], KeyVault.prototype, "removeKeyAltName", null);
|
|
273
|
-
__decorate([
|
|
274
|
-
decorators_1.returnsPromise,
|
|
275
|
-
(0, decorators_1.apiVersions)([1])
|
|
276
|
-
], KeyVault.prototype, "addKeyAltName", null);
|
|
277
|
-
exports.KeyVault = KeyVault = __decorate([
|
|
278
|
-
decorators_1.shellApiClassDefault,
|
|
279
|
-
(0, decorators_1.classPlatforms)(['CLI'])
|
|
280
|
-
], KeyVault);
|
|
273
|
+
async deleteKey(keyId) {
|
|
274
|
+
(0, helpers_1.assertArgsDefinedType)([keyId], [true], 'KeyVault.deleteKey');
|
|
275
|
+
return await this._clientEncryption._libmongocrypt.deleteKey(keyId);
|
|
276
|
+
}
|
|
277
|
+
async addKeyAlternateName(keyId, keyAltName) {
|
|
278
|
+
(0, helpers_1.assertArgsDefinedType)([keyId, keyAltName], [true, 'string'], 'KeyVault.addKeyAlternateName');
|
|
279
|
+
return await this._clientEncryption._libmongocrypt.addKeyAltName(keyId, keyAltName);
|
|
280
|
+
}
|
|
281
|
+
async removeKeyAlternateName(keyId, keyAltName) {
|
|
282
|
+
(0, helpers_1.assertArgsDefinedType)([keyId, keyAltName], [true, 'string'], 'KeyVault.removeKeyAlternateName');
|
|
283
|
+
return await this._clientEncryption._libmongocrypt.removeKeyAltName(keyId, keyAltName);
|
|
284
|
+
}
|
|
285
|
+
async rewrapManyDataKey(filter, options) {
|
|
286
|
+
return await this._clientEncryption._libmongocrypt.rewrapManyDataKey(filter, options);
|
|
287
|
+
}
|
|
288
|
+
async createDataKey(...args) {
|
|
289
|
+
return await this.createKey(...args);
|
|
290
|
+
}
|
|
291
|
+
async removeKeyAltName(...args) {
|
|
292
|
+
return await this.removeKeyAlternateName(...args);
|
|
293
|
+
}
|
|
294
|
+
async addKeyAltName(...args) {
|
|
295
|
+
return await this.addKeyAlternateName(...args);
|
|
296
|
+
}
|
|
297
|
+
};
|
|
298
|
+
__setFunctionName(_classThis, "KeyVault");
|
|
299
|
+
(() => {
|
|
300
|
+
var _a;
|
|
301
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create((_a = _classSuper[Symbol.metadata]) !== null && _a !== void 0 ? _a : null) : void 0;
|
|
302
|
+
_createKey_decorators = [decorators_1.returnsPromise, (0, decorators_1.apiVersions)([1])];
|
|
303
|
+
_getKey_decorators = [(0, decorators_1.apiVersions)([1]), decorators_1.returnsPromise];
|
|
304
|
+
_getKeyByAltName_decorators = [(0, decorators_1.apiVersions)([1]), decorators_1.returnsPromise];
|
|
305
|
+
_getKeys_decorators = [(0, decorators_1.returnType)('Cursor'), (0, decorators_1.apiVersions)([1]), decorators_1.returnsPromise];
|
|
306
|
+
_deleteKey_decorators = [decorators_1.returnsPromise, (0, decorators_1.apiVersions)([1])];
|
|
307
|
+
_addKeyAlternateName_decorators = [decorators_1.returnsPromise, (0, decorators_1.apiVersions)([1])];
|
|
308
|
+
_removeKeyAlternateName_decorators = [decorators_1.returnsPromise, (0, decorators_1.apiVersions)([1])];
|
|
309
|
+
_rewrapManyDataKey_decorators = [decorators_1.returnsPromise, (0, decorators_1.apiVersions)([1])];
|
|
310
|
+
_createDataKey_decorators = [decorators_1.returnsPromise, (0, decorators_1.apiVersions)([1])];
|
|
311
|
+
_removeKeyAltName_decorators = [decorators_1.returnsPromise, (0, decorators_1.apiVersions)([1])];
|
|
312
|
+
_addKeyAltName_decorators = [decorators_1.returnsPromise, (0, decorators_1.apiVersions)([1])];
|
|
313
|
+
__esDecorate(_classThis, null, _createKey_decorators, { kind: "method", name: "createKey", static: false, private: false, access: { has: obj => "createKey" in obj, get: obj => obj.createKey }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
314
|
+
__esDecorate(_classThis, null, _getKey_decorators, { kind: "method", name: "getKey", static: false, private: false, access: { has: obj => "getKey" in obj, get: obj => obj.getKey }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
315
|
+
__esDecorate(_classThis, null, _getKeyByAltName_decorators, { kind: "method", name: "getKeyByAltName", static: false, private: false, access: { has: obj => "getKeyByAltName" in obj, get: obj => obj.getKeyByAltName }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
316
|
+
__esDecorate(_classThis, null, _getKeys_decorators, { kind: "method", name: "getKeys", static: false, private: false, access: { has: obj => "getKeys" in obj, get: obj => obj.getKeys }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
317
|
+
__esDecorate(_classThis, null, _deleteKey_decorators, { kind: "method", name: "deleteKey", static: false, private: false, access: { has: obj => "deleteKey" in obj, get: obj => obj.deleteKey }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
318
|
+
__esDecorate(_classThis, null, _addKeyAlternateName_decorators, { kind: "method", name: "addKeyAlternateName", static: false, private: false, access: { has: obj => "addKeyAlternateName" in obj, get: obj => obj.addKeyAlternateName }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
319
|
+
__esDecorate(_classThis, null, _removeKeyAlternateName_decorators, { kind: "method", name: "removeKeyAlternateName", static: false, private: false, access: { has: obj => "removeKeyAlternateName" in obj, get: obj => obj.removeKeyAlternateName }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
320
|
+
__esDecorate(_classThis, null, _rewrapManyDataKey_decorators, { kind: "method", name: "rewrapManyDataKey", static: false, private: false, access: { has: obj => "rewrapManyDataKey" in obj, get: obj => obj.rewrapManyDataKey }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
321
|
+
__esDecorate(_classThis, null, _createDataKey_decorators, { kind: "method", name: "createDataKey", static: false, private: false, access: { has: obj => "createDataKey" in obj, get: obj => obj.createDataKey }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
322
|
+
__esDecorate(_classThis, null, _removeKeyAltName_decorators, { kind: "method", name: "removeKeyAltName", static: false, private: false, access: { has: obj => "removeKeyAltName" in obj, get: obj => obj.removeKeyAltName }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
323
|
+
__esDecorate(_classThis, null, _addKeyAltName_decorators, { kind: "method", name: "addKeyAltName", static: false, private: false, access: { has: obj => "addKeyAltName" in obj, get: obj => obj.addKeyAltName }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
324
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
325
|
+
KeyVault = _classThis = _classDescriptor.value;
|
|
326
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
327
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
328
|
+
})();
|
|
329
|
+
return KeyVault = _classThis;
|
|
330
|
+
})();
|
|
331
|
+
exports.KeyVault = KeyVault;
|
|
281
332
|
//# sourceMappingURL=field-level-encryption.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field-level-encryption.js","sourceRoot":"","sources":["../src/field-level-encryption.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"field-level-encryption.js","sourceRoot":"","sources":["../src/field-level-encryption.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAOsB;AAetB,sDAA8B;AAE9B,uCAAqE;AACrE,mCAAsC;AACtC,8CAAwD;AAExD,4CAIyB;AA4CzB,MAAM,6BAA6B,GAAG,CACpC,OAA6C,EACL,EAAE;IAC1C,OAAO,CACL,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QACvB,OAAO,OAAO,KAAK,QAAQ;QAC3B,CAAC,WAAW,IAAI,OAAO;YACrB,aAAa,IAAI,OAAO;YACxB,aAAa,IAAI,OAAO,CAAC,CAC5B,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,CAClB,OAA6C,EACvB,EAAE;IACxB,OAAO,CACL,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QACvB,OAAO,OAAO,KAAK,QAAQ;QAC3B,CAAC,6BAA6B,CAAC,OAAO,CAAC,CACxC,CAAC;AACJ,CAAC,CAAC;IAIW,gBAAgB;4BAF5B,iCAAoB,EACpB,IAAA,2BAAc,EAAC,CAAC,KAAK,CAAC,CAAC;;;;sBACc,mCAAsB;;;;;;6CAA9B,SAAQ,WAAsB;QAI1D,YAAY,KAAY;YACtB,KAAK,EAAE,CAAC;YAJH,WAAM,iEAAQ;YAKnB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;YAGpB,MAAM,UAAU,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YAClD,OAAO,UAAU,CAAC,SAAS,CAAC;YAC5B,OAAO,UAAU,CAAC,kBAAkB,CAAC;YAErC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,sBAAsB,EAAE,CAAC;gBACnD,MAAM,IAAI,4BAAmB,CAAC,0BAA0B,CAAC,CAAC;YAC5D,CAAC;YACD,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,gBAAgB,CAAC,sBAAsB,CACjE,UAAqC,CACtC,CAAC;QACJ,CAAC;QAED,CAAC,mBAAW,CAAC;YACX,OAAO,8BAA8B,IAAA,8BAAoB,EACvD,IAAI,CAAC,MAAM,CAAC,IAAI,CACjB,EAAE,CAAC;QACN,CAAC;QAGD,KAAK,CAAC,OAAO,CACX,KAAiB,EACjB,KAAU,EACV,4BAEkC;YAElC,IAAI,iBAAiD,CAAC;YACtD,IAAI,OAAO,4BAA4B,KAAK,QAAQ,EAAE,CAAC;gBACrD,iBAAiB,GAAG;oBAClB,KAAK;oBACL,GAAG,4BAA4B;iBAChC,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,iBAAiB,GAAG;oBAClB,KAAK;oBACL,SAAS,EAAE,4BAA4B;iBACxC,CAAC;YACJ,CAAC;YACD,IAAA,+BAAqB,EACnB,CAAC,KAAK,EAAE,KAAK,EAAE,iBAAiB,CAAC,EACjC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAClB,0BAA0B,CAC3B,CAAC;YACF,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC;QACrE,CAAC;QAGD,KAAK,CAAC,OAAO,CAAC,cAA0B;YACtC,IAAA,+BAAqB,EAAC,CAAC,cAAc,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,0BAA0B,CAAC,CAAC;YAC5E,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QAC3D,CAAC;QAGD,KAAK,CAAC,iBAAiB,CACrB,KAAiB,EACjB,KAAe,EACf,OAAuC;YAEvC,IAAA,+BAAqB,EACnB,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,EACvB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAClB,oCAAoC,CACrC,CAAC;YACF,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,KAAK,EAAE;gBACxD,KAAK;gBACL,GAAG,OAAO;aACX,CAAC,CAAC;QACL,CAAC;QAID,KAAK,CAAC,yBAAyB,CAC7B,MAAc,EACd,QAAgB,EAChB,OAAyC;YAEzC,IAAA,+BAAqB,EACnB,CAAC,MAAM,CAAC,EACR,CAAC,QAAQ,CAAC,EACV,4CAA4C,CAC7C,CAAC;YACF,IAAA,+BAAqB,EACnB,CAAC,QAAQ,CAAC,EACV,CAAC,QAAQ,CAAC,EACV,4CAA4C,CAC7C,CAAC;YACF,IAAA,+BAAqB,EACnB,CAAC,OAAO,CAAC,EACT,CAAC,QAAQ,CAAC,EACV,4CAA4C,CAC7C,CAAC;YACF,IAAA,2BAAiB,EAAC,OAAO,EAAE,CAAC,UAAU,EAAE,yBAAyB,CAAC,CAAC,CAAC;YAEpE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,yBAAyB,EAAE,CAAC;gBAC5D,MAAM,IAAI,4BAAmB,CAC3B,wDAAwD,CACzD,CAAC;YACJ,CAAC;YAED,MAAM,EAAE,eAAe,EAAE,GACvB,MAAM,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,yBAAyB,CAC1D,MAAM,EACN,QAAQ,EACR,OAAO,EACP,IAAI,CAAC,cAAc,CACpB,CAAC;YAEJ,OAAO;gBACL,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC;gBAC7D,eAAe;aAChB,CAAC;QACJ,CAAC;;;;;;+BA7FA,2BAAc;+BA4Bd,2BAAc;yCAMd,2BAAc;iDAiBd,2BAAc,EACd,IAAA,wBAAW,EAAC,CAAC,CAAC,CAAC,CAAC;QAnDjB,8KAAM,OAAO,6DAyBZ;QAGD,8KAAM,OAAO,6DAGZ;QAGD,4MAAM,iBAAiB,6DActB;QAID,oOAAM,yBAAyB,6DAwC9B;QAxHH,6KAyHC;;;QAzHY,uDAAgB;;;;AAAhB,4CAAgB;IA6HhB,QAAQ;4BAFpB,iCAAoB,EACpB,IAAA,2BAAc,EAAC,CAAC,KAAK,CAAC,CAAC;;;;sBACM,mCAAsB;;;;;;;;;;;;;qCAA9B,SAAQ,WAAsB;QAIlD,YAAY,gBAAkC;;YAC5C,KAAK,EAAE,CAAC;YAJH,WAAM,iEAAQ;YAKnB,IAAI,CAAC,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC;YACtC,IAAI,CAAC,iBAAiB,GAAG,gBAAgB,CAAC;YAC1C,MAAM,iBAAiB,GAAG,MAAA,MAAA,IAAI,CAAC,MAAM,0CAAE,WAAW,0CAAE,iBAAiB,CAAC;YACtE,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACvB,MAAM,IAAI,iCAAwB,CAChC,gDAAgD,CACjD,CAAC;YACJ,CAAC;YACD,MAAM,eAAe,GAAG,MAAA,iBAAiB,CAAC,KAAK,CAC7C,6BAA6B,CAC9B,0CAAE,MAAM,CAAC;YACV,IAAI,CAAC,eAAe,EAAE,CAAC;gBACrB,MAAM,IAAI,iCAAwB,CAChC,8BAA8B,iBAAiB,GAAG,CACnD,CAAC;YACJ,CAAC;YACD,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC;YACrC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAC5D,CAAC;QAED,KAAK,CAAC,KAAK;YACT,IAAI,CAAC;gBACH,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;gBAC7D,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;oBACrD,OAAO;gBACT,CAAC;YACH,CAAC;YAAC,WAAM,CAAC;YAET,CAAC;YAED,IAAI,CAAC;gBAQH,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,CAC5B,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAC7B,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,CACpE,CAAC;gBAEF,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,CAC7B,EAAE,WAAW,EAAE,CAAC,EAAE,EAClB;oBACE,MAAM,EAAE,IAAI;oBACZ,uBAAuB,EAAE,EAAE,WAAW,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;iBAC5D,CACF,CAAC;YACJ,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAClB,MAAM,IAAI,CAAC,cAAc,CAAC,YAAY,CACpC,oCAAoC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,aAC7D,GAAG,CAAC,OACN,EAAE,CACH,CAAC;YACJ,CAAC;QACH,CAAC;QAED,CAAC,mBAAW,CAAC;YACX,OAAO,sBAAsB,IAAA,8BAAoB,EAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QACxE,CAAC;QAmBD,KAAK,CAAC,SAAS,CACb,GAAoC,EACpC,mCAAyE,EACzE,iBAA4B;YAE5B,IAAI,SAAgC,CAAC;YACrC,IAAI,WAAW,CAAC;YAChB,IAAI,WAAW,CAAC;YAEhB,IAAI,6BAA6B,CAAC,mCAAmC,CAAC,EAAE,CAAC;gBACvE,SAAS,GAAG,mCAAmC,aAAnC,mCAAmC,uBAAnC,mCAAmC,CAAE,SAAS,CAAC;gBAC3D,WAAW,GAAG,mCAAmC,aAAnC,mCAAmC,uBAAnC,mCAAmC,CAAE,WAAW,CAAC;gBAC/D,WAAW,GAAG,mCAAmC,aAAnC,mCAAmC,uBAAnC,mCAAmC,CAAE,WAAW,CAAC;YACjE,CAAC;iBAAM,IAAI,WAAW,CAAC,mCAAmC,CAAC,EAAE,CAAC;gBAC5D,SAAS,GAAG,mCAAmC,CAAC;YAClD,CAAC;YAED,IAAI,iBAAiB,EAAE,CAAC;gBACtB,WAAW,GAAG,iBAAiB,CAAC;YAClC,CAAC;YAED,IAAA,+BAAqB,EAAC,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,oBAAoB,CAAC,CAAC;YAE3D,IAAI,OAAO,mCAAmC,KAAK,QAAQ,EAAE,CAAC;gBAC5D,IAAI,GAAG,KAAK,OAAO,IAAI,mCAAmC,KAAK,EAAE,EAAE,CAAC;oBAGlE,SAAS,GAAG,SAAS,CAAC;gBACxB,CAAC;qBAAM,CAAC;oBACN,MAAM,IAAI,iCAAwB,CAChC,2IAA2I,EAC3I,qBAAY,CAAC,UAAU,CACxB,CAAC;gBACJ,CAAC;YACH,CAAC;iBAAM,IAAI,KAAK,CAAC,OAAO,CAAC,mCAAmC,CAAC,EAAE,CAAC;gBAG9D,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;oBACpB,MAAM,IAAI,iCAAwB,CAChC,0FAA0F,EAC1F,qBAAY,CAAC,eAAe,CAC7B,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,IAAI,WAAW,EAAE,CAAC;wBAChB,MAAM,IAAI,iCAAwB,CAChC,gKAAgK,EAChK,qBAAY,CAAC,eAAe,CAC7B,CAAC;oBACJ,CAAC;oBAED,WAAW,GAAG,mCAAmC,CAAC;oBAClD,SAAS,GAAG,SAAS,CAAC;gBACxB,CAAC;YACH,CAAC;YAED,IAAI,OAAiE,CAAC;YAEtE,IAAI,SAAS,EAAE,CAAC;gBACd,OAAO,GAAG,EAAE,GAAG,CAAC,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC;YAC9C,CAAC;YACD,IAAI,WAAW,EAAE,CAAC;gBAChB,OAAO,GAAG,EAAE,GAAG,CAAC,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC;YAChD,CAAC;YACD,IAAI,WAAW,EAAE,CAAC;gBAChB,OAAO,GAAG,EAAE,GAAG,CAAC,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC;YAChD,CAAC;YAED,OAAO,MAAM,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,aAAa,CAC9D,GAAG,EACH,OAAuD,CACxD,CAAC;QACJ,CAAC;QAID,KAAK,CAAC,MAAM,CAAC,KAAiB;YAC5B,IAAA,+BAAqB,EAAC,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,iBAAiB,CAAC,CAAC;YAC1D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;YACxD,OAAO,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACtC,CAAC;QAID,KAAK,CAAC,eAAe,CAAC,UAAkB;YACtC,IAAA,+BAAqB,EAAC,CAAC,UAAU,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,0BAA0B,CAAC,CAAC;YAC5E,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,CAAC;YACrE,OAAO,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACtC,CAAC;QAMD,KAAK,CAAC,OAAO;YACX,OAAO,IAAI,gBAAM,CACf,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,OAAO,EAAE,CAChD,CAAC;QACJ,CAAC;QAID,KAAK,CAAC,SAAS,CAAC,KAAiB;YAC/B,IAAA,+BAAqB,EAAC,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,oBAAoB,CAAC,CAAC;YAC7D,OAAO,MAAM,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACtE,CAAC;QAID,KAAK,CAAC,mBAAmB,CACvB,KAAiB,EACjB,UAAkB;YAElB,IAAA,+BAAqB,EACnB,CAAC,KAAK,EAAE,UAAU,CAAC,EACnB,CAAC,IAAI,EAAE,QAAQ,CAAC,EAChB,8BAA8B,CAC/B,CAAC;YACF,OAAO,MAAM,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,aAAa,CAC9D,KAAK,EACL,UAAU,CACX,CAAC;QACJ,CAAC;QAID,KAAK,CAAC,sBAAsB,CAC1B,KAAiB,EACjB,UAAkB;YAElB,IAAA,+BAAqB,EACnB,CAAC,KAAK,EAAE,UAAU,CAAC,EACnB,CAAC,IAAI,EAAE,QAAQ,CAAC,EAChB,iCAAiC,CAClC,CAAC;YACF,OAAO,MAAM,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,gBAAgB,CACjE,KAAK,EACL,UAAU,CACX,CAAC;QACJ,CAAC;QAID,KAAK,CAAC,iBAAiB,CACrB,MAAgB,EAChB,OAAkB;YAElB,OAAO,MAAM,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,iBAAiB,CAClE,MAAM,EACN,OAAc,CACf,CAAC;QACJ,CAAC;QAKD,KAAK,CAAC,aAAa,CACjB,GAAG,IAAuC;YAE1C,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC;QACvC,CAAC;QAKD,KAAK,CAAC,gBAAgB,CACpB,GAAG,IAAoD;YAEvD,OAAO,MAAM,IAAI,CAAC,sBAAsB,CAAC,GAAG,IAAI,CAAC,CAAC;QACpD,CAAC;QAKD,KAAK,CAAC,aAAa,CACjB,GAAG,IAAiD;YAEpD,OAAO,MAAM,IAAI,CAAC,mBAAmB,CAAC,GAAG,IAAI,CAAC,CAAC;QACjD,CAAC;;;;;;iCApLA,2BAAc,EACd,IAAA,wBAAW,EAAC,CAAC,CAAC,CAAC,CAAC;8BA0EhB,IAAA,wBAAW,EAAC,CAAC,CAAC,CAAC,CAAC,EAChB,2BAAc;uCAOd,IAAA,wBAAW,EAAC,CAAC,CAAC,CAAC,CAAC,EAChB,2BAAc;+BAQd,IAAA,uBAAU,EAAC,QAAQ,CAAC,EACpB,IAAA,wBAAW,EAAC,CAAC,CAAC,CAAC,CAAC,EAChB,2BAAc;iCAQd,2BAAc,EACd,IAAA,wBAAW,EAAC,CAAC,CAAC,CAAC,CAAC;2CAMhB,2BAAc,EACd,IAAA,wBAAW,EAAC,CAAC,CAAC,CAAC,CAAC;8CAgBhB,2BAAc,EACd,IAAA,wBAAW,EAAC,CAAC,CAAC,CAAC,CAAC;yCAgBhB,2BAAc,EACd,IAAA,wBAAW,EAAC,CAAC,CAAC,CAAC,CAAC;qCAYhB,2BAAc,EACd,IAAA,wBAAW,EAAC,CAAC,CAAC,CAAC,CAAC;wCAQhB,2BAAc,EACd,IAAA,wBAAW,EAAC,CAAC,CAAC,CAAC,CAAC;qCAQhB,2BAAc,EACd,IAAA,wBAAW,EAAC,CAAC,CAAC,CAAC,CAAC;QA7KjB,oLAAM,SAAS,6DAuEd;QAID,2KAAM,MAAM,6DAIX;QAID,sMAAM,eAAe,6DAIpB;QAMD,8KAAM,OAAO,6DAKZ;QAID,oLAAM,SAAS,6DAGd;QAID,kNAAM,mBAAmB,6DAaxB;QAID,2NAAM,sBAAsB,6DAa3B;QAID,4MAAM,iBAAiB,6DAQtB;QAKD,gMAAM,aAAa,6DAIlB;QAKD,yMAAM,gBAAgB,6DAIrB;QAKD,gMAAM,aAAa,6DAIlB;QAxQH,6KAyQC;;;QAzQY,uDAAQ;;;;AAAR,4BAAQ"}
|