Socket
Socket
Sign inDemoInstall

@codesee/babel-plugin-instrument

Package Overview
Dependencies
Maintainers
4
Versions
712
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@codesee/babel-plugin-instrument - npm Package Compare versions

Comparing version 0.9.1 to 0.10.0

2

lib/visitors/data-tracking.js

@@ -1,1 +0,1 @@

"use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.trackerVisitor=trackerVisitor;exports.enumVisitor=enumVisitor;var _objectPath=require("object-path"),_arrayPrototype=_interopRequireDefault(require("array.prototype.flatmap")),_insert=require("./data-tracking/insert"),_utils=require("../utils"),_constants=require("../constants"),_memberExpressions=_interopRequireDefault(require("./member-expressions"));function _interopRequireDefault(a){return a&&a.__esModule?a:{default:a}}function ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);if(b)d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable});c.push.apply(c,d)}return c}function _objectSpread(a){for(var b=1,c;b<arguments.length;b++){c=null!=arguments[b]?arguments[b]:{};if(b%2){ownKeys(Object(c),!0).forEach(function(b){_defineProperty(a,b,c[b])})}else if(Object.getOwnPropertyDescriptors){Object.defineProperties(a,Object.getOwnPropertyDescriptors(c))}else{ownKeys(Object(c)).forEach(function(b){Object.defineProperty(a,b,Object.getOwnPropertyDescriptor(c,b))})}}return a}function _defineProperty(a,b,c){if(b in a){Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0})}else{a[b]=c}return a}function _createForOfIteratorHelper(a,b){var c;if("undefined"==typeof Symbol||null==a[Symbol.iterator]){if(Array.isArray(a)||(c=_unsupportedIterableToArray(a))||b&&a&&"number"==typeof a.length){if(c)a=c;var d=0,e=function(){};return{s:e,n:function n(){if(d>=a.length)return{done:!0};return{done:!1,value:a[d++]}},e:function e(a){throw a},f:e}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var f=!0,g=!1,h;return{s:function s(){c=a[Symbol.iterator]()},n:function n(){var a=c.next();f=a.done;return a},e:function e(a){g=!0;h=a},f:function f(){try{if(!f&&null!=c["return"])c["return"]()}finally{if(g)throw h}}}}function _unsupportedIterableToArray(a,b){if(!a)return;if("string"==typeof a)return _arrayLikeToArray(a,b);var c=Object.prototype.toString.call(a).slice(8,-1);if("Object"===c&&a.constructor)c=a.constructor.name;if("Map"===c||"Set"===c)return Array.from(a);if("Arguments"===c||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(c))return _arrayLikeToArray(a,b)}function _arrayLikeToArray(a,b){if(null==b||b>a.length)b=a.length;for(var c=0,d=Array(b);c<b;c++){d[c]=a[c]}return d}_arrayPrototype["default"].shim();function trackerVisitor(a,b,c){var d=function(a){return-1===["ClassDeclaration","BlockStatement","IfStatement","ImportDeclaration"].indexOf(a)},e=(0,_memberExpressions["default"])(a),f=_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({},{Statement:function Statement(e){if(a.isVariableDeclaration(e)||a.isFunctionDeclaration(e)||a.isForInStatement(e)||a.isForOfStatement(e)||a.isForStatement(e)||a.isWhileStatement(e)||a.isDoWhileStatement(e)){return}var g=c.shouldTrack("filename")?{filename:b}:{},h=(0,_utils.getDefaultState)(g);e.traverse(f,h);e.skip();if(d(e.node.type)){(0,_insert.insertTracking)(a,e,h,b,c)}}}),{VariableDeclaration:function VariableDeclaration(d){if(d.node.declarations[0].id.codeseeId)return d.skip();if(d.node.declarations[0].id.name&&-1!==d.node.declarations[0].id.name.indexOf(_constants.codeSeeSource)){d.skip();return}var e=(0,_utils.getDefaultState)(),g=(0,_insert.trackersFromVariableDeclaration)(d);g.forEach(function(a){e.declares.push(a)});d.get("declarations").forEach(function(a){a.skipKey("id");(0,_utils.traverseWithSkipKeys)(a,f,e)});(0,_insert.insertTracking)(a,d,e,b,c);d.skip()}}),{FunctionDeclaration:{enter:function enter(a){a.skipKey("params");var b=(0,_utils.getDefaultState)();(0,_utils.traverseWithSkipKeys)(a,f,b);a.skip()}}}),{CallExpression:{enter:function enter(b){var c=b.node.callee;if(a.isIdentifier(c)){b.skipKey("callee")}}}}),{AssignmentExpression:{enter:function enter(b,c){if((null===c||void 0===c?void 0:c.writes)===void 0){return}var d=b.node.left;if(a.isPattern(d)||a.isIdentifier(d)){var f=(0,_insert.trackersFromPatternOrIdentifier)(a,b,d,e),g=_createForOfIteratorHelper(f),h;try{for(g.s();!(h=g.n()).done;){var i=h.value;c.writes.push(i)}}catch(a){g.e(a)}finally{g.f()}}else if(a.isMemberExpression(d)){b.skipKey("right");var j=(0,_utils.getDefaultState)();(0,_utils.traverseWithSkipKeys)(b,e,j);b.skipKeys=[];c.writes=[].concat(c.writes,j.accesses)}else{throw["CodeSee Error: AssignmentExpression: LHS is not Identifier, Pattern, or MemberExpression: "+b.node.type]}b.skipKey("left")}}}),{"ForInStatement|ForOfStatement":function ForInStatementForOfStatement(d){d.skipKey("left");var e=d.get("left"),f;if(e.isVariableDeclaration()){f=(0,_insert.trackersFromVariableDeclaration)(e)}else{f=(0,_insert.trackersFromLHSPattern)(e.node)}(0,_insert.insertLoopVariableTracking)(a,d,f,b,c)},ForStatement:function ForStatement(a){a.skipKey("init")}}),{CatchClause:function CatchClause(d){var f=[];if(d.node.param){f=(0,_insert.trackersFromPatternOrIdentifier)(a,d,d.node.param,e)}(0,_insert.insertCatchParamTracking)(a,d,f,b,c)}});return f}function enumVisitor(a,b,c){return{TSEnumDeclaration:function TSEnumDeclaration(d){var e=d.node.id,f=(0,_insert.trackersFromLHSPattern)(e);e.tracked=!0;e.loc=void 0;if(1!=f.length){return}var g=(0,_utils.getDefaultState)();f.forEach(function(a){g.declares.push(a)});(0,_insert.insertTracking)(a,d,g,b,c)}}}
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.trackerVisitor=trackerVisitor;exports.enumVisitor=enumVisitor;var _arrayPrototype=_interopRequireDefault(require("array.prototype.flatmap")),_insert=require("./data-tracking/insert"),_utils=require("../utils"),_constants=require("../constants"),_memberExpressions=_interopRequireDefault(require("./member-expressions"));function _interopRequireDefault(a){return a&&a.__esModule?a:{default:a}}function ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);if(b)d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable});c.push.apply(c,d)}return c}function _objectSpread(a){for(var b=1,c;b<arguments.length;b++){c=null!=arguments[b]?arguments[b]:{};if(b%2){ownKeys(Object(c),!0).forEach(function(b){_defineProperty(a,b,c[b])})}else if(Object.getOwnPropertyDescriptors){Object.defineProperties(a,Object.getOwnPropertyDescriptors(c))}else{ownKeys(Object(c)).forEach(function(b){Object.defineProperty(a,b,Object.getOwnPropertyDescriptor(c,b))})}}return a}function _defineProperty(a,b,c){if(b in a){Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0})}else{a[b]=c}return a}function _createForOfIteratorHelper(a,b){var c;if("undefined"==typeof Symbol||null==a[Symbol.iterator]){if(Array.isArray(a)||(c=_unsupportedIterableToArray(a))||b&&a&&"number"==typeof a.length){if(c)a=c;var d=0,e=function(){};return{s:e,n:function n(){if(d>=a.length)return{done:!0};return{done:!1,value:a[d++]}},e:function e(a){throw a},f:e}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var f=!0,g=!1,h;return{s:function s(){c=a[Symbol.iterator]()},n:function n(){var a=c.next();f=a.done;return a},e:function e(a){g=!0;h=a},f:function f(){try{if(!f&&null!=c["return"])c["return"]()}finally{if(g)throw h}}}}function _unsupportedIterableToArray(a,b){if(!a)return;if("string"==typeof a)return _arrayLikeToArray(a,b);var c=Object.prototype.toString.call(a).slice(8,-1);if("Object"===c&&a.constructor)c=a.constructor.name;if("Map"===c||"Set"===c)return Array.from(a);if("Arguments"===c||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(c))return _arrayLikeToArray(a,b)}function _arrayLikeToArray(a,b){if(null==b||b>a.length)b=a.length;for(var c=0,d=Array(b);c<b;c++){d[c]=a[c]}return d}_arrayPrototype["default"].shim();function trackerVisitor(a,b,c){var d=function(a){return-1===["ClassDeclaration","BlockStatement","IfStatement","ImportDeclaration"].indexOf(a)},e=(0,_memberExpressions["default"])(a),f=_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({},{Statement:function Statement(e){if(a.isVariableDeclaration(e)||a.isFunctionDeclaration(e)||a.isForInStatement(e)||a.isForOfStatement(e)||a.isForStatement(e)||a.isWhileStatement(e)||a.isDoWhileStatement(e)){return}var g=c.shouldTrack("filename")?{filename:b}:{},h=(0,_utils.getDefaultState)(g);e.traverse(f,h);e.skip();if(d(e.node.type)){(0,_insert.insertTracking)(a,e,h,b,c)}}}),{VariableDeclaration:function VariableDeclaration(d){if(d.node.declarations[0].id.codeseeId)return d.skip();if(d.node.declarations[0].id.name&&-1!==d.node.declarations[0].id.name.indexOf(_constants.codeSeeSource)){d.skip();return}var e=(0,_utils.getDefaultState)(),g=(0,_insert.trackersFromVariableDeclaration)(d);g.forEach(function(a){e.declares.push(a)});d.get("declarations").forEach(function(a){a.skipKey("id");(0,_utils.traverseWithSkipKeys)(a,f,e)});(0,_insert.insertTracking)(a,d,e,b,c);d.skip()}}),{FunctionDeclaration:{enter:function enter(a){a.skipKey("params");var b=(0,_utils.getDefaultState)();(0,_utils.traverseWithSkipKeys)(a,f,b);a.skip()}}}),{CallExpression:{enter:function enter(b){var c=b.node.callee;if(a.isIdentifier(c)){b.skipKey("callee")}}}}),{AssignmentExpression:{enter:function enter(b,c){if((null===c||void 0===c?void 0:c.writes)===void 0){return}var d=b.node.left;if(a.isPattern(d)||a.isIdentifier(d)){var f=(0,_insert.trackersFromPatternOrIdentifier)(a,b,d,e),g=_createForOfIteratorHelper(f),h;try{for(g.s();!(h=g.n()).done;){var i=h.value;c.writes.push(i)}}catch(a){g.e(a)}finally{g.f()}}else if(a.isMemberExpression(d)){b.skipKey("right");var j=(0,_utils.getDefaultState)();(0,_utils.traverseWithSkipKeys)(b,e,j);b.skipKeys=[];c.writes=[].concat(c.writes,j.accesses)}else{throw["CodeSee Error: AssignmentExpression: LHS is not Identifier, Pattern, or MemberExpression: "+b.node.type]}b.skipKey("left")}}}),{"ForInStatement|ForOfStatement":function ForInStatementForOfStatement(d){d.skipKey("left");var e=d.get("left"),f;if(e.isVariableDeclaration()){f=(0,_insert.trackersFromVariableDeclaration)(e)}else{f=(0,_insert.trackersFromLHSPattern)(e.node)}(0,_insert.insertLoopVariableTracking)(a,d,f,b,c)},ForStatement:function ForStatement(a){a.skipKey("init")}}),{CatchClause:function CatchClause(d){var f=[];if(d.node.param){f=(0,_insert.trackersFromPatternOrIdentifier)(a,d,d.node.param,e)}(0,_insert.insertCatchParamTracking)(a,d,f,b,c)}});return f}function enumVisitor(a,b,c){return{TSEnumDeclaration:function TSEnumDeclaration(d){var e=d.node.id,f=(0,_insert.trackersFromLHSPattern)(e);e.tracked=!0;e.loc=void 0;if(1!=f.length){return}var g=(0,_utils.getDefaultState)();f.forEach(function(a){g.declares.push(a)});(0,_insert.insertTracking)(a,d,g,b,c)}}}

