@codesee/babel-plugin-instrument
Advanced tools
Comparing version 0.9.1 to 0.10.0
@@ -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", |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Minified code
QualityThis package contains minified code. This may be harmless in some cases where minified code is included in packaged libraries, however packages on npm should not minify code.
Found 1 instance in 1 package
65271
19
19
2