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.0 to 0.6.1

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){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"));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}

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

"use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.getStackFrameIdIdentifier=exports.findStackFrameIdIdentifier=exports.hasCodeSeeTracking=exports.isFuncInputsStatement=exports.isCodeSeeCallExpr=exports.isStackFrameEnterStatement=exports.codeSeeCall=void 0;var _constants=require("../constants"),_utils=require("./utils"),t=require("@babel/types"),codeSeeCall=function(a,b,c){var d=a.callExpression(a.memberExpression(a.identifier("CodeSee"),a.identifier(b)),c);d.codesee=!0;return d};exports.codeSeeCall=codeSeeCall;var isStackFrameEnterStatement=function(a){if(a.isVariableDeclaration()&&a.get("declarations")[0].get("init").isCallExpression()&&a.get("declarations")[0].get("init").get("callee").isMemberExpression()&&"CodeSee"===a.node.declarations[0].init.callee.object.name&&a.node.declarations[0].init.callee.property.name===_constants.codeSeeStackframe){return!0}return!1};exports.isStackFrameEnterStatement=isStackFrameEnterStatement;var isCodeSeeCallExpr=function(a){if(a.isCallExpression()&&a.get("callee").isMemberExpression()&&"CodeSee"===a.node.callee.object.name){return!0}return!1};exports.isCodeSeeCallExpr=isCodeSeeCallExpr;var isFuncInputsStatement=function(a){if(a.isExpressionStatement()&&isCodeSeeCallExpr(a.get("expression"))&&a.node.expression.callee.property.name===_constants.codeSeeFuncParams){return!0}return!1};exports.isFuncInputsStatement=isFuncInputsStatement;var hasCodeSeeTracking=function(a){var b={found:!1};a.traverse({CallExpression:function CallExpression(a,b){if(isCodeSeeCallExpr(a)||a.get("callee").isSuper()){b.found=!0;a.stop()}}},b);return b.found};exports.hasCodeSeeTracking=hasCodeSeeTracking;var findStackFrameIdIdentifier=function(a){var b=[a.parentKey],c=a.parentPath,d=c.find(function(a){b.unshift(a.parentKey);return a.isFunction()||a.isProgram()||a.isClassProperty({static:!1})});if(d.isClassProperty()){var e=d.parentPath,f=e.get("body").find(function(a){return a.isClassMethod({kind:"constructor"})});if(!f){console.error("CodeSee Internal Error: Found class without constructor, even after constructor generation?");return t.identifier("undefined")}else{var g=getStackFrameIdIdentifier(f),h=g,i=t.parenthesizedExpression(t.conditionalExpression(t.binaryExpression("!==",t.unaryExpression("typeof",h,!0),t.stringLiteral("undefined")),h,t.identifier("undefined")));return i}}if(d.isClassMethod()||d.isObjectMethod()){if("key"===b[1]){return findStackFrameIdIdentifier(d)}}return getStackFrameIdIdentifier(d)};exports.findStackFrameIdIdentifier=findStackFrameIdIdentifier;var getStackFrameIdIdentifier=function(a){if(a.node.stackFrameId){return a.node.stackFrameId}var b=(0,_utils.generateTempIdentifier)(a.scope,"stackFrameId");a.node.stackFrameId=b;return b};exports.getStackFrameIdIdentifier=getStackFrameIdIdentifier;
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.getStackFrameIdIdentifier=exports.findStackFrameIdIdentifier=exports.hasCodeSeeTracking=exports.isFuncInputsStatement=exports.isCodeSeeCallExpr=exports.isStackFrameEnterStatement=exports.codeSeeCall=void 0;var _constants=require("../constants"),_utils=require("./utils"),t=require("@babel/types"),codeSeeCall=function(a,b,c){var d=a.callExpression(a.memberExpression(a.identifier("CodeSee"),a.identifier(b)),c);d.codesee=!0;return d};exports.codeSeeCall=codeSeeCall;var isStackFrameEnterStatement=function(a){if(a.isVariableDeclaration()&&a.get("declarations")[0].get("init").isCallExpression()&&a.get("declarations")[0].get("init").get("callee").isMemberExpression()&&"CodeSee"===a.node.declarations[0].init.callee.object.name&&a.node.declarations[0].init.callee.property.name===_constants.codeSeeStackframe){return!0}return!1};exports.isStackFrameEnterStatement=isStackFrameEnterStatement;var isCodeSeeCallExpr=function(a){if(a.isCallExpression()&&a.get("callee").isMemberExpression()&&"CodeSee"===a.node.callee.object.name){return!0}return!1};exports.isCodeSeeCallExpr=isCodeSeeCallExpr;var isFuncInputsStatement=function(a){if(a.isExpressionStatement()&&isCodeSeeCallExpr(a.get("expression"))&&a.node.expression.callee.property.name===_constants.codeSeeFuncParams){return!0}return!1};exports.isFuncInputsStatement=isFuncInputsStatement;var hasCodeSeeTracking=function(a){var b={found:!1};a.traverse({CallExpression:function CallExpression(a,b){if(isCodeSeeCallExpr(a)||a.get("callee").isSuper()){b.found=!0;a.stop()}}},b);return b.found};exports.hasCodeSeeTracking=hasCodeSeeTracking;var findStackFrameIdIdentifier=function(a){var b=[a.parentKey],c=a.parentPath,d=c.find(function(a){b.unshift(a.parentKey);return a.isFunction()||a.isProgram()||a.isClassProperty({static:!1})});if(d.isClassProperty()){var e=d.parentPath,f=e.get("body").find(function(a){return a.isClassMethod({kind:"constructor"})});if(!f){console.error("CodeSee Internal Error: Found class without constructor, even after constructor generation?");return t.identifier("undefined")}else{var i=getStackFrameIdIdentifier(f);if(i===void 0){return}var g=i,h=t.parenthesizedExpression(t.conditionalExpression(t.binaryExpression("!==",t.unaryExpression("typeof",g,!0),t.stringLiteral("undefined")),g,t.identifier("undefined")));return h}}if(d.isClassMethod()||d.isObjectMethod()){if("key"===b[1]){return findStackFrameIdIdentifier(d)}}return getStackFrameIdIdentifier(d)};exports.findStackFrameIdIdentifier=findStackFrameIdIdentifier;var getStackFrameIdIdentifier=function(a){if(a.node.stackFrameId){return a.node.stackFrameId}if(a.node.loc===void 0){return}var b=(0,_utils.generateTempIdentifier)(a.scope,"stackFrameId");a.node.stackFrameId=b;return b};exports.getStackFrameIdIdentifier=getStackFrameIdIdentifier;

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

"use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.getDefaultState=getDefaultState;exports.getLines=getLines;exports.getLocString=getLocString;exports.generateTempIdentifier=generateTempIdentifier;exports.nodeIsIgnored=exports.traverseWithSkipKeys=void 0;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}var _require=require("@babel/traverse"),traverse=_require["default"],traverseWithSkipKeys=function(a,b,c){traverse.explode(b);traverse.node(a.node,b,a.scope,c,a,a.skipKeys)};exports.traverseWithSkipKeys=traverseWithSkipKeys;var nodeIsIgnored=function(a){return a.leadingComments&&a.leadingComments.some(function(a){return"@codesee-ignore"===a.value.toLowerCase().trim()})};exports.nodeIsIgnored=nodeIsIgnored;function getDefaultState(a){return _objectSpread({accesses:[],declares:[],writes:[]},a)}function getLines(a){return{loc:getLocString(a)}}function getLocString(a){return"".concat(a.start.line,":").concat(a.start.column,"-").concat(a.end.line,":").concat(a.end.column)}function generateTempIdentifier(a,b){var c=a.generateUidIdentifier(b);c.codeseeId=!0;return c}
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.getDefaultState=getDefaultState;exports.getLines=getLines;exports.getLocString=getLocString;exports.generateTempIdentifier=generateTempIdentifier;exports.traverseWithSkipKeys=void 0;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}var _require=require("@babel/traverse"),traverse=_require["default"],traverseWithSkipKeys=function(a,b,c){traverse.explode(b);traverse.node(a.node,b,a.scope,c,a,a.skipKeys)};exports.traverseWithSkipKeys=traverseWithSkipKeys;function getDefaultState(a){return _objectSpread({accesses:[],declares:[],writes:[]},a)}function getLines(a){return{loc:getLocString(a)}}function getLocString(a){return"".concat(a.start.line,":").concat(a.start.column,"-").concat(a.end.line,":").concat(a.end.column)}function generateTempIdentifier(a,b){var c=a.generateUidIdentifier(b);c.codeseeId=!0;return c}

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