@@ -1,1 +0,1 @@

"use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.insertCatchParamTracking=insertCatchParamTracking;exports.insertFunctionParamTracking=insertFunctionParamTracking;exports.insertLoopVariableTracking=insertLoopVariableTracking;exports.insertTracking=insertTracking;exports.trackersFromPatternOrIdentifier=trackersFromPatternOrIdentifier;exports.trackersFromVariableDeclaration=trackersFromVariableDeclaration;exports.trackersFromLHSPattern=trackersFromLHSPattern;var _constants=require("../../constants"),_utils=require("../../utils"),_uid=require("../../uid"),_patterns=require("../../patterns"),_traverse=_interopRequireDefault(require("@babel/traverse"));function _interopRequireDefault(a){return a&&a.__esModule?a:{default:a}}function _typeof(a){"@babel/helpers - typeof";if("function"==typeof Symbol&&"symbol"==typeof Symbol.iterator){_typeof=function(a){return typeof a}}else{_typeof=function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a}}return _typeof(a)}function makeTrackerArgument(a,b,c,d){var e=[];["declares","writes","accesses"].filter(function(a){return d.shouldTrack(a)}).map(function(f){var g=b[f];if(g.length){var h=objectValuesFromTrackers(a,g,c,d,function(a){return"declares"===f&&"value"===a});e.push(a.objectProperty(a.identifier(f),a.arrayExpression(h)))}});return a.objectExpression(e)}function objectValuesFromTrackers(a,b,c,d,e){var f=b.map(function(b){if(d.shouldTrack("filename"))b.filename=c;return a.objectExpression(Object.keys(b).filter(function(a){if(!d.shouldTrack(a)||e&&e(a)){return!1}return!0}).sort().map(function(c){var e=b[c],f;if("value"===c){if("this"===e){f=a.thisExpression()}else{f=a.identifier(e)}}else if("name"===c){if("object"!==_typeof(e)){f=a.stringLiteral(e)}else{f=a.arrayExpression(e)}}else if("object"===_typeof(e)){f=a.objectExpression(Object.keys(e).filter(function(a){return d.shouldTrack(a)}).map(function(b){var c="number"==typeof e[b]?a.numericLiteral(e[b]):a.stringLiteral(e[b]);return a.objectProperty(a.stringLiteral(b),c)}))}else{f="number"==typeof e?a.numericLiteral(e):a.stringLiteral(e)}var g=a.objectProperty(a.identifier(c),f);return g}))});return f}function insertTracking(a,b,c,d,e){var f=makeTrackerArgument(a,c,d,e);insertBeforeTracker(a,b,f,e);c.writes=[].concat(c.writes,c.declares);c.declares=[];var g=makeTrackerArgument(a,c,d,e);insertAfterTracker(a,b,g,e)}function insertBeforeTracker(a,b,c,d){if(c.properties.length&&d.shouldTrack(_constants.codeSeeBefore)){var e=(0,_utils.findStackFrameIdIdentifier)(b);if(e===void 0){return}var f=(0,_utils.codeSeeCall)(a,_constants.codeSeeBefore,[c,e]);b.insertBefore(a.expressionStatement(f))}}function insertAfterTracker(a,b,c,d){if(c.properties.length&&d.shouldTrack(_constants.codeSeeAfter)){var e=(0,_utils.findStackFrameIdIdentifier)(b);if(e===void 0){return}var f=(0,_utils.codeSeeCall)(a,_constants.codeSeeAfter,[c,e]);b.insertAfter(a.expressionStatement(f))}}function insertFunctionParamTracking(a,b,c,d,e,f){var g=objectValuesFromTrackers(a,c,d,e);if(!f){var k=a.objectExpression([a.objectProperty(a.identifier("name"),a.stringLiteral("this")),a.objectProperty(a.identifier("value"),a.identifier("this"))]);g.unshift(k)}var h=(0,_utils.getStackFrameIdIdentifier)(b);if(h===void 0){return}var i=(0,_utils.codeSeeCall)(a,_constants.codeSeeFuncParams,[a.arrayExpression(g),h]),j=a.expressionStatement(i);if(e.shouldTrack(_constants.codeSeeFuncParams)){(0,_utils.insertAsFirstStatementOfBlock)(b.get("body"),j)}}function insertCatchParamTracking(a,b,c,d,e){var f=objectValuesFromTrackers(a,c,d,e),g=b.get("body").get("body"),h=(0,_utils.findStackFrameIdIdentifier)(b);if(h===void 0){return}var i={start:b.node.loc.start,end:b.node.body.loc.start},j=(0,_utils.codeSeeCall)(a,_constants.codeSeeCatchParam,[a.arrayExpression(f),h,a.stringLiteral((0,_utils.getLocString)(i)),a.stringLiteral(d)]),k=a.expressionStatement(j),l=g[0];if(e.shouldTrack(_constants.codeSeeCatchParam)){if(l){if(a.isVariableDeclaration(l)&&a.isCallExpression(l.declarations[0].init)&&l.declarations[0].init.callee.name===codeSeeStackframeCaught){l.insertAfter(k)}else{l.insertBefore(k)}}else{b.node.body.body=[k]}}}function insertLoopVariableTracking(a,b,c,d,e){var f=objectValuesFromTrackers(a,c,d,e),g=(0,_utils.findStackFrameIdIdentifier)(b);if(g===void 0){return}var h=(0,_utils.codeSeeCall)(a,_constants.codeSeeLoopVars,[a.arrayExpression(f),g]),i=a.expressionStatement(h),j=b.get("body").get("body"),k=j[0];if(e.shouldTrack(_constants.codeSeeLoopVars)){if(k){k.insertBefore(i)}else{b.node.body.body=[i]}}}function trackersFromPatternOrIdentifier(a,b,c,d){var e=(0,_patterns.leftNodesFromPattern)(c).flatMap(function(c){if(c.tracked){return[]}if(a.isIdentifier(c)){if(!c.loc){return[]}var e=c.name,f=(0,_uid.determineIdentifierUID)(e,b);return{name:e,uid:f,value:e,loc:(0,_utils.getLocString)(c.loc)}}else if(a.isMemberExpression(c)){var g=(0,_utils.getDefaultState)();(0,_traverse["default"])(a.expressionStatement(c),d,b.scope,g,b);return g.accesses}else{throw["trackersFromPatternOrIdentifier(): Unexpected node type in pattern: "+c.type]}});return e}function trackersFromVariableDeclaration(a){return a.node.declarations.flatMap(function(a){return trackersFromLHSPattern(a.id)})}function trackersFromLHSPattern(a){var b=(0,_patterns.leftNodesFromPattern)(a);return b.filter(function(a){return a.loc&&!a.tracked}).map(function(a){var b=(0,_uid.generateIdentifierUID)(a);return{name:a.name,uid:b,value:a.name,loc:(0,_utils.getLocString)(a.loc)}})}
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.insertCatchParamTracking=insertCatchParamTracking;exports.insertFunctionParamTracking=insertFunctionParamTracking;exports.insertLoopVariableTracking=insertLoopVariableTracking;exports.insertTracking=insertTracking;exports.trackersFromPatternOrIdentifier=trackersFromPatternOrIdentifier;exports.trackersFromVariableDeclaration=trackersFromVariableDeclaration;exports.trackersFromLHSPattern=trackersFromLHSPattern;var _constants=require("../../constants"),_utils=require("../../utils"),_uid=require("../../uid"),_patterns=require("../../patterns"),_traverse=_interopRequireDefault(require("@babel/traverse"));function _interopRequireDefault(a){return a&&a.__esModule?a:{default:a}}function _typeof(a){"@babel/helpers - typeof";if("function"==typeof Symbol&&"symbol"==typeof Symbol.iterator){_typeof=function(a){return typeof a}}else{_typeof=function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a}}return _typeof(a)}function makeTrackerArgument(a,b,c,d){var e=[];["declares","writes","accesses"].filter(function(a){return d.shouldTrack(a)}).map(function(f){var g=b[f];if(g.length){var h=objectValuesFromTrackers(a,g,c,d,function(a){return"declares"===f&&"value"===a});e.push(a.objectProperty(a.identifier(f),a.arrayExpression(h)))}});return a.objectExpression(e)}function objectValuesFromTrackers(a,b,c,d,e){var f=b.map(function(b){if(d.shouldTrack("filename"))b.filename=c;return a.objectExpression(Object.keys(b).filter(function(a){if(!d.shouldTrack(a)||e&&e(a)){return!1}return!0}).sort().map(function(c){var e=b[c],f;if("value"===c){if("this"===e){f=a.thisExpression()}else{f=a.identifier(e)}}else if("name"===c){if("object"!==_typeof(e)){f=a.stringLiteral(e)}else{f=a.arrayExpression(e)}}else if("object"===_typeof(e)){f=a.objectExpression(Object.keys(e).filter(function(a){return d.shouldTrack(a)}).map(function(b){var c="number"==typeof e[b]?a.numericLiteral(e[b]):a.stringLiteral(e[b]);return a.objectProperty(a.stringLiteral(b),c)}))}else{f="number"==typeof e?a.numericLiteral(e):a.stringLiteral(e)}var g=a.objectProperty(a.identifier(c),f);return g}))});return f}function insertTracking(a,b,c,d,e){var f=makeTrackerArgument(a,c,d,e);insertBeforeTracker(a,b,f,e);c.writes=[].concat(c.writes,c.declares);c.declares=[];var g=makeTrackerArgument(a,c,d,e);insertAfterTracker(a,b,g,e)}function insertBeforeTracker(a,b,c,d){if(c.properties.length&&d.shouldTrack(_constants.codeSeeBefore)){var e=(0,_utils.findStackFrameIdIdentifier)(b);if(e===void 0){return}var f=(0,_utils.codeSeeCall)(a,_constants.codeSeeBefore,[c,e]);b.insertBefore(a.expressionStatement(f))}}function insertAfterTracker(a,b,c,d){if(c.properties.length&&d.shouldTrack(_constants.codeSeeAfter)){var e=(0,_utils.findStackFrameIdIdentifier)(b);if(e===void 0){return}var f=(0,_utils.codeSeeCall)(a,_constants.codeSeeAfter,[c,e]);b.insertAfter(a.expressionStatement(f))}}function insertFunctionParamTracking(a,b,c,d,e,f){var g=objectValuesFromTrackers(a,c,d,e);if(!f){var k=a.objectExpression([a.objectProperty(a.identifier("name"),a.stringLiteral("this")),a.objectProperty(a.identifier("value"),a.identifier("this"))]);g.unshift(k)}var h=(0,_utils.getStackFrameIdIdentifier)(b);if(h===void 0){return}var i=(0,_utils.codeSeeCall)(a,_constants.codeSeeFuncParams,[a.arrayExpression(g),h]),j=a.expressionStatement(i);if(e.shouldTrack(_constants.codeSeeFuncParams)){(0,_utils.insertAsFirstStatementOfBlock)(b.get("body"),j)}}function insertCatchParamTracking(a,b,c,d,e){var f=objectValuesFromTrackers(a,c,d,e),g=b.get("body").get("body"),h=(0,_utils.findStackFrameIdIdentifier)(b);if(h===void 0){return}var i={start:b.node.loc.start,end:b.node.body.loc.start},j=(0,_utils.codeSeeCall)(a,_constants.codeSeeCatchParam,[a.arrayExpression(f),h,a.stringLiteral((0,_utils.getLocString)(i)),a.stringLiteral(d)]),k=a.expressionStatement(j),l=g[0];if(e.shouldTrack(_constants.codeSeeCatchParam)){if(l){if(a.isVariableDeclaration(l)&&a.isCallExpression(l.declarations[0].init)&&l.declarations[0].init.callee.name===_constants.codeSeeStackframeCaught){l.insertAfter(k)}else{l.insertBefore(k)}}else{b.node.body.body=[k]}}}function insertLoopVariableTracking(a,b,c,d,e){var f=objectValuesFromTrackers(a,c,d,e),g=(0,_utils.findStackFrameIdIdentifier)(b);if(g===void 0){return}var h=(0,_utils.codeSeeCall)(a,_constants.codeSeeLoopVars,[a.arrayExpression(f),g]),i=a.expressionStatement(h),j=b.get("body").get("body"),k=j[0];if(e.shouldTrack(_constants.codeSeeLoopVars)){if(k){k.insertBefore(i)}else{b.node.body.body=[i]}}}function trackersFromPatternOrIdentifier(a,b,c,d){var e=(0,_patterns.leftNodesFromPattern)(c).flatMap(function(c){if(c.tracked){return[]}if(a.isIdentifier(c)){if(!c.loc){return[]}var e=c.name,f=(0,_uid.determineIdentifierUID)(e,b);return{name:e,uid:f,value:e,loc:(0,_utils.getLocString)(c.loc)}}else if(a.isMemberExpression(c)){var g=(0,_utils.getDefaultState)();(0,_traverse["default"])(a.expressionStatement(c),d,b.scope,g,b);return g.accesses}else{throw["trackersFromPatternOrIdentifier(): Unexpected node type in pattern: "+c.type]}});return e}function trackersFromVariableDeclaration(a){return a.node.declarations.flatMap(function(a){return trackersFromLHSPattern(a.id)})}function trackersFromLHSPattern(a){var b=(0,_patterns.leftNodesFromPattern)(a);return b.filter(function(a){return a.loc&&!a.tracked}).map(function(a){var b=(0,_uid.generateIdentifierUID)(a);return{name:a.name,uid:b,value:a.name,loc:(0,_utils.getLocString)(a.loc)}})}

