@mongosh/shell-evaluator 5.1.0 → 5.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.
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function contextlessEval(code: string): void;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contextless-eval.js","sourceRoot":"","sources":["../src/contextless-eval.ts"],"names":[],"mappings":";;AASA,0CAEC;AAFD,SAAgB,eAAe,CAAC,IAAY;IAC1C,IAAI,CAAC,IAAI,CAAC,CAAC;AACb,CAAC"}
|
package/lib/shell-evaluator.js
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
|
-
var _a, _b;
|
|
6
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
6
|
exports.ShellEvaluator = void 0;
|
|
7
|
+
const contextless_eval_1 = require("./contextless-eval");
|
|
8
8
|
const shell_api_1 = require("@mongosh/shell-api");
|
|
9
9
|
const async_rewriter2_1 = __importDefault(require("@mongosh/async-rewriter2"));
|
|
10
10
|
const mongodb_redact_1 = require("mongodb-redact");
|
|
@@ -14,12 +14,12 @@ let v8;
|
|
|
14
14
|
try {
|
|
15
15
|
v8 = require('v8');
|
|
16
16
|
}
|
|
17
|
-
catch
|
|
17
|
+
catch {
|
|
18
18
|
}
|
|
19
|
-
if (
|
|
19
|
+
if (v8?.startupSnapshot?.isBuildingSnapshot?.()) {
|
|
20
20
|
v8.startupSnapshot.addSerializeCallback(() => {
|
|
21
|
-
|
|
22
|
-
|
|
21
|
+
(0, contextless_eval_1.contextlessEval)(new async_rewriter2_1.default().runtimeSupportCode());
|
|
22
|
+
(0, contextless_eval_1.contextlessEval)(new async_rewriter2_1.default().process('1+1'));
|
|
23
23
|
hasAlreadyRunGlobalRuntimeSupportEval = true;
|
|
24
24
|
});
|
|
25
25
|
}
|
|
@@ -34,27 +34,26 @@ class ShellEvaluator {
|
|
|
34
34
|
this.markTime = markTime;
|
|
35
35
|
}
|
|
36
36
|
async innerEval(originalEval, input, context, filename) {
|
|
37
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
|
|
38
37
|
const { shellApi } = this.instanceState;
|
|
39
38
|
const trimmedInput = input.trim();
|
|
40
39
|
const argv = trimmedInput.replace(/;$/, '').split(/\s+/g);
|
|
41
40
|
const cmd = argv.shift();
|
|
42
|
-
if (
|
|
43
|
-
|
|
44
|
-
!(
|
|
41
|
+
if (shellApi[cmd]?.isDirectShellCommand &&
|
|
42
|
+
shellApi[cmd]?.acceptsRawInput &&
|
|
43
|
+
!(argv[0] ?? '').startsWith('(')) {
|
|
45
44
|
const rawArg = trimmedInput.replace(/^\S+\s*/, '');
|
|
46
45
|
return shellApi[cmd](rawArg);
|
|
47
46
|
}
|
|
48
|
-
if (
|
|
49
|
-
!(
|
|
47
|
+
if (shellApi[cmd]?.isDirectShellCommand &&
|
|
48
|
+
!(argv[0] ?? '').startsWith('(')) {
|
|
50
49
|
return shellApi[cmd](...argv);
|
|
51
50
|
}
|
|
52
51
|
if (this.exposeAsyncRewriter) {
|
|
53
52
|
context.__asyncRewrite = (rewriteInput) => this.asyncWriter.process(rewriteInput);
|
|
54
53
|
}
|
|
55
|
-
|
|
54
|
+
this.markTime?.(types_1.TimingCategories.AsyncRewrite, 'start async rewrite');
|
|
56
55
|
let rewrittenInput = this.asyncWriter.process(input);
|
|
57
|
-
|
|
56
|
+
this.markTime?.(types_1.TimingCategories.AsyncRewrite, 'done async rewrite');
|
|
58
57
|
if (!(0, mongodb_redact_1.shouldRedactCommand)(input) && !(0, mongodb_redact_1.shouldRedactCommand)(rewrittenInput)) {
|
|
59
58
|
this.instanceState.messageBus.emit('mongosh:evaluate-input', {
|
|
60
59
|
input: (0, mongodb_redact_1.redact)(trimmedInput),
|
|
@@ -62,23 +61,24 @@ class ShellEvaluator {
|
|
|
62
61
|
}
|
|
63
62
|
if (!this.hasAppliedAsyncWriterRuntimeSupport) {
|
|
64
63
|
this.hasAppliedAsyncWriterRuntimeSupport = true;
|
|
65
|
-
|
|
64
|
+
this.markTime?.(types_1.TimingCategories.AsyncRewrite, 'start runtimeSupportCode processing');
|
|
66
65
|
const supportCode = this.asyncWriter.runtimeSupportCode();
|
|
67
66
|
if (!hasAlreadyRunGlobalRuntimeSupportEval) {
|
|
68
|
-
|
|
67
|
+
(0, contextless_eval_1.contextlessEval)(supportCode);
|
|
68
|
+
hasAlreadyRunGlobalRuntimeSupportEval = true;
|
|
69
69
|
}
|
|
70
|
-
|
|
70
|
+
this.markTime?.(types_1.TimingCategories.AsyncRewrite, 'done global runtimeSupportCode processing');
|
|
71
71
|
rewrittenInput = supportCode + ';\n' + rewrittenInput;
|
|
72
72
|
}
|
|
73
73
|
try {
|
|
74
|
-
|
|
74
|
+
this.markTime?.(types_1.TimingCategories.Eval, 'started evaluating processed code');
|
|
75
75
|
return await originalEval(rewrittenInput, context, filename);
|
|
76
76
|
}
|
|
77
77
|
catch (err) {
|
|
78
78
|
throw this.instanceState.transformError(err);
|
|
79
79
|
}
|
|
80
80
|
finally {
|
|
81
|
-
|
|
81
|
+
this.markTime?.(types_1.TimingCategories.Eval, 'finished evaluating processed code');
|
|
82
82
|
}
|
|
83
83
|
}
|
|
84
84
|
async customEval(originalEval, input, context, filename) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shell-evaluator.js","sourceRoot":"","sources":["../src/shell-evaluator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"shell-evaluator.js","sourceRoot":"","sources":["../src/shell-evaluator.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mongosh/shell-evaluator",
|
|
3
|
-
"version": "5.1.
|
|
3
|
+
"version": "5.1.4",
|
|
4
4
|
"description": "MongoDB Top Level API Package",
|
|
5
5
|
"main": "./lib/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -37,15 +37,15 @@
|
|
|
37
37
|
"@mongodb-js/eslint-config-mongosh": "^1.0.0",
|
|
38
38
|
"@mongodb-js/prettier-config-devtools": "^1.0.1",
|
|
39
39
|
"@mongodb-js/tsconfig-mongosh": "^1.0.0",
|
|
40
|
-
"@mongosh/types": "^5.0.
|
|
40
|
+
"@mongosh/types": "^5.0.3",
|
|
41
41
|
"@types/sinon-chai": "^4.0.0",
|
|
42
42
|
"eslint": "^7.25.0",
|
|
43
43
|
"prettier": "^2.8.8"
|
|
44
44
|
},
|
|
45
45
|
"dependencies": {
|
|
46
46
|
"@mongosh/async-rewriter2": "2.4.15",
|
|
47
|
-
"@mongosh/shell-api": "^5.1.
|
|
47
|
+
"@mongosh/shell-api": "^5.1.4",
|
|
48
48
|
"mongodb-redact": "^1.3.0"
|
|
49
49
|
},
|
|
50
|
-
"gitHead": "
|
|
50
|
+
"gitHead": "8046da7b463930861417f6b414580823af71889f"
|
|
51
51
|
}
|