mongodb-data-service 22.5.1 → 22.7.0
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/lib/connect-mongo-client.d.ts +7 -3
- package/lib/connect-mongo-client.d.ts.map +1 -1
- package/lib/connect-mongo-client.js +82 -20
- package/lib/connect-mongo-client.js.map +1 -1
- package/lib/connect.d.ts +3 -1
- package/lib/connect.d.ts.map +1 -1
- package/lib/connect.js +3 -3
- package/lib/connect.js.map +1 -1
- package/lib/connection-options.d.ts +5 -0
- package/lib/connection-options.d.ts.map +1 -1
- package/lib/csfle-collection-tracker.d.ts +8 -8
- package/lib/csfle-collection-tracker.d.ts.map +1 -1
- package/lib/csfle-collection-tracker.js +17 -19
- package/lib/csfle-collection-tracker.js.map +1 -1
- package/lib/data-service.d.ts +112 -127
- package/lib/data-service.d.ts.map +1 -1
- package/lib/data-service.js +1087 -1040
- package/lib/data-service.js.map +1 -1
- package/lib/index-detail-helper.d.ts +36 -0
- package/lib/index-detail-helper.d.ts.map +1 -0
- package/lib/index-detail-helper.js +92 -0
- package/lib/index-detail-helper.js.map +1 -0
- package/lib/index.d.ts +1 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/instance-detail-helper.d.ts +10 -8
- package/lib/instance-detail-helper.d.ts.map +1 -1
- package/lib/instance-detail-helper.js +12 -4
- package/lib/instance-detail-helper.js.map +1 -1
- package/lib/legacy/legacy-connection-model.d.ts +1 -1
- package/lib/legacy/legacy-connection-model.d.ts.map +1 -1
- package/lib/logger.d.ts +19 -0
- package/lib/logger.d.ts.map +1 -0
- package/lib/logger.js +10 -0
- package/lib/logger.js.map +1 -0
- package/lib/run-command.d.ts +56 -19
- package/lib/run-command.d.ts.map +1 -1
- package/lib/run-command.js.map +1 -1
- package/lib/ssh-tunnel.d.ts +4 -3
- package/lib/ssh-tunnel.d.ts.map +1 -1
- package/lib/ssh-tunnel.js +7 -9
- package/lib/ssh-tunnel.js.map +1 -1
- package/lib/types.d.ts +1 -17
- package/lib/types.d.ts.map +1 -1
- package/package.json +27 -34
|
@@ -1,15 +1,19 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
1
2
|
import { MongoClient } from 'mongodb';
|
|
2
|
-
import type { DevtoolsConnectOptions } from '@mongodb-js/devtools-connect';
|
|
3
|
+
import type { DevtoolsConnectOptions, DevtoolsConnectionState } from '@mongodb-js/devtools-connect';
|
|
3
4
|
import type SSHTunnel from '@mongodb-js/ssh-tunnel';
|
|
4
5
|
import type { ConnectionOptions } from './connection-options';
|
|
6
|
+
import type { UnboundDataServiceImplLogger } from './logger';
|
|
5
7
|
export declare const createClonedClient: unique symbol;
|
|
6
|
-
export
|
|
8
|
+
export type CloneableMongoClient = MongoClient & {
|
|
7
9
|
[createClonedClient](): Promise<CloneableMongoClient>;
|
|
8
10
|
};
|
|
9
|
-
export
|
|
11
|
+
export declare function prepareOIDCOptions(connectionOptions: Readonly<ConnectionOptions>, signal?: AbortSignal): Required<Pick<DevtoolsConnectOptions, 'oidc' | 'authMechanismProperties'>>;
|
|
12
|
+
export declare function connectMongoClientCompass(connectionOptions: Readonly<ConnectionOptions>, setupListeners: (client: MongoClient) => void, signal?: AbortSignal, logger?: UnboundDataServiceImplLogger): Promise<[
|
|
10
13
|
metadataClient: CloneableMongoClient,
|
|
11
14
|
crudClient: CloneableMongoClient,
|
|
12
15
|
sshTunnel: SSHTunnel | undefined,
|
|
16
|
+
connectionState: DevtoolsConnectionState,
|
|
13
17
|
options: {
|
|
14
18
|
url: string;
|
|
15
19
|
options: DevtoolsConnectOptions;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connect-mongo-client.d.ts","sourceRoot":"","sources":["../src/connect-mongo-client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"connect-mongo-client.d.ts","sourceRoot":"","sources":["../src/connect-mongo-client.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC,OAAO,KAAK,EACV,sBAAsB,EACtB,uBAAuB,EACxB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,SAAS,MAAM,wBAAwB,CAAC;AAIpD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAO9D,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,UAAU,CAAC;AAK7D,eAAO,MAAM,kBAAkB,eAA+B,CAAC;AAC/D,MAAM,MAAM,oBAAoB,GAAG,WAAW,GAAG;IAC/C,CAAC,kBAAkB,CAAC,IAAI,OAAO,CAAC,oBAAoB,CAAC,CAAC;CACvD,CAAC;AAEF,wBAAgB,kBAAkB,CAChC,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB,CAAC,EAC9C,MAAM,CAAC,EAAE,WAAW,GACnB,QAAQ,CAAC,IAAI,CAAC,sBAAsB,EAAE,MAAM,GAAG,yBAAyB,CAAC,CAAC,CA4B5E;AAED,wBAAsB,yBAAyB,CAC7C,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB,CAAC,EAC9C,cAAc,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,EAC7C,MAAM,CAAC,EAAE,WAAW,EACpB,MAAM,CAAC,EAAE,4BAA4B,GACpC,OAAO,CACR;IACE,cAAc,EAAE,oBAAoB;IACpC,UAAU,EAAE,oBAAoB;IAChC,SAAS,EAAE,SAAS,GAAG,SAAS;IAChC,eAAe,EAAE,uBAAuB;IACxC,OAAO,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,sBAAsB,CAAA;KAAE;CAC1D,CACF,CA6JA"}
|
|
@@ -3,24 +3,49 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.createClonedClient = void 0;
|
|
6
|
+
exports.connectMongoClientCompass = exports.prepareOIDCOptions = exports.createClonedClient = void 0;
|
|
7
7
|
const mongodb_1 = require("mongodb");
|
|
8
8
|
const devtools_connect_1 = require("@mongodb-js/devtools-connect");
|
|
9
9
|
const events_1 = __importDefault(require("events"));
|
|
10
10
|
const redact_1 = require("./redact");
|
|
11
11
|
const lodash_1 = __importDefault(require("lodash"));
|
|
12
|
-
const compass_logging_1 = __importDefault(require("@mongodb-js/compass-logging"));
|
|
13
12
|
const ssh_tunnel_1 = require("./ssh-tunnel");
|
|
14
|
-
const
|
|
13
|
+
const run_command_1 = require("./run-command");
|
|
14
|
+
const logger_1 = require("./logger");
|
|
15
|
+
const debug = logger_1.debug.extend('compass-connect');
|
|
15
16
|
exports.createClonedClient = Symbol('createClonedClient');
|
|
16
|
-
|
|
17
|
+
function prepareOIDCOptions(connectionOptions, signal) {
|
|
18
|
+
var _a, _b;
|
|
19
|
+
var _c;
|
|
20
|
+
const options = {
|
|
21
|
+
oidc: { ...connectionOptions.oidc },
|
|
22
|
+
authMechanismProperties: {},
|
|
23
|
+
};
|
|
24
|
+
(_a = (_c = options.oidc).allowedFlows) !== null && _a !== void 0 ? _a : (_c.allowedFlows = ['auth-code']);
|
|
25
|
+
if (process.env.COMPASS_TEST_OIDC_BROWSER_DUMMY) {
|
|
26
|
+
options.oidc.openBrowser = {
|
|
27
|
+
command: process.env.COMPASS_TEST_OIDC_BROWSER_DUMMY,
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
if ((_b = connectionOptions.oidc) === null || _b === void 0 ? void 0 : _b.enableUntrustedEndpoints) {
|
|
31
|
+
options.authMechanismProperties.ALLOWED_HOSTS = ['*'];
|
|
32
|
+
}
|
|
33
|
+
options.oidc.signal = signal;
|
|
34
|
+
return options;
|
|
35
|
+
}
|
|
36
|
+
exports.prepareOIDCOptions = prepareOIDCOptions;
|
|
37
|
+
async function connectMongoClientCompass(connectionOptions, setupListeners, signal, logger) {
|
|
17
38
|
var _a, _b;
|
|
18
39
|
debug('connectMongoClient invoked', (0, redact_1.redactConnectionOptions)(connectionOptions));
|
|
40
|
+
const oidcOptions = prepareOIDCOptions(connectionOptions, signal);
|
|
19
41
|
const url = connectionOptions.connectionString;
|
|
20
42
|
const options = {
|
|
43
|
+
productName: 'MongoDB Compass',
|
|
44
|
+
productDocsLink: 'https://www.mongodb.com/docs/compass/',
|
|
21
45
|
monitorCommands: true,
|
|
22
46
|
useSystemCA: connectionOptions.useSystemCA,
|
|
23
47
|
autoEncryption: (_a = connectionOptions.fleOptions) === null || _a === void 0 ? void 0 : _a.autoEncryption,
|
|
48
|
+
...oidcOptions,
|
|
24
49
|
};
|
|
25
50
|
if (options.autoEncryption && process.env.COMPASS_CRYPT_LIBRARY_PATH) {
|
|
26
51
|
options.autoEncryption = {
|
|
@@ -31,7 +56,7 @@ async function connectMongoClientCompass(connectionOptions, setupListeners) {
|
|
|
31
56
|
},
|
|
32
57
|
};
|
|
33
58
|
}
|
|
34
|
-
const [tunnel, socks5Options] = await (0, ssh_tunnel_1.openSshTunnel)(connectionOptions.sshTunnel);
|
|
59
|
+
const [tunnel, socks5Options] = await (0, ssh_tunnel_1.openSshTunnel)(connectionOptions.sshTunnel, logger);
|
|
35
60
|
if (socks5Options) {
|
|
36
61
|
Object.assign(options, socks5Options);
|
|
37
62
|
}
|
|
@@ -44,32 +69,69 @@ async function connectMongoClientCompass(connectionOptions, setupListeners) {
|
|
|
44
69
|
}
|
|
45
70
|
}
|
|
46
71
|
const connectLogger = new events_1.default();
|
|
47
|
-
(
|
|
72
|
+
if (logger) {
|
|
73
|
+
(0, devtools_connect_1.hookLogger)(connectLogger, logger, 'compass', redact_1.redactConnectionString);
|
|
74
|
+
}
|
|
48
75
|
async function connectSingleClient(overrideOptions) {
|
|
49
76
|
const connectOptions = lodash_1.default.cloneDeep({ ...options, ...overrideOptions });
|
|
50
|
-
const client = await (0, devtools_connect_1.connectMongoClient)(url, connectOptions, connectLogger, CompassMongoClient);
|
|
51
|
-
await client.db('admin')
|
|
52
|
-
return
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
77
|
+
const { client, state } = await (0, devtools_connect_1.connectMongoClient)(url, connectOptions, connectLogger, CompassMongoClient);
|
|
78
|
+
await (0, run_command_1.runCommand)(client.db('admin'), { ping: 1 });
|
|
79
|
+
return {
|
|
80
|
+
client: Object.assign(client, {
|
|
81
|
+
async [exports.createClonedClient]() {
|
|
82
|
+
const { client } = await connectSingleClient({
|
|
83
|
+
...connectOptions,
|
|
84
|
+
parentState: state,
|
|
85
|
+
});
|
|
86
|
+
return client;
|
|
87
|
+
},
|
|
88
|
+
}),
|
|
89
|
+
state,
|
|
90
|
+
};
|
|
57
91
|
}
|
|
58
92
|
let metadataClient;
|
|
59
93
|
let crudClient;
|
|
94
|
+
let state;
|
|
60
95
|
try {
|
|
61
96
|
debug('waiting for MongoClient to connect ...');
|
|
62
|
-
[metadataClient, crudClient] = await Promise.race([
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
97
|
+
[metadataClient, crudClient, state] = await Promise.race([
|
|
98
|
+
(async () => {
|
|
99
|
+
const { client: metadataClient, state } = await connectSingleClient({
|
|
100
|
+
autoEncryption: undefined,
|
|
101
|
+
});
|
|
102
|
+
const parentHandlePromise = state.getStateShareServer();
|
|
103
|
+
parentHandlePromise.catch(() => {
|
|
104
|
+
});
|
|
105
|
+
let crudClient;
|
|
106
|
+
if (options.autoEncryption) {
|
|
107
|
+
try {
|
|
108
|
+
crudClient = (await connectSingleClient({
|
|
109
|
+
parentState: state,
|
|
110
|
+
})).client;
|
|
111
|
+
}
|
|
112
|
+
catch (err) {
|
|
113
|
+
await metadataClient.close();
|
|
114
|
+
throw err;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
try {
|
|
118
|
+
await parentHandlePromise;
|
|
119
|
+
}
|
|
120
|
+
catch (err) {
|
|
121
|
+
await metadataClient.close();
|
|
122
|
+
await (crudClient === null || crudClient === void 0 ? void 0 : crudClient.close());
|
|
123
|
+
throw err;
|
|
124
|
+
}
|
|
125
|
+
return [metadataClient, crudClient, state];
|
|
126
|
+
})(),
|
|
67
127
|
(0, ssh_tunnel_1.waitForTunnelError)(tunnel),
|
|
68
128
|
]);
|
|
129
|
+
options.parentHandle = await state.getStateShareServer();
|
|
69
130
|
return [
|
|
70
131
|
metadataClient,
|
|
71
132
|
crudClient !== null && crudClient !== void 0 ? crudClient : metadataClient,
|
|
72
133
|
tunnel,
|
|
134
|
+
state,
|
|
73
135
|
{ url, options },
|
|
74
136
|
];
|
|
75
137
|
}
|
|
@@ -77,7 +139,7 @@ async function connectMongoClientCompass(connectionOptions, setupListeners) {
|
|
|
77
139
|
debug('connection error', err);
|
|
78
140
|
debug('force shutting down ssh tunnel ...');
|
|
79
141
|
await Promise.all([
|
|
80
|
-
(0, ssh_tunnel_1.forceCloseTunnel)(tunnel),
|
|
142
|
+
(0, ssh_tunnel_1.forceCloseTunnel)(tunnel, logger),
|
|
81
143
|
crudClient === null || crudClient === void 0 ? void 0 : crudClient.close(),
|
|
82
144
|
metadataClient === null || metadataClient === void 0 ? void 0 : metadataClient.close(),
|
|
83
145
|
]).catch(() => {
|
|
@@ -85,5 +147,5 @@ async function connectMongoClientCompass(connectionOptions, setupListeners) {
|
|
|
85
147
|
throw err;
|
|
86
148
|
}
|
|
87
149
|
}
|
|
88
|
-
exports.
|
|
150
|
+
exports.connectMongoClientCompass = connectMongoClientCompass;
|
|
89
151
|
//# sourceMappingURL=connect-mongo-client.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connect-mongo-client.js","sourceRoot":"","sources":["../src/connect-mongo-client.ts"],"names":[],"mappings":";;;;;;AACA,qCAAsC;AACtC,mEAA8E;
|
|
1
|
+
{"version":3,"file":"connect-mongo-client.js","sourceRoot":"","sources":["../src/connect-mongo-client.ts"],"names":[],"mappings":"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"}
|
package/lib/connect.d.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
1
2
|
import type { ConnectionOptions } from './connection-options';
|
|
2
3
|
import type { DataService } from './data-service';
|
|
3
|
-
|
|
4
|
+
import type { DataServiceImplLogger } from './logger';
|
|
5
|
+
export default function connect(connectionOptions: ConnectionOptions, signal?: AbortSignal, logger?: DataServiceImplLogger): Promise<DataService>;
|
|
4
6
|
//# sourceMappingURL=connect.d.ts.map
|
package/lib/connect.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connect.d.ts","sourceRoot":"","sources":["../src/connect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"connect.d.ts","sourceRoot":"","sources":["../src/connect.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAGtD,wBAA8B,OAAO,CACnC,iBAAiB,EAAE,iBAAiB,EACpC,MAAM,CAAC,EAAE,WAAW,EACpB,MAAM,CAAC,EAAE,qBAAqB,GAC7B,OAAO,CAAC,WAAW,CAAC,CAItB"}
|
package/lib/connect.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const data_service_1 = require("./data-service");
|
|
4
|
-
async function connect(connectionOptions) {
|
|
5
|
-
const dataService = new data_service_1.DataServiceImpl(connectionOptions);
|
|
6
|
-
await dataService.connect();
|
|
4
|
+
async function connect(connectionOptions, signal, logger) {
|
|
5
|
+
const dataService = new data_service_1.DataServiceImpl(connectionOptions, logger);
|
|
6
|
+
await dataService.connect(signal);
|
|
7
7
|
return dataService;
|
|
8
8
|
}
|
|
9
9
|
exports.default = connect;
|
package/lib/connect.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connect.js","sourceRoot":"","sources":["../src/connect.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"connect.js","sourceRoot":"","sources":["../src/connect.ts"],"names":[],"mappings":";;AAGA,iDAAiD;AAElC,KAAK,UAAU,OAAO,CACnC,iBAAoC,EACpC,MAAoB,EACpB,MAA8B;IAE9B,MAAM,WAAW,GAAG,IAAI,8BAAe,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;IACnE,MAAM,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAClC,OAAO,WAAW,CAAC;AACrB,CAAC;AARD,0BAQC"}
|
|
@@ -1,8 +1,13 @@
|
|
|
1
1
|
import type { AutoEncryptionOptions } from 'mongodb';
|
|
2
|
+
import type { DevtoolsConnectOptions } from '@mongodb-js/devtools-connect';
|
|
3
|
+
export type OIDCOptions = Omit<NonNullable<DevtoolsConnectOptions['oidc']>, 'notifyDeviceFlow' | 'signal'> & {
|
|
4
|
+
enableUntrustedEndpoints?: boolean;
|
|
5
|
+
};
|
|
2
6
|
export interface ConnectionOptions {
|
|
3
7
|
connectionString: string;
|
|
4
8
|
sshTunnel?: ConnectionSshOptions;
|
|
5
9
|
useSystemCA?: boolean;
|
|
10
|
+
oidc?: OIDCOptions;
|
|
6
11
|
fleOptions?: ConnectionFleOptions;
|
|
7
12
|
}
|
|
8
13
|
export interface ConnectionFleOptions {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection-options.d.ts","sourceRoot":"","sources":["../src/connection-options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"connection-options.d.ts","sourceRoot":"","sources":["../src/connection-options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AACrD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAE3E,MAAM,MAAM,WAAW,GAAG,IAAI,CAC5B,WAAW,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC,EAC3C,kBAAkB,GAAG,QAAQ,CAC9B,GAAG;IAGF,wBAAwB,CAAC,EAAE,OAAO,CAAC;CACpC,CAAC;AAEF,MAAM,WAAW,iBAAiB;IAIhC,gBAAgB,EAAE,MAAM,CAAC;IAKzB,SAAS,CAAC,EAAE,oBAAoB,CAAC;IAKjC,WAAW,CAAC,EAAE,OAAO,CAAC;IAKtB,IAAI,CAAC,EAAE,WAAW,CAAC;IAKnB,UAAU,CAAC,EAAE,oBAAoB,CAAC;CACnC;AAED,MAAM,WAAW,oBAAoB;IAInC,gBAAgB,EAAE,OAAO,CAAC;IAK1B,cAAc,CAAC,EAAE,qBAAqB,CAAC;CACxC;AAED,MAAM,WAAW,oBAAoB;IAInC,IAAI,EAAE,MAAM,CAAC;IAKb,IAAI,EAAE,MAAM,CAAC;IAKb,QAAQ,EAAE,MAAM,CAAC;IAKjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAKlB,eAAe,CAAC,EAAE,MAAM,CAAC;IAKzB,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import type { MongoClient, Document } from 'mongodb';
|
|
2
2
|
import type { DataService } from './data-service';
|
|
3
3
|
import type { CollectionInfo, CollectionInfoNameOnly } from './run-command';
|
|
4
|
-
|
|
4
|
+
import type { UnboundDataServiceImplLogger } from './logger';
|
|
5
|
+
type FieldPath = string[];
|
|
5
6
|
export interface CSFLEEncryptedFieldsSet {
|
|
6
7
|
readonly encryptedFields: FieldPath[];
|
|
7
8
|
readonly equalityQueryableEncryptedFields: FieldPath[];
|
|
@@ -12,6 +13,7 @@ export interface CSFLECollectionTracker {
|
|
|
12
13
|
hasSchema: boolean;
|
|
13
14
|
encryptedFields: CSFLEEncryptedFieldsSet;
|
|
14
15
|
}>;
|
|
16
|
+
updateCollectionInfo(namespace: string, result: CollectionInfoNameOnly & Partial<CollectionInfo>): void;
|
|
15
17
|
}
|
|
16
18
|
declare class CSFLEEncryptedFieldsSetImpl implements CSFLEEncryptedFieldsSet {
|
|
17
19
|
_encryptedFields: {
|
|
@@ -33,10 +35,11 @@ interface CSFLECollectionInfo {
|
|
|
33
35
|
lastUpdated?: Date;
|
|
34
36
|
}
|
|
35
37
|
export declare class CSFLECollectionTrackerImpl implements CSFLECollectionTracker {
|
|
38
|
+
private _dataService;
|
|
39
|
+
private _crudClient;
|
|
40
|
+
private _logger?;
|
|
36
41
|
_nsToInfo: Map<string, CSFLECollectionInfo>;
|
|
37
|
-
_dataService: Pick<DataService, 'on' | 'listCollections'
|
|
38
|
-
_crudClient: MongoClient;
|
|
39
|
-
constructor(dataService: Pick<DataService, 'on' | 'listCollections'>, crudClient: MongoClient);
|
|
42
|
+
constructor(_dataService: Pick<DataService, 'on' | 'listCollections'>, _crudClient: MongoClient, _logger?: UnboundDataServiceImplLogger | undefined);
|
|
40
43
|
isUpdateAllowed(ns: string, originalDocument: Document): Promise<boolean>;
|
|
41
44
|
knownSchemaForCollection(ns: string): Promise<{
|
|
42
45
|
hasSchema: boolean;
|
|
@@ -45,10 +48,7 @@ export declare class CSFLECollectionTrackerImpl implements CSFLECollectionTracke
|
|
|
45
48
|
_processClientSchemaDefinitions(): void;
|
|
46
49
|
_fetchCSFLECollectionInfo(ns: string): Promise<CSFLECollectionInfo>;
|
|
47
50
|
_getCSFLECollectionInfo(ns: string): CSFLECollectionInfo;
|
|
48
|
-
|
|
49
|
-
databaseName: string;
|
|
50
|
-
nameOnly?: boolean;
|
|
51
|
-
}, result: CollectionInfoNameOnly & Partial<CollectionInfo>): void;
|
|
51
|
+
updateCollectionInfo(ns: string, result: CollectionInfoNameOnly & Partial<CollectionInfo>): void;
|
|
52
52
|
_createHookedMetadataClient(wrappedClient: MongoClient): MongoClient;
|
|
53
53
|
_checkListCollectionsForLibmongocryptResult(dbName: string, filter: Document, collectionInfos: CollectionInfo[]): Error | undefined;
|
|
54
54
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"csfle-collection-tracker.d.ts","sourceRoot":"","sources":["../src/csfle-collection-tracker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAyB,MAAM,SAAS,CAAC;AAE5E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EACV,cAAc,EACd,sBAAsB,EAEvB,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"csfle-collection-tracker.d.ts","sourceRoot":"","sources":["../src/csfle-collection-tracker.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,8 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.CSFLECollectionTrackerImpl = void 0;
|
|
7
7
|
const mongodb_ns_1 = __importDefault(require("mongodb-ns"));
|
|
8
8
|
const lodash_1 = __importDefault(require("lodash"));
|
|
9
|
-
const
|
|
10
|
-
const { log, mongoLogId } = (0, compass_logging_1.default)('COMPASS-DATA-SERVICE');
|
|
9
|
+
const logger_1 = require("./logger");
|
|
11
10
|
class CSFLEEncryptedFieldsSetImpl {
|
|
12
11
|
constructor() {
|
|
13
12
|
this._encryptedFields = [];
|
|
@@ -108,15 +107,16 @@ function isOlderThan1Minute(oldDate) {
|
|
|
108
107
|
return Date.now() - oldDate.getTime() >= 60000;
|
|
109
108
|
}
|
|
110
109
|
class CSFLECollectionTrackerImpl {
|
|
111
|
-
constructor(
|
|
110
|
+
constructor(_dataService, _crudClient, _logger) {
|
|
111
|
+
var _a;
|
|
112
|
+
this._dataService = _dataService;
|
|
113
|
+
this._crudClient = _crudClient;
|
|
114
|
+
this._logger = _logger;
|
|
112
115
|
this._nsToInfo = new Map();
|
|
113
|
-
this._dataService = dataService;
|
|
114
|
-
this._crudClient = crudClient;
|
|
115
|
-
this._dataService.on('collectionInfoFetched', this._updateCollectionInfoFromDataService.bind(this));
|
|
116
116
|
this._processClientSchemaDefinitions();
|
|
117
117
|
const { autoEncrypter } = this._crudClient.options;
|
|
118
118
|
if (autoEncrypter) {
|
|
119
|
-
|
|
119
|
+
(_a = this._logger) === null || _a === void 0 ? void 0 : _a.info('COMPASS-DATA-SERVICE', (0, logger_1.mongoLogId)(1001000118), 'CSFLECollectionTracker', 'Hooking AutoEncrypter metaDataClient property');
|
|
120
120
|
autoEncrypter._metaDataClient = this._createHookedMetadataClient(autoEncrypter._metaDataClient);
|
|
121
121
|
}
|
|
122
122
|
}
|
|
@@ -140,25 +140,26 @@ class CSFLECollectionTrackerImpl {
|
|
|
140
140
|
return { hasSchema, encryptedFields };
|
|
141
141
|
}
|
|
142
142
|
_processClientSchemaDefinitions() {
|
|
143
|
-
var _a, _b;
|
|
143
|
+
var _a, _b, _c;
|
|
144
144
|
const { autoEncryption } = this._crudClient.options;
|
|
145
145
|
for (const ns of [
|
|
146
146
|
...Object.keys((_a = autoEncryption === null || autoEncryption === void 0 ? void 0 : autoEncryption.schemaMap) !== null && _a !== void 0 ? _a : {}),
|
|
147
147
|
...Object.keys((_b = autoEncryption === null || autoEncryption === void 0 ? void 0 : autoEncryption.encryptedFieldsMap) !== null && _b !== void 0 ? _b : {}),
|
|
148
148
|
]) {
|
|
149
|
-
|
|
149
|
+
(_c = this._logger) === null || _c === void 0 ? void 0 : _c.info('COMPASS-DATA-SERVICE', (0, logger_1.mongoLogId)(1001000119), 'CSFLECollectionTracker', 'Processing client-side schema information', { ns });
|
|
150
150
|
const info = this._getCSFLECollectionInfo(ns);
|
|
151
151
|
info.clientEnforcedEncryptedFields =
|
|
152
152
|
extractEncrytedFieldFromAutoEncryptionOptions(ns, autoEncryption);
|
|
153
153
|
}
|
|
154
154
|
}
|
|
155
155
|
async _fetchCSFLECollectionInfo(ns) {
|
|
156
|
+
var _a;
|
|
156
157
|
const parsedNs = (0, mongodb_ns_1.default)(ns);
|
|
157
158
|
const info = this._getCSFLECollectionInfo(ns);
|
|
158
159
|
if (!info.serverEnforcedEncryptedFields ||
|
|
159
160
|
!info.lastUpdated ||
|
|
160
161
|
isOlderThan1Minute(info.lastUpdated)) {
|
|
161
|
-
|
|
162
|
+
(_a = this._logger) === null || _a === void 0 ? void 0 : _a.info('COMPASS-DATA-SERVICE', (0, logger_1.mongoLogId)(1001000120), 'CSFLECollectionTracker', 'Refreshing listCollections cache', { ns });
|
|
162
163
|
await this._dataService.listCollections(parsedNs.database, {
|
|
163
164
|
name: parsedNs.collection,
|
|
164
165
|
});
|
|
@@ -173,17 +174,13 @@ class CSFLECollectionTrackerImpl {
|
|
|
173
174
|
this._nsToInfo.set(ns, info);
|
|
174
175
|
return info;
|
|
175
176
|
}
|
|
176
|
-
|
|
177
|
-
var _a, _b;
|
|
178
|
-
|
|
179
|
-
return;
|
|
180
|
-
}
|
|
181
|
-
const ns = `${opts.databaseName}.${result.name}`;
|
|
182
|
-
log.info(mongoLogId(1001000121), 'CSFLECollectionTracker', 'Processing listCollections update', { ns });
|
|
177
|
+
updateCollectionInfo(ns, result) {
|
|
178
|
+
var _a, _b, _c;
|
|
179
|
+
(_a = this._logger) === null || _a === void 0 ? void 0 : _a.info('COMPASS-DATA-SERVICE', (0, logger_1.mongoLogId)(1001000121), 'CSFLECollectionTracker', 'Processing listCollections update', { ns });
|
|
183
180
|
const info = this._getCSFLECollectionInfo(ns);
|
|
184
181
|
info.serverEnforcedEncryptedFields =
|
|
185
182
|
extractEncryptedFieldsFromListCollectionsResult(result.options);
|
|
186
|
-
info.hasServerSchema = !!((
|
|
183
|
+
info.hasServerSchema = !!((_c = (_b = result.options) === null || _b === void 0 ? void 0 : _b.validator) === null || _c === void 0 ? void 0 : _c.$jsonSchema);
|
|
187
184
|
info.lastUpdated = new Date();
|
|
188
185
|
}
|
|
189
186
|
_createHookedMetadataClient(wrappedClient) {
|
|
@@ -193,13 +190,14 @@ class CSFLECollectionTrackerImpl {
|
|
|
193
190
|
listCollections: (filter, opts) => {
|
|
194
191
|
return {
|
|
195
192
|
toArray: async () => {
|
|
193
|
+
var _a;
|
|
196
194
|
const collectionInfos = await wrappedClient
|
|
197
195
|
.db(dbName)
|
|
198
196
|
.listCollections(filter, opts)
|
|
199
197
|
.toArray();
|
|
200
198
|
const err = this._checkListCollectionsForLibmongocryptResult(dbName, filter, (collectionInfos !== null && collectionInfos !== void 0 ? collectionInfos : []));
|
|
201
199
|
if (err) {
|
|
202
|
-
|
|
200
|
+
(_a = this._logger) === null || _a === void 0 ? void 0 : _a.error('COMPASS-DATA-SERVICE', (0, logger_1.mongoLogId)(1001000122), 'CSFLECollectionTracker', 'Rejecting listCollections in hooked metaDataClient', { error: err.message });
|
|
203
201
|
throw err;
|
|
204
202
|
}
|
|
205
203
|
return collectionInfos;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"csfle-collection-tracker.js","sourceRoot":"","sources":["../src/csfle-collection-tracker.ts"],"names":[],"mappings":";;;;;;AAQA,4DAAwC;AACxC,oDAAuB;
|
|
1
|
+
{"version":3,"file":"csfle-collection-tracker.js","sourceRoot":"","sources":["../src/csfle-collection-tracker.ts"],"names":[],"mappings":";;;;;;AAQA,4DAAwC;AACxC,oDAAuB;AAEvB,qCAAsC;AA+DtC,MAAM,2BAA2B;IAAjC;QACE,qBAAgB,GAAsD,EAAE,CAAC;IAoE3E,CAAC;IAlEC,IAAI,eAAe;QACjB,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;IACvD,CAAC;IAED,IAAI,gCAAgC;QAClC,OAAO,IAAI,CAAC,gBAAgB;aACzB,MAAM,CAAC,CAAC,EAAE,iBAAiB,EAAE,EAAE,EAAE,CAAC,iBAAiB,CAAC;aACpD,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED,QAAQ,CAAC,IAAyB,EAAE,iBAA0B;QAC5D,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CACzD,gBAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAC5B,CAAC;QACF,IAAI,aAAa,EAAE;YAIjB,aAAa,CAAC,iBAAiB,KAA/B,aAAa,CAAC,iBAAiB,GAAK,iBAAiB,EAAC;SACvD;aAAM;YACL,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,iBAAiB,EAAE,CAAC,CAAC;SACpE;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,cAAc,CAAC,MAAc;QAC3B,MAAM,GAAG,GAAG,IAAI,2BAA2B,EAAE,CAAC;QAC9C,GAAG,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAC9C,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,CAAC,CAAC;YAChC,IAAI,EAAE,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC;YACvB,iBAAiB;SAClB,CAAC,CACH,CAAC;QACF,OAAO,GAAG,CAAC;IACb,CAAC;IAED,MAAM,CAAC,gBAAgB,CACrB,GAA4B,EAC5B,IAAe;QAEf,OAAO,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,EAAE,CACjD,gBAAC,CAAC,OAAO,CAAC,IAAI,EAAE,cAAc,CAAC,CAChC,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,iCAAiC,CACtC,GAA4B,EAC5B,IAAe;QAEf,OAAO,GAAG,CAAC,gCAAgC,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,EAAE,CAClE,gBAAC,CAAC,OAAO,CAAC,IAAI,EAAE,cAAc,CAAC,CAChC,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,KAAK,CACV,GAAG,IAA6C;QAEhD,MAAM,GAAG,GAAG,IAAI,2BAA2B,EAAE,CAAC;QAC9C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;YACtB,IAAI,CAAC,GAAG;gBAAE,SAAS;YACnB,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,eAAe,EAAE;gBACvC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,iCAAiC,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;aACzE;SACF;QACD,OAAO,GAAG,CAAC;IACb,CAAC;CACF;AAUD,SAAS,gCAAgC,CACvC,MAA4B;;IAE5B,IAAI,GAAG,GAAG,IAAI,2BAA2B,EAAE,CAAC;IAC5C,IAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,EAAE;QACnB,MAAM,SAAS,GACb,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,0CAAE,SAAS,CAAC;QAE7B,OAAO,GAAG,CAAC,QAAQ,CACjB,EAAE,EACF,SAAS,KAAK,6CAA6C,CAC5D,CAAC;KACH;IACD,KAAK,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,UAAU,mCAAI,EAAE,CAAC,EAAE;QACvE,MAAM,SAAS,GAAG,gCAAgC,CAAC,SAAqB,CAAC,CAAC;QAC1E,GAAG,GAAG,2BAA2B,CAAC,KAAK,CAAC,GAAG,EAAE,SAAS,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;KAC7E;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAGD,SAAS,+CAA+C,CACtD,eAAqC;;IAErC,MAAM,MAAM,GAAU,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,MAAM,mCAAI,EAAE,CAAC;IACpD,MAAM,GAAG,GAAG,IAAI,2BAA2B,EAAE,CAAC;IAC9C,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;QAC1B,MAAM,OAAO,GAAU,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;YACjD,CAAC,CAAC,KAAK,CAAC,OAAO;YACf,CAAC,CAAC,CAAC,MAAA,KAAK,CAAC,OAAO,mCAAI,EAAE,CAAC,CAAC;QAC1B,MAAM,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CACvD,CAAC,UAAU,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAC1D,CAAC;QACF,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,iBAAiB,CAAC,CAAC;KACxD;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAGD,SAAS,6CAA6C,CACpD,EAAU,EACV,cAAqC;;IAErC,OAAO,2BAA2B,CAAC,KAAK,CACtC,gCAAgC,CAAC,MAAA,cAAc,CAAC,SAAS,0CAAG,EAAE,CAAC,CAAC,EAChE,+CAA+C,CAC7C,MAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,kBAAkB,0CAAG,EAAE,CAAC,CACzC,CACF,CAAC;AACJ,CAAC;AAGD,SAAS,+CAA+C,CACtD,OAA8C;;IAE9C,MAAM,MAAM,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,0CAAE,WAAW,CAAC;IAC/C,MAAM,qBAAqB,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,eAAe,CAAC;IACvD,OAAO,2BAA2B,CAAC,KAAK,CACtC,gCAAgC,CAAC,MAAM,CAAC,EACxC,+CAA+C,CAAC,qBAAqB,CAAC,CACvE,CAAC;AACJ,CAAC;AAID,SAAS,kCAAkC,CAAC,GAAQ;;IAClD,MAAM,eAAe,GAAG,CAAC,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAG,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,mCAAI,EAAE,CAAC,CAAC,GAAG,CAC1E,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAC3B,CAAC;IACF,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;QAC9C,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YACvC,SAAS;SACV;QACD,MAAM,YAAY,GAAG,kCAAkC,CAAC,KAAK,CAAC,CAAC;QAC/D,eAAe,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;KACrE;IACD,OAAO,eAAe,CAAC;AACzB,CAAC;AAED,SAAS,kBAAkB,CAAC,OAAa;IACvC,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,IAAI,KAAM,CAAC;AAClD,CAAC;AAED,MAAa,0BAA0B;IAGrC,YACU,YAAyD,EACzD,WAAwB,EACxB,OAAsC;;QAFtC,iBAAY,GAAZ,YAAY,CAA6C;QACzD,gBAAW,GAAX,WAAW,CAAa;QACxB,YAAO,GAAP,OAAO,CAA+B;QALhD,cAAS,GAAG,IAAI,GAAG,EAA+B,CAAC;QAOjD,IAAI,CAAC,+BAA+B,EAAE,CAAC;QAEvC,MAAM,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;QACnD,IAAI,aAAa,EAAE;YACjB,MAAA,IAAI,CAAC,OAAO,0CAAE,IAAI,CAChB,sBAAsB,EACtB,IAAA,mBAAU,EAAC,UAAa,CAAC,EACzB,wBAAwB,EACxB,+CAA+C,CAChD,CAAC;YAED,aAAqB,CAAC,eAAe,GAAG,IAAI,CAAC,2BAA2B,CACtE,aAAqB,CAAC,eAAe,CACvC,CAAC;SACH;IACH,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,EAAU,EACV,gBAA0B;QAE1B,MAAM,0BAA0B,GAC9B,kCAAkC,CAAC,gBAAgB,CAAC,CAAC;QACvD,IAAI,0BAA0B,CAAC,MAAM,KAAK,CAAC,EAAE;YAI3C,OAAO,IAAI,CAAC;SACb;QACD,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,EAAE,CAAC,CAAC;QAMpE,KAAK,MAAM,eAAe,IAAI,0BAA0B,EAAE;YACxD,IACE,CAAC,2BAA2B,CAAC,gBAAgB,CAC3C,eAAe,EACf,eAAe,CAChB,EACD;gBACA,OAAO,KAAK,CAAC;aACd;SACF;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,wBAAwB,CAAC,EAAU;QAIvC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,yBAAyB,CAAC,EAAE,CAAC,CAAC;QACtD,MAAM,eAAe,GAAG,2BAA2B,CAAC,KAAK,CACvD,IAAI,CAAC,6BAA6B,EAClC,IAAI,CAAC,6BAA6B,CACnC,CAAC;QACF,MAAM,SAAS,GAAG,CAAC,CAAC,CAClB,IAAI,CAAC,eAAe,IAAI,eAAe,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CACnE,CAAC;QACF,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC;IACxC,CAAC;IAED,+BAA+B;;QAE7B,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;QACpD,KAAK,MAAM,EAAE,IAAI;YACf,GAAG,MAAM,CAAC,IAAI,CAAC,MAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,SAAS,mCAAI,EAAE,CAAC;YAC/C,GAAG,MAAM,CAAC,IAAI,CAAC,MAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,kBAAkB,mCAAI,EAAE,CAAC;SACzD,EAAE;YACD,MAAA,IAAI,CAAC,OAAO,0CAAE,IAAI,CAChB,sBAAsB,EACtB,IAAA,mBAAU,EAAC,UAAa,CAAC,EACzB,wBAAwB,EACxB,2CAA2C,EAC3C,EAAE,EAAE,EAAE,CACP,CAAC;YACF,MAAM,IAAI,GAAG,IAAI,CAAC,uBAAuB,CAAC,EAAE,CAAC,CAAC;YAC9C,IAAI,CAAC,6BAA6B;gBAChC,6CAA6C,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC;SACrE;IACH,CAAC;IAED,KAAK,CAAC,yBAAyB,CAAC,EAAU;;QACxC,MAAM,QAAQ,GAAG,IAAA,oBAAc,EAAC,EAAE,CAAC,CAAC;QACpC,MAAM,IAAI,GAAG,IAAI,CAAC,uBAAuB,CAAC,EAAE,CAAC,CAAC;QAC9C,IACE,CAAC,IAAI,CAAC,6BAA6B;YACnC,CAAC,IAAI,CAAC,WAAW;YACjB,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,EACpC;YACA,MAAA,IAAI,CAAC,OAAO,0CAAE,IAAI,CAChB,sBAAsB,EACtB,IAAA,mBAAU,EAAC,UAAa,CAAC,EACzB,wBAAwB,EACxB,kCAAkC,EAClC,EAAE,EAAE,EAAE,CACP,CAAC;YAMF,MAAM,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,QAAQ,CAAC,QAAQ,EAAE;gBACzD,IAAI,EAAE,QAAQ,CAAC,UAAU;aAC1B,CAAC,CAAC;SACJ;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,uBAAuB,CAAC,EAAU;QAEhC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACxC,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAC9B,MAAM,IAAI,GAAwB,EAAE,CAAC;QACrC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,oBAAoB,CAClB,EAAU,EACV,MAAwD;;QAExD,MAAA,IAAI,CAAC,OAAO,0CAAE,IAAI,CAChB,sBAAsB,EACtB,IAAA,mBAAU,EAAC,UAAa,CAAC,EACzB,wBAAwB,EACxB,mCAAmC,EACnC,EAAE,EAAE,EAAE,CACP,CAAC;QAEF,MAAM,IAAI,GAAG,IAAI,CAAC,uBAAuB,CAAC,EAAE,CAAC,CAAC;QAG9C,IAAI,CAAC,6BAA6B;YAChC,+CAA+C,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAClE,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC,CAAA,MAAA,MAAA,MAAM,CAAC,OAAO,0CAAE,SAAS,0CAAE,WAAW,CAAA,CAAC;QAChE,IAAI,CAAC,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC;IAChC,CAAC;IAED,2BAA2B,CAAC,aAA0B;QAYpD,OAAO;YACL,EAAE,EAAE,CAAC,MAAc,EAAE,EAAE;gBACrB,OAAO;oBACL,eAAe,EAAE,CAAC,MAAgB,EAAE,IAA4B,EAAE,EAAE;wBAClE,OAAO;4BACL,OAAO,EAAE,KAAK,IAAI,EAAE;;gCAClB,MAAM,eAAe,GAAG,MAAM,aAAa;qCACxC,EAAE,CAAC,MAAM,CAAC;qCACV,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC;qCAC7B,OAAO,EAAE,CAAC;gCACb,MAAM,GAAG,GAAG,IAAI,CAAC,2CAA2C,CAC1D,MAAM,EACN,MAAM,EACN,CAAC,eAAe,aAAf,eAAe,cAAf,eAAe,GAAI,EAAE,CAAqB,CAC5C,CAAC;gCACF,IAAI,GAAG,EAAE;oCACP,MAAA,IAAI,CAAC,OAAO,0CAAE,KAAK,CACjB,sBAAsB,EACtB,IAAA,mBAAU,EAAC,UAAa,CAAC,EACzB,wBAAwB,EACxB,oDAAoD,EACpD,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,CACvB,CAAC;oCACF,MAAM,GAAG,CAAC;iCACX;gCACD,OAAO,eAAe,CAAC;4BACzB,CAAC;yBACF,CAAC;oBACJ,CAAC;iBACF,CAAC;YACJ,CAAC;SACa,CAAC;IACnB,CAAC;IAED,2CAA2C,CACzC,MAAc,EACd,MAAgB,EAChB,eAAiC;;QAEjC,IAAI,OAAO,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,CAAA,KAAK,QAAQ,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;YAIlE,OAAO,IAAI,KAAK,CACd,oDAAoD,MAAM,iBACxD,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IACV,GAAG,CACJ,CAAC;SACH;QAED,MAAM,EAAE,GAAG,GAAG,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QACtC,MAAM,YAAY,GAAG,IAAI,CAAC,uBAAuB,CAAC,EAAE,CAAC,CAAC;QAEtD,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE;YAChC,IAAI,MAAA,MAAA,YAAY,CAAC,6BAA6B,0CAAE,eAAe,0CAAE,MAAM,EAAE;gBACvE,OAAO,IAAI,KAAK,CACd,gEAAgE,EAAE,GAAG,CACtE,CAAC;aACH;YACD,OAAO;SACR;QAED,MAAM,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC;QAC/B,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE;YAG7B,OAAO,IAAI,KAAK,CACd,2DAA2D,IAAI,CAAC,IAAI,cAAc,MAAM,CAAC,IAAI,EAAE,CAChG,CAAC;SACH;QACD,MAAM,OAAO,GAAG,+CAA+C,CAC7D,IAAI,CAAC,OAAO,CACb,CAAC;QAEF,KAAK,MAAM,sBAAsB,IAAI,MAAA,MAAA,YAAY;aAC9C,6BAA6B,0CAAE,eAAe,mCAAI,EAAE,EAAE;YACvD,IACE,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CACtC,gBAAC,CAAC,OAAO,CAAC,KAAK,EAAE,sBAAsB,CAAC,CACzC,EACD;gBACA,OAAO,IAAI,KAAK,CACd,sCAAsC,sBAAsB,CAAC,IAAI,CAC/D,GAAG,CACJ,oBAAoB,EAAE,6BAA6B,CACrD,CAAC;aACH;SACF;IACH,CAAC;CACF;AAzPD,gEAyPC"}
|