@@ -1,1 +0,1 @@

"use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports["default"]=void 0;var _utils=require("../utils"),_template=_interopRequireDefault(require("@babel/template"));function _interopRequireDefault(a){return a&&a.__esModule?a:{default:a}}var t=require("@babel/types"),_default={ImportDeclaration:function ImportDeclaration(a){var b=a.node.source.value;if("next/dynamic"!==b)return;var c=a.get("specifiers").find(function(a){return a.isImportDefaultSpecifier()});if(!c)return;var d=c.node.local.name,e=a.scope.getBinding(d);if(!e){return}e.referencePaths.forEach(function(a){if(a.parentPath.isCallExpression()){a.parent.isSacred=!0}})}};exports["default"]=_default;
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports["default"]=void 0;var _default={ImportDeclaration:function ImportDeclaration(a){var b=a.node.source.value;if("next/dynamic"!==b)return;var c=a.get("specifiers").find(function(a){return a.isImportDefaultSpecifier()});if(!c)return;var d=c.node.local.name,e=a.scope.getBinding(d);if(!e){return}e.referencePaths.forEach(function(a){if(a.parentPath.isCallExpression()){a.parent.isSacred=!0}})}};exports["default"]=_default;

@@ -1,1 +0,1 @@

"use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports["default"]=rhsDataTrackingVisitor;var _utils=require("../utils"),_uid=require("../uid"),_constants=require("../constants");function _typeof(a){"@babel/helpers - typeof";if("function"==typeof Symbol&&"symbol"==typeof Symbol.iterator){_typeof=function(a){return typeof a}}else{_typeof=function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a}}return _typeof(a)}function _toConsumableArray(a){return _arrayWithoutHoles(a)||_iterableToArray(a)||_unsupportedIterableToArray(a)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(a,b){if(!a)return;if("string"==typeof a)return _arrayLikeToArray(a,b);var c=Object.prototype.toString.call(a).slice(8,-1);if("Object"===c&&a.constructor)c=a.constructor.name;if("Map"===c||"Set"===c)return Array.from(a);if("Arguments"===c||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(c))return _arrayLikeToArray(a,b)}function _iterableToArray(a){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(a))return Array.from(a)}function _arrayWithoutHoles(a){if(Array.isArray(a))return _arrayLikeToArray(a)}function _arrayLikeToArray(a,b){if(null==b||b>a.length)b=a.length;for(var c=0,d=Array(b);c<b;c++){d[c]=a[c]}return d}function rhsDataTrackingVisitor(a,b){var c=function(b,c){var d=2<arguments.length&&arguments[2]!==void 0?arguments[2]:{},e=d.force,f=d.additionalParams,g=d.loc;if(b.node.codesee&&!e)return;if(b.node.tracked&&!e)return;if(!b.node.loc){return}var h=(0,_utils.findStackFrameIdIdentifier)(b);if(h===void 0){return}var i=[b.node,h,a.stringLiteral(g||(0,_utils.getLocString)(b.node.loc))];if(b.isIdentifier()){i.push(a.stringLiteral((0,_uid.determineIdentifierUID)(b.node.name,b)))}if(f){f.forEach(function(a){i.push(a)})}var j=(0,_utils.codeSeeCall)(a,c,i);j.loc=b.node.loc;return j},d=function(d,e){var f=2<arguments.length&&arguments[2]!==void 0?arguments[2]:{},g=f.force,h=f.additionalParams,i=f.loc,j=c(d,e,{force:g,additionalParams:h,loc:i});if(j===void 0){return}d.node.tracked=!0;if(b.shouldTrack(_constants.codeSeeInlineTracking)){var m=d.node;d.replaceWith(j);if(a.isIdentifier(m)){var k=d.get("arguments.0"),l=d.scope.getBinding(m.name);if(l){var n=l.referencePaths.findIndex(function(a){return a===d});if(0<=n){l.referencePaths[n]=k}}}}},e=function(a,b){var c="read",e=a.parentPath;if(e.isIfStatement()||e.isSwitchStatement()&&"discriminant"===a.key||e.isReturnStatement()||e.isUpdateExpression()){return}if(e.isMemberExpression()&&"object"===a.key){if(b.statements[0]){b.statements[0].possibleMutations+=1}if("callee"===e.key&&e.parentPath.isCallExpression()){return}else{c="getProp"}}else if((e.isCallExpression()||e.isNewExpression())&&"arguments"===a.listKey){if(b.statements[0]){b.statements[0].possibleMutations+=1}c="funcArg"}d(a,c)},f=function(b){var c=a.callExpression(a.memberExpression(b,a.identifier("bind")),[a.thisExpression()]);return[c]},g=function(b,c){var d=[],e=c.get("callee"),f=e.get("property"),g;if(!e.node.computed&&f.isIdentifier()){g=a.stringLiteral(f.node.name)}else{g=f.node}var h=e.get("object");d.push(h.node);d.push(g);return d},h=function(b,c){var d=[],e=c.get("callee"),f=e.get("property"),g=e.get("object"),h=f.get("id").node,i=a.stringLiteral("#"+h.name),j=a.memberExpression(g,f.node);d.push(g.node);d.push(i);d.push(j);return d},i=function(c,d){if(!c.node.loc){return}var e=(0,_utils.findStackFrameIdIdentifier)(c);if(e===void 0){return}var i=c.node.callee,j=[];if(a.isMemberExpression(i)&&a.isThisExpression(i.object)&&a.isPrivateName(i.property)){d="callPrivateProp";j.push.apply(j,_toConsumableArray(h(i,c)))}else if(a.isMemberExpression(i)&&c.isCallExpression()&&!a.isSuper(i.object)){d="callProp";j.push.apply(j,_toConsumableArray(g(i,c)))}else if(a.isMemberExpression(i)&&c.isCallExpression()&&a.isSuper(i.object)){j.push.apply(j,_toConsumableArray(f(i)))}else{j.push(i)}j.push(a.arrayExpression(c.node.arguments));j.push(e);j.push(a.stringLiteral((0,_utils.getLocString)(c.node.loc)));var l=(0,_utils.codeSeeCall)(a,d,j);l.loc=c.node.loc;c.node.tracked=!0;i.tracked=!0;if(b.shouldTrack(_constants.codeSeeInlineTracking)){var m=c.skipKeys;c.skipKey("callee");(0,_utils.traverseWithSkipKeys)(c,k,{});c.skipKeys=m;c.replaceWith(l)}},j=function(c,d){var e=(0,_utils.findStackFrameIdIdentifier)(c);if(e===void 0){return}var f=[e,a.stringLiteral((0,_utils.getLocString)(d))],g=(0,_utils.codeSeeCall)(a,"loopBodyBegin",f),h=(0,_utils.codeSeeCall)(a,"loopBodyEnd",f),i=c.get("body").get("body"),j=i[0],k=i[Math.max(0,i.length-1)];if(b.shouldTrack(_constants.codeSeeInlineTracking)){if(j){j.insertBefore(a.expressionStatement(g));k.insertAfter(a.expressionStatement(h))}else{c.node.body.body=[g,h]}}},k={Statement:{enter:function enter(a,b){if("object"!==_typeof(b.statements)){b.statements=[]}b.statements.unshift({path:a,possibleMutations:0})},exit:function exit(c,d){var e=d.statements.shift(),f=e.possibleMutations;if(c.isReturnStatement()||c.isExpressionStatement()&&c.get("expression").isYieldExpression()){return}if(f){var g=(0,_utils.codeSeeCall)(a,"checkForMutations",[]);if(b.shouldTrack(_constants.codeSeeInlineTracking)){var h=c.get("body");if(null===h||void 0===h?void 0:h.isBlockStatement()){var i=h.get("body")[0];if(i){i.insertBefore(a.expressionStatement(g))}else{h.node.body=[a.expressionStatement(g)]}}else{c.insertAfter(a.expressionStatement(g))}}}}},ImportDeclaration:function ImportDeclaration(a){a.skip()},ExportSpecifier:function ExportSpecifier(a){a.skip()},ExportNamespaceSpecifier:function ExportNamespaceSpecifier(a){a.skip()},"ReturnStatement|YieldExpression":{exit:function exit(b){if(b.node.argument&&!b.node.argument.codeseeId){d(b.get("argument"),"returnVal",{force:!0});(0,_utils.liftAndReplace)(a,b.get("argument"),"returnValue")}}},IfStatement:{exit:function exit(a){d(a.get("test"),"test")}},SwitchStatement:{exit:function exit(a){d(a.get("discriminant"),"switchTest")}},SwitchCase:{enter:function enter(a){a.skipKey("test")}},Expression:{enter:function enter(a){if(a.node.codesee){a.skip()}},exit:function exit(b){if(a.isLiteral(b)||a.isIdentifier(b)||a.isCallExpression(b)||a.isAssignmentExpression(b)||a.isMemberExpression(b)||a.isOptionalMemberExpression(b)||a.isFunction(b)||a.isThisExpression(b)||a.isAwaitExpression(b)||a.isParenthesizedExpression(b)||a.isSuper(b)||a.isMetaProperty(b)||a.isYieldExpression(b)||"test"===b.key&&a.isIfStatement(b.parentPath)||"discriminant"===b.key&&a.isSwitchStatement(b.parentPath)||"callee"===b.key&&a.isCallExpression(b.parentPath)||"right"===b.key&&(a.isForInStatement(b.parentPath)||a.isForOfStatement(b.parentPath))||a.isReturnStatement(b.parentPath)||b.isConstantExpression()){return}var c={ids:0};b.traverse({Identifier:function Identifier(a,b){b.ids+=1}},c);if(0===c.ids){return}d(b,"expr")}},TaggedTemplateExpression:{enter:function enter(a){a.skipKey("tag")}},CallExpression:{enter:function enter(b){if(a.isIdentifier(b.node.callee)){b.skipKey("callee")}var c=b.get("callee"),e=b.node.isSacred||_constants.sacredCallExpressions.some(function(a){var b=a.split(".");return(0,_utils.matchStringsToExpressionPath)(b,c)});if(e){d(b,"expr");b.skip()}},exit:function exit(a){if(a.node.codesee)return;if(!a.get("callee").isSuper()){i(a,"callExp")}}},AwaitExpression:{exit:function exit(b){if(b.node.tracked)return;var d=(0,_utils.getLocString)(b.node.loc),e=(0,_utils.findStackFrameIdIdentifier)(b);if(e===void 0){return}var f=(0,_utils.generateTempIdentifier)(b.scope,"awaitResult"),g=a.variableDeclaration("let",[a.variableDeclarator(f)]);g.codesee=!0;var h=c(b.get("argument"),"aboutToAwait",{force:!0,loc:d}),i=a.awaitExpression(h);i.loc=b.node.loc;i.tracked=!0;var j=a.sequenceExpression([a.assignmentExpression("=",f,i),a.assignmentExpression("=",e,(0,_utils.codeSeeCall)(a,"backFromAwait",[f,e,a.stringLiteral(d)])),f]);j.codesee=!0;j.loc=b.node.loc;b.getStatementParent().insertBefore(g);b.replaceWith(j)}},OptionalMemberExpression:{enter:function enter(a){a.skipKey("object");a.skipKey("property")},exit:function exit(a){d(a,"read")}},OptionalCallExpression:{enter:function enter(a){a.skipKey("callee")},exit:function exit(a){d(a,"read")}},MemberExpression:{enter:function enter(a){if(!a.node.computed){a.skipKey("property")}var b=_constants.sacredMemberExpressions.some(function(b){var c=b.split(".");return(0,_utils.matchStringsToExpressionPath)(c,a)});if(b){d(a,"expr");a.skip()}},exit:function exit(a,b){if("callee"===a.key)return;e(a,b)}},AssignmentExpression:function AssignmentExpression(a){a.skipKey("left")},VariableDeclaration:function VariableDeclaration(){},VariableDeclarator:function VariableDeclarator(a){a.skipKey("id")},Decorator:function Decorator(a){a.skip()},Function:function Function(a){a.skipKey("params")},FunctionExpression:{enter:function enter(a){a.skipKey("id")},exit:function exit(a){d(a,"funcExp")}},ArrowFunctionExpression:{exit:function exit(a){d(a,"funcExp")}},FunctionDeclaration:function FunctionDeclaration(a){a.skipKey("id")},"ClassDeclaration|ClassExpression":function ClassDeclarationClassExpression(a){a.skipKey("id")},NewExpression:{enter:function enter(a){a.skipKey("callee")},exit:function exit(a){i(a,"newExp")}},"ForInStatement|ForOfStatement":{enter:function enter(a){a.skipKey("left")},exit:function exit(c){var e=a.stringLiteral((0,_utils.getLocString)(c.node.loc)),f=a.stringLiteral(c.node.type),g=(0,_utils.findStackFrameIdIdentifier)(c);if(void 0===g){return}d(c.get("right"),"loopIterable",{force:!0,additionalParams:[e,f]});var h=c.node.right.loc;j(c,h);var i=(0,_utils.codeSeeCall)(a,"loopEnd",[g,e]);if(b.shouldTrack(_constants.codeSeeInlineTracking)){c.insertAfter(a.expressionStatement(i))}}},"ForStatement|WhileStatement|DoWhileStatement":{exit:function exit(c){var e,f,g,h,i,k,l,m;if(c.node.test){d(c.get("test"),"loopTest",{force:!0})}var n=(0,_utils.findStackFrameIdIdentifier)(c);if(void 0===n){return}var o=[n,a.stringLiteral((0,_utils.getLocString)(c.node.loc)),a.stringLiteral(c.node.type)],p=(0,_utils.codeSeeCall)(a,"loopStart",o),q=(0,_utils.codeSeeCall)(a,"loopEnd",[o[0],o[1]]);if(b.shouldTrack(_constants.codeSeeInlineTracking)){c.insertBefore(a.expressionStatement(p));c.insertAfter(a.expressionStatement(q))}var r={start:(null===(e=c.node.test)||void 0===e?void 0:null===(f=e.loc)||void 0===f?void 0:f.start)||(null===(g=c.node.update)||void 0===g?void 0:null===(h=g.loc)||void 0===h?void 0:h.start)||c.node.loc.start,end:(null===(i=c.node.update)||void 0===i?void 0:null===(k=i.loc)||void 0===k?void 0:k.end)||(null===(l=c.node.test)||void 0===l?void 0:null===(m=l.loc)||void 0===m?void 0:m.end)||c.node.loc.start};j(c,r)}},ContinueStatement:{exit:function exit(c){if(c.node.label){throw["CodeSee does not yet support `continue` statements with a label: "+JSON.stringify(c.node.loc)]}var d=(0,_utils.findStackFrameIdIdentifier)(c);if(d===void 0){return}var e=[d,a.stringLiteral((0,_utils.getLocString)(c.node.loc))],f=(0,_utils.codeSeeCall)(a,"loopBodyEnd",e);if(b.shouldTrack(_constants.codeSeeInlineTracking)){c.insertBefore(a.expressionStatement(f))}}},BreakStatement:{exit:function exit(a){if(a.node.label){throw["CodeSee does not yet support `break` statements with a label: "+JSON.stringify(a.node.loc)]}}},CatchClause:function CatchClause(a){a.skipKey("param")},MetaProperty:function MetaProperty(a){a.skip()},PrivateName:function PrivateName(a){a.skipKey("id")},UpdateExpression:{exit:function exit(a){var b=(a.node.prefix?"pre":"post")+("++"===a.node.operator?"Incr":"Decr");d(a,b)}},Identifier:{exit:function exit(a,b){if("key"===a.key)return;e(a,b)}},ThisExpression:{exit:function exit(a,b){e(a,b)}},UnaryExpression:{enter:function enter(a){if("typeof"===a.node.operator&&a.get("argument").isIdentifier()){a.skipKey("argument")}}}};return k}
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports["default"]=rhsDataTrackingVisitor;var _utils=require("../utils"),_uid=require("../uid"),_constants=require("../constants");function _typeof(a){"@babel/helpers - typeof";if("function"==typeof Symbol&&"symbol"==typeof Symbol.iterator){_typeof=function(a){return typeof a}}else{_typeof=function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a}}return _typeof(a)}function _toConsumableArray(a){return _arrayWithoutHoles(a)||_iterableToArray(a)||_unsupportedIterableToArray(a)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(a,b){if(!a)return;if("string"==typeof a)return _arrayLikeToArray(a,b);var c=Object.prototype.toString.call(a).slice(8,-1);if("Object"===c&&a.constructor)c=a.constructor.name;if("Map"===c||"Set"===c)return Array.from(a);if("Arguments"===c||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(c))return _arrayLikeToArray(a,b)}function _iterableToArray(a){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(a))return Array.from(a)}function _arrayWithoutHoles(a){if(Array.isArray(a))return _arrayLikeToArray(a)}function _arrayLikeToArray(a,b){if(null==b||b>a.length)b=a.length;for(var c=0,d=Array(b);c<b;c++){d[c]=a[c]}return d}function rhsDataTrackingVisitor(a,b){var c=function(b,c){var d=2<arguments.length&&arguments[2]!==void 0?arguments[2]:{},e=d.force,f=d.additionalParams,g=d.loc;if(b.node.codesee&&!e)return;if(b.node.tracked&&!e)return;if(!b.node.loc){return}var h=(0,_utils.findStackFrameIdIdentifier)(b);if(h===void 0){return}var i=[b.node,h,a.stringLiteral(g||(0,_utils.getLocString)(b.node.loc))];if(b.isIdentifier()){i.push(a.stringLiteral((0,_uid.determineIdentifierUID)(b.node.name,b)))}if(f){f.forEach(function(a){i.push(a)})}var j=(0,_utils.codeSeeCall)(a,c,i);j.loc=b.node.loc;return j},d=function(d,e){var f=2<arguments.length&&arguments[2]!==void 0?arguments[2]:{},g=f.force,h=f.additionalParams,i=f.loc,j=c(d,e,{force:g,additionalParams:h,loc:i});if(j===void 0){return}d.node.tracked=!0;if(b.shouldTrack(_constants.codeSeeInlineTracking)){var m=d.node;d.replaceWith(j);if(a.isIdentifier(m)){var k=d.get("arguments.0"),l=d.scope.getBinding(m.name);if(l){var n=l.referencePaths.findIndex(function(a){return a===d});if(0<=n){l.referencePaths[n]=k}}}}},e=function(a,b){var c="read",e=a.parentPath;if(e.isIfStatement()||e.isSwitchStatement()&&"discriminant"===a.key||e.isReturnStatement()||e.isUpdateExpression()){return}if(e.isMemberExpression()&&"object"===a.key){if(b.statements[0]){b.statements[0].possibleMutations+=1}if("callee"===e.key&&e.parentPath.isCallExpression()){return}else{c="getProp"}}else if((e.isCallExpression()||e.isNewExpression())&&"arguments"===a.listKey){if(b.statements[0]){b.statements[0].possibleMutations+=1}c="funcArg"}d(a,c)},f=function(b){var c=a.callExpression(a.memberExpression(b,a.identifier("bind")),[a.thisExpression()]);return[c]},g=function(b,c){var d=[],e=c.get("callee"),f=e.get("property"),g;if(!e.node.computed&&f.isIdentifier()){g=a.stringLiteral(f.node.name)}else{g=f.node}var h=e.get("object");d.push(h.node);d.push(g);return d},h=function(b,c){var d=[],e=c.get("callee"),f=e.get("property"),g=e.get("object"),h=f.get("id").node,i=a.stringLiteral("#"+h.name),j=a.memberExpression(g,f.node);d.push(g.node);d.push(i);d.push(j);return d},i=function(c,d){if(!c.node.loc){return}var e=(0,_utils.findStackFrameIdIdentifier)(c);if(e===void 0){return}var i=c.node.callee,j=[];if(a.isMemberExpression(i)&&a.isThisExpression(i.object)&&a.isPrivateName(i.property)){d="callPrivateProp";j.push.apply(j,_toConsumableArray(h(i,c)))}else if(a.isMemberExpression(i)&&c.isCallExpression()&&!a.isSuper(i.object)){d="callProp";j.push.apply(j,_toConsumableArray(g(i,c)))}else if(a.isMemberExpression(i)&&c.isCallExpression()&&a.isSuper(i.object)){j.push.apply(j,_toConsumableArray(f(i)))}else{j.push(i)}j.push(a.arrayExpression(c.node.arguments));j.push(e);j.push(a.stringLiteral((0,_utils.getLocString)(c.node.loc)));var l=(0,_utils.codeSeeCall)(a,d,j);l.loc=c.node.loc;c.node.tracked=!0;i.tracked=!0;if(b.shouldTrack(_constants.codeSeeInlineTracking)){var m=c.skipKeys;c.skipKey("callee");(0,_utils.traverseWithSkipKeys)(c,k,{});c.skipKeys=m;c.replaceWith(l)}},j=function(c,d){var e=(0,_utils.findStackFrameIdIdentifier)(c);if(e===void 0){return}var f=[e,a.stringLiteral((0,_utils.getLocString)(d))],g=(0,_utils.codeSeeCall)(a,"loopBodyBegin",f),h=(0,_utils.codeSeeCall)(a,"loopBodyEnd",f),i=c.get("body").get("body"),j=i[0],k=i[Math.max(0,i.length-1)];if(b.shouldTrack(_constants.codeSeeInlineTracking)){if(j){j.insertBefore(a.expressionStatement(g));k.insertAfter(a.expressionStatement(h))}else{c.node.body.body=[g,h]}}},k={Statement:{enter:function enter(a,b){if("object"!==_typeof(b.statements)){b.statements=[]}b.statements.unshift({path:a,possibleMutations:0})},exit:function exit(c,d){var e=d.statements.shift(),f=e.possibleMutations;if(c.isReturnStatement()||c.isExpressionStatement()&&c.get("expression").isYieldExpression()){return}if(f){var g=(0,_utils.codeSeeCall)(a,"checkForMutations",[]);if(b.shouldTrack(_constants.codeSeeInlineTracking)){var h=c.get("body");if(null===h||void 0===h?void 0:h.isBlockStatement()){var i=h.get("body")[0];if(i){i.insertBefore(a.expressionStatement(g))}else{h.node.body=[a.expressionStatement(g)]}}else{c.insertAfter(a.expressionStatement(g))}}}}},ImportDeclaration:function ImportDeclaration(a){a.skip()},ExportSpecifier:function ExportSpecifier(a){a.skip()},ExportNamespaceSpecifier:function ExportNamespaceSpecifier(a){a.skip()},"ReturnStatement|YieldExpression":{exit:function exit(b){if(b.node.argument&&!b.node.argument.codeseeId){d(b.get("argument"),"returnVal",{force:!0});(0,_utils.liftAndReplace)(a,b.get("argument"),"returnValue")}}},IfStatement:{exit:function exit(a){d(a.get("test"),"test")}},SwitchStatement:{exit:function exit(a){d(a.get("discriminant"),"switchTest")}},SwitchCase:{enter:function enter(a){a.skipKey("test")}},Expression:{enter:function enter(a){if(a.node.codesee){a.skip()}},exit:function exit(b){if(a.isLiteral(b)||a.isIdentifier(b)||a.isCallExpression(b)||a.isAssignmentExpression(b)||a.isMemberExpression(b)||a.isOptionalMemberExpression(b)||a.isFunction(b)||a.isThisExpression(b)||a.isAwaitExpression(b)||a.isParenthesizedExpression(b)||a.isSuper(b)||a.isMetaProperty(b)||a.isYieldExpression(b)||"test"===b.key&&a.isIfStatement(b.parentPath)||"discriminant"===b.key&&a.isSwitchStatement(b.parentPath)||"callee"===b.key&&a.isCallExpression(b.parentPath)||"right"===b.key&&(a.isForInStatement(b.parentPath)||a.isForOfStatement(b.parentPath))||a.isReturnStatement(b.parentPath)||b.isConstantExpression()){return}var c={ids:0};b.traverse({Identifier:function Identifier(a,b){b.ids+=1}},c);if(0===c.ids){return}d(b,"expr")}},TaggedTemplateExpression:{enter:function enter(a){a.skipKey("tag")}},CallExpression:{enter:function enter(b){if(a.isIdentifier(b.node.callee)){b.skipKey("callee")}var c=b.get("callee"),e=b.node.isSacred||_constants.sacredCallExpressions.some(function(a){var b=a.split(".");return(0,_utils.matchStringsToExpressionPath)(b,c)});if(e){d(b,"expr");b.skip()}},exit:function exit(a){if(a.node.codesee)return;if(!a.get("callee").isSuper()){i(a,"callExp")}}},AwaitExpression:{exit:function exit(b){if(b.node.tracked)return;var d=(0,_utils.getLocString)(b.node.loc),e=(0,_utils.findStackFrameIdIdentifier)(b);if(e===void 0){return}var f=(0,_utils.generateTempIdentifier)(b.scope,"awaitResult"),g=a.variableDeclaration("let",[a.variableDeclarator(f)]);g.codesee=!0;var h=c(b.get("argument"),"aboutToAwait",{force:!0,loc:d}),i=a.awaitExpression(h);i.loc=b.node.loc;i.tracked=!0;var j=a.sequenceExpression([a.assignmentExpression("=",f,i),a.assignmentExpression("=",e,(0,_utils.codeSeeCall)(a,"backFromAwait",[f,e,a.stringLiteral(d)])),f]);j.codesee=!0;j.loc=b.node.loc;b.getStatementParent().insertBefore(g);b.replaceWith(j)}},OptionalMemberExpression:{enter:function enter(a){a.skipKey("object");a.skipKey("property")},exit:function exit(a){d(a,"read")}},OptionalCallExpression:{enter:function enter(a){a.skipKey("callee")},exit:function exit(a){d(a,"read")}},MemberExpression:{enter:function enter(a){if(!a.node.computed){a.skipKey("property")}var b=_constants.sacredMemberExpressions.some(function(b){var c=b.split(".");return(0,_utils.matchStringsToExpressionPath)(c,a)});if(b){d(a,"expr");a.skip()}},exit:function exit(a,b){if("callee"===a.key)return;e(a,b)}},AssignmentExpression:function AssignmentExpression(a){a.skipKey("left")},VariableDeclaration:function VariableDeclaration(){},VariableDeclarator:function VariableDeclarator(a){a.skipKey("id")},Decorator:function Decorator(a){a.skip()},Function:function Function(a){a.skipKey("params")},FunctionExpression:{enter:function enter(a){a.skipKey("id")},exit:function exit(a){d(a,"funcExp")}},ArrowFunctionExpression:{exit:function exit(a){d(a,"funcExp")}},FunctionDeclaration:function FunctionDeclaration(a){a.skipKey("id")},"ClassDeclaration|ClassExpression":function ClassDeclarationClassExpression(a){a.skipKey("id")},NewExpression:{enter:function enter(a){a.skipKey("callee")},exit:function exit(a){i(a,"newExp")}},"ForInStatement|ForOfStatement":{enter:function enter(a){a.skipKey("left")},exit:function exit(c){var e=a.stringLiteral((0,_utils.getLocString)(c.node.loc)),f=a.stringLiteral(c.node.type),g=(0,_utils.findStackFrameIdIdentifier)(c);if(void 0===g){return}d(c.get("right"),"loopIterable",{force:!0,additionalParams:[e,f]});var h=c.node.right.loc;j(c,h);var i=(0,_utils.codeSeeCall)(a,"loopEnd",[g,e]);if(b.shouldTrack(_constants.codeSeeInlineTracking)){c.insertAfter(a.expressionStatement(i))}}},"ForStatement|WhileStatement|DoWhileStatement":{exit:function exit(c){var e,f,g,h,i,k,l,m;if(c.node.test){d(c.get("test"),"loopTest",{force:!0})}var n=(0,_utils.findStackFrameIdIdentifier)(c);if(void 0===n){return}var o=[n,a.stringLiteral((0,_utils.getLocString)(c.node.loc)),a.stringLiteral(c.node.type)],p=(0,_utils.codeSeeCall)(a,"loopStart",o),q=(0,_utils.codeSeeCall)(a,"loopEnd",[o[0],o[1]]);if(b.shouldTrack(_constants.codeSeeInlineTracking)){c.insertBefore(a.expressionStatement(p));c.insertAfter(a.expressionStatement(q))}var r={start:(null===(e=c.node.test)||void 0===e?void 0:null===(f=e.loc)||void 0===f?void 0:f.start)||(null===(g=c.node.update)||void 0===g?void 0:null===(h=g.loc)||void 0===h?void 0:h.start)||c.node.loc.start,end:(null===(i=c.node.update)||void 0===i?void 0:null===(k=i.loc)||void 0===k?void 0:k.end)||(null===(l=c.node.test)||void 0===l?void 0:null===(m=l.loc)||void 0===m?void 0:m.end)||c.node.loc.start};j(c,r)}},ContinueStatement:{exit:function exit(c){if(c.node.label){throw["CodeSee does not yet support `continue` statements with a label: "+JSON.stringify(c.node.loc)]}var d=(0,_utils.findStackFrameIdIdentifier)(c);if(d===void 0){return}var e=[d,a.stringLiteral((0,_utils.getLocString)(c.node.loc))],f=(0,_utils.codeSeeCall)(a,"loopBodyEnd",e);if(b.shouldTrack(_constants.codeSeeInlineTracking)){c.insertBefore(a.expressionStatement(f))}}},BreakStatement:{exit:function exit(a){if(a.node.label){throw["CodeSee does not yet support `break` statements with a label: "+JSON.stringify(a.node.loc)]}}},CatchClause:function CatchClause(a){a.skipKey("param")},MetaProperty:function MetaProperty(a){a.skip()},PrivateName:function PrivateName(a){a.skipKey("id")},UpdateExpression:{exit:function exit(a){var b=(a.node.prefix?"pre":"post")+("++"===a.node.operator?"Incr":"Decr");d(a,b)}},Identifier:{exit:function exit(a,b){if("key"===a.key)return;e(a,b)}},ThisExpression:{exit:function exit(a,b){e(a,b)}},UnaryExpression:{enter:function enter(a){if("typeof"===a.node.operator&&a.get("argument").isIdentifier()){a.skipKey("argument");return}if("delete"===a.node.operator){a.skipKey("argument")}}}};return k}
{
"name": "@codesee/babel-plugin-instrument",
"version": "0.9.1",
"version": "0.10.0",
"description": "Instruments javascript code to report internal execution and state for use with CodeSee Visualizations.",

@@ -12,2 +12,3 @@ "type": "commonjs",

],
"prettier": "@codesee/prettier-config",
"dependencies": {

@@ -23,2 +24,4 @@ "@babel/core": "^7.8.0",

"@babel/cli": "^7.8.4",
"@babel/eslint-parser": "^7.12.13",
"@babel/eslint-plugin": "^7.12.13",
"@babel/plugin-proposal-class-properties": "^7.8.3",

@@ -29,2 +32,3 @@ "@babel/plugin-proposal-private-methods": "^7.10.4",

"@babel/preset-react": "^7.12.10",
"@codesee/prettier-config": "file:../prettier-config",
"babel-plugin-lodash": "^3.3.4",

@@ -34,6 +38,12 @@ "babel-plugin-transform-class-properties": "6.24.1",

"babel-preset-react-app": "9.1.2",
"eslint": "^7.19.0",
"eslint-config-prettier": "^7.2.0",
"eslint-plugin-jest": "^24.1.3",
"jest": "^24.9.0",
"next": "^10.0.5"
"next": "^10.0.5",
"prettier": "2.2.1"
},
"scripts": {
"lint": "eslint 'src/**/*.js' '__tests__/**/*.js' --fix",
"format": "prettier --write 'src/**/*.js' '__tests__/**/*.js'",
"build:pack": "npm pack",

@@ -40,0 +50,0 @@ "build:prod": "npx babel ./src --out-dir ./lib --config-file ./.babelrc.prod.js --no-comments",

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc