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.6.2 to 0.7.0

lib/visitors/dynamic-sacreds.js

2

lib/index.js

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

"use strict";var _helperPluginUtils=require("@babel/helper-plugin-utils"),_core=require("@babel/core"),_traverse=_interopRequireDefault(require("@babel/traverse")),_helperModuleImports=require("@babel/helper-module-imports"),_objectPath=require("object-path"),_constants=require("./constants"),_utils=require("./utils"),_trackingConfig=_interopRequireDefault(require("./tracking-config")),_ensureBlockStatements=_interopRequireDefault(require("./visitors/ensure-block-statements")),_tracing=require("./visitors/tracing"),_dataTracking=require("./visitors/data-tracking"),_inlineDataTracking=_interopRequireDefault(require("./visitors/inline-data-tracking")),_ensureClassConstructors=_interopRequireDefault(require("./visitors/ensure-class-constructors")),_ensureSimpleComputedMemberExpressions=_interopRequireDefault(require("./visitors/ensure-simple-computed-member-expressions")),_functionInputTracking=_interopRequireDefault(require("./visitors/function-input-tracking")),_checkSourceType=_interopRequireDefault(require("./visitors/check-source-type")),_finalCleanup=_interopRequireDefault(require("./visitors/final-cleanup")),_catchErrors=_interopRequireDefault(require("./visitors/catch-errors"));function _interopRequireDefault(a){return a&&a.__esModule?a:{default:a}}function _slicedToArray(a,b){return _arrayWithHoles(a)||_iterableToArrayLimit(a,b)||_unsupportedIterableToArray(a,b)||_nonIterableRest()}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _iterableToArrayLimit(a,b){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(a)))return;var c=[],d=!0,e=!1,f=void 0;try{for(var g=a[Symbol.iterator](),h;!(d=(h=g.next()).done);d=!0){c.push(h.value);if(b&&c.length===b)break}}catch(a){e=!0;f=a}finally{try{if(!d&&null!=g["return"])g["return"]()}finally{if(e)throw f}}return c}function _arrayWithHoles(a){if(Array.isArray(a))return 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}var _require=require("@babel/plugin-transform-typescript"),typescriptPlugin=_require["default"],TRACKER_MODULE_NAME="@codesee/tracker",getTrimmedFilename=function(a){var b=(0,_objectPath.get)(a,"file.opts.filename","root"),c=(0,_objectPath.get)(a,"file.opts.root","");return b.replace(c,"")},rootFileName=null,rootSource=null,extractCommentsFromNode=function(a){return[].concat(_toConsumableArray(a.leadingComments?a.leadingComments:[]),_toConsumableArray(a.innerComments?a.innerComments:[]),_toConsumableArray(a.trailingComments?a.trailingComments:[]))},getAllCommentsFromNode=function(a){var b=extractCommentsFromNode(a);return a.body?a.body.reduce(function(a,b){var c=extractCommentsFromNode(b);return[].concat(_toConsumableArray(a),_toConsumableArray(c))},b):b};module.exports=(0,_helperPluginUtils.declare)(function(a,b){a.assertVersion("^7.0.0-beta.4");b.includeLibs||(b.includeLibs=[]);var c;return{name:"@codesee/babel-plugin-instrument",visitor:{Program:{enter:function enter(d,e){var f=d.hub.file.opts.filename||"";if(f.match(/node_modules/)){console.warn("CodeSee is skipping this file, even though Babel is configured to transform it:\n"+f);e.skip=!0;return}if(-1===b.includeLibs.indexOf("gatsby")&&f.match(/\/\.cache\//)){e.skip=!0;return}var g=getAllCommentsFromNode(d.node);if(g.some(function(a){return a.value.includes("@Codesee-ignore-file")})){e.skip=!0;return}rootFileName=getTrimmedFilename(e);rootSource=d.hub.file.code.split("\n");c=new _trackingConfig["default"];if(e.opts.onlyTrack)c.set(e.opts.onlyTrack.split(","));if(c.shouldTrack(_constants.codeSeeSource)){var h=[_core.types.objectExpression([_core.types.objectProperty(_core.types.stringLiteral(rootFileName),_core.types.arrayExpression(rootSource.map(function(a){return _core.types.stringLiteral(a)})))])],i=(0,_utils.codeSeeCall)(_core.types,"source",h);d.unshiftContainer("body",_core.types.expressionStatement(i))}var j=a.version.split(/[-\.]/),k=_slicedToArray(j,2),l=k[0],m=k[1];if(7<l||7==l&&2<=m){d.traverse((0,_dataTracking.enumVisitor)(_core.types,rootFileName,c));var o=typescriptPlugin(a).visitor;d.traverse(o)}d.traverse((0,_ensureBlockStatements["default"])(_core.types));d.traverse((0,_ensureClassConstructors["default"])(_core.types));d.traverse((0,_ensureSimpleComputedMemberExpressions["default"])(_core.types));(0,_traverse["default"])(d.hub.file.ast,(0,_tracing.annotateFunctionNameVisitor)(_core.types,rootFileName,a.version),d.hub.file.scope);d.traverse((0,_tracing.traceLineVisitor)(_core.types,rootFileName,c),e);d.traverse((0,_dataTracking.trackerVisitor)(_core.types,rootFileName,c,a.version),e);d.traverse((0,_inlineDataTracking["default"])(_core.types,c),e);d.traverse((0,_functionInputTracking["default"])(_core.types,rootFileName,c,a.version));(0,_traverse["default"])(d.hub.file.ast,(0,_tracing.traceStackFrameVisitor)(_core.types,rootFileName,c,a.version),d.hub.file.scope);var n={setsModuleExports:!1,usesES6ImportExport:!1};d.traverse(_checkSourceType["default"],n);if(c.shouldTrack("codeSeeImports")){var p=TRACKER_MODULE_NAME+(b.hosted?"/hosted":"");if(n.setsModuleExports&&!n.usesES6ImportExport){e.file.path.node.sourceType="script";var q=_core.types.expressionStatement(_core.types.callExpression(_core.types.identifier("require"),[_core.types.stringLiteral(p)]));d.unshiftContainer("body",q)}else{(0,_helperModuleImports.addSideEffect)(d,p,{importedInterop:"uncompiled"})}}},exit:function exit(a,b){if(b.skip){return}a.traverse((0,_finalCleanup["default"])(_core.types));(0,_traverse["default"])(a.hub.file.ast,_catchErrors["default"],a.hub.file.scope)}}},manipulateOptions:function manipulateOptions(a,b){b.plugins.push("const-enum","jsx")}}});function anyTypescript(a,b){var c={},d=b.version.split(/[-\.]/),e=_slicedToArray(d,1),f=e[0];if(7<=f){a.traverse({"TSType|TSQualifiedName|TSTypeElement|TSAsExpression|TSDeclareFunction|TSDeclareMethod|TSEnumDeclaration|TSEnumMember|TSExportAssignment|TSExternalModuleReference|TSImportEqualsDeclaration|TSInterfaceBody|TSInterfaceDeclaration|TSModuleBlock|TSModuleDeclaration|TSNamespaceExportDeclaration|TSNonNullExpression|TSParameterProperty|TSTypeAliasDeclaration|TSTypeAnnotation|TSTypeAssertion|TSTypeParameter|TSTypeParameterDeclaration|TypeParameterInstantiation":{enter:function enter(a,b){b.present=!0;a.stop()}}},c);if(c.present){return!0}}return!1}
"use strict";var _helperPluginUtils=require("@babel/helper-plugin-utils"),_core=require("@babel/core"),_traverse=_interopRequireDefault(require("@babel/traverse")),_helperModuleImports=require("@babel/helper-module-imports"),_objectPath=require("object-path"),_constants=require("./constants"),_utils=require("./utils"),_trackingConfig=_interopRequireDefault(require("./tracking-config")),_ensureBlockStatements=_interopRequireDefault(require("./visitors/ensure-block-statements")),_tracing=require("./visitors/tracing"),_dataTracking=require("./visitors/data-tracking"),_inlineDataTracking=_interopRequireDefault(require("./visitors/inline-data-tracking")),_ensureClassConstructors=_interopRequireDefault(require("./visitors/ensure-class-constructors")),_ensureSimpleComputedMemberExpressions=_interopRequireDefault(require("./visitors/ensure-simple-computed-member-expressions")),_functionInputTracking=_interopRequireDefault(require("./visitors/function-input-tracking")),_checkSourceType=_interopRequireDefault(require("./visitors/check-source-type")),_finalCleanup=_interopRequireDefault(require("./visitors/final-cleanup")),_catchErrors=_interopRequireDefault(require("./visitors/catch-errors")),_dynamicSacreds=_interopRequireDefault(require("./visitors/dynamic-sacreds"));function _interopRequireDefault(a){return a&&a.__esModule?a:{default:a}}function _slicedToArray(a,b){return _arrayWithHoles(a)||_iterableToArrayLimit(a,b)||_unsupportedIterableToArray(a,b)||_nonIterableRest()}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _iterableToArrayLimit(a,b){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(a)))return;var c=[],d=!0,e=!1,f=void 0;try{for(var g=a[Symbol.iterator](),h;!(d=(h=g.next()).done);d=!0){c.push(h.value);if(b&&c.length===b)break}}catch(a){e=!0;f=a}finally{try{if(!d&&null!=g["return"])g["return"]()}finally{if(e)throw f}}return c}function _arrayWithHoles(a){if(Array.isArray(a))return 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}var _require=require("@babel/plugin-transform-typescript"),typescriptPlugin=_require["default"],TRACKER_MODULE_NAME="@codesee/tracker",getTrimmedFilename=function(a){var b=(0,_objectPath.get)(a,"file.opts.filename","root"),c=(0,_objectPath.get)(a,"file.opts.root","");return b.replace(c,"")},rootFileName=null,rootSource=null,extractCommentsFromNode=function(a){return[].concat(_toConsumableArray(a.leadingComments?a.leadingComments:[]),_toConsumableArray(a.innerComments?a.innerComments:[]),_toConsumableArray(a.trailingComments?a.trailingComments:[]))},getAllCommentsFromNode=function(a){var b=extractCommentsFromNode(a);return a.body?a.body.reduce(function(a,b){var c=extractCommentsFromNode(b);return[].concat(_toConsumableArray(a),_toConsumableArray(c))},b):b};module.exports=(0,_helperPluginUtils.declare)(function(a,b){a.assertVersion("^7.0.0-beta.4");b.includeLibs||(b.includeLibs=[]);var c;return{name:"@codesee/babel-plugin-instrument",visitor:{Program:{enter:function enter(d,e){var f=d.hub.file.opts.filename||"";if(f.match(/node_modules/)){console.warn("CodeSee is skipping this file, even though Babel is configured to transform it:\n"+f);e.skip=!0;return}if(-1===b.includeLibs.indexOf("gatsby")&&f.match(/\/\.cache\//)){e.skip=!0;return}var g=getAllCommentsFromNode(d.node);if(g.some(function(a){return a.value.includes("@Codesee-ignore-file")})){e.skip=!0;return}rootFileName=getTrimmedFilename(e);rootSource=d.hub.file.code.split("\n");c=new _trackingConfig["default"];if(e.opts.onlyTrack)c.set(e.opts.onlyTrack.split(","));if(c.shouldTrack(_constants.codeSeeSource)){var h=[_core.types.objectExpression([_core.types.objectProperty(_core.types.stringLiteral(rootFileName),_core.types.arrayExpression(rootSource.map(function(a){return _core.types.stringLiteral(a)})))])],i=(0,_utils.codeSeeCall)(_core.types,"source",h);d.unshiftContainer("body",_core.types.expressionStatement(i))}var j=a.version.split(/[-\.]/),k=_slicedToArray(j,2),l=k[0],m=k[1];if(7<l||7==l&&2<=m){d.traverse((0,_dataTracking.enumVisitor)(_core.types,rootFileName,c));var o=typescriptPlugin(a).visitor;d.traverse(o)}d.traverse(_dynamicSacreds["default"]);d.traverse((0,_ensureBlockStatements["default"])(_core.types));d.traverse((0,_ensureClassConstructors["default"])(_core.types));d.traverse((0,_ensureSimpleComputedMemberExpressions["default"])(_core.types));(0,_traverse["default"])(d.hub.file.ast,(0,_tracing.annotateFunctionNameVisitor)(_core.types,rootFileName,a.version),d.hub.file.scope);d.traverse((0,_tracing.traceLineVisitor)(_core.types,rootFileName,c),e);d.traverse((0,_dataTracking.trackerVisitor)(_core.types,rootFileName,c,a.version),e);d.traverse((0,_inlineDataTracking["default"])(_core.types,c),e);d.traverse((0,_functionInputTracking["default"])(_core.types,rootFileName,c,a.version));(0,_traverse["default"])(d.hub.file.ast,(0,_tracing.traceStackFrameVisitor)(_core.types,rootFileName,c,a.version),d.hub.file.scope);var n={setsModuleExports:!1,usesES6ImportExport:!1};d.traverse(_checkSourceType["default"],n);if(c.shouldTrack("codeSeeImports")){var p=TRACKER_MODULE_NAME+(b.hosted?"/hosted":"");if(n.setsModuleExports&&!n.usesES6ImportExport){e.file.path.node.sourceType="script";var q=_core.types.expressionStatement(_core.types.callExpression(_core.types.identifier("require"),[_core.types.stringLiteral(p)]));d.unshiftContainer("body",q)}else{(0,_helperModuleImports.addSideEffect)(d,p,{importedInterop:"uncompiled"})}}},exit:function exit(a,b){if(b.skip){return}a.traverse((0,_finalCleanup["default"])(_core.types));(0,_traverse["default"])(a.hub.file.ast,_catchErrors["default"],a.hub.file.scope)}}},manipulateOptions:function manipulateOptions(a,b){b.plugins.push("const-enum","jsx")}}});function anyTypescript(a,b){var c={},d=b.version.split(/[-\.]/),e=_slicedToArray(d,1),f=e[0];if(7<=f){a.traverse({"TSType|TSQualifiedName|TSTypeElement|TSAsExpression|TSDeclareFunction|TSDeclareMethod|TSEnumDeclaration|TSEnumMember|TSExportAssignment|TSExternalModuleReference|TSImportEqualsDeclaration|TSInterfaceBody|TSInterfaceDeclaration|TSModuleBlock|TSModuleDeclaration|TSNamespaceExportDeclaration|TSNonNullExpression|TSParameterProperty|TSTypeAliasDeclaration|TSTypeAnnotation|TSTypeAssertion|TSTypeParameter|TSTypeParameterDeclaration|TypeParameterInstantiation":{enter:function enter(a,b){b.present=!0;a.stop()}}},c);if(c.present){return!0}}return!1}

@@ -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"),wrapWithTryCatch=(0,_template["default"])("\n try {\n FUNCTION_BODY\n } catch(ERROR_IDENTIFIER) {\n CODESEE_CALL;\n throw ERROR_IDENTIFIER;\n }\n"),_default={Function:function Function(a){var b=a.get("body.body"),c=b.findIndex(_utils.isStackFrameEnterStatement);if(-1===c){return}var d=b[c].node.declarations[0].id,e=t.identifier("e"),f=wrapWithTryCatch({FUNCTION_BODY:a.node.body.body,ERROR_IDENTIFIER:e,CODESEE_CALL:(0,_utils.codeSeeCall)(t,"error",[e,d])});a.node.body.body=[f];a.resync()}};exports["default"]=_default;
"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"),wrapWithTryCatch=(0,_template["default"])("\n try {\n FUNCTION_BODY\n } catch(ERROR_IDENTIFIER) {\n CODESEE_CALL;\n throw ERROR_IDENTIFIER;\n }\n"),_default={Function:function Function(a){if(a.node.wrappedInTryCatch){return}else{a.node.wrappedInTryCatch=!0}var b=a.get("body.body"),c=b.findIndex(_utils.isStackFrameEnterStatement);if(-1===c){return}var d=b[c];b.splice(c,1);var e=d.node.declarations[0].id,f=t.identifier("e"),g=wrapWithTryCatch({FUNCTION_BODY:b.map(function(a){return a.node}),ERROR_IDENTIFIER:f,CODESEE_CALL:(0,_utils.codeSeeCall)(t,"error",[f,e])});a.node.body.body=[d.node,g];a.resync()}};exports["default"]=_default;

@@ -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){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===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"]=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 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){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){b.statements[0].possibleMutations+=1;c="funcArg"}d(a,c)},f=function(c,d){if(!c.node.loc){return}var e=(0,_utils.findStackFrameIdIdentifier)(c);if(e===void 0){return}var f=c.node.callee,g=[];if(a.isMemberExpression(f)&&c.isCallExpression()&&!a.isSuper(f.object)){d="callProp";var i=c.get("callee"),j=i.get("property"),k;if(!i.node.computed&&j.isIdentifier()){k=a.stringLiteral(j.node.name)}else{k=j.node}var m=i.get("object");g.push(m.node);g.push(k)}else if(a.isMemberExpression(f)&&c.isCallExpression()&&a.isSuper(f.object)){var n=a.callExpression(a.memberExpression(f,a.identifier("bind")),[a.thisExpression()]);g.push(n)}else{g.push(f)}g.push(a.arrayExpression(c.node.arguments));g.push(e);g.push(a.stringLiteral((0,_utils.getLocString)(c.node.loc)));var l=(0,_utils.codeSeeCall)(a,d,g);l.loc=c.node.loc;c.node.tracked=!0;f.tracked=!0;if(b.shouldTrack(_constants.codeSeeInlineTracking)){var o=c.skipKeys;c.skipKey("callee");(0,_utils.traverseWithSkipKeys)(c,h,{});c.skipKeys=o;c.replaceWith(l)}},g=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]}}},h={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=_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()){f(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)}},"MemberExpression|OptionalMemberExpression":{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")},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){f(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),h=(0,_utils.findStackFrameIdIdentifier)(c);if(void 0===h){return}d(c.get("right"),"loopIterable",{force:!0,additionalParams:[e,f]});var i=c.node.right.loc;g(c,i);var j=(0,_utils.codeSeeCall)(a,"loopEnd",[h,e]);if(b.shouldTrack(_constants.codeSeeInlineTracking)){c.insertAfter(a.expressionStatement(j))}}},"ForStatement|WhileStatement|DoWhileStatement":{exit:function exit(c){var e,f,h,i,j,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===(h=c.node.update)||void 0===h?void 0:null===(i=h.loc)||void 0===i?void 0:i.start)||c.node.loc.start,end:(null===(j=c.node.update)||void 0===j?void 0:null===(k=j.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};g(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 h}
"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")},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}
{
"name": "@codesee/babel-plugin-instrument",
"version": "0.6.2",
"version": "0.7.0",
"description": "Instruments javascript code to report internal execution and state for use with CodeSee Visualizations.",

@@ -28,6 +28,7 @@ "type": "commonjs",

"babel-plugin-lodash": "^3.3.4",
"babel-plugin-transform-class-properties": "6.24.1",
"babel-preset-minify": "^0.5.1",
"babel-preset-react-app": "9.1.2",
"babel-plugin-transform-class-properties": "6.24.1",
"jest": "^24.9.0"
"jest": "^24.9.0",
"next": "^10.0.5"
},

@@ -34,0 +35,0 @@ "scripts": {

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