@mongodb-js/shell-bson-parser 1.5.4 → 1.5.6

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/dist/check.js CHANGED
@@ -3,70 +3,71 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.checkTree = void 0;
4
4
  const scope_1 = require("./scope");
5
5
  class Checker {
6
+ options;
6
7
  constructor(options) {
7
8
  this.options = options;
8
- this.checkSafeCall = (node) => {
9
- const allowMethods = this.options.allowMethods;
10
- if (node.callee.type === 'Identifier') {
11
- return (scope_1.GLOBAL_FUNCTIONS.indexOf(node.callee.name) >= 0 &&
12
- node.arguments.every(this.checkSafeExpression));
13
- }
14
- if (allowMethods) {
15
- if (node.callee.type === 'MemberExpression') {
16
- const object = node.callee.object;
17
- const property = node.callee.property;
18
- if (object.type === 'Identifier' && property.type === 'Identifier') {
19
- return ((0, scope_1.isMethodWhitelisted)(object.name, property.name) &&
20
- node.arguments.every(this.checkSafeExpression));
21
- }
22
- else if ((object.type === 'NewExpression' ||
23
- object.type === 'CallExpression') &&
24
- object.callee.type === 'Identifier') {
25
- const callee = object.callee;
26
- return ((0, scope_1.isMethodWhitelisted)(callee.name, property.name) &&
27
- node.arguments.every(this.checkSafeExpression));
28
- }
29
- else {
30
- return (this.checkSafeExpression(object) &&
31
- node.arguments.every(this.checkSafeExpression));
32
- }
9
+ }
10
+ checkSafeCall = (node) => {
11
+ const allowMethods = this.options.allowMethods;
12
+ if (node.callee.type === 'Identifier') {
13
+ return (scope_1.GLOBAL_FUNCTIONS.indexOf(node.callee.name) >= 0 &&
14
+ node.arguments.every(this.checkSafeExpression));
15
+ }
16
+ if (allowMethods) {
17
+ if (node.callee.type === 'MemberExpression') {
18
+ const object = node.callee.object;
19
+ const property = node.callee.property;
20
+ if (object.type === 'Identifier' && property.type === 'Identifier') {
21
+ return ((0, scope_1.isMethodWhitelisted)(object.name, property.name) &&
22
+ node.arguments.every(this.checkSafeExpression));
23
+ }
24
+ else if ((object.type === 'NewExpression' ||
25
+ object.type === 'CallExpression') &&
26
+ object.callee.type === 'Identifier') {
27
+ const callee = object.callee;
28
+ return ((0, scope_1.isMethodWhitelisted)(callee.name, property.name) &&
29
+ node.arguments.every(this.checkSafeExpression));
30
+ }
31
+ else {
32
+ return (this.checkSafeExpression(object) &&
33
+ node.arguments.every(this.checkSafeExpression));
33
34
  }
34
35
  }
35
- return false;
36
- };
37
- this.checkSafeExpression = (node) => {
38
- switch (node?.type) {
39
- case 'Identifier':
40
- return Object.prototype.hasOwnProperty.call(scope_1.GLOBALS, node.name);
41
- case 'Literal':
42
- return true;
43
- case 'ArrayExpression':
44
- return node.elements.every(this.checkSafeExpression);
45
- case 'UnaryExpression':
46
- return this.checkSafeExpression(node.argument);
47
- case 'BinaryExpression':
48
- return (this.checkSafeExpression(node.left) &&
49
- this.checkSafeExpression(node.right));
50
- case 'CallExpression':
51
- case 'NewExpression':
52
- return this.checkSafeCall(node);
53
- case 'ObjectExpression':
54
- return node.properties.every((property) => {
55
- if (('computed' in property && property.computed) ||
56
- ('method' in property && property.method))
57
- return false;
58
- if (!('key' in property) ||
59
- !['Literal', 'Identifier'].includes(property.key.type))
60
- return false;
61
- return ('value' in property &&
62
- (['FunctionExpression', 'ArrowFunctionExpression'].includes(property.value.type) ||
63
- this.checkSafeExpression(property.value)));
64
- });
65
- default:
66
- return false;
67
- }
68
- };
69
- }
36
+ }
37
+ return false;
38
+ };
39
+ checkSafeExpression = (node) => {
40
+ switch (node?.type) {
41
+ case 'Identifier':
42
+ return Object.prototype.hasOwnProperty.call(scope_1.GLOBALS, node.name);
43
+ case 'Literal':
44
+ return true;
45
+ case 'ArrayExpression':
46
+ return node.elements.every(this.checkSafeExpression);
47
+ case 'UnaryExpression':
48
+ return this.checkSafeExpression(node.argument);
49
+ case 'BinaryExpression':
50
+ return (this.checkSafeExpression(node.left) &&
51
+ this.checkSafeExpression(node.right));
52
+ case 'CallExpression':
53
+ case 'NewExpression':
54
+ return this.checkSafeCall(node);
55
+ case 'ObjectExpression':
56
+ return node.properties.every((property) => {
57
+ if (('computed' in property && property.computed) ||
58
+ ('method' in property && property.method))
59
+ return false;
60
+ if (!('key' in property) ||
61
+ !['Literal', 'Identifier'].includes(property.key.type))
62
+ return false;
63
+ return ('value' in property &&
64
+ (['FunctionExpression', 'ArrowFunctionExpression'].includes(property.value.type) ||
65
+ this.checkSafeExpression(property.value)));
66
+ });
67
+ default:
68
+ return false;
69
+ }
70
+ };
70
71
  }
71
72
  const checkTree = (node, options) => {
72
73
  if (node.type === 'Program') {
package/dist/check.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"check.js","sourceRoot":"","sources":["../src/check.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"check.js","sourceRoot":"","sources":["../src/check.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -13,7 +13,7 @@
13
13
  "email": "compass@mongodb.com"
14
14
  },
15
15
  "homepage": "https://github.com/mongodb-js/devtools-shared",
16
- "version": "1.5.4",
16
+ "version": "1.5.6",
17
17
  "repository": {
18
18
  "type": "git",
19
19
  "url": "https://github.com/mongodb-js/devtools-shared.git"
@@ -58,10 +58,10 @@
58
58
  "bson": "^4.6.3 || ^5 || ^6.10.3 || ^7.0.0"
59
59
  },
60
60
  "devDependencies": {
61
- "@mongodb-js/eslint-config-devtools": "^0.11.2",
61
+ "@mongodb-js/eslint-config-devtools": "^0.11.3",
62
62
  "@mongodb-js/mocha-config-devtools": "^1.1.0",
63
63
  "@mongodb-js/prettier-config-devtools": "^1.0.2",
64
- "@mongodb-js/tsconfig-devtools": "^1.1.0",
64
+ "@mongodb-js/tsconfig-devtools": "^1.1.1",
65
65
  "@types/chai": "^4.2.21",
66
66
  "@types/estree": "^0.0.41",
67
67
  "@types/mocha": "^9.1.1",
@@ -76,7 +76,7 @@
76
76
  "nyc": "^15.1.0",
77
77
  "prettier": "^3.5.3",
78
78
  "sinon": "^9.2.3",
79
- "typescript": "^5.8.2"
79
+ "typescript": "^5.9.3"
80
80
  },
81
- "gitHead": "da4372646f24ef7c9ef6bb8224d0cf1f53be7540"
81
+ "gitHead": "351125bdca5cc071e432b25605b411b00b2eb336"
82
82
  }