"use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.trackerVisitor=trackerVisitor;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((0,_utils.nodeIsIgnored)(d.node))return d.skip();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){if((0,_utils.nodeIsIgnored)(a.node))return a.skip();a.skipKey("params");var b=(0,_utils.getDefaultState)();(0,_utils.traverseWithSkipKeys)(a,f,b);a.skip()}}}),{CallExpression:{enter:function enter(b){if((0,_utils.nodeIsIgnored)(b.node))return b.skip();var c=b.node.callee;if(a.isIdentifier(c)){b.skipKey("callee")}}}}),{AssignmentExpression:{enter:function enter(b,c){if((0,_utils.nodeIsIgnored)(b.node))return b.skip();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(b){b.skipKey("init");if(b.node.init){var c=b.get("init"),d;if(c.isVariableDeclaration()){d=c.node}else{d=a.expressionStatement(c.node)}b.insertBefore(d)[0];b.get("init").remove()}}}),{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}
"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){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(b){b.skipKey("init");if(b.node.init){var c=b.get("init"),d;if(c.isVariableDeclaration()){d=c.node}else{d=a.expressionStatement(c.node)}b.insertBefore(d)[0];b.get("init").remove()}}}),{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 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 _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.codeSeeCall)(a,_constants.codeSeeBefore,[c,(0,_utils.findStackFrameIdIdentifier)(b)]);b.insertBefore(a.expressionStatement(e))}}function insertAfterTracker(a,b,c,d){if(c.properties.length&&d.shouldTrack(_constants.codeSeeAfter)){var e=(0,_utils.codeSeeCall)(a,_constants.codeSeeAfter,[c,(0,_utils.findStackFrameIdIdentifier)(b)]);b.insertAfter(a.expressionStatement(e))}}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),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={start:b.node.loc.start,end:b.node.body.loc.start},i=(0,_utils.codeSeeCall)(a,_constants.codeSeeCatchParam,[a.arrayExpression(f),(0,_utils.findStackFrameIdIdentifier)(b),a.stringLiteral((0,_utils.getLocString)(h)),a.stringLiteral(d)]),j=a.expressionStatement(i),k=g[0];if(e.shouldTrack(_constants.codeSeeCatchParam)){if(k){if(a.isVariableDeclaration(k)&&a.isCallExpression(k.declarations[0].init)&&k.declarations[0].init.callee.name===codeSeeStackframeCaught){k.insertAfter(j)}else{k.insertBefore(j)}}else{b.node.body.body=[j]}}}function insertLoopVariableTracking(a,b,c,d,e){var f=objectValuesFromTrackers(a,c,d,e),g=(0,_utils.codeSeeCall)(a,_constants.codeSeeLoopVars,[a.arrayExpression(f),(0,_utils.findStackFrameIdIdentifier)(b)]),h=a.expressionStatement(g),i=b.get("body").get("body"),j=i[0];if(e.shouldTrack(_constants.codeSeeLoopVars)){if(j){j.insertBefore(h)}else{b.node.body.body=[h]}}}function trackersFromPatternOrIdentifier(a,b,c,d){var e=(0,_patterns.leftNodesFromPattern)(c).flatMap(function(c){if(c.tracked){return[]}if(a.isIdentifier(c)){var e=c.name,f=(0,_uid.determineIdentifierUID)(e,b);return _objectSpread({name:e,uid:f,value:e},c.loc&&(0,_utils.getLines)(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.map(function(a){var b=(0,_uid.generateIdentifierUID)(a);return _objectSpread({name:a.name,uid:b,value:a.name},a.loc&&(0,_utils.getLines)(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){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"]=ensureBlockStatementsVisitor;var _utils=require("../utils");function ensureBlockStatementsVisitor(a){return{IfStatement:function IfStatement(b){if((0,_utils.nodeIsIgnored)(b.node))return b.skip();ensureBlockStatement(a,b,"consequent");if(b.node.alternate&&!a.isIfStatement(b.node.alternate)){ensureBlockStatement(a,b,"alternate")}},ArrowFunctionExpression:function ArrowFunctionExpression(b){if((0,_utils.nodeIsIgnored)(b.node))return b.skip();if(!a.isBlockStatement(b.node.body)){var c=a.returnStatement(b.node.body),d=b.node.body.loc;c.loc={start:d.start,end:d.end};b.get("body").replaceWith(a.blockStatement([c]))}},ForStatement:function ForStatement(b){if((0,_utils.nodeIsIgnored)(b.node))return b.skip();ensureBlockStatement(a,b,"body")},ForInStatement:function ForInStatement(b){if((0,_utils.nodeIsIgnored)(b.node))return b.skip();ensureBlockStatement(a,b,"body")},ForOfStatement:function ForOfStatement(b){if((0,_utils.nodeIsIgnored)(b.node))return b.skip();ensureBlockStatement(a,b,"body")},WhileStatement:function WhileStatement(b){if((0,_utils.nodeIsIgnored)(b.node))return b.skip();ensureBlockStatement(a,b,"body")},DoWhileStatement:function DoWhileStatement(b){if((0,_utils.nodeIsIgnored)(b.node))return b.skip();ensureBlockStatement(a,b,"body")}}}function ensureBlockStatement(a,b,c){var d=b.node[c];if(!a.isBlockStatement(d)){var e=a.isEmptyStatement(d)?[]:[d];b.get(c).replaceWith(a.blockStatement(e))}}
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports["default"]=ensureBlockStatementsVisitor;function ensureBlockStatementsVisitor(a){return{IfStatement:function IfStatement(b){ensureBlockStatement(a,b,"consequent");if(b.node.alternate&&!a.isIfStatement(b.node.alternate)){ensureBlockStatement(a,b,"alternate")}},ArrowFunctionExpression:function ArrowFunctionExpression(b){if(!a.isBlockStatement(b.node.body)){var c=a.returnStatement(b.node.body),d=b.node.body.loc;c.loc={start:d.start,end:d.end};b.get("body").replaceWith(a.blockStatement([c]))}},ForStatement:function ForStatement(b){ensureBlockStatement(a,b,"body")},ForInStatement:function ForInStatement(b){ensureBlockStatement(a,b,"body")},ForOfStatement:function ForOfStatement(b){ensureBlockStatement(a,b,"body")},WhileStatement:function WhileStatement(b){ensureBlockStatement(a,b,"body")},DoWhileStatement:function DoWhileStatement(b){ensureBlockStatement(a,b,"body")}}}function ensureBlockStatement(a,b,c){var d=b.node[c];if(!a.isBlockStatement(d)){var e=a.isEmptyStatement(d)?[]:[d];b.get(c).replaceWith(a.blockStatement(e))}}

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

"use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports["default"]=finalCleanupVisitor;var _utils=require("../utils");function finalCleanupVisitor(a){return{"FunctionDeclaration|ArrowFunctionExpression|FunctionExpression|ClassMethod|ObjectMethod":{enter:function enter(a){var b=a.get("body.body"),c=b.findIndex(_utils.isStackFrameEnterStatement);if(-1===c){return}if(0!==c){var d=b[c],e=d.node;d.remove();a.get("body").unshiftContainer("body",e)}b=a.get("body.body");var f=b.findIndex(_utils.isFuncInputsStatement);if(-1===f){return}if(1!==f){var g=b.findIndex(function(a,b){if(0===b||b===f){return!1}return(0,_utils.hasCodeSeeTracking)(a)}),h=b[f],i=h.node;h.remove();if(-1===g){console.error("CodeSee Warning: During final cleanup, found a function with StackFrameEnter but no StackFrameExit",a.node);var j=b[b.length-1];j.insertAfter(i)}else{var k=b[g];k.insertBefore(i)}}}},CallExpression:function CallExpression(b){if(b.node.codesee||b.node.tracked)return;if(b.get("callee").isSuper()){var f=b.node;f.tracked=!0;var c=a.stringLiteral((0,_utils.getLocString)(b.node.loc)),d=(0,_utils.findStackFrameIdIdentifier)(b),e=a.sequenceExpression([(0,_utils.codeSeeCall)(a,"aboutToCallSuper",[d,c]),(0,_utils.codeSeeCall)(a,"callSuper",[f,d,c])]);e.codesee=!0;b.replaceWith(e)}}}}
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports["default"]=finalCleanupVisitor;var _utils=require("../utils");function finalCleanupVisitor(a){return{"FunctionDeclaration|ArrowFunctionExpression|FunctionExpression|ClassMethod|ObjectMethod":{enter:function enter(a){var b=a.get("body.body"),c=b.findIndex(_utils.isStackFrameEnterStatement);if(-1===c){return}if(0!==c){var d=b[c],e=d.node;d.remove();a.get("body").unshiftContainer("body",e)}b=a.get("body.body");var f=b.findIndex(_utils.isFuncInputsStatement);if(-1===f){return}if(1!==f){var g=b.findIndex(function(a,b){if(0===b||b===f){return!1}return(0,_utils.hasCodeSeeTracking)(a)}),h=b[f],i=h.node;h.remove();if(-1===g){console.error("CodeSee Warning: During final cleanup, found a function with StackFrameEnter but no StackFrameExit",a.node);var j=b[b.length-1];j.insertAfter(i)}else{var k=b[g];k.insertBefore(i)}}}},CallExpression:function CallExpression(b){if(b.node.codesee||b.node.tracked)return;if(b.get("callee").isSuper()){var e=b.node;e.tracked=!0;var c=a.stringLiteral((0,_utils.getLocString)(b.node.loc)),d=(0,_utils.findStackFrameIdIdentifier)(b);if(d===void 0){return}var f=a.sequenceExpression([(0,_utils.codeSeeCall)(a,"aboutToCallSuper",[d,c]),(0,_utils.codeSeeCall)(a,"callSuper",[e,d,c])]);f.codesee=!0;b.replaceWith(f)}}}}

@@ -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){console.error("attempt to wrap node with no loc. node type:",b.node.type,c,b.node.tracked);if(b.isCallExpression()){console.error(b.node.callee.name)}else if(b.isIdentifier()){console.error(b.node.name);console.error(b.parent)}return}var h=(0,_utils.findStackFrameIdIdentifier)(b),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=c.node.callee,f=[];if(a.isMemberExpression(e)&&c.isCallExpression()&&!a.isSuper(e.object)){d="callProp";var g=c.get("callee"),i=g.get("property"),j;if(!g.node.computed&&i.isIdentifier()){j=a.stringLiteral(i.node.name)}else{j=i.node}var l=g.get("object");f.push(l.node);f.push(j)}else if(a.isMemberExpression(e)&&c.isCallExpression()&&a.isSuper(e.object)){var m=a.callExpression(a.memberExpression(e,a.identifier("bind")),[a.thisExpression()]);f.push(m)}else{f.push(e)}f.push(a.arrayExpression(c.node.arguments));f.push((0,_utils.findStackFrameIdIdentifier)(c));f.push(a.stringLiteral((0,_utils.getLocString)(c.node.loc)));var k=(0,_utils.codeSeeCall)(a,d,f);k.loc=c.node.loc;c.node.tracked=!0;e.tracked=!0;if(b.shouldTrack(_constants.codeSeeInlineTracking)){var n=c.skipKeys;c.skipKey("callee");(0,_utils.traverseWithSkipKeys)(c,h,{});c.skipKeys=n;c.replaceWith(k)}},g=function(c,d){var e=(0,_utils.findStackFrameIdIdentifier)(c),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((0,_utils.nodeIsIgnored)(a.node)){a.skip();return}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();return}if((0,_utils.nodeIsIgnored)(a.node)){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),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){if((0,_utils.nodeIsIgnored)(a.node)){a.skip();return}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);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),a.stringLiteral((0,_utils.getLocString)(c.node.loc)),a.stringLiteral(c.node.type)],o=(0,_utils.codeSeeCall)(a,"loopStart",n),p=(0,_utils.codeSeeCall)(a,"loopEnd",[n[0],n[1]]);if(b.shouldTrack(_constants.codeSeeInlineTracking)){c.insertBefore(a.expressionStatement(o));c.insertAfter(a.expressionStatement(p))}var q={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,q)}},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),a.stringLiteral((0,_utils.getLocString)(c.node.loc))],e=(0,_utils.codeSeeCall)(a,"loopBodyEnd",d);if(b.shouldTrack(_constants.codeSeeInlineTracking)){c.insertBefore(a.expressionStatement(e))}}},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 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}

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

"use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports["default"]=jsxVisitor;var _utils=require("../utils");function jsxVisitor(a){return{JSXElement:function JSXElement(b){if((0,_utils.nodeIsIgnored)(b.node))return b.skip();var c=b;if(!c.isStatement()){c=c.getStatementParent()}b.get("openingElement").get("attributes").forEach(function(b){var d=b.get("value");if(!a.isJSXExpressionContainer(d.node)){return}(0,_utils.liftAndReplace)(a,d.get("expression"),"attr",{statementPath:c,noOpIfIdentifier:!0})});b.get("children").forEach(function(b){if(a.isJSXText(b.node)){return}if(a.isJSXElement(b.node)){(0,_utils.liftAndReplace)(a,b,b.node.openingElement.name.name,{statementPath:c,noOpIfIdentifier:!0,postProcessReplacement:function postProcessReplacement(b){return a.jSXExpressionContainer(b)}});return}if(a.isJSXExpressionContainer(b.node)){(0,_utils.liftAndReplace)(a,b.get("expression"),"expr",{statementPath:c,noOpIfIdentifier:!0})}})}}}
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports["default"]=jsxVisitor;var _utils=require("../utils");function jsxVisitor(a){return{JSXElement:function JSXElement(b){var c=b;if(!c.isStatement()){c=c.getStatementParent()}b.get("openingElement").get("attributes").forEach(function(b){var d=b.get("value");if(!a.isJSXExpressionContainer(d.node)){return}(0,_utils.liftAndReplace)(a,d.get("expression"),"attr",{statementPath:c,noOpIfIdentifier:!0})});b.get("children").forEach(function(b){if(a.isJSXText(b.node)){return}if(a.isJSXElement(b.node)){(0,_utils.liftAndReplace)(a,b,b.node.openingElement.name.name,{statementPath:c,noOpIfIdentifier:!0,postProcessReplacement:function postProcessReplacement(b){return a.jSXExpressionContainer(b)}});return}if(a.isJSXExpressionContainer(b.node)){(0,_utils.liftAndReplace)(a,b.get("expression"),"expr",{statementPath:c,noOpIfIdentifier:!0})}})}}}

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

"use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports["default"]=memberExpressionVisitor;var _utils=require("../utils"),_constants=require("../constants"),_uid=require("../uid");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 memberExpressionVisitor(a){var b={MemberExpression:function MemberExpression(c,d){if((0,_utils.nodeIsIgnored)(c.node))return c.skip();var e,f;if(d.memberExpressionNodes){e=d;f=!1}else{e=(0,_utils.getDefaultState)();e.memberExpressionNodes=[];f=!0}if("callee"!==c.key){if(c.node.computed){if(a.isIdentifier(c.node.property)){e.memberExpressionNodes.unshift(c.node.property)}else if(a.isNumericLiteral(c.node.property)){e.memberExpressionNodes.unshift(c.node.property)}else if(a.isStringLiteral(c.node.property)){e.memberExpressionNodes.unshift(c.node.property)}else{throw["CodeSee Error: Computed MemberExpression with something fancy going on, this should have been removed by an earlier transformation stage! "+c.hub.file.opts.filename+" : "+JSON.stringify(c.node.loc)+" | "+JSON.stringify(c.node)]}}else{e.memberExpressionNodes.unshift(a.stringLiteral(c.node.property.name))}}c.skipKey("property");if(a.isIdentifier(c.node.object)){e.memberExpressionNodes.unshift(a.stringLiteral(c.node.object.name));c.skipKey("object")}else if(a.isThisExpression(c.node.object)){e.memberExpressionNodes.unshift(a.stringLiteral("this"));c.skipKey("object")}else if(a.isMemberExpression(c.node.object)){(0,_utils.traverseWithSkipKeys)(c,b,e);c.skipKey("object")}else if(a.isCallExpression(c.node.object)){e.memberExpressionNodes=[]}if(f){if(0===e.memberExpressionNodes.length){return}var j=e.memberExpressionNodes[0].value;if(!_constants.reservedIdentifiers.includes(j)&&j.length){var g=(0,_uid.determineIdentifierUID)(j,c),h=j,i;if(1===e.memberExpressionNodes.length){i=j}else{i=e.memberExpressionNodes}d.accesses.push(_objectSpread({name:i,uid:g,value:h},c.node.loc&&(0,_utils.getLines)(c.node.loc)))}delete e.memberExpressionNodes}}};return b}
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports["default"]=memberExpressionVisitor;var _utils=require("../utils"),_constants=require("../constants"),_uid=require("../uid");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 memberExpressionVisitor(a){var b={MemberExpression:function MemberExpression(c,d){var e,f;if(d.memberExpressionNodes){e=d;f=!1}else{e=(0,_utils.getDefaultState)();e.memberExpressionNodes=[];f=!0}if("callee"!==c.key){if(c.node.computed){if(a.isIdentifier(c.node.property)){e.memberExpressionNodes.unshift(c.node.property)}else if(a.isNumericLiteral(c.node.property)){e.memberExpressionNodes.unshift(c.node.property)}else if(a.isStringLiteral(c.node.property)){e.memberExpressionNodes.unshift(c.node.property)}else{throw["CodeSee Error: Computed MemberExpression with something fancy going on, this should have been removed by an earlier transformation stage! "+c.hub.file.opts.filename+" : "+JSON.stringify(c.node.loc)+" | "+JSON.stringify(c.node)]}}else{e.memberExpressionNodes.unshift(a.stringLiteral(c.node.property.name))}}c.skipKey("property");if(a.isIdentifier(c.node.object)){e.memberExpressionNodes.unshift(a.stringLiteral(c.node.object.name));c.skipKey("object")}else if(a.isThisExpression(c.node.object)){e.memberExpressionNodes.unshift(a.stringLiteral("this"));c.skipKey("object")}else if(a.isMemberExpression(c.node.object)){(0,_utils.traverseWithSkipKeys)(c,b,e);c.skipKey("object")}else if(a.isCallExpression(c.node.object)){e.memberExpressionNodes=[]}if(f){if(0===e.memberExpressionNodes.length){return}var j=e.memberExpressionNodes[0].value;if(!_constants.reservedIdentifiers.includes(j)&&j.length){var g=(0,_uid.determineIdentifierUID)(j,c),h=j,i;if(1===e.memberExpressionNodes.length){i=j}else{i=e.memberExpressionNodes}d.accesses.push(_objectSpread({name:i,uid:g,value:h},c.node.loc&&(0,_utils.getLines)(c.node.loc)))}delete e.memberExpressionNodes}}};return b}

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

"use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.traceStackFrameVisitor=exports.traceLineVisitor=exports.annotateFunctionNameVisitor=void 0;var _utils=require("../utils"),_constants=require("../constants");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 _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 _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}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}var anonymousFunctionLabel="<anonymous function>",traceLineVisitor=function(a,b,c){var d=function(a,c,d){if(d.shouldTrack(_constants.codeSeeLineTrace)&&c.node.loc){b=b||"root";var e=c.node.loc.start,f=c.node.loc.end;if(c.isIfStatement()){f=c.node.test.loc.end}else if(c.isTryStatement()){f=c.node.block.loc.start}else if(c.isSwitchStatement()){f=c.node.discriminant.loc.end}var g=(0,_utils.getLocString)({start:e,end:f}),h=(0,_utils.findStackFrameIdIdentifier)(c),i=(0,_utils.codeSeeCall)(a,_constants.codeSeeLineTrace,[a.stringLiteral(b),(0,_utils.objToAST)(a,{loc:g,uid:h})]);c.insertBefore(a.expressionStatement(i))}},e=function(a){return-1===["ClassDeclaration","BlockStatement","FunctionDeclaration"].indexOf(a)};return{Statement:function Statement(b){if(e(b.node.type)){d(a,b,c)}}}};exports.traceLineVisitor=traceLineVisitor;var traceStackFrameVisitor=function(a,b,c,d){b=b||"root";var e={ReturnStatement:function ReturnStatement(a,b){var c=b.stackframeExitStatement;a.insertBefore(c)},YieldExpression:function YieldExpression(b,c){var d=c.stackframeExitStatement,e=c.stackFrameIdIdentifier,f=a.expressionStatement(a.assignmentExpression("=",e,(0,_utils.codeSeeCall)(a,"backFromYield",[e,a.stringLiteral((0,_utils.getLocString)(b.node.loc))])));if(b.parentPath.isExpressionStatement()){b.parentPath.insertBefore(d);b.parentPath.insertAfter(f)}else if(!0!==b.node.wrappedForStackFrameTracing){b.node.wrappedForStackFrameTracing=!0;var g=(0,_utils.liftAndReplace)(a,b,"yieldValue");g.insertBefore(d);g.insertAfter(f)}},CatchClause:function CatchClause(b,c){var d=c.stackFrameIdIdentifier,e={start:b.node.loc.start,end:b.node.body.loc.start},f=a.expressionStatement((0,_utils.codeSeeCall)(a,_constants.codeSeeStackframeCaught,[d,a.stringLiteral((0,_utils.getLines)(e).loc)]));(0,_utils.insertAsFirstStatementOfBlock)(b.get("body"),f)},Function:function Function(a){a.skip()}},f=function(a,d){var f=d.node.loc;if(d.isClassMethod({kind:"constructor"})){var q=d.find(function(a){return a.isClass()});f=q.node.loc}var g=f!==void 0?(0,_utils.getLocString)(f):"",h=d.node.functionName||anonymousFunctionLabel,i={functionName:h,filename:b,loc:g},j=(0,_utils.objToAST)(a,i),k=(0,_utils.getStackFrameIdIdentifier)(d);if(!c.shouldTrack(_constants.codeSeeStackframe)){return}var l=a.isProgram(d)?d.get("body"):d.get("body").get("body"),m=l[0],n=l[l.length-1],o=a.variableDeclaration("let",[a.variableDeclarator(k,(0,_utils.codeSeeCall)(a,_constants.codeSeeStackframe,[j]))]),p=a.expressionStatement((0,_utils.codeSeeCall)(a,_constants.codeSeeStackframeExit,[k]));if(m){m.insertBefore(o);if(!a.isReturnStatement(n)){n.insertAfter(p)}d.traverse(e,{stackframeEnterStatement:o,stackframeExitStatement:p,stackFrameIdIdentifier:k})}else{d.node.body.body=[o,p]}},g=["FunctionDeclaration","FunctionExpression","ArrowFunctionExpression","ClassMethod","ObjectMethod","Program"],h=d.split(/[\.-]/),i=_slicedToArray(h,5),j=i[0],k=i[1],l=i[2],m=i[3],n=i[4];if(7<j||7==j&&2<=k){g.push("ClassPrivateMethod")}var o=_defineProperty({},g.join("|"),function(b){if((0,_utils.nodeIsIgnored)(b.node)){b.skip();return}f(a,b)});return o};exports.traceStackFrameVisitor=traceStackFrameVisitor;var annotateFunctionNameVisitor=function(a,b,c){var f=function(a,b){a.node.functionName=b},g=function(b){var c=b.parentPath.node;if(a.isVariableDeclarator(c)&&a.isIdentifier(c.id)){return c.id.name}else if(a.isAssignmentExpression(c)){if(a.isIdentifier(c.left)){return c.left.name}else if(a.isMemberExpression(c.left)){var e=d(c.left);if(e){return e}}}return null};function d(b){var c=[];while(a.isMemberExpression(b)){if(!a.isIdentifier(b.property)){return!1}c.unshift(b.property.name);b=b.object}if(!a.isIdentifier(b)){return!1}c.unshift(b.name);return c.join(".")}function e(b,c){if(a.isClassBody(b.parentPath)&&a.isClassDeclaration(b.parentPath.parentPath)&&a.isIdentifier(b.parentPath.parentPath.node.id)){return b.parentPath.parentPath.node.id.name+"."+c}return c}var h={FunctionDeclaration:function FunctionDeclaration(b){if((0,_utils.nodeIsIgnored)(b.node)){b.skip();return}var c=anonymousFunctionLabel;if(a.isIdentifier(b.node.id)){c=b.node.id.name}else if(a.isExportDefaultDeclaration(b.parentPath)){c="export default function"}f(b,c)},"FunctionExpression|ArrowFunctionExpression":function FunctionExpressionArrowFunctionExpression(b){if((0,_utils.nodeIsIgnored)(b.node)){b.skip();return}var c=anonymousFunctionLabel,d=b.parentPath,h=g(b);if(h){c=h}else if(a.isObjectProperty(d)&&a.isIdentifier(d.node.key)){c=d.node.key.name;var i=g(d.parentPath);if(i){c=i+"."+c}}else if(a.isClassProperty(d)&&a.isIdentifier(d.node.key)){c=e(d,d.node.key.name)}f(b,c)},ClassMethod:function ClassMethod(b){if((0,_utils.nodeIsIgnored)(b.node)){b.skip();return}var c=anonymousFunctionLabel;if(a.isIdentifier(b.node.id)){c=b.node.id.name}else if(a.isIdentifier(b.node.key)){c=b.node.key.name}c=e(b,c);f(b,c)},ObjectMethod:function ObjectMethod(b){if((0,_utils.nodeIsIgnored)(b.node)){b.skip();return}var c=anonymousFunctionLabel,d=!1;if(a.isIdentifier(b.node.key)){c=b.node.key.name}else if(a.isStringLiteral(b.node.key)){c=b.node.key.value}else if(a.isMemberExpression(b.node.key)&&a.isIdentifier(b.node.key.object)&&a.isIdentifier(b.node.key.property)&&"Symbol"===b.node.key.object.name){c="[Symbol."+b.node.key.property.name+"]";d=!0}var e=g(b.parentPath);if(e){if(d){c=e+c}else{c=e+"."+c}}f(b,c)},Program:function Program(a){f(a,b)}},i=c.split(/[\.-]/),j=_slicedToArray(i,5),k=j[0],l=j[1],m=j[2],n=j[3],o=j[4];if(7<k||7==k&&2<=l){h.ClassPrivateMethod=function(b){if((0,_utils.nodeIsIgnored)(b.node)){b.skip();return}var c=anonymousFunctionLabel;if(a.isPrivateName(b.node.key)&&a.isIdentifier(b.node.key.id)){c=b.node.key.id.name}else if(a.isIdentifier(b.node.key)){c=b.node.key.name}c=e(b,c);f(b,c)}}return h};exports.annotateFunctionNameVisitor=annotateFunctionNameVisitor;
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.traceStackFrameVisitor=exports.traceLineVisitor=exports.annotateFunctionNameVisitor=void 0;var _utils=require("../utils"),_constants=require("../constants");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 _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 _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}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}var anonymousFunctionLabel="<anonymous function>",traceLineVisitor=function(a,b,c){var d=function(a,c,d){if(d.shouldTrack(_constants.codeSeeLineTrace)&&c.node.loc){b=b||"root";var e=c.node.loc.start,f=c.node.loc.end;if(c.isIfStatement()){f=c.node.test.loc.end}else if(c.isTryStatement()){f=c.node.block.loc.start}else if(c.isSwitchStatement()){f=c.node.discriminant.loc.end}var g=(0,_utils.getLocString)({start:e,end:f}),h=(0,_utils.findStackFrameIdIdentifier)(c);if(h===void 0){return}var i=(0,_utils.codeSeeCall)(a,_constants.codeSeeLineTrace,[a.stringLiteral(b),(0,_utils.objToAST)(a,{loc:g,uid:h})]);c.insertBefore(a.expressionStatement(i))}},e=function(a){return-1===["ClassDeclaration","BlockStatement","FunctionDeclaration"].indexOf(a)};return{Statement:function Statement(b){if(e(b.node.type)){d(a,b,c)}}}};exports.traceLineVisitor=traceLineVisitor;var traceStackFrameVisitor=function(a,b,c,d){b=b||"root";var e={ReturnStatement:function ReturnStatement(a,b){var c=b.stackframeExitStatement;a.insertBefore(c)},YieldExpression:function YieldExpression(b,c){var d=c.stackframeExitStatement,e=c.stackFrameIdIdentifier,f=a.expressionStatement(a.assignmentExpression("=",e,(0,_utils.codeSeeCall)(a,"backFromYield",[e,a.stringLiteral((0,_utils.getLocString)(b.node.loc))])));if(b.parentPath.isExpressionStatement()){b.parentPath.insertBefore(d);b.parentPath.insertAfter(f)}else if(!0!==b.node.wrappedForStackFrameTracing){b.node.wrappedForStackFrameTracing=!0;var g=(0,_utils.liftAndReplace)(a,b,"yieldValue");g.insertBefore(d);g.insertAfter(f)}},CatchClause:function CatchClause(b,c){var d=c.stackFrameIdIdentifier,e={start:b.node.loc.start,end:b.node.body.loc.start},f=a.expressionStatement((0,_utils.codeSeeCall)(a,_constants.codeSeeStackframeCaught,[d,a.stringLiteral((0,_utils.getLines)(e).loc)]));(0,_utils.insertAsFirstStatementOfBlock)(b.get("body"),f)},Function:function Function(a){a.skip()}},f=function(a,d){var f=d.node.loc;if(f===void 0){return}if(d.isClassMethod({kind:"constructor"})){var q=d.find(function(a){return a.isClass()});f=q.node.loc}var g=f!==void 0?(0,_utils.getLocString)(f):"",h=d.node.functionName||anonymousFunctionLabel,i={functionName:h,filename:b,loc:g},j=(0,_utils.objToAST)(a,i),k=(0,_utils.getStackFrameIdIdentifier)(d);if(k===void 0){return}var l=a.isProgram(d)?d.get("body"):d.get("body").get("body"),m=l[0],n=l[l.length-1],o=a.variableDeclaration("let",[a.variableDeclarator(k,(0,_utils.codeSeeCall)(a,_constants.codeSeeStackframe,[j]))]),p=a.expressionStatement((0,_utils.codeSeeCall)(a,_constants.codeSeeStackframeExit,[k]));if(!c.shouldTrack(_constants.codeSeeStackframe)){return}if(m){m.insertBefore(o);if(!a.isReturnStatement(n)){n.insertAfter(p)}d.traverse(e,{stackframeEnterStatement:o,stackframeExitStatement:p,stackFrameIdIdentifier:k})}else{d.node.body.body=[o,p]}},g=["FunctionDeclaration","FunctionExpression","ArrowFunctionExpression","ClassMethod","ObjectMethod","Program"],h=d.split(/[\.-]/),i=_slicedToArray(h,5),j=i[0],k=i[1],l=i[2],m=i[3],n=i[4];if(7<j||7==j&&2<=k){g.push("ClassPrivateMethod")}var o=_defineProperty({},g.join("|"),function(b){f(a,b)});return o};exports.traceStackFrameVisitor=traceStackFrameVisitor;var annotateFunctionNameVisitor=function(a,b,c){var f=function(a,b){a.node.functionName=b},g=function(b){var c=b.parentPath.node;if(a.isVariableDeclarator(c)&&a.isIdentifier(c.id)){return c.id.name}else if(a.isAssignmentExpression(c)){if(a.isIdentifier(c.left)){return c.left.name}else if(a.isMemberExpression(c.left)){var e=d(c.left);if(e){return e}}}return null};function d(b){var c=[];while(a.isMemberExpression(b)){if(!a.isIdentifier(b.property)){return!1}c.unshift(b.property.name);b=b.object}if(!a.isIdentifier(b)){return!1}c.unshift(b.name);return c.join(".")}function e(b,c){if(a.isClassBody(b.parentPath)&&a.isClassDeclaration(b.parentPath.parentPath)&&a.isIdentifier(b.parentPath.parentPath.node.id)){return b.parentPath.parentPath.node.id.name+"."+c}return c}var h={FunctionDeclaration:function FunctionDeclaration(b){var c=anonymousFunctionLabel;if(a.isIdentifier(b.node.id)){c=b.node.id.name}else if(a.isExportDefaultDeclaration(b.parentPath)){c="export default function"}f(b,c)},"FunctionExpression|ArrowFunctionExpression":function FunctionExpressionArrowFunctionExpression(b){var c=anonymousFunctionLabel,d=b.parentPath,h=g(b);if(h){c=h}else if(a.isObjectProperty(d)&&a.isIdentifier(d.node.key)){c=d.node.key.name;var i=g(d.parentPath);if(i){c=i+"."+c}}else if(a.isClassProperty(d)&&a.isIdentifier(d.node.key)){c=e(d,d.node.key.name)}f(b,c)},ClassMethod:function ClassMethod(b){var c=anonymousFunctionLabel;if(a.isIdentifier(b.node.id)){c=b.node.id.name}else if(a.isIdentifier(b.node.key)){c=b.node.key.name}c=e(b,c);f(b,c)},ObjectMethod:function ObjectMethod(b){var c=anonymousFunctionLabel,d=!1;if(a.isIdentifier(b.node.key)){c=b.node.key.name}else if(a.isStringLiteral(b.node.key)){c=b.node.key.value}else if(a.isMemberExpression(b.node.key)&&a.isIdentifier(b.node.key.object)&&a.isIdentifier(b.node.key.property)&&"Symbol"===b.node.key.object.name){c="[Symbol."+b.node.key.property.name+"]";d=!0}var e=g(b.parentPath);if(e){if(d){c=e+c}else{c=e+"."+c}}f(b,c)},Program:function Program(a){f(a,b)}},i=c.split(/[\.-]/),j=_slicedToArray(i,5),k=j[0],l=j[1],m=j[2],n=j[3],o=j[4];if(7<k||7==k&&2<=l){h.ClassPrivateMethod=function(b){var c=anonymousFunctionLabel;if(a.isPrivateName(b.node.key)&&a.isIdentifier(b.node.key.id)){c=b.node.key.id.name}else if(a.isIdentifier(b.node.key)){c=b.node.key.name}c=e(b,c);f(b,c)}}return h};exports.annotateFunctionNameVisitor=annotateFunctionNameVisitor;
{
"name": "@codesee/babel-plugin-instrument",
"version": "0.6.0",
"version": "0.6.1",
"description": "Instruments javascript code to report internal execution and state for use with CodeSee Visualizations.",

@@ -5,0 +5,0 @@ "type": "commonjs",

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